AI War 2 has just received a (
Huge) update from 5.018 to 5.500 for Windows, Mac and Linux.
(2 of 4)
=== Mod Updates ===
* Outguard Party by Dismiss has been updated to v3!
** Check out 'Galaxy Settings Category: Outguard' and adjust what you want!
** New Outguard: Hacking Drone Operator, Tactical Shield Generator, Planetary Missile Command Orbital, Planetary Defense Orbital, Mobile Super-Fac.
* DpsHud by Dismiss has been updated to v2!
** Better coloration for distinguishing damage tier.
** More precision for single digit Millions (eg. 3.5m).
==== Re-Released AMU Code Parts ====
** Right now AMU is only at about 20% of the code it had before, but a lot of AMU has been integrated into the main game, so the actual progress is probably between 30-40%.
** The codebase has almost entirely been rewritten to be clearer, better, and actually documented with comments and teaching moments.
** To all modders: Inspect the code inside AMU (which is included with the mod) to your heart's content. It is designed to make modding easier for others.
** AMU now has a common "black code magic"-based framework for settings. The main goal is to make settings being read more efficient, easier to be set up and to make it nigh impossible for a misspell to waste time finding it.
*** The new abstract class CachedSettingRoot (which also holds the static functions for this framework) can execute GetAllStaticCachedSettingsOfClass(), which causes it to go through all the fields in the class (and potentially object) given, looking for anything that at its base is a CachedSettingRoot, then tries to find the proper reference of the 3 major base types:
**** The class CachedPersonalSetting includes all settings that a player has in their personal profile.
**** The class CachedGalaxySetting includes all settings in the game lobby, excluding faction settings.
**** The class CachedFactionSetting includes all custom(!) settings a faction can have, and to be set up requires an instance of the class given to GetAllStaticCachedSettingsOfClass(), and a faction being passed inside GetAllStaticCachedSettingsOfClass().
*** Then UpdateAllStaticCachedSettingsOfClass() and UpdateAllStaticCachedSettingsOfClass_FilteredByEventType() can be used to update all settings by the same logic. Both of these factions are fairly costly, so they are only recommended to be used once to update all settings when the current map is loaded/generated, and then filtered by events when a special event (player saves new personal/galaxy/faction settings) is fired.
*** Note that for this to work the name of the setting in XML and the field name in the code need to be the same. For examples, see the new AJEA_Base class.
*** The improvement here is that instead of always having to look into the hash dictionaries and/or do string comparisons for getting the values of settings AMU can simply cache and easily access the value of settings no matter how often they are being used.
*** Additionally, since the XML and field name need to be the same, one being off will automatically thrown an exception instead of potentially being an invisible bug that is hard to find.
** AJEA (Auto-Juggle Energy Assistant) is back!
*** With more settings than ever before (and its own setting categories) it is now once again possible to have a "smart grid" for building Matter Converters if needed. AJEA is a can of Brownout-Be-Gone.
*** For it to have access to also converting unused energy into metal, the Micro Mod Collection offers that functionality. It is, however, rather unbalanced in the favor of the player and not required for AJEA to work.
*** Note that AJEA has not yet been tested on clients, feedback is required!
** Capturable Repositioning also has made a comeback.
*** With settings related to defining how close/far from the gravity well, and how far from wormholes immobile capturables and if desired also asteroid mines are being placed CR is now vastly improved.
*** Repositioning happens the very moment the game is unpaused for the first time, so looking at a planet with capturables will immediately show the effect.
=== Bugfixes ===
* Fix a bug where AI Relentless Waves were getting stuck on planets that were owned by the wild hives.
* Fixed a bug where if an AI was defeated, but more than one AI remained undefeated the player would get the wrong journal for killing this AI.
** Thanks to Dismiss for reporting.
* Fix several bugs with hunter fireteams that were against the Fallen Spire
** They no longer show "Not After You" (they are, in fact, after you), and also they don't take unexpected vacations
** Thanks to benjbrun for reporting
* Fireteams targeted against crippled units now correclty identify them as "killed", and can get new targets
* The planet sidebar no longer counts the strength of crippled units toward the "Strength" it shows
** The ForMark field in FleetMembership is immediately set upon deserialization. This prevents potential tooltip exceptions when immediately looking at units after loading or starting a new game.
** The "Defeat Or Suppress All Hostile AIs" victory condition setting is now named "Defeat Or Suppress All Hostile Minor Factions". The former was simply a visual copy & paste error.
* Fix a bug where the Spire couldn't bolster cruiser/dreadnaught flagships in Expert mode
** Thanks to JDingDong8_1 for reporting
* Fix a dyson antagonizer bug
** Thanks to GreatYng for reporting
* Galactic Control Ships unleashed at the end of a Showdown Device event didn't always explode properly and additionally would be replaced by regular phase two overlords on reloading a save. They now go up with a nice big kaboom like they should and additionally don't get the doppelganger treatment on loading a save game.
** Thanks to Lampshade for providing a save game with the problem.
* Fixed a bug where ships were by default set to being able to do unlimited overkills on stacks - this meant that an Artillery Golem which has one shot with massive damage and, if there were 10 unstacked VWings as its target, could still only kill one of them, could still kill the entire stack in one shot. Now this should be fixed.
** This padded a bunch of false math for stacks receiving damage and dying, which should now also be fixed.
*** I went through the logs of a few shots with stacks, compressed shots, etc hitting - but there's no way to catch every single encounter and check it for something being wrong. If the amount of damage dealt or received, the amount of stacks dying, etc appears wrong or exceptions pop up, please report it as a bug (with a good description and if possible a savegame or reproduction instructions included).
*** Big thanks to Lampshade for reporting!
* The ZA Portal no longer vanishes when some hacks are cancelled
** Thanks to Lampshade for reporting
* Jabberwock/Heroic AI Types no longer get blasphemous elderlings that grant science
** Thanks to JDingDong8_1 for reporting
* The DZ Hersir now uses its proper model
** Thanks to Lord of Nothing for reporting, and to Puffin for finding model
* Fix a null reference exception for maddened elderlings
** Thanks to Chuito12 for reporting
* The notification for wormhole borers no longer appears once the AI owning it is defeated
** Thanks to Matt Dyer for reporting
* Adjust the stack planning logic to account for the fact that combining stacks leaves a stack behind.
** If you have 110 stacks, you need to combine 11 stacks to end up with 100.
** Properly calculate the remainder, when calculating how to split a stack on debuff.
** Now that debuffs are properly applied to stacks, don't cause them to decay faster than normal.
** When combining stacks, preserve damage and some debuffs on the combined stack.
*** Currently, this preserves:
**** total hull damage, which may cause some ships in the stack to die
**** total shield damage up-to the max shield of a single ship
**** average paralysis, engine stun and weapon jamming seconds remaining.
** Thanks to Tom Prince for fixing!
* Add fuel producers as potential targets for threat and hunter.
** Thanks to Tom Prince for fixing!
* Tweak "NOT AFTER YOU" debugging information.
** Thanks to Tom Prince for fixing!
* Fix a couple of potential use-after-free[1] of `FireteamRequiredTarget`s.
** This was causing AI Extragalactic budgets and unit's fireteam specifications to get otherwise impossible values, such as being targeted at a faction and at a allegiance that it doesn't belong to. This was usually treated as an "or", though it was not displayed that way.
** Discovered while looking at the saves from #27469.
** Thanks to Tom Prince for fixing!