void setFSM() { _fsm = new FSMBeetle(); _fsm.beetle = this; _fsm.beetleFlocking = _flocking; _fsm.beetleLineOfSight = _lineOfSight; patrolling = new StatePatrolling(_fsm); wander = new StateWander(_fsm); lostSquirrel = new StateLostSquirrel(_fsm); chasingSound = new StateChasingSound(_fsm); seekingSquirrel = new StateSeekingSquirrel(_fsm); //patrolling patrolling.transitions[InputBeetle.InSight] = seekingSquirrel; patrolling.transitions[InputBeetle.SoundHearded] = chasingSound; //seekingSquirrel seekingSquirrel.transitions[InputBeetle.LostSight] = lostSquirrel; //lostSquirrel lostSquirrel.transitions[InputBeetle.ReachedPosition] = wander; //wander wander.transitions[InputBeetle.InSight] = seekingSquirrel; wander.transitions[InputBeetle.SoundHearded] = chasingSound; wander.transitions[InputBeetle.finishedWandering] = patrolling; //chasingSound chasingSound.transitions[InputBeetle.ReachedPosition] = wander; chasingSound.transitions[InputBeetle.InSight] = seekingSquirrel; _fsm.SetInitial(patrolling); }
public StateWander(FSMBeetle fsm) : base(fsm, "Wander") { }
public StateChasingSound(FSMBeetle fsm) : base(fsm, "ChasingSound") { }
public StatePatrolling(FSMBeetle fsm) : base(fsm, "Patrolling") { }
public StateSeekingSquirrel(FSMBeetle fsm) : base(fsm, "SeekingSquirrel") { }
public StateLostSquirrel(FSMBeetle fsm) : base(fsm, "LostSquirrel") { }