Author Topic: AI War Beta 7.029-7.031 "Extermination Protocol MkII" Released!  (Read 13718 times)

Offline DrFranknfurter

  • Full Member
  • ***
  • Posts: 116
Re: AI War Beta 7.029-7.031 "Extermination Protocol MkII" Released!
« Reply #120 on: May 23, 2014, 07:34:33 pm »
Oh I had some fun, it made me go back half an hour and stock up a few warheads for the first time in the game. I kept thinking *I'll be fine once I get a spire fleet* but no matter how many ships it wasn't quite enough without an ever increasing number of warheads. (I suppose the same effect would be just giving the AI a positive handicap, something to try sometime). (I even tried increasing the number of HWs to give me a better chance... now I know why that really didn't help)

Offline Cinth

  • Core Member Mark II
  • *****
  • Posts: 2,527
  • Resident Zombie
Re: AI War Beta 7.029-7.031 "Extermination Protocol MkII" Released!
« Reply #121 on: May 23, 2014, 07:40:10 pm »
LOL.  Such a laugh. That little error caused about 8 deaths before the 20 minute mark.  Actually, it made the start more tense and kinda fun for me.
Nothing like a stray *16 to spice up the day.
Nothing a net of FF1s couldn't contain and a couple Mod Forts couldn't obliterate.  I think that is the fastest I ever had to put out 3 fortresses.
Quote from: keith.lamothe
Opened your save. My computer wept. Switched to the ST planet and ship icons filled my screen, so I zoomed out. Game told me that it _was_ totally zoomed out. You could seriously walk from one end of the inner grav well to the other without getting your feet cold.

Offline chemical_art

  • Core Member Mark IV
  • *****
  • Posts: 3,952
  • Fabulous
Re: AI War Beta 7.029-7.031 "Extermination Protocol MkII" Released!
« Reply #122 on: May 23, 2014, 07:43:45 pm »
For 7.032:

* Fixed a bug in wave calculations where the number of human homeworlds was being factored in twice.



Whoops ;)

That would explain my 5 world misery.

Good to know :)
Life is short. Have fun.

Offline Draco18s

  • Resident Velociraptor
  • Core Member Mark V
  • *****
  • Posts: 4,251
Re: AI War Beta 7.029-7.031 "Extermination Protocol MkII" Released!
« Reply #123 on: May 23, 2014, 08:33:00 pm »
For 7.032:

* Fixed a bug in wave calculations where the number of human homeworlds was being factored in twice.

That might help my current situation.  But I think what would really solve the problem is this.

I have one planet that is neigh undefendable, despite being FOUR hops from the nearest not-mine system (neutral in one direction, hostile in the other) at AI tech level 2.  Oh, and there were zero known warp relays (I had scouts check at the borders and a hop out from that).  Game just ended (again) due to two waves in quick succession (1:15 apart) that was first 600+ frigates followed by 400+ electric bombers.  Fortress + eight? shields (mix of hardened and regular) + entire fleet + several turrets barely made a dent in the numbers.  At one point I had 1200 enemy ships on-planet.

Once those ships chewed through my fleet, the force fields, and the fortress, they split up and om nommed their way through my backlines until I ran out of power.

Offline Kahuna

  • Core Member
  • *****
  • Posts: 2,222
  • Kahuna Matata!
Re: AI War Beta 7.029-7.031 "Extermination Protocol MkII" Released!
« Reply #124 on: May 24, 2014, 02:21:15 am »
When I look at the galaxy map and press W I can see all hostile wormholes. If the AI builds a warp relay can I see those .. "wormholes".. in the galaxy map?

Also do the warp relay waves spawn at the edge of the map like counterwave post waves?
set /A diff=10
if %diff%==max (
   set /A me=:)
) else (
   set /A me=SadPanda
)
echo Check out my AI War strategy guide and find your inner Super Cat!
echo 2592 hours of AI War and counting!
echo Kahuna matata!

Offline keith.lamothe

  • Arcen Games Staff
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 19,505
Re: AI War Beta 7.029-7.031 "Extermination Protocol MkII" Released!
« Reply #125 on: May 24, 2014, 09:22:25 am »
When I look at the galaxy map and press W I can see all hostile wormholes. If the AI builds a warp relay can I see those .. "wormholes".. in the galaxy map?
Probably; they're basically warp gates with some extra stuff.

Quote
Also do the warp relay waves spawn at the edge of the map like counterwave post waves?
If the target planet has a bordering warp gate then it will spawn from the corresponding wormhole.  Otherwise counterwave spawn, yea.
Have ideas or bug reports for one of our games? Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline Draco18s

  • Resident Velociraptor
  • Core Member Mark V
  • *****
  • Posts: 4,251
Re: AI War Beta 7.029-7.031 "Extermination Protocol MkII" Released!
« Reply #126 on: May 24, 2014, 10:22:34 am »
Quote
Also do the warp relay waves spawn at the edge of the map like counterwave post waves?
If the target planet has a bordering warp gate then it will spawn from the corresponding wormhole.  Otherwise counterwave spawn, yea.

Which is what's making Rewrinrex so undefendable.  Mines don't work, as the waves will come from anywhere.  And 600+ missile frigates aren't digestable by anything less than a full fleet.

Edit:
It may actually be the exogalactic wormhole from the backdoor hacker, but that doesn't make any sense either.  1) why would it send waves at adjacent planets (the tooltip doesn't say it can) and 2) why would they spawn at the edge of the gravity well, rather than at the corresponding wormhole?
« Last Edit: May 24, 2014, 10:38:05 am by Draco18s »

Offline Diazo

  • Master Member Mark II
  • *****
  • Posts: 1,717
  • I love/hate Diff 10
Re: AI War Beta 7.029-7.031 "Extermination Protocol MkII" Released!
« Reply #127 on: May 24, 2014, 04:05:07 pm »
Well, seems like I picked a fun time to vanish for a while. (Real life with baby, out of province trip to visit family, etc.)

But now I'm back and it's certainly daunting reading all those patch notes. The last game I played was 7.019, we are up to 7.031 now....

Anyways, thoughts on the current changes:

Damage to carriers kills ships inside them: Like. Really, really like. I got hammered with a 2k ship wave really early and this felt a lot smoother in terms of handling high count ships.

Warp relays: I think I like these, they are the only structure in the game (that I can think of) that is more dangerous on low connection maps. I play realistic maps and none of my systems are "behind the lines", they are all exposed to hostile systems anyway so the fact I have Warp Relays enabled was actually a non-issue as they did not increase the AI's threat in any meaningful way.

Salvage mechanic: Ouch, now this hurt. I started with Random AI types and I drew the One-Way doormaster which sent my losses through the roof. At the 1 hour 5 minute mark, the AI sent 2000 Laser Gatlings at me in retaliation for an attack that wiped my fleet because the Black Hole Machine kept me from retreating.  Now, it was a total wipe of my fleet, but it was only Mk I's even if I did have all the Mk I starships along.

However, that makes the normal wave of 75 bombers that hit me next was kind of a let down after that. Looking at the logs, I apparently gave the AI 1,704,254 metal in salvage for it to fling back in my face.

Going from 2000 to 75 ships from one wave to the next sounds odd enough to me that it might be worth a look at, either to tweak the numbers or maybe add a limit that the Salvage wave can only be X times bigger then a normal wave?

Wave logic:
Code: [Select]

5/24/2014 8:10:36 AM (7.031)
-----------------------------------
= CheckForWave proceeding with wave for player 8 because AccumulatedStrengthForNextWave is now >= normalWaveStrength at Game Time: 0:06:25
normalWaveStrength:200
AccumulatedStrengthForNextWave:200.08

= computation of normalWaveStrength:
FleetShipBudget = (base value, equivalent to a single mkI fighter on high caps) = 1
FleetShipBudget *= this.AITechLevel = 1
FleetShipBudget *= (FInt)Game.Instance.Options.TotalHumanPlayerPlusExtraHomeworldsCount = 1
FleetShipBudget *= this.AIProgressionLevelEffective = 10
FleetShipBudget *= player.GetHandicapMultiplier() = 10
preMinStep_DifficultyMultiplier = player.AIDifficulty / ( 13 - player.AIDifficulty ) = 1.41
FleetShipBudget *= preMinStep_DifficultyMultiplier = 14.07
FleetShipBudget less than minimum strength (which is 34 * player.GetHandicapMultiplier()), so set to 34
FleetShipBudget *= player.AITypeData.WaveSizeMultiplier = 34
postMinStep_DifficultyMultiplier = player.GetDifficultySpecificWaveSizeMultiplier() = 2.75
FleetShipBudget *= postMinStep_DifficultyMultiplier = 93.5
Because Diff >= 7 and entry_points = 0, entryPointMultiplier = 1
Because game time < 2 hours (385 seconds), using interpolation between non-modified and entry-point-modified range, entryPointMultiplier = 1
normalWaveStrength *= entryPointMultiplier = 93.5
normalWaveStrength *= this.WaitingBasedMultiplierForNextNormalWave = 93.5
normalWaveStrength *= Max(200,normalWaveStrength) = 200

= AccumulatedStrengthForNextWave (after the first wave) is based on, every second, adding ( baseWaveStrength / normalWaveIntervalInSeconds )
computation of baseWaveStrength is the same as normalWaveStrength, but without the entry-point-multiplier and later stuff

= computation of normalWaveIntervalInSeconds:
interval = floor( ( 14 - this.AIDifficulty ) * 3 * 60 ) = 1152

so, if you're curious, amountToGainPerSecond is 0.08

5/24/2014 8:10:36 AM (7.031)
-----------------------------------
Starting CreateWaveToPlanet at Game Time: 0:06:25 ; Player.AIType: Alarmist ; Player.AIDifficulty: 7.6 ; EffectiveAIP: 10 ; AITechLevel: 1 ; IsSchizo: False
WaveStrength = 200.08

= FleetShipBudget for this wave's fleet ships = 200.08

percentChanceParasiteWave (from AI type) = 0.03
percentChanceBomberWave (from AI type) = 0.06
percentChanceStealthWave (from AI type) = 0.06
= actually chosen WaveType: Parasite

AIP is between the current tech level's AIP threshold and the next tech level's, so promotionRatio (percent of fleet ships to be bought from next tech level up) = 0.04
Parasite waves try to spend 100% of the strength budget on types from the Parasite group
* called PickUnitsForWave with:  (... an empty list, how cute)
Some strength budget remaining from previous pick phases (if any), so spend what remains on types from the Normal group
* called PickUnitsForWave with: Fighter, Bomber, MissileShip, LazerGatling, ElectricShuttle
** Picked 24 ElectricShuttle @ 8 each = 192
** Picked 1 ElectricShuttleII @ 16 each = 16
= After picking fleet ships, FleetShipBudget is now -7.92

player.AITypeData.StarshipBudgetMultiplier: 0.08
= StarshipBudget = originalFleetShipBudget * player.AITypeData.StarshipBudgetMultiplier = 16.8
* called PickUnitsForWave with: LightStarship, Dreadnought, LeechStarship
** Picked
1 LeechStarship @ 96 each = 96
= After picking starships, StarshipBudget is now -79.2


== Wave total ships: 26
TypesForDirectAdd count by type:
ElectricShuttle : 24
ElectricShuttleII : 1
LeechStarship : 1
TypesForCarrierAdd count by type:
== For a grand-total Strength value of 304


5/24/2014 8:11:48 AM (7.031)
-----------------------------------
= CheckForWave proceeding with wave for player 9 because AccumulatedStrengthForNextWave is now >= normalWaveStrength at Game Time: 0:09:37
normalWaveStrength:200
AccumulatedStrengthForNextWave:200.08

= computation of normalWaveStrength:
FleetShipBudget = (base value, equivalent to a single mkI fighter on high caps) = 1
FleetShipBudget *= this.AITechLevel = 1
FleetShipBudget *= (FInt)Game.Instance.Options.TotalHumanPlayerPlusExtraHomeworldsCount = 1
FleetShipBudget *= this.AIProgressionLevelEffective = 10
FleetShipBudget *= player.GetHandicapMultiplier() = 10
preMinStep_DifficultyMultiplier = player.AIDifficulty / ( 13 - player.AIDifficulty ) = 1.41
FleetShipBudget *= preMinStep_DifficultyMultiplier = 14.07
FleetShipBudget less than minimum strength (which is 34 * player.GetHandicapMultiplier()), so set to 34
FleetShipBudget *= player.AITypeData.WaveSizeMultiplier = 34
postMinStep_DifficultyMultiplier = player.GetDifficultySpecificWaveSizeMultiplier() = 2.75
FleetShipBudget *= postMinStep_DifficultyMultiplier = 93.5
Because Diff >= 7 and entry_points = 0, entryPointMultiplier = 1
Because game time < 2 hours (577 seconds), using interpolation between non-modified and entry-point-modified range, entryPointMultiplier = 1
normalWaveStrength *= entryPointMultiplier = 93.5
normalWaveStrength *= this.WaitingBasedMultiplierForNextNormalWave = 93.5
normalWaveStrength *= Max(200,normalWaveStrength) = 200

