From dd0df772df4603b95dc133dc9b896e5fc8e3bdf8 Mon Sep 17 00:00:00 2001 From: treeston Date: Sat, 3 Sep 2016 17:21:22 +0200 Subject: Scripts/Events: Globally fix all ExecuteEvent loops to check UNIT_STATE_CASTING after each iteration, instead of just checking it once initially. Fixes and closes #17892. (cherry picked from commit ac62d7156f93bf86f57dbad1f24f14031322fd5a) Drycoding is bad, mmkay? (cherry picked from commit ed83a35fbeeb7f9005fe4792225fb50700791c6f) --- src/server/game/AI/ScriptedAI/ScriptedCreature.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/server/game/AI/ScriptedAI') diff --git a/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp b/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp index 56cd0ae6448..6503c703c58 100644 --- a/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp +++ b/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp @@ -539,7 +539,11 @@ void BossAI::UpdateAI(uint32 diff) return; while (uint32 eventId = events.ExecuteEvent()) + { ExecuteEvent(eventId); + if (me->HasUnitState(UNIT_STATE_CASTING)) + return; + } DoMeleeAttackIfReady(); } @@ -620,7 +624,11 @@ void WorldBossAI::UpdateAI(uint32 diff) return; while (uint32 eventId = events.ExecuteEvent()) + { ExecuteEvent(eventId); + if (me->HasUnitState(UNIT_STATE_CASTING)) + return; + } DoMeleeAttackIfReady(); } -- cgit v1.2.3