diff options
Diffstat (limited to 'src/server/game/Spells/Spell.cpp')
-rw-r--r-- | src/server/game/Spells/Spell.cpp | 6 |
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)) |