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())) if (owner->IsWithinMeleeRange(this->i_target.getTarget()))
{ {
owner->Attack(this->i_target.getTarget(), true); owner->Attack(this->i_target.getTarget(), true);
if (Creature* cOwner2 = owner->ToCreature())
{
cOwner2->SetCannotReachTarget();
}
} }
else if (i_path && i_path->GetPathType() & PATHFIND_INCOMPLETE) 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(); _lastTargetPosition = i_target->GetPosition();
if (PositionOkay(owner, target, maxRange, angle) && !owner->HasUnitState(UNIT_STATE_CHASE_MOVE)) if (PositionOkay(owner, target, maxRange, angle) && !owner->HasUnitState(UNIT_STATE_CHASE_MOVE))
{
if (Creature* cOwner2 = owner->ToCreature())
{
cOwner2->SetCannotReachTarget();
}
return true; return true;
}
float tarX, tarY, tarZ; float tarX, tarY, tarZ;
target->GetPosition(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()) switch (cOwner->GetMovementTemplate().GetChase())
{ {
case CreatureChaseMovementType::CanWalk: case CreatureChaseMovementType::CanWalk:
if (owner->IsWalking()) if (owner->IsWalking())
walk = true;
break;
case CreatureChaseMovementType::AlwaysWalk:
walk = true; walk = true;
break; break;
case CreatureChaseMovementType::AlwaysWalk: default:
walk = true; break;
break;
default:
break;
} }
} }