123 lines
5.8 KiB
Lua
123 lines
5.8 KiB
Lua
-- DopingControl data/expectations.lua
|
|
-- Default expectation matrix DC.DEFAULT_EXPECT[role][slotId] = true.
|
|
-- One flat slot-id namespace across all three tabs (ids are unique).
|
|
--
|
|
-- This table STAYS the role x slot
|
|
-- SEED. The saved/live shape is per class --
|
|
-- db.expectations[role][class][slotId] -- materialized from these lines
|
|
-- by core/config.lua (DC.EnsureExpectations) for every class that can
|
|
-- perform the role (DC_Roles.ROLE_CLASSES). Class-differentiated
|
|
-- DEFAULTS are deliberately NOT shipped; the one
|
|
-- motivating example lives here as a comment only:
|
|
-- a TANK-confirmed SHAMAN wants AI = true (Arcane Intellect for the
|
|
-- mana-fed tank kit) while a TANK WARRIOR does not -- the user flips
|
|
-- expectations.TANK.SHAMAN.AI in the options grid. AI stays
|
|
-- a CASTER/HEALER role default for every performing class.
|
|
--
|
|
-- Role-line choices:
|
|
-- Consumables: standard raid role lines.
|
|
-- Class buffs: SOUL only HEALER, AI only CASTER/HEALER, SPROT situational
|
|
-- for all five -- like FR. EMB (Emerald Blessing) has NO
|
|
-- seed entry: the buff comes from a raid questline and most
|
|
-- druids do not have it. The column therefore stays hidden
|
|
-- until someone enables it per role/class in the options
|
|
-- grid; the dynamic-column rule makes an unexpected slot
|
|
-- disappear entirely (same treatment as T1/T2 below).
|
|
-- Equipment: ALL armor enchant slots for ALL roles;
|
|
-- per-item exemptions (wand/holdable) are handled at
|
|
-- classify time via DC.ENCH_EXEMPT, not here.
|
|
-- NECK/R1/R2 (enchantable on this server, a custom feature
|
|
-- beyond vanilla) default to OFF for every role: unlike
|
|
-- the armor slots, a neck/ring enchant is not assumed
|
|
-- baseline raid gear -- enable it per role/class in the
|
|
-- options grid when it matters. T1/T2 (trinket item tiles)
|
|
-- carry NO seed entry at all -- the model ignores
|
|
-- expectations for tile-kind slots entirely (item
|
|
-- present/absent decides, always shown, never gated).
|
|
--
|
|
-- Known debatable rows -- documented deliberately, the shipped defaults
|
|
-- win:
|
|
-- * TANK+AP: some tank consumable lists include Winterfall
|
|
-- Firewater; the default has no AP for TANK.
|
|
-- * MELEE+FLASK: some melee lists include Flask of the Titans; the
|
|
-- default has no FLASK for MELEE.
|
|
-- * MELEE/RANGED+HP: some melee lists have neither Fortitude nor
|
|
-- alcohol; HP=true is the weakest row of the matrix.
|
|
-- * RANGED+AP/WPN: Firewater/Juju Might are MELEE attack power; ranged
|
|
-- AP comes from food. Arguably AP=false, WPN=false
|
|
-- for RANGED; the default says true.
|
|
-- * HEALER+SP: healer sets may carry Dreamshard (+healing), which the
|
|
-- 11-slot merge puts into SP; the default has no SP for
|
|
-- HEALER -> Dreamshard is invisible for healers by
|
|
-- default.
|
|
-- * Equipment: an alternative default would differentiate per role
|
|
-- (OFFH only TANK/MELEE, RNGD only RANGED,
|
|
-- casters/healers neither); deliberately flattened to
|
|
-- all-roles + ENCH_EXEMPT item checks.
|
|
--
|
|
-- This table is the pristine seed: core/config.lua materializes it into
|
|
-- db.expectations (per class, deep copies) on first load; the options
|
|
-- editor mutates only the materialized copies, never this table.
|
|
-- Pure Lua 5.0, no WoW API -- dofile-loadable offline.
|
|
|
|
DopingControl = DopingControl or {}
|
|
local DC = DopingControl
|
|
|
|
DC.DEFAULT_EXPECT = {
|
|
TANK = {
|
|
-- consumables
|
|
FLASK = true, FOOD = true, STR = true, AGI = true, ARM = true,
|
|
HP = true, FR = true, WPN = true,
|
|
-- class buffs
|
|
MOTW = true, PWF = true, SPROT = true,
|
|
-- equipment (RNGD default only for RANGED:
|
|
-- scopes only matter for hunters; flip in the options
|
|
-- expectation matrix anytime)
|
|
HEAD = true, SHLD = true, BACK = true, CHST = true, WRST = true,
|
|
HAND = true, LEGS = true, FEET = true, MAIN = true, OFFH = true,
|
|
},
|
|
MELEE = {
|
|
-- consumables
|
|
FOOD = true, AP = true, STR = true, AGI = true,
|
|
HP = true, FR = true, WPN = true,
|
|
-- class buffs
|
|
MOTW = true, PWF = true, SPROT = true,
|
|
-- equipment
|
|
HEAD = true, SHLD = true, BACK = true, CHST = true, WRST = true,
|
|
HAND = true, LEGS = true, FEET = true, MAIN = true, OFFH = true,
|
|
},
|
|
RANGED = {
|
|
-- consumables
|
|
FOOD = true, AP = true, AGI = true,
|
|
HP = true, FR = true, WPN = true,
|
|
-- class buffs
|
|
MOTW = true, PWF = true, SPROT = true,
|
|
-- equipment
|
|
HEAD = true, SHLD = true, BACK = true, CHST = true, WRST = true,
|
|
HAND = true, LEGS = true, FEET = true, MAIN = true, OFFH = true,
|
|
RNGD = true,
|
|
},
|
|
-- CASTER/HEALER: RNGD also dropped by role default (their classes are
|
|
-- additionally exempt via ENCH_CLASS_EXEMPT - belt and suspenders)
|
|
CASTER = {
|
|
-- consumables
|
|
FLASK = true, FOOD = true, SP = true, MP5 = true,
|
|
FR = true, WPN = true,
|
|
-- class buffs
|
|
AI = true, MOTW = true, PWF = true, SPROT = true,
|
|
-- equipment
|
|
HEAD = true, SHLD = true, BACK = true, CHST = true, WRST = true,
|
|
HAND = true, LEGS = true, FEET = true, MAIN = true, OFFH = true,
|
|
},
|
|
HEALER = {
|
|
-- consumables
|
|
FLASK = true, FOOD = true, MP5 = true,
|
|
HP = true, FR = true, WPN = true,
|
|
-- class buffs (SOUL: expected ONLY here)
|
|
AI = true, MOTW = true, PWF = true, SPROT = true, SOUL = true,
|
|
-- equipment
|
|
HEAD = true, SHLD = true, BACK = true, CHST = true, WRST = true,
|
|
HAND = true, LEGS = true, FEET = true, MAIN = true, OFFH = true,
|
|
},
|
|
}
|