fix(Core/Movement): Falling/Jumping/Knockback effects should not make… (#14044)

fix(Core/Movement): Falling/Jumping/Knockback effects should not make mobs to evade.
This commit is contained in:
UltraNix
2022-12-11 03:55:20 +01:00
committed by GitHub
parent b87170a36f
commit 0f4e8f07ff

View File

@@ -115,6 +115,10 @@ bool ChaseMovementGenerator<T>::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<T>::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<T>::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;
}
}