v4 - Campaign and other enhancements
A bunch of bugfixes, tweaks, and some improvements specifically for campaign maps:
- 24 bugfixes. The more generally impactful of which relates to the mass/energy stall logic which should now be much more likely to only pause some things rather than everything when stalling
- Quantum gateways and RAS should be built for campaign maps and AiX modifiers (not 1.0 M28 though since I see RAS as too inefficient at that level)
- Reworking of how buildable locations are tracked - originally intended as an optimisation it ended up taking far longer than the previous approach, but I decided to leave it in since it is more accurate and my hope is that it makes late-game major slowdowns less likely than the previous approach.
- Optimisation of nuke targeting logic to reduce how long it can take (at the cost of being less likely to edge-nuke targets), and a number of other functions
- M28 can now capture campaign objective targets. So for example it is now capable (without any AiX boost) of completing FAF mission 2 on easy on its own unaided (i.e. with the human player afk for the entire game).
- Roughly 32 other tweaks/improvements, a number of which are aimed at having M28 better handle very high mass scenarios.
Acknowledgements
- Hdt80bro – helping me find a better way to confirm if a map is a campaign map, and clarifying how to hook orders such as IssueGuard
- Grandpa Sawyer – helping me debug an issue with the base AI taking control of my units (including the IssueFactoryAssist() order being the one I needed to hook)
- Jip – Helping with the same bug as the above, highlighting I was hooking a file that only existed on FAF develop (hence why it wasn’t doing anything for non-FAF develop games)
- Fearghal – replay highlighting major late game slowdown for M28 on Astro Craters Rich
- Wingflier - replay showing M28 losing at 1.5 AiX