Posted July 09, 2022
high rated
AI War 2 has just received a (Huge) update from 5.018 to 5.500 for Windows, Mac and Linux.
(3 of 4)
* Switch Minor Faction Beacon hack to use hacking menu abstraction.
** Convert Tech Vault hack to use the hacking menu abstraction.
** Make a couple of hacks against elderlings that take 0s actually complete instantly.
** Remove a bunch of unused attributes on hacks that complete instantly.
*** Also make it an error to specificy any of those values, in that case.
** Thanks to Tom Prince for fixing!
* Change a couple of places that check if a faction is currently controlled by a player, to intead check if it is a player faction.
** This was causing the logic for crippled flagships to run only for actions with an active player, (salvage and various bits of Necromancer logic).
** Change a few more places where sim was depending on whether a player was actively controlling a faction.
** Also fix a place where a faction index was being looked up in `World_AIW2.Instance.AIFactions`.
** Thanks to Tom Prince for fixing!
* When I was simplifying the logic for exogalactic attacks, to remove the option for using relentless waves, I accidentally made them always use them. Fix it so it again never does.
** Thanks to Tom Prince for fixing!
* Add a DoOnAnyCrippleLogic_MyFactionUnitsOnly_HostOnly method to faction deep info.
** Use this to move the necromancer specific logic out of the scenario logic.
** Thanks to Tom Prince for fixing!
* Make the two places in GameEntity_Squad which handle crippling have the same logic.
** One handled the phylactery healing, and didn't then mark it as needing to be repaired.
** One removed any remaining corrosion damage.
** Now, both places have the same logic.
** Thanks to Tom Prince for fixing!
* Record a hacking event when a Necromancer flagship is crippled, if losing HaP.
** This mirrors the logic for human empires, though it isn't currently visible anywhere.
** Thanks to Tom Prince for fixing!
* Move the flagship bail out when crippled checks to the scenario, and factor out the counterattack logic to its own function.
** Thanks to Tom Prince for fixing!
* Add an option to enable officer permadeath for deathwish mode.
** When enabled, officers will turn into basic transports on death.
** Thanks to Tom Prince for adding!
* Fix speed buff calculation to use allied speed multiplier instead of attack multiplier.
** This was undoubtedly a copy-paste error.
** Also, tally the allied and hostile speed and damage multipliers separately, before combining them, to avoid the result depending on ordering. This is an issue, since allied multipliers are additive, whereas hostile multipliers are multiplicative.
** Thanks to Tom Prince for fixing!
* Cleanup some memory leaks and duplicate logging in the wave planning code when tracing.
** Thanks to Tom Prince for fixing!
* Remove leftover duplicate direct science tech settings that were being tested during DLC2 development.
** Thanks to Tom Prince for fixing!
* Add "Use Balanced Golems" galaxy setting, that seeds the re-balanced golems, and force it on in Expert+.
** Thanks to Tom Prince for fixing!
* Don't show that ships can't be supercharged, if fleet wide bonuses are disabled by galaxy settings.
** Thanks to Tom Prince for fixing!
* Stop AI threat from being targeted at a random minor faction, if there is not hostile faction with strength on the local planet.
** There was a small list of possible factions that could randomly be picked[1]. If none of them were present in the game (or hostile to the unit becoming threat), then threat would available for use against any faction.
** Since it should be fairly rare that there are ships being released from guard duty with no hostile strength present, I think it makes sense to remove this weird edge case behavior, and just always release the threat for general use no mater which factions are in the game. This allows the code to be simplified, and one of the many slightly different faction settings controlling interaction with threat to be removed.
** I think the only case this can occur (besides the cheat command scrubfoes) may be if a unit being guarded by another unit is killed with no hostile strength (which is likely either a slow shot, or corrosion damage).
** Also:
*** Remove the `can_be_targeted_by_annoyed_non_human_units` setting from factions, which was only used to trigger this behavior.
*** Remove the `AnnoyingFactionFlags` argument to `PlanetFaction.GetIndexOfMostAnnoyingFaction`, which was only being used to request this behavior.
** [1] These are the factions that could be randomly picked (if they were hostile):
*** AI Sentinels
*** Marauders
*** Neinzul Custodians
*** Wormhole Invasion
*** Zenith Dyson Sphere
** Thanks to Tom Prince for fixing!
* Fix the incorrect subcategory heading being show in the galaxy options sometimes.
** This was happening when there was subcategories with no visible options.
** Thanks to Tom Prince for fixing!
* When taking damage (or healing) a percentage of health when a salvo is fired, take into account the number of squads firing.
** This prevents stacks of units like Rams from doing total damage that is quadratic with the stack size.
** This also fixes a few units that took a multiple of their total health as damage per salvo.
** Thanks to Tom Prince for fixing!
* Prevent tractor ships from bouncing around if they are tractored by multiple entities.
** Now, only the strongest unit tractoring another will cause it to move. Previously, every unit tractoring a given unit would move it each frame, causing tractor ships to move much faster than the tractoring units.
** Thanks to Tom Prince for fixing!
* When transiting wormoholes with tractored units, ensure that the tractored units are in the grav well.
** There was existing code that tried to do this, but it only worked if the point opposite the initially chosen invalid position was inside the gravwell. Now, if both the initial point, and the opposite point are outside the gravwell, it picks a point at the edge of the gravwell near the opposite point.
** Thanks to Tom Prince for fixing!
* Move `starts_already_built` from the fleet design template, to the `ship_membership`/`fleet_membership` and ensure it can only be used on drone lines.
** Thanks to Tom Prince for fixing!
(3 of 4)
* Switch Minor Faction Beacon hack to use hacking menu abstraction.
** Convert Tech Vault hack to use the hacking menu abstraction.
** Make a couple of hacks against elderlings that take 0s actually complete instantly.
** Remove a bunch of unused attributes on hacks that complete instantly.
*** Also make it an error to specificy any of those values, in that case.
** Thanks to Tom Prince for fixing!
* Change a couple of places that check if a faction is currently controlled by a player, to intead check if it is a player faction.
** This was causing the logic for crippled flagships to run only for actions with an active player, (salvage and various bits of Necromancer logic).
** Change a few more places where sim was depending on whether a player was actively controlling a faction.
** Also fix a place where a faction index was being looked up in `World_AIW2.Instance.AIFactions`.
** Thanks to Tom Prince for fixing!
* When I was simplifying the logic for exogalactic attacks, to remove the option for using relentless waves, I accidentally made them always use them. Fix it so it again never does.
** Thanks to Tom Prince for fixing!
* Add a DoOnAnyCrippleLogic_MyFactionUnitsOnly_HostOnly method to faction deep info.
** Use this to move the necromancer specific logic out of the scenario logic.
** Thanks to Tom Prince for fixing!
* Make the two places in GameEntity_Squad which handle crippling have the same logic.
** One handled the phylactery healing, and didn't then mark it as needing to be repaired.
** One removed any remaining corrosion damage.
** Now, both places have the same logic.
** Thanks to Tom Prince for fixing!
* Record a hacking event when a Necromancer flagship is crippled, if losing HaP.
** This mirrors the logic for human empires, though it isn't currently visible anywhere.
** Thanks to Tom Prince for fixing!
* Move the flagship bail out when crippled checks to the scenario, and factor out the counterattack logic to its own function.
** Thanks to Tom Prince for fixing!
* Add an option to enable officer permadeath for deathwish mode.
** When enabled, officers will turn into basic transports on death.
** Thanks to Tom Prince for adding!
* Fix speed buff calculation to use allied speed multiplier instead of attack multiplier.
** This was undoubtedly a copy-paste error.
** Also, tally the allied and hostile speed and damage multipliers separately, before combining them, to avoid the result depending on ordering. This is an issue, since allied multipliers are additive, whereas hostile multipliers are multiplicative.
** Thanks to Tom Prince for fixing!
* Cleanup some memory leaks and duplicate logging in the wave planning code when tracing.
** Thanks to Tom Prince for fixing!
* Remove leftover duplicate direct science tech settings that were being tested during DLC2 development.
** Thanks to Tom Prince for fixing!
* Add "Use Balanced Golems" galaxy setting, that seeds the re-balanced golems, and force it on in Expert+.
** Thanks to Tom Prince for fixing!
* Don't show that ships can't be supercharged, if fleet wide bonuses are disabled by galaxy settings.
** Thanks to Tom Prince for fixing!
* Stop AI threat from being targeted at a random minor faction, if there is not hostile faction with strength on the local planet.
** There was a small list of possible factions that could randomly be picked[1]. If none of them were present in the game (or hostile to the unit becoming threat), then threat would available for use against any faction.
** Since it should be fairly rare that there are ships being released from guard duty with no hostile strength present, I think it makes sense to remove this weird edge case behavior, and just always release the threat for general use no mater which factions are in the game. This allows the code to be simplified, and one of the many slightly different faction settings controlling interaction with threat to be removed.
** I think the only case this can occur (besides the cheat command scrubfoes) may be if a unit being guarded by another unit is killed with no hostile strength (which is likely either a slow shot, or corrosion damage).
** Also:
*** Remove the `can_be_targeted_by_annoyed_non_human_units` setting from factions, which was only used to trigger this behavior.
*** Remove the `AnnoyingFactionFlags` argument to `PlanetFaction.GetIndexOfMostAnnoyingFaction`, which was only being used to request this behavior.
** [1] These are the factions that could be randomly picked (if they were hostile):
*** AI Sentinels
*** Marauders
*** Neinzul Custodians
*** Wormhole Invasion
*** Zenith Dyson Sphere
** Thanks to Tom Prince for fixing!
* Fix the incorrect subcategory heading being show in the galaxy options sometimes.
** This was happening when there was subcategories with no visible options.
** Thanks to Tom Prince for fixing!
* When taking damage (or healing) a percentage of health when a salvo is fired, take into account the number of squads firing.
** This prevents stacks of units like Rams from doing total damage that is quadratic with the stack size.
** This also fixes a few units that took a multiple of their total health as damage per salvo.
** Thanks to Tom Prince for fixing!
* Prevent tractor ships from bouncing around if they are tractored by multiple entities.
** Now, only the strongest unit tractoring another will cause it to move. Previously, every unit tractoring a given unit would move it each frame, causing tractor ships to move much faster than the tractoring units.
** Thanks to Tom Prince for fixing!
* When transiting wormoholes with tractored units, ensure that the tractored units are in the grav well.
** There was existing code that tried to do this, but it only worked if the point opposite the initially chosen invalid position was inside the gravwell. Now, if both the initial point, and the opposite point are outside the gravwell, it picks a point at the edge of the gravwell near the opposite point.
** Thanks to Tom Prince for fixing!
* Move `starts_already_built` from the fleet design template, to the `ship_membership`/`fleet_membership` and ensure it can only be used on drone lines.
** Thanks to Tom Prince for fixing!
Post edited July 09, 2022 by Trooper1270