FSM.State.AddTransition C# (CSharp) Method

AddTransition() public method

public AddTransition ( Transition, _trans ) : void
_trans Transition,
return void
        public void AddTransition ( Transition _trans ) {
            DebugHelper.Assert( _trans != null, "the in transition can't not be null" );
            DebugHelper.Assert( transition_count < MaxTransition, "can't add more transition, the max count is 10!" );
            if ( _trans == null || transition_count >= MaxTransition )
                return;
                
            transition_list[transition_count] = _trans;
            ++transition_count;
        }
    } 

Usage Example

Example #1
0
    // ------------------------------------------------------------------ 
    // Desc: 
    // ------------------------------------------------------------------ 

    void InitFSM () {

        FSM.Condition cond_isPlayerInAttackRange = new Condition_isPlayerInAttackRange(this,60.0f,1.5f);
        FSM.Condition cond_isAttacking = new Condition_isAttacking(this);
        FSM.Condition cond_noHP = new Condition_noHP(this.zombieInfo);

        // ======================================================== 
        // setup states
        // ======================================================== 

        // seekPlayers
        FSM.State state_seekPlayers = new FSM.State( "SeekPlayers", 
                                                     new Action_PlayAnim(this.anim,"walk"), 
                                                     new Action_MoveToNearestAlivedPlayer(0.01f,this), 
                                                     new Action_StopMoving(this) );
        // attack
        FSM.State state_attack = new FSM.State( "Attack", 
                                                new Action_Attack(this), 
                                                null,
                                                null );
        // dead
        FSM.State state_dead = new FSM.State( "Dead",
                                              new Action_ActOnDead(this), 
                                              null,
                                              null );

        // ======================================================== 
        // setup transitions
        // ======================================================== 

        // seek to ...
        state_seekPlayers.AddTransition( new FSM.Transition( state_dead,
                                                             cond_noHP,
                                                             null ) );
        state_seekPlayers.AddTransition( new FSM.Transition( state_attack,
                                                             cond_isPlayerInAttackRange,
                                                             null ) );
        // attack to ...
        state_attack.AddTransition( new FSM.Transition( state_dead,
                                                        cond_noHP,
                                                        null ) );
        state_attack.AddTransition( new FSM.Transition( state_seekPlayers,
                                                        new FSM.Condition_not(cond_isAttacking),
                                                        null ) );

        //
        fsm.init(state_seekPlayers);
    }
All Usage Examples Of FSM.State::AddTransition