コード例 #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
 public AI_Movement(int ID) : base(ID)
 {
     ShootingAITool = new AI_Shooting(ID);
     base.CallTheConstructor(ID);
     if (unitsSkippingTurn == null)
     {
         unitsSkippingTurn = new List <UnitScript>();
     }
 }