aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/Spell.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Spells/Spell.cpp')
-rw-r--r--src/server/game/Spells/Spell.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index 3fd216df5ae..6d6e5e7e44f 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -6875,6 +6875,12 @@ SpellCastResult Spell::CheckMovement() const
if (IsTriggered())
return SPELL_CAST_OK;
+ // Creatures (not controlled) give priority to spell casting over movement.
+ // We assume that the casting is always valid and the current movement
+ // is stopped by Unit:IsmovementPreventedByCasting to prevent casting interruption.
+ if (m_caster->IsCreature() && !m_caster->ToCreature()->IsControlledByPlayer())
+ return SPELL_CAST_OK;
+
if (Unit* unitCaster = m_caster->ToUnit())
{
if (!unitCaster->CanCastSpellWhileMoving(m_spellInfo))