From 8b036024d6500eb8ae6e36c8b992f506fc54dcc1 Mon Sep 17 00:00:00 2001 From: Aqua Deus <95978183+aquadeus@users.noreply.github.com> Date: Sun, 1 Feb 2026 20:03:10 +0100 Subject: [PATCH] Scripts/Spells: Handle demon hunter soul fragments counter (#31504) --- src/server/scripts/Spells/spell_dh.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/server/scripts/Spells/spell_dh.cpp b/src/server/scripts/Spells/spell_dh.cpp index 4950097cf4..e60e6b7a60 100644 --- a/src/server/scripts/Spells/spell_dh.cpp +++ b/src/server/scripts/Spells/spell_dh.cpp @@ -189,6 +189,7 @@ enum DemonHunterSpells SPELL_DH_SHATTERED_SOULS_HAVOC_LESSER_TRIGGER = 228536, SPELL_DH_SHATTERED_SOULS_HAVOC_SHATTERED_TRIGGER = 209687, SPELL_DH_SHATTERED_SOULS_MARKER = 221461, + SPELL_DH_SHATTERED_SOULS_VENGEANCE = 204254, SPELL_DH_SHEAR = 203782, SPELL_DH_SHEAR_PASSIVE = 203783, SPELL_DH_SIGIL_OF_CHAINS = 202138, @@ -1919,6 +1920,21 @@ struct at_dh_shattered_souls : public AreaTriggerAI unit->CastSpell(at->GetPosition(), SpellId, TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR); at->Remove(); } + + void OnInitialize() override + { + if (Unit* caster = at->GetCaster()) + if (caster->HasAura(SPELL_DH_SHATTERED_SOULS_VENGEANCE)) + caster->CastSpell(caster, SPELL_DH_SOUL_FRAGMENT_COUNTER, CastSpellExtraArgsInit{ + .TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR, + }); + } + + void OnRemove() override + { + if (Unit* caster = at->GetCaster()) + caster->RemoveAuraFromStack(SPELL_DH_SOUL_FRAGMENT_COUNTER); + } }; using at_dh_shattered_souls_havoc_demon = at_dh_shattered_souls;