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;
}
}
}
}
}