diff --git a/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp index 8289d06c1..2bf83ac14 100644 --- a/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp @@ -108,6 +108,14 @@ bool ChaseMovementGenerator::DoUpdate(T* owner, uint32 time_diff) mutualChase = true; } + // Prevent almost infinite spinning for pets with mutualTarget + // _mutualChase is false for previous check + if (angle && !mutualChase && !_mutualChase && mutualTarget && chaseRange < meleeRange && cOwner && cOwner->IsPet()) + { + angle = Optional(); + mutualChase = true; + } + // periodically check if we're already in the expected range... i_recheckDistance.Update(time_diff); if (i_recheckDistance.Passed())