= AccumulatedStrengthForNextWave (after the first wave) is based on, every second, adding ( baseWaveStrength / normalWaveIntervalInSeconds )
computation of baseWaveStrength is the same as normalWaveStrength, but without the entry-point-multiplier and later stuff

= computation of normalWaveIntervalInSeconds:
interval = floor( ( 14 - this.AIDifficulty ) * 3 * 60 ) = 1152

so, if you're curious, amountToGainPerSecond is 0.08

5/24/2014 8:11:48 AM (7.031)
-----------------------------------
Starting CreateWaveToPlanet at Game Time: 0:09:37 ; Player.AIType: OneWayDoormaster ; Player.AIDifficulty: 7.6 ; EffectiveAIP: 10 ; AITechLevel: 1 ; IsSchizo: False
WaveStrength = 200.08

= FleetShipBudget for this wave's fleet ships = 200.08

percentChanceParasiteWave (from AI type) = 0.03
percentChanceBomberWave (from AI type) = 0.06
percentChanceStealthWave (from AI type) = 0.06
= actually chosen WaveType: Normal

AIP is between the current tech level's AIP threshold and the next tech level's, so promotionRatio (percent of fleet ships to be bought from next tech level up) = 0.04
Some strength budget remaining from previous pick phases (if any), so spend what remains on types from the Normal group
* called PickUnitsForWave with: Fighter, Bomber, MissileShip, Raptor, YounglingFirefly
** Picked 48 Raptor @ 4 each = 192
** Picked 2 RaptorII @ 8 each = 16
= After picking fleet ships, FleetShipBudget is now -7.92

player.AITypeData.StarshipBudgetMultiplier: 0.08
= StarshipBudget = originalFleetShipBudget * player.AITypeData.StarshipBudgetMultiplier = 16.8
* called PickUnitsForWave with: LightStarship, Dreadnought, LeechStarship
** Picked
1 LeechStarship @ 96 each = 96
= After picking starships, StarshipBudget is now -79.2


== Wave total ships: 51
TypesForDirectAdd count by type:
Raptor : 48
RaptorII : 2
LeechStarship : 1
TypesForCarrierAdd count by type:
== For a grand-total Strength value of 304


5/24/2014 8:44:46 AM (7.031)
-----------------------------------
Salvage-Reprisal Wave Check; Current Game Time: 0:26:46
= Salvage is non-zero, so checking if player 8's AISalvage is high enough for a salvage-reprisal wave
AISalvage: 35433
effectiveMetalForSalvageWave = floor(AISalvage) = 35433
referenceMetalCost = (metal cost of a mkI bomber in this game) = 1600
referenceStrength = (strength of a mkI bomber in this game) = 2
metalToStrengthRatio = referenceStrength / referenceMetalCost = 0.00122
= potentialSalvageStrength = effectiveMetalForSalvageWave * metalToStrengthRatio = 43.25
computing strength budget of a normal wave for threshold check

FleetShipBudget = (base value, equivalent to a single mkI fighter on high caps) = 1
FleetShipBudget *= this.AITechLevel = 1
FleetShipBudget *= (FInt)Game.Instance.Options.TotalHumanPlayerPlusExtraHomeworldsCount = 1
FleetShipBudget *= this.AIProgressionLevelEffective = 30
FleetShipBudget *= player.GetHandicapMultiplier() = 30
preMinStep_DifficultyMultiplier = player.AIDifficulty / ( 13 - player.AIDifficulty ) = 1.41
FleetShipBudget *= preMinStep_DifficultyMultiplier = 42.22
FleetShipBudget *= player.AITypeData.WaveSizeMultiplier = 42.22
postMinStep_DifficultyMultiplier = player.GetDifficultySpecificWaveSizeMultiplier() = 2.75
FleetShipBudget *= postMinStep_DifficultyMultiplier = 116.1= not enough salvage strength to launch a salvage-reprisal (requires twice the normal wave size), so we'll check again in about 3 minutes


5/24/2014 8:44:57 AM (7.031)
-----------------------------------
Salvage-Reprisal Wave Check; Current Game Time: 0:26:51
= Salvage is non-zero, so checking if player 9's AISalvage is high enough for a salvage-reprisal wave
AISalvage: 558
effectiveMetalForSalvageWave = floor(AISalvage) = 558
referenceMetalCost = (metal cost of a mkI bomber in this game) = 1600
referenceStrength = (strength of a mkI bomber in this game) = 2
metalToStrengthRatio = referenceStrength / referenceMetalCost = 0.00122
= potentialSalvageStrength = effectiveMetalForSalvageWave * metalToStrengthRatio = 0.68
computing strength budget of a normal wave for threshold check

FleetShipBudget = (base value, equivalent to a single mkI fighter on high caps) = 1
FleetShipBudget *= this.AITechLevel = 1
FleetShipBudget *= (FInt)Game.Instance.Options.TotalHumanPlayerPlusExtraHomeworldsCount = 1
FleetShipBudget *= this.AIProgressionLevelEffective = 30
FleetShipBudget *= player.GetHandicapMultiplier() = 30
preMinStep_DifficultyMultiplier = player.AIDifficulty / ( 13 - player.AIDifficulty ) = 1.41
FleetShipBudget *= preMinStep_DifficultyMultiplier = 42.22
FleetShipBudget *= player.AITypeData.WaveSizeMultiplier = 42.22
postMinStep_DifficultyMultiplier = player.GetDifficultySpecificWaveSizeMultiplier() = 2.75
FleetShipBudget *= postMinStep_DifficultyMultiplier = 116.1= not enough salvage strength to launch a salvage-reprisal (requires twice the normal wave size), so we'll check again in about 3 minutes


5/24/2014 8:48:21 AM (7.031)
-----------------------------------
Salvage-Reprisal Wave Check; Current Game Time: 0:29:47
= Salvage is non-zero, so checking if player 8's AISalvage is high enough for a salvage-reprisal wave
AISalvage: 41474
effectiveMetalForSalvageWave = floor(AISalvage) = 41474
referenceMetalCost = (metal cost of a mkI bomber in this game) = 1600
referenceStrength = (strength of a mkI bomber in this game) = 2
metalToStrengthRatio = referenceStrength / referenceMetalCost = 0.00122
= potentialSalvageStrength = effectiveMetalForSalvageWave * metalToStrengthRatio = 50.63
computing strength budget of a normal wave for threshold check

FleetShipBudget = (base value, equivalent to a single mkI fighter on high caps) = 1
FleetShipBudget *= this.AITechLevel = 1
FleetShipBudget *= (FInt)Game.Instance.Options.TotalHumanPlayerPlusExtraHomeworldsCount = 1
FleetShipBudget *= this.AIProgressionLevelEffective = 30
FleetShipBudget *= player.GetHandicapMultiplier() = 30
preMinStep_DifficultyMultiplier = player.AIDifficulty / ( 13 - player.AIDifficulty ) = 1.41
FleetShipBudget *= preMinStep_DifficultyMultiplier = 42.22
FleetShipBudget *= player.AITypeData.WaveSizeMultiplier = 42.22
postMinStep_DifficultyMultiplier = player.GetDifficultySpecificWaveSizeMultiplier() = 2.75
FleetShipBudget *= postMinStep_DifficultyMultiplier = 116.1= not enough salvage strength to launch a salvage-reprisal (requires twice the normal wave size), so we'll check again in about 3 minutes


5/24/2014 8:48:26 AM (7.031)
-----------------------------------
Salvage-Reprisal Wave Check; Current Game Time: 0:29:52
= Salvage is non-zero, so checking if player 9's AISalvage is high enough for a salvage-reprisal wave
AISalvage: 558
effectiveMetalForSalvageWave = floor(AISalvage) = 558
referenceMetalCost = (metal cost of a mkI bomber in this game) = 1600
referenceStrength = (strength of a mkI bomber in this game) = 2
metalToStrengthRatio = referenceStrength / referenceMetalCost = 0.00122
= potentialSalvageStrength = effectiveMetalForSalvageWave * metalToStrengthRatio = 0.68
computing strength budget of a normal wave for threshold check

FleetShipBudget = (base value, equivalent to a single mkI fighter on high caps) = 1
FleetShipBudget *= this.AITechLevel = 1
FleetShipBudget *= (FInt)Game.Instance.Options.TotalHumanPlayerPlusExtraHomeworldsCount = 1
FleetShipBudget *= this.AIProgressionLevelEffective = 30
FleetShipBudget *= player.GetHandicapMultiplier() = 30
preMinStep_DifficultyMultiplier = player.AIDifficulty / ( 13 - player.AIDifficulty ) = 1.41
FleetShipBudget *= preMinStep_DifficultyMultiplier = 42.22
FleetShipBudget *= player.AITypeData.WaveSizeMultiplier = 42.22
postMinStep_DifficultyMultiplier = player.GetDifficultySpecificWaveSizeMultiplier() = 2.75
FleetShipBudget *= postMinStep_DifficultyMultiplier = 116.1= not enough salvage strength to launch a salvage-reprisal (requires twice the normal wave size), so we'll check again in about 3 minutes


5/24/2014 8:51:22 AM (7.031)
-----------------------------------
Salvage-Reprisal Wave Check; Current Game Time: 0:32:48
= Salvage is non-zero, so checking if player 8's AISalvage is high enough for a salvage-reprisal wave
AISalvage: 41474
effectiveMetalForSalvageWave = floor(AISalvage) = 41474
referenceMetalCost = (metal cost of a mkI bomber in this game) = 1600
referenceStrength = (strength of a mkI bomber in this game) = 2
metalToStrengthRatio = referenceStrength / referenceMetalCost = 0.00122
= potentialSalvageStrength = effectiveMetalForSalvageWave * metalToStrengthRatio = 50.63
computing strength budget of a normal wave for threshold check

FleetShipBudget = (base value, equivalent to a single mkI fighter on high caps) = 1
FleetShipBudget *= this.AITechLevel = 1
FleetShipBudget *= (FInt)Game.Instance.Options.TotalHumanPlayerPlusExtraHomeworldsCount = 1
FleetShipBudget *= this.AIProgressionLevelEffective = 30
FleetShipBudget *= player.GetHandicapMultiplier() = 30
preMinStep_DifficultyMultiplier = player.AIDifficulty / ( 13 - player.AIDifficulty ) = 1.41
FleetShipBudget *= preMinStep_DifficultyMultiplier = 42.22
FleetShipBudget *= player.AITypeData.WaveSizeMultiplier = 42.22
postMinStep_DifficultyMultiplier = player.GetDifficultySpecificWaveSizeMultiplier() = 2.75
FleetShipBudget *= postMinStep_DifficultyMultiplier = 116.1= not enough salvage strength to launch a salvage-reprisal (requires twice the normal wave size), so we'll check again in about 3 minutes


5/24/2014 8:51:27 AM (7.031)
-----------------------------------
Salvage-Reprisal Wave Check; Current Game Time: 0:32:53
= Salvage is non-zero, so checking if player 9's AISalvage is high enough for a salvage-reprisal wave
AISalvage: 558
effectiveMetalForSalvageWave = floor(AISalvage) = 558
referenceMetalCost = (metal cost of a mkI bomber in this game) = 1600
referenceStrength = (strength of a mkI bomber in this game) = 2
metalToStrengthRatio = referenceStrength / referenceMetalCost = 0.00122
= potentialSalvageStrength = effectiveMetalForSalvageWave * metalToStrengthRatio = 0.68
computing strength budget of a normal wave for threshold check

FleetShipBudget = (base value, equivalent to a single mkI fighter on high caps) = 1
FleetShipBudget *= this.AITechLevel = 1
FleetShipBudget *= (FInt)Game.Instance.Options.TotalHumanPlayerPlusExtraHomeworldsCount = 1
FleetShipBudget *= this.AIProgressionLevelEffective = 30
FleetShipBudget *= player.GetHandicapMultiplier() = 30
preMinStep_DifficultyMultiplier = player.AIDifficulty / ( 13 - player.AIDifficulty ) = 1.41
FleetShipBudget *= preMinStep_DifficultyMultiplier = 42.22
FleetShipBudget *= player.AITypeData.WaveSizeMultiplier = 42.22
postMinStep_DifficultyMultiplier = player.GetDifficultySpecificWaveSizeMultiplier() = 2.75
FleetShipBudget *= postMinStep_DifficultyMultiplier = 116.1= not enough salvage strength to launch a salvage-reprisal (requires twice the normal wave size), so we'll check again in about 3 minutes


