コード例 #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 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());
     }
 }
コード例 #3
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());
     }
 }