示例#1
0
    private void MakeFSM()
    {
        mFSMSystem = new EliteMonsterFSMSystem();

        EliteMonsterChaseState chaseState = new EliteMonsterChaseState(mFSMSystem, this);

        chaseState.AddTransition(EliteMonsterTransition.Waitting, EliteMonsterStateID.Stroll);
        chaseState.AddTransition(EliteMonsterTransition.Reached, EliteMonsterStateID.Holding);

        EliteMonsterStrollState idleState = new EliteMonsterStrollState(mFSMSystem, this);

        idleState.AddTransition(EliteMonsterTransition.SeaEnemy, EliteMonsterStateID.Chase);

        EliteMonsterHoldState holdState = new EliteMonsterHoldState(mFSMSystem, this);

        holdState.AddTransition(EliteMonsterTransition.HoldSuccess, EliteMonsterStateID.Success);
        holdState.AddTransition(EliteMonsterTransition.HoldFail, EliteMonsterStateID.Defeat);

        EliteMonsterSuccessState successState = new EliteMonsterSuccessState(mFSMSystem, this);

        EliteMonsterDefeatState defeatState = new EliteMonsterDefeatState(mFSMSystem, this);

        mFSMSystem.AddState(chaseState, idleState, holdState, successState, defeatState);
    }
示例#2
0
 public EliteMonsterHoldState(EliteMonsterFSMSystem fsm, ICharacter character) : base(fsm, character)
 {
     mStateID = EliteMonsterStateID.Holding;
 }
 public EliteMonsterChaseState(EliteMonsterFSMSystem fsm, ICharacter character) : base(fsm, character)
 {
     mStateID = EliteMonsterStateID.Chase;
 }
 public EliteMonsterSuccessState(EliteMonsterFSMSystem fsm, ICharacter character) : base(fsm, character)
 {
     mStateID = EliteMonsterStateID.Success;
 }
示例#5
0
 public IEliteMonsterState(EliteMonsterFSMSystem fsm, ICharacter character)
 {
     mFSMSystem = fsm;
     mCharacter = character;
 }
 public EliteMonsterDefeatState(EliteMonsterFSMSystem fsm, ICharacter character) : base(fsm, character)
 {
     mStateID = EliteMonsterStateID.Defeat;
 }
 public EliteMonsterStrollState(EliteMonsterFSMSystem fsm, ICharacter character) : base(fsm, character)
 {
     mStateID = EliteMonsterStateID.Stroll;
 }