5/24/2014 8:54:23 AM (7.031)
-----------------------------------
Salvage-Reprisal Wave Check; Current Game Time: 0:35:49
= Salvage is non-zero, so checking if player 8's AISalvage is high enough for a salvage-reprisal wave
AISalvage: 41474
effectiveMetalForSalvageWave = floor(AISalvage) = 41474
referenceMetalCost = (metal cost of a mkI bomber in this game) = 1600
referenceStrength = (strength of a mkI bomber in this game) = 2
metalToStrengthRatio = referenceStrength / referenceMetalCost = 0.00122
= potentialSalvageStrength = effectiveMetalForSalvageWave * metalToStrengthRatio = 50.63
computing strength budget of a normal wave for threshold check

FleetShipBudget = (base value, equivalent to a single mkI fighter on high caps) = 1
FleetShipBudget *= this.AITechLevel = 1
FleetShipBudget *= (FInt)Game.Instance.Options.TotalHumanPlayerPlusExtraHomeworldsCount = 1
FleetShipBudget *= this.AIProgressionLevelEffective = 30
FleetShipBudget *= player.GetHandicapMultiplier() = 30
preMinStep_DifficultyMultiplier = player.AIDifficulty / ( 13 - player.AIDifficulty ) = 1.41
FleetShipBudget *= preMinStep_DifficultyMultiplier = 42.22
FleetShipBudget *= player.AITypeData.WaveSizeMultiplier = 42.22
postMinStep_DifficultyMultiplier = player.GetDifficultySpecificWaveSizeMultiplier() = 2.75
FleetShipBudget *= postMinStep_DifficultyMultiplier = 116.1= not enough salvage strength to launch a salvage-reprisal (requires twice the normal wave size), so we'll check again in about 3 minutes


5/24/2014 8:54:28 AM (7.031)
-----------------------------------
Salvage-Reprisal Wave Check; Current Game Time: 0:35:54
= Salvage is non-zero, so checking if player 9's AISalvage is high enough for a salvage-reprisal wave
AISalvage: 558
effectiveMetalForSalvageWave = floor(AISalvage) = 558
referenceMetalCost = (metal cost of a mkI bomber in this game) = 1600
referenceStrength = (strength of a mkI bomber in this game) = 2
metalToStrengthRatio = referenceStrength / referenceMetalCost = 0.00122
= potentialSalvageStrength = effectiveMetalForSalvageWave * metalToStrengthRatio = 0.68
computing strength budget of a normal wave for threshold check

FleetShipBudget = (base value, equivalent to a single mkI fighter on high caps) = 1
FleetShipBudget *= this.AITechLevel = 1
FleetShipBudget *= (FInt)Game.Instance.Options.TotalHumanPlayerPlusExtraHomeworldsCount = 1
FleetShipBudget *= this.AIProgressionLevelEffective = 30
FleetShipBudget *= player.GetHandicapMultiplier() = 30
preMinStep_DifficultyMultiplier = player.AIDifficulty / ( 13 - player.AIDifficulty ) = 1.41
FleetShipBudget *= preMinStep_DifficultyMultiplier = 42.22
FleetShipBudget *= player.AITypeData.WaveSizeMultiplier = 42.22
postMinStep_DifficultyMultiplier = player.GetDifficultySpecificWaveSizeMultiplier() = 2.75
FleetShipBudget *= postMinStep_DifficultyMultiplier = 116.1= not enough salvage strength to launch a salvage-reprisal (requires twice the normal wave size), so we'll check again in about 3 minutes


5/24/2014 8:57:33 AM (7.031)
-----------------------------------
Salvage-Reprisal Wave Check; Current Game Time: 0:38:50
= Salvage is non-zero, so checking if player 8's AISalvage is high enough for a salvage-reprisal wave
AISalvage: 41474
effectiveMetalForSalvageWave = floor(AISalvage) = 41474
referenceMetalCost = (metal cost of a mkI bomber in this game) = 1600
referenceStrength = (strength of a mkI bomber in this game) = 2
metalToStrengthRatio = referenceStrength / referenceMetalCost = 0.00122
= potentialSalvageStrength = effectiveMetalForSalvageWave * metalToStrengthRatio = 50.63
computing strength budget of a normal wave for threshold check

FleetShipBudget = (base value, equivalent to a single mkI fighter on high caps) = 1
FleetShipBudget *= this.AITechLevel = 1
FleetShipBudget *= (FInt)Game.Instance.Options.TotalHumanPlayerPlusExtraHomeworldsCount = 1
FleetShipBudget *= this.AIProgressionLevelEffective = 30
FleetShipBudget *= player.GetHandicapMultiplier() = 30
preMinStep_DifficultyMultiplier = player.AIDifficulty / ( 13 - player.AIDifficulty ) = 1.41
FleetShipBudget *= preMinStep_DifficultyMultiplier = 42.22
FleetShipBudget *= player.AITypeData.WaveSizeMultiplier = 42.22
postMinStep_DifficultyMultiplier = player.GetDifficultySpecificWaveSizeMultiplier() = 2.75
FleetShipBudget *= postMinStep_DifficultyMultiplier = 116.1= not enough salvage strength to launch a salvage-reprisal (requires twice the normal wave size), so we'll check again in about 3 minutes


5/24/2014 8:57:38 AM (7.031)
-----------------------------------
Salvage-Reprisal Wave Check; Current Game Time: 0:38:55
= Salvage is non-zero, so checking if player 9's AISalvage is high enough for a salvage-reprisal wave
AISalvage: 558
effectiveMetalForSalvageWave = floor(AISalvage) = 558
referenceMetalCost = (metal cost of a mkI bomber in this game) = 1600
referenceStrength = (strength of a mkI bomber in this game) = 2
metalToStrengthRatio = referenceStrength / referenceMetalCost = 0.00122
= potentialSalvageStrength = effectiveMetalForSalvageWave * metalToStrengthRatio = 0.68
computing strength budget of a normal wave for threshold check

FleetShipBudget = (base value, equivalent to a single mkI fighter on high caps) = 1
FleetShipBudget *= this.AITechLevel = 1
FleetShipBudget *= (FInt)Game.Instance.Options.TotalHumanPlayerPlusExtraHomeworldsCount = 1
FleetShipBudget *= this.AIProgressionLevelEffective = 30
FleetShipBudget *= player.GetHandicapMultiplier() = 30
preMinStep_DifficultyMultiplier = player.AIDifficulty / ( 13 - player.AIDifficulty ) = 1.41
FleetShipBudget *= preMinStep_DifficultyMultiplier = 42.22
FleetShipBudget *= player.AITypeData.WaveSizeMultiplier = 42.22
postMinStep_DifficultyMultiplier = player.GetDifficultySpecificWaveSizeMultiplier() = 2.75
FleetShipBudget *= postMinStep_DifficultyMultiplier = 116.1= not enough salvage strength to launch a salvage-reprisal (requires twice the normal wave size), so we'll check again in about 3 minutes


5/24/2014 9:04:59 AM (7.031)
-----------------------------------
Salvage-Reprisal Wave Check; Current Game Time: 0:41:51
= Salvage is non-zero, so checking if player 8's AISalvage is high enough for a salvage-reprisal wave
AISalvage: 50865
effectiveMetalForSalvageWave = floor(AISalvage) = 50865
referenceMetalCost = (metal cost of a mkI bomber in this game) = 1600
referenceStrength = (strength of a mkI bomber in this game) = 2
metalToStrengthRatio = referenceStrength / referenceMetalCost = 0.00122
= potentialSalvageStrength = effectiveMetalForSalvageWave * metalToStrengthRatio = 62.09
computing strength budget of a normal wave for threshold check

FleetShipBudget = (base value, equivalent to a single mkI fighter on high caps) = 1
FleetShipBudget *= this.AITechLevel = 1
FleetShipBudget *= (FInt)Game.Instance.Options.TotalHumanPlayerPlusExtraHomeworldsCount = 1
FleetShipBudget *= this.AIProgressionLevelEffective = 30
FleetShipBudget *= player.GetHandicapMultiplier() = 30
preMinStep_DifficultyMultiplier = player.AIDifficulty / ( 13 - player.AIDifficulty ) = 1.41
FleetShipBudget *= preMinStep_DifficultyMultiplier = 42.22
FleetShipBudget *= player.AITypeData.WaveSizeMultiplier = 42.22
postMinStep_DifficultyMultiplier = player.GetDifficultySpecificWaveSizeMultiplier() = 2.75
FleetShipBudget *= postMinStep_DifficultyMultiplier = 116.1= not enough salvage strength to launch a salvage-reprisal (requires twice the normal wave size), so we'll check again in about 3 minutes


5/24/2014 9:05:04 AM (7.031)
-----------------------------------
Salvage-Reprisal Wave Check; Current Game Time: 0:41:56
= Salvage is non-zero, so checking if player 9's AISalvage is high enough for a salvage-reprisal wave
AISalvage: 558
effectiveMetalForSalvageWave = floor(AISalvage) = 558
referenceMetalCost = (metal cost of a mkI bomber in this game) = 1600
referenceStrength = (strength of a mkI bomber in this game) = 2
metalToStrengthRatio = referenceStrength / referenceMetalCost = 0.00122
= potentialSalvageStrength = effectiveMetalForSalvageWave * metalToStrengthRatio = 0.68
computing strength budget of a normal wave for threshold check

FleetShipBudget = (base value, equivalent to a single mkI fighter on high caps) = 1
FleetShipBudget *= this.AITechLevel = 1
FleetShipBudget *= (FInt)Game.Instance.Options.TotalHumanPlayerPlusExtraHomeworldsCount = 1
FleetShipBudget *= this.AIProgressionLevelEffective = 30
FleetShipBudget *= player.GetHandicapMultiplier() = 30
preMinStep_DifficultyMultiplier = player.AIDifficulty / ( 13 - player.AIDifficulty ) = 1.41
FleetShipBudget *= preMinStep_DifficultyMultiplier = 42.22
FleetShipBudget *= player.AITypeData.WaveSizeMultiplier = 42.22
postMinStep_DifficultyMultiplier = player.GetDifficultySpecificWaveSizeMultiplier() = 2.75
FleetShipBudget *= postMinStep_DifficultyMultiplier = 116.1= not enough salvage strength to launch a salvage-reprisal (requires twice the normal wave size), so we'll check again in about 3 minutes


5/24/2014 9:08:15 AM (7.031)
-----------------------------------
= CheckForWave proceeding with wave for player 8 because AccumulatedStrengthForNextWave is now >= normalWaveStrength at Game Time: 0:42:59
normalWaveStrength:200
AccumulatedStrengthForNextWave:200.06

= computation of normalWaveStrength:
FleetShipBudget = (base value, equivalent to a single mkI fighter on high caps) = 1
FleetShipBudget *= this.AITechLevel = 1
FleetShipBudget *= (FInt)Game.Instance.Options.TotalHumanPlayerPlusExtraHomeworldsCount = 1
FleetShipBudget *= this.AIProgressionLevelEffective = 10
FleetShipBudget *= player.GetHandicapMultiplier() = 10
preMinStep_DifficultyMultiplier = player.AIDifficulty / ( 13 - player.AIDifficulty ) = 1.41
FleetShipBudget *= preMinStep_DifficultyMultiplier = 14.07
FleetShipBudget less than minimum strength (which is 34 * player.GetHandicapMultiplier()), so set to 34
FleetShipBudget *= player.AITypeData.WaveSizeMultiplier = 34
postMinStep_DifficultyMultiplier = player.GetDifficultySpecificWaveSizeMultiplier() = 2.75
FleetShipBudget *= postMinStep_DifficultyMultiplier = 93.5
Because Diff >= 7 and entry_points = 1, entryPointMultiplier = 2
Because game time < 2 hours (2579 seconds), using interpolation between non-modified and entry-point-modified range, entryPointMultiplier = 1.36
normalWaveStrength *= entryPointMultiplier = 126.99
normalWaveStrength *= this.WaitingBasedMultiplierForNextNormalWave = 133.5
normalWaveStrength *= Max(200,normalWaveStrength) = 200

= AccumulatedStrengthForNextWave (after the first wave) is based on, every second, adding ( baseWaveStrength / normalWaveIntervalInSeconds )
computation of baseWaveStrength is the same as normalWaveStrength, but without the entry-point-multiplier and later stuff

= computation of normalWaveIntervalInSeconds:
interval = floor( ( 14 - this.AIDifficulty ) * 3 * 60 ) = 1152

so, if you're curious, amountToGainPerSecond is 0.08

