using BaseGames.AI; namespace BaseGames.Tests.EditMode.AI { public sealed class FakeBossControl : IBossControl { public int Phase; public bool Transitioning; public bool Full; // 记录最近一次过渡请求,供断言"图确实发起了过渡" public int LastTargetPhase = -1; public float LastDuration = -1f; public int BeginCallCount; // 锚点:测试按下标直给坐标;距离由测试直接设定 public UnityEngine.Vector2[] Anchors = new UnityEngine.Vector2[0]; public float DistanceToAnchorValue; public int CurrentPhase => Phase; public bool IsPhaseTransitioning => Transitioning; public bool ResourceFull => Full; public void BeginPhaseTransition(int targetPhase, float invincibleDuration) { LastTargetPhase = targetPhase; LastDuration = invincibleDuration; BeginCallCount++; Transitioning = true; // 由测试手工置回 false 模拟过渡结束 } public UnityEngine.Vector2 AnchorAt(int index) => Anchors[index]; public float DistanceToAnchor(int index) => DistanceToAnchorValue; } }