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;
 }
Example #4
0
 public SoldierAttackState(SoldierSatateSystem _fsm, AbsCharacter _character)
     : base(_fsm, _character)
 {
     StateID = SoldierStateID.Attack;
 }