5/24/2014 9:08:15 AM (7.031)
-----------------------------------
Starting CreateWaveToPlanet at Game Time: 0:42:59 ; Player.AIType: Alarmist ; Player.AIDifficulty: 7.6 ; EffectiveAIP: 10 ; AITechLevel: 1 ; IsSchizo: False
WaveStrength = 200.06

= FleetShipBudget for this wave's fleet ships = 200.06

percentChanceParasiteWave (from AI type) = 0.03
percentChanceBomberWave (from AI type) = 0.06
percentChanceStealthWave (from AI type) = 0.06
= actually chosen WaveType: Normal

AIP is between the current tech level's AIP threshold and the next tech level's, so promotionRatio (percent of fleet ships to be bought from next tech level up) = 0.04
Some strength budget remaining from previous pick phases (if any), so spend what remains on types from the Normal group
* called PickUnitsForWave with: Fighter, Bomber, MissileShip, LazerGatling, ElectricShuttle
** Picked 115 MissileShip @ 1.67 each = 191.65
** Picked 3 MissileShipII @ 3.33 each = 10
= After picking fleet ships, FleetShipBudget is now -1.59

player.AITypeData.StarshipBudgetMultiplier: 0.08
= StarshipBudget = originalFleetShipBudget * player.AITypeData.StarshipBudgetMultiplier = 16.8
* called PickUnitsForWave with: LightStarship, Dreadnought, LeechStarship
** Picked
1 Dreadnought @ 96 each = 96
= After picking starships, StarshipBudget is now -79.2


== Wave total ships: 119
TypesForDirectAdd count by type:
MissileShip : 115
MissileShipII : 3
Dreadnought : 1
TypesForCarrierAdd count by type:
== For a grand-total Strength value of 338


5/24/2014 9:10:15 AM (7.031)
-----------------------------------
Salvage-Reprisal Wave Check; Current Game Time: 0:44:52
= Salvage is non-zero, so checking if player 8's AISalvage is high enough for a salvage-reprisal wave
AISalvage: 50865
effectiveMetalForSalvageWave = floor(AISalvage) = 50865
referenceMetalCost = (metal cost of a mkI bomber in this game) = 1600
referenceStrength = (strength of a mkI bomber in this game) = 2
metalToStrengthRatio = referenceStrength / referenceMetalCost = 0.00122
= potentialSalvageStrength = effectiveMetalForSalvageWave * metalToStrengthRatio = 62.09
computing strength budget of a normal wave for threshold check

FleetShipBudget = (base value, equivalent to a single mkI fighter on high caps) = 1
FleetShipBudget *= this.AITechLevel = 1
FleetShipBudget *= (FInt)Game.Instance.Options.TotalHumanPlayerPlusExtraHomeworldsCount = 1
FleetShipBudget *= this.AIProgressionLevelEffective = 10
FleetShipBudget *= player.GetHandicapMultiplier() = 10
preMinStep_DifficultyMultiplier = player.AIDifficulty / ( 13 - player.AIDifficulty ) = 1.41
FleetShipBudget *= preMinStep_DifficultyMultiplier = 14.07
FleetShipBudget less than minimum strength (which is 34 * player.GetHandicapMultiplier()), so set to 34
FleetShipBudget *= player.AITypeData.WaveSizeMultiplier = 34
postMinStep_DifficultyMultiplier = player.GetDifficultySpecificWaveSizeMultiplier() = 2.75
FleetShipBudget *= postMinStep_DifficultyMultiplier = 93.5= not enough salvage strength to launch a salvage-reprisal (requires twice the normal wave size), so we'll check again in about 3 minutes


5/24/2014 9:10:20 AM (7.031)
-----------------------------------
Salvage-Reprisal Wave Check; Current Game Time: 0:44:57
= Salvage is non-zero, so checking if player 9's AISalvage is high enough for a salvage-reprisal wave
AISalvage: 51823
effectiveMetalForSalvageWave = floor(AISalvage) = 51823
referenceMetalCost = (metal cost of a mkI bomber in this game) = 1600
referenceStrength = (strength of a mkI bomber in this game) = 2
metalToStrengthRatio = referenceStrength / referenceMetalCost = 0.00122
= potentialSalvageStrength = effectiveMetalForSalvageWave * metalToStrengthRatio = 63.26
computing strength budget of a normal wave for threshold check

FleetShipBudget = (base value, equivalent to a single mkI fighter on high caps) = 1
FleetShipBudget *= this.AITechLevel = 1
FleetShipBudget *= (FInt)Game.Instance.Options.TotalHumanPlayerPlusExtraHomeworldsCount = 1
FleetShipBudget *= this.AIProgressionLevelEffective = 10
FleetShipBudget *= player.GetHandicapMultiplier() = 10
preMinStep_DifficultyMultiplier = player.AIDifficulty / ( 13 - player.AIDifficulty ) = 1.41
FleetShipBudget *= preMinStep_DifficultyMultiplier = 14.07
FleetShipBudget less than minimum strength (which is 34 * player.GetHandicapMultiplier()), so set to 34
FleetShipBudget *= player.AITypeData.WaveSizeMultiplier = 34
postMinStep_DifficultyMultiplier = player.GetDifficultySpecificWaveSizeMultiplier() = 2.75
FleetShipBudget *= postMinStep_DifficultyMultiplier = 93.5= not enough salvage strength to launch a salvage-reprisal (requires twice the normal wave size), so we'll check again in about 3 minutes


5/24/2014 9:11:39 AM (7.031)
-----------------------------------
= CheckForWave proceeding with wave for player 9 because AccumulatedStrengthForNextWave is now >= normalWaveStrength at Game Time: 0:46:11
normalWaveStrength:200
AccumulatedStrengthForNextWave:200.06

= computation of normalWaveStrength:
FleetShipBudget = (base value, equivalent to a single mkI fighter on high caps) = 1
FleetShipBudget *= this.AITechLevel = 1
FleetShipBudget *= (FInt)Game.Instance.Options.TotalHumanPlayerPlusExtraHomeworldsCount = 1
FleetShipBudget *= this.AIProgressionLevelEffective = 10
FleetShipBudget *= player.GetHandicapMultiplier() = 10
preMinStep_DifficultyMultiplier = player.AIDifficulty / ( 13 - player.AIDifficulty ) = 1.41
FleetShipBudget *= preMinStep_DifficultyMultiplier = 14.07
FleetShipBudget less than minimum strength (which is 34 * player.GetHandicapMultiplier()), so set to 34
FleetShipBudget *= player.AITypeData.WaveSizeMultiplier = 34
postMinStep_DifficultyMultiplier = player.GetDifficultySpecificWaveSizeMultiplier() = 2.75
FleetShipBudget *= postMinStep_DifficultyMultiplier = 93.5
Because Diff >= 7 and entry_points = 1, entryPointMultiplier = 2
Because game time < 2 hours (2771 seconds), using interpolation between non-modified and entry-point-modified range, entryPointMultiplier = 1.38
normalWaveStrength *= entryPointMultiplier = 129.48
normalWaveStrength *= this.WaitingBasedMultiplierForNextNormalWave = 136.11
normalWaveStrength *= Max(200,normalWaveStrength) = 200

= AccumulatedStrengthForNextWave (after the first wave) is based on, every second, adding ( baseWaveStrength / normalWaveIntervalInSeconds )
computation of baseWaveStrength is the same as normalWaveStrength, but without the entry-point-multiplier and later stuff

= computation of normalWaveIntervalInSeconds:
interval = floor( ( 14 - this.AIDifficulty ) * 3 * 60 ) = 1152

so, if you're curious, amountToGainPerSecond is 0.08

5/24/2014 9:11:39 AM (7.031)
-----------------------------------
Starting CreateWaveToPlanet at Game Time: 0:46:11 ; Player.AIType: OneWayDoormaster ; Player.AIDifficulty: 7.6 ; EffectiveAIP: 10 ; AITechLevel: 1 ; IsSchizo: False
WaveStrength = 200.06

= FleetShipBudget for this wave's fleet ships = 200.06

percentChanceParasiteWave (from AI type) = 0.03
percentChanceBomberWave (from AI type) = 0.06
percentChanceStealthWave (from AI type) = 0.06
= actually chosen WaveType: Parasite

AIP is between the current tech level's AIP threshold and the next tech level's, so promotionRatio (percent of fleet ships to be bought from next tech level up) = 0.04
Parasite waves try to spend 100% of the strength budget on types from the Parasite group
* called PickUnitsForWave with:  (... an empty list, how cute)
Some strength budget remaining from previous pick phases (if any), so spend what remains on types from the Normal group
* called PickUnitsForWave with: Fighter, Bomber, MissileShip, Raptor, YounglingFirefly
** Picked 48 Raptor @ 4 each = 192
** Picked 2 RaptorII @ 8 each = 16
= After picking fleet ships, FleetShipBudget is now -7.94

player.AITypeData.StarshipBudgetMultiplier: 0.08
= StarshipBudget = originalFleetShipBudget * player.AITypeData.StarshipBudgetMultiplier = 16.8
* called PickUnitsForWave with: LightStarship, Dreadnought, LeechStarship
** Picked
1 LightStarship @ 96 each = 96
= After picking starships, StarshipBudget is now -79.2


== Wave total ships: 51
TypesForDirectAdd count by type:
Raptor : 48
RaptorII : 2
LightStarship : 1
TypesForCarrierAdd count by type:
== For a grand-total Strength value of 304


5/24/2014 9:16:57 AM (7.031)
-----------------------------------
Salvage-Reprisal Wave Check; Current Game Time: 0:47:53
= Salvage is non-zero, so checking if player 8's AISalvage is high enough for a salvage-reprisal wave
AISalvage: 50865
effectiveMetalForSalvageWave = floor(AISalvage) = 50865
referenceMetalCost = (metal cost of a mkI bomber in this game) = 1600
referenceStrength = (strength of a mkI bomber in this game) = 2
metalToStrengthRatio = referenceStrength / referenceMetalCost = 0.00122
= potentialSalvageStrength = effectiveMetalForSalvageWave * metalToStrengthRatio = 62.09
computing strength budget of a normal wave for threshold check

FleetShipBudget = (base value, equivalent to a single mkI fighter on high caps) = 1
FleetShipBudget *= this.AITechLevel = 1
FleetShipBudget *= (FInt)Game.Instance.Options.TotalHumanPlayerPlusExtraHomeworldsCount = 1
FleetShipBudget *= this.AIProgressionLevelEffective = 10
FleetShipBudget *= player.GetHandicapMultiplier() = 10
preMinStep_DifficultyMultiplier = player.AIDifficulty / ( 13 - player.AIDifficulty ) = 1.41
FleetShipBudget *= preMinStep_DifficultyMultiplier = 14.07
FleetShipBudget less than minimum strength (which is 34 * player.GetHandicapMultiplier()), so set to 34
FleetShipBudget *= player.AITypeData.WaveSizeMultiplier = 34
postMinStep_DifficultyMultiplier = player.GetDifficultySpecificWaveSizeMultiplier() = 2.75
FleetShipBudget *= postMinStep_DifficultyMultiplier = 93.5= not enough salvage strength to launch a salvage-reprisal (requires twice the normal wave size), so we'll check again in about 3 minutes


5/24/2014 9:17:02 AM (7.031)
-----------------------------------
Salvage-Reprisal Wave Check; Current Game Time: 0:47:58
= Salvage is non-zero, so checking if player 9's AISalvage is high enough for a salvage-reprisal wave
AISalvage: 51823
effectiveMetalForSalvageWave = floor(AISalvage) = 51823
referenceMetalCost = (metal cost of a mkI bomber in this game) = 1600
referenceStrength = (strength of a mkI bomber in this game) = 2
metalToStrengthRatio = referenceStrength / referenceMetalCost = 0.00122
= potentialSalvageStrength = effectiveMetalForSalvageWave * metalToStrengthRatio = 63.26
computing strength budget of a normal wave for threshold check

FleetShipBudget = (base value, equivalent to a single mkI fighter on high caps) = 1
FleetShipBudget *= this.AITechLevel = 1
FleetShipBudget *= (FInt)Game.Instance.Options.TotalHumanPlayerPlusExtraHomeworldsCount = 1
FleetShipBudget *= this.AIProgressionLevelEffective = 10
FleetShipBudget *= player.GetHandicapMultiplier() = 10
preMinStep_DifficultyMultiplier = player.AIDifficulty / ( 13 - player.AIDifficulty ) = 1.41
FleetShipBudget *= preMinStep_DifficultyMultiplier = 14.07
FleetShipBudget less than minimum strength (which is 34 * player.GetHandicapMultiplier()), so set to 34
FleetShipBudget *= player.AITypeData.WaveSizeMultiplier = 34
postMinStep_DifficultyMultiplier = player.GetDifficultySpecificWaveSizeMultiplier() = 2.75
FleetShipBudget *= postMinStep_DifficultyMultiplier = 93.5= not enough salvage strength to launch a salvage-reprisal (requires twice the normal wave size), so we'll check again in about 3 minutes


