using Chickensoft.Introspection; using Chickensoft.LogicBlocks; using Zennysoft.Game.Abstractions; namespace Zennysoft.Ma.Adapter; public partial class AppLogic { public partial record State { [Meta] public partial record GameStarted : State { public GameStarted() { this.OnEnter(() => { Output(new Output.SetupGameScene()); Output(new Output.ShowGame()); Get().OnEnterGame(); }); this.OnExit(() => Output(new Output.HideGame())); OnAttach(() => Get().GameExited += OnGameExited); OnDetach(() => Get().GameExited -= OnGameExited); } public void OnGameExited() => Input(new Input.QuitGame()); } } }