37 lines
866 B
C#
37 lines
866 B
C#
using Chickensoft.Introspection;
|
|
|
|
namespace Zennysoft.Game.Ma.Implementation;
|
|
|
|
public partial class GameLogic
|
|
{
|
|
public partial record State
|
|
{
|
|
[Meta]
|
|
public partial record Playing : State,
|
|
IGet<Input.GameOver>,
|
|
IGet<Input.AskForTeleport>,
|
|
IGet<Input.PauseGame>,
|
|
IGet<Input.GoToOverworld>
|
|
{
|
|
public Playing()
|
|
{
|
|
OnAttach(() => Output(new Output.StartGame()));
|
|
}
|
|
|
|
public void OnEnded() => Input(new Input.GameOver());
|
|
|
|
public Transition On(in Input.GameOver input) => To<Quit>();
|
|
|
|
public Transition On(in Input.AskForTeleport input) => To<AskForTeleport>();
|
|
|
|
public Transition On(in Input.PauseGame input) => To<Paused>();
|
|
|
|
public Transition On(in Input.GoToOverworld input)
|
|
{
|
|
Output(new Output.GoToOverworld());
|
|
return ToSelf();
|
|
}
|
|
}
|
|
}
|
|
}
|