Terra Invicta Updated to
1.0.32 (Galaxy and Offline Installers (Windows))
Changelog from
SteamDB Greetings Terrans!
Today's medium-sized update to Terra Invicta includes an overhaul of the trade AI and a number of other bugfixes. Prior 1.0 saves will be compatible, although you may see the AI change its behavior pretty quickly in some cases.
Here's how our AI dev described the changes to trade:
"The goal is to make the AIs better at finding larger, more mutually beneficial trades, as well to generally improve and standardize the trade logic. I believe these changes improve their gameplay by allowing them to use each other as a resource to fill in gaps, as well as to make it harder for the player to take advantage of (exploit) them.
"The big new idea is trade categories. Right now, that's resources, habs, orgs, projects, and treaties. Each category is scored separately when scoring a Trade Agreement. For example, factions subtract the scores of the orgs they are giving away from the orgs they are receiving. After each category is scored, they add up the net positives and the net negatives (also separately). Net negatives are scored 3x higher. This means that if you try to trade one category for the other, you have to large premium. This is not a big deal generally for AI-AI trades because they can trade in kind for the most part. But it makes it much more expensive for players to do asymmetric trades, taking advantage of the difficulty to compare something like orgs and habs.
"When selecting items to trade, AIs now look at two key metrics - the overall size of the item, measured in terms of how high its score is, and the "efficiency" of the trade (efficiency being the more important metric). Efficiency is defined by the ratio of the Faction A's score for the item to Faction B's score. This efficiency based trading makes it more likely that both parties will give a positive evaluation of a Trade Agreement."
We've also updated the 2026 scenario starting conditions in a few places in line with world events as of the beginning of February.
Barring any critical hotfixes, our next build may take a little longer before it reaches the default branch. We're removing a restriction on adding new text, which means we will be sending the build to our translation teams before we make it live on our default branch. We will be putting early builds on our beta branches on Steam and would welcome brave souls willing to test them out and letting us know how well our changes are working.
Changelog from
https://www.pavonisinteractive.com/phpBB3/viewtopic.php?f=26&t=29984 1.0.32
A
- fixed crash when clicking refit button on a fleet that was docked at a lagrange point
- fixed crash when scuttling a fleet that has a councilor on board a ship in the scuttled fleet while they are visible in the finder
- fixed follow-on crash from above with the following changes:
1) a councilor on a destroyed ship will abort mission
2) fixed a bug determining where a councilor on a destroyed ship will go if the ship is docked at a hab, it'll now go directly to docked hab if available
3) you can no longer order a scuttle in a fleet with your councilors that isn't docked at one of your habs so you don't accidentally kill him
B
- Solar System camera zoom speed scaling adjustment (mostly to handle trackpad acceleration)
1.0.31
A
6000 - Fixed crash when clicking on a ship in strategy layer that was no longer valid/destroyed
5998 - Attempt fix for rare crash in operations UI when army is destroyed
6003 - fixed crash when fleet bombards a hab with no valid modules to target
5879 - Fixed precombat crash when evading due to extended pursuit UI toggle state not being reset properly between combats, additional safety code
6004 - Prevent NRE on load on trajectories who's destination is outside the solar system. Safety code that was trying to reconstruct the destination orbit of bugged trajectories was erroneously firing in response to trajectories that truly lack destinations. This caused an NRE when we tried to dereference the nonexistent destination.
5970 - Attempt fix for rare crash when clicking on enemy councilors on geoscape
6001 - attempt fix for rare combat crash with damage visualizations
B
- 5996 - fix for cohesion and priority tooltips in nation info screen going outside of screen bounds
- Fixed expected tech winner logic picking wrong faction when leader had low current research but already had a lead that was impossible to overcome
- fix a logic error when secondary explosions were triggered when ships took internal damage to explosive components during combat that was causing them to do no damage
C
- fixed annoying trade input field behavior adding 0 when trying to delete and type a new number
- martyrs will now show up with the warning flag in the targeting dropdown consistent with other UIs
1.0.30
A
- Bug #5969: Save repair: AdHoc orbits with NaN arguments of periapsis now set it to 0 to avoid crashing later. This doesn't address the root problem -- which somehow set arg periapsis to NaN without breaking the fleet's mean anomaly at epoch, which relies on it.
- Bugfix #5971: Fixes bug where a fleet could have a deleted Ad-hoc orbit as a destinationOrbit, which would cause a crash bug when looking at the fleet. Now we won't delete Ad-hoc orbits if any fleet has them as an (eventual) destination (i.e. there will be another transfer between the current one and the ad-hoc orbit). Added save repair to fix existing instances of this bug.
- 5816: nullcheck for nonsensical and unreproducible crash in turret visualization code.
- Fix for rare crash on GOG when attempting to process achievements
- fixed rare crash when game attempts to trigger Haunted Forest event under certain conditions
- 5977 - Added safety code to attempt fix for rare crash when hovering over destroyed ship in combat
- 5955 - attempt fix for rare crash when trying to repair/resupply from notification
- 5973 Scuttling a fleet will no longer be allowed while said fleet or the base it is landed at is under bombardment. This prevents a future crash on save-load but also gets rid of a pretty gamey play. Also fixed the actual downstream crash
- Fixed a crash when looking at the calendar when a fleet held in an arrival alarm has been deleted
- Special notifications will update on council changes to prevent crashes when choosing some options after a councilor status becomes invalid
- 5987 - fixed crash when using repeat operation on a notification for a fleet that no longer exists
- 5988 - Fixed crash when viewing ship that finished a refit that previously had a councilor on board
- Safety code for rare crash when attempting to box-select ships at start of combat
- fixed crash when attempting to use ships in skirmish that were imported from a save and contained ":" in the ship class name
- 5990 - fixed crash when ordering domesticated megafauna to attack an alien asset which caused the AA to declare war against itself
B
- Bugfix: combat velocity matching was causing overshoots and constant corrections as we weren't accounting for downthrottling our engine to save DV. This is now fixed.
- Fixed combat DV calculator to respect fractional realism, and to calculate realistic DV correctly when our acceleration will exceed the modified cruise acceleration for the duration of the burn (thus the engine is running inefficiently).
- Bugfix #5862: Prevent wobbly combat maneuvers. As ships burn propellant, they lose mass and become more maneuverable. This was causing our waypoints to adjust as they become red (and thus unchangeable), often in ways that were harmful to player tactics. Moreover, ships wouid try to exactly match the positions of future waypoints (chosen from maneuverability stats that are no longer accurate), at the expense of matching velocity -- which would result in escallating burns going back and forth. The latter is fixed by checking that waypoints have maneuvers and if they do not, treating them as free coasts that don't need to be hit exactly. The former is fixed by not updating the waypoint if our maneuverability improved. Maneuverability losses due to chunks of your ship falling off will still cause waypoints to update.
- fixed Intel item with reason for no agreement to share intel not appearing in trade screen when intended
- AIEvaluators.ShouldSystemBeInDefenseMode() bugfix : There must be a defense goal for a system to be in defense mode. The lack of this check resulted in fleets getting stuck in systems that had nothing for them to defend.
- AIDailyFactionPlanner.ManageFleets() bugfix : Fleets stuck in ad-hoc orbits were being assigned a SendFleet goal despite selectedOrbit being null. This also resulted in these fleets being not being assigned any valid goal at all, which meant they would never drop damaged ships that were functioning but effectively couldn't go anywhere.
- AI_CreatePropellantSharingPlan_Equalization() bugfix : Fleets getting stuck trying to equalize fuel fruitlessly. AI propellent sharing plans now must meaningfully improve fleet dv in order to be used.
- TILaserWeaponTemplate.EstimateDPS() bugfix : when averaging damage at different ranges, the range used was the same range every time due to a mistake.
- AIDailyFactionPlanner.ManageFleets() bugfix : TransferResult.Outcome.Fail_BurnLongerThanTransfer needed special handling if lowestDVFound_kps < 0. This bug resulted in AI fleets getting stuck because they could drop bad ships.
- PrecombatController bugfix : Continue to disallow saving until player chooses to accept or reject autoresolve results.
- ManageFleets() : fixed bug where rescue fleet could be unassigned
- ManageFleets() : fixed bug where landed defense fleet jams things up
- SingleFleetOperation() bugfix : Clear chase performance requirements if enemy fleet is docked at a hab
- fix issue where max military tech level was set too high after liberating regions from redacted
- FactionGoal_FoundHab.ShouldDiscardGoal() bugfix : Fixed bug where surveillance station founding goals could be discarded.
- #5913 Anti-xenoforming patrol operation by Initiative fleets will no longer target ||redacted||
- TIGlobalResearchState.GetExpectedWinner() bugfix : No longer identifies an expected winner in the scenario that no one has contributed any research. Issue #5907
- fix an issue where AI factions would quickly break truces if they really, really hated you before making the truce
- fix issue where intended effect of broke nation (no available IPs) preventing armies from reducing unrest wasn't working
- FactionGoal_TransportCouncilorsWithFleet.ReadyForTransferToTarget() bugfix : Alien councilor transport fleets now proactively transfer to main base, rather than waiting for final transfer constraints to become true first. Issue #5963
- Fix missing loc in SnapElections event
- Attempt fix issue where habs would occasionally not release "under bombardment" flag after bombardment ended
- #5962 fix an issue with unaligned nation army AI repeatedly canceling and restarting a damaged army's movement
- #5934 projects that require a certain nation to exist as a prereq to availability will now work properly in non-2022 scenarios
- #5938 fix issue where damaged ballistic warheads were applying full damage when hitting a target instead of damaged-mass damage
- 5928,5925 - Fixed UI displaying information on invalid treaty options.
- 5863 - Trade UI now displays hab summary info in tooltips when hovering over eligible habs
- Fix not being able to transfer an officer from a surface base to a landed fleet if the fleet has no officers of its own
- #5885 Fix an issue where ships would generate more officers than allowed for the hull type in a single battle
- #5885 Fix an issue where you could transfer one more officer than allowed for the receiving ship's hull type during officer transfers
- Bombardment can now target decommissioning habs to prevent exploit where you could prevent bombardment by decommissioning
- fixed mission percent values and other geoscape text on regions not displaying correctly in Chinese, Japanese, and Korean fonts.
- #5917 A nation releasing or transferring a region upon which it has a hostile claim will no longer clear the "hostile" status of that region. Fixes an exploit that allowed clearing of hostile claims through release and re-annex of a region.
- 5974 - Fixed spacebody fleets list not updating when fleets in L-point were being merged
C
- some loc clarifications for how federation space program sharing works, victory mission requirements for some factions, rename "Advanced Chemical Rocketry" to "Long-Range Chemical Rockets" to avoid confusion with similarly-named tech, and mag weapon stat "Shot Battery Consumption" now "Shot Energy Consumption", Adjustment to Power tooltip in Combat to remove reference to ships having multiple batteries (a deprecated capability)
- Add text to Initiate Nuclear Program priority tip that finishing it is required before you can acquire an annexed nations nukes; otherwise they are dismantled
- 5887 - fixed unneeded space appearing between number and percent symbol when system is in Swedish
- 5873 - Attempt fix for blank white ship reinforcement listitems when entering combat sometimes
- Fixed game unintentionally unpausing when closing alarm panel
- Remove forced uppercase TMP setting on Tutorial tip title, fixing incorrect accents from unintentionally displaying on some letters in some languages
- FleetScreenController : resetting lastSCVUpdateFrame in a couple places to ensure combat score updates as expected
- Ship designer bugfix : Sometimes combat score wouldn't update despite changes being made to design.
- [#5542] Fixed an issue where hab models wouldn't respond to mouse cursor interaction (like hovering) after making a change to the hab's modules
- Fixed an issue where the Codex window could remain open when starting the Intro tutorial after resetting tutorials in the codex
- Fixed an issue where certain elements in the fleets screen tutorial wouldn't be properly highlighted and fleets wouldn't be expanded/unexpanded at the proper tutorial steps
- #5924 fixed bad affinity in backer org
- #5900 Low-attribute councilors on now run advise missions with an extremely low expected utility (~ 1e-9) rather than a negative expected utility. This will allow councilors set to advise as an automated mission to undertake the mission if no other options or available. This also creates an extremely low probability they and AI councilors will do it even if other options are available.
- Loc fixes
- Some start screen UI scrollbar & dropdown fixes
- fixed bugged blocky text in update mod dropdown
- 5867: fixed councilor professions cycling when clicking long campaign default settings button
- Fix bad tag for Timor-Leste army name (English loc only so far)
- 5975 - fixed finder not updating when changing hab name
- Fixed enter key not properly saving hab name and changing fleet name instead when both panels are open
- fixed incorrect evaluation of victory objectives in NAP trade message
AI
- Significant overhaul to trade AI with the goal being to make the AIs better at finding larger, more mutually beneficial trades, as well to generally improve and standardize the trade logic. I believe these changes improve their gameplay by allowing them to use eachother as a resource to fill in gaps, as well as to make it harder for the player to take advantage of them.
The big new idea is trade categories - Right now, thats resources, habs, orgs, projects, and treaties. Each category is scored separately when scoring a TradeAgreement. For example, factions subtract the scores of the orgs they are giving away from the orgs they are receiving. After each category is scored, they add up the net positives and the net negatives (also separately). Net negatives are scored 3x higher. This means that if you try to trade one category for the other, you have to large premium. This is not a big deal generally for AI-AI trades because they can trade in kind for the most part. But it makes it much more expensive for players to do asymmetric trades, taking advantage of the difficulty to compare something like orgs and habs.
When selecting items to trade, AIs now look at two key metrics - the overall size of the item, measured in terms of how high its score is, and the "efficiency" of the trade (efficiency being the more important metric). Efficiency is defined by the ratio of the Faction A's score for the item to Faction B's score. This efficiency based trading makes it more likely that both parties will give a positive evaluation of a TradeAgreement.
More AI
- AIEvaluators.IsSafeForColonization() : Added logic for non- veryProAlien factions to colonize at Jupiter and beyond
- AIEvaluators.IsSafeForColonization() : Alien appeaser now considers locations at Jupiter and beyond safe
- GetBestOperation() : Added logic to handle situation where station defense fleet has opportunity to take out a defenseless enemy base
- MangeFleets() : Added code to create a rescue fleet for alien's primary system, in the event that it is occupied by enemy fleets
- AIEvaluators.IsPrimarySystemCamped() : adjusted this function to also check for enemy fleets that will soon be occupying the primary system. This avoids sending small fleets to the primary system too late, wasting them. Instead, these fleets can be merged into the primary system rescue fleet.
- SingleFleetOperation() : Adjusted logic that could cause alien defense fleet to not attack enemy fleet that is invading the alien's primary system
- AliensCheckGoals() : increased found surveillance station goal importance to be in-line with other hab founding goal importances
- GetBestOperation() : defenseFleets no longer set shouldRegroup to true if they fail to bombard a target. Issue #5923
- GetBestOperation() : Resupply logic no longer orders fleets to resupply at bases unless they are in desperate need. Issue #5923
- FactionGoal_FoundBase : AI factions will now attempt to use their colony fleet to bombard if intended habsite is claimed while they are en route
- GetMaxBoostForRateLimitedBoostPurchase() bugfix : now automatically sets the lastPurcahseDate if its null. This fixes bug where AI factions could not purchase hab modules that cost boost.
Balance / Scenarios
- SimulatedCombat : projectile PD can now miss
- TILaserWeaponTemplate:EstimatedDamageAtRange_MJ() : Improved formula here to avoid overvaluing lasers. Previously, lasers could have arbitrarily high scores if ArmorEffectivenessAtRange() was very low, which was not accurate or a very good approximation - zero armor effectiveness doesn't mean the laser deals infinite damage, for example. The new formula looks at a range of armor values, assesses the effective relative change in damage in each case, and does a weighted average based on expected armor values in an typical campaign.
- 2026: China now starts with 6 nuclear barrages
- 2026: Increase Iran starting unrest because we checked the news
- 2026: Remove USA-Venezuela rivalry because I guess that fits what happened?
- reduced exotics requirement to build t3 human plasma weapons
- when the aliens trigger their late-game upgrades -- which can vary by difficulty and dependent on player action or time passage, they will now also receive a 25% bonus to ship construction time. This is a test to try to make the aliens a bit more active and competitive lategame without upsetting the balance earlier in the game.
UI
- 5892 - include cost in org tooltips in org management UI
- added solar icon to available custom hab icons
- 5012 - Unnassigned orgs display cost in tooltip in hostile takeover selection UI
[#5878] Added UI path to refit directly from the "My Fleet" UI. The refits are prioritized by first trying to refit all ships of the same type as the flagship, then (if the flagship can't refit) ordering based off of which type of ship is the most common in the fleet and has a refit available (ex: if 10 ships can be refit and 7 are one type while 3 are another, the 7 ships will be selected)
Content
- councilor video setting will not always be disabled on Wine. The videos used to not work but maybe we fixed it somehow?
Misc
- Update Steamworks and Steam SDK to latest 1.63. One of the SDK patch notes says this can help with Steam Deck controls somehow.
- GiveOrg console command also checks and removes org from all other faction market pools to prevent crashes, for all the cheaters out there
- 5879 - added logging to help track rare crash when evading combat