示例#1
0
 public override void Execute(EnemyManager obj)
 {
     // The loop function during the alert state
     obj.Alert();
     // if the enemy die
     if (obj.IsDead())
     {
         obj.GetFSM().ChangeState(State_Enemy_Die.Instantiate());
     }
     // If the player die
     if (!obj.CanMove())
     {
         obj.GetFSM().ChangeState(State_Enemy_Idle.Instantiate());
     }
     // If the player is in the range
     if (obj.CanAttack())
     {
         obj.GetFSM().ChangeState(State_Enemy_UseSkill.Instantiate());
     }
     // If the player is out of the range for a dwell time
     if (!obj.CanContinueAlerted())
     {
         obj.GetFSM().ChangeState(State_Enemy_Move.Instantiate());
     }
 }
示例#2
0
    public static State_Enemy_Die Instantiate()
    {
        if (instance == null)
        {
            instance = new State_Enemy_Die();
        }

        return(instance);
    }
示例#3
0
 public override void Execute(EnemyManager obj)
 {
     // The loop function during the idle state of the enemy.
     obj.Idle();
     // If the ememy dies
     if (obj.IsDead())
     {
         obj.GetFSM().ChangeState(State_Enemy_Die.Instantiate());
     }
     // If the player die
     if (obj.CanMove())
     {
         obj.GetFSM().ChangeState(State_Enemy_Move.Instantiate());
     }
 }
示例#4
0
 public override void Execute(EnemyManager obj)
 {
     // Function during the move state
     obj.Move();
     // If the ememy dies
     if (obj.IsDead())
     {
         obj.GetFSM().ChangeState(State_Enemy_Die.Instantiate());
     }
     // If the player die
     if (!obj.CanMove())
     {
         obj.GetFSM().ChangeState(State_Enemy_Idle.Instantiate());
     }
     // If the player is in the range
     if (obj.CanAlerted())
     {
         obj.GetFSM().ChangeState(State_Enemy_Alert.Instantiate());
     }
 }
示例#5
0
 public override void Execute(EnemyManager obj)
 {
     // The function during the useskill loop
     obj.UseSkill();
     // If the enemy is dead
     if (obj.IsDead())
     {
         obj.GetFSM().ChangeState(State_Enemy_Die.Instantiate());
     }
     // If the player die
     if (!obj.CanMove())
     {
         obj.GetFSM().ChangeState(State_Enemy_Idle.Instantiate());
     }
     // If the player is out of the range
     if (!obj.CanContinueAttack())
     {
         obj.GetFSM().ChangeState(State_Enemy_Alert.Instantiate());
     }
 }