Patch Notes 0.3.108-118

Locked
User avatar
johnnylump
Site Admin
Posts: 1261
Joined: Wed Nov 11, 2015 4:12 am

Patch Notes 0.3.108-118

Post by johnnylump »

0.3.118

A
- Fix rare crash when negative weights are passed to SelectRandomWeightedItem. Responding to reported crash in AI tech selection.

B
- fixed how math works in yearly-to-monthly calculation for economy hit from global warming
- SingleFleetOperation() : do not undock bombardment fleets from station unless fleet is actually at target location. This change prevents fleets from undocking (necessary for bombarding if you are already in an interface orbit) from their station simply because they have an bombardment goal - they must also be at the target space body, be in an interface orbit, and be ready to bombard.

C
- Minor adjustments to Pretenders narrative event


0.3.117

UI
- intel projects UI will highlight projects you can sabotage

Content
- new illustrations

Performance
- Performance improvements for waypoints in combat

B
- fix nonscrollability of intel - projects UI
- AI fix one army lying to another that it's going to join it on an invasion when it's actually gonna sit tight defending the capital
- work on AI code for duplicating missions, especially mult stabilizes for low-unrest nations, applies also to automated councilors
- fix some pursuit DV costs not being charged
- AI fix some conflicting logic in determining whether to bombard

C
- fix secede terminal command
- adjust caliphate flag so it has a slight gradient and doesn't look like a hole in the UI
- fix for resolution dropdown always having first option selected instead of the current resolution
- fix cost report on repeatables when research scaling is in effect
- antimatter drives will no longer be considered "nuclear" drives for the purposes of spiker compatibility
- fix statement in escape objective
- fix bad textures on alien drives in skirmish when they are added to a human faction fleet
- fix some untrue "we'll only alert you once" messages in notifications

0.3.116

UI
- Combat: update command panel when maneuver completes

AI
- AI will work harder to build armies when at war

A
- Fix a .107 crash when a destroyed hab is checked by AI goals to see if it's an appropriate building location. It's possible this was prevented somewhere between .108 and .115 and this is an additional safety check.

B
- fix ally of breakway able to end rivalry, added UI text to explain
- The event Infiltrated Exposure now only exposes a single agent instead of the entire faction
- fix for full deck achievement not unlocking when recruiting 6th councilor after acquiring 2 turned councilors
- Removed part of the structure test node check that could have been turning off the AI if a ship was sufficientially damaged. This meant it could never withdraw.
- FactionGoal_Fleet.SavingForTarget() : do not select obsolete ship designs. Had one instance of this issue preventing aliens from building assault carriers.
- fix region damage not causing atrocities

C
- update text about how to trigger near-peer rivalry cohesion gain
- fix for goto button on notification after merging ship into another docked fleet
- QOL change for match velocity targeting
- ToCommaSeparatedString() : commas not appearing sometimes bugfix
- fix Iberian Male 2 voice being too loud

Misc
- Error handling for issue #3851
- Added Logs to help track never ending combat

0.3.115

A
- Fix for crash when a fleet changes targets while loitering waiting to launch on a trajectory and the player looks at the fleets UI. Includes save repair.

0.3.114

A
- 3897 - added save repair for multi-refit bug adding shipstate to multiple shipyards
- 3351 - fix for shipstates that were undergoing refit lingering in save after hab is destroyed.
- Fix for reinforcement crash caused by more ships dying in a reinforcement cycle than there are available reinforcements.

B
- fix old councilor image displaying for unknown councilor
- fix for shift-select duplicating refits in construction manager
- HabSchematic.GetOrder() : when trimming modules, always account for dynamic power usage / consumption.
- HabSchematic.GetOrder() : Trimming order even when its the right size bugfix. Orders were always being trimmed down to max size - 1, rather than max size.
- fix for exodus ship not displaying correctly when under construction
- Fix for 3808 ships out of dV will not recieve waypoint orders

AI
- HabSchematic.GetOrder() : more sophisticated logic for trimming power modules. Previously, the system would trim power modules if they weren't necessary (can be removed without resulting in a power deficit), ignoring if the order was incomplete. Now, it will only trim unnecessary power if the order is full, or if the power module in question could hypothetically be removed twice and still leave excess power.

Performance
- attempted performance fix for formations

0.3.113

Combat UI
- The Match Velocity Maneuver can now target friendly ships.
- New Face Velocity Vector Maneuver allows ships to rotate themselves to face along their velocity vector. Great for getting formations oriented in the same direction after targeting different ships.

AI
- Work on alien ship designer and selection to build logic to emphasize larger ships more
- GetBestOperation() : Adjust human AI fleet fleeing behavior when in Earth system so they do it less
- Fix some bugs in Army AI coordination and region selection

A
- Fix for crash #3883 -- crash when an enemy attacks a noncombant ship docked at a station.
- Bugfix #3881: prevent 5 million year microthrust spirals, and catch impossible burns to the heart of the Sun on load and correct them. Also save repair for fleets already in the sun, they should now be at the habs they record being docked at.