5/24/2014 9:19:56 AM (7.031)
-----------------------------------
Salvage-Reprisal Wave Check; Current Game Time: 0:50:54
= Salvage is non-zero, so checking if player 8's AISalvage is high enough for a salvage-reprisal wave
AISalvage: 50865
effectiveMetalForSalvageWave = floor(AISalvage) = 50865
referenceMetalCost = (metal cost of a mkI bomber in this game) = 1600
referenceStrength = (strength of a mkI bomber in this game) = 2
metalToStrengthRatio = referenceStrength / referenceMetalCost = 0.00122
= potentialSalvageStrength = effectiveMetalForSalvageWave * metalToStrengthRatio = 62.09
computing strength budget of a normal wave for threshold check

FleetShipBudget = (base value, equivalent to a single mkI fighter on high caps) = 1
FleetShipBudget *= this.AITechLevel = 1
FleetShipBudget *= (FInt)Game.Instance.Options.TotalHumanPlayerPlusExtraHomeworldsCount = 1
FleetShipBudget *= this.AIProgressionLevelEffective = 10
FleetShipBudget *= player.GetHandicapMultiplier() = 10
preMinStep_DifficultyMultiplier = player.AIDifficulty / ( 13 - player.AIDifficulty ) = 1.41
FleetShipBudget *= preMinStep_DifficultyMultiplier = 14.07
FleetShipBudget less than minimum strength (which is 34 * player.GetHandicapMultiplier()), so set to 34
FleetShipBudget *= player.AITypeData.WaveSizeMultiplier = 34
postMinStep_DifficultyMultiplier = player.GetDifficultySpecificWaveSizeMultiplier() = 2.75
FleetShipBudget *= postMinStep_DifficultyMultiplier = 93.5= not enough salvage strength to launch a salvage-reprisal (requires twice the normal wave size), so we'll check again in about 3 minutes


5/24/2014 9:20:01 AM (7.031)
-----------------------------------
Salvage-Reprisal Wave Check; Current Game Time: 0:50:59
= Salvage is non-zero, so checking if player 9's AISalvage is high enough for a salvage-reprisal wave
AISalvage: 192128
effectiveMetalForSalvageWave = floor(AISalvage) = 192128
referenceMetalCost = (metal cost of a mkI bomber in this game) = 1600
referenceStrength = (strength of a mkI bomber in this game) = 2
metalToStrengthRatio = referenceStrength / referenceMetalCost = 0.00122
= potentialSalvageStrength = effectiveMetalForSalvageWave * metalToStrengthRatio = 234.53
computing strength budget of a normal wave for threshold check

FleetShipBudget = (base value, equivalent to a single mkI fighter on high caps) = 1
FleetShipBudget *= this.AITechLevel = 1
FleetShipBudget *= (FInt)Game.Instance.Options.TotalHumanPlayerPlusExtraHomeworldsCount = 1
FleetShipBudget *= this.AIProgressionLevelEffective = 10
FleetShipBudget *= player.GetHandicapMultiplier() = 10
preMinStep_DifficultyMultiplier = player.AIDifficulty / ( 13 - player.AIDifficulty ) = 1.41
FleetShipBudget *= preMinStep_DifficultyMultiplier = 14.07
FleetShipBudget less than minimum strength (which is 34 * player.GetHandicapMultiplier()), so set to 34
FleetShipBudget *= player.AITypeData.WaveSizeMultiplier = 34
postMinStep_DifficultyMultiplier = player.GetDifficultySpecificWaveSizeMultiplier() = 2.75
FleetShipBudget *= postMinStep_DifficultyMultiplier = 93.5= Enough salvage strength to launch a salvage-reprisal, so calling TriggerNormalWave with OverrideStrength = 234.53


5/24/2014 9:20:01 AM (7.031)
-----------------------------------
Starting CreateWaveToPlanet at Game Time: 0:50:59 ; Player.AIType: OneWayDoormaster ; Player.AIDifficulty: 7.6 ; EffectiveAIP: 10 ; AITechLevel: 1 ; IsSchizo: False
WaveStrength = 234.53

= FleetShipBudget for this wave's fleet ships = 234.53

percentChanceParasiteWave (from AI type) = 0.03
percentChanceBomberWave (from AI type) = 0.06
percentChanceStealthWave (from AI type) = 0.06
= actually chosen WaveType: Stealth

AIP is between the current tech level's AIP threshold and the next tech level's, so promotionRatio (percent of fleet ships to be bought from next tech level up) = 0.04
Stealth waves try to spend 100% of the strength budget on types from the Stealth group
* called PickUnitsForWave with: Raptor
** Picked 57 Raptor @ 4 each = 228
** Picked 1 RaptorII @ 8 each = 8
= After picking fleet ships, FleetShipBudget is now -1.47

player.AITypeData.StarshipBudgetMultiplier: 0.08
= StarshipBudget = originalFleetShipBudget * player.AITypeData.StarshipBudgetMultiplier = 19.7
* called PickUnitsForWave with: LightStarship, Dreadnought, LeechStarship
** Picked 1 LeechStarship @ 96 each = 96
= After picking starships, StarshipBudget is now -76.3


== Wave total ships: 59
TypesForDirectAdd count by type:
Raptor : 57
RaptorII : 1
LeechStarship : 1
TypesForCarrierAdd count by type:
== For a grand-total Strength value of 332


5/24/2014 9:24:01 AM (7.031)
-----------------------------------
Salvage-Reprisal Wave Check; Current Game Time: 0:53:55
= Salvage is non-zero, so checking if player 8's AISalvage is high enough for a salvage-reprisal wave
AISalvage: 50865
effectiveMetalForSalvageWave = floor(AISalvage) = 50865
referenceMetalCost = (metal cost of a mkI bomber in this game) = 1600
referenceStrength = (strength of a mkI bomber in this game) = 2
metalToStrengthRatio = referenceStrength / referenceMetalCost = 0.00122
= potentialSalvageStrength = effectiveMetalForSalvageWave * metalToStrengthRatio = 62.09
computing strength budget of a normal wave for threshold check

FleetShipBudget = (base value, equivalent to a single mkI fighter on high caps) = 1
FleetShipBudget *= this.AITechLevel = 1
FleetShipBudget *= (FInt)Game.Instance.Options.TotalHumanPlayerPlusExtraHomeworldsCount = 1
FleetShipBudget *= this.AIProgressionLevelEffective = 10
FleetShipBudget *= player.GetHandicapMultiplier() = 10
preMinStep_DifficultyMultiplier = player.AIDifficulty / ( 13 - player.AIDifficulty ) = 1.41
FleetShipBudget *= preMinStep_DifficultyMultiplier = 14.07
FleetShipBudget less than minimum strength (which is 34 * player.GetHandicapMultiplier()), so set to 34
FleetShipBudget *= player.AITypeData.WaveSizeMultiplier = 34
postMinStep_DifficultyMultiplier = player.GetDifficultySpecificWaveSizeMultiplier() = 2.75
FleetShipBudget *= postMinStep_DifficultyMultiplier = 93.5= not enough salvage strength to launch a salvage-reprisal (requires twice the normal wave size), so we'll check again in about 3 minutes


5/24/2014 9:24:07 AM (7.031)
-----------------------------------
Salvage-Reprisal Wave Check; Current Game Time: 0:54:01
= Salvage is non-zero, so checking if player 9's AISalvage is high enough for a salvage-reprisal wave
AISalvage: 143888
effectiveMetalForSalvageWave = floor(AISalvage) = 143888
referenceMetalCost = (metal cost of a mkI bomber in this game) = 1600
referenceStrength = (strength of a mkI bomber in this game) = 2
metalToStrengthRatio = referenceStrength / referenceMetalCost = 0.00122
= potentialSalvageStrength = effectiveMetalForSalvageWave * metalToStrengthRatio = 175.64
computing strength budget of a normal wave for threshold check

FleetShipBudget = (base value, equivalent to a single mkI fighter on high caps) = 1
FleetShipBudget *= this.AITechLevel = 1
FleetShipBudget *= (FInt)Game.Instance.Options.TotalHumanPlayerPlusExtraHomeworldsCount = 1
FleetShipBudget *= this.AIProgressionLevelEffective = 10
FleetShipBudget *= player.GetHandicapMultiplier() = 10
preMinStep_DifficultyMultiplier = player.AIDifficulty / ( 13 - player.AIDifficulty ) = 1.41
FleetShipBudget *= preMinStep_DifficultyMultiplier = 14.07
FleetShipBudget less than minimum strength (which is 34 * player.GetHandicapMultiplier()), so set to 34
FleetShipBudget *= player.AITypeData.WaveSizeMultiplier = 34
postMinStep_DifficultyMultiplier = player.GetDifficultySpecificWaveSizeMultiplier() = 2.75
FleetShipBudget *= postMinStep_DifficultyMultiplier = 93.5= not enough salvage strength to launch a salvage-reprisal (requires twice the normal wave size), so we'll check again in about 3 minutes


5/24/2014 12:12:45 PM (7.031)
-----------------------------------
Salvage-Reprisal Wave Check; Current Game Time: 0:56:56
= Salvage is non-zero, so checking if player 8's AISalvage is high enough for a salvage-reprisal wave
AISalvage: 50865
effectiveMetalForSalvageWave = floor(AISalvage) = 50865
referenceMetalCost = (metal cost of a mkI bomber in this game) = 1600
referenceStrength = (strength of a mkI bomber in this game) = 2
metalToStrengthRatio = referenceStrength / referenceMetalCost = 0.00122
= potentialSalvageStrength = effectiveMetalForSalvageWave * metalToStrengthRatio = 62.09
computing strength budget of a normal wave for threshold check

FleetShipBudget = (base value, equivalent to a single mkI fighter on high caps) = 1
FleetShipBudget *= this.AITechLevel = 1
FleetShipBudget *= (FInt)Game.Instance.Options.TotalHumanPlayerPlusExtraHomeworldsCount = 1
FleetShipBudget *= this.AIProgressionLevelEffective = 10
FleetShipBudget *= player.GetHandicapMultiplier() = 10
preMinStep_DifficultyMultiplier = player.AIDifficulty / ( 13 - player.AIDifficulty ) = 1.41
FleetShipBudget *= preMinStep_DifficultyMultiplier = 14.07
FleetShipBudget less than minimum strength (which is 34 * player.GetHandicapMultiplier()), so set to 34
FleetShipBudget *= player.AITypeData.WaveSizeMultiplier = 34
postMinStep_DifficultyMultiplier = player.GetDifficultySpecificWaveSizeMultiplier() = 2.75
FleetShipBudget *= postMinStep_DifficultyMultiplier = 93.5= not enough salvage strength to launch a salvage-reprisal (requires twice the normal wave size), so we'll check again in about 3 minutes


5/24/2014 12:12:51 PM (7.031)
-----------------------------------
Salvage-Reprisal Wave Check; Current Game Time: 0:57:02
= Salvage is non-zero, so checking if player 9's AISalvage is high enough for a salvage-reprisal wave
AISalvage: 164214
effectiveMetalForSalvageWave = floor(AISalvage) = 164214
referenceMetalCost = (metal cost of a mkI bomber in this game) = 1600
referenceStrength = (strength of a mkI bomber in this game) = 2
metalToStrengthRatio = referenceStrength / referenceMetalCost = 0.00122
= potentialSalvageStrength = effectiveMetalForSalvageWave * metalToStrengthRatio = 200.46
computing strength budget of a normal wave for threshold check

FleetShipBudget = (base value, equivalent to a single mkI fighter on high caps) = 1
FleetShipBudget *= this.AITechLevel = 1
FleetShipBudget *= (FInt)Game.Instance.Options.TotalHumanPlayerPlusExtraHomeworldsCount = 1
FleetShipBudget *= this.AIProgressionLevelEffective = 10
FleetShipBudget *= player.GetHandicapMultiplier() = 10
preMinStep_DifficultyMultiplier = player.AIDifficulty / ( 13 - player.AIDifficulty ) = 1.41
FleetShipBudget *= preMinStep_DifficultyMultiplier = 14.07
FleetShipBudget less than minimum strength (which is 34 * player.GetHandicapMultiplier()), so set to 34
FleetShipBudget *= player.AITypeData.WaveSizeMultiplier = 34
postMinStep_DifficultyMultiplier = player.GetDifficultySpecificWaveSizeMultiplier() = 2.75
FleetShipBudget *= postMinStep_DifficultyMultiplier = 93.5= Enough salvage strength to launch a salvage-reprisal, so calling TriggerNormalWave with OverrideStrength = 200.46


