aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/World
diff options
context:
space:
mode:
authortreeston <treeston.mmoc@gmail.com>2016-09-03 17:21:22 +0200
committertreeston <treeston.mmoc@gmail.com>2016-09-03 17:21:22 +0200
commitac62d7156f93bf86f57dbad1f24f14031322fd5a (patch)
tree869eb135438a9d8fa115cdf0b0c6d726567c371f /src/server/scripts/World
parenta4623efaa67be1cfea19e561be83f118a784b9d1 (diff)
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.
Diffstat (limited to 'src/server/scripts/World')
-rw-r--r--src/server/scripts/World/boss_emerald_dragons.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/server/scripts/World/boss_emerald_dragons.cpp b/src/server/scripts/World/boss_emerald_dragons.cpp
index 65dec74414b..07b579ce2eb 100644
--- a/src/server/scripts/World/boss_emerald_dragons.cpp
+++ b/src/server/scripts/World/boss_emerald_dragons.cpp
@@ -148,8 +148,13 @@ struct emerald_dragonAI : public WorldBossAI
return;
while (uint32 eventId = events.ExecuteEvent())
+ {
ExecuteEvent(eventId);
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
+ }
+
if (Unit* target = SelectTarget(SELECT_TARGET_TOPAGGRO, 0, -50.0f, true))
DoCast(target, SPELL_SUMMON_PLAYER);