Witch Doctor only had Cleansing Idol (504840, AoE Disease/Poison) registered,
so curses were never flagged or curable. Add Hexbreak (806240) as the
single-target Curse remover (IsBest=1, 40yd instant). DBC dispel-type reads
"Magic" but name+description+gameplay are Curse (cf. Soothing Touch).
UnitAura returns "" for the dispel type on bleeds (mechanic 15 is not a
Blizzard dispel category). New Dcr_BleedIDs.lua ships 1491 bleed-aura
spell IDs auto-generated from coa-db Postgres (effect=APPLY_AURA,
aura=PERIODIC_DAMAGE, mechanic=BLEED). GetUnitDebuff now pulls spellId
and re-tags untyped debuffs as "Bleed" when the ID is in that set.
DC.BLEED = 128, registered in TypeNames / TypeColors (dark red AA1111
to read distinct from CHARMED's bright red), CureOrder default 7,
AuthorizedKeys/Values, options-UI checkbox, and all eight locales.
Cauterize (560749) now lists DC.BLEED alongside MAGIC + POISON so the
Pyromancer cleanse covers what the spell actually does in-game.
Regenerate Dcr_BleedIDs.lua with the SQL header inside the file.
Cauterize (560749) clears Magic + Poison via a dummy script effect and
removes 1 bleed via Dispel Mechanic. Decursive has no bleed type so
only the magic/poison part is wired; bleed dispel is silently dropped.
The previous 1.1.5 commit added 'Aroy Cleansing Totem' (608170) and
'Aroy Tremor Totem' (608143) — both wrong. 'Aroy' is an NPC prefix
(npc 75001/75002 'Aroy Grappling Hook'), not a player-castable totem,
and neither id appears on /class/witch-doctor or /class/tinker.
Replaced with the real player-cast spells:
COA_CLEANSING_IDOL 504840 Witch Doctor Disease + Poison
AoE — drops an idol that pulses 1 disease and
1 poison effect off allies within 30 yds every
3 sec for 1 min. IsBest=0 (AoE, can't direct-
target via click).
COA_NANOBOT_CLEANSER 502537 Tinker (Invention) Disease + Poison
Single-target 40yd channel — sends nanobots to
one ally and removes 1 disease + 1 poison every
3 sec for 15 sec. IsBest=1 (Decursive can
direct-target via click).
Neither class has a Fear/Charm/Sleep dispel, so the Tremor Totem entry
is dropped entirely.
Bumps .toc Version: Asc-1.1.5-coa → Asc-1.1.6-coa.
CoA's totem-using custom classes (Witchdoctor, Tinker) share the Aroy
totem family. Registers the two dispel-shaped ones:
COA_CLEANSING_TOTEM 608170 Disease + Poison
Aroy Cleansing Totem — drops a totem that removes
1 Disease + 1 Poison effect from party members in
30 yd range. Vanilla Cleansing Totem pattern.
COA_TREMOR_TOTEM 608143 Charm
Aroy Tremor Totem — removes Fear, Charm and Sleep
effects from party members. Routes to DC.CHARMED
(the type Decursive uses for Polymorph/Cyclone/Hex
breakouts) so it's recognised, even though click-
to-cleanse can't direct-target via an AoE totem.
IsBest = 0 on both — Decursive's click-cleanse
flow can't reasonably auto-drop a totem, but the
caster having the spell needs to be visible in
spell-lookup so the addon doesn't report missing
coverage.
Bumps .toc Version: Asc-1.1.4-coa → Asc-1.1.5-coa.
Primalist couldn't click-dispel via Decursive because only the
Mending Touch passive (524971) was registered — none of the actives.
Adds both Soothing Touch variants the same way Venomancer's two
Antivenom variants are split:
COA_SOOTHING_TOUCH 801439 Primalist (Poison, Disease)
COA_SOOTHING_TOUCH_MOA 520841 Primalist MoA (Poison, Disease)
DBC type on 520841 reports 'Magic' but the description says 'removing
1 poison and disease effect' — per our earlier CoA dispel-type lesson,
trust the gameplay over the DBC misc_value.
Neutralizing Touch (572307) is intentionally not added — it's an
enemy-purge (removes Magic buffs from foes), not a friendly-cleanse,
so it doesn't fit Decursive's click-on-raid-member flow.
Bumps .toc Version: Asc-1.1.3-coa → Asc-1.1.4-coa.
The previous commit registered COA_SANCTIFY in customSpells but didn't
add an entry to DC.SpellsToUse, which is what actually routes a class
to its dispel. Without that, Decursive knows the spell exists but
doesn't know it cleanses Magic/Disease/Poison — Sun Clerics couldn't
click-dispel anything. Adds the routing entry with IsBest=1.
Also bumps the .toc version: Asc-1.1.2-coa → Asc-1.1.3-coa.
COA_SANCTIFY 524968 Sun Cleric (Magic, Poison, Disease)
The active Sun Cleric multi-type dispel; previously
the only SUNCLERIC reference in Decursive was the
empty {} placeholder in Dcr_opt.lua's per-class
skip list. Now wired into the CoA customSpells
table so Decursive recognises it as a dispel cast.
COA_MENDING_TOUCH 524971 Primalist passive
Talent that turns Soothing Touch into a Poison /
Disease dispel and adds a 4% max-HP self-heal to
Neutralizing Touch's Magic dispels. Registering
the ID lets Decursive surface it in spell
lookups; the active dispels themselves are
separate IDs (not yet registered).
Also corrects Antivenom/Blight Antidote dispel types to DC.POISON-only,
matching the DBC/runtime mismatch documented in memory — curse-dispel in
DBC doesn't fire server-side for Venomancer.
CoA characters were crashing on load with table-index-is-nil at
Dcr_opt.lua:292 (DebuffsToIgnore[DS["Phase Shift"]]), then cascading
into self.db being nil at DCR_init.lua:724 and ScanTime nil arithmetic
at Dcr_LiveList.lua:389.
Root cause: D:GetSpellsTranslations populates DC.DS by iterating the
class-specific Spells table. The IsCustomClass branch added in
32324ff only filled COA_* dispel spells, but Dcr_opt.lua DebuffsToIgnore
/ BuffDebuff and DCR_init.lua SpellsToUse reference DS["Phase Shift"]
/ "SPELL_CURE_POISON" / etc. unconditionally - keys that only existed
in the heroSpells / defaultSpells branches.
Merged the IsDefaultClass and IsCustomClass branches so both share the
same defaultSpells base table; the CoA-specific dispels remain a
nested IsCustomClass-gated extension. CoA realm shares world content
with the default realm so the prefixed IDs apply; _LOST SPELL_ fallback
in GetSpellsTranslations handles any that don't resolve.
Three gaps closed for CoA custom-class players:
1. DCR_init.lua C_Player:IsCustomClass() branches were stubs printing
"CoA is not currently supported". Filled both branches (SpellsToUse +
Spells dictionary) with 11 dispel spell IDs covering 10 CoA classes
(Chronomancer, Cultist, Templar, Venomancer, Pyromancer, Ranger,
Bloodmage, Runemaster, Starcaller, Witch Hunter). The other 11 CoA
classes have no dedicated player-cast dispel in coa-db.
2. Dcr_Raid.lua ClassNumTo{LName,UName} were hardcoded to indices
11..21 (vanilla 10 + HERO). Append every additional CLASS_SORT_ORDER
token starting at 22 — append-only so existing DecursiveDB skip /
priority numeric keys stay valid. CoA-class units in raids now get
priority/skip lookups instead of silent nil-guarded no-ops.
3. Bumped toc Version to Asc-1.1.0-coa.
Spell IDs sourced from coa-db (mind_of_ascension_talent + class_spell)
filtered to effect_id=38 (DISPEL) with misc_value in {1,2,3,4} (Magic,
Curse, Disease, Poison).
PopulateListFrame XML buttons (Dcr_lists.xml) for the 21 CoA classes
deferred — needs UI rework (frame is already near-full at 11 buttons).
Skip/priority lists still work without these populate-by-class
shortcuts.
* Added OG9 spell ids
* minor formatting
* removed old "disable" code for some players original author didn't like
* ascension version change
* missed a call to chjeckplayer