B
- fix for custom refresh rate not saving between sessions
- AI GetBestOperation() : Fleeing logic results in take off and land loop bugfix
- rework of strategygame component initialization to fix 3878
- initial rivalries, and rivalries from breakaways, should no longer have a cohesion hit from declaring war
- Reinforcements will now spawn in on the start of a new combat minute.
- fix for reinformcement timer appearing when there were no reinforcements
- another fix for calculating starting fleet range
-GetBestOperation() : Fleeing to the hab the fleet is already at bugfix.
-GetBestOperation() : Transferring to target before ready bugfix. Issue #3877
-GetBestOperation() : Do not flee if at a safe station already.
- Bugfix (from Discord): microthrust-only transfers were mis-calculating their DV expenditure (sometimes producing negative numbers), and used the wrong fleet acceleration for calculating DV expenditure when a fleet inherits the trajectory from a different fleet. This could result in a fleet with high acceleration intercepting a low-acceleration microthrusting fleet and suddenly losing all of its DV.
- 3882 - fix hang in builds when quitting to desktop
- save repair for out-of-sync wars + code to detect what got out of sync and report an error
- HabBuilding.Update() : Hab module construction may not complete when it is supposed to when reloading bugfix. Issue #3861, #3874
- UpdatePropulsionValues() : recalculate currentDeltaV_kps after certain events
- CreatePropellantSharingPlan_Equalization() : targetDeltaV now takes into account maximum DV possible. Issue #3884. Before, the code just calculated the dv that would equalize all ships and tried to achieve that, disregarding the fact the equal DV may be more than the maximum dv of some ships in the fleet. Also should spread out fuel from multiple tankers better.
- 3886 - prep before playing notification video

C
- fix for narrative event goodVSnerd occuring too early
- 3859 - change notification icon for spaceflight program
- Waypoint Control Handles appear based on camera distance to ship not waypoint for increased consistancy.
- 3886 - fix for voice continuing to play when returning to main menu

0.3.112

A
- Fix an error when one nation absorbed another and allied nation war data got out of synch. This leads to weird outcomes, including crashy ones.

B
- CanExplore() : locations that don't have any required effect to explore are unexplorable bugfix. This was a new bug in .111 that was causing issues with some transfers. Issue #3871
- added some CanExplore limitations on fleets targeting other fleets inline with targeting habs/orbits
- AI won't land on a space body to resupply and take off again unless it will end up in better shape on fuel. Should prevent low-DV fleets getting stuck in refuel loops
- fix for waypoint trajectories getting recalculated at the start of combat leading to odd trajectories and breaking formations.
- When group selecting the Burn Tool would try to set all selected ships to the same burn maneuver even if they had different headings. The burn tool now uses the relative heading of each ship.

C
Update to Federation tooltip 00 Modified federation tooltip in attempt to provide clarity on requirement for having at least normalized relations with all members, to align with the other tooltips information.

AI
- DesignShip() : Reduce armor if design fails to meet acceleration minimums.
- SingleFleetOperation() : Separating "vegetable" ships from ships that must be split out but can still transfer. Also added in code to detect when the entire fleet meets the criteria to be split out, and unassigns the fleet from its goal in this scenario.
- AssignIdleFleetsToGoals() : assign fleets without a goal to repair/rearm goals if they need either
- SelectTrajectoryAsync() : added option to dip into reserve dv if there is no other option



0.3.111

