示例#1
0
 public void EndTurn() //Calculation of money and people income at the end of turn
 {
     money += people * hall.tax / 100;
     if (people + houses.peopleBonus <= houses.populationLimit)
     {
         people += houses.peopleBonus;
     }
     else
     {
         people = houses.populationLimit;
     }
     if (!AI)
     {
         turnCount       += 1;
         controller.turn += 1;
         if (AutoHire)
         {
             for (int i = 0; i < 5; i++)
             {
                 army.HireRookie();
                 army.HireShooter();
                 army.HireInfantry();
                 army.HireCavalry();
             }
         }
         ui.showInfoPlayer();
     }
 }
示例#2
0
 void MakeTurn() //AI script to make actions on it's turn
 {
     if (Player.turnCount == 1)
     {
         houses.lvlUp();
         townhall.lvlUp();
     }
     if (behaviour) //if this AI is "builder" type
     {
         if (Player.turnCount % Random.Range(3, 7) == 0 && player.money > 500)
         {
             houses.lvlUp();
             townhall.lvlUp();
         }
         if (Player.turnCount % Random.Range(7, 9) == 0)
         {
             walls.lvlUp();
             barracks.lvlUp();
             for (int i = 0; i < 5; i++)
             {
                 army.HireCavalry();
                 army.HireInfantry();
                 army.HireShooter();
                 army.HireRookie();
             }
         }
         if (Player.turnCount % Random.Range(20, 30) == 0)
         {
             crusade.ConfirmCrusade(army.rookie / 2, army.shooter / 2, army.infantry / 2, army.cavalry / 2);
             rnd = Random.Range(0, 100);
         }
     }
     else //if this AI is "aggressive" type
     {
         if (player.money > 300)
         {
             barracks.lvlUp();
             for (int i = 0; i < 5; i++)
             {
                 army.HireCavalry();
                 army.HireInfantry();
                 army.HireShooter();
                 army.HireRookie();
             }
         }
         if (Player.turnCount % Random.Range(5, 9) == 0)
         {
             townhall.lvlUp();
             houses.lvlUp();
             if (!crusade.Crusade)
             {
                 crusade.ConfirmCrusade(army.rookie * 3 / 4, army.shooter, army.infantry, army.cavalry);
                 rnd = Random.Range(0, 100);
             }
         }
     }
     if (crusade.Crusade)
     {
         if (rnd <= 33 && player.Enemy1.gameObject.activeSelf)
         {
             attackPoint = player.Enemy1.crusade.CrusadeSquad.transform.localPosition;
         }
         else if (rnd > 33 && rnd <= 66 && player.Enemy2.gameObject.activeSelf)
         {
             attackPoint = player.Enemy2.crusade.CrusadeSquad.transform.localPosition;
         }
         else if (rnd > 66 && rnd <= 100 && player.Enemy3.gameObject.activeSelf)
         {
             attackPoint = player.Enemy3.crusade.CrusadeSquad.transform.localPosition;
         }
         else if (player.Enemy1.gameObject.activeSelf)
         {
             attackPoint = player.Enemy1.crusade.CrusadeSquad.transform.localPosition;
         }
         else if (player.Enemy2.gameObject.activeSelf)
         {
             attackPoint = player.Enemy2.crusade.CrusadeSquad.transform.localPosition;
         }
         else if (player.Enemy3.gameObject.activeSelf)
         {
             attackPoint = player.Enemy3.crusade.CrusadeSquad.transform.localPosition;
         }
         MoveToAttack(attackPoint);
     }
     player.EndTurn();
     army.EndTurn();
     crusade.EndTurn();
 }