using Chickensoft.Introspection; using static Zennysoft.Game.Ma.EnemyLogic.Input; namespace Zennysoft.Game.Ma; public partial class EnemyLogic { public partial record State { [Meta, Id("enemy_logic_state_alive")] public abstract partial record Alive : State, IGet, IGet, IGet, IGet, IGet, IGet, IGet, IGet { public Transition On(in Reset input) { Output(new Output.ReturnToDefaultState()); return ToSelf(); } public Transition On(in Input.Defeated input) => To(); public Transition On(in Follow _) => To(); public Transition On(in Flee _) => To(); public Transition On(in LoseTrackOfTarget input) { Output(new Output.ReturnToDefaultState()); return To(); } public Transition On(in ReachedPlayer input) { Output(new Output.Idle()); return To(); } public Transition On(in Patrol _) => To(); public Transition On(in Idle input) { Output(new Output.Idle()); return ToSelf(); } public Transition On(in Move input) { Output(new Output.Move()); return ToSelf(); } } } }