public static smTransitionResult DoTransition(this Ism sm, IsmParameter parameter) { switch (sm.State.UnionCase) { case smState.UnionCases.a: { switch (parameter.Trigger.UnionCase) { case smTrigger.UnionCases.atob: return(new smTransition(sm, ((asm)sm).atob((smParameters.atob)parameter), parameter)); default: return(new smInvalidTrigger(sm, parameter)); } } case smState.UnionCases.b: { switch (parameter.Trigger.UnionCase) { default: return(new smInvalidTrigger(sm, parameter)); } } default: throw new ArgumentException($"Unknown type implementing Ism: {sm.GetType().Name}"); } }
public void Update(Ism entitySM) { this._delay = Environment.TickCount; if (Delay - LastCalled < MIN_DELAY) { return;// no time yet for change state } this._lastcalled = _delay; switch (currentstate) { case State.ATTACK: entitySM.Attack(); break; case State.RUN: entitySM.Run(); break; case State.STAND: entitySM.Stand(); break; case State.WONDER: entitySM.Wonder(); break; default: break; } }
public static async Task <T> Match <T>(this Ism sm, Func <asm, Task <T> > a, Func <bsm, Task <T> > b) { switch (sm.State.UnionCase) { case smState.UnionCases.a: return(await a((asm)sm).ConfigureAwait(false)); case smState.UnionCases.b: return(await b((bsm)sm).ConfigureAwait(false)); default: throw new ArgumentException($"Unknown type derived from Ism: {sm.GetType().Name}"); } }
public static T Match <T>(this Ism sm, Func <asm, T> a, Func <bsm, T> b) { switch (sm.State.UnionCase) { case smState.UnionCases.a: return(a((asm)sm)); case smState.UnionCases.b: return(b((bsm)sm)); default: throw new ArgumentException($"Unknown type derived from Ism: {sm.GetType().Name}"); } }
private void Change_Click(object sender, EventArgs e) { Ism.Clear(); StringBuilder strb = new StringBuilder(Isn.Text); char buf; if (strb.Length == 0) { return; } for (int i = 0; i + 2 <= strb.Length; i += 2) { buf = strb[i]; strb[i] = strb[i + 1]; strb[i + 1] = buf; } Ism.Text = strb.ToString(); }
void Ism.Update(Ism entityIsm) { if (!IsKilled) { cSM.Update(entityIsm); if (moving) { Goto(); } } else { if (despawnTimer == null) { OnBehead(null); } //Despawn(null); } }
void Ism.Update(Ism entityIsm) { Goto(); }
public smInvalidTrigger(Ism source, IsmParameter trigger) { Source = source; Trigger = trigger; }
public smTransition(Ism source, Ism destination, IsmParameter trigger) { Source = source; Destination = destination; Trigger = trigger; }