supervisor-simulator/scripts/Core/GameController.cs
2026-01-18 20:05:23 +08:00

50 lines
1.5 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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