protected override void InitialiseBrain() { brain = new StateMachine.FSM(this); var patrol = new Patrol(); var dead = new Dead(); patrol.AddTransition(dead, () => { return(!IsAlive); }); brain.AddState(patrol); brain.AddState(dead); brain.Initialise("Patrol"); }
protected override void InitialiseBrain() { brain = new StateMachine.FSM(this); var patrol = new Patrol(); var dying = new Dying(CorpseAppearance); var dead = new Dead(); patrol.AddTransition(dying, () => { return(!IsAlive); }); dying.AddTransition(dead, () => { return(dying.HitGround); }); brain.AddState(patrol); brain.AddState(dying); brain.AddState(dead); brain.Initialise("Patrol"); }
protected override void InitialiseBrain() { brain = new StateMachine.FSM(this); var start = new Start(); var idle1 = new Idle(); var idle2 = new Idle(); var up = new Up(this); var down = new Down(this); //Transitions out of start state start.AddTransition(down, () => { return(start.down); }); start.AddTransition(up, () => { return(start.up); }); //Behaviour loop: down -> idle -> up -> idle -> down idle1.AddTransition(down, () => { return(idle1.DurationOver); }); down.AddTransition(idle2, () => { return(down.Done); }); idle2.AddTransition(up, () => { return(idle2.DurationOver); }); up.AddTransition(idle1, () => { return(up.Done); }); brain.AddStates(start, idle1, idle2, up, down); brain.Initialise("Start"); }