namespace Cielonos.MainGame { public partial class RunManager { /// /// RunPhase 的唯一切换入口。 /// 后续如果要加入阶段进入/退出钩子,应优先集中到这里,而不是散落在各个调用方。 /// public class RunPhaseSubmodule : SubmoduleBase { public RunPhaseSubmodule(RunManager owner) : base(owner) { } public void TransitionToPhase(RunPhase newPhase) { if (owner.currentPhase == newPhase) return; owner.currentPhase = newPhase; owner.RaisePhaseChanged(newPhase); } public bool IsPhaseAllowingNodeSelection() { switch (owner.currentPhase) { case RunPhase.MapSelection: case RunPhase.InShop: case RunPhase.InRest: case RunPhase.InMechanical: case RunPhase.InEvent: return true; default: return false; } } } } }