aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/AI/ScriptedAI
diff options
context:
space:
mode:
authortreeston <treeston.mmoc@gmail.com>2016-09-03 17:21:22 +0200
committerjoschiwald <joschiwald.trinity@gmail.com>2017-02-19 15:09:02 +0100
commitdd0df772df4603b95dc133dc9b896e5fc8e3bdf8 (patch)
tree4be78ca038ae1337985b264c2d8ff37728492c49 /src/server/game/AI/ScriptedAI
parent5654fb93431a3b3866b0d5e585099e289383bad1 (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. (cherry picked from commit ac62d7156f93bf86f57dbad1f24f14031322fd5a) Drycoding is bad, mmkay? (cherry picked from commit ed83a35fbeeb7f9005fe4792225fb50700791c6f)
Diffstat (limited to 'src/server/game/AI/ScriptedAI')
-rw-r--r--src/server/game/AI/ScriptedAI/ScriptedCreature.cpp8
1 files changed, 8 insertions, 0 deletions
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();
}