5/24/2014 12:12:51 PM (7.031)
-----------------------------------
Starting CreateWaveToPlanet at Game Time: 0:57:02 ; Player.AIType: OneWayDoormaster ; Player.AIDifficulty: 7.6 ; EffectiveAIP: 10 ; AITechLevel: 1 ; IsSchizo: False
WaveStrength = 200.46

= FleetShipBudget for this wave's fleet ships = 200.46

percentChanceParasiteWave (from AI type) = 0.03
percentChanceBomberWave (from AI type) = 0.06
percentChanceStealthWave (from AI type) = 0.06
= actually chosen WaveType: Normal

AIP is between the current tech level's AIP threshold and the next tech level's, so promotionRatio (percent of fleet ships to be bought from next tech level up) = 0.04
Some strength budget remaining from previous pick phases (if any), so spend what remains on types from the Normal group
* called PickUnitsForWave with: Fighter, Bomber, MissileShip, Raptor, YounglingFirefly
** Picked 115 Fighter @ 1.67 each = 191.65
** Picked 3 FighterII @ 3.33 each = 10
= After picking fleet ships, FleetShipBudget is now -1.19

player.AITypeData.StarshipBudgetMultiplier: 0.08
= StarshipBudget = originalFleetShipBudget * player.AITypeData.StarshipBudgetMultiplier = 16.84
* called PickUnitsForWave with: LightStarship, Dreadnought, LeechStarship
** Picked
1 LightStarship @ 96 each = 96
= After picking starships, StarshipBudget is now -79.16


== Wave total ships: 119
TypesForDirectAdd count by type:
Fighter : 115
FighterII : 3
LightStarship : 1
TypesForCarrierAdd count by type:
== For a grand-total Strength value of 338


5/24/2014 12:15:47 PM (7.031)
-----------------------------------
Salvage-Reprisal Wave Check; Current Game Time: 0:59:57
= Salvage is non-zero, so checking if player 8's AISalvage is high enough for a salvage-reprisal wave
AISalvage: 50865
effectiveMetalForSalvageWave = floor(AISalvage) = 50865
referenceMetalCost = (metal cost of a mkI bomber in this game) = 1600
referenceStrength = (strength of a mkI bomber in this game) = 2
metalToStrengthRatio = referenceStrength / referenceMetalCost = 0.00122
= potentialSalvageStrength = effectiveMetalForSalvageWave * metalToStrengthRatio = 62.09
computing strength budget of a normal wave for threshold check

FleetShipBudget = (base value, equivalent to a single mkI fighter on high caps) = 1
FleetShipBudget *= this.AITechLevel = 1
FleetShipBudget *= (FInt)Game.Instance.Options.TotalHumanPlayerPlusExtraHomeworldsCount = 1
FleetShipBudget *= this.AIProgressionLevelEffective = 10
FleetShipBudget *= player.GetHandicapMultiplier() = 10
preMinStep_DifficultyMultiplier = player.AIDifficulty / ( 13 - player.AIDifficulty ) = 1.41
FleetShipBudget *= preMinStep_DifficultyMultiplier = 14.07
FleetShipBudget less than minimum strength (which is 34 * player.GetHandicapMultiplier()), so set to 34
FleetShipBudget *= player.AITypeData.WaveSizeMultiplier = 34
postMinStep_DifficultyMultiplier = player.GetDifficultySpecificWaveSizeMultiplier() = 2.75
FleetShipBudget *= postMinStep_DifficultyMultiplier = 93.5= not enough salvage strength to launch a salvage-reprisal (requires twice the normal wave size), so we'll check again in about 3 minutes


5/24/2014 12:15:53 PM (7.031)
-----------------------------------
Salvage-Reprisal Wave Check; Current Game Time: 1:00:03
= Salvage is non-zero, so checking if player 9's AISalvage is high enough for a salvage-reprisal wave
AISalvage: 13375
effectiveMetalForSalvageWave = floor(AISalvage) = 13375
referenceMetalCost = (metal cost of a mkI bomber in this game) = 1600
referenceStrength = (strength of a mkI bomber in this game) = 2
metalToStrengthRatio = referenceStrength / referenceMetalCost = 0.00122
= potentialSalvageStrength = effectiveMetalForSalvageWave * metalToStrengthRatio = 16.33
computing strength budget of a normal wave for threshold check

FleetShipBudget = (base value, equivalent to a single mkI fighter on high caps) = 1
FleetShipBudget *= this.AITechLevel = 1
FleetShipBudget *= (FInt)Game.Instance.Options.TotalHumanPlayerPlusExtraHomeworldsCount = 1
FleetShipBudget *= this.AIProgressionLevelEffective = 10
FleetShipBudget *= player.GetHandicapMultiplier() = 10
preMinStep_DifficultyMultiplier = player.AIDifficulty / ( 13 - player.AIDifficulty ) = 1.41
FleetShipBudget *= preMinStep_DifficultyMultiplier = 14.07
FleetShipBudget less than minimum strength (which is 34 * player.GetHandicapMultiplier()), so set to 34
FleetShipBudget *= player.AITypeData.WaveSizeMultiplier = 34
postMinStep_DifficultyMultiplier = player.GetDifficultySpecificWaveSizeMultiplier() = 2.75
FleetShipBudget *= postMinStep_DifficultyMultiplier = 93.5= not enough salvage strength to launch a salvage-reprisal (requires twice the normal wave size), so we'll check again in about 3 minutes


5/24/2014 12:33:34 PM (7.031)
-----------------------------------
Salvage-Reprisal Wave Check; Current Game Time: 1:02:58
= Salvage is non-zero, so checking if player 8's AISalvage is high enough for a salvage-reprisal wave
AISalvage: 50865
effectiveMetalForSalvageWave = floor(AISalvage) = 50865
referenceMetalCost = (metal cost of a mkI bomber in this game) = 1600
referenceStrength = (strength of a mkI bomber in this game) = 2
metalToStrengthRatio = referenceStrength / referenceMetalCost = 0.00122
= potentialSalvageStrength = effectiveMetalForSalvageWave * metalToStrengthRatio = 62.09
computing strength budget of a normal wave for threshold check

FleetShipBudget = (base value, equivalent to a single mkI fighter on high caps) = 1
FleetShipBudget *= this.AITechLevel = 1
FleetShipBudget *= (FInt)Game.Instance.Options.TotalHumanPlayerPlusExtraHomeworldsCount = 1
FleetShipBudget *= this.AIProgressionLevelEffective = 10
FleetShipBudget *= player.GetHandicapMultiplier() = 10
preMinStep_DifficultyMultiplier = player.AIDifficulty / ( 13 - player.AIDifficulty ) = 1.41
FleetShipBudget *= preMinStep_DifficultyMultiplier = 14.07
FleetShipBudget less than minimum strength (which is 34 * player.GetHandicapMultiplier()), so set to 34
FleetShipBudget *= player.AITypeData.WaveSizeMultiplier = 34
postMinStep_DifficultyMultiplier = player.GetDifficultySpecificWaveSizeMultiplier() = 2.75
FleetShipBudget *= postMinStep_DifficultyMultiplier = 93.5= not enough salvage strength to launch a salvage-reprisal (requires twice the normal wave size), so we'll check again in about 3 minutes


5/24/2014 12:33:40 PM (7.031)
-----------------------------------
Salvage-Reprisal Wave Check; Current Game Time: 1:03:04
= Salvage is non-zero, so checking if player 9's AISalvage is high enough for a salvage-reprisal wave
AISalvage: 82547
effectiveMetalForSalvageWave = floor(AISalvage) = 82547
referenceMetalCost = (metal cost of a mkI bomber in this game) = 1600
referenceStrength = (strength of a mkI bomber in this game) = 2
metalToStrengthRatio = referenceStrength / referenceMetalCost = 0.00122
= potentialSalvageStrength = effectiveMetalForSalvageWave * metalToStrengthRatio = 100.77
computing strength budget of a normal wave for threshold check

FleetShipBudget = (base value, equivalent to a single mkI fighter on high caps) = 1
FleetShipBudget *= this.AITechLevel = 1
FleetShipBudget *= (FInt)Game.Instance.Options.TotalHumanPlayerPlusExtraHomeworldsCount = 1
FleetShipBudget *= this.AIProgressionLevelEffective = 10
FleetShipBudget *= player.GetHandicapMultiplier() = 10
preMinStep_DifficultyMultiplier = player.AIDifficulty / ( 13 - player.AIDifficulty ) = 1.41
FleetShipBudget *= preMinStep_DifficultyMultiplier = 14.07
FleetShipBudget less than minimum strength (which is 34 * player.GetHandicapMultiplier()), so set to 34
FleetShipBudget *= player.AITypeData.WaveSizeMultiplier = 34
postMinStep_DifficultyMultiplier = player.GetDifficultySpecificWaveSizeMultiplier() = 2.75
FleetShipBudget *= postMinStep_DifficultyMultiplier = 93.5= not enough salvage strength to launch a salvage-reprisal (requires twice the normal wave size), so we'll check again in about 3 minutes


5/24/2014 12:36:36 PM (7.031)
-----------------------------------
Salvage-Reprisal Wave Check; Current Game Time: 1:05:59
= Salvage is non-zero, so checking if player 8's AISalvage is high enough for a salvage-reprisal wave
AISalvage: 1704254
effectiveMetalForSalvageWave = floor(AISalvage) = 1704254
referenceMetalCost = (metal cost of a mkI bomber in this game) = 1600
referenceStrength = (strength of a mkI bomber in this game) = 2
metalToStrengthRatio = referenceStrength / referenceMetalCost = 0.00122
= potentialSalvageStrength = effectiveMetalForSalvageWave * metalToStrengthRatio = 2080.39
computing strength budget of a normal wave for threshold check

FleetShipBudget = (base value, equivalent to a single mkI fighter on high caps) = 1
FleetShipBudget *= this.AITechLevel = 1
FleetShipBudget *= (FInt)Game.Instance.Options.TotalHumanPlayerPlusExtraHomeworldsCount = 1
FleetShipBudget *= this.AIProgressionLevelEffective = 15
FleetShipBudget *= player.GetHandicapMultiplier() = 15
preMinStep_DifficultyMultiplier = player.AIDifficulty / ( 13 - player.AIDifficulty ) = 1.41
FleetShipBudget *= preMinStep_DifficultyMultiplier = 21.11
FleetShipBudget less than minimum strength (which is 34 * player.GetHandicapMultiplier()), so set to 34
FleetShipBudget *= player.AITypeData.WaveSizeMultiplier = 34
postMinStep_DifficultyMultiplier = player.GetDifficultySpecificWaveSizeMultiplier() = 2.75
FleetShipBudget *= postMinStep_DifficultyMultiplier = 93.5= Enough salvage strength to launch a salvage-reprisal, so calling TriggerNormalWave with OverrideStrength = 2080.39


5/24/2014 12:36:36 PM (7.031)
-----------------------------------
Starting CreateWaveToPlanet at Game Time: 1:05:59 ; Player.AIType: Alarmist ; Player.AIDifficulty: 7.6 ; EffectiveAIP: 15 ; AITechLevel: 1 ; IsSchizo: False
WaveStrength = 2080.39

= FleetShipBudget for this wave's fleet ships = 2080.39

percentChanceParasiteWave (from AI type) = 0.03
percentChanceBomberWave (from AI type) = 0.06
percentChanceStealthWave (from AI type) = 0.06
= actually chosen WaveType: Normal

AIP is between the current tech level's AIP threshold and the next tech level's, so promotionRatio (percent of fleet ships to be bought from next tech level up) = 0.07
Some strength budget remaining from previous pick phases (if any), so spend what remains on types from the Normal group
* called PickUnitsForWave with: Fighter, Bomber, MissileShip, LazerGatling, ElectricShuttle
** Picked 2752 LazerGatling @ 0.71 each = 1941.72
** Picked 99 LazerGatlingII @ 1.41 each = 139.7
= After picking fleet ships, FleetShipBudget is now -1.03

player.AITypeData.StarshipBudgetMultiplier: 0.08
= StarshipBudget = originalFleetShipBudget * player.AITypeData.StarshipBudgetMultiplier = 174.72
* called PickUnitsForWave with: LightStarship, Dreadnought, LeechStarship
** Picked
1 Dreadnought @ 96 each = 96
1 LightStarship @ 96 each = 96
= After picking starships, StarshipBudget is now -17.28


