コード例 #1
0
ファイル: AIController.cs プロジェクト: nthfloor/Nebulon12
 private bool isFighterEngagedInBattle(TeamInformation ti, Fighter fi)
 {
     return ti.fighterBattleList.Keys.Contains(fi);
 }
コード例 #2
0
ファイル: AIController.cs プロジェクト: nthfloor/Nebulon12
 private void replenishFightersAndDestroyers(Game game)
 {
     foreach (TeamInformation ti in infoOnTeams)
     {
         if (!ti.fullyAIControlled)
             continue;
         int numFightersToBuy = 0;
         int numDestroyersToBuy = 0;
         int numberOfFightersOnSpawnList = 0;
         int numberOfDestroyersOnSpawnList = 0;
         foreach (DynamicObject o in ti.spawnQueue)
             if (o is Fighter)
                 numberOfFightersOnSpawnList++;
             else if (o is Destroyer)
                 numberOfDestroyersOnSpawnList++;
         if (ti.maxFighters > ti.teamFighters.Count)
         {
             if (ti.maxDestroyers <= ti.teamDestroyers.Count)
                 numFightersToBuy = (int)Math.Min(ti.teamCredits / TradingInformation.fighterCost, ti.maxFighters - ti.teamFighters.Count - numberOfFightersOnSpawnList);
             else
             {
                 numFightersToBuy = (int)Math.Min((int)(ti.teamCredits * PERCENT_OF_CREDITS_TO_SPEND_ON_FIGHTERS_WHEN_SHORT_ON_BOTH /
                     TradingInformation.fighterCost), ti.maxFighters - ti.teamFighters.Count - numberOfFightersOnSpawnList);
                 numDestroyersToBuy = (int)Math.Min((int)(ti.teamCredits * PERCENT_OF_CREDITS_TO_SPEND_ON_DESTROYERS_WHEN_SHORT_ON_BOTH /
                     TradingInformation.destroyerCost), ti.maxDestroyers - ti.teamDestroyers.Count - numberOfDestroyersOnSpawnList);
             }
         }
         else if (ti.maxDestroyers > ti.teamDestroyers.Count)
             numDestroyersToBuy = (int)Math.Min(ti.teamCredits / TradingInformation.destroyerCost,
                 ti.maxDestroyers - ti.teamDestroyers.Count - numberOfDestroyersOnSpawnList);
         for (int i = 0; i < numDestroyersToBuy; ++i)
         {
             Destroyer d = new Destroyer(game, ti.teamId, Vector3.Zero);
             d.Initialize();
             d.LoadContent();
             ti.spawnQueue.Add(d);
             ti.teamCredits -= TradingInformation.destroyerCost;
         }
         for (int i = 0; i < numFightersToBuy; ++i)
         {
             Fighter f = new Fighter(game, ti.teamId, Vector3.Zero);
             f.Initialize();
             f.LoadContent();
             ti.spawnQueue.Add(f);
             ti.teamCredits -= TradingInformation.fighterCost;
         }
     }
 }
コード例 #3
0
ファイル: TeamInformation.cs プロジェクト: nthfloor/Nebulon12
 /// <summary>
 /// Adds a new fighter to the spawn queue (call this when a asset aquisition is made)
 /// </summary>
 /// <param name="fi">Instance of instantiated, registered fighter</param>
 public void addNewFighterToTeam(Fighter fi)
 {
     this.spawnQueue.Add(fi);
 }