From 150e3788ddc283b96ec1b5d8bbab927af0791099 Mon Sep 17 00:00:00 2001 From: Andrew <47818697+Nyeriah@users.noreply.github.com> Date: Sat, 8 Aug 2026 10:04:30 -0300 Subject: [PATCH] fix(Scripts/Spells): implement Clear Demonic Circle, cast by General Vezax on engage (#27040) --- .../rev_1786192707275526400.sql | 4 +++ .../Ulduar/Ulduar/boss_general_vezax.cpp | 2 ++ src/server/scripts/Spells/spell_generic.cpp | 28 +++++++++++++++++++ 3 files changed, 34 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1786192707275526400.sql diff --git a/data/sql/updates/pending_db_world/rev_1786192707275526400.sql b/data/sql/updates/pending_db_world/rev_1786192707275526400.sql new file mode 100644 index 000000000..9501dbbc8 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1786192707275526400.sql @@ -0,0 +1,4 @@ +-- +DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_gen_clear_demonic_circle'; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(62037, 'spell_gen_clear_demonic_circle'); diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp index 76ac2b93c..ab77491f2 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp @@ -41,6 +41,7 @@ enum VezaxSpellData SPELL_MARK_OF_THE_FACELESS_AURA = 63276, SPELL_MARK_OF_THE_FACELESS_EFFECT = 63278, + SPELL_CLEAR_DEMONIC_CIRCLE = 62037, SPELL_AURA_OF_DESPAIR_1 = 62692, SPELL_AURA_OF_DESPAIR_2 = 64848, SPELL_CORRUPTED_RAGE = 68415, @@ -145,6 +146,7 @@ struct boss_vezax : public BossAI Talk(SAY_AGGRO); + me->CastSpell(me, SPELL_CLEAR_DEMONIC_CIRCLE, true); me->CastSpell(me, SPELL_AURA_OF_DESPAIR_1, true); } diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp index 9738271f1..d333d57af 100644 --- a/src/server/scripts/Spells/spell_generic.cpp +++ b/src/server/scripts/Spells/spell_generic.cpp @@ -1483,6 +1483,33 @@ class spell_gen_clear_debuffs : public SpellScript } }; +enum ClearDemonicCircle +{ + SPELL_DEMONIC_CIRCLE_SUMMON = 48018 +}; + +// 62037 - Clear Demonic Circle +class spell_gen_clear_demonic_circle : public SpellScript +{ + PrepareSpellScript(spell_gen_clear_demonic_circle); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_DEMONIC_CIRCLE_SUMMON }); + } + + void HandleScript(SpellEffIndex /*effIndex*/) + { + if (Unit* target = GetHitUnit()) + target->RemoveAurasDueToSpell(SPELL_DEMONIC_CIRCLE_SUMMON); + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_gen_clear_demonic_circle::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + } +}; + enum CreateLanceSpells { SPELL_CREATE_LANCE_ALLIANCE = 63914, @@ -6225,6 +6252,7 @@ void AddSC_generic_spell_scripts() RegisterSpellScript(spell_gen_burn_brutallus); RegisterSpellScript(spell_gen_cannibalize); RegisterSpellScript(spell_gen_clear_debuffs); + RegisterSpellScript(spell_gen_clear_demonic_circle); RegisterSpellScript(spell_gen_create_lance); RegisterSpellScript(spell_gen_netherbloom); RegisterSpellScript(spell_gen_nightmare_vine);