== Wave total ships: 2853
TypesForDirectAdd count by type:
LazerGatling : 1000
TypesForCarrierAdd count by type:
LazerGatling : 1752
LazerGatlingII : 99
Dreadnought : 1
LightStarship : 1
== For a grand-total Strength value of 2273.42


5/24/2014 12:36:42 PM (7.031)
-----------------------------------
Salvage-Reprisal Wave Check; Current Game Time: 1:06:05
= Salvage is non-zero, so checking if player 9's AISalvage is high enough for a salvage-reprisal wave
AISalvage: 116550
effectiveMetalForSalvageWave = floor(AISalvage) = 116550
referenceMetalCost = (metal cost of a mkI bomber in this game) = 1600
referenceStrength = (strength of a mkI bomber in this game) = 2
metalToStrengthRatio = referenceStrength / referenceMetalCost = 0.00122
= potentialSalvageStrength = effectiveMetalForSalvageWave * metalToStrengthRatio = 142.27
computing strength budget of a normal wave for threshold check

FleetShipBudget = (base value, equivalent to a single mkI fighter on high caps) = 1
FleetShipBudget *= this.AITechLevel = 1
FleetShipBudget *= (FInt)Game.Instance.Options.TotalHumanPlayerPlusExtraHomeworldsCount = 1
FleetShipBudget *= this.AIProgressionLevelEffective = 15
FleetShipBudget *= player.GetHandicapMultiplier() = 15
preMinStep_DifficultyMultiplier = player.AIDifficulty / ( 13 - player.AIDifficulty ) = 1.41
FleetShipBudget *= preMinStep_DifficultyMultiplier = 21.11
FleetShipBudget less than minimum strength (which is 34 * player.GetHandicapMultiplier()), so set to 34
FleetShipBudget *= player.AITypeData.WaveSizeMultiplier = 34
postMinStep_DifficultyMultiplier = player.GetDifficultySpecificWaveSizeMultiplier() = 2.75
FleetShipBudget *= postMinStep_DifficultyMultiplier = 93.5= not enough salvage strength to launch a salvage-reprisal (requires twice the normal wave size), so we'll check again in about 3 minutes


5/24/2014 12:40:22 PM (7.031)
-----------------------------------
Salvage-Reprisal Wave Check; Current Game Time: 1:09:06
= Salvage is non-zero, so checking if player 9's AISalvage is high enough for a salvage-reprisal wave
AISalvage: 116550
effectiveMetalForSalvageWave = floor(AISalvage) = 116550
referenceMetalCost = (metal cost of a mkI bomber in this game) = 1600
referenceStrength = (strength of a mkI bomber in this game) = 2
metalToStrengthRatio = referenceStrength / referenceMetalCost = 0.00122
= potentialSalvageStrength = effectiveMetalForSalvageWave * metalToStrengthRatio = 142.27
computing strength budget of a normal wave for threshold check

FleetShipBudget = (base value, equivalent to a single mkI fighter on high caps) = 1
FleetShipBudget *= this.AITechLevel = 1
FleetShipBudget *= (FInt)Game.Instance.Options.TotalHumanPlayerPlusExtraHomeworldsCount = 1
FleetShipBudget *= this.AIProgressionLevelEffective = 15
FleetShipBudget *= player.GetHandicapMultiplier() = 15
preMinStep_DifficultyMultiplier = player.AIDifficulty / ( 13 - player.AIDifficulty ) = 1.41
FleetShipBudget *= preMinStep_DifficultyMultiplier = 21.11
FleetShipBudget less than minimum strength (which is 34 * player.GetHandicapMultiplier()), so set to 34
FleetShipBudget *= player.AITypeData.WaveSizeMultiplier = 34
postMinStep_DifficultyMultiplier = player.GetDifficultySpecificWaveSizeMultiplier() = 2.75
FleetShipBudget *= postMinStep_DifficultyMultiplier = 93.5= not enough salvage strength to launch a salvage-reprisal (requires twice the normal wave size), so we'll check again in about 3 minutes


5/24/2014 12:44:40 PM (7.031)
-----------------------------------
Salvage-Reprisal Wave Check; Current Game Time: 1:12:07
= Salvage is non-zero, so checking if player 9's AISalvage is high enough for a salvage-reprisal wave
AISalvage: 116550
effectiveMetalForSalvageWave = floor(AISalvage) = 116550
referenceMetalCost = (metal cost of a mkI bomber in this game) = 1600
referenceStrength = (strength of a mkI bomber in this game) = 2
metalToStrengthRatio = referenceStrength / referenceMetalCost = 0.00122
= potentialSalvageStrength = effectiveMetalForSalvageWave * metalToStrengthRatio = 142.27
computing strength budget of a normal wave for threshold check

FleetShipBudget = (base value, equivalent to a single mkI fighter on high caps) = 1
FleetShipBudget *= this.AITechLevel = 1
FleetShipBudget *= (FInt)Game.Instance.Options.TotalHumanPlayerPlusExtraHomeworldsCount = 1
FleetShipBudget *= this.AIProgressionLevelEffective = 15
FleetShipBudget *= player.GetHandicapMultiplier() = 15
preMinStep_DifficultyMultiplier = player.AIDifficulty / ( 13 - player.AIDifficulty ) = 1.41
FleetShipBudget *= preMinStep_DifficultyMultiplier = 21.11
FleetShipBudget less than minimum strength (which is 34 * player.GetHandicapMultiplier()), so set to 34
FleetShipBudget *= player.AITypeData.WaveSizeMultiplier = 34
postMinStep_DifficultyMultiplier = player.GetDifficultySpecificWaveSizeMultiplier() = 2.75
FleetShipBudget *= postMinStep_DifficultyMultiplier = 93.5= not enough salvage strength to launch a salvage-reprisal (requires twice the normal wave size), so we'll check again in about 3 minutes


5/24/2014 12:48:30 PM (7.031)
-----------------------------------
Salvage-Reprisal Wave Check; Current Game Time: 1:15:08
= Salvage is non-zero, so checking if player 9's AISalvage is high enough for a salvage-reprisal wave
AISalvage: 116550
effectiveMetalForSalvageWave = floor(AISalvage) = 116550
referenceMetalCost = (metal cost of a mkI bomber in this game) = 1600
referenceStrength = (strength of a mkI bomber in this game) = 2
metalToStrengthRatio = referenceStrength / referenceMetalCost = 0.00122
= potentialSalvageStrength = effectiveMetalForSalvageWave * metalToStrengthRatio = 142.27
computing strength budget of a normal wave for threshold check

FleetShipBudget = (base value, equivalent to a single mkI fighter on high caps) = 1
FleetShipBudget *= this.AITechLevel = 1
FleetShipBudget *= (FInt)Game.Instance.Options.TotalHumanPlayerPlusExtraHomeworldsCount = 1
FleetShipBudget *= this.AIProgressionLevelEffective = 15
FleetShipBudget *= player.GetHandicapMultiplier() = 15
preMinStep_DifficultyMultiplier = player.AIDifficulty / ( 13 - player.AIDifficulty ) = 1.41
FleetShipBudget *= preMinStep_DifficultyMultiplier = 21.11
FleetShipBudget less than minimum strength (which is 34 * player.GetHandicapMultiplier()), so set to 34
FleetShipBudget *= player.AITypeData.WaveSizeMultiplier = 34
postMinStep_DifficultyMultiplier = player.GetDifficultySpecificWaveSizeMultiplier() = 2.75
FleetShipBudget *= postMinStep_DifficultyMultiplier = 93.5= not enough salvage strength to launch a salvage-reprisal (requires twice the normal wave size), so we'll check again in about 3 minutes


5/24/2014 12:55:20 PM (7.031)
-----------------------------------
Salvage-Reprisal Wave Check; Current Game Time: 1:18:09
= Salvage is non-zero, so checking if player 9's AISalvage is high enough for a salvage-reprisal wave
AISalvage: 1208612
effectiveMetalForSalvageWave = floor(AISalvage) = 1208612
referenceMetalCost = (metal cost of a mkI bomber in this game) = 1600
referenceStrength = (strength of a mkI bomber in this game) = 2
metalToStrengthRatio = referenceStrength / referenceMetalCost = 0.00122
= potentialSalvageStrength = effectiveMetalForSalvageWave * metalToStrengthRatio = 1475.36
computing strength budget of a normal wave for threshold check

FleetShipBudget = (base value, equivalent to a single mkI fighter on high caps) = 1
FleetShipBudget *= this.AITechLevel = 1
FleetShipBudget *= (FInt)Game.Instance.Options.TotalHumanPlayerPlusExtraHomeworldsCount = 1
FleetShipBudget *= this.AIProgressionLevelEffective = 15
FleetShipBudget *= player.GetHandicapMultiplier() = 15
preMinStep_DifficultyMultiplier = player.AIDifficulty / ( 13 - player.AIDifficulty ) = 1.41
FleetShipBudget *= preMinStep_DifficultyMultiplier = 21.11
FleetShipBudget less than minimum strength (which is 34 * player.GetHandicapMultiplier()), so set to 34
FleetShipBudget *= player.AITypeData.WaveSizeMultiplier = 34
postMinStep_DifficultyMultiplier = player.GetDifficultySpecificWaveSizeMultiplier() = 2.75
FleetShipBudget *= postMinStep_DifficultyMultiplier = 93.5= Enough salvage strength to launch a salvage-reprisal, so calling TriggerNormalWave with OverrideStrength = 1475.36


5/24/2014 12:55:20 PM (7.031)
-----------------------------------
Starting CreateWaveToPlanet at Game Time: 1:18:09 ; Player.AIType: OneWayDoormaster ; Player.AIDifficulty: 7.6 ; EffectiveAIP: 15 ; AITechLevel: 1 ; IsSchizo: False
WaveStrength = 1475.36

= FleetShipBudget for this wave's fleet ships = 1475.36

percentChanceParasiteWave (from AI type) = 0.03
percentChanceBomberWave (from AI type) = 0.06
percentChanceStealthWave (from AI type) = 0.06
= actually chosen WaveType: Normal

AIP is between the current tech level's AIP threshold and the next tech level's, so promotionRatio (percent of fleet ships to be bought from next tech level up) = 0.07
Some strength budget remaining from previous pick phases (if any), so spend what remains on types from the Normal group
* called PickUnitsForWave with: Fighter, Bomber, MissileShip, Raptor, YounglingFirefly
** Picked 551 Bomber @ 2.5 each = 1377.77
** Picked 20 BomberII @ 5 each = 100.02
= After picking fleet ships, FleetShipBudget is now -2.44

player.AITypeData.StarshipBudgetMultiplier: 0.08
= StarshipBudget = originalFleetShipBudget * player.AITypeData.StarshipBudgetMultiplier = 123.91
* called PickUnitsForWave with: LightStarship, Dreadnought, LeechStarship
** Picked
2 LeechStarship @ 96 each = 192
= After picking starships, StarshipBudget is now -68.09


== Wave total ships: 573
TypesForDirectAdd count by type:
Bomber : 551
BomberII : 20
LeechStarship : 2
TypesForCarrierAdd count by type:
== For a grand-total Strength value of 1374


5/24/2014 1:09:22 PM (7.031)
-----------------------------------
Salvage-Reprisal Wave Check; Current Game Time: 1:22:09
= Salvage is non-zero, so checking if player 8's AISalvage is high enough for a salvage-reprisal wave
AISalvage: 18556
effectiveMetalForSalvageWave = floor(AISalvage) = 18556
referenceMetalCost = (metal cost of a mkI bomber in this game) = 1600
referenceStrength = (strength of a mkI bomber in this game) = 2
metalToStrengthRatio = referenceStrength / referenceMetalCost = 0.00122
= potentialSalvageStrength = effectiveMetalForSalvageWave * metalToStrengthRatio = 22.65
computing strength budget of a normal wave for threshold check

FleetShipBudget = (base value, equivalent to a single mkI fighter on high caps) = 1
FleetShipBudget *= this.AITechLevel = 1
FleetShipBudget *= (FInt)Game.Instance.Options.TotalHumanPlayerPlusExtraHomeworldsCount = 1
FleetShipBudget *= this.AIProgressionLevelEffective = 15
FleetShipBudget *= player.GetHandicapMultiplier() = 15
preMinStep_DifficultyMultiplier = player.AIDifficulty / ( 13 - player.AIDifficulty ) = 1.41
FleetShipBudget *= preMinStep_DifficultyMultiplier = 21.11
FleetShipBudget less than minimum strength (which is 34 * player.GetHandicapMultiplier()), so set to 34
FleetShipBudget *= player.AITypeData.WaveSizeMultiplier = 34
postMinStep_DifficultyMultiplier = player.GetDifficultySpecificWaveSizeMultiplier() = 2.75
FleetShipBudget *= postMinStep_DifficultyMultiplier = 93.5= not enough salvage strength to launch a salvage-reprisal (requires twice the normal wave size), so we'll check again in about 3 minutes


