namespace BaseGames.AI
{
///
/// 传给所有状态回调 / 转换条件的上下文。声明层的 lambda 只能通过它访问实例,
/// 不得闭包捕获具体敌人——这是 lambda 挂在共享 AiGraph 上的前提。
///
public interface IAiContext
{
ISensor Sensor { get; }
IEnemyLocomotion Locomotion { get; }
ICombatant Combat { get; }
IActorVitals Vitals { get; }
Blackboard Blackboard { get; }
///
/// Boss 专属决策面。**非 Boss 敌人访问本属性会抛 InvalidOperationException**——
/// 小怪图误用 Boss 边必须立刻暴露,不返回空对象把问题盖住。
///
IBossControl Boss { get; }
}
}