ai/ai_state.cs
// AiState.cs
using Sandbox;
public abstract class AiState
{
public AiBrain Brain { get; private set; }
public abstract string StateName { get; }
protected Fighter Fighter => Brain.Fighter;
protected FighterMovement Movement => Brain.Movement;
protected FighterCombat Combat => Brain.Combat;
protected AiBlackboard Blackboard => Brain.Blackboard;
public void Bind( AiBrain brain ) => Brain = brain;
public virtual void OnEnter() { }
public virtual void OnUpdate() { }
public virtual void OnExit() { }
/// <summary>
/// Retourne une ligne de synthèse pour l'UI de debug/monitoring.
/// </summary>
public virtual string GetDebugStatus() => StateName;
}