5/24/2014 1:09:26 PM (7.031)
-----------------------------------
Salvage-Reprisal Wave Check; Current Game Time: 1:22:13
= Salvage is non-zero, so checking if player 9's AISalvage is high enough for a salvage-reprisal wave
AISalvage: 2321
effectiveMetalForSalvageWave = floor(AISalvage) = 2321
referenceMetalCost = (metal cost of a mkI bomber in this game) = 1600
referenceStrength = (strength of a mkI bomber in this game) = 2
metalToStrengthRatio = referenceStrength / referenceMetalCost = 0.00122
= potentialSalvageStrength = effectiveMetalForSalvageWave * metalToStrengthRatio = 2.83
computing strength budget of a normal wave for threshold check

FleetShipBudget = (base value, equivalent to a single mkI fighter on high caps) = 1
FleetShipBudget *= this.AITechLevel = 1
FleetShipBudget *= (FInt)Game.Instance.Options.TotalHumanPlayerPlusExtraHomeworldsCount = 1
FleetShipBudget *= this.AIProgressionLevelEffective = 15
FleetShipBudget *= player.GetHandicapMultiplier() = 15
preMinStep_DifficultyMultiplier = player.AIDifficulty / ( 13 - player.AIDifficulty ) = 1.41
FleetShipBudget *= preMinStep_DifficultyMultiplier = 21.11
FleetShipBudget less than minimum strength (which is 34 * player.GetHandicapMultiplier()), so set to 34
FleetShipBudget *= player.AITypeData.WaveSizeMultiplier = 34
postMinStep_DifficultyMultiplier = player.GetDifficultySpecificWaveSizeMultiplier() = 2.75
FleetShipBudget *= postMinStep_DifficultyMultiplier = 93.5= not enough salvage strength to launch a salvage-reprisal (requires twice the normal wave size), so we'll check again in about 3 minutes


5/24/2014 1:13:58 PM (7.031)
-----------------------------------
= CheckForWave proceeding with wave for player 8 because AccumulatedStrengthForNextWave is now >= normalWaveStrength at Game Time: 1:24:06
normalWaveStrength:200
AccumulatedStrengthForNextWave:200.04

= computation of normalWaveStrength:
FleetShipBudget = (base value, equivalent to a single mkI fighter on high caps) = 1
FleetShipBudget *= this.AITechLevel = 1
FleetShipBudget *= (FInt)Game.Instance.Options.TotalHumanPlayerPlusExtraHomeworldsCount = 1
FleetShipBudget *= this.AIProgressionLevelEffective = 15
FleetShipBudget *= player.GetHandicapMultiplier() = 15
preMinStep_DifficultyMultiplier = player.AIDifficulty / ( 13 - player.AIDifficulty ) = 1.41
FleetShipBudget *= preMinStep_DifficultyMultiplier = 21.11
FleetShipBudget less than minimum strength (which is 34 * player.GetHandicapMultiplier()), so set to 34
FleetShipBudget *= player.AITypeData.WaveSizeMultiplier = 34
postMinStep_DifficultyMultiplier = player.GetDifficultySpecificWaveSizeMultiplier() = 2.75
FleetShipBudget *= postMinStep_DifficultyMultiplier = 93.5
Because Diff >= 7 and entry_points = 2, entryPointMultiplier = 1
Because game time < 2 hours (5046 seconds), using interpolation between non-modified and entry-point-modified range, entryPointMultiplier = 1
normalWaveStrength *= entryPointMultiplier = 93.5
normalWaveStrength *= this.WaitingBasedMultiplierForNextNormalWave = 93.5
normalWaveStrength *= Max(200,normalWaveStrength) = 200

= AccumulatedStrengthForNextWave (after the first wave) is based on, every second, adding ( baseWaveStrength / normalWaveIntervalInSeconds )
computation of baseWaveStrength is the same as normalWaveStrength, but without the entry-point-multiplier and later stuff

= computation of normalWaveIntervalInSeconds:
interval = floor( ( 14 - this.AIDifficulty ) * 3 * 60 ) = 1152

so, if you're curious, amountToGainPerSecond is 0.08

5/24/2014 1:13:58 PM (7.031)
-----------------------------------
Starting CreateWaveToPlanet at Game Time: 1:24:06 ; Player.AIType: Alarmist ; Player.AIDifficulty: 7.6 ; EffectiveAIP: 15 ; AITechLevel: 1 ; IsSchizo: False
WaveStrength = 200.04

= FleetShipBudget for this wave's fleet ships = 200.04

percentChanceParasiteWave (from AI type) = 0.03
percentChanceBomberWave (from AI type) = 0.06
percentChanceStealthWave (from AI type) = 0.06
= actually chosen WaveType: Normal

AIP is between the current tech level's AIP threshold and the next tech level's, so promotionRatio (percent of fleet ships to be bought from next tech level up) = 0.07
Some strength budget remaining from previous pick phases (if any), so spend what remains on types from the Normal group
* called PickUnitsForWave with: Fighter, Bomber, MissileShip, LazerGatling, ElectricShuttle
** Picked 75 Bomber @ 2.5 each = 187.54
** Picked 3 BomberII @ 5 each = 15
= After picking fleet ships, FleetShipBudget is now -2.5

player.AITypeData.StarshipBudgetMultiplier: 0.08
= StarshipBudget = originalFleetShipBudget * player.AITypeData.StarshipBudgetMultiplier = 16.8
* called PickUnitsForWave with: LightStarship, Dreadnought, LeechStarship
** Picked
1 LightStarship @ 96 each = 96
= After picking starships, StarshipBudget is now -79.2


== Wave total ships: 79
TypesForDirectAdd count by type:
Bomber : 75
BomberII : 3
LightStarship : 1
TypesForCarrierAdd count by type:
== For a grand-total Strength value of 258

The 2000 laser gatlings are at the 1:05:00 game time mark.

D.

Offline DrFranknfurter

  • Full Member
  • ***
  • Posts: 116
Re: AI War Beta 7.029-7.031 "Extermination Protocol MkII" Released!
« Reply #128 on: May 24, 2014, 06:27:55 pm »
laser gatlings are a cheap ship, 0.71 vs 2.5 for bombers from the look of it, so being 3.5x more of them anyway. The low AIP means fewer ships in a normal wave... so a surprise but it doesn't look too erroneous to me.

I think the main thing is try to keep your high cost ships alive wherever possible (starships, lightning torpedo frigates, spire stuff) and just make sure you plan for the reprisals. (I think I'll keep 2 warheads built and ready at all times now just for insurance)

Offline tadrinth

  • Hero Member
  • *****
  • Posts: 507
Re: AI War Beta 7.029-7.031 "Extermination Protocol MkII" Released!
« Reply #129 on: May 24, 2014, 07:40:57 pm »
What rule are Arachnid Guard Posts using to decide what they can shoot at? It says anti-starship on the tin, but I just saw them shooting at the Human Resistance ships, which I would not have expected to count as starships.  I've also seen them shoot at stuff I got out of Zenith Reserves, none of which were starships. 

Offline Diazo

  • Master Member Mark II
  • *****
  • Posts: 1,717
  • I love/hate Diff 10
Re: AI War Beta 7.029-7.031 "Extermination Protocol MkII" Released!
« Reply #130 on: May 24, 2014, 08:56:44 pm »
laser gatlings are a cheap ship, 0.71 vs 2.5 for bombers from the look of it, so being 3.5x more of them anyway. The low AIP means fewer ships in a normal wave... so a surprise but it doesn't look too erroneous to me.

I think the main thing is try to keep your high cost ships alive wherever possible (starships, lightning torpedo frigates, spire stuff) and just make sure you plan for the reprisals. (I think I'll keep 2 warheads built and ready at all times now just for insurance)

Good point about the laser gatlings having the high cap, that does influence things.

Having said that, I suppose my point was more the fact that at the 1 hour mark when I only control 2 systems, the salvage mechanic was throwing 2000 ships in my face.  (I play single HW, pretty much everything off, normal caps.)

I survived it without too much difficulty because the presence of the Black Hole Machine meant I knew I was losing all those ships and I'd stockpiled metal to rebuild so I was able to flash build a bunch of turrets to soak the laser gatlings.

Had this happened in a more typical game, I would not have had that cushion of metal to flash-build turrets. The flip side being that in a more typical game I could retreat before my fleet got wiped.

All in all, sounds like a bit of an outlier case due to low AIP in the early game and the black hole machine forcing me to accept a full fleet wipe.

D.

Offline DrFranknfurter

  • Full Member
  • ***
  • Posts: 116
Re: AI War Beta 7.029-7.031 "Extermination Protocol MkII" Released!
« Reply #131 on: May 25, 2014, 10:50:46 am »
I suppose there are a few factors, only one that I could think of before was the different fleet ship cost but Salvage reprisals don't have this bit:

Because game time < 2 hours (385 seconds), using interpolation between non-modified and entry-point-modified range, entryPointMultiplier = 1

and they could do with something to lessen the effects early on (<2h), at low AIP (<50) and at normal to low Diff <7 so that new players near the start of the game (more likely to be fleet-wiped) aren't killed outright by the surprise. AIP currently is factored in only to check when to send a reprisal and doesn't modify reprisal strength, only the metal accumulated does.

So I'd add a few lines after/around this bit:
= potentialSalvageStrength = effectiveMetalForSalvageWave * metalToStrengthRatio = 2080.39
computing strength budget of a normal wave for threshold check
with the aim of reducing this value for those 3 conditions, maybe making reprisals a tad stronger at high AIP, but I don't actually think that is a requested feature atm.

Offline Diazo

  • Master Member Mark II
  • *****
  • Posts: 1,717
  • I love/hate Diff 10
Re: AI War Beta 7.029-7.031 "Extermination Protocol MkII" Released!
« Reply #132 on: May 25, 2014, 11:20:18 am »
I'm not sure how big a deal it is really. I'm not actually having any difficulty dealing with the waves coming back at me from the salvage, it's more that it feels off that I'll get hit by an 800 strong salvage wave of missile frigates, followed up by a 100 strong normal wave of missile frigates.

The fact that it can only throw back as much as I throw at it means that as long as I have a reasonable amount of turrets ready these large salvage waves are not a noticeable threat.


What is an extinction level threat is golems. I rolled with random AIs and the Golemite AI type came up. I just got an Armored Golem to the face and those are dangerous. (Note that I play with options off, all I had was the Space Dock and Starship Constructor ships, no superweapons of my own.)

The golem waltzed through a fortified border system, every mobile unit I had and shredded the turrets in my home system.  Fortunately it took the golem long enough to do this that I had the 6 or 7 minutes needed to flash-build an Armored Warhead. Thankfully the Armored Warhead can one-shot the golem for me, nothing else I did had a chance and the golem was pounding on my home command force fields when I got the warhead off.

For just how screwed I was? Just before the warhead hit, after I'd thrown everything I had at the golem, it still had over 95% health. Without those warhead changes I simply could not have stopped these new golems.

Because I can hard-counter the golems with warheads, I think things are okay. The golems did need the buff and because the Golemite can not spawn additional golems after game start the threat is high, but manageable. It simply means that I have to assign AIP cost to taking out a golem.

We will see if I still feel that way after dealing with another golem or two.

D.

Offline ZaneWolfe

  • Sr. Member
  • ****
  • Posts: 272
Re: AI War Beta 7.029-7.031 "Extermination Protocol MkII" Released!
« Reply #133 on: May 25, 2014, 02:22:57 pm »
Repeated testing has still left me with the same feeling. While I agree that hacking needed to be made harder, there should still be some advantage from having large amounts of HaP from either playing a High AIP game, or FS game where you are going to have a ton of HaP simply from the territory you have to claim. As I suggested before, I think the amount of increase in cost after a hack needs to be lowered, probably dropped from 50% to 25%-30%. No stance on Warp Relays yet, since the HW bug is making my 2 HWs into 4, I've had to keep threat cleared out least I get horribly overrun.

Offline DrFranknfurter

  • Full Member
  • ***
  • Posts: 116
Re: AI War Beta 7.029-7.031 "Extermination Protocol MkII" Released!
« Reply #134 on: May 25, 2014, 04:01:32 pm »
Currently playing a 5 HW game and enjoying the big waves, toned down the main difficulty to 7 and cross planet waves to compensate slightly... but struggling to hack anything due to all the enemy ships and the repeated tachyon pulses. Is there any way of making the first hack of each type easier? (No wild rolls for example, so you'd have one safe hack before the AI catches on and ramps up the responses)