View Issue Details
ID | Project | Category | Date Submitted | Last Update | |
---|---|---|---|---|---|
0018806 | AI War 1 / Classic | Bug - Gameplay | Apr 28, 2016 8:13 pm | Apr 28, 2016 8:21 pm | |
Reporter | tadrinth | Assigned To | |||
Status | new | Resolution | open | ||
Product Version | 8.023 | ||||
Summary | 0018806: WormholeGuard Posts not getting reinforcements | ||||
Description | I'm not seeing any reinforcements to Wormhole Guard posts in my game. I've got a system adjacent to my homeworld that's been on alert pretty much the entire game, and I've not ever seen it get reinforced to anywhere but the command station. I cranked up the sim speed and let it run for a while, and while the command station got reinforcements, the WHGPs did not. This seemed to hold for all planets I've neutered. Pretty sure getting reinforcements is the reason WHGPs exist, so that seems like a significant bug. See attached save, and attached logs; Baton Rouge is the planet I was referring to. It has no regular guard posts, only WHGPs and the command station and a warp gate. In another test, it looked like the regular guard posts were getting reinforcements along with the command station, but not the WHGPs. | ||||
Tags | No tags attached. | ||||
Internal Weight | |||||
|
|
|
LogicLog_AIMechanic_Reinforcements_MainThread.txt (80,886 bytes)
4/28/2016 7:16:32 PM (8.023) 4:40:32 ReinforcementCounter reached > 2400 for player 9 (since game was loaded, took 121 checks of (9+rand(2 or 3)) or alternatively a wave was converted to a reinforcement because Turtle or whatever AIProgressionLevelEffective = 230 AITechLevel = 2 numberOfReinforcements = (number of planets not controlled by the AI / 2) = 5 since AIDifficulty >= 8, numberOfReinforcements += 1 = 6 Effective reinforcement AIP capped at 200 + (the extra * 20% * the number of completed spire city hubs:200 = Planets in order of planned reinforcement attempt (note: alerted planets will get two lines, and a line with priority >= 2000 will get tried twice) : 24 (Austin ) (alerted) reinforce priority = 0 43 (Concord ) (alerted) reinforce priority = 0 22 (Baton Rouge ) (alerted) reinforce priority = 0 51 (Montana ) (alerted) reinforce priority = 0 8 (Jackson ) (alerted) reinforce priority = 0 16 (Alioth) (alerted) reinforce priority = 0 6 (Dengaida) (alerted) reinforce priority = 0 = (if it gets down here and was able to reinforce any of them, it goes back to the top of the list and tries them again.) 36 (YOUNGSTER HOME) (homeworld, +500) reinforce priority = 500 28 (NESTER HOME) (homeworld, +500) reinforce priority = 500 37 (Providence ) (core, +300) reinforce priority = 300 29 (Connecticut ) (core, +300) reinforce priority = 300 27 (California ) (core, +300) reinforce priority = 300 35 (Richmond ) (core, +300) reinforce priority = 300 (40 more reinforceable planets that are not alerted and have reinforcement priority = 0 baseReinforcementFleetShipBudget = 1.5 * AIDiff * handicapMultiplier = 13.5 baseReinforcementFleetShipBudget += 4 + ( player.AIDifficulty / 2 ) = 22 baseReinforcementFleetShipBudget += ((AIP/10) * (AIDiff/10)) = 40 baseReinforcementFleetShipBudget *= 0.175 = 6.99 baseReinforcementFleetShipBudget must be at most 35; = 6.99 baseReinforcementFleetShipBudget *= 1 + ( AIP * 0.08 ) = 76.64 baseReinforcementFleetShipBudget *= MultiplierFromHumanHomeworlds = 76.64 baseReinforcementFleetShipBudget *= player.AITypeData.ReinforcementsMultiplier = 76.64 uncappedAIPReinforcementFleetShipBudget = 1.5 * AIDiff * handicapMultiplier = 13.5 uncappedAIPReinforcementFleetShipBudget += 4 + ( player.AIDifficulty / 2 ) = 22 uncappedAIPReinforcementFleetShipBudget += ((AIP/10) * (AIDiff/10)) = 42.7 uncappedAIPReinforcementFleetShipBudget *= 0.175 = 7.46 uncappedAIPReinforcementFleetShipBudget *= 1 + ( AIP * 0.08 ) = 92.96 uncappedAIPReinforcementFleetShipBudget *= MultiplierFromHumanHomeworlds = 92.96 uncappedAIPReinforcementFleetShipBudget *= player.AITypeData.ReinforcementsMultiplier = 92.96 **** reinforcementBudgetToRedirectToOtherThings += ( uncappedAIPReinforcementFleetShipBudget - baseReinforcementFleetShipBudget ) * numberOfReinforcements = 97.95 = Trying to reinforce Austin (#24) planet.CurrentFleetshipReinforcementBalance = -7.54 Reinforcement focus types: Bomber,MicroFighter,Cruiser numberOfGuardables = planet.FgNonWormholeNonSpecialForcesGuardPosts.Count + ( planet.OrbitalCommandStation == null ? 0 : 1 ) = 1 currentPopulation = rollup.AlliedUnits.Count + rollup.Planet.FgColdStorageUnits.Count = 49 populationCap = numberOfGuardables = 1 populationCap *= Game.Instance.Options.UnitCapScale.AIShipCapPerPost = 75 since !(planet.WasOriginallyHomePlanet || planet.IsCoreAIPlanet), maximum = Game.Instance.Options.UnitCapScale.AIShipCapMaxNormal = 500 minimum = Game.Instance.Options.UnitCapScale.AIShipCapMinimum = 200 populationCap = Max(populationCap,mimimum) = 200 currentPopulation < populationCap, so proceeding with reinforcement here multiplierFromPriority = 1 multiplierFromSpecialStructures = 1 multiplierFromGuardPosts = 1 + planet.FgNonWormholeNonSpecialForcesGuardPosts.Count * 0.1 = 1 reinforcementFleetShipBudget = baseReinforcementFleetShipBudget = 76.64 reinforcementFleetShipBudget *= multiplierFromPriority = 76.64 reinforcementFleetShipBudget *= multiplierFromSpecialStructures = 76.64 reinforcementFleetShipBudget *= multiplierFromGuardPosts = 76.64 planet.CurrentFleetshipReinforcementBalance += reinforcementFleetShipBudget = 69.1 called Helper_PickUnitsForReinforcement with: FighterII, BomberII, MissileShipII, SpaceTankII, MicroFighterII, GrenadeLauncherII, ZenithPolarizerII, YounglingShrikeII which became, after calling PruneFGTypeListAccordingToPlanetReinforcementTypes, : BomberII, BomberII, BomberII, BomberII, BomberII, BomberII, BomberII, BomberII, BomberII, MissileShipII, MicroFighterII, MicroFighterII, MicroFighterII ** Picked 2 MicroFighterII @ 5.33 each = 10.66 8 BomberII @ 8 each = 64 After picking fleet ships, planet.CurrentFleetshipReinforcementBalance = is now -5.57 = checking for starship or guardian reinforcements reinforcementFleetShipBudget: 76.64 player.AITypeData.StarshipBudgetMultiplier: 0.08 = reinforcementStarshipBudget = reinforcementFleetShipBudget * player.AITypeData.StarshipBudgetMultiplier * 8 = 51.49 planet.CurrentStarshipGuardianReinforcementBalance += reinforcementStarshipBudget = -95.71 since CurrentStarshipGuardianReinforcementBalance <= 0, skipping starship/guardians this time around. remainingReinforcements -= multiplierFromPriority = 5 = Trying to reinforce Concord (#43) planet.CurrentFleetshipReinforcementBalance = -7.28 Reinforcement focus types: Cruiser,Fighter,Bomber numberOfGuardables = planet.FgNonWormholeNonSpecialForcesGuardPosts.Count + ( planet.OrbitalCommandStation == null ? 0 : 1 ) = 1 currentPopulation = rollup.AlliedUnits.Count + rollup.Planet.FgColdStorageUnits.Count = 12 populationCap = numberOfGuardables = 1 populationCap *= Game.Instance.Options.UnitCapScale.AIShipCapPerPost = 75 since !(planet.WasOriginallyHomePlanet || planet.IsCoreAIPlanet), maximum = Game.Instance.Options.UnitCapScale.AIShipCapMaxNormal = 500 minimum = Game.Instance.Options.UnitCapScale.AIShipCapMinimum = 200 populationCap = Max(populationCap,mimimum) = 200 currentPopulation < populationCap, so proceeding with reinforcement here multiplierFromPriority = 1 multiplierFromSpecialStructures = 1 multiplierFromGuardPosts = 1 + planet.FgNonWormholeNonSpecialForcesGuardPosts.Count * 0.1 = 1 reinforcementFleetShipBudget = baseReinforcementFleetShipBudget = 76.64 reinforcementFleetShipBudget *= multiplierFromPriority = 76.64 reinforcementFleetShipBudget *= multiplierFromSpecialStructures = 76.64 reinforcementFleetShipBudget *= multiplierFromGuardPosts = 76.64 planet.CurrentFleetshipReinforcementBalance += reinforcementFleetShipBudget = 69.36 called Helper_PickUnitsForReinforcement with: FighterII, BomberII, MissileShipII, SpaceTankII, MicroFighterII, GrenadeLauncherII, ZenithPolarizerII, YounglingShrikeII which became, after calling PruneFGTypeListAccordingToPlanetReinforcementTypes, : FighterII, FighterII, FighterII, BomberII, MissileShipII, MissileShipII, MissileShipII, MissileShipII, MissileShipII, MissileShipII, MissileShipII, MissileShipII, MissileShipII ** Picked 8 MissileShipII @ 8 each = 64 1 FighterII @ 8 each = 8 After picking fleet ships, planet.CurrentFleetshipReinforcementBalance = is now -2.64 = checking for starship or guardian reinforcements reinforcementFleetShipBudget: 76.64 player.AITypeData.StarshipBudgetMultiplier: 0.08 = reinforcementStarshipBudget = reinforcementFleetShipBudget * player.AITypeData.StarshipBudgetMultiplier * 8 = 51.49 planet.CurrentStarshipGuardianReinforcementBalance += reinforcementStarshipBudget = 23.46 maxStarshipsAtPlanet = planetReinforcementAITechLevel * 3 = 6 current starship count: 0 maxGuardiansPerGuardable is 1, plus 1 if Diff >= 8, plus 1 if Diff >= 10: 2 totalAllowedGuardians = numberOfGuardables * maxGuardiansPerGuardable = 2 currentGuardianCount: 0 both starships and guardians are allowed for this reinforcemenmt, so flipping a coin: guardians called Helper_PickUnitsForReinforcement with: AIGuardianLightning, AIGuardianFlak, AIGuardianSpecialForcesRally, AIGuardianWarpGate, AIGuardianZombie, AIGuardianStarshipDisassembler, AIGuardian_Needler which became, after calling PruneFGTypeListAccordingToPlanetReinforcementTypes, : AIGuardianLightning, AIGuardianFlak, AIGuardianSpecialForcesRally, AIGuardianWarpGate, AIGuardianZombie, AIGuardianStarshipDisassembler, AIGuardian_Needler ** Picked 1 AIGuardianStarshipDisassembler @ 96 each = 96 After picking, planet.CurrentStarshipGuardianReinforcementBalance = -72.54 remainingReinforcements -= multiplierFromPriority = 4 = Trying to reinforce Baton Rouge (#22) planet.CurrentFleetshipReinforcementBalance = -2.51 Reinforcement focus types: YounglingShrike,ZenithPolarizer,MicroFighter numberOfGuardables = planet.FgNonWormholeNonSpecialForcesGuardPosts.Count + ( planet.OrbitalCommandStation == null ? 0 : 1 ) = 1 currentPopulation = rollup.AlliedUnits.Count + rollup.Planet.FgColdStorageUnits.Count = 11 populationCap = numberOfGuardables = 1 populationCap *= Game.Instance.Options.UnitCapScale.AIShipCapPerPost = 75 since !(planet.WasOriginallyHomePlanet || planet.IsCoreAIPlanet), maximum = Game.Instance.Options.UnitCapScale.AIShipCapMaxNormal = 500 minimum = Game.Instance.Options.UnitCapScale.AIShipCapMinimum = 200 populationCap = Max(populationCap,mimimum) = 200 currentPopulation < populationCap, so proceeding with reinforcement here multiplierFromPriority = 1 multiplierFromSpecialStructures = 1 multiplierFromGuardPosts = 1 + planet.FgNonWormholeNonSpecialForcesGuardPosts.Count * 0.1 = 1 reinforcementFleetShipBudget = baseReinforcementFleetShipBudget = 76.64 reinforcementFleetShipBudget *= multiplierFromPriority = 76.64 reinforcementFleetShipBudget *= multiplierFromSpecialStructures = 76.64 reinforcementFleetShipBudget *= multiplierFromGuardPosts = 76.64 planet.CurrentFleetshipReinforcementBalance += reinforcementFleetShipBudget = 74.12 called Helper_PickUnitsForReinforcement with: Fighter, Bomber, MissileShip, SpaceTank, MicroFighter, GrenadeLauncher, ZenithPolarizer, YounglingShrike which became, after calling PruneFGTypeListAccordingToPlanetReinforcementTypes, : MicroFighter, ZenithPolarizer, ZenithPolarizer, ZenithPolarizer, YounglingShrike, YounglingShrike, YounglingShrike, YounglingShrike, YounglingShrike, YounglingShrike, YounglingShrike, YounglingShrike, YounglingShrike ** Picked 7 ZenithPolarizer @ 4 each = 28 12 YounglingShrike @ 4 each = 48 After picking fleet ships, planet.CurrentFleetshipReinforcementBalance = is now -1.88 = checking for starship or guardian reinforcements reinforcementFleetShipBudget: 76.64 player.AITypeData.StarshipBudgetMultiplier: 0.08 = reinforcementStarshipBudget = reinforcementFleetShipBudget * player.AITypeData.StarshipBudgetMultiplier * 8 = 51.49 planet.CurrentStarshipGuardianReinforcementBalance += reinforcementStarshipBudget = 30.85 maxStarshipsAtPlanet = planetReinforcementAITechLevel * 3 = 3 current starship count: 0 this planet is adjacent to a human homeworld, so can't pick guardians maxGuardiansPerGuardable is 1, plus 1 if Diff >= 8, plus 1 if Diff >= 10: 2 totalAllowedGuardians = numberOfGuardables * maxGuardiansPerGuardable = 2 currentGuardianCount: 0 called Helper_PickUnitsForReinforcement with: LightStarship, Dreadnought, LeechStarship which became, after calling PruneFGTypeListAccordingToPlanetReinforcementTypes, : LightStarship, Dreadnought, LeechStarship ** Picked 1 LeechStarship @ 96 each = 96 After picking, planet.CurrentStarshipGuardianReinforcementBalance = -65.15 remainingReinforcements -= multiplierFromPriority = 3 = Trying to reinforce Montana (#51) planet.CurrentFleetshipReinforcementBalance = -2.39 Reinforcement focus types: YounglingShrike,Cruiser,Fighter numberOfGuardables = planet.FgNonWormholeNonSpecialForcesGuardPosts.Count + ( planet.OrbitalCommandStation == null ? 0 : 1 ) = 1 currentPopulation = rollup.AlliedUnits.Count + rollup.Planet.FgColdStorageUnits.Count = 55 populationCap = numberOfGuardables = 1 populationCap *= Game.Instance.Options.UnitCapScale.AIShipCapPerPost = 75 since !(planet.WasOriginallyHomePlanet || planet.IsCoreAIPlanet), maximum = Game.Instance.Options.UnitCapScale.AIShipCapMaxNormal = 500 minimum = Game.Instance.Options.UnitCapScale.AIShipCapMinimum = 200 populationCap = Max(populationCap,mimimum) = 200 currentPopulation < populationCap, so proceeding with reinforcement here multiplierFromPriority = 1 multiplierFromSpecialStructures = 1 multiplierFromGuardPosts = 1 + planet.FgNonWormholeNonSpecialForcesGuardPosts.Count * 0.1 = 1 reinforcementFleetShipBudget = baseReinforcementFleetShipBudget = 76.64 reinforcementFleetShipBudget *= multiplierFromPriority = 76.64 reinforcementFleetShipBudget *= multiplierFromSpecialStructures = 76.64 reinforcementFleetShipBudget *= multiplierFromGuardPosts = 76.64 planet.CurrentFleetshipReinforcementBalance += reinforcementFleetShipBudget = 74.25 called Helper_PickUnitsForReinforcement with: FighterII, BomberII, MissileShipII, SpaceTankII, MicroFighterII, GrenadeLauncherII, ZenithPolarizerII, YounglingShrikeII which became, after calling PruneFGTypeListAccordingToPlanetReinforcementTypes, : FighterII, MissileShipII, MissileShipII, MissileShipII, YounglingShrikeII, YounglingShrikeII, YounglingShrikeII, YounglingShrikeII, YounglingShrikeII, YounglingShrikeII, YounglingShrikeII, YounglingShrikeII, YounglingShrikeII ** Picked 6 YounglingShrikeII @ 8 each = 48 3 FighterII @ 8 each = 24 1 MissileShipII @ 8 each = 8 After picking fleet ships, planet.CurrentFleetshipReinforcementBalance = is now -5.75 = checking for starship or guardian reinforcements reinforcementFleetShipBudget: 76.64 player.AITypeData.StarshipBudgetMultiplier: 0.08 = reinforcementStarshipBudget = reinforcementFleetShipBudget * player.AITypeData.StarshipBudgetMultiplier * 8 = 51.49 planet.CurrentStarshipGuardianReinforcementBalance += reinforcementStarshipBudget = -66.71 since CurrentStarshipGuardianReinforcementBalance <= 0, skipping starship/guardians this time around. remainingReinforcements -= multiplierFromPriority = 2 = Trying to reinforce Jackson (#8) planet.CurrentFleetshipReinforcementBalance = -5.79 Reinforcement focus types: Cruiser,Bomber,Shield numberOfGuardables = planet.FgNonWormholeNonSpecialForcesGuardPosts.Count + ( planet.OrbitalCommandStation == null ? 0 : 1 ) = 1 currentPopulation = rollup.AlliedUnits.Count + rollup.Planet.FgColdStorageUnits.Count = 61 populationCap = numberOfGuardables = 1 populationCap *= Game.Instance.Options.UnitCapScale.AIShipCapPerPost = 75 since !(planet.WasOriginallyHomePlanet || planet.IsCoreAIPlanet), maximum = Game.Instance.Options.UnitCapScale.AIShipCapMaxNormal = 500 minimum = Game.Instance.Options.UnitCapScale.AIShipCapMinimum = 200 populationCap = Max(populationCap,mimimum) = 200 currentPopulation < populationCap, so proceeding with reinforcement here multiplierFromPriority = 1 multiplierFromSpecialStructures = 1 multiplierFromGuardPosts = 1 + planet.FgNonWormholeNonSpecialForcesGuardPosts.Count * 0.1 = 1 reinforcementFleetShipBudget = baseReinforcementFleetShipBudget = 76.64 reinforcementFleetShipBudget *= multiplierFromPriority = 76.64 reinforcementFleetShipBudget *= multiplierFromSpecialStructures = 76.64 reinforcementFleetShipBudget *= multiplierFromGuardPosts = 76.64 planet.CurrentFleetshipReinforcementBalance += reinforcementFleetShipBudget = 70.85 called Helper_PickUnitsForReinforcement with: FighterII, BomberII, MissileShipII, SpaceTankII, MicroFighterII, GrenadeLauncherII, ZenithPolarizerII, YounglingShrikeII which became, after calling PruneFGTypeListAccordingToPlanetReinforcementTypes, : BomberII, BomberII, BomberII, MissileShipII, MissileShipII, MissileShipII, MissileShipII, MissileShipII, MissileShipII, MissileShipII, MissileShipII, MissileShipII ** Picked 4 BomberII @ 8 each = 32 5 MissileShipII @ 8 each = 40 After picking fleet ships, planet.CurrentFleetshipReinforcementBalance = is now -1.15 = checking for starship or guardian reinforcements reinforcementFleetShipBudget: 76.64 player.AITypeData.StarshipBudgetMultiplier: 0.08 = reinforcementStarshipBudget = reinforcementFleetShipBudget * player.AITypeData.StarshipBudgetMultiplier * 8 = 51.49 planet.CurrentStarshipGuardianReinforcementBalance += reinforcementStarshipBudget = 13.71 maxStarshipsAtPlanet = planetReinforcementAITechLevel * 3 = 6 current starship count: 1 maxGuardiansPerGuardable is 1, plus 1 if Diff >= 8, plus 1 if Diff >= 10: 2 totalAllowedGuardians = numberOfGuardables * maxGuardiansPerGuardable = 2 currentGuardianCount: 1 both starships and guardians are allowed for this reinforcemenmt, so flipping a coin: guardians called Helper_PickUnitsForReinforcement with: AIGuardianLightning, AIGuardianFlak, AIGuardianSpecialForcesRally, AIGuardianWarpGate, AIGuardianZombie, AIGuardianStarshipDisassembler, AIGuardian_Needler which became, after calling PruneFGTypeListAccordingToPlanetReinforcementTypes, : AIGuardianLightning, AIGuardianFlak, AIGuardianSpecialForcesRally, AIGuardianWarpGate, AIGuardianZombie, AIGuardianStarshipDisassembler, AIGuardian_Needler ** Picked 1 AIGuardianFlak @ 96 each = 96 After picking, planet.CurrentStarshipGuardianReinforcementBalance = -82.29 remainingReinforcements -= multiplierFromPriority = 1 = Trying to reinforce Alioth (#16) planet.CurrentFleetshipReinforcementBalance = -3.86 Reinforcement focus types: YounglingShrike,Cruiser,MicroFighter numberOfGuardables = planet.FgNonWormholeNonSpecialForcesGuardPosts.Count + ( planet.OrbitalCommandStation == null ? 0 : 1 ) = 1 currentPopulation = rollup.AlliedUnits.Count + rollup.Planet.FgColdStorageUnits.Count = 15 populationCap = numberOfGuardables = 1 populationCap *= Game.Instance.Options.UnitCapScale.AIShipCapPerPost = 75 since !(planet.WasOriginallyHomePlanet || planet.IsCoreAIPlanet), maximum = Game.Instance.Options.UnitCapScale.AIShipCapMaxNormal = 500 minimum = Game.Instance.Options.UnitCapScale.AIShipCapMinimum = 200 populationCap = Max(populationCap,mimimum) = 200 currentPopulation < populationCap, so proceeding with reinforcement here multiplierFromPriority = 1 multiplierFromSpecialStructures = 1 multiplierFromGuardPosts = 1 + planet.FgNonWormholeNonSpecialForcesGuardPosts.Count * 0.1 = 1 reinforcementFleetShipBudget = baseReinforcementFleetShipBudget = 76.64 reinforcementFleetShipBudget *= multiplierFromPriority = 76.64 reinforcementFleetShipBudget *= multiplierFromSpecialStructures = 76.64 reinforcementFleetShipBudget *= multiplierFromGuardPosts = 76.64 planet.CurrentFleetshipReinforcementBalance += reinforcementFleetShipBudget = 72.78 called Helper_PickUnitsForReinforcement with: FighterIV, BomberIV, CruiserIV, SpaceTankIV, MicroFighterIV, GrenadeLauncherIV, ZenithPolarizerIV, YounglingShrikeIV which became, after calling PruneFGTypeListAccordingToPlanetReinforcementTypes, : CruiserIV, CruiserIV, CruiserIV, MicroFighterIV, YounglingShrikeIV, YounglingShrikeIV, YounglingShrikeIV, YounglingShrikeIV, YounglingShrikeIV, YounglingShrikeIV, YounglingShrikeIV, YounglingShrikeIV, YounglingShrikeIV ** Picked 5 YounglingShrikeIV @ 16 each = 80 After picking fleet ships, planet.CurrentFleetshipReinforcementBalance = is now -7.22 = checking for starship or guardian reinforcements reinforcementFleetShipBudget: 76.64 player.AITypeData.StarshipBudgetMultiplier: 0.08 = reinforcementStarshipBudget = reinforcementFleetShipBudget * player.AITypeData.StarshipBudgetMultiplier * 8 = 51.49 planet.CurrentStarshipGuardianReinforcementBalance += reinforcementStarshipBudget = 50.3 maxStarshipsAtPlanet = planetReinforcementAITechLevel * 3 = 12 current starship count: 0 maxGuardiansPerGuardable is 1, plus 1 if Diff >= 8, plus 1 if Diff >= 10: 2 totalAllowedGuardians = numberOfGuardables * maxGuardiansPerGuardable = 2 currentGuardianCount: 0 both starships and guardians are allowed for this reinforcemenmt, so flipping a coin: guardians called Helper_PickUnitsForReinforcement with: AIGuardianLightningIII, AIGuardianFlakIII, AIGuardianSpecialForcesRallyIII, AIGuardianWarpGateIII, AIGuardianZombieIII, AIGuardianStarshipDisassemblerIII, AIGuardian_NeedlerIII which became, after calling PruneFGTypeListAccordingToPlanetReinforcementTypes, : AIGuardianLightningIII, AIGuardianFlakIII, AIGuardianSpecialForcesRallyIII, AIGuardianWarpGateIII, AIGuardianZombieIII, AIGuardianStarshipDisassemblerIII, AIGuardian_NeedlerIII ** Picked 1 AIGuardianFlakIII @ 288 each = 288 After picking, planet.CurrentStarshipGuardianReinforcementBalance = -237.7 remainingReinforcements -= multiplierFromPriority = 0 **** total resulting reinforcementBudgetToRedirectToOtherThings = 97.95 reinforcementBudgetToRedirectToOtherThings *= difficultyFactor = -548.56 totals for planet 24 (Austin ); count: 10, strength: 74.66 totals for planet 43 (Concord ); count: 10, strength: 168 totals for planet 22 (Baton Rouge ); count: 20, strength: 172 totals for planet 51 (Montana ); count: 10, strength: 80 totals for planet 8 (Jackson ); count: 10, strength: 168 totals for planet 16 (Alioth); count: 6, strength: 368 totals for MicroFighterII; count: 2, strength: 10.66 totals for BomberII; count: 12, strength: 96 totals for MissileShipII; count: 14, strength: 112 totals for FighterII; count: 4, strength: 32 totals for AIGuardianStarshipDisassembler; count: 1, strength: 96 totals for ZenithPolarizer; count: 7, strength: 28 totals for YounglingShrike; count: 12, strength: 48 totals for LeechStarship; count: 1, strength: 96 totals for YounglingShrikeII; count: 6, strength: 48 totals for AIGuardianFlak; count: 1, strength: 96 totals for YounglingShrikeIV; count: 5, strength: 80 totals for AIGuardianFlakIII; count: 1, strength: 288 == grand totals; count: 66, strength: 1030.66 4/28/2016 7:16:32 PM (8.023) 4:40:32 ReinforcementCounter reached > 2400 for player 9 (since game was loaded, took 121 checks of (9+rand(2 or 3)) or alternatively a wave was converted to a reinforcement because Turtle or whatever AIProgressionLevelEffective = 230 AITechLevel = 2 numberOfReinforcements = (number of planets not controlled by the AI / 2) = 5 since AIDifficulty >= 8, numberOfReinforcements += 1 = 6 Effective reinforcement AIP capped at 200 + (the extra * 20% * the number of completed spire city hubs:200 = Planets in order of planned reinforcement attempt (note: alerted planets will get two lines, and a line with priority >= 2000 will get tried twice) : 24 (Austin ) (alerted) reinforce priority = 0 43 (Concord ) (alerted) reinforce priority = 0 22 (Baton Rouge ) (alerted) reinforce priority = 0 51 (Montana ) (alerted) reinforce priority = 0 8 (Jackson ) (alerted) reinforce priority = 0 16 (Alioth) (alerted) reinforce priority = 0 6 (Dengaida) (alerted) reinforce priority = 0 = (if it gets down here and was able to reinforce any of them, it goes back to the top of the list and tries them again.) 36 (YOUNGSTER HOME) (homeworld, +500) reinforce priority = 500 28 (NESTER HOME) (homeworld, +500) reinforce priority = 500 37 (Providence ) (core, +300) reinforce priority = 300 29 (Connecticut ) (core, +300) reinforce priority = 300 27 (California ) (core, +300) reinforce priority = 300 35 (Richmond ) (core, +300) reinforce priority = 300 (40 more reinforceable planets that are not alerted and have reinforcement priority = 0 baseReinforcementFleetShipBudget = 1.5 * AIDiff * handicapMultiplier = 13.5 baseReinforcementFleetShipBudget += 4 + ( player.AIDifficulty / 2 ) = 22 baseReinforcementFleetShipBudget += ((AIP/10) * (AIDiff/10)) = 40 baseReinforcementFleetShipBudget *= 0.175 = 6.99 baseReinforcementFleetShipBudget must be at most 35; = 6.99 baseReinforcementFleetShipBudget *= 1 + ( AIP * 0.08 ) = 76.64 baseReinforcementFleetShipBudget *= MultiplierFromHumanHomeworlds = 76.64 baseReinforcementFleetShipBudget *= player.AITypeData.ReinforcementsMultiplier = 76.64 uncappedAIPReinforcementFleetShipBudget = 1.5 * AIDiff * handicapMultiplier = 13.5 uncappedAIPReinforcementFleetShipBudget += 4 + ( player.AIDifficulty / 2 ) = 22 uncappedAIPReinforcementFleetShipBudget += ((AIP/10) * (AIDiff/10)) = 42.7 uncappedAIPReinforcementFleetShipBudget *= 0.175 = 7.46 uncappedAIPReinforcementFleetShipBudget *= 1 + ( AIP * 0.08 ) = 92.96 uncappedAIPReinforcementFleetShipBudget *= MultiplierFromHumanHomeworlds = 92.96 uncappedAIPReinforcementFleetShipBudget *= player.AITypeData.ReinforcementsMultiplier = 92.96 **** reinforcementBudgetToRedirectToOtherThings += ( uncappedAIPReinforcementFleetShipBudget - baseReinforcementFleetShipBudget ) * numberOfReinforcements = 97.95 = Trying to reinforce Austin (#24) planet.CurrentFleetshipReinforcementBalance = -7.54 Reinforcement focus types: Bomber,MicroFighter,Cruiser numberOfGuardables = planet.FgNonWormholeNonSpecialForcesGuardPosts.Count + ( planet.OrbitalCommandStation == null ? 0 : 1 ) = 1 currentPopulation = rollup.AlliedUnits.Count + rollup.Planet.FgColdStorageUnits.Count = 49 populationCap = numberOfGuardables = 1 populationCap *= Game.Instance.Options.UnitCapScale.AIShipCapPerPost = 75 since !(planet.WasOriginallyHomePlanet || planet.IsCoreAIPlanet), maximum = Game.Instance.Options.UnitCapScale.AIShipCapMaxNormal = 500 minimum = Game.Instance.Options.UnitCapScale.AIShipCapMinimum = 200 populationCap = Max(populationCap,mimimum) = 200 currentPopulation < populationCap, so proceeding with reinforcement here multiplierFromPriority = 1 multiplierFromSpecialStructures = 1 multiplierFromGuardPosts = 1 + planet.FgNonWormholeNonSpecialForcesGuardPosts.Count * 0.1 = 1 reinforcementFleetShipBudget = baseReinforcementFleetShipBudget = 76.64 reinforcementFleetShipBudget *= multiplierFromPriority = 76.64 reinforcementFleetShipBudget *= multiplierFromSpecialStructures = 76.64 reinforcementFleetShipBudget *= multiplierFromGuardPosts = 76.64 planet.CurrentFleetshipReinforcementBalance += reinforcementFleetShipBudget = 69.1 called Helper_PickUnitsForReinforcement with: FighterII, BomberII, MissileShipII, SpaceTankII, MicroFighterII, GrenadeLauncherII, ZenithPolarizerII, YounglingShrikeII which became, after calling PruneFGTypeListAccordingToPlanetReinforcementTypes, : BomberII, BomberII, BomberII, BomberII, BomberII, BomberII, BomberII, BomberII, BomberII, MissileShipII, MicroFighterII, MicroFighterII, MicroFighterII ** Picked 2 MicroFighterII @ 5.33 each = 10.66 8 BomberII @ 8 each = 64 After picking fleet ships, planet.CurrentFleetshipReinforcementBalance = is now -5.57 = checking for starship or guardian reinforcements reinforcementFleetShipBudget: 76.64 player.AITypeData.StarshipBudgetMultiplier: 0.08 = reinforcementStarshipBudget = reinforcementFleetShipBudget * player.AITypeData.StarshipBudgetMultiplier * 8 = 51.49 planet.CurrentStarshipGuardianReinforcementBalance += reinforcementStarshipBudget = -95.71 since CurrentStarshipGuardianReinforcementBalance <= 0, skipping starship/guardians this time around. remainingReinforcements -= multiplierFromPriority = 5 = Trying to reinforce Concord (#43) planet.CurrentFleetshipReinforcementBalance = -7.28 Reinforcement focus types: Cruiser,Fighter,Bomber numberOfGuardables = planet.FgNonWormholeNonSpecialForcesGuardPosts.Count + ( planet.OrbitalCommandStation == null ? 0 : 1 ) = 1 currentPopulation = rollup.AlliedUnits.Count + rollup.Planet.FgColdStorageUnits.Count = 12 populationCap = numberOfGuardables = 1 populationCap *= Game.Instance.Options.UnitCapScale.AIShipCapPerPost = 75 since !(planet.WasOriginallyHomePlanet || planet.IsCoreAIPlanet), maximum = Game.Instance.Options.UnitCapScale.AIShipCapMaxNormal = 500 minimum = Game.Instance.Options.UnitCapScale.AIShipCapMinimum = 200 populationCap = Max(populationCap,mimimum) = 200 currentPopulation < populationCap, so proceeding with reinforcement here multiplierFromPriority = 1 multiplierFromSpecialStructures = 1 multiplierFromGuardPosts = 1 + planet.FgNonWormholeNonSpecialForcesGuardPosts.Count * 0.1 = 1 reinforcementFleetShipBudget = baseReinforcementFleetShipBudget = 76.64 reinforcementFleetShipBudget *= multiplierFromPriority = 76.64 reinforcementFleetShipBudget *= multiplierFromSpecialStructures = 76.64 reinforcementFleetShipBudget *= multiplierFromGuardPosts = 76.64 planet.CurrentFleetshipReinforcementBalance += reinforcementFleetShipBudget = 69.36 called Helper_PickUnitsForReinforcement with: FighterII, BomberII, MissileShipII, SpaceTankII, MicroFighterII, GrenadeLauncherII, ZenithPolarizerII, YounglingShrikeII which became, after calling PruneFGTypeListAccordingToPlanetReinforcementTypes, : FighterII, FighterII, FighterII, BomberII, MissileShipII, MissileShipII, MissileShipII, MissileShipII, MissileShipII, MissileShipII, MissileShipII, MissileShipII, MissileShipII ** Picked 8 MissileShipII @ 8 each = 64 1 FighterII @ 8 each = 8 After picking fleet ships, planet.CurrentFleetshipReinforcementBalance = is now -2.64 = checking for starship or guardian reinforcements reinforcementFleetShipBudget: 76.64 player.AITypeData.StarshipBudgetMultiplier: 0.08 = reinforcementStarshipBudget = reinforcementFleetShipBudget * player.AITypeData.StarshipBudgetMultiplier * 8 = 51.49 planet.CurrentStarshipGuardianReinforcementBalance += reinforcementStarshipBudget = 23.46 maxStarshipsAtPlanet = planetReinforcementAITechLevel * 3 = 6 current starship count: 0 maxGuardiansPerGuardable is 1, plus 1 if Diff >= 8, plus 1 if Diff >= 10: 2 totalAllowedGuardians = numberOfGuardables * maxGuardiansPerGuardable = 2 currentGuardianCount: 0 both starships and guardians are allowed for this reinforcemenmt, so flipping a coin: guardians called Helper_PickUnitsForReinforcement with: AIGuardianLightning, AIGuardianFlak, AIGuardianSpecialForcesRally, AIGuardianWarpGate, AIGuardianZombie, AIGuardianStarshipDisassembler, AIGuardian_Needler which became, after calling PruneFGTypeListAccordingToPlanetReinforcementTypes, : AIGuardianLightning, AIGuardianFlak, AIGuardianSpecialForcesRally, AIGuardianWarpGate, AIGuardianZombie, AIGuardianStarshipDisassembler, AIGuardian_Needler ** Picked 1 AIGuardianStarshipDisassembler @ 96 each = 96 After picking, planet.CurrentStarshipGuardianReinforcementBalance = -72.54 remainingReinforcements -= multiplierFromPriority = 4 = Trying to reinforce Baton Rouge (#22) planet.CurrentFleetshipReinforcementBalance = -2.51 Reinforcement focus types: YounglingShrike,ZenithPolarizer,MicroFighter numberOfGuardables = planet.FgNonWormholeNonSpecialForcesGuardPosts.Count + ( planet.OrbitalCommandStation == null ? 0 : 1 ) = 1 currentPopulation = rollup.AlliedUnits.Count + rollup.Planet.FgColdStorageUnits.Count = 11 populationCap = numberOfGuardables = 1 populationCap *= Game.Instance.Options.UnitCapScale.AIShipCapPerPost = 75 since !(planet.WasOriginallyHomePlanet || planet.IsCoreAIPlanet), maximum = Game.Instance.Options.UnitCapScale.AIShipCapMaxNormal = 500 minimum = Game.Instance.Options.UnitCapScale.AIShipCapMinimum = 200 populationCap = Max(populationCap,mimimum) = 200 currentPopulation < populationCap, so proceeding with reinforcement here multiplierFromPriority = 1 multiplierFromSpecialStructures = 1 multiplierFromGuardPosts = 1 + planet.FgNonWormholeNonSpecialForcesGuardPosts.Count * 0.1 = 1 reinforcementFleetShipBudget = baseReinforcementFleetShipBudget = 76.64 reinforcementFleetShipBudget *= multiplierFromPriority = 76.64 reinforcementFleetShipBudget *= multiplierFromSpecialStructures = 76.64 reinforcementFleetShipBudget *= multiplierFromGuardPosts = 76.64 planet.CurrentFleetshipReinforcementBalance += reinforcementFleetShipBudget = 74.12 called Helper_PickUnitsForReinforcement with: Fighter, Bomber, MissileShip, SpaceTank, MicroFighter, GrenadeLauncher, ZenithPolarizer, YounglingShrike which became, after calling PruneFGTypeListAccordingToPlanetReinforcementTypes, : MicroFighter, ZenithPolarizer, ZenithPolarizer, ZenithPolarizer, YounglingShrike, YounglingShrike, YounglingShrike, YounglingShrike, YounglingShrike, YounglingShrike, YounglingShrike, YounglingShrike, YounglingShrike ** Picked 7 ZenithPolarizer @ 4 each = 28 12 YounglingShrike @ 4 each = 48 After picking fleet ships, planet.CurrentFleetshipReinforcementBalance = is now -1.88 = checking for starship or guardian reinforcements reinforcementFleetShipBudget: 76.64 player.AITypeData.StarshipBudgetMultiplier: 0.08 = reinforcementStarshipBudget = reinforcementFleetShipBudget * player.AITypeData.StarshipBudgetMultiplier * 8 = 51.49 planet.CurrentStarshipGuardianReinforcementBalance += reinforcementStarshipBudget = 30.85 maxStarshipsAtPlanet = planetReinforcementAITechLevel * 3 = 3 current starship count: 0 this planet is adjacent to a human homeworld, so can't pick guardians maxGuardiansPerGuardable is 1, plus 1 if Diff >= 8, plus 1 if Diff >= 10: 2 totalAllowedGuardians = numberOfGuardables * maxGuardiansPerGuardable = 2 currentGuardianCount: 0 called Helper_PickUnitsForReinforcement with: LightStarship, Dreadnought, LeechStarship which became, after calling PruneFGTypeListAccordingToPlanetReinforcementTypes, : LightStarship, Dreadnought, LeechStarship ** Picked 1 LeechStarship @ 96 each = 96 After picking, planet.CurrentStarshipGuardianReinforcementBalance = -65.15 remainingReinforcements -= multiplierFromPriority = 3 = Trying to reinforce Montana (#51) planet.CurrentFleetshipReinforcementBalance = -2.39 Reinforcement focus types: YounglingShrike,Cruiser,Fighter numberOfGuardables = planet.FgNonWormholeNonSpecialForcesGuardPosts.Count + ( planet.OrbitalCommandStation == null ? 0 : 1 ) = 1 currentPopulation = rollup.AlliedUnits.Count + rollup.Planet.FgColdStorageUnits.Count = 55 populationCap = numberOfGuardables = 1 populationCap *= Game.Instance.Options.UnitCapScale.AIShipCapPerPost = 75 since !(planet.WasOriginallyHomePlanet || planet.IsCoreAIPlanet), maximum = Game.Instance.Options.UnitCapScale.AIShipCapMaxNormal = 500 minimum = Game.Instance.Options.UnitCapScale.AIShipCapMinimum = 200 populationCap = Max(populationCap,mimimum) = 200 currentPopulation < populationCap, so proceeding with reinforcement here multiplierFromPriority = 1 multiplierFromSpecialStructures = 1 multiplierFromGuardPosts = 1 + planet.FgNonWormholeNonSpecialForcesGuardPosts.Count * 0.1 = 1 reinforcementFleetShipBudget = baseReinforcementFleetShipBudget = 76.64 reinforcementFleetShipBudget *= multiplierFromPriority = 76.64 reinforcementFleetShipBudget *= multiplierFromSpecialStructures = 76.64 reinforcementFleetShipBudget *= multiplierFromGuardPosts = 76.64 planet.CurrentFleetshipReinforcementBalance += reinforcementFleetShipBudget = 74.25 called Helper_PickUnitsForReinforcement with: FighterII, BomberII, MissileShipII, SpaceTankII, MicroFighterII, GrenadeLauncherII, ZenithPolarizerII, YounglingShrikeII which became, after calling PruneFGTypeListAccordingToPlanetReinforcementTypes, : FighterII, MissileShipII, MissileShipII, MissileShipII, YounglingShrikeII, YounglingShrikeII, YounglingShrikeII, YounglingShrikeII, YounglingShrikeII, YounglingShrikeII, YounglingShrikeII, YounglingShrikeII, YounglingShrikeII ** Picked 6 YounglingShrikeII @ 8 each = 48 3 FighterII @ 8 each = 24 1 MissileShipII @ 8 each = 8 After picking fleet ships, planet.CurrentFleetshipReinforcementBalance = is now -5.75 = checking for starship or guardian reinforcements reinforcementFleetShipBudget: 76.64 player.AITypeData.StarshipBudgetMultiplier: 0.08 = reinforcementStarshipBudget = reinforcementFleetShipBudget * player.AITypeData.StarshipBudgetMultiplier * 8 = 51.49 planet.CurrentStarshipGuardianReinforcementBalance += reinforcementStarshipBudget = -66.71 since CurrentStarshipGuardianReinforcementBalance <= 0, skipping starship/guardians this time around. remainingReinforcements -= multiplierFromPriority = 2 = Trying to reinforce Jackson (#8) planet.CurrentFleetshipReinforcementBalance = -5.79 Reinforcement focus types: Cruiser,Bomber,Shield numberOfGuardables = planet.FgNonWormholeNonSpecialForcesGuardPosts.Count + ( planet.OrbitalCommandStation == null ? 0 : 1 ) = 1 currentPopulation = rollup.AlliedUnits.Count + rollup.Planet.FgColdStorageUnits.Count = 61 populationCap = numberOfGuardables = 1 populationCap *= Game.Instance.Options.UnitCapScale.AIShipCapPerPost = 75 since !(planet.WasOriginallyHomePlanet || planet.IsCoreAIPlanet), maximum = Game.Instance.Options.UnitCapScale.AIShipCapMaxNormal = 500 minimum = Game.Instance.Options.UnitCapScale.AIShipCapMinimum = 200 populationCap = Max(populationCap,mimimum) = 200 currentPopulation < populationCap, so proceeding with reinforcement here multiplierFromPriority = 1 multiplierFromSpecialStructures = 1 multiplierFromGuardPosts = 1 + planet.FgNonWormholeNonSpecialForcesGuardPosts.Count * 0.1 = 1 reinforcementFleetShipBudget = baseReinforcementFleetShipBudget = 76.64 reinforcementFleetShipBudget *= multiplierFromPriority = 76.64 reinforcementFleetShipBudget *= multiplierFromSpecialStructures = 76.64 reinforcementFleetShipBudget *= multiplierFromGuardPosts = 76.64 planet.CurrentFleetshipReinforcementBalance += reinforcementFleetShipBudget = 70.85 called Helper_PickUnitsForReinforcement with: FighterII, BomberII, MissileShipII, SpaceTankII, MicroFighterII, GrenadeLauncherII, ZenithPolarizerII, YounglingShrikeII which became, after calling PruneFGTypeListAccordingToPlanetReinforcementTypes, : BomberII, BomberII, BomberII, MissileShipII, MissileShipII, MissileShipII, MissileShipII, MissileShipII, MissileShipII, MissileShipII, MissileShipII, MissileShipII ** Picked 4 BomberII @ 8 each = 32 5 MissileShipII @ 8 each = 40 After picking fleet ships, planet.CurrentFleetshipReinforcementBalance = is now -1.15 = checking for starship or guardian reinforcements reinforcementFleetShipBudget: 76.64 player.AITypeData.StarshipBudgetMultiplier: 0.08 = reinforcementStarshipBudget = reinforcementFleetShipBudget * player.AITypeData.StarshipBudgetMultiplier * 8 = 51.49 planet.CurrentStarshipGuardianReinforcementBalance += reinforcementStarshipBudget = 13.71 maxStarshipsAtPlanet = planetReinforcementAITechLevel * 3 = 6 current starship count: 1 maxGuardiansPerGuardable is 1, plus 1 if Diff >= 8, plus 1 if Diff >= 10: 2 totalAllowedGuardians = numberOfGuardables * maxGuardiansPerGuardable = 2 currentGuardianCount: 1 both starships and guardians are allowed for this reinforcemenmt, so flipping a coin: guardians called Helper_PickUnitsForReinforcement with: AIGuardianLightning, AIGuardianFlak, AIGuardianSpecialForcesRally, AIGuardianWarpGate, AIGuardianZombie, AIGuardianStarshipDisassembler, AIGuardian_Needler which became, after calling PruneFGTypeListAccordingToPlanetReinforcementTypes, : AIGuardianLightning, AIGuardianFlak, AIGuardianSpecialForcesRally, AIGuardianWarpGate, AIGuardianZombie, AIGuardianStarshipDisassembler, AIGuardian_Needler ** Picked 1 AIGuardianFlak @ 96 each = 96 After picking, planet.CurrentStarshipGuardianReinforcementBalance = -82.29 remainingReinforcements -= multiplierFromPriority = 1 = Trying to reinforce Alioth (#16) planet.CurrentFleetshipReinforcementBalance = -3.86 Reinforcement focus types: YounglingShrike,Cruiser,MicroFighter numberOfGuardables = planet.FgNonWormholeNonSpecialForcesGuardPosts.Count + ( planet.OrbitalCommandStation == null ? 0 : 1 ) = 1 currentPopulation = rollup.AlliedUnits.Count + rollup.Planet.FgColdStorageUnits.Count = 15 populationCap = numberOfGuardables = 1 populationCap *= Game.Instance.Options.UnitCapScale.AIShipCapPerPost = 75 since !(planet.WasOriginallyHomePlanet || planet.IsCoreAIPlanet), maximum = Game.Instance.Options.UnitCapScale.AIShipCapMaxNormal = 500 minimum = Game.Instance.Options.UnitCapScale.AIShipCapMinimum = 200 populationCap = Max(populationCap,mimimum) = 200 currentPopulation < populationCap, so proceeding with reinforcement here multiplierFromPriority = 1 multiplierFromSpecialStructures = 1 multiplierFromGuardPosts = 1 + planet.FgNonWormholeNonSpecialForcesGuardPosts.Count * 0.1 = 1 reinforcementFleetShipBudget = baseReinforcementFleetShipBudget = 76.64 reinforcementFleetShipBudget *= multiplierFromPriority = 76.64 reinforcementFleetShipBudget *= multiplierFromSpecialStructures = 76.64 reinforcementFleetShipBudget *= multiplierFromGuardPosts = 76.64 planet.CurrentFleetshipReinforcementBalance += reinforcementFleetShipBudget = 72.78 called Helper_PickUnitsForReinforcement with: FighterIV, BomberIV, CruiserIV, SpaceTankIV, MicroFighterIV, GrenadeLauncherIV, ZenithPolarizerIV, YounglingShrikeIV which became, after calling PruneFGTypeListAccordingToPlanetReinforcementTypes, : CruiserIV, CruiserIV, CruiserIV, MicroFighterIV, YounglingShrikeIV, YounglingShrikeIV, YounglingShrikeIV, YounglingShrikeIV, YounglingShrikeIV, YounglingShrikeIV, YounglingShrikeIV, YounglingShrikeIV, YounglingShrikeIV ** Picked 5 YounglingShrikeIV @ 16 each = 80 After picking fleet ships, planet.CurrentFleetshipReinforcementBalance = is now -7.22 = checking for starship or guardian reinforcements reinforcementFleetShipBudget: 76.64 player.AITypeData.StarshipBudgetMultiplier: 0.08 = reinforcementStarshipBudget = reinforcementFleetShipBudget * player.AITypeData.StarshipBudgetMultiplier * 8 = 51.49 planet.CurrentStarshipGuardianReinforcementBalance += reinforcementStarshipBudget = 50.3 maxStarshipsAtPlanet = planetReinforcementAITechLevel * 3 = 12 current starship count: 0 maxGuardiansPerGuardable is 1, plus 1 if Diff >= 8, plus 1 if Diff >= 10: 2 totalAllowedGuardians = numberOfGuardables * maxGuardiansPerGuardable = 2 currentGuardianCount: 0 both starships and guardians are allowed for this reinforcemenmt, so flipping a coin: guardians called Helper_PickUnitsForReinforcement with: AIGuardianLightningIII, AIGuardianFlakIII, AIGuardianSpecialForcesRallyIII, AIGuardianWarpGateIII, AIGuardianZombieIII, AIGuardianStarshipDisassemblerIII, AIGuardian_NeedlerIII which became, after calling PruneFGTypeListAccordingToPlanetReinforcementTypes, : AIGuardianLightningIII, AIGuardianFlakIII, AIGuardianSpecialForcesRallyIII, AIGuardianWarpGateIII, AIGuardianZombieIII, AIGuardianStarshipDisassemblerIII, AIGuardian_NeedlerIII ** Picked 1 AIGuardianFlakIII @ 288 each = 288 After picking, planet.CurrentStarshipGuardianReinforcementBalance = -237.7 remainingReinforcements -= multiplierFromPriority = 0 **** total resulting reinforcementBudgetToRedirectToOtherThings = 97.95 reinforcementBudgetToRedirectToOtherThings *= difficultyFactor = -548.56 totals for planet 24 (Austin ); count: 10, strength: 74.66 totals for planet 43 (Concord ); count: 10, strength: 168 totals for planet 22 (Baton Rouge ); count: 20, strength: 172 totals for planet 51 (Montana ); count: 10, strength: 80 totals for planet 8 (Jackson ); count: 10, strength: 168 totals for planet 16 (Alioth); count: 6, strength: 368 totals for MicroFighterII; count: 2, strength: 10.66 totals for BomberII; count: 12, strength: 96 totals for MissileShipII; count: 14, strength: 112 totals for FighterII; count: 4, strength: 32 totals for AIGuardianStarshipDisassembler; count: 1, strength: 96 totals for ZenithPolarizer; count: 7, strength: 28 totals for YounglingShrike; count: 12, strength: 48 totals for LeechStarship; count: 1, strength: 96 totals for YounglingShrikeII; count: 6, strength: 48 totals for AIGuardianFlak; count: 1, strength: 96 totals for YounglingShrikeIV; count: 5, strength: 80 totals for AIGuardianFlakIII; count: 1, strength: 288 == grand totals; count: 66, strength: 1030.66 4/28/2016 7:16:33 PM (8.023) 4:40:40 ReinforcementCounter reached > 2400 for player 8 (since game was loaded, took 129 checks of (9+rand(2 or 3)) or alternatively a wave was converted to a reinforcement because Turtle or whatever AIProgressionLevelEffective = 230 AITechLevel = 2 numberOfReinforcements = (number of planets not controlled by the AI / 2) = 5 since AIDifficulty >= 8, numberOfReinforcements += 1 = 6 Effective reinforcement AIP capped at 200 + (the extra * 20% * the number of completed spire city hubs:200 = Planets in order of planned reinforcement attempt (note: alerted planets will get two lines, and a line with priority >= 2000 will get tried twice) : 16 (Alioth) (alerted) reinforce priority = 0 8 (Jackson ) (alerted) reinforce priority = 0 22 (Baton Rouge ) (alerted) reinforce priority = 0 6 (Dengaida) (alerted) reinforce priority = 0 51 (Montana ) (alerted) reinforce priority = 0 24 (Austin ) (alerted) reinforce priority = 0 43 (Concord ) (alerted) reinforce priority = 0 = (if it gets down here and was able to reinforce any of them, it goes back to the top of the list and tries them again.) 36 (YOUNGSTER HOME) (homeworld, +500) reinforce priority = 500 28 (NESTER HOME) (homeworld, +500) reinforce priority = 500 29 (Connecticut ) (core, +300) reinforce priority = 300 27 (California ) (core, +300) reinforce priority = 300 37 (Providence ) (core, +300) reinforce priority = 300 35 (Richmond ) (core, +300) reinforce priority = 300 (40 more reinforceable planets that are not alerted and have reinforcement priority = 0 baseReinforcementFleetShipBudget = 1.5 * AIDiff * handicapMultiplier = 13.5 baseReinforcementFleetShipBudget += 4 + ( player.AIDifficulty / 2 ) = 22 baseReinforcementFleetShipBudget += ((AIP/10) * (AIDiff/10)) = 40 baseReinforcementFleetShipBudget *= 0.175 = 6.99 baseReinforcementFleetShipBudget must be at most 35; = 6.99 baseReinforcementFleetShipBudget *= 1 + ( AIP * 0.08 ) = 76.64 baseReinforcementFleetShipBudget *= MultiplierFromHumanHomeworlds = 76.64 baseReinforcementFleetShipBudget *= player.AITypeData.ReinforcementsMultiplier = 76.64 uncappedAIPReinforcementFleetShipBudget = 1.5 * AIDiff * handicapMultiplier = 13.5 uncappedAIPReinforcementFleetShipBudget += 4 + ( player.AIDifficulty / 2 ) = 22 uncappedAIPReinforcementFleetShipBudget += ((AIP/10) * (AIDiff/10)) = 42.7 uncappedAIPReinforcementFleetShipBudget *= 0.175 = 7.46 uncappedAIPReinforcementFleetShipBudget *= 1 + ( AIP * 0.08 ) = 92.96 uncappedAIPReinforcementFleetShipBudget *= MultiplierFromHumanHomeworlds = 92.96 uncappedAIPReinforcementFleetShipBudget *= player.AITypeData.ReinforcementsMultiplier = 92.96 **** reinforcementBudgetToRedirectToOtherThings += ( uncappedAIPReinforcementFleetShipBudget - baseReinforcementFleetShipBudget ) * numberOfReinforcements = 97.95 = Trying to reinforce Alioth (#16) planet.CurrentFleetshipReinforcementBalance = -7.22 Reinforcement focus types: YounglingShrike,Cruiser,MicroFighter numberOfGuardables = planet.FgNonWormholeNonSpecialForcesGuardPosts.Count + ( planet.OrbitalCommandStation == null ? 0 : 1 ) = 1 currentPopulation = rollup.AlliedUnits.Count + rollup.Planet.FgColdStorageUnits.Count = 18 populationCap = numberOfGuardables = 1 populationCap *= Game.Instance.Options.UnitCapScale.AIShipCapPerPost = 75 since !(planet.WasOriginallyHomePlanet || planet.IsCoreAIPlanet), maximum = Game.Instance.Options.UnitCapScale.AIShipCapMaxNormal = 500 minimum = Game.Instance.Options.UnitCapScale.AIShipCapMinimum = 200 populationCap = Max(populationCap,mimimum) = 200 currentPopulation < populationCap, so proceeding with reinforcement here multiplierFromPriority = 1 multiplierFromSpecialStructures = 1 multiplierFromGuardPosts = 1 + planet.FgNonWormholeNonSpecialForcesGuardPosts.Count * 0.1 = 1 reinforcementFleetShipBudget = baseReinforcementFleetShipBudget = 76.64 reinforcementFleetShipBudget *= multiplierFromPriority = 76.64 reinforcementFleetShipBudget *= multiplierFromSpecialStructures = 76.64 reinforcementFleetShipBudget *= multiplierFromGuardPosts = 76.64 planet.CurrentFleetshipReinforcementBalance += reinforcementFleetShipBudget = 69.42 called Helper_PickUnitsForReinforcement with: FighterIV, BomberIV, CruiserIV, ShieldBearerIV, SpireTractorPlatformIV which became, after calling PruneFGTypeListAccordingToPlanetReinforcementTypes, : FighterIV, BomberIV, CruiserIV, ShieldBearerIV, SpireTractorPlatformIV ** Picked 3 FighterIV @ 16 each = 48 2 CruiserIV @ 16 each = 32 After picking fleet ships, planet.CurrentFleetshipReinforcementBalance = is now -10.58 = checking for starship or guardian reinforcements reinforcementFleetShipBudget: 76.64 player.AITypeData.StarshipBudgetMultiplier: 0.08 = reinforcementStarshipBudget = reinforcementFleetShipBudget * player.AITypeData.StarshipBudgetMultiplier * 8 = 51.49 planet.CurrentStarshipGuardianReinforcementBalance += reinforcementStarshipBudget = -186.21 since CurrentStarshipGuardianReinforcementBalance <= 0, skipping starship/guardians this time around. remainingReinforcements -= multiplierFromPriority = 5 = Trying to reinforce Jackson (#8) planet.CurrentFleetshipReinforcementBalance = -1.15 Reinforcement focus types: Cruiser,Bomber,Shield numberOfGuardables = planet.FgNonWormholeNonSpecialForcesGuardPosts.Count + ( planet.OrbitalCommandStation == null ? 0 : 1 ) = 1 currentPopulation = rollup.AlliedUnits.Count + rollup.Planet.FgColdStorageUnits.Count = 71 populationCap = numberOfGuardables = 1 populationCap *= Game.Instance.Options.UnitCapScale.AIShipCapPerPost = 75 since !(planet.WasOriginallyHomePlanet || planet.IsCoreAIPlanet), maximum = Game.Instance.Options.UnitCapScale.AIShipCapMaxNormal = 500 minimum = Game.Instance.Options.UnitCapScale.AIShipCapMinimum = 200 populationCap = Max(populationCap,mimimum) = 200 currentPopulation < populationCap, so proceeding with reinforcement here multiplierFromPriority = 1 multiplierFromSpecialStructures = 1 multiplierFromGuardPosts = 1 + planet.FgNonWormholeNonSpecialForcesGuardPosts.Count * 0.1 = 1 reinforcementFleetShipBudget = baseReinforcementFleetShipBudget = 76.64 reinforcementFleetShipBudget *= multiplierFromPriority = 76.64 reinforcementFleetShipBudget *= multiplierFromSpecialStructures = 76.64 reinforcementFleetShipBudget *= multiplierFromGuardPosts = 76.64 planet.CurrentFleetshipReinforcementBalance += reinforcementFleetShipBudget = 75.48 called Helper_PickUnitsForReinforcement with: FighterII, BomberII, MissileShipII, ShieldBearerII, SpireTractorPlatformII which became, after calling PruneFGTypeListAccordingToPlanetReinforcementTypes, : BomberII, BomberII, BomberII, MissileShipII, MissileShipII, MissileShipII, MissileShipII, MissileShipII, MissileShipII, MissileShipII, MissileShipII, MissileShipII, ShieldBearerII ** Picked 7 MissileShipII @ 8 each = 56 3 BomberII @ 8 each = 24 After picking fleet ships, planet.CurrentFleetshipReinforcementBalance = is now -4.52 = checking for starship or guardian reinforcements reinforcementFleetShipBudget: 76.64 player.AITypeData.StarshipBudgetMultiplier: 0.08 = reinforcementStarshipBudget = reinforcementFleetShipBudget * player.AITypeData.StarshipBudgetMultiplier * 8 = 51.49 planet.CurrentStarshipGuardianReinforcementBalance += reinforcementStarshipBudget = -30.8 since CurrentStarshipGuardianReinforcementBalance <= 0, skipping starship/guardians this time around. remainingReinforcements -= multiplierFromPriority = 4 = Trying to reinforce Baton Rouge (#22) planet.CurrentFleetshipReinforcementBalance = -1.88 Reinforcement focus types: YounglingShrike,ZenithPolarizer,MicroFighter numberOfGuardables = planet.FgNonWormholeNonSpecialForcesGuardPosts.Count + ( planet.OrbitalCommandStation == null ? 0 : 1 ) = 1 currentPopulation = rollup.AlliedUnits.Count + rollup.Planet.FgColdStorageUnits.Count = 31 populationCap = numberOfGuardables = 1 populationCap *= Game.Instance.Options.UnitCapScale.AIShipCapPerPost = 75 since !(planet.WasOriginallyHomePlanet || planet.IsCoreAIPlanet), maximum = Game.Instance.Options.UnitCapScale.AIShipCapMaxNormal = 500 minimum = Game.Instance.Options.UnitCapScale.AIShipCapMinimum = 200 populationCap = Max(populationCap,mimimum) = 200 currentPopulation < populationCap, so proceeding with reinforcement here multiplierFromPriority = 1 multiplierFromSpecialStructures = 1 multiplierFromGuardPosts = 1 + planet.FgNonWormholeNonSpecialForcesGuardPosts.Count * 0.1 = 1 reinforcementFleetShipBudget = baseReinforcementFleetShipBudget = 76.64 reinforcementFleetShipBudget *= multiplierFromPriority = 76.64 reinforcementFleetShipBudget *= multiplierFromSpecialStructures = 76.64 reinforcementFleetShipBudget *= multiplierFromGuardPosts = 76.64 planet.CurrentFleetshipReinforcementBalance += reinforcementFleetShipBudget = 74.76 called Helper_PickUnitsForReinforcement with: Fighter, Bomber, MissileShip, ShieldBearer, SpireTractorPlatform which became, after calling PruneFGTypeListAccordingToPlanetReinforcementTypes, : Fighter, Bomber, MissileShip, ShieldBearer, SpireTractorPlatform ** Picked 1 Bomber @ 4 each = 4 1 SpireTractorPlatform @ 38.4 each = 38.4 1 MissileShip @ 4 each = 4 2 ShieldBearer @ 16 each = 32 After picking fleet ships, planet.CurrentFleetshipReinforcementBalance = is now -3.64 = checking for starship or guardian reinforcements reinforcementFleetShipBudget: 76.64 player.AITypeData.StarshipBudgetMultiplier: 0.08 = reinforcementStarshipBudget = reinforcementFleetShipBudget * player.AITypeData.StarshipBudgetMultiplier * 8 = 51.49 planet.CurrentStarshipGuardianReinforcementBalance += reinforcementStarshipBudget = -13.66 since CurrentStarshipGuardianReinforcementBalance <= 0, skipping starship/guardians this time around. remainingReinforcements -= multiplierFromPriority = 3 = Trying to reinforce Dengaida (#6) planet.CurrentFleetshipReinforcementBalance = -31.51 Reinforcement focus types: Fighter,Bomber,Cruiser numberOfGuardables = planet.FgNonWormholeNonSpecialForcesGuardPosts.Count + ( planet.OrbitalCommandStation == null ? 0 : 1 ) = 1 currentPopulation = rollup.AlliedUnits.Count + rollup.Planet.FgColdStorageUnits.Count = 72 populationCap = numberOfGuardables = 1 populationCap *= Game.Instance.Options.UnitCapScale.AIShipCapPerPost = 75 since !(planet.WasOriginallyHomePlanet || planet.IsCoreAIPlanet), maximum = Game.Instance.Options.UnitCapScale.AIShipCapMaxNormal = 500 minimum = Game.Instance.Options.UnitCapScale.AIShipCapMinimum = 200 populationCap = Max(populationCap,mimimum) = 200 currentPopulation < populationCap, so proceeding with reinforcement here multiplierFromPriority = 1 multiplierFromSpecialStructures = 1 multiplierFromGuardPosts = 1 + planet.FgNonWormholeNonSpecialForcesGuardPosts.Count * 0.1 = 1 reinforcementFleetShipBudget = baseReinforcementFleetShipBudget = 76.64 reinforcementFleetShipBudget *= multiplierFromPriority = 76.64 reinforcementFleetShipBudget *= multiplierFromSpecialStructures = 76.64 reinforcementFleetShipBudget *= multiplierFromGuardPosts = 76.64 planet.CurrentFleetshipReinforcementBalance += reinforcementFleetShipBudget = 45.12 called Helper_PickUnitsForReinforcement with: FighterII, BomberII, MissileShipII, ShieldBearerII, SpireTractorPlatformII which became, after calling PruneFGTypeListAccordingToPlanetReinforcementTypes, : FighterII, FighterII, FighterII, FighterII, FighterII, FighterII, FighterII, FighterII, FighterII, BomberII, BomberII, BomberII, MissileShipII ** Picked 5 FighterII @ 8 each = 40 1 BomberII @ 8 each = 8 After picking fleet ships, planet.CurrentFleetshipReinforcementBalance = is now -2.88 = checking for starship or guardian reinforcements reinforcementFleetShipBudget: 76.64 player.AITypeData.StarshipBudgetMultiplier: 0.08 = reinforcementStarshipBudget = reinforcementFleetShipBudget * player.AITypeData.StarshipBudgetMultiplier * 8 = 51.49 planet.CurrentStarshipGuardianReinforcementBalance += reinforcementStarshipBudget = 37.63 maxStarshipsAtPlanet = planetReinforcementAITechLevel * 3 = 6 current starship count: 1 maxGuardiansPerGuardable is 1, plus 1 if Diff >= 8, plus 1 if Diff >= 10: 2 totalAllowedGuardians = numberOfGuardables * maxGuardiansPerGuardable = 2 currentGuardianCount: 2 currentGuardianCount >= totalAllowedGuardians, so can't pick guardians called Helper_PickUnitsForReinforcement with: Flagship, AIRaidStarship, DreadnoughtII, LeechStarshipII, BomberStarship, ZenithStarshipI, SpireStarshipI which became, after calling PruneFGTypeListAccordingToPlanetReinforcementTypes, : Flagship, AIRaidStarship, DreadnoughtII, LeechStarshipII, BomberStarship, ZenithStarshipI, SpireStarshipI ** Picked 1 LeechStarshipII @ 192 each = 192 After picking, planet.CurrentStarshipGuardianReinforcementBalance = -154.37 remainingReinforcements -= multiplierFromPriority = 2 = Trying to reinforce Montana (#51) planet.CurrentFleetshipReinforcementBalance = -5.75 Reinforcement focus types: YounglingShrike,Cruiser,Fighter numberOfGuardables = planet.FgNonWormholeNonSpecialForcesGuardPosts.Count + ( planet.OrbitalCommandStation == null ? 0 : 1 ) = 1 currentPopulation = rollup.AlliedUnits.Count + rollup.Planet.FgColdStorageUnits.Count = 67 populationCap = numberOfGuardables = 1 populationCap *= Game.Instance.Options.UnitCapScale.AIShipCapPerPost = 75 since !(planet.WasOriginallyHomePlanet || planet.IsCoreAIPlanet), maximum = Game.Instance.Options.UnitCapScale.AIShipCapMaxNormal = 500 minimum = Game.Instance.Options.UnitCapScale.AIShipCapMinimum = 200 populationCap = Max(populationCap,mimimum) = 200 currentPopulation < populationCap, so proceeding with reinforcement here multiplierFromPriority = 1 multiplierFromSpecialStructures = 1 multiplierFromGuardPosts = 1 + planet.FgNonWormholeNonSpecialForcesGuardPosts.Count * 0.1 = 1 reinforcementFleetShipBudget = baseReinforcementFleetShipBudget = 76.64 reinforcementFleetShipBudget *= multiplierFromPriority = 76.64 reinforcementFleetShipBudget *= multiplierFromSpecialStructures = 76.64 reinforcementFleetShipBudget *= multiplierFromGuardPosts = 76.64 planet.CurrentFleetshipReinforcementBalance += reinforcementFleetShipBudget = 70.89 called Helper_PickUnitsForReinforcement with: FighterII, BomberII, MissileShipII, ShieldBearerII, SpireTractorPlatformII which became, after calling PruneFGTypeListAccordingToPlanetReinforcementTypes, : FighterII, MissileShipII, MissileShipII, MissileShipII ** Picked 4 FighterII @ 8 each = 32 5 MissileShipII @ 8 each = 40 After picking fleet ships, planet.CurrentFleetshipReinforcementBalance = is now -1.11 = checking for starship or guardian reinforcements reinforcementFleetShipBudget: 76.64 player.AITypeData.StarshipBudgetMultiplier: 0.08 = reinforcementStarshipBudget = reinforcementFleetShipBudget * player.AITypeData.StarshipBudgetMultiplier * 8 = 51.49 planet.CurrentStarshipGuardianReinforcementBalance += reinforcementStarshipBudget = -15.22 since CurrentStarshipGuardianReinforcementBalance <= 0, skipping starship/guardians this time around. remainingReinforcements -= multiplierFromPriority = 1 = Trying to reinforce Austin (#24) planet.CurrentFleetshipReinforcementBalance = -5.57 Reinforcement focus types: Bomber,MicroFighter,Cruiser numberOfGuardables = planet.FgNonWormholeNonSpecialForcesGuardPosts.Count + ( planet.OrbitalCommandStation == null ? 0 : 1 ) = 1 currentPopulation = rollup.AlliedUnits.Count + rollup.Planet.FgColdStorageUnits.Count = 58 populationCap = numberOfGuardables = 1 populationCap *= Game.Instance.Options.UnitCapScale.AIShipCapPerPost = 75 since !(planet.WasOriginallyHomePlanet || planet.IsCoreAIPlanet), maximum = Game.Instance.Options.UnitCapScale.AIShipCapMaxNormal = 500 minimum = Game.Instance.Options.UnitCapScale.AIShipCapMinimum = 200 populationCap = Max(populationCap,mimimum) = 200 currentPopulation < populationCap, so proceeding with reinforcement here multiplierFromPriority = 1 multiplierFromSpecialStructures = 1 multiplierFromGuardPosts = 1 + planet.FgNonWormholeNonSpecialForcesGuardPosts.Count * 0.1 = 1 reinforcementFleetShipBudget = baseReinforcementFleetShipBudget = 76.64 reinforcementFleetShipBudget *= multiplierFromPriority = 76.64 reinforcementFleetShipBudget *= multiplierFromSpecialStructures = 76.64 reinforcementFleetShipBudget *= multiplierFromGuardPosts = 76.64 planet.CurrentFleetshipReinforcementBalance += reinforcementFleetShipBudget = 71.07 called Helper_PickUnitsForReinforcement with: FighterII, BomberII, MissileShipII, ShieldBearerII, SpireTractorPlatformII which became, after calling PruneFGTypeListAccordingToPlanetReinforcementTypes, : BomberII, BomberII, BomberII, BomberII, BomberII, BomberII, BomberII, BomberII, BomberII, MissileShipII ** Picked 8 BomberII @ 8 each = 64 1 MissileShipII @ 8 each = 8 After picking fleet ships, planet.CurrentFleetshipReinforcementBalance = is now -0.93 = checking for starship or guardian reinforcements reinforcementFleetShipBudget: 76.64 player.AITypeData.StarshipBudgetMultiplier: 0.08 = reinforcementStarshipBudget = reinforcementFleetShipBudget * player.AITypeData.StarshipBudgetMultiplier * 8 = 51.49 planet.CurrentStarshipGuardianReinforcementBalance += reinforcementStarshipBudget = -44.22 since CurrentStarshipGuardianReinforcementBalance <= 0, skipping starship/guardians this time around. remainingReinforcements -= multiplierFromPriority = 0 **** total resulting reinforcementBudgetToRedirectToOtherThings = 97.95 reinforcementBudgetToRedirectToOtherThings *= difficultyFactor = -548.56 totals for planet 16 (Alioth); count: 5, strength: 80 totals for planet 8 (Jackson ); count: 10, strength: 80 totals for planet 22 (Baton Rouge ); count: 5, strength: 78.4 totals for planet 6 (Dengaida); count: 7, strength: 240 totals for planet 51 (Montana ); count: 9, strength: 72 totals for planet 24 (Austin ); count: 9, strength: 72 totals for FighterIV; count: 3, strength: 48 totals for CruiserIV; count: 2, strength: 32 totals for MissileShipII; count: 13, strength: 104 totals for BomberII; count: 12, strength: 96 totals for Bomber; count: 1, strength: 4 totals for SpireTractorPlatform; count: 1, strength: 38.4 totals for MissileShip; count: 1, strength: 4 totals for ShieldBearer; count: 2, strength: 32 totals for FighterII; count: 9, strength: 72 totals for LeechStarshipII; count: 1, strength: 192 == grand totals; count: 45, strength: 622.4 4/28/2016 7:16:33 PM (8.023) 4:40:40 ReinforcementCounter reached > 2400 for player 8 (since game was loaded, took 129 checks of (9+rand(2 or 3)) or alternatively a wave was converted to a reinforcement because Turtle or whatever AIProgressionLevelEffective = 230 AITechLevel = 2 numberOfReinforcements = (number of planets not controlled by the AI / 2) = 5 since AIDifficulty >= 8, numberOfReinforcements += 1 = 6 Effective reinforcement AIP capped at 200 + (the extra * 20% * the number of completed spire city hubs:200 = Planets in order of planned reinforcement attempt (note: alerted planets will get two lines, and a line with priority >= 2000 will get tried twice) : 16 (Alioth) (alerted) reinforce priority = 0 8 (Jackson ) (alerted) reinforce priority = 0 22 (Baton Rouge ) (alerted) reinforce priority = 0 6 (Dengaida) (alerted) reinforce priority = 0 51 (Montana ) (alerted) reinforce priority = 0 24 (Austin ) (alerted) reinforce priority = 0 43 (Concord ) (alerted) reinforce priority = 0 = (if it gets down here and was able to reinforce any of them, it goes back to the top of the list and tries them again.) 36 (YOUNGSTER HOME) (homeworld, +500) reinforce priority = 500 28 (NESTER HOME) (homeworld, +500) reinforce priority = 500 29 (Connecticut ) (core, +300) reinforce priority = 300 27 (California ) (core, +300) reinforce priority = 300 37 (Providence ) (core, +300) reinforce priority = 300 35 (Richmond ) (core, +300) reinforce priority = 300 (40 more reinforceable planets that are not alerted and have reinforcement priority = 0 baseReinforcementFleetShipBudget = 1.5 * AIDiff * handicapMultiplier = 13.5 baseReinforcementFleetShipBudget += 4 + ( player.AIDifficulty / 2 ) = 22 baseReinforcementFleetShipBudget += ((AIP/10) * (AIDiff/10)) = 40 baseReinforcementFleetShipBudget *= 0.175 = 6.99 baseReinforcementFleetShipBudget must be at most 35; = 6.99 baseReinforcementFleetShipBudget *= 1 + ( AIP * 0.08 ) = 76.64 baseReinforcementFleetShipBudget *= MultiplierFromHumanHomeworlds = 76.64 baseReinforcementFleetShipBudget *= player.AITypeData.ReinforcementsMultiplier = 76.64 uncappedAIPReinforcementFleetShipBudget = 1.5 * AIDiff * handicapMultiplier = 13.5 uncappedAIPReinforcementFleetShipBudget += 4 + ( player.AIDifficulty / 2 ) = 22 uncappedAIPReinforcementFleetShipBudget += ((AIP/10) * (AIDiff/10)) = 42.7 uncappedAIPReinforcementFleetShipBudget *= 0.175 = 7.46 uncappedAIPReinforcementFleetShipBudget *= 1 + ( AIP * 0.08 ) = 92.96 uncappedAIPReinforcementFleetShipBudget *= MultiplierFromHumanHomeworlds = 92.96 uncappedAIPReinforcementFleetShipBudget *= player.AITypeData.ReinforcementsMultiplier = 92.96 **** reinforcementBudgetToRedirectToOtherThings += ( uncappedAIPReinforcementFleetShipBudget - baseReinforcementFleetShipBudget ) * numberOfReinforcements = 97.95 = Trying to reinforce Alioth (#16) planet.CurrentFleetshipReinforcementBalance = -7.22 Reinforcement focus types: YounglingShrike,Cruiser,MicroFighter numberOfGuardables = planet.FgNonWormholeNonSpecialForcesGuardPosts.Count + ( planet.OrbitalCommandStation == null ? 0 : 1 ) = 1 currentPopulation = rollup.AlliedUnits.Count + rollup.Planet.FgColdStorageUnits.Count = 18 populationCap = numberOfGuardables = 1 populationCap *= Game.Instance.Options.UnitCapScale.AIShipCapPerPost = 75 since !(planet.WasOriginallyHomePlanet || planet.IsCoreAIPlanet), maximum = Game.Instance.Options.UnitCapScale.AIShipCapMaxNormal = 500 minimum = Game.Instance.Options.UnitCapScale.AIShipCapMinimum = 200 populationCap = Max(populationCap,mimimum) = 200 currentPopulation < populationCap, so proceeding with reinforcement here multiplierFromPriority = 1 multiplierFromSpecialStructures = 1 multiplierFromGuardPosts = 1 + planet.FgNonWormholeNonSpecialForcesGuardPosts.Count * 0.1 = 1 reinforcementFleetShipBudget = baseReinforcementFleetShipBudget = 76.64 reinforcementFleetShipBudget *= multiplierFromPriority = 76.64 reinforcementFleetShipBudget *= multiplierFromSpecialStructures = 76.64 reinforcementFleetShipBudget *= multiplierFromGuardPosts = 76.64 planet.CurrentFleetshipReinforcementBalance += reinforcementFleetShipBudget = 69.42 called Helper_PickUnitsForReinforcement with: FighterIV, BomberIV, CruiserIV, ShieldBearerIV, SpireTractorPlatformIV which became, after calling PruneFGTypeListAccordingToPlanetReinforcementTypes, : FighterIV, BomberIV, CruiserIV, ShieldBearerIV, SpireTractorPlatformIV ** Picked 3 FighterIV @ 16 each = 48 2 CruiserIV @ 16 each = 32 After picking fleet ships, planet.CurrentFleetshipReinforcementBalance = is now -10.58 = checking for starship or guardian reinforcements reinforcementFleetShipBudget: 76.64 player.AITypeData.StarshipBudgetMultiplier: 0.08 = reinforcementStarshipBudget = reinforcementFleetShipBudget * player.AITypeData.StarshipBudgetMultiplier * 8 = 51.49 planet.CurrentStarshipGuardianReinforcementBalance += reinforcementStarshipBudget = -186.21 since CurrentStarshipGuardianReinforcementBalance <= 0, skipping starship/guardians this time around. remainingReinforcements -= multiplierFromPriority = 5 = Trying to reinforce Jackson (#8) planet.CurrentFleetshipReinforcementBalance = -1.15 Reinforcement focus types: Cruiser,Bomber,Shield numberOfGuardables = planet.FgNonWormholeNonSpecialForcesGuardPosts.Count + ( planet.OrbitalCommandStation == null ? 0 : 1 ) = 1 currentPopulation = rollup.AlliedUnits.Count + rollup.Planet.FgColdStorageUnits.Count = 71 populationCap = numberOfGuardables = 1 populationCap *= Game.Instance.Options.UnitCapScale.AIShipCapPerPost = 75 since !(planet.WasOriginallyHomePlanet || planet.IsCoreAIPlanet), maximum = Game.Instance.Options.UnitCapScale.AIShipCapMaxNormal = 500 minimum = Game.Instance.Options.UnitCapScale.AIShipCapMinimum = 200 populationCap = Max(populationCap,mimimum) = 200 currentPopulation < populationCap, so proceeding with reinforcement here multiplierFromPriority = 1 multiplierFromSpecialStructures = 1 multiplierFromGuardPosts = 1 + planet.FgNonWormholeNonSpecialForcesGuardPosts.Count * 0.1 = 1 reinforcementFleetShipBudget = baseReinforcementFleetShipBudget = 76.64 reinforcementFleetShipBudget *= multiplierFromPriority = 76.64 reinforcementFleetShipBudget *= multiplierFromSpecialStructures = 76.64 reinforcementFleetShipBudget *= multiplierFromGuardPosts = 76.64 planet.CurrentFleetshipReinforcementBalance += reinforcementFleetShipBudget = 75.48 called Helper_PickUnitsForReinforcement with: FighterII, BomberII, MissileShipII, ShieldBearerII, SpireTractorPlatformII which became, after calling PruneFGTypeListAccordingToPlanetReinforcementTypes, : BomberII, BomberII, BomberII, MissileShipII, MissileShipII, MissileShipII, MissileShipII, MissileShipII, MissileShipII, MissileShipII, MissileShipII, MissileShipII, ShieldBearerII ** Picked 7 MissileShipII @ 8 each = 56 3 BomberII @ 8 each = 24 After picking fleet ships, planet.CurrentFleetshipReinforcementBalance = is now -4.52 = checking for starship or guardian reinforcements reinforcementFleetShipBudget: 76.64 player.AITypeData.StarshipBudgetMultiplier: 0.08 = reinforcementStarshipBudget = reinforcementFleetShipBudget * player.AITypeData.StarshipBudgetMultiplier * 8 = 51.49 planet.CurrentStarshipGuardianReinforcementBalance += reinforcementStarshipBudget = -30.8 since CurrentStarshipGuardianReinforcementBalance <= 0, skipping starship/guardians this time around. remainingReinforcements -= multiplierFromPriority = 4 = Trying to reinforce Baton Rouge (#22) planet.CurrentFleetshipReinforcementBalance = -1.88 Reinforcement focus types: YounglingShrike,ZenithPolarizer,MicroFighter numberOfGuardables = planet.FgNonWormholeNonSpecialForcesGuardPosts.Count + ( planet.OrbitalCommandStation == null ? 0 : 1 ) = 1 currentPopulation = rollup.AlliedUnits.Count + rollup.Planet.FgColdStorageUnits.Count = 31 populationCap = numberOfGuardables = 1 populationCap *= Game.Instance.Options.UnitCapScale.AIShipCapPerPost = 75 since !(planet.WasOriginallyHomePlanet || planet.IsCoreAIPlanet), maximum = Game.Instance.Options.UnitCapScale.AIShipCapMaxNormal = 500 minimum = Game.Instance.Options.UnitCapScale.AIShipCapMinimum = 200 populationCap = Max(populationCap,mimimum) = 200 currentPopulation < populationCap, so proceeding with reinforcement here multiplierFromPriority = 1 multiplierFromSpecialStructures = 1 multiplierFromGuardPosts = 1 + planet.FgNonWormholeNonSpecialForcesGuardPosts.Count * 0.1 = 1 reinforcementFleetShipBudget = baseReinforcementFleetShipBudget = 76.64 reinforcementFleetShipBudget *= multiplierFromPriority = 76.64 reinforcementFleetShipBudget *= multiplierFromSpecialStructures = 76.64 reinforcementFleetShipBudget *= multiplierFromGuardPosts = 76.64 planet.CurrentFleetshipReinforcementBalance += reinforcementFleetShipBudget = 74.76 called Helper_PickUnitsForReinforcement with: Fighter, Bomber, MissileShip, ShieldBearer, SpireTractorPlatform which became, after calling PruneFGTypeListAccordingToPlanetReinforcementTypes, : Fighter, Bomber, MissileShip, ShieldBearer, SpireTractorPlatform ** Picked 1 Bomber @ 4 each = 4 1 SpireTractorPlatform @ 38.4 each = 38.4 1 MissileShip @ 4 each = 4 2 ShieldBearer @ 16 each = 32 After picking fleet ships, planet.CurrentFleetshipReinforcementBalance = is now -3.64 = checking for starship or guardian reinforcements reinforcementFleetShipBudget: 76.64 player.AITypeData.StarshipBudgetMultiplier: 0.08 = reinforcementStarshipBudget = reinforcementFleetShipBudget * player.AITypeData.StarshipBudgetMultiplier * 8 = 51.49 planet.CurrentStarshipGuardianReinforcementBalance += reinforcementStarshipBudget = -13.66 since CurrentStarshipGuardianReinforcementBalance <= 0, skipping starship/guardians this time around. remainingReinforcements -= multiplierFromPriority = 3 = Trying to reinforce Dengaida (#6) planet.CurrentFleetshipReinforcementBalance = -31.51 Reinforcement focus types: Fighter,Bomber,Cruiser numberOfGuardables = planet.FgNonWormholeNonSpecialForcesGuardPosts.Count + ( planet.OrbitalCommandStation == null ? 0 : 1 ) = 1 currentPopulation = rollup.AlliedUnits.Count + rollup.Planet.FgColdStorageUnits.Count = 72 populationCap = numberOfGuardables = 1 populationCap *= Game.Instance.Options.UnitCapScale.AIShipCapPerPost = 75 since !(planet.WasOriginallyHomePlanet || planet.IsCoreAIPlanet), maximum = Game.Instance.Options.UnitCapScale.AIShipCapMaxNormal = 500 minimum = Game.Instance.Options.UnitCapScale.AIShipCapMinimum = 200 populationCap = Max(populationCap,mimimum) = 200 currentPopulation < populationCap, so proceeding with reinforcement here multiplierFromPriority = 1 multiplierFromSpecialStructures = 1 multiplierFromGuardPosts = 1 + planet.FgNonWormholeNonSpecialForcesGuardPosts.Count * 0.1 = 1 reinforcementFleetShipBudget = baseReinforcementFleetShipBudget = 76.64 reinforcementFleetShipBudget *= multiplierFromPriority = 76.64 reinforcementFleetShipBudget *= multiplierFromSpecialStructures = 76.64 reinforcementFleetShipBudget *= multiplierFromGuardPosts = 76.64 planet.CurrentFleetshipReinforcementBalance += reinforcementFleetShipBudget = 45.12 called Helper_PickUnitsForReinforcement with: FighterII, BomberII, MissileShipII, ShieldBearerII, SpireTractorPlatformII which became, after calling PruneFGTypeListAccordingToPlanetReinforcementTypes, : FighterII, FighterII, FighterII, FighterII, FighterII, FighterII, FighterII, FighterII, FighterII, BomberII, BomberII, BomberII, MissileShipII ** Picked 5 FighterII @ 8 each = 40 1 BomberII @ 8 each = 8 After picking fleet ships, planet.CurrentFleetshipReinforcementBalance = is now -2.88 = checking for starship or guardian reinforcements reinforcementFleetShipBudget: 76.64 player.AITypeData.StarshipBudgetMultiplier: 0.08 = reinforcementStarshipBudget = reinforcementFleetShipBudget * player.AITypeData.StarshipBudgetMultiplier * 8 = 51.49 planet.CurrentStarshipGuardianReinforcementBalance += reinforcementStarshipBudget = 37.63 maxStarshipsAtPlanet = planetReinforcementAITechLevel * 3 = 6 current starship count: 1 maxGuardiansPerGuardable is 1, plus 1 if Diff >= 8, plus 1 if Diff >= 10: 2 totalAllowedGuardians = numberOfGuardables * maxGuardiansPerGuardable = 2 currentGuardianCount: 2 currentGuardianCount >= totalAllowedGuardians, so can't pick guardians called Helper_PickUnitsForReinforcement with: Flagship, AIRaidStarship, DreadnoughtII, LeechStarshipII, BomberStarship, ZenithStarshipI, SpireStarshipI which became, after calling PruneFGTypeListAccordingToPlanetReinforcementTypes, : Flagship, AIRaidStarship, DreadnoughtII, LeechStarshipII, BomberStarship, ZenithStarshipI, SpireStarshipI ** Picked 1 LeechStarshipII @ 192 each = 192 After picking, planet.CurrentStarshipGuardianReinforcementBalance = -154.37 remainingReinforcements -= multiplierFromPriority = 2 = Trying to reinforce Montana (#51) planet.CurrentFleetshipReinforcementBalance = -5.75 Reinforcement focus types: YounglingShrike,Cruiser,Fighter numberOfGuardables = planet.FgNonWormholeNonSpecialForcesGuardPosts.Count + ( planet.OrbitalCommandStation == null ? 0 : 1 ) = 1 currentPopulation = rollup.AlliedUnits.Count + rollup.Planet.FgColdStorageUnits.Count = 67 populationCap = numberOfGuardables = 1 populationCap *= Game.Instance.Options.UnitCapScale.AIShipCapPerPost = 75 since !(planet.WasOriginallyHomePlanet || planet.IsCoreAIPlanet), maximum = Game.Instance.Options.UnitCapScale.AIShipCapMaxNormal = 500 minimum = Game.Instance.Options.UnitCapScale.AIShipCapMinimum = 200 populationCap = Max(populationCap,mimimum) = 200 currentPopulation < populationCap, so proceeding with reinforcement here multiplierFromPriority = 1 multiplierFromSpecialStructures = 1 multiplierFromGuardPosts = 1 + planet.FgNonWormholeNonSpecialForcesGuardPosts.Count * 0.1 = 1 reinforcementFleetShipBudget = baseReinforcementFleetShipBudget = 76.64 reinforcementFleetShipBudget *= multiplierFromPriority = 76.64 reinforcementFleetShipBudget *= multiplierFromSpecialStructures = 76.64 reinforcementFleetShipBudget *= multiplierFromGuardPosts = 76.64 planet.CurrentFleetshipReinforcementBalance += reinforcementFleetShipBudget = 70.89 called Helper_PickUnitsForReinforcement with: FighterII, BomberII, MissileShipII, ShieldBearerII, SpireTractorPlatformII which became, after calling PruneFGTypeListAccordingToPlanetReinforcementTypes, : FighterII, MissileShipII, MissileShipII, MissileShipII ** Picked 4 FighterII @ 8 each = 32 5 MissileShipII @ 8 each = 40 After picking fleet ships, planet.CurrentFleetshipReinforcementBalance = is now -1.11 = checking for starship or guardian reinforcements reinforcementFleetShipBudget: 76.64 player.AITypeData.StarshipBudgetMultiplier: 0.08 = reinforcementStarshipBudget = reinforcementFleetShipBudget * player.AITypeData.StarshipBudgetMultiplier * 8 = 51.49 planet.CurrentStarshipGuardianReinforcementBalance += reinforcementStarshipBudget = -15.22 since CurrentStarshipGuardianReinforcementBalance <= 0, skipping starship/guardians this time around. remainingReinforcements -= multiplierFromPriority = 1 = Trying to reinforce Austin (#24) planet.CurrentFleetshipReinforcementBalance = -5.57 Reinforcement focus types: Bomber,MicroFighter,Cruiser numberOfGuardables = planet.FgNonWormholeNonSpecialForcesGuardPosts.Count + ( planet.OrbitalCommandStation == null ? 0 : 1 ) = 1 currentPopulation = rollup.AlliedUnits.Count + rollup.Planet.FgColdStorageUnits.Count = 58 populationCap = numberOfGuardables = 1 populationCap *= Game.Instance.Options.UnitCapScale.AIShipCapPerPost = 75 since !(planet.WasOriginallyHomePlanet || planet.IsCoreAIPlanet), maximum = Game.Instance.Options.UnitCapScale.AIShipCapMaxNormal = 500 minimum = Game.Instance.Options.UnitCapScale.AIShipCapMinimum = 200 populationCap = Max(populationCap,mimimum) = 200 currentPopulation < populationCap, so proceeding with reinforcement here multiplierFromPriority = 1 multiplierFromSpecialStructures = 1 multiplierFromGuardPosts = 1 + planet.FgNonWormholeNonSpecialForcesGuardPosts.Count * 0.1 = 1 reinforcementFleetShipBudget = baseReinforcementFleetShipBudget = 76.64 reinforcementFleetShipBudget *= multiplierFromPriority = 76.64 reinforcementFleetShipBudget *= multiplierFromSpecialStructures = 76.64 reinforcementFleetShipBudget *= multiplierFromGuardPosts = 76.64 planet.CurrentFleetshipReinforcementBalance += reinforcementFleetShipBudget = 71.07 called Helper_PickUnitsForReinforcement with: FighterII, BomberII, MissileShipII, ShieldBearerII, SpireTractorPlatformII which became, after calling PruneFGTypeListAccordingToPlanetReinforcementTypes, : BomberII, BomberII, BomberII, BomberII, BomberII, BomberII, BomberII, BomberII, BomberII, MissileShipII ** Picked 8 BomberII @ 8 each = 64 1 MissileShipII @ 8 each = 8 After picking fleet ships, planet.CurrentFleetshipReinforcementBalance = is now -0.93 = checking for starship or guardian reinforcements reinforcementFleetShipBudget: 76.64 player.AITypeData.StarshipBudgetMultiplier: 0.08 = reinforcementStarshipBudget = reinforcementFleetShipBudget * player.AITypeData.StarshipBudgetMultiplier * 8 = 51.49 planet.CurrentStarshipGuardianReinforcementBalance += reinforcementStarshipBudget = -44.22 since CurrentStarshipGuardianReinforcementBalance <= 0, skipping starship/guardians this time around. remainingReinforcements -= multiplierFromPriority = 0 **** total resulting reinforcementBudgetToRedirectToOtherThings = 97.95 reinforcementBudgetToRedirectToOtherThings *= difficultyFactor = -548.56 totals for planet 16 (Alioth); count: 5, strength: 80 totals for planet 8 (Jackson ); count: 10, strength: 80 totals for planet 22 (Baton Rouge ); count: 5, strength: 78.4 totals for planet 6 (Dengaida); count: 7, strength: 240 totals for planet 51 (Montana ); count: 9, strength: 72 totals for planet 24 (Austin ); count: 9, strength: 72 totals for FighterIV; count: 3, strength: 48 totals for CruiserIV; count: 2, strength: 32 totals for MissileShipII; count: 13, strength: 104 totals for BomberII; count: 12, strength: 96 totals for Bomber; count: 1, strength: 4 totals for SpireTractorPlatform; count: 1, strength: 38.4 totals for MissileShip; count: 1, strength: 4 totals for ShieldBearer; count: 2, strength: 32 totals for FighterII; count: 9, strength: 72 totals for LeechStarshipII; count: 1, strength: 192 == grand totals; count: 45, strength: 622.4 |
Date Modified | Username | Field | Change |
---|---|---|---|
Apr 28, 2016 8:13 pm | tadrinth | New Issue | |
Apr 28, 2016 8:13 pm | tadrinth | File Added: Neinzul 9 retry 1.39 mines 1 exo 0.sav | |
Apr 28, 2016 8:20 pm | tadrinth | File Added: LogicLog_AIMechanic_Reinforcements_MainThread.txt | |
Apr 28, 2016 8:21 pm | tadrinth | Description Updated | |
Apr 28, 2016 8:21 pm | tadrinth | Description Updated |