AI War 2:Post Completion
Contents
- 1 Reporting Bugs
- 2 What Happens Now That The Game Is "Done?"
- 3 5.505
- 4 5.504 Multiplayer Bug Smiting Part 2
- 5 5.503 Multiplayer Bug Smiting
- 6 5.502 No More Overlord Doubling
- 7 5.501 Fixes
- 8 5.500 Classic Fusion, And A Megaton Otherwise
- 9 5.018 Easier Reconnection
- 10 5.017 More Ways To Win
- 11 5.014 The Tom Show
- 12 5.013 Many Various
- 13 5.012 Necromancer Balance
- 14 5.011 Autobuild And Home Ark Strength
- 15 5.010 Client Message Order
- 16 5.009 Zeusathon II And DZ Sidekicks
- 17 5.008 Xenophiles And Outguard
- 18 5.007 The Reasonable Architrave
- 19 5.006 End To Spontaneous Combustion
- 20 5.005 Threat Properly Threatens
- 21 5.004 Misc Polish
- 22 5.003 Revenant Efficacy
- 23 5.002 Venators Optional
- 24 5.001 First Post-Completion Tweaks
- 25 Prior Release Notes
Reporting Bugs
- Any bugs or requests should go to our mantis bugtracker
- If you need to submit log files, those can generally be found under your PlayerData folder in the folder your game is installed in. The most relevant one is called ArcenDebugLog.txt. You can send us the whole thing, or just strip out relevant parts.
- In rare cases, mainly if your entire game crashes (that almost never happens), we will need your unity player log. That gets overwritten the next time you run the game after a crash, unlike the other log. These can be found here:
- Windows: C:\Users\username\AppData\LocalLow\Arcen Games, LLC\AIWar2\Player.log
- macOS: ~/Library/Logs/Arcen Games, LLC/AIWar2/Player.log
- Linux: ~/.config/unity3d/Arcen Games, LLC/AIWar2/Player.log
- Have a multiplayer error? Be sure to check here first
- Feel free to join discussions on discord!
What Happens Now That The Game Is "Done?"
The last of the AI War 2 DLCs is now out, the Complete Edition is out, and you can read a retrospective of the entire project if you would like to.
At this point, we have primarily moved on to other projects aside from bugfixes and balance tweaks and modder-support throughout 2022. That said, expect patches to arrive weekly or so at least, and in the short period after DLC3 releases it will be even more frequent.
We expect AI War 2 to have a long life if AI War Classic is anything to go by. The game is in a really good state, and we want you to be able to enjoy it for years and years.
5.505
(Not Yet Released)
5.504 Multiplayer Bug Smiting Part 2
(Released August 7th, 2022)
- Removed a block of descriptive text for an outguard version of Velociraptor that was false advertising.
Bugfixes
- There's now a 3 minute hard cap (time defined in XML for easy modding) for how long a ship can be put into multi-phase
- The actual problem is suspected to be related to stacked ships putting their targets into multiphase for way too long (see https://bugtracker.arcengames.com/view.php?id=27519 for details), but this will resolve the problem very simply
- Reported by a number of players in a number of forums
- Fix a bug where the Nanocaust and Necromancer were getting one extra ship whenever they killed anything
- Thanks to Dismiss and Lord of Nothing for reporting
MP
- Add a "Fast Blast Planet Data To Clients" mechanism, as well as a "Planets are also created on clients when they are created on hosts" mechanism
- This means MP clients should no longer deserialize when new planets are created (like during a DZ invasion)
- Quiet some error logging related to neinzul factions in MP
- The underlying problem is not resolved, but logs are no longer cluttered.
Balance
- Did a pass over ticket weights for Early Officer spawns to tone down how often Black Widow was showing up in Humanity Ascendant mode and give the other options more screen time.
- Ambush Drones from DLC 2 can now scale with Ambush tech. Actually they've been split into two versions.
- The original version scales with both Minefields and Ambush Tech and is still assigned to the Ambush Post.
- The new derivative copy starts at mark level three and only scales with Ambush tech. This is the one now deployed by Trailblazer Barges from the cruiser of the same name on death.
- Trailblazer Cruiser Railcannon base damage reduced from 2,000 to 1,500.
- As the Ambush Drones that are released on death from each Trailblazer Barge come in at high marks now some damage got trimmed off here.
- Valkyrie Cruiser Borealis Battlecannon has a max multiplier for missing hull applied now. Approaching near two million DPS at max is a tad excessive.
- Damage multiplier per 10% missing health adjusted down to 1.4x from 1.5x
- Max multiplier based on missing health now caps at 7x at 50% health missing. The same point it stops reviving allied ships. This is just under a million DPS at max potential.
- Radiant Cruiser Starburst takes a huge hit from the nerfbat. Potential max damage of over 157 million per starburst spawned is just brokenly over powered. Especially since with the set build point values it makes ten of them at max mark before dying even if it doesn't get repaired once.
- Starburst base damage reduced from 15,000 to 1,500 and max targets hit per beam reduced from 15 to 5. This still leaves them capable of bursting for just over 5 million damage each in a dense swarm.
- Adjusted Lockdown Cruiser to deal base 3500 instead of 8000 damage on its sniper wave, however reload timer has been adjusted down to 3 seconds from 4 seconds. Parasitic damage value set to be equal to damage dealt instead of 20x. This thing doesn't need to be three times better at making zombies than the Thanatos which is an Ark that has that as its primary mechanic whereas here it is secondary to the special ability of the cruiser.
- Mark 7 damage output of the sniper warp wave is ~163k DPS instead of 280k. This puts it at roughly half as much power as a Thanatos while still having much more range.
5.503 Multiplayer Bug Smiting
(Released July 29th, 2022)
- Three expansion golems from DLC2 were missing the "EX" text at the end of the Expert version name.
Multiplayer
- Fix a bug where ships would sometimes randomly spawn in the wrong location on MP clients
- Fix a bug where the client couldn't receive updates including wormhole changes, and would instead discard that update. This was causing a variety of problems (not least that wormholes wouldn't correctly disappear)
- Fix a bug where MP clients weren't properly updating their Galaxy map when it changed
- Note I believe there are still some problems in this area, but this should be a major improvement
- Fix a bug where Fireteams network serialization (and possibly disk serialization?) could race with the Sim
- This would cause massive desyncs
- Active hackers now attempt to sync their data to clients more frequently. This should make hacking notifications feel less 'Stuck' in heavily loaded games
MP Sync Options
- There are now several ways for players to force the game to re-sync everything to clients. This should put the clients in the same state as if they had quit/reloaded (so all data should be accurate)
- This sync can cause an interruption in the clients; they may see a bunch of errors (which should be ignored), and may cause the clients to experience odd visuals (such as flashing up the Main Game screen)
- To trigger a Sync, there are two mechanisms:
- A button in the Debug section of the Escape menu
- A setting (under Networking) called "Host Only: Force Sync Interval". On this interval (in minutes), the game will automatically sync all data to clients. So if you set this value to 20, every 20 minutes the game will resync to clients.
Balance
- The Monarch metal flow rate for drones had no mark scaling even though the base Hive Golem it is based on does. Metal flow rate updated from 3500 flat to 4000 flat and 1000 per mark. Drone production rate now can reach 3 drones per second at mark 6+.
- Electric Bomber weapon reload increased from 7s -> 8s.
- Metal cost per ship increased from 10,000 to 12,000.
- Phantasmal Host Decoy health reduced from 75,000 to 40,000 base.
- Additionally degrades from full health to nothing in 20 seconds instead of 33.
- Reversed the base and alternate rates of fire for Stealth Bombards. Scrapping for fresh construction had a rather abusable loop of getting five high damage shots in a row and then skipping the reload timer because you'd just treat them as a manually scrapped super-size Railpod group. Now has a long reload after being built like all other versions of Bombards.
- Base metal cost of Samurai Frigate raised from 31,500 to 65,000.
- Old metal price of 31,500 moved onto the Katana sub-unit instead of being just copied from the Samurai. They will still build their Katana at the same old rate but the main ship is a little more expensive to lose.
- Heavy Stingray actually made heavy! Also made a little more worthwhile since the old version traded less total count and less line damage potential for slightly more HP each. Now the counts are even lower but you aren't losing a ton of damage potential using them.
- Metal cost increased to 3,150 each.
- Energy cost increased to 350 each.
- Base hull increased to 4,200.
- Base armor set to 90.
- Base damage increased to 260.
- Base line counts reduced from 45 to 32.
- Heavy Fusion Bomber and by extension the linked units for an Outguard group and Ultima FRS bombers have had their base armor set to 90.
- Autocannon Minipod variant the Gunbot adjusted to not have high generic damage versus everything.
- Base damage reduced from 250 to 150 (Base version has 100 base damage)
- Multiplier versus armor increased from 2x to 3x.
- Average mk7 line DPS reduced from 123.5k to 74.1k. Versus armor expected DPS of 222.3k instead of previous 247k.
- Adjusted Vampire Turrets available under Exotic Tech.
- These now have a damage bonus against already damaged targets. If at least 40% hull is missing these now do an additional 1x damage. The Vampire is now looking for a weakened foe to feast more heavily from.
- Health recovered per damage dealt reduced from 2.5 to 1.5 because now that these actually can do more damage the previous value was excessive.
- Overall damage output significantly higher. Previously these had an extremely stable ~32k DPS as a line of 10 at mark 7 or ~58k DPS with high mark acid support. Now should routinely do twice as much damage once a fight is past the opening couple salvos.
- Alien hulls have been a bit too easy to gain insane power from in games where that is an option because of their semi-farmable nature. Part of this is the alien hulls have their own scaling which wildly clashes with the increased player scaling that has been getting applied when the players hack for a copy. So we are going to force the player versions to be significantly closer to the source material to close the massive power gain from an extremely minor expenditure into mark levels on hulls not originally balanced for as exceptional of scaling.
- Dark Spire:
- Minor faction version of Wraith found to have a purchase price of only 20! Corrected sharply upwards to 225.
- Player hackable versions of strikecraft restored entirely to classic scaling. You need to chase mark 7 for full line count.
- Specter frigate equivalent set to classic scaling without cap raises. These do enough damage they do not need to also be super metal efficient health sponges. Especially when their max damage for a line can be in excess of 400k sustained.
- Dyson Sphere:
- Player hackable versions of strikecraft again restored to fully classic scaling. You will pay a handsome price in science for a full cap.
- Player version of Bulwark deals a stupid amount of damage for how bulky it is with modern player frigate scaling. Health cut down to size with no cap increase classic scaling. Max EHP per metal reduced from 28.87 to 15. Again a sustained DPS potential of 150k+ means these outdo quite a few normal ships.
- Dark Spire:
Mod Updates
More System Defenders
- Variety of changes to ships and turrets within More System Defenders mod:
- Artillery Destroyer Suppressive Flak given max targets hit per shot of 10 to prevent excessive damage dilution.
- Augmented Artillery Destroyer which is in the FRS pool updated to actually show up more often. (Or at all actually...)
- Various drone gun ships and turrets for the player have had the systems revealed.
- Updated certain drone using AI guardian ship versions so that some supposedly disabled weapons are not suddenly valid when acid is around.
- Furthermore also adjusted the drones used by said ships to be less in number but more powerful individually.
- AI Cruise Missile Base nasty pick revised to be a bit more deadly.
- Also updated said nasty pick to actually use current method of qualifying for sabotage/reprogram hacks. No idea how long this has been broken!
Dyson Sidekick
- The Dyson Sidekick sets planets that are being drilled on fire when they are close for extra visual coolness
- Some additional nerfs to the Reapers
5.502 No More Overlord Doubling
(Released July 19th, 2022)
- Fix a bug where two copies of an AI Overlord were spawned
- Thanks to a number of people for reporting, including Lampshade and Dismiss on mantis, and SCUD and steam
- Some minor tweaks to the Dyson Sidekick
- Can no longer claim metal harvesters, but increase metal production to compensate
- Some nerfs to reapers
- Some nerfs to spire ships
- Can build a forcefield generator
Balance
- Tesla Torpedo Frigate launch rate of torpedoes lowered. 4s -> 5s
- Shields removed from Tesla Torpedoes. Half of the removed value has been added to the hull value. As these are effectively a strikecraft shields should not be present.
- Tackle Drone Frigate launch rate of Tackle Drones lowered. 4s -> 6s This lowers the maximum number of drones a standard line of six frigates can have out from around 49 to roughly 33.
- Additionally Tackle Drones still had shields even though other strike no longer had any from way back during The Shift. Shields have now been removed meaning the drones no longer have 80,000 effective health at mark seven. And should be more vulnerable to standard anti-strike like Pike and MLRS.
- Tackle Drone base damage lowered from 70 to 50. It still fires up to five shots at a time this is just lowering its max potential per drone from 3.7k DPS to 2.7k DPS.
- Expert version of Regen Golem apparently was missing the override to scaling type all expert versions should have. This is now fixed.
- Also adjusted the amount of health it pays to revive ships upwards a bit.
5.501 Fixes
(Released July 13th, 2022)
- Update to AMU:
- Fixed AJEA not turning off when it's disabled.
- Thanks to cml for reporting.
- Organized the distributed codebase distributed along with the mod a bit.
- Fixed AJEA not turning off when it's disabled.
- Improved the speed of the "final checks" part of loading the game, by moving it onto a background thread that doesn't block anything else. It's doing xml validity checks just in case a modder or someone else messed something up, but there's no reason to make players wait through that every startup. On many modern computers this takes like a quarter of a second anyway, but on older computers it can be a second or three.
- A variety of updates to the Classic Fusion mod, by Puffin.
- Added a StableSort() to ArcenList as an alternative to Sort(). Note that for lists with few entries this is less efficient. Now using a stable sort for ships in 'at local planet' window. This fixes at least one reproducible case of order flipping. Using a more appropriate text color for 'crippled' in fleets window.
- Thanks to Dismiss for adding!
- Outguard Party and Reclaimers now both 'require' all three dlcs. This fixes some exception messages when disabling expansions (since the mods now get turned off).
5.500 Classic Fusion, And A Megaton Otherwise
(Released July 8th, 2022)
- ExternalWorldBaseInfo objects can now also use the DoOnSpecialEvent_OnMainThread_ClientOrHost methods similar to factions, in order to i.e. directly react to settings or the lobby being changed.
Mod Releases
- Added UI support for enabling and disabling total conversion mods, now that we have one that is releasing (Classic Fusion).
- Enabling a total conversion mod through the UI closes the game and requires you to reopen it manually, which is unavoidable, but the rest of it is very smooth.
- Total conversions now show all the same info that regular mods do, including the author and an abbreviation and color and detailed description, etc. They are also shown first in the list of other mods, since they are so huge and also so rare, and they have the prefix T-C rather than Mod.
- When you try to enable a mod that relies on an expansion that is not enabled at the moment, or not installed at all, it now gives you a warning about that and does not allow you to enable said mod.
- Thanks to Dismiss for reporting that this was not working as expected.
Classic Fusion
- Classic Fusion, a Total Conversion mod by Puffin, is now released, roughly 2 years after it had started on/off development.
- This conversion attempts to recreate as much as reasonably possible of AI War: Fleet Command, also known as 'Classic', in the second game, and 'fuse' it with the AIW2 specific factions, mechanics, etc. I have attempted to make it as accurate as I can, working within limitations.
- This means you have all the Classic units, variants of those with AIW2 abilities, AIW2 specific units and factions redesigned to fit into this system, so on. Even some new things, not in either game. It's...big, almost nothing is untouched. It could possibly be seen as an entirely different/new game.
- These people have assisted in some form (specific details are in-game): DEMOCRACY, StarKelp, Badger, SirLimbo, Chris, Tom, ptarth.
- A note: Multiplayer is an unknown, due to being unable to test it. Attempts were made to make things work for it, but in practice it is unknown how well it works overall. Please do let me know if you try.
Dyson Sidekick
- This is a new player-controllable faction. Play as a coalition of Zenith, Neinzul, Templar and Spire trying to build a Dyson Sphere, while fighting the AI and the Reapers, the forces of an evil Necromancer..
- To get raw materials to build the sphere, you must ravage planets. The Reapers can spawn forces at ravaged planets, so be careful where you mine!
- Playable in Empire and Sidekick form
- This faction also allows you to destroy planets outright, allowing you to actually kill a Zenith Architrave
- This faction comes with a "Automatically help defend my planets" setting, to facilitate using the Sidekick in solo-play
- NOTA BENE: very little effort has gone into balancing this faction.
The Reclaimers
- The Reclaimers by Dismiss are a human faction dedicated to human recovery and advancement in the galaxy, though not through direct combat.
- Their deep space outposts provide scouting, and research alien technology. They also provide a few metabolic station-keepers to help recover metal after fleet battles.
- You may also find new station-keepers and turrets from hacks throughout the galaxy.
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.
- 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:
- 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!
- This padded a bunch of false math for stacks receiving damage and dying, which should now also be fixed.
- 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.
- Currently, this preserves:
- 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!
- 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 matter 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!
Balance
- Made several adjustments to the Angelic Ward from the FRS to tune down just how OP it was. Essentially when parked back a bit with engineers nearby it could perform just-in-time instant frigate replacement for under half price metal wise. To say nothing of how its health instead of metal cost makes fast replacement of units like bombards a joke.
- Shield health removed! All other revival units under player control do not have shields.
- Base hull health in XML reduced from 250k to 200k. Note that when you hack for the unit in a standard game it starts at Mark 5 with strike scaling. Thus it will still have at least 1.2m health unless you have changed some settings.
- Base metal cost doubled from 100k to 200k. Rapidly repairing it for instant fleet asset replacement now has somewhat more appropriate costs imposed.
- Base regen time from almost no health to full increased by 20 seconds. 100 -> 120.
- Added a strength multiplier to the resulting Frag Mines of a Fragmenting Minefield reducing its reported strength to 10% of previous. As a kamikaze unit that tends to explode within the next few seconds it really isn't as strong as it claimed it was.
- Balance adjustments to several different mines.
- Corruption Mine adjustments:
- Acid Debuff strength 15 + 15 per mark reduced to 20 + 10 per mark.
- Acid Debuff duration reduced from 15 to 10 seconds.
- Parasitic property strength cut in half. Now requires the mine to be at least mark 4 to guarantee a hit target gets converted on death from a single attack.
- Fragmenting Mine adjustments:
- Greater Metabolism -> Metabolism
- The greater property was turning otherwise inadvisable activities into highly lucrative metal printing options when excessive amounts of mines were acquired and placed. The sub-munitions retain the greater property since they have a far more limited impact being single target and only spawned when the minefield dies. Instead of coating hundreds of units as a collective field like the main unit does.
- Implosion Mine adjustments:
- Multiplier based on remaining health cut in half. Now only checks in 20% increments instead of 10%. Maximum multiplier for hull health is 5x instead of 10x.
- Base damage cut by 25% from 1000 to 750.
- Additional multiplier added against targets above 50% remaining shield health. Starts at 1x at mark one and increases by 0.25 per mark level. Maxes out at 2.5x at mark 7. Leaves the mine as being particularly good against guardians and frigate level threats but considerably weaker against strike.
- Kinetic Buffer has been adjusted. Essentially with how after the initial reload they fire five times in quick succession a single line of five was capable of dumping up to 40.5m damage in five seconds under ideal circumstances. Given they don't self-damage and are supposed to be crowd control while hitting up to 50 targets at a time this level of damage output was excessive.
- Base damage 1000 -> 150
- Multiplier vs low armor 6x -> 4x
- Single line burst against low armor: 40.5m over 5 seconds per 21 second reload cycle -> 4.05m over 5 seconds per 21 second reload cycle.
- Against higher armored targets the burst was 6.75m, for a sustained 321.4k DPS. This has been adjusted to ~1m burst, sustained 48.2k DPS.
- Corruption Mine adjustments:
- Module balance pass over Spire ships, thanks to Lord of Nothing for some of the input resulting in these changes.
- Spire Frigate:
- Pulse Laser shots per salvo halved. 20 -> 10
- Heavy hull/shield mods reduced to Moderate mods that cost 2 instead of 3 points with lower bonuses.
- Gravity Drain disabled, on non-flagships this now only shows up on Battleships and above.
- Spire Destroyer:
- Light Railcannon base damage doubled 3,000 -> 6,000.
- Heavy hull/shield mods reduced to Moderate mods that cost 2 instead of 3 points with lower bonuses.
- Gravity Drain disabled, on non-flagships this now only shows up on Battleships and above.
- Spire Cruiser:
- Light coilbeam base damage reduced from 37,500 to 30,000. Note that the flagship version keeps the better damage!
- Tractor Beam module added targets per mark reduced from 12 to 6. Was exceeding the curve established by other ships.
- Gravity Drain disabled for non-flagship versions. Still enabled for Cruiser Flagships.
- Gravity effect strength reduced from 30% slow to 20% on Cruiser Flagships.
- Spire Battleship:
- Tractor Beam module added targets per mark increased from 5 to 7.
- Gravitic Core strength reduced from 30% slow to 20%. Global effect on flagship version reduced from 30% to 10%.
- Spire Dreadnought:
- Pulse Laser shots per salvo halved. 20 -> 10
- Gravitic Core strength reduced from 40% slow to 20%. Global effect on flagship reduced from 40% to 15%.
- Module cost for Gravitic Core on flagship raised from 1 to 3, Engine gX effected for flagship 23 -> 22.
- Gravitic Railcannon engine gX for slowing reduced from 24 to 22 for both versions.
- Spire Frigate:
- Sweeping balance adjustments to Nadir Venator:
- Health cut by roughly 60%, max health at mark 7 reduced from 21m to 8m.
- Given a new vampiric sabot weapon that heavily penalizes high mass attackers at range. Note that this weapon is only super effective against tX of 8 or higher and cannot be fired at anything closer than 8000 range. Most standard fleet assets and shorter range turrets will not be impacted all. You might not want to be hitting them with very long range strike however.
- Engine power increased from 7 to 20 to match other Dire class vessels.
- Implemented Expert mode only versions of two Arks. The Nodorian Turtle and Great A'Thomek
- Great A'Thomek EX:
- AIP cost rasied to 12
- Base health increased to 1.5m hull and 1m shields
- Self hacks for additional shields reduced to only one hack costing 75 HaP. End result is maximum shield health is 14m instead of 19.6m
- Ranged damage reduction property against attacks from further away than 5600 lowered from 99% mitigation to 90% mitigation. Max effective shield health just sitting around soaking up sniper fire reduced from 1.96 billion to 140 million. Note than when including hull the long range EHP change is from 2.87b to 245m.
- Nodorian Turtle EX:
- AIP cost raised to 15.
- Base Attrition at all marks damage increased by 50%. 300/s at Mark 7.
- Damage increasing self hacks reduced from two hacks to one costing 75 HaP. End result is attrition per entity caps at 600 instead of 800. Also the overall max attrition cap is reduced from a million DPS to a half million DPS.
- Base damage of primary weapon increased from 12,000 to 20,000. Additionally a max targets hit per shot of 10 has been added to prevent excessive damage dilution.
- Great A'Thomek EX:
- Caught another entity that could be scrapped for metal that is "free" to make.
- Rescue Spores created by the Orchid Ark could be scrapped for metal. And since the Ark would create one a second while it had anything to shoot at its correction was merited.
- Post-Game changes:
- All factions can now have 2 new XML fields: creases_hack_responses_if_defeated and creases_hack_responses_if_all_ais_are_defeated, which uses the defeat_condition to figure out if it applies or not.
- The AI as well as all AI subfactions, Templar as well as (for potential modding applications) Astro Trains and Instigators will no longer launch hacking responses when all AIs have been defeated. If the galaxy has been lost to the AI hacking responses and exo strikes won't get it back.
- Note that AIP for hacks will still apply, because potentially other mechanics related to minor factions or hacking/science gain on AIP gain may still need this.
- Shark B (Exo Strike on command station death) should also no longer triggers when no AI is alive any more.
- This mostly takes the AI out of the game when all AIs have been defeated, at least as far as immediate responses are concerned. If the AI ever pokes into the milky way again it should be after a cost-benefit analysis and in force, not wasting resources trickling units into a black hole.
5.018 Easier Reconnection
(Released June 13th, 2022)
- Fixed the additional win conditions showing up in games where they were not enabled.
- Thanks to Lord Of Nothing for reporting.
- Fixed another bug with objectives that might've been around for longer, where the objective to locate AI Overlords didn't actually show or showed the wrong way.
- This seems to date back to August of 2021, actually.
- Updated the game to no longer block players from connecting under a given name if the host still thinks that the client is connected. It now just assigns that player name to the newly-connecting player.
- This is more vulnerable to griefing, because it would allow two players with the same name to keep trying to join and knock one another out of the game. But that's not the audience that AIW2 has, anyway.
- The vastly more common case is that someone disconnected from the host but the host just has not realized it yet. Having the next connection request that comes in with the same name say "close out the old one, load the new one" makes it far quicker for clients to reconnect.
- Thanks to a variety of players for reporting these issues over the last while, but Ushgarak, Pybro, and Toren_S for the most recent reports.
- Fixed a really complex issue with the long-range-planning threads that could see a couple of them potentially running at the same time when they should not have (this is not for certain), and which definitely could see some of them not running at all at other times (this is certain).
- The latter case was most easily triggered by changing mods or dlc around and then playing the game after that without first restarting the game. This was manifesting as "a bunch of inactive threads" warning.
- Thanks to Lord Of Nothing for the report and steps to repro, and to Spaz and Dismiss for also reporting.
- Put in protection against some issues that could happen in certain post-reload-xml situations, most notably on the nanocaust. But the fixes themselves are very generalized.
- Fixed an exception in the prototype entity tooltip when looking at a just created centerpiece.
- Thanks to Dismiss for reporting.
- The experimental tooltip how has the settings and the ability to format correctly when using icons or text at all detail levels.
- This means that you can now have short tooltips with text - or full tooltips without. All combinations are possible independent of each other.
- Make sure that threat against players, when sent on a raid, isn't turned into threat against a minor faction.
- Thanks to Tom Prince for fixing!
- Only consider BehaviorRelatedFactionIndex when determining if a entity is "NOT AFTER YOU" when it belongs to the AI Sentinals.
- Other faction don't look at that field on entities, so this reflects how the unit will behave.
- Thanks to Tom Prince for fixing!
- Allow threat that is going back to sleep to use allied guardposts or command stations.
- Thanks to Tom Prince for updating!
- Add a new `metal_cost_multiplier_for_scrapping` attribute for entities.
- This can be used to prevent getting free metal from scrapping ships that did not originally cost metal.
- Thanks to Tom Prince for adding!
- Add a tooltip that shows the amount that will be refunded when scrapping.
- Thanks to Tom Prince for adding!
- Make the non-agitated Neinzul Wild Hives and Hive Workers have 0 strength.
- This should make various faction AIs behavor more reasonably on planets with them.
- Thanks to Tom Prince for updating!
- Use the unit's fireteam specification for determining if a unit counts as threat against humans.
- This is instead of the fireteam's specification. This prevents hunter that is targeting a minor faction switching state as fireteams disband and then reform.
- Thanks to Tom Prince for fixing!
- When determining if an oribiter counts as mobile strength, consider it's parents recursively.
- Thanks to Tom Prince for updating!
- Simplify the code for several hack whose response is from the AI.
- Thanks to Tom Prince for updating!
- For AI factions with Hunter sub-factions that don't use fireteams[1], don't assign minor-faction waves to Hunter.
- This causes waves to just turn into random defensive units.
- [1] This is currently only defensive style hunter.
- Thanks to Tom Prince for fixing!
- Only despawn Extragalactic War hunter units that are "NOT AFTER YOU" periodically.
- The current logic decides to despawn based on faction power-level, which is only appropriate for Extragalactic War units. This was causing hunter spawned as waves against minor factions to despawn when they were on a planet with no hostiles for too long.
- It would likely make sense to have a way for other hunter targeting minor faction to also despawn, but that requires some more complex logic.
- Thanks to Tom Prince for updating!
Balance
- So as it turns out there was a very interesting find by Lampshade on the official Discord that puts a entire can of cheese wiz to shame. Namely that scrapping temporary units from Viral Shredders was giving metal. Unfortunately this rabbit hole goes deep and as such corrective attributes had to be assigned though-out the entire roster of player accessible ships from the base game and all DLC. This hits dozens of entries since it applies to a variety of units produced on death, via build points, via drone guns, and automatically spawning wards for units like the DLC3 destroyers and thus took a while to correct across all relevant files. Hydra property secondary units reduced to consolation prize level of 10% refund. Actually built for free units now salvage for nothing. Shout out to Tom for the quick implementation of the new attribute used in the fix.
- Base game units affected: 6
- Ambush carrier raptor drone, mini cluster bomb, Hydra heads for the Vanguard, Stingray, Parasite, and Warbird Frigate
- DLC 1 units affected: 6
- Tesla Torpedo, Deathgrip Tackle Drone, Viral Shredder Copy, Makeshift drones, Automated Construction Bot & mini version.
- DLC 2 units affected: 11
- Drone hangar versions of the V-Wing, Bomber, Gangsaw, and Shrike Interceptor, Phantasmal Decoy of the Phantasmal Host, Trailblazer Barge, Ambush Drone, Reclamation Drone, Mosquito Drone, Frag Mine sub-unit of Fragmenting Minefield, the drone-gun version of the Proximity Minefield deployed by the minelayer frigate.
- DLC 3 units affected: 14
- Animated Katana, Blade Drone, the destroyer wards the Falcon Ward, Kinetic Ward, Interceptor Ward, Vise Ward, Siren Ward, Explosive Ward, Fusion Ward, Flare Ward, Tesla Ward, and Eyestalk Ward, Embrasure Ward sub-unit of the FRS Shield Ward, Neinzul Locust of the Neinzul Ward.
- Base game units affected: 6
Mod Updates
- Update to More System Defenders v1.32
- Added attribute to prevent metal farming off of freely created entities. Several drone-gun ships and the Viper Corvettes were impacted by this base game issue.
- Additionally increased the tech upgrade costs for minefields and station-keeping entities while the mod is active. In the case of minefields the back-loaded upgrade costs were shifted forward and total cost only increased by 150 points.
- Station-keeping gets more significant cost increases and is an additional 2000 total science to buy out all ranks. Early ranks are significantly more expensive due to handing the player additional ships like Escort Carriers and Artillery Destroyers from game start in addition to the additional units that can be added via hacks.
5.017 More Ways To Win
(Released June 9th, 2022)
- Fix a couple showdown device related problems
- Thanks to GreatYng for reporting
- Corrected issue with AI Retribution Golem still using placeholder icon from initial implementation instead of the same icon the player version does.
- Thanks to Lampshade for the report.
- Corrected issue with Forcefield Guardian descriptive text incorrectly claiming protected units have their damage reduced.
- Thanks to Bob_1 for the report.
- Several of the Stationary Zenith Miners now are correctly Immobile
- Thanks to GreatYng for reporting
- The Dark Zenith no longer just sit there if there are Wild Hives in the game
- Thanks to Lord Of Nothing for reporting
- Fix a bug with the "Spawn As Waves" setting for wormhole invasions
- Thanks to Puffin Emeritus for reporting
- Planet Linking Wormhole Invasions spend their budget on a series of waves (between 1 and 5). Each of those waves is now at least size 30, since otherwise a small invasion force could be puny for 5 waves
- This is exacerbated by the fact that wormhole invasions spend 40% of their total budget on defending the wormhole
- Fixing grammar in tooltip which previously read: "You is your ally" and should have been omitted.
- Thanks to Dismiss for fixing.
- Pressing the keyboard shortcut for an already open sidebar window will close it (optionally)
- Thanks to Dismiss for adding, and Tom Prince for making it optional.
- Outguard now support spawning at a clicked location, after clicking on the outguard group.
- This can be enabled with the xml: spawn_location="Manual_ByClick", on the OutguardGroup.
- Outguard Party mod now sets all outguard to spawn by click.
- Outguard Party now increases number of beacons to spawn, and puts one at your homeworld.
- Outguard Party now has two new Outguard: Elder Breeders and Missile Strike.
- Thanks to Dismiss for adding.
- Outguard Party mod updated to version 2.0.
- Allow more customization of directly buildable things granted by mobile fleets or command stations.
- Some other related code refactoring for the build sidebar, as well.
- Thanks to Tom Prince for adding.
- Include commas in the per-second metal income on the resource bar.
- Thanks to Tom Prince for adding.
- Add a new "Hops From Here" galaxy map display mode.
- This will show the number of hops from the currently selected planet to every other planet.
- This implements this first part of #27268. I had this code laying around from some previous debugging, and was prompted by that issue to commit it to svn.
- Thanks to Tom Prince for adding.
- Update handling of deathwish's change to have Dire Guard Posts prevent building turrets.
- Make this a galaxy setting, rather than something controlled directly by the campaign harshness.
- Move the logic for this to `DirectBuild_FleetMembership` from the sidebar code itself. This removes the last bit of special-case logic there. (Note that currently this changes the behavior so that you can build Zenith Trader turrets on planets with guard posts).
- Show that building is prevented in place of the cap, and in the tooltip.
- Thanks to Tom Prince for updating.
- Change the post-hacking Exo-Strike strength multiplier to be a galaxy setting.
- When it was originally added, it was a setting, but was switched to be based on harshness (but leaving the now ineffecitve setting) in v3.903 (r16569) to allow it to vary between campaign types. Now that we can do that with settings switch it back to be a setting.
- This changes the value on challenger to x2 (from x2.5), since settings don't currently allow sliders for non-integer settings.
- Thanks to Tom Prince for updating.
- Change the Dire CPA multiplier to be a setting instead of being based on campaign harshness.
- Thanks to Tom Prince for updating.
- Remove the `can_upgrade_city_fed_fleets_directly` setting on player types.
- This can be controlled by setting `is_upgradeable_by_direct_science` on the flagships instead. Looking at the history, the former was added before the later worked, so get rid of the duplicate functionality now.
- Thanks to Tom Prince for updating.
- Change the Power Level multiplier for player factions to be a setting instead of being based on campaign harshness.
- Also, adjust the values for various campaign types per discussion with CRCGamer and Strategic Sage.
- Thanks to Tom Prince for updating.
- Improve display of settings changed by campaign type.
- Display that the setting is changed by the campaign type, when the default value is changed due to restricting the allowed range.
- In the tooltip for integer setting where the range is restricted by the campaign type, show that in the tooltip for the value.
- Thanks to Tom Prince for updating.
- Add an `instaexo` cheat command that triggers an exo wave immediately.
- You can specify a strength of the wave with `instaexo,200`.
- Thanks to Tom Prince for adding.
- Handle player forcefields being pushed by forcefields (such as forcefield guardians) the same as being pushed by a norris effect.
- Thanks to Tom Prince for updating.
- Show a skull in the resource bar and notification, when a Necromancer Phylactery is under attack.
- Thanks to Tom Prince for fixing.
- Don't display hacks that can't be done by the local player in entity tooltips.
- These are shown as "You Can Hack: ...", so only show those for which that is true.
- Thanks to Tom Prince for updating.
- Do more checks for what hacks can be done on a unit for tooltips.
- Check that the AI difficulty is appropriate (this removes the duplicate entries on the Super Terminal).
- Check that the hack isn't deprecated
- If the entity can't travel through wormholes, check that the hack can be done on its planet.
- Thanks to Tom Prince for updating.
- Fix to bottom of ship-groups with cloakers were slightly overlapping text.
- Thanks to Dismiss for fixing.
- Fixing 'you is your ally' when using icon view.
- Thanks to Dismiss for fixing.
- When showing damage, mark level becomes a subscript alongside ship count.
- Thanks to Dismiss for updating.
- Display gravity range as infinite, rather than some large number, when appropriate.
- Thanks to Tom Prince for updating.
- Improve the information in the Dyson Sphere tooltip.
- Always show the normal hop limit, even when the sphere is angry (but mention that the range is unbounded then).
- Show the total strength deployed, even if it is more than 100%. (This appears to happen after hacks, at least)
- Show the multiplier to production and strength for spheres. (This can be due to hacks or splintering spire)
- To simplify the previous calculation, expose properties with those multipliers.
- As part of this, rename `Percentage*ModifierFromExternalSources` to ``Added*MultiplierFromExternalSources`, to better reflect how it is used.
- Additionally, change the initial value for the modifiers from external sources to be 0 (instead of 1). This was causing spheres to start with 2x strength/production, which I could easily notice with the above additions.
- Thanks to Tom Prince for updating.
- For float type game settings, be more aggressive about rounding as specified.
- This makes it so you can more easily see if the value set is the default value. Otherwise, the value used for comparison with the default could be an arbitrary float.
- In particular, it is rounded when setting the temporary value in the settings menu, and when loaded from disk.
- Thanks to Tom Prince for updating.
- Change when voice attack notifications are generated. Fixes several bugs.
- Thanks to Tom Prince for fixing.
- Music playing improvements.
- Make it so that adaptive music can stop being exciting.
- Adjust the strength threshold for adaptive music to be 5 + AIP/20 as intended (rather than 5 + AIP/200).
- Adjust adaptive music even if paused. This is likely most relevant when loading a save game.
- Only use the adaptive music algorithm when playing in-game type music. This prevents it from affecting the victory screen music.
- Fix the inverted logic for discarding exciting tracks during peaceful states.
- Fix a couple of bugs that would cause the same track to play repeatedly:
- When discarding tracks that don't match adaptive music state:
- if the track did not match the desired state, it would discard it, but not try to play a new one. This isn't immediately noticable, since it would try to play a track next
- if the track *did* match the desired state, if it wasn't the last track in the playlist, it would discard it and try the next track in the playlist.
- This would lead to: it taking several frames to start playing music, as it discarded a number of matching and one non-matching track each frame.
- once a track was playing, it would repeat a number of times, as it discard the same things, only now each repeat rather than each frame (see the next bug).
- Every frame, after trying to find a track to play (and playing it if it found one), it would start music if it wasn't currently playing. This would cause the previously played track to play again. In combination with the previous bug, this would cause the same track to be played repeatedly while filtering through the playlist for an appropriate track to play one track at a time. This is part of the underlying cause of #20030/#21281.
- When discarding tracks that don't match adaptive music state:
- Make the "Play Tracks from AI War Classic" take effect as soon as the next track plays, rather than when the current playlist runs out. This undoes the changes from r5485, as the underlying bug that caused it to repeat the same track multiple times has been fixed.
- Thanks to Tom Prince for fixing!
- Add ability for AOE weapon systems to increase their targets hit count per Mark.
- Stick this on the system: maximum_number_of_targets_hit_per_shot_added_per_level
- Is tested, confirmed to work, shows up in UI, target hit count does change in practice. More testing by others would be ideal.
- Thanks to Puffin Emeritus for adding.
- For SpecialEntityType(s) that normally set IsCrippledInsteadOfDying (like flagships) true in code, don't do that if the entity xml explicitly asked not to.
- This allows things like Outguard flagships under your control to die permanently.
- Thanks to Dismiss for adding.
- Added ExternalFactionBaseInfo.GetDebugStateForDisplay so that mods can plug into the resource bar debug output.
- Thanks to Dismiss for adding.
- OutguardConstants.xml replaced with real (hidden) galaxy settings.
- Outguard Party shows hidden galaxy settings for spawn beacon at homeworld, number of outguard beacons, etc. including new setting to choose a specific outguard at that beacon and if you want to favor new outguard when seeding.
- Outguard Party has a new outguard 'Mobile Combat Super-Factory'.
- Thanks to Dismiss for updating.
- Fix Spire Destroyer Neural Net in Expert mode to produce destroyers instead of frigates.
- Thanks to Tom Prince for fixing.
- Change Spire City building contents to be updated even while paused.
- Thanks to Tom Prince for fixing.
- Add Expert Mode (which makes spire ships slowwer) for Spire-Infused Empire.
- Thanks to Tom Prince for adding!
- Fix race condition causing maruauders to spawn infinite outposts.
- This moves the logic for spawning new outposts, and picking planets to invade from LRP to the sim code.
- There is also some cleanup of the tracing code.
- Thanks to Tom Prince for fixing!
- Move a few more settings to AIWar2GalaxySettingQuickAccess.
- I added some instrumation to see how often each setting was accessed, and converted those that were accessed more that 100 times a second. There are a few settings with accesses a second 10k/s+ (`MethodicalFRD`, `HiddenGalaxy` and `GalaxyMinimalFogOfWar`) and the rest ar all 300/s+.
- These are definitely very rough numbers, and I didn't run the game for long, or with a lot going on, but the settings that make the 300/s cut-off seem at least somewhat stable.
- Thanks to Tom Prince for updating!
- Add some code for collecting and dumping setting access stats.
- This adds two new console commands "dumpstats" (which shows the reports the average acceses per second, and "resetstats" which resets them to zero. These report both galaxy settings and game settings.
- Thanks to Tom Prince for updating!
- check that outguard spawn request is valid on button click instead of later in the queued request this fixed getting into deploy outguard placement mode when it wasn't even valid
- Thanks to Dismiss for updating.
- Fix the Wormhole Invasion settings for the base game. Makes the 'Immediate Invasion' option work rather than defaulting to Send As Waves due to a wrong word being used.
- Thanks to Puffin Emeritus for fixing.
- Use different ship lines of Viral Shredder Copies generated by different lines of Viral Shredders.
- This allows one to have multiple lines of Viral Shredders in a single fleet, and each will grant the equivalent effective cap to line of copies.
- Note that this will cause all Viral Shredder Copies in existing save games to be destroyed.
- Thanks to Tom Prince for fixing.
- Make orbital turrets (and other things that orbit an entity) immune to tractors.
- While we are here, filter out everything that can never be tractored once, rather than per ship with tractors.
- Thanks to Tom Prince for fixing.
- Make the Tackle Drone Launcher only fire at mobile targets, given that the drone it launches can only fire at those.
- Thanks to Tom Prince for fixing.
- Clear cached max health of ship lines in player-style fleets when reusing the object.
- This was causing unclaimed fleets to randomly have their health increased, leading to being able to claim them immediately.
- Thanks to Lord Of Nothing for reproduction steps that allowed me to track this down, and to Tom Prince for fixing.
- Rename the "Immediate Invasion"/"Immediate Wormhole" Wormhole Invasion style to "Exogalactic Wormhole".
- The code and the XML didn't agree, so they weren't working. This was fixed in r18059 by changing the XML to match. However, since the setting is being changed, take this opportunity to use a more descriptive name.
- As far as I can tell, this is *less* immediate invasion than Planet Linking. This gives 500s warning, whereas Planet Linking gives 120s.
- Thanks to Tom Prince for fixing.
- Add a cheat command "spendaibudget,<ai number>,<budget type>" to cause the AI to try to spend that budget type immediately.
- Thanks to Tom Prince for adding.
- Instead of a new command, trigger spending AI budget by adding a ",now" to the existing aibudget command.
- Thanks to Tom Prince for adding.
- Track the strength of things that aren't always targetable.
- Some things (such as Deep-Space Anomaly Analyzers) are not automatically targeted (though players can manually target them, and factions can choose to target them). This can cause factions (like Dyson Spheres) to get stuck on planets with them, since they'll never be able to defeat the hostile strength on those worlds.
- By tracking the strength of these things, it is possible to discount those things in pathfinding/attack logic.
- BulkPathfinding was updated to use this, which allows Dyson Spheres to move on from planets with DSAAs.
- Thanks to Tom Prince for adding.
- Fix the incorrect subcategory heading being show in the game options sometimes.
- This was happening when there was subcategories with no visible options.
- Thanks to Tom Prince for fixing.
- After discussion with CRCGamer, make the damage multiplier always additive.
- Leave the setting allowing the speed multiplier to be handled additively or multiplicatively for now.
- Thanks to Tom Prince for updating.
Balance
- Default speed cap for human transports is 6,000. However the campaign settings for Expert was forcing an even lower default of 4,500. Now fixed to cap at 6,000 so Agile transports are actually a good deal in Expert too.
- Several adjustments were made to Reactive Dummy mines within DLC2 upon discovery that they had such a low metal cost they legitimately would self-build in under three seconds. Incredibly fiddly micro had far too much value considering how little they previously cost.
- Metal cost raised from 400 to 8000 per mine. Previously cost a tenth or less of other mine types per mine metal wise. Now tied with Kinetic Buffers another higher health utility mine for cost.
- Self-build rate adjusted so they self-construct without engineer assistance in about 15 seconds which is roughly twice as fast as most mines build without support in keeping with Raid tech. A supporting factory worth of engineers can still build these in a second or two.
- Added hardening so they take at least three hits to destroy from full health. Previously they could get blown up in only a single large hit under some circumstances. Still dies incredibly fast to damage from swarms however.
- Increased retaliation damage from 2x to 4x received since the amount of health that can be lost to any one attack is reduced.
- Adjustments made to multiple minefields after a corrective dive against an out of balance individual.
- Fragmenting Mines got a damage nerf of having an extra zero removed, they will no longer be capable of dealing just under 4m damage at mark 4 from a singular entity.
- The Greater Metabolism effect was pointed at an incorrect entry that only exists for regular Metabolism invalidating it. This has been corrected for both the Fragmenting Mine and the Frag Mines it spawns on death.
- Area Mines in the base game have been given a 50% damage bump at base. Damage per target hit at mark 1 increased from 1000 to 1500.
- Base game mines (Minefield, Area Mine, Paralysis) having overrides that only show up in DLC2 makes keeping track of certain things harder. And frankly the ability to upgrade mines with weapon techs in addition to the mine hull tech shouldn't be locked in this manner. These tech assignments moved into base game to match scaling for various entities being moved to base game previously.
- Additionally base game mines had their attack ranges rebalanced to match the ranges on the mines introduced in DLC2. Detonation trigger range increased from 1000 to 2500.
- The most basic Minefield exploded only ten times instead of five with DLC2 overrides in place. Moved to base game entity to make keeping track of what a mine actually is capable of easier.
- Fragmenting Mines got a damage nerf of having an extra zero removed, they will no longer be capable of dealing just under 4m damage at mark 4 from a singular entity.
- Royal version of the Retribution Guardian apparently missed the previous change making them heavy on shields instead of hull. This corrects that oversight.
- Base hull health: 240,000 -> 162,000
- Base shield health: 120,000 -> 198,000
- Report from Lord of Nothing that the Tachyon Eye had a ludicrously low attack range of only 9,000 meaning it wouldn't even cover a smaller system effectively.
- Primary weapon range increased to 24,000 to have more reasonable coverage.
- Secondary weapon added with full planet range that fires a few shots every few seconds. To make the eye being active at least somewhat hazardous in larger planetary regions.
- Some nerfs to how overpowered the Kindness Class enclaves of Neinzul Custodians are.
- Multiplicative speed bonuses have been replaced with a flat 50 plus additional 15 per mark level of speed per Kindness Enclave present.
- In comparison to the previous values a single max mark Kindness Enclave now moves at 1,340 instead of 1,392. A group of five at 1,900 versus 2,520. And a group of twenty at 4,000 instead of 23,353.
- Maximum damage bonus for a Mark 7 enclave reduced from 16% to 10%
- With incoming changes to also make the stacking bonuses additive instead of multiplicative this massively reduces the overwhelming firepower to considerably saner levels. Twenty ships bonuses stacking together being an extra 200% damage instead of a hot mess of an additional 1880% damage because of to the Nth power stacking.
- Multiplicative speed bonuses have been replaced with a flat 50 plus additional 15 per mark level of speed per Kindness Enclave present.
- Made a change to the Bouncer's AI ship groups so it would quit being a common enemy within Simple Ensemble AI unit pools.
- All AI Overlords and Galactic Control Ships are now immune to tractor beams.
- Brutal Guardian Lairs, by default, do not spawn (unless the AI difficulty or campaign type forces them to become active).
- Thanks for Apthorpe for reporting.
- There is now a galaxy setting to change the planetary multiplicative damage and speed amplification from an exponential growth to a linear growth.
- Normally, when a Mk7 Military Command Station with its 2.5x damage boost and an Amplifier with its 2x damage boost are on the same planet they combine to give the player 5x the normal damage. With this setting it goes down to being "only" 2.5x.
- This can be changed at any time if the player sees it fit, but at some point it may become forced-on, or will be removed entirely when the right balance has been struck.
Additional Win Conditions
- The game now has custom win conditions (in the Extended tab of the galaxy settings):
- Forced-on except for Sandbox mode is to defeat all hostile AIs.
- Optional (and default-off) at any campaign type are to also defeat all hostile minor factions as well as securing all player homeworlds.
- Minor factions can now have their own defeat conditions via an XML tag defeat_condition, which accepts the following:
- AllKingsDead -> All king units of this faction must die for it to count as defeated.
- HasNoMoreUndefeatedAllies -> All allies of this faction must be defeated, then it will automatically count as defeated as well. Note that allies with the same defeat condition do not count as they would otherwise keep each other alive indefinitely.
- OwnsNoPlanets -> This faction must be deprived of all planets to count as defeated.
- OwnsCoreTerritoryIfAnyAtAll -> This faction must be deprived of all planets outside it's core territory to count as defeated. Currently this is only used for the Zenith Architrave.
- HasNoMobileCombattantStrength -> All mobile combat units of this faction must die for it to count as defeated.
- HasNoCombattantStrength -> All combat units of this faction must die for it to count as defeated.
- HasNoStrength -> All units of this faction must die for it to count as defeated.
- None -> This faction can not truly enter a state of having been dealt with for any significant amount of time. This is used for factions like the Devourer Golem.
- By default factions now use:
- AllKingsDead -> AI factions.
- HasNoMobileCombattantStrength -> All Zombies
- HasNoCombattantStrength -> Zenith Miners
- HasNoStrength -> Marauders, Nanocaust, Dark Spire, normal and Enraged Macrophages, Scourge, Dark Zenith, Dark Zenith Svikari, Neinzul Migrants, all Neinzul Custodians, Neinzul Wild Hives, Sappers
- OwnsCoreTerritoryIfAnyAtAll -> Zenith Architrave
- Some factions such as Marauders may repeatedly enter and exit the state of being defeated, in which case the player must make sure that all their enemies are defeated at the same time.
- A debug option exists to see why the game is not granting victory right now.
- The intel tab has custom objectives for every type of faction defeat condition and will display those if the player has yet to complete them.
- This way it is now possible to set the game in such a way that, to completely win, the player must also defeat all other enemies.
- There is a new journal for defeating the last AI, but still having other factions to deal with.
Other Changes
- The AMUTranscribedExtensions for adding objects to ArcenCharacterBuffers can now handle being given null - and will write "Null" in this case.
- The ListOfLists class now can remove inner lists with RemoveInnerList(int OuterListIndex).
- Added the CostBasedShipSpawner:
- This is another port from AMU, in large parts rewritten from scratch. It's sort of a sibling of the EntityTypeDrawingBag, but specifically designed from the ground up to spawn ships, instead of just drawing entity types.
- It specifically supports mechanics such as being able to save up budget and then spending it randomly on the ship types contained. Ship types can be [auto-] assigned weights [based on ship stats such as strength, metal/energy costs, etc], and are itself stored in weighted tiers of ship (i.e. Drones | Strike Craft | Frigates).
- It also supports getting data its data from ETDBs, or fleets, or tags, and (in the future) most likely even more. This means it allows the XML-based setup of what factions may spawn with what frequency, with no changes in C# required.
- Its spawning has multiple options that make it easy to get the ships wanted in the place wanted and the state wanted from the get-go, including things such as state of matter, fireteam IDs, location on the planet, and naturally the planet and faction itself. Spawns also innately respect stacking limits.
- A detailed "users manual" is included as TEACHING_MOMENT In the comments of the source code at the start of the class.
- This can be used in mods, or for refits in Vanilla and DLC factions.
DZ Sidekick
- Add a setting to cause newly created ships to be rallied to their flagship
- This is a major QoL improvement
- Fix a bug where DZ Sidekick ships weren't being correctly added to your fleet
New Mod: DPS Hud by Dismiss
- Ever wonder if that ship with the bonus damage was really significant enough to matter?
- Open the 'At Local Planet' window and turn on the option at the bottom 'Show Ship Dps' to find out!
- Details:
- Damage is collected on a per-planet basis.
- Some time after fighting stops, damage will be reset for that planet.
- The number we show is technically not 'dps' it is the damage dealt in the current battle.
- Damage will appear duplicated for ships with more than one line at the planet. It was not actually dealt twice.
5.014 The Tom Show
(Released May 28th, 2022)
- Thanks to Tom Prince for literally everything in this particular release!
- Fix Dyson Sphere Hop Range hacks to actually increase range, instead of max strength.
- Track the number of times a Dyson Sphere has been hacked.
- Originally, this was skipped, since the underlying unit was switched out when the sphere was antagonized. Since that is no longer the case, we can track that information, which will lead to the hacking button having the correct info about how many times the hack can be done in new games.
- Don't destroy the dyson sphere once you've hacked it for ships the maximum number of times.
- For the Zenith Dyson Sphere grant ship line hack, check if the hack should be hidden before not possible.
- This prevents the hack showing up as not possible while the sphere is angry after the last possible hack, only to disappear after.
- Don't spawn Dark Zenith Library or Repository for Sidekicks.
- Update the squad registry when moving Dark Zenith Sidekick units into fleets.
- This prevents a bunch of log spam about mis-matched info.
- Show more accurate information about the effect of Dyson Sphere hacks.
- Show the percentage increase (which matches the text), rather than the total percentage of the current value.
- Don't round to integers early. This caused every hack after the first to show 100% (after the previous change, it would have always show 0% instead).
- Add a button to the debug menu to open the debug settings directly.
- I've often found my self on the debug menu wanting to change a debug setting.
- While I'm here, tweak the debug menu background, so that it lines up with the buttons.
- Fix the "Extra Allowed Distance For Adjacent-Seeded Item" option.
- This was not having the intended effect, since it was not being added to the distance from the specific factions homeworld things could spawn, just the distance from *any* homeworld.
- Remove accidental debug logging in selection window.
- Show actual ranges for infinite range turrets on non-player worlds in Expert mode.
- This removes the `does_not_draw_range_circle` setting for turrets, which was set automatically on infinite range turrets, and instead skips drawing the range circle when it is greater than the diameter of the gravwell on the planet.
- Show actual ranges of turrets on non-player planets in tooltips for expert mode.
- Prevent Necromancer from building things for the Zenith Trader.
- This is done by limiting all the default sidebar categories to player types with the HumanEmpire tag, which means the items will be hidden. This means mods could add stuff to be bought by necromancer from the Zenith Trader by adding them to new sidebar categories.
- Allow the Zenith Trader to be used in Necromancer only games again.
- Don't require `science_cost_per_time_unlocked` to be specified for tech upgrades with `is_considered_blank=true`.
- Also update Ohmu to use one of those techs for its direct upgrades.
- Update the building contents of Necropolises while paused.
- This also changes the unused `ExternalFleetBaseInfo.PerSecond_UpdateFleetData` to `.PerFrame_UpdateFleetData`.
- Adjust logic for command station pinning to also consider the station pinned on non-player owned worlds.
- Since after scrapping a command station the planet is longer owned by the player, the station needs to be pinned when the player doesn't own the planet.
5.013 Many Various
(Released May 26th, 2022)
- Fixed a nuclear warhead typo.
- Thanks to Dismiss for reporting.
- Fixed a small typo in Asteroid Mining Powerplant's description.
- Thanks to Друг for reporting.
- Added the Spymaster and the Outgard Spies to the Spy Network galaxy filter mode.
- Thanks to Dismiss for reporting.
- Rewrote hover text for "Disable music" in debug menu.
- Fixed one typo in AIP hover tooltip.
- Thanks to Pybro for reporting.
- Fix a bug where Minor-Faction allied Svikari might fail to join their allies.
- Thanks to Dismiss for reporting
- The AI Reserves now are explicitly disabled once the imperial spire is active
- Also make the imperial fleet less likely to get stuck on planets by needing to kill a command station they aren't allowed to shoot.
- Thanks to Mike for reporting
- The alert for a Dark Spire Locus spawning now only tells you the planet name if you are watching the planet. This matches with the notification behaviour
- Thanks to Lampshade for reporting
- Every 60 seconds the galaxy will try to relink itself; there were some reports of the zenith miners disconnecting the galaxy
- Thanks to Lampshade for reporting.
- Stop having reverse tractoring prevent traversing wormholes.
- Requested by zeus. Thanks to Tom Prince for implementing!
- Make the Spire Frigates provided by spire cities in expert mode have slower speed.
- This was already true of those provided by Frigate Neural Nets, and of all other spire ships. Note that this will only impact newly built cities in existing games.
- Thanks to Tom Prince for implementing!
- Relax some settings on harder campaigns, so harder settings can be picked.
- Thanks to Tom Prince for implementing!
- Fixing exception that occurred within hack response of an outguard beacon, if that beacon was on a planet never owned by the ai.
- Removed comment from copy-pasted code that is incorrect.
- Thanks to Dismiss for fixing!
- Make the bottom right selection window show entity tooltips for modular ships.
- This also makes selecting and deselecting them work as expected (selecting or deselecting by line, rather than by type).
- Thanks to Tom Prince for implementing!
- Entity Type Drawing Bag changes:
- Fixed a bug in the EntityTypeDrawingBag wwhere it potentially didn't not draw certain things correctly under certain circumstances.
- ETDBs can now also accept a weight_list in XML, which (by default) is 100 for each item inside. This will affect the items in the primary list, and allows each ETDB entry to be weighted differently if necessary. This multiplies through with potential sub-items:
- The new XML tags is_in_random_pick_mode (bool, default is false) and random_pick_count (integer, default 0, only gets used when in random pick mode). Random Pick Mode alters the ETDB from working off its internal list one index at a time to randomly picking X indices (can pick the same twice or more).
- I.e. an ETDB draws with a random pick count of 200 out of a list of 2 items, the first, weighted at 150, being a single unit by name (named "A"), and the second, weighted at 50, being a tag that 2 units in the game have (named "B" and "C"): There will be a 75% chance to choose A, and 12.5% chance for either B or C. Thus on average it will end up with 150 A, 25 B and 25 C.
- Thanks to SirLimbo for adding!
- Unit encyclopedia now supports search by 'Tech' eg, 'core' would show ships benefited by core
- Thanks to Dismiss for implementing!
- Show the total strength of ships in the sidebar tooltips, rather than the strength of a random stack.
- Thanks to Tom Prince for fixing!
- Take into account "AIP never reduces below" when calculating remaining AIP.
- Thanks to Tom Prince for fixing!
- Make `PlanetFaction.SwitchToFaction` use the right planetary fleet, when switching between faction for non-centerpieces.
- I think this is the underlying bug that was triggering #26327. This might also be somehow related to #26000, which I was trying to debug when I discovered this, but I could not reproduce that bug.
- Also, when both "Deep Logging On Object Histories" and "Show debug data in unit tooltips" are on, show that object history information in the tooltip.
- Thanks to Tom Prince for fixing!
Facciola007 Mods
- Several new mods by this new mod author!
- New fleet starting names mod, for more new fleet name options.
- Ark Starting Fleets mod that gives more options for starting out, and then a + version that is for using DLCs.
- Golem Starting Fleets mod that gives more options for starting out, and then a + version that is for using DLCs.
DZ Sidekick Mod
- DZ Sidekick now creates some economic and military at game start in svikari mode
- Otherwise a sidekick player might just sit there for 10 minutes until they have their first ships
- Add some defensive code to the game lobby for a DZ Sidekick related exception; this has proven hard to recreate
- Thanks to SilverLight for the report
5.012 Necromancer Balance
(Released May 20th, 2022)
- Now the Local Planet sidebar will properly display information when selecting an unexplored planet.
- Thanks to Eluthena for reporting.
- Fixed a graphical bug that showed unexplored planets, links and names when reloading previous saves that had the "hide unexplored planets" setting enabled.
- This should also fix similar bugs with planet names from previous campaigns appearing on new ones created during the same game session.
- Thanks to Zer0h1nder, Eluthena and Dismiss for reporting.
- Fixed a divide by null exception in Vengeance Generators code.
- Thanks to Dismiss for reporting.
- Custodians now have a maximum cap for both Enclaves and Custodians based on difficulty, instead of scaling to infinity and beyond.
- Fixed a typo in Neinzul Migrant Journal.
- Thanks to Lampshade for reporting.
- Add a setting to the DZ Sidekick to allow it to play without player control
- This is very convenient for solo-play
- Fixed an issue in the DS BaseInfo code where the faction was loaded before the actual XML data was read, causing the defaultEnergyThreshold to be 0, then EnergyThresholdForAttack be 0.
- Make it possible for mods to include fleet or planet name sets.
- Don't expect mod file to be in a `Configuration/` subdirecory when loading text files.
- Don't fail to load a text file sets if the subdirectory doesn't exist in the base game.
- Allow mods to add to base game name sets, rather than overriding them. If a mod wants to override a base game set, they can define a set with the same internal name but different subdirectory.
- Don't load text files from disabled mods.
- Thanks to Tom Prince for adding!
- Add an option to have much scarcer essence for Necromancer.
- Thanks to Tom Prince for adding!
- Avoid spawning outguard all stacked on one another.
- Previously, non-stationary outguard were all spawned directly on top of one another. Now they'll be spread out in a small area.
- Use `GetSafePlacementPoint_SpecificPoint` instead of just finding a random nearby point.
- Thanks to Dismiss for the initial patch, and Tom Prince for adding.
- Show protection radius ring for Protection Totem when building, as well as once it has been placed.
- Do this by adapting DrawRangeCircleForForcefield to support not having an entity, and use it when drawing the range circles for building; replacing the open-coded version that was being used there.
- Thanks to Tom Prince for adding!
- Rework how campaign harshness impacts galaxy settings.
- Orignally, when support was added for having different settings for campaign types, it was controlled by having `max_campaign_harshness_to_display` for when a setting should become fixed, then `fixed_value_if_above_campaign_harshness` or `fixed_option_if_above_campaign_harshness` to control the value.
- However, this has some limitations. You can only have one breakpoint, and the only thing you can do with that breakpoint is fix the value above (or below) that breakpoint.
- All those options have been removed, and instead, you can add `harshness_override` as children of `galaxy_setting`s. These can either have `is_sandbox="true"` or `min_campaign_harshness_to_apply` to control when they overrides apply.
- For integer settings, you can specify `default`, `min` and `max` to apply different defaults or ranges to the value. Or instead specify `fixed_value` to force a specific value. Similarly for boolean settings, you can specify `default` or `fixed_value`. Note that if `default`, `min` or `max` are unspecified, the values are taken from the base setting, rather than any less specific override.
- For string settings, you can specify `default_option` or `fixed_option`.
- You can also specify `disable_override` to remove an override. This is useful to be able to remove overrides in partial records, which is enough to handle the one existing mode that changes a galaxy setting. I'm not sure kind of other uses one might make of partial records for settings, so I'm not sure if `harshness_override` will have sensible behavior when used with that.
- This shouldn't change the behavior of any existing options, except that sandbox now defaults to the same gravity well sizes as Humanity Ascendant instead of Challenger+, but as this was a large change, there may be bugs.
- This doesn't change the similar attributes for special faction custom fields, though it would be possible to adapt this code there as well. Nor does it change the unused `use_alt_options_if_harshness_above` attribute.
- Big thanks to Tom Prince for this upgrade!
Necromancer
- The Necromancer is a very powerful faction, once figured out. Its strength is its mobility, its weakness is (supposed to be) its defenses. There have been enough reports of Necromancer static defenses overperforming and punching way above their weight. The catapult was the biggest offender, but the lightning tower was also too powerful. Speaking of too powerful, holy moley, revenants were busted! These are getting a heavy hit with the nerfhammer, along with the Decaying Mummies, who could stack a tremendous amount of attrition damage.
- Special thanks to Leftclickz for calling attention to a lot of these problems!
- Necromancer Catapult nerfs
- Reduced orbital speed by half, so AI can catch up with it more reliably
- Reduced base damage of catapults weapons. Primary weapon reduced from 500 to 400. Secondary Weapon reduced from 1,500 to 1,000
- Reduced primary weapons extra salvos per mark from 3 to 1
- Reduced the secondary weapons damage bonus against massive targets (mass 7tx and up) from x10 to x2
- The catapults were absolutely slaying Elderlings and were able to avoid AI ships too easily.
- Lightning Tower nerfs
- Base damage reduced from 1,750 to 1,500
- Bonus damage against high energy units reduced from x10 to x5
- Nerfs to Revenants
- Now only get 2 per home, reduced from 4
- No longer has sniper range attack, but still has an extremely long range attack
- Bonus damage against massive units (mass 7tx and up) reduced from x10 to x2
- About doubled metal cost so these don't build as quickly
- These units were grossly overperforming and the sniper range was far too abusable. These should still be quite formidable in players' hands, just less overtly broken
- Decaying Mummy MAX attrition damage divided by 10.
- These can stack too effectively
- Mid/High Tier Flagships metal cost significantly reduced so these repair faster
- Slight adjustments of metal costs to a variety of units for more consistency between tiers
- Fixed AI version of Elderlings having microscopic models
- Thanks to Dismiss for pointing this out
Templar
- Players continue to demonstrate the Necromancer can dominate against 10 Intensity AI/Templar/Elderlings, so additional buffs to Templar are warranted, which is the primary adversary to the Necromancer. The balance changes below are almost exclusively focused on buffing the "Elite" versions of ships, which come into play at certain AIP thresholds. While this does affect all Templar intensities, these AIP thresholds are quite high for the low to mid Templar intensities so they will have limited impact. Higher Templar intensities will definitely experience a much scarier force of Templar in general, as their thresholds are very low.
- Structures
- Elite Templar Encampment buffs: Health increased to x3 from x2 and damage increased to x3 from x2 compared to (base) Encampment
- Elite Templar Fastness buffs: Health increased to x3 from x2 and damage increased to x3 from x2 compared to (base) Fastness
- Elite Templar Castle buffs: Health increased to x3 from x2 and damage increased to x3 from x2 compared to (base) Castle
- Strikecraft Tier
- Elite Apprentice buff: Health increased to x3 from x2 compared to (base) Apprentice
- Elite Page buff: Health increased to x3 from x2 compared to (base) Page
- Elite Squire buff: Health increased to x3 from x2 compared to (base) Squire
- Guardian Tier
- Inquisitor shields increased from 12K to 13K (to be equal to half its hull)
- Elite Inquisitor buff: Health increased to x3 from x2 compared to (base) Inquisitor
- Elite Exorcist buff: Health increased to x4 from x3 compared to (base) exorcist
- Elite Paladin buff: Health increased to x4 from x2.8 compared to (base) Paladin
- Elite Knights buff: Health increased to x4 from x3 compared to (base) knight
- Wave Leaders
- Blessed (Elite) Herald buffs:
- Min mark now mark 3
- Health increased to x3 from x2 compared to (base) Herald
- Damage increased to x2 from x1.5 compared to (base) Herald
- Holy (Elite) Prophet buffs:
- Health increased to x3 from x2 compared to (base) Prophet
- Damage increased to x2 from x1.5 compared to (base) Prophet
- Divine (Elite) Harbinger buffs:
- Health increased to x3 from x2 compared to (base) Harbinger
- Damage increased to x2 from x1.5 compared to (base) Harbinger
- Blessed (Elite) Herald buffs:
- Misc.
- Fixed Hospitaler bonus damage to refer to enemies' time on the planet instead of its own time
- Thanks to Lampshade for catching this
- Fixed Hospitaler bonus damage to refer to enemies' time on the planet instead of its own time
Dark Zenith changes
- The higher intensity DZ's were arguably weaker than intensity 7, so these are getting some strong buffs to their economy. The DZ at 10 should really go toe to toe with the AI, so these changes are aimed at making it stronger overall
- Added some missing xml modifiers to income when Fallen Spire is enabled. Previously, this was only added to intensity 10, so now there the Fallen Spire should have a harder time in general when the Dark Zenith are enabled
- Jormugander gives reduced science, from 5K to 1.5K
- The Dark Zenith planets still provide extra science without the AIP cost. There's just too much science to go around when the DZ is on, and this was actually making multiple Jormugandur (diff 9+) easier rather than harder.
- Intensities 8+ have some buffs to income and invasion. They also have better harvesting and infrastructure
5.011 Autobuild And Home Ark Strength
(Released May 17th, 2022)
- Added auto-building for the 4 types of hangars to DLC 2.
- Thanks to SirLimbo for adding.
- The experimental tooltip now has completely rewritten code for displaying the invulnerability based on other ships or structures existing in the galaxy that is much shorter, and even shows in the encyclopedia.
- Thanks to Dismiss for requesting, and SirLimbo for fixing. Further feedback may be necessary.
- Fixed an exception popup when trying to swap a single fleet line. The functionality itsel was fine, the text line for the fleet entry caused it.
- Thanks to Pybro, Puffin, Haeris, Chuito12 and Matto for reporting, and SirLimbo for fixing.
- Make any fleet centerpiece obey IsFleetFlagshipAllowedToUseMovementModes.
- In particular, this impacts battlestations and citadels.
- Thanks to Tom Prince for fixing.
- Don't reduce the constuction speed of Gyrn, the Voidhome, when used as a home ark.
- It appears that the construction speed for the home ark was added along with all the other home arks, and wasn't intended to override the base arks consturction speed.
- Thanks to AyeMakSicur for suggesting, and Tom Prince for fixing.
- Give Ark Empire's Home Arks the same mark scaling style as normal Arks.
- When they were originally added, they got the default scaling style instead.
- Thanks to AyeMakSicur for pointing out their scaling was different, and Tom Prince for fixing.
- Fix to another exception in tooltips from recent build changes.
- Thanks to Tom Prince for fixing.
DZ Sidekick enhancements
- The initial spawning option to get the full invasion is now "Full Invasion", not "Immediate"
- The DZ now invade with significantly fewer ships, and now get mini-Jormugandr flagships instead of the full monster.
- The flagships upgrade with science, and the player gets science from Fimbulwintering a planet.
- When a DZ sidekick unit is created, it will join the fleet of the nearest flagship, and must be manually given orders to travel to the flagship.
- This fleet management setup is pretty hacky, but seems to not break things. This is a mod, after all.
5.010 Client Message Order
(Released May 14th, 2022)
- Put in a pair of fixes to prevent issues with the host getting misordered confirmations of frame progress from the a network client, and then permanently stalling out in multiplayer until the client disconnected and reconnected.
- This should fix all of the related issues to this specific problem, but if there are more culprits than just these two, then it could still occur. That said, one of these was a very clear smoking gun, so to speak, that was not properly handling the case of "what happens if message B gets processed before message A".
- Thanks to Ushgarak for the discussion that led to finding this, and to all those players who verified for us with the testing tools that these were not threading deadlocks on the client.
- Include the health of transported ships in the current health shown in the UI.
- This prevents the health percentage shown in the UI from dropping as soon as you load a transport.
- Thanks to Tom Prince for the fix!
- Add a helper for creating hacking choices popouts.
- This makes it easier to implement hacks that have multiple options, as well as hack that show only one on the sidebar when there are multiple entities that can be hacked.
- This converts a number of hacks:
- Outguard Becaons
- Sabatoge/Reprogram
- Necromancer Rift
- This also makes the Transform and Track elderling hack use a popout, when there are multiple elderlings on a planet.
- Thanks to Tom Prince for the updates!
- Stop showing which elderling a hack is against in the sidebar tooltip.
- Since it could be against multiple different targets, the value shown is incorrect.
- Thanks to Tom Prince for the fix!
Balance
- Balance adjustment to two wards. Namely the Stinger and Sabot wards.
- Sabot Ward base damage doubled, given that its damage is absolutely horrid unless its condition is being met having the reward should be worth the energy cost of the maintaining the line.
- Stinger Ward was horribly OP and has taken a couple well deserved nerf bat hits to the knees.
- Energy cost per Stinger Ward increased from 200 to 750. The fact a fully built line only cost 6,000 energy made these insanely cheap to maintain. Full deployment cost is now 22,500 energy.
- Damage output of Stinger Wards cut by 2/3. Sorry folks but the sustained DPS under ideal conditions at Mark 4 exceeding a half million DPS was a bit much! It is still exceptionally good. Just not quite as oppressively so.
- Lowered damage bonus against low albedo from x4 to x3.
- Railpod energy cost per ship reduced from 300 to 150. This ship variant has a line size over two times larger than the base unit it is forked from. This reduces the 91,800 energy cost of a full size Mark 4 line down to 45,900 energy instead. The real cost of using these should stay the metal and not have an additional energy tax on top as well.
- Balance adjustment to two large turrets from DLC1.
- Added a target cap to the Fuseball Turret of 30.
- Prevents the damage from any one shot from diluting too far past the point where it would fail to kill even strikecraft.
- Holocene Missile Launcher now fires in salvos of three every 17s instead just once.
- Number of targets effected in any one shot reduced from 25 to 7. While yes this does lower its maximum paper damage this is warranted because the multiple projectiles significantly increases reliability and allows it to potentially multi-hit the same target several times if it is part of a clustered group.
- Added a target cap to the Fuseball Turret of 30.
- The Sabot Eye was surprisingly weak against what it was supposed to deal with. Between a non-planetary coverage range and only a half million DPS versus valid targets and less than 5,000 DPS against all else it often wouldn't serve as a valid deterrent given its single target at a time nature even to what it should have been a strong threat against. Golems and high mark Spire ships laughed at it.
- Against valid targets the Sabot Eye now deals in excess of five million DPS. No Mr. Golem you can't just shrug that off like nothing is happening.
- Range of the Sabot weapon system is now full planetary coverage. Sitting outside of its range and just reducing a large gravity well with sniper frigates free of charge is no longer an option.
5.009 Zeusathon II And DZ Sidekicks
(Released May 12th, 2022)
- Make a number of improvements to the hacking difficulty estimate
- Thanks to Tim for a save game to reproduce the problem
- In the Experimental Tooltip added a slight offset between the hull and shield values, and the strenght/AIP and speed values, to prevent the hull percentages from overlapping in certain cases.
- Drone Gun UI overhaul
- Cruisers with drone guns now display info on tooltip
- Frigates and turrets with drone guns now display info on tooltip
- Zenith Architrave units with drone guns now display info on tooltip
- Dark Zenith units with drone guns now display info on tooltip
- Outguard units with drone guns now display info on tooltip
- ODSS(like Drone Stockade) units with drone guns now display info on tooltip
- Probably missed a few, but this should cover the vast majority of units with drone guns
- Fixed AI feeble guardian model to be properly scaled
- Thanks to Dismiss for the tip
- Fix several bugs with DZ linking to the galaxy; one where they would never link in Spectator games, and one where they would not link if they had the wrong set of allies
- Thanks to mjcsalisbury and Chuito12 for reporting
- The AI Reserves won't show up to attack planets without any mobile strength; turrets or necromancer guard posts are uninteresting to the reserves
- Thanks to Chuito12 and Hazukichan (from steam) for the reports
- Give the Dark Spire Locus an icon overlay so it can easily be distinguished from a regular VG
- Thanks to Dismiss for reporting
- Removed Terminii icon from showing up on the galaxy map
- DZ can get like 5 per planet, so this was just too much clutter
- Renamed the DZ Library (the Cruiser version) into the DZ Repository, to keep these distinct
- Added a pathetical color to the different types of DZ Terminii
- These were originally just color resources, and these colors are far easier to remember than the lore names (which are still there)
- Fix a bug where Doomsday Mode wouldn't do anything
- Thanks to Smidlee for reporting
- Fix a problem with the date formatting in the metal spending popup in the resource bar
- Thanks to M for reporting
- Clarify the Dark Spire spelling of Specter
- Thanks to Lord Of Nothing for reporting
- Fix some typos in the necromancer anplifier hovertexts.
- Thanks to Lord Of Nothing for reporting
- Fix a tyope in the halberd corvette description
- Thanks to Dismiss for reporting
- Fix some exceptions with new strength calculations for rift hacks.
- Thanks to Tom Prince for fixing!
- Show the structure, as well as the ship granted by a rift hack.
- There is relevant information about the building, that you often want to know when picking a hack, so show it as well.
- Thanks to Tom Prince for updating!
- Some minor improvements to city structure tooltips.
- Thanks to Tom Prince for updating!
- Only show "Summon Transcendant Elderling" hack once, since it does not matter which elderling is targeted.
- Thanks to Tom Prince for updating!
- Several code refactors for clarity and later extensibility.
- Thanks to Tom Prince for updating!
- Track how many times an elderling has leveled up, across tiers.
- For existing games, guess that the elderling started at the current tier.
- This will be used to provide an option to base level off this number, rather than tier and mark.
- Thanks to Tom Prince for updating!
- Fix per-fleet necromancer upgrades for old save games.
- In older versions, that field was not cleared between games, so could contain garbage. However, we can recreate that information based on data on the faction.
- Thanks to Tom Prince for fixing!
- Show ship line cap for Vengeful Wight Bodyguard, and *not* Revived Vengeful Wights.
- Thanks to Tom Prince for fixing!
- Increase the wight cap increase granted by the Infectious Wight Home to 10 (to match the other starter wights).
- Thanks to Tom Prince for updating!
- Despawn instead of kill the original Lair, when spawning a Royal Brutal Guardian Lair.
- This was causing AIP gain before the beginning of the game.
- Thanks to Tom Prince for fixing!
- Add (unbound) keybindings for dumping/aborting all threads.
- I've tried to use the dump option, when threads get delayed, but not for long enough to bring up the debug menu.
- Thanks to Tom Prince for updating!
Weapon/Sound FX
- Added a "NecroticRay" shot type, applied to Revenant's secondary weapon, and the Plagueswarm Elderling/Flagship
- Added a "CorrosiveBlast" shot type and added it to the Corrosive Frigate/Guardian/Guardpost
- Added a "Repulsor" shot type and added it to the Bouncer (strikecraft), the Repulsor Ward, and the Repulsor modules for the Necromancer Necropoloeis
- Many weapons were using redundant sound FX. Changed the following to give more variety
- "PikeShot_Gold" now uses Laser2_Firing / Laser2_Hitting
- "Sabot" now uses ArmorPiercingShell_Large_Firing / ArmorPiercingShell_Large_Hitting
- "Ambush" now uses ArmorPiercingShell_Medium_Firing / ArmorPiercingShell_Medium_Hitting
- "ImplosionCannon" now uses Artillery_Firing / Artillery_Hitting
- "ElegantCurl" now uses LaserCluster_Firing / LaserCluster_Hitting
- "DoubleShot_Red" and "DoubleShot_Green" now use BasicShell2_Firing / BasicShell2_Hitting
- Now every weapon sound available sound effect appears in game!
Balance
- Balance tweaks to corrosive dealing units:
- Reduced the AOE of the corrosive finale attacks for the corrosive guardian/frigate, from 3,500 to 1,500
- Corrosive Frigate/Gradian and Plagueswarm Eldering/Flagship no longer do full corrosive damage with their respective primary weapons. Instead, ~90% of their damage is corrosive and the remainder is fusion damage
- Revenant now also gets this change
- This is so they can actually kill things with their primary weapons
- Corrosive Frigate Nerfs:
- Increased metal cost from 21.5K to 75K.
- Removed the damage multiplier and increased its damage by x3 [not x4, so this is a nerf]
- added a strength multiplier of 1.5
- These frigates were grossly overperforming. Their metal cost was cheaper than most frigates but this was allowing for extremely cheesy shenanigans. You are still able to do so, but it will cost you a lot more.
- When a ship in a stack dies with corrosion damage, the next ship down inherits a very small portion of that damage
- Previously it would inherit all the corrosion damage, so a lot of corrosion damage was very effective against large stacks of low-hull ships
- DZ Harpoons and ZA Bolas have health reduced from 10K to 2K. Hardened resistance reduced from 5% to 20% (from at least 20 shots to at least 5 shots to kill)
- These are intended to be intercepted by weapon fire but were too tanky previously
- Samurai Frigate and Katanas bonus damage triggers at armor thickness of 60 mm from 80mm.
- So these are less universal counters to guardposts
- Reduced the number of orbital turrets from Orbital Dire Guardposts from 8 to 5
- Increased the knockback of the Bouncer, Repulsor ward, and Repulsor Rocket module for Necropoloeis
Zenith Architrave
- The Architrave are getting a significant balance pass, with the overall goal of making this faction an interesting but manageable obstacle on default 5 and lower intensities, to a gradually more formidable adversary at 6+ intensities. Many have observed that the best window to interact with the ZA was in the first 30 minutes, before their fortifications had a time to develop. So these changes are broadly targeted at reducing the amount of static defenses and increasing the time it takes for a ZA planet to level up.
- ZA Spawner burst cooldown increased from 30 to 60 seconds. Damage reduced from 2,500 to 1,500
- Since these are invulnerable until the other ZA defenses are killed, these were just too impactful
- Reduced the defensive and utility structures per mark level of the ZA portal/spawner across intensities
- These are primarily aimed at the lower intensity ZA, to encourage more aggression on their territory. The higher intensities were also brought down, as they were getting virtually impregnable
- ZA portal/spawner mark up interval extended:
- Intensities 1-5 now take 20 minutes to mark up. (Intensity 5 used to be 750 seconds [12.5 min])
- Intensity 6 increased from 650 seconds to 900 seconds
- Intensity 7 increased from 600 seconds to 900 seconds
- Intensity 8 increased from 500 seconds to 800 seconds
- Intensity 9 increased from 500 seconds to 700 seconds
- Intensity 10 increased from 450 seconds to 600 seconds
- Players noted that the best window to really interact with the ZA is in the first 30 minutes of a game. This is undesirable; this faction should offer much more interaction possibilities. This change along with the defenses means the ZA takes much longer to fortify a planet and the defensive cieling has been significantly lowered.
- ZA income when it controls very few planets increased. Gets an additive increase to income every interval
- Intenisty 1 does not apply
- Intensities 2-5, inverval now every 60 seconds, income +5
- Intensities 5-7 inverval now every 40 seconds, income +2
- Intensities 8-10 interval now every 20 seconds, income +1
- Lower ZA intensities could often be stonewalled and never expand. This should help them to more consistently take their first territory
- Peacetime between ZA Pioneers reduced across intensities.
- These were spawning too infrequently, and these are the primary way the ZA Civil War gets triggered
- Time before ZA Territory Expansion changes
- Intensity 1 from 1800 to 1500
- Intensity 2 from 1700 to 1500
- Intensity 3 from 1600 to 1500
- Intensity 4 from 1500 to 1020
- Intensity 5 from 300 to 900
- Intensity 6 from 900 to 840
- Intensity 7 from 600 to 780
- Intensity 8 from 600 to 720
- Intensity 9 from 600 to 600
- Intensity 10 from 550 to 600
- Looks like Intensity 5 was previously more expansive than some of the higher intensities! Lower intensities (1-4) expand faster than before, since they were taking a long time to expand. Intensities 5-10 now have a gradual decline in wait time before expanding
Necromancer/Templar/Elderlings
- The Necromancer is taking some nerfs. It's becoming clear that the necromancer is a bit too powerful in the hands of skilled or very low AIP players. The goal is not to cause too much chaos for players at difficulties <= 6, and primarily to make it harder for difficulties >= 8.
- Phylactery and Major Necropolis change:
- Skeleton cap from 100 to 50; increased per mark reduced from 10 to 5
- Wight cap from 40 to 20
- Hack to increase caps of Skeletons reduced:
- Warrior/Archer/Rogue reduced from 10 to 5
- Mage from 7 to 2
- Lord from 4 to 1
- AIP for hacking a Mummy-home from the rift increased from 3 to 4
- Increased the strength rating of the Necropoloeis, and the non-totem defensive structures
- This doesn't change their stats, just makes the AI less likely to attack with an insufficient force
- Revived Skeleton Lord attritions properly and has 75% health/damage of its original form
- Templar intensities 8-10 now face elite Templar units sooner. Some other buffs to these intensities
- Reports from veteran players showed that these intensities need to be bumped up. These changes are made to not upset the easier intensities
- Sacrificial Elderlings now incur AIP given that they essentially grant the player a Golem transformation. Scales with the type of Elderling
- Low tier (Cyclopean, Wrathful, Slothful) incur 5 AIP
- Mid tier (Envious, Accursed, Decadent) incur 10 AIP
- High Tier (Blasphemous, N.Drake, Plagueswarm) incur 15 AIP
- Transcendent incurs 25 AIP
- These are still a steal at these AIP levels. You only need to kill one of any type to be able to transform any number of flagships into that variety. These incur less AIP gain than claiming a Destroyer/Cruiser! Now that I say that, these values seem pretty low... but these are good for now
- Updated "Transform Elderling" hack to warn about the AIP gain from killing a sacrificial elderling
- Skeleton Archer changes
- Base weapon reduced from 500 to 300, now grants 1 weapon point per attack, up to 4
- Gains "Critical Strike" attack. Deals 300 damage every 17 seconds, dealing an additional x2 per weapon point (up to x8 damage with 4 points)
- Gains damage resistance for the first 5 seconds on the planet, reducing incoming damage to 20%. This is to offset how vulnerable newly created archers are. The other base skeletons also have a defensive feature, so this makes them more on par with the others
- AI-Allied Elderlings now mark up much more quickly for Challenger games. This is intended for human empire games, since Necromancer does not support Challenger.
- Adjusted the AI Cost for Transcendental Elderlings to be more consistent with their power level
- Increased the metal cost for skeletons and wights. The only impact this has is to slow down their construction rate. These were previously churning out of shipyards almost instantly, allowing for players to spam huge amounts of reinforcements during a fight.
- Vengeful Wight nerfs
- Base damage reduced from 4,000 to 3,000
- Electrotoxic damage reduced from 100% to 25%
- Fixed the Decadent Flagships knockback scaling to be negative, as this weapon is supposed to reel ships in
- Thanks to Chuito12 for the report
- Feeble Elderling starting Essence increased from 22 to 28, essence per mark decreased from 3 to 2
- Mark 7 still the same amount of essence, but this makes killing a lower mark Elderling contributes more. Early game essence can be scarce and stall the early game
- Mid Tier Elderlings (Decadent/Envious/Accursed) give reduced starting essence, from 15 to 10 at Mark 1 (still +2 per mark)
- High Tier Elderlings (Blasphemous/N.Drake/Plagueswarm) give reduced essence, from 27 to 20, and reduced per mark increase from 2 to 1
- In the mid to late game, essence is no longer a scarce resource. These changes to mid and high tier elderlings will have a marginal impact, but we're going to take this essence reduction slowly, as its better that its too abundant than too scarce
UI Fleet strength/count/health fixes
- This should help the UI be both correct and once again uniform in the way that the UI calculates various fleet stats.
- Fixed 2 bugs in the bottom-right selected fleets/ships list:
- When only a single ship is selected all its content's strength now also counts. Previously a flagship with lots of contents would still only display the strength of itself.
- The strength of fleet leaders is now no longer counted twice if their entire fleet is selected.
- Additionally the selected strength is now displayed whenever it is above 0, in truncated form, which means with potential decimals and no longer always rounded down.
- Wards now count as mobile strength if the parent entity or centerpiece they orbit around is mobile, alive and can move through wormholes.
- Wards now also count as threat if the centerpiece counts as threat.
- The GetCurrentTotalCount_ForUIOnly() method is now smart enough to realize that some things may die to remains, and thorough enough to not count those.
- Replaced a large number of UI methods for strength of fleet calculations with the updated variants. This should fix even more cases where the strength of fleets was displayed divergent to what truly was there.
- Did the same with functions that displayed the current/max count/health of all the ships in fleets.
- Fixed a bug in the experimental tooltip where centerpieces and potential drones were only ever counted at the player's base tech level, often underestimating their strength by great amounts.
Badger Mod: Dark Zenith Sidekick
- This mod provides a human playable version of the Dark Zenith. This requires another Player Empire, just like the Necromancer Sidekick.
- You control the Dark Zenith military forces only; their economy runs without your control (controlling the economy would be very tedious and unfun)
- Solo-Play is better supported than the necromancer sidekick, since you can set the DZ faction to play "as it would without your control"
- As a side bonus: adding support for a human-playable version of many other factions (Scourge, Nanocaust, Marauders....) should be simple if you follow this template
- As a mod, this is not officially supported by Arcen
5.008 Xenophiles And Outguard
(Released May 7th, 2022)
- Took the nerfbat to the brutal Skirmisher AI over its excessive count of dire guard posts. It was showing up in games with a grand total of 24! Now reduced to a saner 15.
- Dire GP on homeworld 6 -> 5
- Dire GP on bastion worlds 6 -> 5
- Number of bastion worlds 3 -> 2
- Thanks to CRCGamer for the balance!
- Add initial prototype of displaying drone gun information in tool tips.
- Currently, this shouldn't be visible, since they all currently have system_is_hidden_for_ui="true" set, but is available for testing.
- Thanks to Tom Prince for the fix.
Necromancer
- N. Flagships can no longer be scrapped!
- Bone Dragon buffs
- Now has Regeneration. Full health (from 1) in 3 minutes
- hexes from 5 to 4
- Cap per home from 1 to 2
- Min Mark for Necropolis from 5 to 4
- These were basically too costly to ever justify and required too much investment before they ever paid off. They were too dependent on Igors to heal outside of player territory too. Hopefully, these are much more enticing picks now
- Necropoloeis Summoning Module changes:
- All varieties of summons now use a variant without a tech, so they markup with the Necropoloeis
- Summon caged skeleton warriors (5 every 6 seconds) is now summon base skeletons (15 every 9 seconds)
- Skull Pile should be better about launching full salvo of drones per interval
- Skull Pile Caged skeletons now all use the Tower Defense tech
- Don't seed initial metal harvesters as owned by a necromance empire.
- Thanks to Tom Prince for the fix.
- Mark Igor's as engineers.
- This makes them selectable by the key press (unbound by default) to select them.
- This also cause the mark scale style to be changed, which is a stat buff to them.
- Thanks to Tom Prince for the fix.
- Prevent Haunted/Desecrated Keeps and Necromancer Guardposts from building drones while they are constructing.
- This also prevents any other self-build structures from doing so, though I'm not sure there are any currently.
- Thanks to Tom Prince for the fix.
- Adjust necromancer upgrade for Bone Dragon to match minimum necropolis mark required to build it.
- Thanks to Tom Prince for the fix.
Brutal Guardians
- Brutal Guardians:
- The amount of Brutal Guardian Lairs in the galaxy now has a slider instead of single on/off switch, spawning anywhere from 0 to 6 in the galaxy (no longer 3 per AI), but always 3 if an AI of difficulty 8+ is present or starting with Expert mode.
- Brutal Guardian Lairs now orbit the planet at 0.5°/s, and will spawn at the very outskirts of the planet.
- Brutal Warp Gate Guardians now have a 300 second cooldown between waves instead of 1800 seconds. It was never intended to be this long of a duration.
- For Royal AIs their Brutal Guardian Lairs are exchanged for Royal Brutal Guardian Lairs, which pump out the even-more-dreadful Royal Brutal Guardians. In addition to being twice as tough to destroy the Lair grants 750 instead of 500 science, and 25 instead of 15 hacking points - but also cost 20 instead of 15 AIP to destroy.
- Royal Brutal Guardians have 2x the health and damage of their normal variants for combat models, and 1.5x the health and damage for "special mechanic" models.
Bugfixes
- Fix to lobby being broken in the prior build (causing us to roll back).
- Big thanks to Tom Prince for finding the one missing character that led to this.
- Fixed a bug where the AI Overlords would not display their AIP on death when the planetary AIP had already been "used up" (possibly by Dire Guard Posts).
- Thanks to André Luiz Galvão Rodrigues for reporting with a helpful test save.
- Fixed a bug in the experimental tooltip where capturable fleets would not show the mark level of their ships correctly.
- Prevent repairs to entities that haven't been claimed.
- This allowed engineers to repair things like unclaimed flagships/golems on hostile planets.
- This also caused engineers to double-dip, by claimg and repairing at the same time, on
- friendly planets, and potentially with different metal cost for each.
- Thanks to Tom Prince for the fix.
- When firing a salvo with multiple shots from a drone gun, create a stack of the appropriate size.
- Thanks to Tom Prince for the fix.
- Don't include `MULTI-SHOT` line in drone gun hover text.
- Thanks to Tom Prince for the fix.
- Prevent empty ship lines from triggering Venators.
- This affects Necromancer, as their fleets have every possible ship line, with 0 ship cap.
- Thanks to Tom Prince for the fix.
Xenophile update - Worth the CPU load, by ArnaudB
Changes to Zenith Dyson Sphere
- A huge set of changes to the Zenith Dyson Sphere. It's still medium impact, but can be messed with to dramatically change the game.
- Reduced ships hack duration from 60 to 20 seconds. Reduced hacking response boost for hacking the same sphere from ships from 2.0 to 1.2. Lowered cost increase on hostile worlds from 1.7 to 1.5.
- Increased ship hack cost from 12 to 20 as, due to sphere antagonize swap, the cost doesn't rise with multiple ship hacks. It does correctly prevent you from ship hacking more than three times.
- Reduced Strength/MaxStrength/Range from 180 seconds to 20 seconds. Costs increased from 15 to 20.
- The Sphere will be angry for a while after hacks, thus long hack time is unnecessary. Reduced response to encourage using ships of a faction that cost CPU load.
- Changed Budget hack increase to +2x multiplier per hack, from 0.2x to 2.0x at intensity 1-10. (This means +200% ships production per second per budget hack.)
- Changed Max Strength hack increase to +2x multiplier per hack, from 0.2 to 2.0x at intensity 1-10. (This means +200% max ships capacity per max strength hack)
- Increased Range hack still increase range by 1.
- Tests showed +2x multiplier was a good value to get some impact. Note that the AI will send forces against minor forces, including the Spheres. The AI is perfectly capable of locking down the Dyson if you don't assist it, even with multiple hacks.
- budget multiplier when Sphere below 10% capacity increased to 3x, from 1.25x to 3.0x at intensity 1-10. Added warning in Budget hack.
- It's more capable of fighting off invaders, including the player.
- Changed budget and max strength at all difficulty. Old intensity 5 is now intensity 3.
- Reduced by half the Budget/MaxStrength increase per hour, doubled Budget/MaxStrength increase per 100 AIP.
- This should make the Sphere much more reactive to how the player actually play, especially during shorter games.
- Antagonizer now starts appearing at intensity 5 from 7. Cooldown between antagonizers increased from 2 hours to 2h40. Increased base timer before antagonizer trigger its effect from 60 seconds to 120 seconds, plus 30 seconds per hop from Sphere. Antagonizer is now visually twice as big.
- This is the method for the AI to punish players who recklessly invest in the Sphere. Given the Sphere is now much more capable and can be pushed further, timer and interval have been increased to give more breathing room to players.
Changes to Dyson Ships
- Dyson Defender now has x2 damage against target with 50% hull or more. Cost for AI lowered to make the Dyson spawn them as primary.
- Dyson Sentinel now has x3 damage against 2tx and above (including turrets!!!) and more range. It's slightly more expensive for the AI.
- Dyson Bulwark now has a weapon jamming AOE instead of its AOE grenade. Its Pulse Laser is now a slow-firing, high damage weapon with 60% pierce and 2x damage against target with 90% hull or more. It's significantly more expensive for the AI to build.
- All those changes should make Dyson Ships far more capable in both foes and allies hands. Each ship offers a distinct benefit for hacking, and synergize together. The Bulwark's finisher will make nesting turrets next to the Dyson Sphere a far costlier proposition.
- All Dyson Ships start at Mark 2. 50% more performance friendly. This technically makes Spheres not stronger, since Sphere fleet is capped by Strength.
Changes to Dark Spire
- More peformance sanity, scaling intensity and interesting hacks.
- Conversion ratio cap at low/mid/high intensity reduced from 100/120/500 to 80/140/200. This should make intensity scales sanely, and it'll save a lot of performance at high intensity.
- Reduced ships hack duration from 120 to 60 seconds. Reduced hacking response boost for hacking the same generator from ships from 2.8 to 1.4. Lowered cost increase on hostile worlds from 1.7 to 1.5.
- Description now mentions the permanent energy income gain, to help players link Dark Spire disaster with their own actions.
- Reduced Provoke Vengeance Strike hack duration to 10 seconds from 300, reduced cost from 20 to 5.
- It was a useless hack that was never used, given the time and cost for a "dubious" effect. Now you can use this to make messes. Satisfaction not guaranteed.
- Render VG vulnerable hack duration increased to 360 seconds from 250. Just so triple ship hacks plus vulnerable VG isn't too easy to pull off.
Change to Dark Spire ships
- reduced AI cost for Wraith to 200 from 300, for Phantom to 250 from 300, Specter from 900 to 1600, Eidolon from 1200 to 5400.
- This should make the Dark Spire fleets more diverse. It should cut down on Eidolon spam : it was the cost-effective ship of the Dark Spire by over ten times, on top of having the highest mark. This is still the best deal for the Dark Spire, but it's no longer breaking all scales.
- Starting Mark of Wraith and Phantom increased to 3 from 1. Starting Mark of Specter increased to 4 from 3.
- Another tool to make DS smaller ships relevant at all stage of the game. It effectively double the health and damage of Phantom and Wraith (except for player's hacked ones).
- Increased speed of Wraith from 400 to 600, Specter and Eidolon from 400 to 500. Phantom remains at 400 speed.
- This should make the Dark Spire disperse a little, and keep their Phantoms a bit behind instead of making them prime target for everything.
- Wraith increased hull/shield from 7000/14000 to 9000/18000.
- A small buff to help it shine with its 0.7 albedo when all others Dark Spire ships have 0.4 (ie, agravic is really bad for Wraith).
- Phantom now has 1.5x damage against 5tx or more, like bombard. Armor lowered from 50 to 30. Hull/Shield increased to 4000/8000 from 3500/7000.
- Better targeting should help casual players, who are now more likely to get their flagship killed before the Dark Spire can snowball from replenishing casualties. Veteran should find their beachheading battlestations and Spire Fleets more smartly focused if they don't take counter-measures.
Risk Analyzers
- RiskAnalysers AI response/exo no longer scales with intensity, instead of scaling from 0.2x to 3.0x. Such scaling already naturally happens from the number of Risk Analysers (1 per intensity) and from a bonus exo income at high intensity.
Others
- Fixed Molotov and Barnacle not using the tag "WeaponJamAsPrimary" for target evaluation. (This should make them MUCH better)
- Eclectic starting Battlestation now has 25 concussion turrets instead of 5, as it wrongly had.
- Pirate starting battlestation traded the Ruffian turret for the Makeshift turret it once had.
- It's much less broken than it once was, and the mix of Blitzkrieg, Makeshift and Scrap is very fun to use. (Expect ban on expert)
New Mod: Outguard Party, by Dismiss
- New mod by Dismiss: Outguard Party
- The purpose of this mod is to remove the steep penalties to outguard and encourage experimentation with their use.
- Outguard are fun to use, but not what wins you the game.
5.007 The Reasonable Architrave
(Released May 5th, 2022)
- Fixed descriptive text on Shield Ward claiming they each generate five Embrasure Wards each to the actual count of three.
- Dyson Sphere factions' hacking responses now no longer scale as painfully
- Previously, they could spawn strength equal to around double their current capacity while being hacked
- Now, they can only do so in the early game
- Added after feedback from Dismiss on discord
- Added in some dynamic description for the Dyson Sphere Factions' Budget and Strength hacks, so the player is aware of the value of each hack
- Added as per discussions with Dismiss, ArnaudB, and Strategic Sage on discord
- Fix a major balance problem with the ZA, where they would continue to get income even with the game paused
- Thanks to Lord of Nothing for reporting
- Make the human empire better able to hack showdown devices, and showdown devices are better at seeding all of themselves
- Thanks to Strategic Sage for reporting
- All tooltip settings now have their own "Tooltip Customization" settings category.
- More work on the experimental unit tooltip:
- On short and medium tooltips there is a bit more space after the shield value in the 1st row, and the speed value in the 2nd row. High speed numbers could overlap the engine power, the first row was adjusted to maintain the same spacing.
- On medium tooltips the members of a fleet are now displayed with their icons instead of text, and on both detail levels they are now separated with a " | ".
- Transported ships now never write "transporting" and the transported count out, instead a red "[count] T" signifies that not all are loaded, only the displayed count, while a green "T" signifies that all have been loaded.
- Thanks to Badger for suggesting the use of ship icons in tooltips!
- The current/max unit count for fleet leaders is now colorized in the "estimated combat readiness" going from red (needs refleeting) to green (go time). This is based both of current strength and unit count, compared to max. Losing a lot of strong frigates will make go towards red and so will losing a lot of strike craft, even if the other remains almost untouched for a slightly more realistic estimate than just strength or unit counts.
- It is now possible to combine the entries for multiple fleet memberships if the centerpiece has two of the same type and mark. By default this is off.
- It is now possible to sort units in the fleet membership entity tooltip in 6 ways with priorities to strength, name or type. This defaults to Type > Name > Strength.
- Units that currently do not really exist in a fleet (0 unit count, no max to build up to) should no longer display.
- Currently known issues: Drones do not show the progress to the next one ready, Spire Cities do not show all info about the members and what members may be granted, even at higher tooltip levels.
- Station-keepers should no longer be dragged to other planets with tractor beams. Untested
- Thanks to Ecthelon for reporting
- Fixed a bug that caused the player faction to increase AIP twice when destroying a command station with corrosion or nuclear weapons and then building a station there.
- This happens because the origin of the damage (the faction that did it) is not known during the AIP attribution, so when players build a station or necropolis on the planet, the instance increases AIP again since the game does not know that it was the players who destroyed it.
- This fix introduces a major change to how corrosion works - it won't be able to kill units, but will leave them at 1 HP and the shields will be nullified.
- Thanks to LilLillyFox for making me aware of the issue on discord.
- Major nerf to the Science granted by Elderlings to the human empire
- Turns out they were more like loot pinatas than terrifying eldritch monsters
- Thanks to BaronBowden for the bug report
- Necromancer Modules updated so that there are more 1 point options, so players can easily dismiss the notification
- Added 2 one-point modules for +25% hull/shields respectively
- Plasma weapon module (bonus against FF) reduced from 3 to 1 points, damage from 2,500 to 500. (Flagship only)
- Added Necromancy damage to some N.Flagships weapons that were missed
- Added a new "Threading Exchanger" framework to our general library for the game. This hands certain forms of gates into the code, where a thread cannot go into that section of the code until another thread reports that it is done in there.
- Previously this was implemented with dozens of individual Interlocked.Exchange calls, but now those all use the ThreadingExchanger class, which centralizes things.
- Overall, not much changes with this, except that now when you use the "Log All Threads" debug function, or the "Abort All Threads" debug function, it will also log all of these that are set to busy, and set them all to idle.
- If you are seeing the game "paused and won't do anything," then this should be the final piece of instrumentation that would fix that. For MP clients, same deal.
- This is mostly a debugging tool, but it's also a workaround. When you run into one of those "perma paused, won't go" situations, have everyone affected hit the escape menu, go into debug on that, and hit "Abort all threads," and that should get things moving again. Please then also send us the logs that result from that, so that we can fix whatever the issue is now that it's been identified.
- Thanks to mattmein, trabbo, Dismiss, Zer0h1nder, and others for reporting.
- The minimum port number supported by the game is now 1024 rather than 10,000.
- Thanks to Dark Souls is a Fighting Game for suggesting.
- Fixed an issue where client requests for units that were dead could wind up causing endless canary codes, rather than just properly informing them they were dead.
- This is probably a solution to a fairly longstanding issue that has been very confusing; it may resolve more secondary issues with MP than it seems directly to.
- Thanks to SomebodyXp for reporting.
- Improved an issue with reading more factions in sync data in MP.
- Thanks to SomebodyXp for reporting.
- Fixed an issue with premature warnings about pathing helper lists not having their memory cleaned up.
- Thanks to Philippe Longval for reporting.
- Hardened the elderling description appender against errors, and also made it report better errors and cause less chaos if it does have an error.
- Thanks to Bob for reporting.
- Fixed an issue in MP where duplicate messages about a player upgrading a tech would be reported in chat, one per player in the game.
- Thanks to Tuntematon for reporting.
- Finally add in that setting to enable making AI Waves not Relentless. This is entirely hidden by default, in a new galaxy settings file. Only way anyone can ever see it is if they dig around in the game files.
- File is basically a place to put mod only settings, if any more are created.
- Thanks to Puffin for adding.
- Show transported units raised via necromancy
- Thanks to Tom Prince for updating.
- Rename `ExternalFleetBaseInfo.AddToTooltipForEntity` to `.AddToTooltipForFleet` and remove extraneous parameters.
- Also, this replaces the necromancer specific code for the sidebar fleet tooltip with a call to this function.
- Thanks to Tom Prince for updating.
- Add doublebuffering to the necromancer fleet bonus info, to prevent flicking of tooltips.
- Also, move the logic from `NecromancerMobileFleetBaseInfo.PerSecond_UpdateFleetData` to `NecromancerFactionBaseInfo.DoPerSecondLogic_Stage2Aggregating_OnMainThreadAndPartOfSim_ClientAndHost`. Since they both were trying to update `Percent*Type`, this prevent them from stepping on each other, and lets the tooltips be updated while the game is paused.
- Thanks to Tom Prince for updating.
- Display excess necromancy ratios in tooltips.
- This is the percentage amount over 100% for getting upgraded units via necromancy. The actual percentages used (and shown) for each type are scaled relative to the total percentage, if it is > 100%.
- Thanks to Tom Prince for adding.
- Don't allow `GetIntoTransport` orders to be overridden by unit behavior.
- This was causing melee units, in paricular, to dance back and forth between the transport and enemies. This is likely particularly noticeable when "Wait for Stragglers" or when using necromancer, as I think you are more likely
to be observing a ship loading while there are enemies on a planet close enough to attack.
- Thanks to Tom Prince for adding.
- Keep a list of available necromancer blueprints, rather than generating a temporary list of them when required.
- Thanks to Tom Prince for updating.
- Include remains in ship count for the local planet sidebar.
- Since the ship count is used to determine if a category is included in the sidebar, the count needs to include remains, as those are shown in the sidebar.
- Otherwise, if everything on the planet is remains, the icons for those ships will sometimes show up in random positions. This is particularly relevant for necromancer, as often planets will only have the remains of converted guardposts.
- Thanks to Tom Prince for updating.
- Prevent scrapping city-fed fleet leaders (in particular, necromancer flagships).
- Thanks to Tom Prince for adding.
- Allow transforming Necromancer Flagships from the fleet window.
- This is done in a mod-friendly way, by adding a new `IFleetTransforms`, which can be implemented by a `ExternalFleetBaseInfo` to add support for a new type of transform.
- This is accessed by the `GetFleetTransforms` extension method on `Fleet`.
- Thanks to Tom Prince for adding.
- Add a `AddShipIconInline` extension method to ArcenCharacterBufferBase, and use it everywhere.
- Thanks to Tom Prince for adding.
- Show the whether flagships are in stationary mode in the galaxy map.
- Thanks to Tom Prince for adding, and Dismiss for reporting.
- Fix a variety of tech errors.
- Thanks to Tom Prince for fixing, and Lord Of Nothingfor reporting.
- Improve the calculation of the changes in ship cap, in the tech upgrade/downgrade tooltips.
- Previously, it would include the cap increase from the *current* level, or the cap decrease from the *target* level when reporting changes.
- This did not effect the total strength calculation, as those used a different function that was not impacted.
- If you have multiple lines of a single ship type, the calculation can still be incorrect, tooltip calculation uses the total cap, which may round differently than the various individual caps.
- Thanks to Tom Prince for fixing.
- Update Necromancer Amplifier seeding.
- Make all amplifiers AI owned. This should fix #27166, as the will no longer be owned by the neutral faction.
- Adjust the seeding distance of amplifiers:
- Take into account the extra and reduced seeding distance for things.
- Increase the minimum distance to non-adjacent for Wight (3 -> 4) and Mummy (3 -> 5) amplifiers.
- Decrease the minimum distance from an AI homeworld for Skeleton and Wight (5 -> 3) and Mummy (5 -> 2) amplifiers.
- I had noticed on a Swirl map Skeleton amplifiers were clumped somewhat near my homeworld, and all together. This change lets them be somewhat more spread out, with some of them managing to be between the two homeworld, opposite my starting planet, which was previously impossible. Looking at a pre-change campaign, 10 of the 14 amplifiers were in a connected cluster of planets; this type of result should be less common now.
- Thanks to Tom Prince for updating.
- Fix the drone construction of the Necromancer's Haunted Keep.
- The ships it was supposed to build were not marked as drones.
- Thanks to Tom Prince for updating.
Updated Mods
- MFS Frigates:
- Updated weapon beam colours from yellow to the intended red (thank you for whomever updated them after the beam colour update)
- Buffed Command Frigate to have a stronger planetary attack multiplier to justify rarity.
- Updated mods to match current standard and balance. Removed numerous older mods that are obsolete or are no longer being developed.
- Thanks to Zweihand.
- Capturable Dreadnoughts:
- Updated energy consumption to be more in line with current game balance
- Updated mods to match current standard and balance. Removed numerous older mods that are obsolete or are no longer being developed.
- Thanks to Zweihand.
5.006 End To Spontaneous Combustion
(Released April 29th, 2022)
- AI's response to Migrant Fleets have been heavily reduced
- Maximum power level reduced by 50%
- Power from migrant waves reduced by 80%
- Power from clanlings reduced by 80%
- Thanks to Strategic Sage for noticing the AI was being a big bully
- Small adjustment to the non-scaling speed bonus granted by economic command stations.
- Allied ships move speed bonus 2x -> 1.5x
- Change the cost of transforming a Necromancer Flagship to be based on the minmum mark level required for the new type, instead of the current mark level.
- Thanks to Tom Prince for implementing.
- Take active hacks into account when checking available hacking points for transforming flagships.
- This mirrors the check for starting a new hack.
- Thanks to Tom Prince for implementing.
- Don't display experience or upgrade state of elderligns that cant' upgrade.
- This includes Mark 7 high-tier and feeble elderlings, sacrificial elderlings and eldritch elderlings.
- Given that they never upgrade, there is no point in tracking experience or displaying experience on them.
- Thanks to Tom Prince for implementing.
- Display the stats for the current mark level of a transformed Necromancer flagship in the hack tooltip.
- Thanks to Tom Prince for implementing.
- Highlight the target of a move phylactery hack, when hovering over it.
- Thanks to Tom Prince for implementing.
- Fixed a three-pronged bug in the central strength calculation code where the planetary attack damage multiplier of the centerpiece was added up to the strength rating multiplier for DPS:
- This was wrong because if anything this should have been a multiplication, not addition.
- Additionally this was double-dipping because since the unification of the damage calculation code the relevant multipliers are all added up centrally already - though technically since there are no entities to which this would apply it flew under the radar.
- This bug only showed after some changes to planetary damage amplification made the default value FInt.One instead of FInt.Zero (before > FInt.Zero was required for this bug to appear, so now it did all the time).
- End effect: Due to this trifecta of bugs all fleets with living centerpieces had the DPS of their members valued at 50% more for strength rating, leading to wrong values all over the place.
- While at it fixed as few other (harmless due to not having a trifecta such as this) places where the comparison to ignore was > FInt.Zero instead of != Fint.One. This should slightly improve performance.
- This fixes the issue where fleet strength numbers were incorrect, discovered when Neinzul Clusters with all of their drones loaded had a higher strength displayed for their fleet compared to the strength loaded. It turns out the latter was correct.
- This means that most combat-related player units as well as drones all over will appear to be be ~15-20% weaker. Note that no actual combat-related values have been changed. The previously displayed strength numbers were incorrect!
- Thanks to Ithuriel for reporting an incorrect Neinzul Hive drone fleet strength, leading down to this rabbit hole!
- The experimental entity tooltip now also displays the maximum unit count possible in this fleet (most relevant for player and drone fleets).
- All the values (current/max strength/units) are now calculated in UI-only methods which are more expensive, but hopefully 100% accurate.
- Fix a divide by zero race condition
- Thanks to Dismiss for reporting
- Prevent a race condition where sometimes player-owned units would just explode for no reason
- This at the very least caused frustrations to people in the Tutorial. I suspect it was happening with disconcerting regularity in other games, but have no evidence
- Thanks to a number of people on Steam for reporting
- Fix a bug with the achievement Think The AI Won't Notice? where it was firing incorrectly
- Thanks to a number of people on mantis for reporting
- Add support for a new form of Achievement, currently only used for Think The AI Won't Notice
- This will allow you to say "Has the player gotten a ship with a specific tag to a given mark level", and is used for things like "Think The AI Won't Notice" for "any spire city at mark 7"
- To use this, you need the following: condition_type UpgradeFleetLineToMark, condition_string_mode = "Tag", condition_string_mode="Tag you want to trigger on (theoretically supports multiple tags, but untested, so please verify) and condition_magnitude="Mark level you are looking for"
- Fix an error in Maddened Elderling Code
- Thanks to Strategic Sage for reporting
- Fix a ZA bug where we could produce infinite phased out golems that wouldn't do anything
- Thanks to ArnaudB for reporting
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.
5.004 Misc Polish
(Released April 24th, 2022)
- Fixed scourge spawning from beacons.
- Thanks to Ragnaidin for the report.
- Fixed duplicate text in the Build Rows for the entity tooltip.
- The "Cannot be supercharged" info in tooltips now no longer tries to appear in the Ship Class row but instead is part of the normal tooltip similar to the zombification immunity "Cannot be captured by other factions".
- This fixes a format-unfriendly visually noisy "Cannot be supercharged" attaching itself to the wrong row in the tooltip of probably all flagships and centerpieces.
- Fixed a variable typo regarding resources rewards given on death.
- Improve the sapper economic logic to let it make better decisions as to what sort of crystal to flower
- Add some more defensive code to wormhole borerers to try to prevent them from connecting already-connected planets
- Necropolis buildings are now properly destroyed when the necropolis moves
- Thanks to strategic sage for reporting
- Let the templar track how many ships a wave leader has rallied. Untested, and only for debugging purposes, in case we need it for templar wave balance
- Add some defensive code to the templar hacking reaction
- Thanks to MadTwit for the bug report
- Fix a bug where the new "beat the game with scourge enabled" achievements weren't triggering
- Thanks to Ecthelon for reporting
- Elderlings should no longer be able to trigger raid engines
- Thanks to ptarth for reporting
- Fix a miscommunication in tutorial 4
- Thanks to LaGrange for reporting
5.003 Revenant Efficacy
(Released April 23rd, 2022)
- Elderlings/Templar that die from Corrosive damage now grant resources to the necromancer
- Thanks to a number of people for reporting, in particular Gzar for uploading a save
- Fix a typo in the templar haking response
- Thanks to AxiomExotic and Ushgarak for reporting
- Fixed some nullref exceptions that could happen in UnrolledDoFor_CheckForHostiles in the tachyon, gravity, and tractor beam background threads if the sync on an MP client was messed up in a certain way.
- Unfortunately, the original error that led to this state is lost because the error cascade went on long enough that the error log looped and thus did not include the inciting error. But this particular trio of error cascades will no longer happen.
- About error cascades: https://wiki.arcengames.com/index.php?title=Category:AI_War_2:_All_About_Multiplayer#A_Giant_Rash_Of_Inexplicable_Problems_Happened_.28Error_Cascade.29
- Thanks to Haeris for reporting.
- Added a new "Debug Zoom If Above" mouse setting specifically to help one specific user figure out what is happening with their mouse. It will be interesting to see if it yields anything more broadly applicable as well.
- Thanks to Tankor Smash for his patience since... um... 2019 apparently. This is one of our older bug reports.
- Finish adding C# support for the fallen spire module journal entries
- Thanks to vinco for suggesting these, and contributing the text
- The "Save Preset" function in the debug menu now actually works! Previously it was using an old format for quickstarts, because I forgot that it was even a thing.
- I added the makequickstart gamecommand, which works great. Now the save preset function does as well. The command is able to save to whatever quickstart folder you want, but doesn't save a tooltip file. The debug menu only saves to the Community quickstart folder, but DOES save a quickstart file.
- Thanks to Dragoris for reporting the difference in filesizes, which was critical to noticing this. The format changed for quickstarts right before the great refactor (specifically so that they could survive into the new save format).
- The "Neinzul Galaxy" quickstart by Dragoris now shows up in the Community quickstarts section if you have DLC3 installed.
- Thanks to Dragoris for creating it!
- Correction! The third quickstart in the Necromancer section for DLC3 was the one by Dragoris, and that has now been corrected to the new format that won't error on load.
- Thanks to Dragoris, Smidlee, and ptarth for reporting.
- FiresThroughEnemyShields now pierces bubble forcefields as the tooltip suggests it should
- Thanks to Darkshade for reporting.
- If the escape menu is open, the game will no longer respond to mouse inputs for the camera view. This is already the case if the game doesn't have focus, but this should help if you haven't yet unfocused the game because of multiple monitors.
- Thanks to MaxAstro for requesting.
- Major necropolises now actually respect their galaxy cap
- Thanks to Exlium for reporting
- Fixed an issue where fireteams that had a long time to process something (more than 10 seconds) would claim they were leaking memory. They now allow for 120 seconds of time to elapse for making this declaration.
- Thanks to Zer0h1nder for reporting.
- Fixed the description of the "Battlestations receive turrets from hacks for all" setting, which erroneously stated that it defaults to off (it defaults to on), and in general it had its logic stated backwards.
- Thanks to Ushgarak for reporting.
- Fixed a typo in the Samurai frigate's description.
- Thanks to Ithuriel0 for reporting.
- Removed an old drone-correctness check that was being triggered on some NPC drone usage cases.
- Thanks to Dismiss for reporting.
- The text at the top right of the screen that shows the build cost no longer displays metal costs for the necromancer
- Thanks to LilLillyFox for reporting
- If the game is in the process of shutting down, there's a certain class of errors that could happen that were spurious but pretty rare that no longer can happen.
- Thanks to Badger for reporting.
- Corrosion damage now explicitly blocks repairing. In compensation, make corrosion tick down a little bit faster at the end
- Thanks to vinco for reporting
- Instrumented the SpawnTeliumIfAble function so that if there is an error in there it will give us more precise locations for what is wrong, and it also won't shut down the entire macrophage faction anymore.
- Thanks to JDingDong8 for reporting.
- Pathfinders now wait 300 seconds before declaring themselves as memory leaks, rather than merely 30 seconds. When things are really busy, they can legitimately need to be in use by a background thread for more than 30 seconds.
- Thanks to Zer0h1nder for the report.
- Updated the kickstarter backer credits to include one missing backer (from backerkit, a later addition).
5.002 Venators Optional
(Released April 23rd, 2022)
- Orbital mines for captured outposts were dying to remains that the Necromancer could not interact with and thus making captured orbital outposts with minefields effectively null and void since they could not replace expired minefields with dead ones clogging the slots. While this will definitely help newer games already impacted games may simply be out of luck.
- The attribute never_leaves_remains="true" has been set for the various types of orbital minefields. Replacements are put in play by the host outpost.
- Received report that AI Spire Rail Destroyer were massively larger than their common cousins visually. Went ahead and made their regular AI Spire Destroyer companions a little larger visually while making the AI Rail Destroyers smaller but still larger slightly visually.
- AI Spire Destroyer visual scaling 1 -> 1.5
- AI Spire Rail Destroyer visual scaling 3 -> 2.0
- It is still useful to the player to be able to distinguish which ones are infinite range at a glance in a mixed group.
- Venators are now enabled/disabled in the game lobby. They default to 'off' for HA, but are forced on for Challenger+
- Thanks to Ecthelon for the request, and Chris for deciding what to do about said request
- The 'Unspent Modules' notification will now cycle between unspent entities, if you don't spend all of your points on the first
Tooltip work
- The current amount of Weapon Points is now displayed in the buff row.
- Thanks to Puffin for creating the mechanic and zeusalmighty for requesting.
- The FixedResourceTextStats class is now renamed FixedTextFormatingStats (as it supports more than just resources), has been moved to the AIW2 Core project and given the ability to support Geo icons.
- Began an overhaul of the entire entity type tooltip to fit more icons instead of text, and in uniform show either icons or text and not a mix of the two. For now this is inactive code, existing next to the original tooltip code. In the future there will be a setting to use the experimental tooltip code instead of the current one. Thus all of the below has no effect on the game just yet:
- Removed the old Start[Something] or Add[Something] extension methods for ArcenCharacterBufferBase. Now they are either named Start[Something], End[Something] and Wrap[Something] to clarify.
- Additionally there now is support for generic resources to automatically find the correct FixedResourceTextStats object to work with, support for the PlayerTypeData resources and a way to end with the resource name.
- The tooltip for planetary energy and metal boosting after X seconds now has an unified code path, and will combine the numbers for energy and metal if they are both the same, and both are either enabled or disabled.
- The tooltip code for Factory assisting, factory boosting, claiming, rebuilding and repairing has been rewritten in large parts. Individual repair speeds for hull, shield and engine can now actually be displayed. The assist range will only be displayed once, sine all except internal factories (which measures range in hops) use the same range.
- Unified the code paths for the lower part of the orbiting tooltips, ships orbiting the gravity well will now show the current distance.
- Unified and completely rewrote the code for planetary attack and speed amplifiers and inhibitors.
- The "CEASEFIRE" and "CEASEFIRE BLOCKER" parts are now in color so they stand out more.
- Unified the code paths for harmonic damage increases.
- Units with a hacking response multiplier that is >1 (= units that worsen the AI response to hacks) will now display it as a "HACKING MALUS" instead of always "BONUS".
- This section also no longer refers only to hacking the AI, as other factions may also have responses.
- On minimum tooltips the hull, shield and speed values now display the percentual values (for hull and shield the percent of the maximum, for speed the percent of the base value)
- On medium tooltips the hull, shield and speed values now display the same information as full tooltips do, but with icons instead of text.
- Thanks to General Frost for requesting.
- Removed the old Start[Something] or Add[Something] extension methods for ArcenCharacterBufferBase. Now they are either named Start[Something], End[Something] and Wrap[Something] to clarify.
- Add some improved debugging code for entity tooltips
- Reported by Daniexpert
Bugfixes
- Removed the seeding of Elderlings' beacon when a Necromancer Empire or Sidekick is present in game.
- Thanks to LilLillyFox for the report!
- Fix a bug where the Move Necropolis hack was causing errors in longer-running games
- Thanks to Strategic Sage for reporting
- Put in several message response buffers to prevent timing issues on multiplayer clients that were responding to several things at one time.
- Thanks to AxiomExotic and FwiffoForce for the report.
- Fix to a multiplayer error in the ultra frequent sync that could happen if a client was told about about a planet it did not yet have info for.
- Thanks to AxiomExotic and FwiffoForce for the report.
5.001 First Post-Completion Tweaks
(Released April 22nd, 2022)
- Update the tooltip for the bubble forcefield module to clarify the behaviour
- Thanks to Strategic Sage for reporting
- Fix a bug where the Spire Infused Empire was not generating its periodic exos, and the 'exo on spire city build' was trivially small. This will make the Spire Infused Empire much more interesting
- Thanks to Trantor63 on discord for the initial report, and Lord of Nothing for providing a save game to examine
- Fix a bug where the necromancer would basically get no resources if played on Challenger or above.
- While the necromancer is not really intended to be played except for in HA mode, there's no reason to break it at higher levels
- Thanks to Gzar for reporting
- Swapping a necropolis that has an amplifier now causes the amplifier to change which necropolis owns it. Previously the amplifier would just vanish, which was not great
- Thanks to Doc_Den for reporting
- Clarify distribution nodes for necromancer
- Thanks to ptarth for suggesting
- Elderling hacks no longer make you select a particular hacker (since it doesn't matter which hacker is used)
- Thanks to ptarth for suggesting
- The necromancer text popup at the beginning of the game now explicitly warns players who are above HA that they may have unexpected issues.
- Also clarify the Necromancer description to explicitly disclaim necromancer support
- We had a couple people playing on Challenger today and finding bugs (Gzar and ussdefiant in particular), so I want to make it clearer that Challenger+ is not really supported
- Small correction of oversight in albedo for a strikecraft within DLC 3 with cloaking.
- Stealth Bombard albedo 0.4 -> 0.7
- Fixed a grammar error in "The Migrants: The Arrival" Journal.