37 lines
932 B
C#
37 lines
932 B
C#
using Chickensoft.Introspection;
|
|
|
|
namespace Zennysoft.Ma.Adapter;
|
|
|
|
public partial class GameLogic
|
|
{
|
|
public partial record State
|
|
{
|
|
[Meta]
|
|
public partial record FloorClearedDecisionState : Playing, IGet<Input.GoToNextFloor>, IGet<Input.SaveGame>, IGet<Input.HideFloorClearMenu>
|
|
{
|
|
public FloorClearedDecisionState()
|
|
{
|
|
this.OnAttach(() => { Get<IGameRepo>().Pause(); Output(new Output.ShowFloorClearMenu()); });
|
|
this.OnDetach(() => { Output(new Output.ExitFloorClearMenu()); });
|
|
}
|
|
|
|
public Transition On(in Input.GoToNextFloor input)
|
|
{
|
|
Output(new Output.LoadNextFloor());
|
|
return ToSelf();
|
|
}
|
|
|
|
public Transition On(in Input.HideFloorClearMenu input)
|
|
{
|
|
return To<Playing>();
|
|
}
|
|
|
|
public Transition On(in Input.SaveGame input)
|
|
{
|
|
Output(new Output.SaveGame());
|
|
return To<Playing>();
|
|
}
|
|
}
|
|
}
|
|
}
|