namespace BaseGames.AI
{
///
/// Boss 专属决策面。挂在 上供 Boss 图读取阶段状态、发起阶段过渡。
/// 只暴露"决策需要知道的",过渡演出与无敌帧由实现方(BossBase)负责。
/// 非 Boss 敌人访问 会抛异常——这是有意的显式失败。
///
public interface IBossControl
{
/// 当前阶段索引(出生为 0)。
int CurrentPhase { get; }
/// 是否处于阶段过渡(无敌 + 过渡演出)期间。
bool IsPhaseTransitioning { get; }
/// Boss 资源是否已满。未挂资源组件时抛异常——图问了资源却没配组件是配置错误。
bool ResourceFull { get; }
/// 发起阶段过渡:无敌 invincibleDuration 秒后切入 targetPhase。
/// 过渡进行中重复调用会被忽略并告警——应在 OnEnter 调用一次,不要放在 Tick。
void BeginPhaseTransition(int targetPhase, float invincibleDuration);
// 竞技场锚点两成员(AnchorAt / DistanceToAnchor)随 BossArenaAnchors 组件一并加入,
// 届时 BossBase 同步实现。
}
}