From 0d977c986ef5bdd3b2e93062218d98f7ab4a17f6 Mon Sep 17 00:00:00 2001 From: Jelle Meeus Date: Thu, 20 Jun 2024 02:13:34 +0200 Subject: [PATCH] fix(Core/SmartAI): add prevent almost infinite spinning of mutual target to pets (#19090) fix(Core/SmartAI)petspin --- .../MovementGenerators/TargetedMovementGenerator.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) 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())