aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Entities/Creature/Creature.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp
index 68d225ba0d3..c0c65a43061 100644
--- a/src/server/game/Entities/Creature/Creature.cpp
+++ b/src/server/game/Entities/Creature/Creature.cpp
@@ -3389,20 +3389,21 @@ void Creature::DoNotReacquireSpellFocusTarget()
bool Creature::IsMovementPreventedByCasting() const
{
+ // Can always move when not casting
+ if (!HasUnitState(UNIT_STATE_CASTING))
+ return false;
+
// first check if currently a movement allowed channel is active and we're not casting
if (Spell* spell = m_currentSpells[CURRENT_CHANNELED_SPELL])
{
if (spell->getState() != SPELL_STATE_FINISHED && spell->IsChannelActive())
if (spell->CheckMovement() != SPELL_CAST_OK)
- return false;
+ return true;
}
if (HasSpellFocus())
return true;
- if (HasUnitState(UNIT_STATE_CASTING))
- return true;
-
return false;
}