From d1594c7295f1ca3f21a63a13895abf371d8bd3e0 Mon Sep 17 00:00:00 2001 From: Ovah Date: Sat, 3 Oct 2020 00:48:32 +0200 Subject: Core/Spells: unify OnSpellCastInterrupt and OnSuccessfulSpellCast hooks into OnSpellCastFinished (#25522) * added support for calling the hook when completing a channeled spell as well (cherry picked from commit 77aa058504e1ee99b560176d70bcf452c7e3d4f7) --- .../Argus/AntorusTheBurningThrone/boss_garothi_worldbreaker.cpp | 6 +++++- .../scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp | 7 ++----- 2 files changed, 7 insertions(+), 6 deletions(-) (limited to 'src/server/scripts') diff --git a/src/server/scripts/Argus/AntorusTheBurningThrone/boss_garothi_worldbreaker.cpp b/src/server/scripts/Argus/AntorusTheBurningThrone/boss_garothi_worldbreaker.cpp index b8c45975ff8..aa6f2630ddf 100644 --- a/src/server/scripts/Argus/AntorusTheBurningThrone/boss_garothi_worldbreaker.cpp +++ b/src/server/scripts/Argus/AntorusTheBurningThrone/boss_garothi_worldbreaker.cpp @@ -24,6 +24,7 @@ #include "ObjectAccessor.h" #include "ScriptMgr.h" #include "ScriptedCreature.h" +#include "Spell.h" #include "SpellAuras.h" #include "SpellScript.h" #include "SpellAuraEffects.h" @@ -246,8 +247,11 @@ struct boss_garothi_worldbreaker : public BossAI instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me); } - void OnSuccessfulSpellCast(SpellInfo const* spell) override + void OnSpellCastFinished(SpellInfo const* spell, SpellFinishReason reason) override { + if (reason != SPELL_FINISHED_SUCCESSFUL_CAST) + return; + switch (spell->Id) { case SPELL_APOCALYPSE_DRIVE_FINAL_DAMAGE: diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp index 3d676b29f7c..0a86b71d03c 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp @@ -1321,12 +1321,9 @@ struct npc_shambling_horror_icc : public ScriptedAI DoMeleeAttackIfReady(); } - void OnSpellCastInterrupt(SpellInfo const* spell) override + void OnSpellCastFinished(SpellInfo const* spell, SpellFinishReason reason) override { - ScriptedAI::OnSpellCastInterrupt(spell); - - // When enrage is interrupted, reschedule the event - if (spell->Id == ENRAGE) + if (reason == SPELL_FINISHED_CANCELED && spell->Id == ENRAGE) _events.RescheduleEvent(EVENT_ENRAGE, 1s); } -- cgit v1.2.3