using Models; namespace Core; /// /// 高层控制器(面向 UI/输入) /// 设计说明: /// 1) Controller 只负责“指令式操作”,不直接做数值计算。 /// 2) 复杂结算交给系统层(GameSystems)。 /// 注意事项: /// - 需要可重入性,避免重复触发同一阶段切换。 /// 未来扩展: /// - 可加入“命令队列”,用于回放或网络同步。 /// public sealed class GameController : IController { private GameSession _session; /// /// 初始化控制器 /// /// 游戏会话 public void Initialize(GameSession session) { _session = session; } /// /// 开始执行阶段 /// public void StartExecution() { if (_session.State.Turn.Phase != GamePhase.Planning) return; _session.State.Turn.Phase = GamePhase.Execution; } /// /// 结束执行阶段 /// public void EndExecution() { if (_session.State.Turn.Phase != GamePhase.Execution) return; _session.State.Turn.Phase = GamePhase.Review; } /// /// 开始下一回合 /// public void StartNextTurn() { if (_session.State.Turn.Phase != GamePhase.Review) return; _session.State.Turn.CurrentTurn++; _session.State.Turn.Phase = GamePhase.Planning; } }