diff --git a/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp index c9feb3b58..38284064b 100644 --- a/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp @@ -114,7 +114,13 @@ bool ChaseMovementGenerator::DoUpdate(T* owner, uint32 time_diff) if (PositionOkay(owner, target, maxRange, angle) && !owner->HasUnitState(UNIT_STATE_CHASE_MOVE)) return true; - bool moveToward = !owner->IsInDist(target, maxRange); + float tarX, tarY, tarZ; + target->GetPosition(tarX, tarY, tarZ); + + bool withinRange = owner->IsInDist(target, maxRange); + bool withinLOS = owner->IsWithinLOS(tarX, tarY, tarZ); + bool moveToward = !(withinRange && withinLOS); + _mutualChase = mutualChase; if (owner->HasUnitState(UNIT_STATE_CHASE_MOVE))