DopingControl v0.6.4
This commit is contained in:
@@ -66,3 +66,37 @@ for name, def in pairs(DC.CLASSBUFFS) do
|
||||
DC.SPELL_TO_SLOT[def.ids[i]] = def.slot
|
||||
end
|
||||
end
|
||||
|
||||
-- ------------------------------------------------------------------
|
||||
-- Name-only aura collisions with CONSUMABLE slots (decision 2026-08-15):
|
||||
-- a name-only aura match (no spell ID at all for that scan) must NEVER
|
||||
-- satisfy a CONSUMABLE slot when the matched display name is also a class
|
||||
-- buff name -- the scan cannot tell the two apart, and defaulting to HAS
|
||||
-- would hide a missing consumable behind someone else's class buff. Such
|
||||
-- a slot classifies UNKNOWN instead (core/model.lua's aura name-fallback
|
||||
-- branch consults this table; core/const.lua's Iron Rule: UNKNOWN is
|
||||
-- never collapsed into HAS or MISSING).
|
||||
--
|
||||
-- Scope is deliberately ONE-SIDED: only the CONSUMABLE slot side of the
|
||||
-- collision is affected. The class-buff slot (e.g. SPROT) keeps the
|
||||
-- existing name-fallback behavior unchanged -- the ambiguity here means
|
||||
-- "we can't prove the CONSUMABLE was used", not "we can't prove the class
|
||||
-- buff is missing". Do not widen this into "name-only never counts"; that
|
||||
-- would make every ID-less scan MISSING/UNKNOWN across the whole matrix.
|
||||
--
|
||||
-- Keyed by buff display name (a key shared by DC.CONSUMABLES and
|
||||
-- DC.CLASSBUFFS). test_data.lua asserts every entry here is a key in BOTH
|
||||
-- tables, so a stale or speculative entry cannot ship silently.
|
||||
-- "Shadow Protection" -- DC.CONSUMABLES["Shadow Protection"] (SR slot,
|
||||
-- Shadow Protection Potion, spell 7242, data/consumables.lua) vs.
|
||||
-- DC.CLASSBUFFS["Shadow Protection"] above (SPROT slot, priest buff,
|
||||
-- ids 976/10957/10958) -- identical display name, already flagged as a
|
||||
-- collision at both definitions and wowhead-confirmed 2026-08-11 (see
|
||||
-- the SR entry's comment in data/consumables.lua). This is the ONLY
|
||||
-- name shared between DC.CONSUMABLES and DC.CLASSBUFFS (checked against
|
||||
-- every key in both tables) -- no other entry is added without the same
|
||||
-- level of evidence.
|
||||
-- ------------------------------------------------------------------
|
||||
DC.CONSUMABLE_CLASSBUFF_NAME_COLLISION = {
|
||||
["Shadow Protection"] = true,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user