Posted April 28, 2022
high rated
AI War 2 has just received another (quite large) update from 5.004a to 5.005 for Windows, Mac and Linux.
Apologies, as it's a little late being posted, compared to the day of its release.
5.005 Threat Properly Threatens
(Released April 26th, 2022)
-Temporarily, in tutorials the game logs any ship deaths silently to the log, with full stack traces (this is ArcenDebugLog.txt in the PlayerData folder). There is some super funky bug with ships dying for no apparent reason for some players in the tutorials, but we can't duplicate this internally at all, so this should give us the debugging info we need for that.
--Thanks to Croaker, gwelty, Tabellen Peter, and others for reporting.
-For the experimental, default-off tooltip: Fleet strength numbers now indicate not only the maximum strength of the fleet, but also the current strength and maximum amount of ships.
--This is to pin down a bug in the code which overestimates Neinzul Wild Hive drone fleet strength by potentially 2 magnitudes.
--Thanks to NR SirLimbo for adding.
-Highlight both source and destination of womrhole invation on notification hover.
--Thanks to tom.prince for implementing.
-Wormhole invasion improvements:
--Fix the check for targeting hostile planets. Previously, it would happily target planets that were not hostile to the AI launching it, which would often be the other AI, leading to a wormhole invasion between two random AI planets. Now it checks that the target is hostile to the launching AI, and an ally of the player.
--Ignore planets with a negative invasion score, since GetInvasionScoreForPlanet returns a such a value if the score is otherwise zero.
--Add a check to prevent two wormhole invasions happening in opposite directions. This occured to be accidentally while testing with the cheat, without the first fix. It led to two wormhole between planets.
--Thanks to tom.prince for implementing.
-The necromancer sidekick lobby text now explains precisely how it differs from the necromancer empire
--Thanks to Badger for adding.
-Change the pathfinding code to return the list of next planets to go to, excluding the origin.
--The most common caller of the pathfinding code is for creating a `SetWormholePath`, which should not include the current planet. It happens the initial order generated will be ignored, as it is invalid, most of the time. However, if you have a stationary Necromancer flagship on a planet adjacent to where a unit is summoned by necromancy with orders to an adjacent palnet, the orders will be copied to the new unit, resulting in it pathing back to the flagship before joining a fight.
--The pathfinding code is also used for determining if a path is safe for some unit to travel. Generally, the unit is already on the origin planet, so it doesn't have a choice to go there or not, so it should be skipped for this kind of check as well.
--This also adjust the few places that expected the origin to be included, and removes a duplicate copy of `Fireteam.GetDangerOfPath` that differed only in handling of the origin planet.
--Thanks to tom.prince for implementing.
-You can now tweak fireteam settings on a per-faction basis for 'how often does this fireteam choose its Best target'. This is not recommended, and is added (I think) for CF support)
--Thanks to Badger for implementing.
Balance
-Increased delay before the DLC3 AI Eyes can transform.
--Every time an AI Eye activates or inactivates, it clears the attack orders of all ships attacking it. This is inherent to the transformation logic and not in scope to be changed. The original Eyes stayed active for 60s once triggered, so this wasn't very noticeable, but the new Eyes had much shorter cooldowns to make them more responsive. However, this made them very annoying to kill once they triggered, as they would constantly transform, causing everything attacking them to go after something else.
--Most of the new Eyes must now be in the inactive state for 10s and in their active state for 30s before they can transform.
--The Dire Guardian Eye must be inactive for 30s and active for 7s before transforming; it'll always spawn at least one Dire Guardian when triggered, but if that's enough for it to deactivate, you've got 30 seconds before it spawns another.
--Thanks to Dismiss for the report and to Tadrinth for fixing.
-A few nerfs to the Corrosive Guardian
--This is purely a bandaid until zeus can take a look
Bugfixes
-Fixed a bug with Risk Analyzer's on death AIP change
--Thanks to rem_tuas for the report
-Fix to the Strength Counting code again. The fix before to make Guards not count as threat, made it so only the AI Sentinels faction would. Hunter (and things like CPA faction ships) would get ignored by the top bar and galaxy filter. It now checks if the units faction is of FactionType.AI (as it did before), AND checks if the units faction is allied to the AI by default. If both are false, it's not an AI unit!
--Thanks to Puffin for fixing!
-Improve the debug output of `EntityOrderCollection`.
--Thanks to tom.prince for implementing.
-Fix some errors in CPA tracing.
--Thanks to tom.prince for implementing.
-Further limitations to Custodian subfaction spawning to prevent teams from joining games they shouldn't be in.
--Thanks to StarKelp for implementing.
-Fixed a couple of MP-client-side errors that were possible in UpdateAllSortedStuffIfNeed, and also instrumented it so that it will not lead to error cascades, as well as so that if it has another error, we'll know exactly where that is.
--Thanks to ParadoxSong for reporting.
-Put in a probable fix for rare fireteam history deserialization that could happen in MP on clients. In the event that it still happens, it now gives a better error at least.
--Turns out that this could also lead to error cascades in some cases.
--Thanks to ParadoxSong and Alex M for reporting.
-Fixed some client-side-only exceptions that could happen when hacking elderlings in multiplayer.
--Thanks to ParadoxSong and firespier for reporting.
-Fixed a harmless error (that should not have been there) when asteroid mining powerplants were captured for the first time sometimes on MP clients.
--Thanks to ParadoxSong for reporting.
-Fix a few more achievement-related bugs
--Thanks to Ecthelon for reporting
-Fixed an exception that could happen when belatedly creating a faction during an MP game (such as from hacking a beacon). This needs more testing to be sure that I got all of it, but I fixed the part I was seeing. This then led to an error cascade.
--Thanks to Haeris for reporting.
-Fixed an issue with unloading transported ships that could cause an exception if the original savegame accidentally had two copies of that ship due to the timing of when the save was made.
--Thanks to Ushgarak for reporting.
-Audio messages for the necromancer being low on metal will no longer happen (the necromancer does not use metal that way).
--Thanks to ptarth for reporting.
-Add some defensive code to the AI Reserves
--Thanks to Binary Blitz for reporting
-Fixed an exception where if the local player account on the host was in a bit of a strange state, it could lead to error cascades.
--Thanks to kendric for reporting.
-Fix some duplicate text in the necromancer battle notifier about resources earned.
--Thanks to ptarth for reporting
-Fixed some exceptions that could happen in the ships sidebar when you were deselecting fleets.
--Thanks to Andrew Savinykh for reporting.
-Add some defensive code to The Templar's CalculateSpeed function
--Thanks to ptarth for reporting
-Fixed a couple of exceptions that could happen when closing modal popups via hotkey.
--Thanks to Andrew Savinykh for reporting.
-Fixed a memory not cleaned up warning with "Hacking_SelfUnitWithSubSelection_Base-GetMinAndMaxCostToHackForSidebar-eligibleTargets"
--Thanks to Malformata for reporting.
-Fixed an exception in "RecalculateBalanceStats debugStage 9800"
--Thanks to Breach for reporting.
-Fix a problem with exo notifiers when the exo is syncing with a CPA; it could show as 0%
--Thanks to Nick for reportin
-Fix a typo in a ward weapon text
--Thanks to lampshade for the bug report
-Fixed a "Hacking_TransformNecromancerFlagship-GetCanBeHacked-workingBlueprints" error.
--Thanks to Lord Of Nothing for reporting.
Apologies, as it's a little late being posted, compared to the day of its release.
5.005 Threat Properly Threatens
(Released April 26th, 2022)
-Temporarily, in tutorials the game logs any ship deaths silently to the log, with full stack traces (this is ArcenDebugLog.txt in the PlayerData folder). There is some super funky bug with ships dying for no apparent reason for some players in the tutorials, but we can't duplicate this internally at all, so this should give us the debugging info we need for that.
--Thanks to Croaker, gwelty, Tabellen Peter, and others for reporting.
-For the experimental, default-off tooltip: Fleet strength numbers now indicate not only the maximum strength of the fleet, but also the current strength and maximum amount of ships.
--This is to pin down a bug in the code which overestimates Neinzul Wild Hive drone fleet strength by potentially 2 magnitudes.
--Thanks to NR SirLimbo for adding.
-Highlight both source and destination of womrhole invation on notification hover.
--Thanks to tom.prince for implementing.
-Wormhole invasion improvements:
--Fix the check for targeting hostile planets. Previously, it would happily target planets that were not hostile to the AI launching it, which would often be the other AI, leading to a wormhole invasion between two random AI planets. Now it checks that the target is hostile to the launching AI, and an ally of the player.
--Ignore planets with a negative invasion score, since GetInvasionScoreForPlanet returns a such a value if the score is otherwise zero.
--Add a check to prevent two wormhole invasions happening in opposite directions. This occured to be accidentally while testing with the cheat, without the first fix. It led to two wormhole between planets.
--Thanks to tom.prince for implementing.
-The necromancer sidekick lobby text now explains precisely how it differs from the necromancer empire
--Thanks to Badger for adding.
-Change the pathfinding code to return the list of next planets to go to, excluding the origin.
--The most common caller of the pathfinding code is for creating a `SetWormholePath`, which should not include the current planet. It happens the initial order generated will be ignored, as it is invalid, most of the time. However, if you have a stationary Necromancer flagship on a planet adjacent to where a unit is summoned by necromancy with orders to an adjacent palnet, the orders will be copied to the new unit, resulting in it pathing back to the flagship before joining a fight.
--The pathfinding code is also used for determining if a path is safe for some unit to travel. Generally, the unit is already on the origin planet, so it doesn't have a choice to go there or not, so it should be skipped for this kind of check as well.
--This also adjust the few places that expected the origin to be included, and removes a duplicate copy of `Fireteam.GetDangerOfPath` that differed only in handling of the origin planet.
--Thanks to tom.prince for implementing.
-You can now tweak fireteam settings on a per-faction basis for 'how often does this fireteam choose its Best target'. This is not recommended, and is added (I think) for CF support)
--Thanks to Badger for implementing.
Balance
-Increased delay before the DLC3 AI Eyes can transform.
--Every time an AI Eye activates or inactivates, it clears the attack orders of all ships attacking it. This is inherent to the transformation logic and not in scope to be changed. The original Eyes stayed active for 60s once triggered, so this wasn't very noticeable, but the new Eyes had much shorter cooldowns to make them more responsive. However, this made them very annoying to kill once they triggered, as they would constantly transform, causing everything attacking them to go after something else.
--Most of the new Eyes must now be in the inactive state for 10s and in their active state for 30s before they can transform.
--The Dire Guardian Eye must be inactive for 30s and active for 7s before transforming; it'll always spawn at least one Dire Guardian when triggered, but if that's enough for it to deactivate, you've got 30 seconds before it spawns another.
--Thanks to Dismiss for the report and to Tadrinth for fixing.
-A few nerfs to the Corrosive Guardian
--This is purely a bandaid until zeus can take a look
Bugfixes
-Fixed a bug with Risk Analyzer's on death AIP change
--Thanks to rem_tuas for the report
-Fix to the Strength Counting code again. The fix before to make Guards not count as threat, made it so only the AI Sentinels faction would. Hunter (and things like CPA faction ships) would get ignored by the top bar and galaxy filter. It now checks if the units faction is of FactionType.AI (as it did before), AND checks if the units faction is allied to the AI by default. If both are false, it's not an AI unit!
--Thanks to Puffin for fixing!
-Improve the debug output of `EntityOrderCollection`.
--Thanks to tom.prince for implementing.
-Fix some errors in CPA tracing.
--Thanks to tom.prince for implementing.
-Further limitations to Custodian subfaction spawning to prevent teams from joining games they shouldn't be in.
--Thanks to StarKelp for implementing.
-Fixed a couple of MP-client-side errors that were possible in UpdateAllSortedStuffIfNeed, and also instrumented it so that it will not lead to error cascades, as well as so that if it has another error, we'll know exactly where that is.
--Thanks to ParadoxSong for reporting.
-Put in a probable fix for rare fireteam history deserialization that could happen in MP on clients. In the event that it still happens, it now gives a better error at least.
--Turns out that this could also lead to error cascades in some cases.
--Thanks to ParadoxSong and Alex M for reporting.
-Fixed some client-side-only exceptions that could happen when hacking elderlings in multiplayer.
--Thanks to ParadoxSong and firespier for reporting.
-Fixed a harmless error (that should not have been there) when asteroid mining powerplants were captured for the first time sometimes on MP clients.
--Thanks to ParadoxSong for reporting.
-Fix a few more achievement-related bugs
--Thanks to Ecthelon for reporting
-Fixed an exception that could happen when belatedly creating a faction during an MP game (such as from hacking a beacon). This needs more testing to be sure that I got all of it, but I fixed the part I was seeing. This then led to an error cascade.
--Thanks to Haeris for reporting.
-Fixed an issue with unloading transported ships that could cause an exception if the original savegame accidentally had two copies of that ship due to the timing of when the save was made.
--Thanks to Ushgarak for reporting.
-Audio messages for the necromancer being low on metal will no longer happen (the necromancer does not use metal that way).
--Thanks to ptarth for reporting.
-Add some defensive code to the AI Reserves
--Thanks to Binary Blitz for reporting
-Fixed an exception where if the local player account on the host was in a bit of a strange state, it could lead to error cascades.
--Thanks to kendric for reporting.
-Fix some duplicate text in the necromancer battle notifier about resources earned.
--Thanks to ptarth for reporting
-Fixed some exceptions that could happen in the ships sidebar when you were deselecting fleets.
--Thanks to Andrew Savinykh for reporting.
-Add some defensive code to The Templar's CalculateSpeed function
--Thanks to ptarth for reporting
-Fixed a couple of exceptions that could happen when closing modal popups via hotkey.
--Thanks to Andrew Savinykh for reporting.
-Fixed a memory not cleaned up warning with "Hacking_SelfUnitWithSubSelection_Base-GetMinAndMaxCostToHackForSidebar-eligibleTargets"
--Thanks to Malformata for reporting.
-Fixed an exception in "RecalculateBalanceStats debugStage 9800"
--Thanks to Breach for reporting.
-Fix a problem with exo notifiers when the exo is syncing with a CPA; it could show as 0%
--Thanks to Nick for reportin
-Fix a typo in a ward weapon text
--Thanks to lampshade for the bug report
-Fixed a "Hacking_TransformNecromancerFlagship-GetCanBeHacked-workingBlueprints" error.
--Thanks to Lord Of Nothing for reporting.