using Chickensoft.Introspection; using Chickensoft.LogicBlocks; namespace GameJamDungeon; public partial class AppLogic { public partial record State { [Meta] public partial record InGame : State, IGet { public InGame() { this.OnEnter(() => { Get().OnEnterGame(); Output(new Output.ShowGame()); }); this.OnExit(() => Output(new Output.HideGame())); OnAttach(() => Get().GameExited += OnGameExited); OnDetach(() => Get().GameExited -= OnGameExited); } public Transition On(in Input.GameOver input) { Output(new Output.RemoveExistingGame()); return To(); } public void OnGameExited() => Input(new Input.QuitGame()); } } }