diff options
| author | Nawuko <nawuko@nitx.de> | 2016-04-25 11:46:35 -0300 |
|---|---|---|
| committer | Keader <keader.android@gmail.com> | 2016-05-11 20:54:50 -0300 |
| commit | bf2cee8cce39e64590dc68bc35e5d3d2dd19cbaf (patch) | |
| tree | f258d836774edc93a316c1b0756d563570d5298f /src/server/game/Movement | |
| parent | 2640f37c665b2a11b7801f9e039ef7de1909ff83 (diff) | |
Core/Movement: Fix issues where creatures cancel spell casts chasing target and Implement SPELL_ATTR5_CAN_CHANNEL_WHEN_MOVING
Diffstat (limited to 'src/server/game/Movement')
| -rw-r--r-- | src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp index 94c37a8d6a3..533b087c7a1 100644 --- a/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp @@ -36,6 +36,9 @@ void TargetedMovementGeneratorMedium<T, D>::_setTargetLocation(T* owner, bool up if (owner->HasUnitState(UNIT_STATE_NOT_MOVE)) return; + if (owner->HasUnitState(UNIT_STATE_CASTING) && !owner->CanMoveDuringChannel()) + return; + if (owner->GetTypeId() == TYPEID_UNIT && !i_target->isInAccessiblePlaceFor(owner->ToCreature())) return; @@ -139,7 +142,7 @@ bool TargetedMovementGeneratorMedium<T, D>::DoUpdate(T* owner, uint32 time_diff) } // prevent movement while casting spells with cast time or channel time - if (owner->HasUnitState(UNIT_STATE_CASTING)) + if (owner->HasUnitState(UNIT_STATE_CASTING) && !owner->CanMoveDuringChannel()) { if (!owner->IsStopped()) owner->StopMoving(); |
