DopingControl 0.7.0
This commit is contained in:
@@ -0,0 +1,151 @@
|
||||
-- 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: the four role sets of the reference stacking rules
|
||||
-- (TurtleWoW 1.17.2 -- melee / caster / tank / healer, each "all
|
||||
-- active simultaneously") ARE the defaults now. RANGED
|
||||
-- has no reference set of its own and is derived from the melee
|
||||
-- line (no STR -- ranged AP scales off AGI -- and no
|
||||
-- FLASK). FR stays situational for all five roles
|
||||
-- (enable/disable per boss via the expectation matrix),
|
||||
-- WPN as before. The other school protection slots
|
||||
-- (FrR/NR/SR/HR/AR, added 2026-08-11) carry NO seed entry
|
||||
-- at all: default off for every role, so the dynamic-
|
||||
-- column rule hides them until someone enables them per
|
||||
-- role/class for a matching boss (same treatment as EMB
|
||||
-- and T1/T2 below) -- unlike FR, which ships seeded true.
|
||||
-- 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, WAIST included
|
||||
-- (owner decision, 2026-08-30: every role wears a belt,
|
||||
-- and it is enchantable on this server via the Belt
|
||||
-- Buckle item line -- so it is worn equipment like any
|
||||
-- other slot, not an optional extra like neck/rings);
|
||||
-- per-item exemptions (wand/holdable) are handled at
|
||||
-- classify time via DC.ENCH_EXEMPT, not here.
|
||||
-- NECK/R1/R2 (also enchantable on this server, a custom
|
||||
-- feature beyond vanilla) stay OFF by default for every
|
||||
-- role: unlike WAIST, 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 / MELEE+FLASK: the OLD defaults deliberately excluded them;
|
||||
-- the reference role sets include them (tank runs Winterfall
|
||||
-- Firewater, melee runs Flask of the Titans), so both
|
||||
-- flipped to true with the v6 slot model.
|
||||
-- * RANGED line: derived, not covered by the reference sets (see above) -- BL is included
|
||||
-- (Ground Scorpok Assay is +25 AGI), STR/FLASK are not.
|
||||
-- * HEALER+HPELX: the reference healer set carries no Elixir of Fortitude, so
|
||||
-- HPELX defaults off for HEALER while ALC (Kreeg's
|
||||
-- Stout Beatdown + Medivh's Merlot Blue) is on.
|
||||
-- * ZANZA: expected for every role (all four reference sets carry it).
|
||||
-- * 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 (reference tank set: Mongoose, Firewater, Juju Power,
|
||||
-- R.O.I.D.S., Zanza, Superior Defense, Fortitude, Titans, food,
|
||||
-- Merlot + Rumsey, sharpening stone; Gift of Arthas has no column)
|
||||
FLASK = true, FOOD = true, AP = true, STR = true, AGI = true,
|
||||
BL = true, ZANZA = true, ARM = true, HPELX = true, ALC = 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,
|
||||
WAIST = true,
|
||||
},
|
||||
MELEE = {
|
||||
-- consumables (reference melee set: Mongoose, Firewater/Juju Might,
|
||||
-- Juju Power/Giants, R.O.I.D.S./Scorpok, Zanza, Titans, food,
|
||||
-- sharpening stone; Juju Flurry has no column)
|
||||
FLASK = true, FOOD = true, AP = true, STR = true, AGI = true,
|
||||
BL = true, ZANZA = 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,
|
||||
WAIST = true,
|
||||
},
|
||||
RANGED = {
|
||||
-- consumables (derived from the melee line -- no reference set; no STR,
|
||||
-- no FLASK, see "Known debatable rows")
|
||||
FOOD = true, AP = true, AGI = true, BL = true, ZANZA = 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,
|
||||
WAIST = 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 (reference caster set: Dreamshard, GAE, school elixir,
|
||||
-- Dreamtonic, Mageblood, wizard oil, Zanza, Supreme Power, food)
|
||||
FLASK = true, FOOD = true, GAE = true, SCHOOL = true,
|
||||
DREAMT = true, SHARD = true, MP5 = true, ZANZA = 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,
|
||||
WAIST = true,
|
||||
},
|
||||
HEALER = {
|
||||
-- consumables (reference healer set: Dreamshard, Mageblood, mana oil,
|
||||
-- Zanza, Distilled Wisdom, food, Kreeg's + Merlot Blue)
|
||||
FLASK = true, FOOD = true, MP5 = true, SHARD = true, ZANZA = true,
|
||||
ALC = 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,
|
||||
WAIST = true,
|
||||
},
|
||||
}
|
||||
Reference in New Issue
Block a user