View Issue Details

IDProjectCategoryLast Update
0018806AI War 1 / ClassicBug - GameplayApr 28, 2016 8:21 pm
Reportertadrinth Assigned To 
Status newResolutionopen 
Product Version8.023 
Summary0018806: WormholeGuard Posts not getting reinforcements
DescriptionI'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.
TagsNo tags attached.
Internal Weight

Activities

tadrinth

Apr 28, 2016 8:13 pm

reporter  

tadrinth

Apr 28, 2016 8:20 pm

reporter  

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





Issue History

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