From 23ff9e8d123393db396f094e2cb7e51810eb7763 Mon Sep 17 00:00:00 2001 From: Ovalord <1Don7H4v3@m41L.com> Date: Wed, 7 Feb 2018 11:13:45 +0100 Subject: [PATCH] Core/Spells: fixed a logic mistake that was interrupting channeled spells due to movement --- src/server/game/Entities/Unit/Unit.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index a7f84306a66..bc4c080e193 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -3072,17 +3072,17 @@ int32 Unit::GetCurrentSpellCastTime(uint32 spell_id) const bool Unit::IsMovementPreventedByCasting() const { // can always move when not casting - if (!HasUnitState(UNIT_STATE_CASTING)) - return false; + if (HasUnitState(UNIT_STATE_CASTING)) + return true; // channeled spells during channel stage (after the initial cast timer) allow movement with a specific spell attribute if (Spell* spell = m_currentSpells[CURRENT_CHANNELED_SPELL]) if (spell->getState() != SPELL_STATE_FINISHED && spell->IsChannelActive()) - if (spell->GetSpellInfo()->IsMoveAllowedChannel()) - return false; + if (!spell->GetSpellInfo()->IsMoveAllowedChannel()) + return true; // prohibit movement for all other spell casts - return true; + return false; } bool Unit::isInFrontInMap(Unit const* target, float distance, float arc) const