protected virtual void MakeFSM() { fsmSystem = new SoldierSatateSystem(); SoldierIdleState idle = new SoldierIdleState(fsmSystem, this); idle.AddTransition(SoldierTransition.SeeEnemy, SoldierStateID.Chase); SoldierAttackState attack = new SoldierAttackState(fsmSystem, this); attack.AddTransition(SoldierTransition.NoEnemy, SoldierStateID.Idle); attack.AddTransition(SoldierTransition.SeeEnemy, SoldierStateID.Chase); SoldierChaseState chase = new SoldierChaseState(fsmSystem, this); chase.AddTransition(SoldierTransition.NoEnemy, SoldierStateID.Idle); chase.AddTransition(SoldierTransition.CanAttack, SoldierStateID.Attack); fsmSystem.AddStateRange(idle, attack, chase); }
public SoldierIdleState(SoldierSatateSystem _fsm, AbsCharacter _character) : base(_fsm, _character) { StateID = SoldierStateID.Idle; }
public AbsSoldierState(SoldierSatateSystem _fsm, AbsCharacter _character) { fsm = _fsm; character = _character; }
public SoldierAttackState(SoldierSatateSystem _fsm, AbsCharacter _character) : base(_fsm, _character) { StateID = SoldierStateID.Attack; }