20 lines
704 B
C#
20 lines
704 B
C#
using GameCore.ECS;
|
|
using GameCore.ECS.Interfaces;
|
|
using GameCore.Math;
|
|
|
|
namespace GameCore.AI;
|
|
|
|
public class AIComponent : IComponent
|
|
{
|
|
public AIState CurrentState { get; set; } = AIState.Idle;
|
|
public Entity? Target { get; set; }
|
|
public float StateTimer { get; set; } = 0.0f;
|
|
public Vector3 LastKnownTargetPosition { get; set; } = Vector3.Zero;
|
|
|
|
public float SightRange { get; set; } = 20.0f;
|
|
public float FieldOfView { get; set; } = 90.0f; // in degrees
|
|
public float AttackRange { get; set; } = 10.0f;
|
|
public float ChaseGiveUpTime { get; set; } = 5.0f;
|
|
public float ReactionTime { get; set; } = 0.5f;
|
|
public float AttackRangeBufferPercent { get; set; } = 0.2f;
|
|
} |