コード例 #1
0
    public void ChangeAIToAppropriateOne(int ID)
    {
        if (ID > 1)
        {
            Debug.LogError("Wrong ID! Too high!");
            return;
        }

        if ((GameStateManager.Instance.GameState == GameStates.IdleState || GameStateManager.Instance.GameState == GameStates.AttackState) && TurnManager.Instance.CurrentPhase == TurnPhases.Attack && TurnManager.Instance.PlayerHavingTurn == TurnManager.Instance.PlayerToMove && IsCurrentTurnHuman() == false)
        {
            PlayerAIs[ID] = new AI_Attack(ID);
            return;
        }

        if ((GameStateManager.Instance.GameState == GameStates.IdleState || GameStateManager.Instance.GameState == GameStates.ShootingState) && TurnManager.Instance.CurrentPhase == TurnPhases.Shooting)
        {
            PlayerAIs[ID] = new AI_Shooting(ID);
            return;
        }

        if ((GameStateManager.Instance.GameState == GameStates.IdleState || GameStateManager.Instance.GameState == GameStates.MoveState) && TurnManager.Instance.CurrentPhase == TurnPhases.Movement)
        {
            if (!didAllTheQCDecisionsHappen)
            {
                PlayerAIs[ID] = new AI_QuitCombat(ID);
            }
            else
            {
                PlayerAIs[ID] = new AI_Movement(ID);
            }
            return;
        }
    }
コード例 #2
0
 private AI_Attack()
 {
     if (_instance != null)
     {
         return;
     }
     _instance = this;
 }
コード例 #3
0
 private void OnTriggerEnter(Collider other)
 {
     if (other.tag == "AI_Agressive")
     {
         AI_Attack target = other.gameObject.GetComponent <AI_Attack>();
         if (target.ID_UQNIQUE != ID_HOLDER)
         {
             target.GetHit();
             Explode();
         }
     }
 }