Gameplay
- Adjust dual-role missile behavior when using defense/fortify modes in battle (they'll go idle instead of burn all ammo)

A
- Fix crash in missileController

0.3.110

AI
- GetBestOperation() : Don't stick around dangerous locations. AI fleets will now go to the nearest resupplyHab if they find themselves at a location whose threat level exceeds their space combat value.
- FactionGoal_JoinFleet : Do not transfer to target fleet if you can't get there safely.
- FactionGoal_SecureEarthSpace : Changed secondary ship roles to avoid short range ships from jamming things up. This goal inherits short range secondary ship roles, which results in the system failing to build ships for this goal because it will only build short range ships in the same system as the target, but the aliens have no shipyards in the earth system.
- AI_GetBestShipyardForBuild() : do not order more than 2 ships for the same goal at the same shipyard. Emergency builds were slipping through the normal rules for ship ordering, causing one goal to have 30 ships queued at the same shipyard.
- Added AI code to immediately address when an army's faction has changed; factions should now immediately pull out their armies from operations and combat they don't want to be in
- GetBestOperation() : DefendWithFleet fleets now attack weakest habs first
- Add improved handling for fleets with ships that are damaged, out of offensive firepower, or have insufficient acceleration to launch on a trajectory -- ships will now be broken out
- DesignShip() : bare minimum acceleration requirements. System now enforces a bare minimum acceleration requirement. However, if no candidate designs meet that requirement, the system is still allowed to return the best among those candidates.
- DesignShip() : lowered GetMinimumDV() cutoff to 70% of the best DV among candidates. (down from 80%). This only applies when no candidates meet the desired DV requirement.
- Added some better AI mission filtering so they avoid targeting the same nation / control point with counter-productive missions
- improved AI forced mission selection to it doesn't target illegal regions for specific councilors which leads to aborts
- Fix for combat AI asking to end combat due to bloated combat score coming from out of dV missiles
- Work on expand/neutralize project scoring, including a bugfix, also work in alien mission defense project scoring. AI should pursue unification projects and enthrall defenses with more gusto
- adjust hab module project scoring for non-critical modules
- ScoreForRole() : Adjusting weapon score scale; After the recent adjustments and bugfixes to the weapon scoring system, I now need to adjust the scale of the scores to keep them consistent with previous scores.
- made anti-enthrall projects critical
- refactored Jealousy and Deescalation hate code; trade will take this into account and you won't get an NAP with a faction whose gonna cancel it anyway
- decriticaled a few projects
- EvaluateHabModule_PercentChange() : Diminishing returns: Above a certain income level, some resources have diminishing returns. In particular, Operations and to a lesser extent Influence fall into this category. More specifically, the AI has been building an excessive amount of Operations granting hab modules. There is now a cutoff point, above which additional income is scored much lower, so this should happen quite a bit less often.
- AI mechanics for substituting boost to complete ship construction
- HabSchematic.GetOrder() : remove excess power modules after order is completed. This allows the final "packing" step to fill in the extra slot(s) with useful modules.
- HabSchematic.GetOrder() : prefer to remove farms first if order is too large. Farms, being support modules that aren't completely necessary, should be removed from an oversized Order, because the deficit can be made up by build more farms in the subsequent habs. By leaving income producing modules intact, the hab has a better chance of being highly profitable.
- GetMetaScore() : removing excess mission control scoring. The extra scoring for excess MC is definitely a good thing, but until we can quantify what constitutes a worthwhile investment of time, resources, and the opportunity costs involved with dedicating a hab mostly/entirely to producing MC, it poses a risk for the AI to waste the above resources when it could be focusing instead on developing resource incomes that are immediately valuable.
- ScoreDecision.Decide() : Account for the effect of new module on final score, even if it doesn't directly impact the meta score. Previously, only "support" modules - modules whose value scales with the underlying value of the hab received extra points based on how it changed the final score. All other modules only received scoring for their base value, not considering the multipliers applied when computing the meta score. This meant that adding 10% to your base score with a research module, for example, may only increase your final score by 1%. Whereas a support module that was estimated to improve the hab by 5% would of course be scored at 5% of the final score, therefore being picked over the research module (incorrectly).
- ManageHabs() : Decrease frequency of changing a hab's HabSchematic. Hab's changing schematics too often has the potential to make the habs more expensive and less productive while providing little advantage in terms of flexibility.
- ScoreDecision.Decide() : adjust support modules score by how many slots they effectively take up. After accounting for power and farms, a hab module actually takes up more than one slot. To properly score a support module then, you must adjust their score relative to how many slots they take up.
- AI should now only try to end a rivalry once between nations until one side gets an new executive
- Added more AI logic for picking formations
- worked on AI ship designer to help build ships with desirable propulsion stats

UI
- change to auto camera focus behaviour with setting
- Naval status tooltip will now list which wars are causing naval blockade, other small text clarification how a blockade happens
- Shipyard list will sort shipyards around space bodies before shipyards around lagrange points
- right clicking techs will now focus on the clicked tech when the new tree is built.
- Ship designer : made table/icon option global. Now, when you select table or icon view, it applies to all tabs, not just the current tab.
- councilor auto-cycling during mission phase will now skip detained councilors
- added "cycleNextCouncilorWhenAssigningMissions" boolean to TIGlobalConfig. Default is true. If set to false councilors will not cycle when one is assigned a mission. This will eventually be incorporated into the options UI but Caruso is on vacation and I don't want to deal with it
- apply short delay to unpausing when notifications that pause appear to prevent accidental unpausing with simultaneous keypress
- a planet's fleets list will include fleets around other space bodies in the system at bottom of the list
- added UI making clear you can't build a base in alien primary base planetary system
- added UI to space object detail showing solar insolation rating and orbital period
- Added some info to planet tooltip
- clicking on your fleet in fleet detail will now take you to faction-filtered fleets screen. clicking on enemy fleet will now filter factions as well.
- The little resource chevrons now have a king for a best-of-the-best flag
- # narrative events now ranges from 0 to 10 in startup options sted 3 to 7. 0 will disable all non-required events
- Add some more visible numbers to ship/fleet lists
- ship class list now shows assault value, combat acceleration and number built and under construction
- right-click army movement now requires the shift key to activate. Added tooltip to point to this.
- split fleet list will show each ship's assault combat value, also fixed tooltip

Balance
- Fixed exploit where extended pursuit DV consumption would be limited by the lowest-DV ship in the pursuers fleet. Now envelop and extended pursuits have DV costs that depend on the target fleet. This looks like it will make extended pursuits more expensive.
- revert .108 change to hostile takeover. back to admin and less limits on targeting. Will work on better fixes for .4 versions
- Reduced impact of abductions on alien missions on normal (by 1/3) and cinematic (by half). This is intended to make normal and cinematic easier for non-pro-alien players.
- joining or leaving a federation no longer affects GDP or inequality. players kept coming up with exploits and I'm giving up trying to account for them
- toned down impact of religion CP on Unity priority success
- adjustments to climate warming/GDP relationship. started as fixing some bugs, turned into a rework of the math based on Hsiang et al (2017). GDP loss is lower at starting conditions, but inequality now impacts GDP loss on a per-nation basis.
- damage to regions now causes 1 atrocity per 100,000 people killed (minimum 1), max of 20, and no longer requires a single massive strike (like a nuke) to trigger
- extreme temperature anomalies (> Abs 8*C) will reduce population growth calculation
- Alien progression difficulty scaling now affects impact of abductions on alien missions
- worked on code that lets you kill/capture salamander when assassinating or detaining an alien
- megafauna will stop spawning in a region if there are already 5 present and instead the region takes damage
- solar outpost kit to 250 tons for parallel values
- Rule change; If an owned control point is purged or enthralled, that automatically cancels all additional purges and enthralls of that CP for the turn. This should prevent accidentally grabbing an NAP partner's CP.
- frag missiles should now chip armor regardless of whether one frag made it through
- balance: coup missions have added difficulty and take popular support of the exec into account
- Startup options: clamped starting IP productivity range in options from 50% to 200%, figures beyond that were unbalancing things
- Startup options: # narrative events now ranges from 0 to 10. 0 will disable all non-required events
- buffed nanofactory monthly income from 80 to 90
- defeating the alliance leader in a war will not end the war, just remove them from the war and another alliance leader will take over

Content
- You can now set your space skybox (background) in the graphics menu settings for a variety of looks. Even got one with actual constellations.
- Control Point illustrations added and referenced in TIGlobalConfig.cs, only one MIA now is Identity Blocs
- Illustrations for Orbit, Deorbit, and Transfer missions imported and implemented
- Illustrations for Objectives in Researching Biowarfare, Wormholes, Pherocyte Mastery and Chokepoint imported and implemented
- new strategic music track, "Still Hope"
- New Formations: Echelon Wall Right, Echelon Wall Left, Triple Chevrons

A
- disable alt path save option on macos, was preventing macos build
- Added option to turn off animated councilor portraits and just use static portraits. This option is offered for people who experience crashes when opening the council screen.
- Bugfix 3679: Fixed CTD when a deleted fleet's orbital information is requested by a fleet transferring to it.
- 3735 - fixed softlock caused by leaving earth view while a time-blocking change trajectory prompt is visible
- 3738 - fixed bug caused by shift-clicking the same ship for refit to create unlimited refits for that shipstate. Ultimately led to dangerously duplicated data and crashes.
- 3747 - prevent crash that could occur when selecting a councilor that was already selected during mission phase.
- 3727 - fix for softlock with nation removal
- Partial bugfix #3759: avoid CTD, but trajectory calculations still failing. Any time a fleet is destroyed, we go through all active trajectories targeting said fleet and tell them that their destination was destroyed. Previously, we weren't checking trajectories that will be transitioned into after the existing trajectory is completed (for example, when you escort another fleet, you inherit it's trajectory). This is now fixed.
- CreateAtRunTime() : shared trajectory bugfix. When creating a fleet out of part of another fleet, if the originFleet was inTransfer, the new fleet inherits its trajectory, however, it doesn't copy it, resulting in both of them trying to use the same trajectory, which leads to crashes. Now, it simply copies it when assigning.
- attempt fix crash due to possible race condition when a hab is destroyed while it is building ships
- 3769 - fixed crash with combat notification at L-points
- Bugfix #3781. Prevent adhoc orbits from being removed during load (which would cause a CTD).
- fix crash when invalid gotogamestate is passed to alert UI
- make sure a STO laser has a weapon to fix an inexplicable crash
- Attempt fix end-of-combat-crash in the ship overlay UI controller
- fix 3797, crash when AI refitter checks a fleet landed on a planetary outback with no hab
- prevent destroyed ships from being selected in combat. Could cause a rare crash.
- 2561 - guard against crash when exiting to main menu
- 3770 - fixed crash when resolving hab destroyed notification
- fixed crash when loading save with one shipyard that is decommisioning
- Fix NRE when clicking fleet operations in codex
- Fix for possble NRE in AI Voting to End Combat
- Fix for live missile count getting off and resulting in never ending combats
- fix 3857, Crash in army pathfinding code following regime change

B

AI
- AI councilors won't protect each other in a loop; only one will protect the other
- AI PlanMissions() : objective missions must have at least 2% chance of success. Previously, if a objective mission was not dangerous, then it could have an arbitrarily low chance (in one example, a 0.02% chance) of success and still be attempted. Extremely low odds mission waste councilor moves and slider resources.
- calculation fix and adjust "should I join/go to war" scoring
- Fix AI logic bug that would leave a fleet in fear of a hab even after the fleet got bigger
- PlanMissions() : Councilor orbit/deorbit loop bugfix. In this particular case, it was a councilor who was assigned to a capture hab goal, and had the ability to perform a control hab mission, but it was too risky to actually perform. However, this councilor was sent anyways because the system determined that a seize hab mission would be doable - ignoring the fact that the councilor can't actually do a seize hab mission.
- fix 3777, bad calculation of when an AI can inspire a turned councilor that was leading to incorrect dismissals
- BuildSpaceAssets() : sequential goals don't have consistent ordering bugfix. Issue #3764 Without a consistent ordering, sequential goals (like invade earth) can get in eachothers way, preventing any from being completed.
- fix logic bug allowing AI councilors to go on ineligible investigate councilor missions when hunting aliens
- work on army AI logic to prevent megafauna repeated assignment loops #3772
- AI won't split fleets when it's an illegal play
- EvaluateHabModule_LEO() : PropandaStrengthBonus formula mistake bugfix
- HabSchematic.GetOrder() : don't perform the same Decisions more than once. Previously, when expanding an existing hab, the hab AI repeated the Decisions that were already performed in the previous construction. So it would potentially build a guaranteed defense module for each expansion, which is not the intent.
- added more guardrails against alien AI targeting wrong regions with enthralls
- work on forced alien missions AI to prevent terrible mission selection


Events
- fully remove energy crisis event as intended (it was incorrectly re-triggering after a tech was reached)
- #3712: Snap Exercises event now requires different factions, and only the primary nation should receive a follow-up alert
- #3703: habs with no working modules no longer eligible for Hab Revolts
- fixed a bug with the infiltrated event that caused the event to never end
- added options to the infiltrated even money chain
- Europa Event Chain fixed
- fixed localization issue for Infiltrated Event Chain and Global Warming Ice Shelf Collapses Event Chain
- fixed issue where Mercury Exploration event could be triggered by an automated base on the planet.

UI
- fixed tech tree search focusing when tech tree is zoomed
- fix incorrect display of starboard armor integrity in tooltip
- fix councilor icon mission anims not triggering properly when earth map activates
- repeat army and fleet operation buttons will no longer be available if target is invalid
- Mission control tooltip will no longer count under construction cores among under-construction hab module MC cost because cores always count
- ShipWeaponTabPane : right click now toggles table vs icon view, as intended. Issue #3666
- Fleets Screen : removed right click tooltips over tabs that do not have a right click functionality. Issue #3666
- Habitats screen : insufficient power warning bugfix. Issue #3602
- fixed issue with priority template label not updating when in a federation and setting only mc in the template
- fix for some scroll bounds on some selective tech trees
- fix issues with enemy armies appearing in same stack when fighting in an occupied region 3793
- fix 3812, text overflow in candidate traits list
- fix army combat tooltip displaying wrong values
- fix alliance leader string when declaring war and declarer is the alliance leader
- fix text error reporting you've been detained on failing a control space asset on a t2 or t3 hab when you haven't
- 3516 - updated skirmish UI to reflect selected factions
- Fix for tooltips persisting when closing UI while hovering over tooltip
- update dropdown ui when applying global template in nation screen
- fixed some unlocalized UI in councilor screens
- 1555 - fix for some priority tooltips not showing
- 3014- add missing theta character to NotoSans Traditional Chinese Font
- fix for adjusting saved speed higher when game is paused and blocked by event
- repair on arrival toggle will now work in edge case where a ship needs repair but not resupply #3122
- tiny antimatter income in hab summary should show the funky tiny values instead of zero now
- 1542 - Finder filter toggles are now stored in the save

General
- CalcEqualDeltaV() : higher precision. During propellant equalization, the number produce by this method was off by enough that there was a noticeable difference in the amount of fuel sent to the last ship to be given fuel. I've simply upped the precision of the this method to counteract this. It takes something like 25% longer in my tests, but its still very fast so I think that's alright.
- Added another Campaign milestone to notification supression list. Calls on the milestone (AccessAlienLanguage) was causing it to appear as its objective notification. This is solved with its addition here.
- fix a bugged condition given alien councilors a little more freedom of movement than intended after alien nation is founded
- fix bugs in repair and resupply operation. Repair will now count planned repairs for magazines in calculating resupplies. Repairs will always happen before resupply; made this more explicit in text.
- megafauna armies no longer reduce unrest in alien nation because they tried to get megafauna to run a simple checkpoint and they ate all the cars
- fix army assaulting an alien HQ on another nation's soil triggering wars incorrectly
- swapping ship materials between factions in TIFactionTemplate should work now
- AdjustShipyardQueue() : saving target doesn't always goes to the front bugfix. Issue #3764
- Fix 3652. Fix TIHabModuleState.CanUpgrade() not seeing if the potential upgraded module is valid for the hab. Fixes UI element turning on when a hab had no valid upgrades available and appears will affect AI too.
- fix armies / navies IP penalty calculation for alien nation #3775
- when annexing a region with space defenses and the technology to build them has not been unlocked (only occurs when fighting alien nation), the space defenses will be destroyed
- fix 3776, upgrade rules when applying templates
- fix 3725, logic error in creating propellant groups for propellant-sharing
- Fix demanding trait not working correctly
- space bodies will now count stations in orbit as part of its population in all cases (3717)
- hab modules that are an atrocity to destroy no longer cause atrocities when they are only under construction
- attempt fix laser bombardment visualization remaining active after bombardment ends
- attempt fix mission success calculations based on traits were using enemy councilor's (hidden) pending mission location, leading to exploits
- fix 3801, fix bad rivalry creation after white peace when nations are in multiple wars against each other'
- prevent weapon explosions from showing in PIP images
- prevent strat layer weapon explosions from persisting to later dates
- change cinematic encoding from vp8 back to original to address quality complaints
- fix nuclear missiles not firing during bombardment
- a nation's starting IPs in configurable categories are recorded in json as fractional of the total required IPs to support variable total required IP settings. This might affect nation mods if they use starting IPs.
- removed a cached DV max value from ships that got weirdly out of sync with the ship, it'll refer to template going forward
- prohibited servants from attacking alien landings or facilities
- fix shipyardqueueitems containing copy of original ship template; this includes require some save repair for saves to be compatible

(Transfers)
- Bugfix (unnumbered bug John L. discovered yesterday): invalid orbits when testing potential mean anomalies targeting a fleet that's just launched, invalidating an old trajectory. The system to ask the target's eventual orbital elements was invalid -- fixed.
- Possible bugfix for 3798. Transfers that should be solved via orbit phasing are also sent to the PatchedTransfer to handle more complex routes (such as DV hungry fast direct paths). This was breaking the solver if the transfer would be inside the microthrust radius, since it would attempt a 0 duration microthrust and would wait millions of years for orbit phasing to line up first.
- fix some issues with trajectory progress UI and interaction with loiter
- Bugfix #3692: We were incorrectly reading the transfering fleet's orbital state, which could result in impossible orbits. That would break the Master Transfer Planner, preventing transfers from that fleet.
- AbortTransfer() : doomedFleet doesn't formally get a new orbitState bugfix. The "doomedFleet" formed by breaking off ships that cannot complete the original trajectory was simply having its orbitState directly set, which means it misses out on a lot of other important parts of the process of changing the orbitState.Also, a mistake results in the originFleet going in to the ad-hoc orbit as well (its supposed to continue on unhindered). Finally, there was some questionable code nearby that did the same thing (setting orbitState directly), so that's fixed as well.
- TISpaceFleetState.CreateAtRuntime() : doomedFleet appears in the wrong location until time is unpaused bugfix
- AbortTransfer() : Do not clear out transfer for main fleet if only part of the fleet is aborting
- AbortTransfer() : doomedFleet has both a orbitState and a trajectory after aborting parent trajectory bugfix.
- Trajectory.DeTargetFleet() : Not changing destination to destinationOrbit when its supposed to bugfix. Issue #3765
- TISpaceFleetState.CreateAtRunTime() : Fleet teleportation after extended pursuit bugfix. Issue #3753 There's a number of things that needed to be fixed here, but mainly, newly created fleets no longer temporarily go into their parent fleet's originOrbit (which is how they manage to teleport. Instead, they now directly inherit their parent's current trajectory.
- Bugfix #3787: We no longer offer impossible to complete trajectories to fleets attempting an inclination change. If the DV cost is too high, the trajectory is correctly culled.
- Bugfix #3759: fixed bug where orbit phasing was not attempted when transfering to a fleet that was targeting your own orbit, if the destination fleet had to pass through more than one transfer to get there.

(Combat)
- when picking formations with a station, combatants will be placed in front of the hab while noncoms will more consistantly be placed further behind the station.
- Fixed various small formation placement bugs resulting in noncoms being placed in inside combat formations or much too far behind the combat formation.
- Fixed an issue where fleets could be placed extremely far apart in combat
- fixed an issue where the combat camera would be placed in front of the fleet. Combat camera will now always be place behind the fleet.
- Fixed an issue with Intercept Course not respecting dV limits
- Fixed an issue that would cause formations to spread way out when a fleet had tons of ships
- Removed 'Toggle' from Attractive Movement and Repulsive Movement for increased clarity on the control being a hold function.
- EstimateDPS() : isPointDefenseTargetable penalty. Issue #3755. Projectiles that can shot down have a considerably lower chance of hitting in most combat scenarios. I've applied a penalty to the the estimated DPS of such weapons. This is effectively a buff to plasma, and is a big part of the adjustment I'm making to make alien stations start using plasma defenses again.
- SimulateCombat().GetWeaponFrequency() : incorrect total cooldown bugfix
- SimulateCombat().GetChanceToHit() : Chance to fail to shoot down income projectile, taking into account projectile mass. Issue #3701 Previously, in some rare circumstances, a single 30mm autocannon could hold off a fleet of alien missiles and mag cannons due to 1) interceptions being considered guaranteed and 2) in the event of an interception, it was assumed to be a one-hit kill. Now, when firing a projectile at a projectile, they can miss, and in addition, we now compare the "mass damage" per second of the defenders to the mass of the attackers to determine how much mass gets through, and therefore what fraction of weapons get through.
- PrecombatController.OnCombatInitiated() : check whether precombat prompts have already been handled and act accordingly. If the combat UI is waiting on user input to process the next combat, the stances may have already been submitted for the next combat (if its AI vs AI). Therefore, the system may need to proceed immediately to EndPrecombatInteraction() (depending on whether bids still need to be submitted).
- Updates to Formations: Convoy, Cloud, Echelon Right, Echelon Left, Double Chevron, and Block
- Fixed incorrect placements in Column based formations (Duo, Trips, etc)
- Fixed placements in Great Wall formation to fill out a row before starting another row
- EstimateChanceToHit() : Adjusting formula to estimate chance to evade a projectile. Ships had far too high an estimated chance to evade fast moving projectiles like alien mag cannon shots and plasma. Also adjusting the matching formula in SimulateCombat(). Eventually the plan is to merge these.
- ApplyOverkillPenalty() : Lowering the overkill threshold when estimating DPS of alien weapons
- fix #3783, projectile damage will read from weapontemplate rather than forced to kinetic. The practical effect is that plasma will be more effective against Adamantine armor as it resists kinetic damage.
- TIProjectileWeaponTemplate.EstimateChanceToHit() : Higher than 100% chance to hit bugfix. Issue #3755
- Maneuver commands now take into account available combat DV
- Full Speed Ahead now respects dV limits. These should prevent fleets from burning DV reserved to finish a trajectory
- fix light rail cannon mk 1 chipping to .35 in line with other cannon
- CombatAIController : overestimating enemy combat strength when there are no enemy fleets bugfix. Issue #3467
- defensive maneuvering now takes into account dV
- defending fleets auto-merged because they were in a combat zone will preserve their homeport data now
- AI Ships will now withdraw if they are out of dV and 2000km from any targets
- extended radiators will no longer absorb the full brunt of nearby nuclear explosions in space
- Fix for skirmish not using the correct combat resolution code
- Update to missile re-targeting, missiles will correctly re-target their next best target now.

C
- fix for text element partially blocking other UI elements on 3:2 resolutions
- missile trail fix
- added clamp so micromath doesn't put DV/propellant slightly below zero
- knowledge tooltip will display nation-specific education change when education is over 12
- performance fix for redundancy in ship designer during module setup with obsolete modules
- fix missing animation loop for F_EAS_15_Old councilor Video
- fixed voice line cutoff
- widened ship module tooltip in designer to accomodate some strings
- fix for several ui audio sfx/volume issues in nation screen
- 3610 - fix ui issue when toggling resource tabs
- ArmyPathController : reduce added curviness when path is already curvy. In some cases, circuitous paths could end up passing over regions they weren't intended to due to added curviness (for aesthetics). I've adjusted things to try to avoid this situation.
- notifications of xenoforming and alien facility sighted will now trigger when your spy leaks the info to you (rather than only when you do a detect mission)
- councilor assaults on alien facilities on Earth will now provide same details as army assaults
- remove text about fission/fusion tech increases affecting now-disabled energy crisis event
- Pulse drive on type 1 frigate will not float free of the ship's structure
- fix weird angles on hab sites on football-shaped dwarf planets
- Ship explosions and ship lasers are now effected by game time and can be paused
- 3774 - fix 2 crashes when using triggerevent to force events to occur
- 3716 - fix space resource selling text box limit and ui overflow
- 3620 - only show propellant cost in designer when propellant tanks are added
- Terse mode for narrative Event option tooltips with global effects
- nation boost tooltip 30-day history will consistent key on domestic boost production
- 3785 - fixed nation window toggle changing automatically when reopening window
- fixed a handful of public opinion voiceover lines that were cutoff early.
- 3749 - fixed tooltip moving when right-clicking module in ship designer
- fix ship model not updating in certain circumstances in the ship designer
- laser defense templates will update more often for accurate UI reporting
- Bugfix: (from John; no bug number): Stopped repeated "Trajectory_Microthrust.GetOrbitalElementsAtTime() called before arrival time" errors. The arrival time was being improperly calculated -- the error wasn't actually occuring. The error check was removed, and an additional safety added to ensure that GetOrbitalElementsAtTime() produces valid results in the (impossible) event the tested time is outside of bounds.
autocannon sfx adjustment
- Mission description for Protect Target modified for clarity
- Loyalty, when referenced as an attribute capitalized in Mission loc
- Mission to Saturn description modified for readability
- fixed battlecruiser spike radiator clipping
- Fixed overflow on tutorial tip button UI on some languages
- fixed skirmish hull names not updating on language change
- fixed unlocalized string in combat formation UI
- enemy councilors you have intel on who have completed their mission for the turn will say "awaiting next mission phase" instead of "unknown" #3578
- fix 3498, regional defense forces damage display in tooltip
- fix 3710, fixed several issues with "first alert only" notifications and changed how they worked. Now they'll override player settings and force an alert the first time they are triggered, and alert only after that if alert is checked by the player. Savegames will see the first-time alerts trigger once more even if they already have as the data structure for remembering what triggered has changed.
- fix 3259, weapon data in designer will consistently take the presence of magazine modules into account
- Tutorial UI bugfixes. PreferredHeight is wrong in the frame an object is instantiated, GetPreferredValues() forces update without waiting one frame.
- 2715- Custom faction names no longer reset when not changing factions
- 2562 - voice samples are no longer queued when customizing councilor voice
2981 - fixed UI text overflow issue
3842 - Increase scrollbar size in apply hab template UI, adjust apply hab template ui, to hopefully fix reported Steam Deck issue
- fix errant tooltip on l-point orbit lists
- 3844 - Explicitly lightened clouds on cloud cover change for 0.3.110 to fix reddit report that the clouds made part of the map opaque
- fix 2192, spacing in sell resources UI
- fix 1596, 2 row mission scrollbar steps
- fix 3132, refueling allowed with much smaller amounts of propellant used
- A number of UI overflow fixes to handle localized text elements

Performance
- TIFactionState.ResupplyHabs() : use IEnumerable instead of List optimization
-TIFactionState.CanExplore() : caching optimization
-CheckForEffectInContext() : Use GameStateManager.Effects() optimization
-CheckForEffectInContext() : TryGetValue() optimization
-CheckForEffectInAnyContext() : use effectTemplate.GetContexts() optimization
-TISpaceAssetState.GetRandomAssetName() : maximum tries reduction
- cached orbital periods for natural space objects at run-time
- added text to clarify why the defense wins combats with habs
- Small performance optimization for missile re-targeting

Localization
- Updates to French, Japanese, Portuguese, Simplified Chinese

Modding
- First pass at support for audio modding
- Mod request: RemoveEffectFromFaction now removes multiple if a value is specified

0.3.109

Short version: We had to upgrade our Unity version again. This led to a rebuild of some assets and .109 will be a larger download.

Long version: We had been using a particular codec for the councilor videos because it was Linux compatible. But in response to player reports about crashing when loading councilor videos, we found a 50 MB RAM usage spike when each video was loaded -- or up to 400 MB when a full councilor screen was made active. As we aren't planning direct Linux support (Proton works better), we changed to a different codec that only uses 5 MB when loaded. However, our Unity version (2020.3.45) had a bug that caused crashes with this codec in the player -- the instability reported in .108 and the reason we pulled it from validation. We upgraded to the final LTS version of Unity 2020 -- 2020.3.48 -- in which the bug is fixed. But new Unity versions typically require an asset rebuild, which means a larger download on a version update. (It was 3.6 GB in an internal update via Steam from .108.)

UI
- Ship designer now supports setting initial fire modes for ship designs
- Reversed the order of the module tabs to correspond to the ship cross-section
- tech tree changes, cost sorting
- added zoom-out to tech tree UI (shortcut ctrl + mousewheel)
- added option to hide fleet and hab orbit trails on fast game speeds.
- added option to leave UI panels open when focusing councilor during start of mission phase

Content
- two new music tracks
- new objective and control point illustrations

Balance
- Standardized gas core reactor crews
- Reduced jitter slightly on 960cm laser cannon

AI
- HumanHabPlanner : Delay renovations until ShouldExpand() is true. This prevents hab renovations from happening before the AI has (mostly) performed all possible upgrades and filled in all their habs with modules.
- AI won't try as hard to use spoils to reduce elite unhappiness

A
- Fix crashing when councilor videos were loaded.
- added some safety code to prevent race condition that seems to have caused a rare crash when a base is destroyed in the same moment it is completed and the AI tries to build subsequent goals

B
- orgs that provide only admin for itself will not be exempt from direct hostile takeover
- Fix some logic bugs in project selection, notably when assessing weapon systems

C
- 3698 - alien ship module data in fleet screen tooltips is correctly hidden by exploration distance
- GDP rather than research output being displayed for the Research hover tooltip, now rectified.

0.3.108

NOTE: We are investigating some instabilities in this patch. Players wanting a more stable experience should play Beta or default branches.

NOTE 2: This will unfortunately be a large download with the changes to the animated councilor portraits, which are being made to increase game stability.

NOTE 3: Due to staff travel the build machine will be offline through Sept. 5, so there will be no hotfixes to this build on the validation branch until then.

Settings
- Added option for SMAA antialiasing. It's generally not as nice as existing AA, but Radeon cards will default to this as we're trying to fix the "screen of static" bug in combat. Let us know if it goes away.

Balance / Rules
- added mass direct to protium converter torch because it's open-cycle status is in question and it really needs some balancing anyhow
- Hostile Takeover cannot target orgs that are currently providing admin used in the control of other orgs. (Specifically, a councilor must have spare admin (including counting any overage) >= to the org's admin value)
- Hostile Takeover uses persuasion to attack instead of admin
- SimulateCombat() : small defenseFrequency penalty. Applied a small penalty to defenseFreqency to represent the practical difficulty in shooting down projectiles that are coming in close the maximum rate of PD.
- increase Ukraine build army starting ips to 45/60
- Bombardment counterfire will no longer be processed independently of bombardment; surface to orbit weapons will now fire back everytime bombardment is processed. This should make the process more reliable (in code).

AI
- ManageFoundGoals() : fissiles tiebreaker Added in special scoring for hab sites with fissiles to help choose between hab sites with similar scores.
- adjust AI assessment of a nation's military needs that advise priorities to consider nuclear capability and strength of individual alliances opposing the nation
- adjust numnukesdefendingme to account for allies always saving one nuke to protect themselves
- slight rework of AI policy scoring, main fix is that AI will use the same function to doublecheck whether it wants to go ahead with the policy when the mission triggers. This was preventing most peace offers from being accepted. Further work on stalemate recognition and response.
- Human AI will take NAPs and truces into account when picking a focus fire nation to go after. (The AI *REALLY* wants what it defines as a major power under its banner and will relentlessly go after one until it has one. This is more important to it than being friendly to you. But it will now try to filter out nations belonging to friendly factions in picking; if it can't find one, it'll still come after you.)
- SpaceifyNation goal will favor economy priority in addition to others
- Work on army AI to try to get it to not suicide into a superior force and gang up its forces on a particular location better. not sure how well it's working yet

Content
- New VFX when a ship weapon is destroyed

UI
- Added Delete Tooltip for priority templates that cannot be deleted

A
- Fix case when you use ship designer keybind ("U") to open designer before you've developed the ability to build ships. This would lead to crashes if you continued to try to use the designer after the bugged screen appeared.
- 3684 - prevent crashes for nonexistent assetbundles when mods are disabled

B
- Fix for over 100% priority bug
- Fixed a bug that would clear the nuke priority in the prioirty settings menu under the NationInfoCanvas
- OnMissionSelected() : better button change detection. This may resolve an issue where sometimes after confirming a mission, the player's councilor is actually assigned a different mission.
- fix accidental buff to max output of Solid Core Reactor 2 that was meant for 3
- fix a calculation error in rivals impact on cohesion
- Bugfix #3435: The transfer planner had some inconsistencies when the transfering fleet already had a trajectory (because it just completed combat and is picking a new destination). Namely, the incorrect momentary orbital elements were being used. In addition, there was a bug in the recent Torch trajectories that incorrectly checked whether the fleet had sufficient DV to complete the trajectory.
- AI/ManageFoundGoals() : luna habsite scoring bugfix
- Change transcoding of councilor videos, reduces memory usage in video players.
- adjusted rules for aliens traveling to non-adjacent regions and fixed some weird settings there (alien nation allies and federation members now legal, for example)
- Fix bad AI hull weapon designer code that was quitting before all hull slots were filled with weapons to kill you until you are dead
- 3647 - fixed UI inconsistencies with marking obsolete parts
- fix bad alliance / declare war button interactability setting in prompt to move army

C
- 3657 - fixed campaign option professions not updating when changing languages
- language options are now translated when changing languages
- Fix for pause no toggle hotkey not working in combat
- 3659 - fix for nuclear strike target text not visible
- resource bar font scaling fix
- Updated a number of org logos that were mostly or all black and hard to see in the background

Modding
- added globalconfig field "savepath" for manually designating a save directory for someone who lacked server permissions to save to MyDocuments folder
Locked