using Chickensoft.Introspection; namespace Zennysoft.Ma.Godot.Adapter; public partial class GameLogic { public partial record State { [Meta] public partial record FloorClearedDecisionState : Playing, IGet, IGet, IGet { public FloorClearedDecisionState() { this.OnAttach(() => { Get().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(); } public Transition On(in Input.SaveGame input) { Output(new Output.SaveGame()); return To(); } } } }