29 lines
630 B
C#
29 lines
630 B
C#
using Godot;
|
|
|
|
namespace SupaLidlGame.State.Thinker;
|
|
|
|
public partial class IdleState : ThinkerState
|
|
{
|
|
[Export]
|
|
public ThinkerState PursueState { get; set; }
|
|
|
|
[Export]
|
|
public float MinTargetDistance { get; set; }
|
|
|
|
public override ThinkerState Think()
|
|
{
|
|
var bestTarget = NPC.FindBestTarget();
|
|
if (bestTarget is not null)
|
|
{
|
|
var pos = bestTarget.GlobalPosition;
|
|
var dist = NPC.GlobalPosition.DistanceTo(pos);
|
|
if (dist < MinTargetDistance)
|
|
{
|
|
return PursueState;
|
|
}
|
|
}
|
|
|
|
return base.Think();
|
|
}
|
|
}
|