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