AI War 2 Standalone installer updated: [Windows, Linux, Mac]
5.592 ⇒ 5.593.
5.593 Devourest
(Released March 23rd, 2024)
① General
• Gracefully handle Profile future version.
---• Your profile has the game-version in it, though it does not actually depend on it otherwise. It is not unusual for coders to end up with a 'future' version the game saved into ones profile. Actually the same thing will happen if you rollback to an earlier steam version. When this happens, instead of deleting the whole profile and ALL personal settings .. just pretend its the current version and message that it did this to the log.
• Added Personal Setting > Performance > Behavior if not Focused.
---• By default is 'Normal' but can also be 'Throttle' or 'Suspend' to reduce cpu/gpu usage when appropriate.
• Target Planning Fixes
---• Fixed a case where low importance targets were being picked above better choices, do to sorting not being done based on that importance value. Since distance is now part of the importance value already, sorting directly by distance is no longer appropriate.
---• The importance penalty to targets under a forcefield is now waived, if the system we are choosing targets for has bonuses against forcefields, and that bonus applies to the candidate.
• Auto-kite player ships closer for max damage, vs range based damage reduction.
---• Most recently, this was gated to only direct attack orders. But actually, this falls within normal kiting behavior as they use to exist.
• When showing an entities range-rings that will now include a magenta ring for incoming damage modifiers based on range.
• Dire GuardPosts have been reduced in target priority, for player ships, from BigThreateningWeapon to MidNasty.
---• While in a firepower sense they probably are as dangerous as a Mass Driver, for example; the player surely does not want them to be auto-frd targeted before everything else with a weapon.
• Fix to Tractor Array target priority.
---• The xml priority for tractor arrays adjusted from BigTurret -> LowGradeAnnoyance.
---• Ships were observed preferring to shoot tractors over actual ships or turrets shooting at them, while not even held by the tractor. Ships like raiders which are immune to the tractor for example should be flying past them to shoot something more valuable, but at least in some cases were not doing so.
---• Note that even with this change, tractor arrays are not simply ignored. They will be attacked, and may exceed the importance of something higher priority, if the alternative is much more distant. Also anything actually held by a tractor still gets a (ridiculously large) bonus to shoot the tractor, and will do so.
• PikeShot_Gold visual scale reduced.
---• This shot is used by quite a few different things, the stuff with 'pike' in their name.
---• Its scaling was causing it to actually appear extended -notably- far behind the thing firing it, confusing whether its an attack landing on the ship, or something it shot. Also it was just hugely more visible than it warranted (ie. the massive planet-covering blinding flash when a wave of pike guardians fire).
• Makeshift Drone fixes.
---• Death sfx changed from 'large ship' to 'normal ship'.
---• Target priority reduced to less than a normal ship.
------• Enemies in pursuit mode should not stay in place just to shoot it over other targets.
---• Now considered a 'drone' not a normal ship. Note that Makeshift Drone is only ever spawned as a shot, by drone guns. It has a single suicide attack, like a missile.
------• As a drone, no longer directly orderable.
------• As a drone, no longer loadable (which would occur, awkwardly, for your Battlestation's makeshift turrets).
• Fix to 'Random' Starting Battlestation for Spire-Infused choosing templates marked to be ineligible (weight="0").
• Encyclopedia Details-Of-Line fixes.
---• Now shows the correct line-cap for each mark level, and the strength of that combined, and the build-stats line for them.
• Strength Counting fix for stacks.
---• Was incorrectly skipping stacks which had at any point lost one of their ships.
---• The intent was to check if the ship was an incompletely claimed capturable, which it now does the correct way.
• At Local Planet 'Group' tooltip fix.
---• Hovering over a group containing enemy faction ships would sometimes describe them as your own ships, or as allied.
• At Local Planet bottom-most group 'Nobody' is now instead 'Neutral'.
---• This now includes other neutral-faction entities (beyond Natural Objects) which were previously missing entirely from the sidebar.
• Bastion worlds now properly marked for other factions to avoid.
---• This was the cause of ZA getting seeded occasionally on bastion planets.
• Fix to metal icons within 'metal losses at planet' incorrectly showing as strength icon.
② Mods
⯈ (new) Devourest Golem
• This replaces the Devourer Golem faction.
• When hungry it is hostile to all, and notably will be attacked as its no longer untargetable.
• When full it becomes neutral to all.
⯈ Points of Interest
• Shortname change 'Point Interest' -> 'Phenomena'
⯈ Generator
• Galaxy Setting > Map Population > Map Populator > Improved, is now the default rather than needing to be reset all the time.
⯈ Outguard Party
• Changed galaxy settings defaults.
---• OutguardPerBeacon now 1 (was 2)
---• OutguardToSeed now 6 (was 5)
---• OutguardCostScaling now 0.25 (was 0)
③ Coders
• Improvements to how we visualize the targets of an entity's weapon systems.
---• Formatted tooltips are now capable of showing the targets of a system, as an indented list in a block at the end of its section. The priority calculated for each is also shown. These are shown based on preexisting debug settings being turned on. This block had been disabled up until now for formatted tooltips, other tooltip do it in their own style.
---• When showing an entities orders (which is a preexisting key hold) the lines draw between the entity and the targets of all its systems are now faded in alpha as it iterates from first to last in the prioritized list. Also, the FRD target is now drawn last, and with a different color (white). Also we now show a line to the kite-target used last in movement planning, since this is not necessarily the same and otherwise is much less visible unless drawn at the end.
• Protect against divide by zero in EntitySystem.CalculateDamage.
---• If the reload time is zero for some reason, that means the DPS is zero, as it doesn't operate on "time" at all.
• Fix to messages in debug log running together. They now end with a newline, instead of being prefixed by one.
• Error popup improvement
---• If error popup is already shown when a new error occurs, log but do not replace the current one being shown.
• SeedArgs overload to IMapPopulator and SeedEntityAlgorithm
---• This adds several new features when seeding things, at the same time as making future additions easier to do.
---• In particular the following optional arguments are now supported: GetHasSimilar, OnSeeded Callback, SeededPlanets, and SeededEntities.
• Added extension method Faction.GetCommonAllegiance() and enum CommonAllegiances to make working with the typical string values of Faction.Allegiance easier.
---• Each value of this enum corresponds to one of the various helper methods in AllegianceHelpers.
---• ie, Faction.Allegiance"Friendly To Players" == CommonAllegiances.FriendlyToPlayers == AllegianceHelper.AllyThisFactionToHumans()
• Added GameEntityTypeData.HideFactionName set like so 'hide_faction_name="true"'.
---• This does not affect the result returned by Squad.GetFactionDisplayName nor anything other than the top line of the entity's tooltip.
• The new way to delist/hide/disable a mod is by having a 5th line in its ModDetails.txt with the text 'disabled'.
---• ModIsDisabled.txt, ModIsOffByDefault.txt, and ModIsSaveSafe.txt are no longer used.
• Fix issues with the 'AlwaysOn' debug setting for ship radii.
• ArcenSetting(s) can now define an int based dropdown's names and values in xml:
<!-- example usage -->
<setting ...
type="IntDropdown"
default="0"
option_names="Normal,Throttle,Suspend"
option_values="0,1,2"
</setting>
• rounding=".." attribute now supported for any int type settings. It's value is just an int, which the final value will always be divisible by.
• <show_if> element now works on bool type settings (by using int_val="1" or int_val="0").
• Added logging/debug helpers: extension method TypeNameAndMethod(this Object) and static method LOG.MethodName():
// example usage..
LOG.Msg("Error in {0}() ..", this.TypeNameAndMethod()); // if within an instance method
LOG.Msg("Error in {0}() ..", LOG.MethodName());---• // if within a static method
• You can now include a type+weight directly in the xml definition of an AIShipGroup. This is much easier than having a ton of separate partial records:
<!-- example usage -->
<group ... >
<include id="[?]" name="[type]" weight="[int]"/>
</group>