diff options
author | Meji <alvaro.megias@outlook.com> | 2023-03-24 12:27:01 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-24 12:27:01 +0100 |
commit | cc57c9dad59a2eded2f7ea0471aa79c89b390559 (patch) | |
tree | 5eb6012786882808dab11f90ca93a5c619afa67c /src/server/game/Spells/Spell.cpp | |
parent | d6d5d94ebe88e71b6250678f114d900871fcf054 (diff) |
Core/Creatures: Improved movement interruption while casting spells (#28845)
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)) |