Hmmm.
I'm looking at the AIThreadWaveComputationLog.txt file and wondering how MultiplierFromWaveInterval is calculated.
I assume this is where the wave size vs. time comes from but the values seem high, looking over the last several waves I have between 2.3 and 3.5 for that number.
This is before all the difficulty modifiers and AIP is calculated.
For reference the 18K infiltrator wave:
Starting CreateHomogenousWaveToPlanet at Game Time: 12:12:55 ; Player.AIType: Scorched_Earth ; Player.AIDifficulty: 10 ; AIProgressionLevel: 118 ; AITechLevel: 2
WaveSize = MultiplierFromWaveInterval * MultiplierFromHumanHomePlanetAndChampionCount: 2.94 * 1.2 = 3.53
aiTypeBasedAIPIncrement : 0
since difficulty >= 8, effectiveAIP = floor( ( AIProgressionLevel * 0.8 ) ^ 1.1 ) : 148
workingShips = ( effectiveAIP * player.AIDifficulty ) / ( 13 - player.AIDifficulty ) : 493.33
workingShips *= FInt.FromParts( 0, AILoop.Instance.AIRandom.Next( 800, 1100 ) ) : 447.93
workingShips = Max(workingShips,34 * handicap_multiplier) :447.93
Inside AdjustNumberShipsFromAIType, multiplier: 1
after AdjustNumberShipsFromAIType call, workingShips :447.93
numberShips = workingShips.IntValue :447
numberTech123 = numberShips - numberExplosive - numberCore :447
Performing first CheckWave with size factor of 3.53 on wave at Game Time: 12:13:38
CheckWave: populating count of InfiltratorII with base magnitude of 342
numberUnits = kv.Value * this.WaveSize : 1207.69
after applying the ship-type-specific cap multiplier (which includes the unit-cap-scale multiplier), numberUnits : 3353.57
after applying UsefulnessInAIWaveMultiplier if any, numberUnits : 3353.57
after applying Mark-based multiplier if any, numberUnits : 3017.89
after applying at-least-one rule, numberUnits : 3017.89
after applying difficulty-based multiplier (if <= 3 then 1, <= 4 : 1.5, <= 5 : 1.75, <= 6 : 2, <= 7 : 2.25, <= 9 : 2.5, <= 9.3 : 2.75, <= 9.6 : 3, <= 9.8 : 3.8, 10 : 4.5), numberUnits : 13580.5
numberUnitsInt = numberUnits.IntValue : 13580
CheckWave: populating count of LeechStarshipII with base magnitude of 1
numberUnits = kv.Value * this.WaveSize : 3.53
after applying the ship-type-specific cap multiplier (which includes the unit-cap-scale multiplier), numberUnits : 0.07
after applying UsefulnessInAIWaveMultiplier if any, numberUnits : 0.07
after applying Mark-based multiplier if any, numberUnits : 0.06
after applying at-least-one rule, numberUnits : 1
after applying difficulty-based multiplier (if <= 3 then 1, <= 4 : 1.5, <= 5 : 1.75, <= 6 : 2, <= 7 : 2.25, <= 9 : 2.5, <= 9.3 : 2.75, <= 9.6 : 3, <= 9.8 : 3.8, 10 : 4.5), numberUnits : 4.5
numberUnitsInt = numberUnits.IntValue : 4
it's a starship so only adding one rule : 1 (had you going there, didn't we)
CheckWave: populating count of ZenithStarshipII with base magnitude of 1
numberUnits = kv.Value * this.WaveSize : 3.53
after applying the ship-type-specific cap multiplier (which includes the unit-cap-scale multiplier), numberUnits : 0.07
after applying UsefulnessInAIWaveMultiplier if any, numberUnits : 0.07
after applying Mark-based multiplier if any, numberUnits : 0.06
after applying at-least-one rule, numberUnits : 1
after applying difficulty-based multiplier (if <= 3 then 1, <= 4 : 1.5, <= 5 : 1.75, <= 6 : 2, <= 7 : 2.25, <= 9 : 2.5, <= 9.3 : 2.75, <= 9.6 : 3, <= 9.8 : 3.8, 10 : 4.5), numberUnits : 4.5
numberUnitsInt = numberUnits.IntValue : 4
it's a starship so only adding one rule : 1 (had you going there, didn't we)
CheckWave: populating count of SpireStarshipII with base magnitude of 1
numberUnits = kv.Value * this.WaveSize : 3.53
after applying the ship-type-specific cap multiplier (which includes the unit-cap-scale multiplier), numberUnits : 0.07
after applying UsefulnessInAIWaveMultiplier if any, numberUnits : 0.07
after applying Mark-based multiplier if any, numberUnits : 0.06
after applying at-least-one rule, numberUnits : 1
after applying difficulty-based multiplier (if <= 3 then 1, <= 4 : 1.5, <= 5 : 1.75, <= 6 : 2, <= 7 : 2.25, <= 9 : 2.5, <= 9.3 : 2.75, <= 9.6 : 3, <= 9.8 : 3.8, 10 : 4.5), numberUnits : 4.5
numberUnitsInt = numberUnits.IntValue : 4
it's a starship so only adding one rule : 1 (had you going there, didn't we)
CheckWave: populating count of InfiltratorIII with base magnitude of 105
numberUnits = kv.Value * this.WaveSize : 370.78
after applying the ship-type-specific cap multiplier (which includes the unit-cap-scale multiplier), numberUnits : 1029.61
after applying UsefulnessInAIWaveMultiplier if any, numberUnits : 1029.61
after applying Mark-based multiplier if any, numberUnits : 720.67
after applying at-least-one rule, numberUnits : 720.67
after applying difficulty-based multiplier (if <= 3 then 1, <= 4 : 1.5, <= 5 : 1.75, <= 6 : 2, <= 7 : 2.25, <= 9 : 2.5, <= 9.3 : 2.75, <= 9.6 : 3, <= 9.8 : 3.8, 10 : 4.5), numberUnits : 3243.03
numberUnitsInt = numberUnits.IntValue : 3243
Wave total ships: 16826
TypesForDirectAdd count by type:
InfiltratorII => 1000
LeechStarshipII => 1
ZenithStarshipII => 1
SpireStarshipII => 1
TypesForCarrierAdd count by type:
InfiltratorII => 12580
InfiltratorIII => 3243
D.