40 lines
1.2 KiB
C#
40 lines
1.2 KiB
C#
namespace Cielonos.MainGame
|
|
{
|
|
public partial class RunManager
|
|
{
|
|
/// <summary>
|
|
/// RunPhase 的唯一切换入口。
|
|
/// 后续如果要加入阶段进入/退出钩子,应优先集中到这里,而不是散落在各个调用方。
|
|
/// </summary>
|
|
public class RunPhaseSubmodule : SubmoduleBase<RunManager>
|
|
{
|
|
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;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|