From 0f4e8f07ff097586ae1162b231f2afb7e6fb0c8d Mon Sep 17 00:00:00 2001 From: UltraNix <80540499+UltraNix@users.noreply.github.com> Date: Sun, 11 Dec 2022 03:55:20 +0100 Subject: [PATCH] =?UTF-8?q?fix(Core/Movement):=20Falling/Jumping/Knockback?= =?UTF-8?q?=20effects=20should=20not=20make=E2=80=A6=20(#14044)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix(Core/Movement): Falling/Jumping/Knockback effects should not make mobs to evade. --- .../TargetedMovementGenerator.cpp | 27 +++++++++++++------ 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp index 591970330..cd7ab7252 100644 --- a/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp @@ -115,6 +115,10 @@ bool ChaseMovementGenerator::DoUpdate(T* owner, uint32 time_diff) if (owner->IsWithinMeleeRange(this->i_target.getTarget())) { owner->Attack(this->i_target.getTarget(), true); + if (Creature* cOwner2 = owner->ToCreature()) + { + cOwner2->SetCannotReachTarget(); + } } else if (i_path && i_path->GetPathType() & PATHFIND_INCOMPLETE) { @@ -134,7 +138,14 @@ bool ChaseMovementGenerator::DoUpdate(T* owner, uint32 time_diff) _lastTargetPosition = i_target->GetPosition(); if (PositionOkay(owner, target, maxRange, angle) && !owner->HasUnitState(UNIT_STATE_CHASE_MOVE)) + { + if (Creature* cOwner2 = owner->ToCreature()) + { + cOwner2->SetCannotReachTarget(); + } + return true; + } float tarX, tarY, tarZ; target->GetPosition(tarX, tarY, tarZ); @@ -207,15 +218,15 @@ bool ChaseMovementGenerator::DoUpdate(T* owner, uint32 time_diff) { switch (cOwner->GetMovementTemplate().GetChase()) { - case CreatureChaseMovementType::CanWalk: - if (owner->IsWalking()) + case CreatureChaseMovementType::CanWalk: + if (owner->IsWalking()) + walk = true; + break; + case CreatureChaseMovementType::AlwaysWalk: walk = true; - break; - case CreatureChaseMovementType::AlwaysWalk: - walk = true; - break; - default: - break; + break; + default: + break; } }