From e2ed3e23f8241933b4f931e9def7eee69f1abb79 Mon Sep 17 00:00:00 2001 From: Meji Date: Mon, 9 Jan 2023 23:08:22 +0100 Subject: Core/Creatures: Fix IsMovementPreventedByCasting logic (#28551) --- src/server/game/Entities/Creature/Creature.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src') 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; } -- cgit v1.2.3