diff --git a/src/server/game/Movement/MovementGenerators/FollowMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/FollowMovementGenerator.cpp index 5068519b11..44aa67b85e 100644 --- a/src/server/game/Movement/MovementGenerators/FollowMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/FollowMovementGenerator.cpp @@ -93,10 +93,10 @@ static void ApplyCatchUpMod(Unit* owner, Position dest, float& velocity) { float distance = owner->GetExactDist2d(dest); - if (dest.HasInArc(float(M_PI), owner)) // owner is beyond default destination. throttle speed. - AddPct(velocity, -((distance / velocity) * 100.f)); - else // owner is behind destination, catch up. + if (!dest.HasInArc(float(M_PI), owner)) // owner is falling back. Catch up AddPct(velocity, ((distance / velocity) * 100.f)); + else if (distance < 3.f) + AddPct(velocity, -((distance / velocity) * 100.f)); } static void DoMovementInform(Unit* owner, Unit* target)