SanAndreasUnity/Assets/Scripts/Behaviours/PedAI/EscapeState.cs

34 lines
No EOL
1.1 KiB
C#

using UnityEngine;
namespace SanAndreasUnity.Behaviours.Peds.AI
{
public class EscapeState : BaseState, IPathMovementState
{
private readonly PathMovementData _pathMovementData = new PathMovementData();
public PathMovementData PathMovementData => _pathMovementData;
public override void UpdateState()
{
// TODO: exit vehicle
if (PedAI.ArrivedAtDestinationNode(_pathMovementData, _ped.transform))
PedAI.OnArrivedToDestinationNode(_pathMovementData);
if (!_pathMovementData.destinationNode.HasValue)
{
PedAI.FindClosestWalkableNode(_pathMovementData, _ped.transform.position);
return;
}
this.MyPed.IsPanicButtonOn = true;
this.MyPed.Movement = (_pathMovementData.moveDestination - this.MyPed.transform.position).normalized;
this.MyPed.Heading = this.MyPed.Movement;
}
protected internal override void OnDrawGizmosSelected()
{
PedAI.OnDrawGizmosSelected(_pathMovementData);
}
}
}