Patch notes 0.4.53 - 0.4.78

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

Patch notes 0.4.53 - 0.4.78

Post by johnnylump »

0.4.78

A
- Fix a crash when a ship in the middle of an intra-fleet fuel transfer is destroyed in combat. Such operations will be cancelled when the combat starts.

0.4.77

A
- Fix a crash when a damage AI fleet heading off into the void between the stars is queried whether it can take on an attack goal

Balance
- Increased alien hate bleed off for destroying T2/T3 hab modules.

0.4.76

A
- Fix a crash stemming from a situation where nation without an executive faction conquers another nation that has enemy alien nation armies present (including megafauna) and the alien faction may gaining control points in that conquered nation.

0.4.75

A
- Fix a crash related to Microthrust transfers.

0.4.74

AI
- JealousyAndDeescalation : alien jealousy doesn't spread to proxy/appeaser factions anymore
- ComputeFactionStengthEstimates() : Added some alien fleet strength to alien proxy's fleet score. Specifically, added alien's earth presence and a small fraction of its non-earth fleet strength. Both of these are significantly discounted to account for the fact that alien ship scores tend to be inflated, and because the proxy does not directly control the alien fleets.
- AlienHabPlanner.ManageHabGoals() : Promote most important base founding goal to very high importance. Sometimes (especially on harder difficulties) the aliens may not prioritize founding bases, resulting a very slow resource expansion.

B
- SimulateCombat() : added targeting computer support


0.4.73

AI
- FactionGoal_WarOnFaction.DailyGoalMaintenance() : slowly cycle attack goals to avoid getting stuck.
- JealousyAndDeescalation() : increased rate of alien hate loss if enmyFaction is not the most threatening enemy. This is to avoid the aliens having too many wars going on simultaneously.
- JealousyAndDeescalation() : narrowed conditions for increased alien periodic hate loss to when the aliens have more than 2 wars going
- FactionGoal_WarOnFaction.DailyGoalMaintenance() : reduced rate of attack cycling
- FarmDecision.Decide() : updated to match new farm mechanics Previously this method assumed that all water/volatiles support costs could be mitigated using farms. That's no longer true.

UI
- 5114 - automatic selection of councilors for missions now uses the order the player has arranged them in finder
- friendly small ship cards will show alert when ship is in collision avoidance and detail in tooltip
- added icon to individual weapon cards when ECM

Balance/Gameplay
- Starting battles via an STO launch can no longer target habs with a 3rd faction's fleet docked there.
- increased volatiles output on carbonaceous asteroids, vestoids, and some moons

A
- added nre safety for tooltip crash
- fix crash-causing issues with nose weapon layouts in alien lancer and titan

B
- FactionGoal_AttackWithFleet bugfix : duplicate attack goals
- AIEvaluators.GetNearbySpaceAssetTarget() bugfix : Followup attacks had a chance to attack any enemy faction regardless of war/trespassing status
- fix a bug where armies set to auto-hunt would fail to spread out in different regions as intended
- fix an AI logic error in spoils needs calculation that was sometimes causing nations to do too many spoils
- 5217 fix Reworked logic so alt-objective project triggers function as a proper ||
- Ensuring that we always attempt an impulse-microthrust hybrid transfer when the transfer target is itself transfering.
- Orbit Phasing: found two places where we weren't using the standard DoWeKnowThatFleetIsTransfering() and instead had a hardcoded check that sometimes didn't match. Fixed.
- PatchedTransfer: found a place where we weren't using the standard value for max transfer durations (2 years) and instead had it hard coded. Fixed.

C
- 5218 - fixed sub tech tree not updating when re-entering tech tree after time passes
- Volume adjustment so alien growl no longer jumpscares players with headphones as much
- more fixes to detecting and displaying priority preset
- fixed some Polish text overflowing off screen
- 5015 - reset scroll position when selecting different techs in archive

0.4.72

AI
- FactionGoal_FoundHab.GrantMissionControlIndulgence : Limited this to only systems with more than 4 hab sites

Balance
- added test stuff (turned off by default in config) to better handle point defense fire at saturated targets to preserve ammo

A
- fix 5120, crash when clicking delete ship module while comparing to another module
- fix 5122, crash when AI fleet in involuntary transfer is pinged to select an operation

B
- Bugfix #5142c: Previously, a fleet in transfer that was being instructed to transfer to a new destination, where the original and new destination would require a microthrust-only-transfer to get between, would cause the Master Transfer Planner to fail with a "An error occured while computing transfers." This happened because the microthrust-only-transfers were taking the fleet's current orbital information instead of waiting until it arrived after its existing trajectory. That's now fixed.
- Fix 5142c: After concluding a combat while in transfer, a fleet may be able to target a new destination. This would cause a "Code Path Not Implemented" failure if that destination is in the same orbit as its original destination. The root cause is that the patched transfer planner doesn't handle trajectories within the same orbit (that's what orbit phasing is for). This is solved by reducing the maximum duration of the transfer to the remaining duration of the existing transfer (instead of ~2 years).
- Bugfix #5142b: The Householder iteration scheme for our Lambert Solver is unstable when the trajectory is nearly parabolic. This would (and still does) cause the transfer planner to fail. The fix is that it is caught and fails earlier, without making other systems unstable.
- fix #5212 old capital still displays nation's control points after capital is liberated
- SingleFleetOperation() : do not remove ships based on dv if the lowestDVFound is infinity. Otherwise, all the ships are slated for removal which prevents removing ships with poor mobility from the fleet.
- Bugfix #5142e: The code that decides what strategy to apply to find a patched trajectory now uses the fleet's eventual barycenter instead of its current barycenter if it is in a transfer, as that'll be more accurate for most of the possible launch times. We no longer calculate the ideal mean anomaly after multiple Ward spirals if, in the specific case, the fleet is around the common barycenter and thus needs no Ward spirals.
- fix org initialization that was putting intended government priority bonuses into knowledge. Needs new campaign to take effect for existing orgs.

C
- 5125 - fix for being able to obsolete projects for objectives that are not yet unlocked

0.4.71

Performance
- Work on performance taking in fleet screen, specifically ship designer, should get better

A
- Fix crash when the ||redacted|| is almost fully conquered and tries to set an occupied colony region as its capital

B
- Fix +/- buttons not working correctly in STO launch UI

0.4.70

Balance
- #5206 change to how officer promotion bonus mechanics work; they now are multiplicative bonuses to base value instead of purely additive. Old way was causing waaaay too many promotions from lopsided combats.
- changed math on how many STO fighters an Earth region can host. Now requires 1 monthly boost to have any, then it's 1 per 4 boost, with any fraction rounded up.
- Factions will no longer gain hate when attacking in combat and suffering losses; previously there were cases where they would
- The Aliens will no longer vent hate for any combat kills in Jupiter or beyond, or on space bodies where they have a base, or in non-Earth systems where they have a station

UI
- [#5189] Added 'duplicate ship' + button in Skirmish setup fleet lists
- added tooltips to a bunch of list items in the space object detail panel
- [#5205] Added "Compare" mode for Module information in Ship Designer to toggle between unified and split module data views
- Improved Ship Designer Module Info panel performance by removing unnecessary UI elements and components

AI
- AIEvaluators.GetFutureSystem() : Handling interception fleets.
- AIEvaluators.SystemFleetStrengths() : Refits no longer invisible.
- ComputeDesiredFleetCombatValueForAttack() : Tamped down the gangup and outnumbering numbers for alien attacks
- AIEvaluators.FactionFleetStrengths : added randomization to timing of cache update
- ComputeDesiredFleetCombatValueForAttack() : simplified formula for outnumberingTargetFleetStrength


A
- combat crash fix when box-selecting ships immediately when they are destroyed
- crash fix for designer-transfer ui interaction when transfer setup was not complete

B
- Fixed bug when keeping an old trajectory that has the same destination -- it was throwing away the first non-burn segment, which could cause fleet yeeting.
- [5207] fix atrocities not accumulating correctly when a hab is destroyed all at once, recent bug
- Bugfix: If a fleet is in the middle of an involuntary transfer that's being interrupted with a new transfer, we now allow burns in that original transfer to be interrupted. Previously, the burns were assumed to be necessary for the new transfer.
- Bugfix: emergency burns (to avoid leaving the solar system / crashing into a planet) are not involuntary -- thus they can be interrupted with new trajectories. Furthermore, players can split their fleet when on an involuntary trajectory. Thus, if a fleet has a ship with a wrecked engine and is on an emergency burn that (due to the engine damage) would take years to complete, the player can now drop the damaged ship and give orders to the remainder of the fleet.
- Bugfix: we now create a new burn to replace a burn that's shortened due to being interrupted by a new trajectory. Previously we'd just shorten the burn, which was fine for microthrust spirals but would cause the burn's Bezier description to become nonsense, resulting in moderate fleet yeeting,
- Fixed a DateTime out of bounds error when calculating the earliest possible safe start time of a burn leaving an orbit with a duration of over a century. We don't need to know that, since it's in the past anyway.
- Fixed bug when keeping an old trajectory that has the same destination -- it was throwing away the first non-burn segment, which could cause fleet yeeting.

C
- #5203 added missing icon designation for logpactends, which was preventing it from showing up in newsfeed
- [#5170] Fixed a bug where resources in the Faction Intel screen could be slightly misaligned
- fix issues with ledger showing hab module mission control, incomes from alien diplomacy, and project income totals
- [#5202] Fixed a bug where Ship Construction list items in the Ship Construction tab could remain highlighted when not selected
- [#5182] Fixed a bug where column widths in Ship Designer module tables wouldn't properly update to the correct size
- Fixed a bug where text boxes in the Module Info panel in the Ship Designer would sometimes size incorrectly
- discovered councilor notification summary fix for level of detail known about target
- fix some clunky UI in the fighters screen

0.4.69

A
- 5197 - fixed crash when search contains name of a refitting ship
- 5201 - crash fix for milestone save repair

B
- JealousyAndDeescalation() bugfix : incorrect sign during "deescalation." Testing suggests this was the cause of AI overkill in recent builds.

0.4.68

B
- Fix a bugged AI calculation about appropriate fleet size for attacks that might be contributing to AI overkill
- fix 5199, intel sharing agreement not going away when faction breaks NAP due to faction unlocking victory conditions

0.4.67

Balance
- Infrared lasers given wavelength of 810nm sted 1080nm. This should make them somewhat stronger.

A
- fix crash when an AI assembly point gets blown up; game should now either discard the assembly point or find a nearby alternative with the added bonus of not crashing
- fix crash when a ship has multiple weapons of the same type serving in a point defense role

0.4.66

Updated localization

Balance
- AIDailyFactionPlanner.GetMonthlyAlienHateGain() : Adjusted alien hate gain numbers and added config parameters to control it. Overall slowed hate gain down a bit. Extremist anti-alien factions (HF in non-modded games) gained an additional hate gain penalty (meaning it goes up faster in this case). Narrowed the hate gain range based on ideology, making hate gain more about the threat the faction poses. Steady alien hate gain no longer applies to cinematic mode.
- Added alien pity mechanic - Aliens vent a large amount of hate if they beat up on a faction that has fallen significantly from its peak. Currently I've only enabled this for cinematic and normal difficulty.
- aliens will now vent some hate/threat when they assassinate one of your councilors. scales with councilor's raw attribute scores.
- added a bunch of difficulty-based hate and AI fleet size config. Aliens will get 1) increased hate reduction for killing mines and construction modules; 2) get increased hate reduction for killing any hab modules on lower difficulties; a "doomstack limitation" cap to their attack fleet strength relative to their target that varies by difficulty and will start low and increase over time
- completion of core eco, mining, oil, decontaminate, and decolonize now tracked on a regional basis instead of a nation one to head off exploits when regions change nations. This required resetting all accumulated triggers so all existing progress in beta/validation/experimental saves will be lost.
- increased number of eco priority to trigger core eco region upgrade from 1000 to 1200

AI
- AI will value espionage and investigation even more if it's hunting aliens
- IsSystemContested() : for friendly strength, only consider fleets that are currently at the location, not simply heading there
- LegacyHabPlanner.FoundHabs() : do not found habs where its unsafe

Performance
- ShouldSystemBeInDefenseMode() optimization : more efficient short-circuiting


A
- fix UI related crash when player attacks unarmed hab with only exofighters
- [#5187] Fixed a bug where attempting to check the number of enemy armies in a region would crash the game when related values were null
- fix a bombardment crash (new in 0.4.64) if an under construction module has some out-of-sync data
- fix a crash after disbanding an army and some wonky stuff happens in the finder

B
- officer-promotions related effects will now work on spawning officers, not just promoting existing ones
- [#5159] Fixed a bug where nations' Priority preset would display incorrectly
- fix for aoe warhead damage against heavy armor
- fix some colony region oriented behaviors when capitals change and regions are annexed
- HabitatsScreenController.PopupModuleManagement() bugfix : When replacing a solar power module, the system didn't use ProspectivePower() to accurately assess the effect on total hab power
- TIGlobalResearchState.GetExpectedWinner() bugfix : System could return arbitrary faction if no factions were working on the given tech/project, even if there is a leader in terms of past contributions
- fixed a couple cases of camera automatically moving after closing fleet panel & hab destruction

C
- Attempt fix an issue when targeting a space body operation while having another asset open. Should allow STO fighter targeting while your army/fleet/councilor UI element is open.
- armor integrity and SI tooltip will also show armor value
- fixed old orange combat pause button image

Misc
- Neutron Flux drives now called "Poseidon" because it's a better description (the technical term is "Nuclear Salt-Water Drive" which I always thought was a little prosaic given you're riding a continuous nuclear explosion with these things. anyway sorry for the confusion
- Had to rename Poseidon Torpedoes to Hestia because of above. (Somebody suggested this because she's goddess of the home and this is the best HOMING torpedo ... I'm really not sure how I feel about this)



0.4.65

AI
- AI will take raw boost/funding production into account in evaluating nations and control points when in a federation
- work on AI alien ship designer armoring, and hull selection for certain T1 tech level ship roles so they didn't make ships that couldn't fly
- fix some issues so the AI is way more likely to ally nations it intends to federate and unify

A
- Fixed a bug where the game crashes when viewing the final step of the Transfer Planner tutorial
- fix logic error leading to unfulfillable space-economic victory condition for initiative and academy, new in 0.4.61
- OptionsScreenController.Hide() bugfix : always call CoroutineDummy.Singleton.UnpauseAll() to avoid freezing coroutines.
- SimulateCombat() bugfix : CoroutineDummy.Singleton.pauseAll didn't actually pause this method. This was causing extreme slowdowns during simulated combat when the player activated the options menu.

B
- Fixed a bug where the Intel screen Aliens tab tutorial would not display
- fix small remainder from public campaigns going into undecided, was cause of slight drift to undecided since 0.4.61
- HumanHabPlanner.ManageFoundGoals() bugfix : Do not cancel found goals where assignedFleet is in transfer or at the target system
- TIFactionState.RecalculateIncomes() bugfix : wasn't updating revenue
- HumanHabPlanner.ManageFoundGoals() bugfix : Didn't search through hab sites in the same system that can be founded locally, only same space body.


0.4.64

Balance
- limited circumstances in which an under construction hab core will reduce alien anger when destroyed and limited amount of anger reduction when it is destroyed

AI
- adjustment to AI evaluation of XP-scaling traits; by adjustment I mean adding some
- further work on AI public campaign scoring
- remove some ai paranoia when org pool is raided that was causing an overreaction, like it's just a bookstore, AI, you don't have to send everyone to ground four turns in a row
- TIFactionState.RecalculateIncomes() : force recalculation
- EvaluateHabModule_PercentChange() : organization; added penalty to basic space resources (sans fissiles). Space resources all serve a similar purpose - building habs and fleets. And yet previously they were each considered equally valuable to more unique resources like money or influence. I think this is a bit too much so I'm applying a penalty to tamp this down.
- EvaluateHabModule_PercentChange() : adjusted revenueScoreFraction for Money. Money is mainly a revenue resource (its hard to assess it by looking at change to net income because net income is generally the tip of the iceberg) so I've increased the proportion of its score that comes from change to revenue.
- EvaluateHabModule_PercentChange() : adjusted shipyard scoring. Shipyards that are already in the Order now count towards the existing income.
Those same shipyards are also counted towards shipyards that aren't being used. Finally, shipyards that are inactive now also count towards not being used shipyards.
- EvaluateHabModule_Strategy() bugfix : This method now scales with preferences.Weight
- EvaluateHabModule_PercentChange() : module size score adjustment now applies to costScore as well as incomeScore.
- ScoreDecision.Decide() : improved formula for meta-score effecting hab modules
- FarmDecision : adjusted numbers here to require less farms
- HumanHabPlanner.ShouldExpand() : Added minimum stationMCFraction, ignoring finances.
- HabSchematicOrder.GetMetaScore() : added penalty to mission control modifier if faction is experiencing financial difficulties. This should reduce construction of mission control boosting hab modules when the faction is strapped for cash.
- AIEvaluators.GetMoneySituation() : Added stockpile exceptions. If the faction has large money stockpiles, their money situation may now be upgraded.
- HabSchematic : Constructors now copy preferences rather than using them directly. This is safer.

A
- fix 5179, additional case in which trying to move armies and target nukes at the same time would lead to a crash
- fix crash when game checks for an ideology condition for an ideology not in the game. new bug in 0.4.61
- [0.4.63] #5185. fix a crash when AI plans a retaliation against you but can't find any space assets of yours to blow up, so it blows up the game instead

B
- EvaluateHabModule_PercentChange() bugfix : cachedPlannedRevenueFromHab was set to the wrong value
- EvaluateHabModule_PercentChange() bugfix : revenuePoints were being calculating incorrectly
- GetBestOperation() bugfix : AI could not go through with certain (valid) attacks if they weren't at war with the target
- GetBestOperation() : AIs now must undock from enemy stations if they do not wish to destroy them. This is to avoid getting stuck there, as they -cannot "hunt" while docked at an enemy station.
- GetBestOperation() bugfix : Base attack fleets could get stuck if they found themselves at the right space body but too high to bombard.

C
- Fixed a bug where the Fleet UI wouldn't immediately update when an operation starts
- fix [0.4.60+] Faction Modifiers Tab description UI obscures a portion of the list of modifiers behind it. #5181
- add text that notes that spoils priority produces negative public opinion effect
- [#5183] Fixed a bug where the UI scrollbar on the Control Point Influence Summary window would instead control the scrollbar of the entire Nations Screen window

0.4.63

A
- fix crash in TIFactionGoal in AssignFleet, when a null fleet is passed to be unassigned
- attempt fix malformed AI code that was incorrectly adding regions to nations that did not control them, leading to crashes and altogether very bad things, man
- fix crash when in operation-region targeting and trying to launch nuclear weapons. Operation will close now when you try this.

C
- fix for bad icon for alien surveillance operation in fleet list


0.4.62

A
- Fix crash when decommissioning habs (new in .61)

0.4.61

Performance
- overhaul of propagandaonpop logic to improve performance #5155
- AIEvaluators.EvaluateHabModule_PercentChange() optimization : skip resources for which there are no costs or incomes, additional microoptimizations
- TISpaceShipTemplate : added in caching for a number of expensive module collection properties. This should significantly improve performance as AI considerings refits.

Balance
- crackdowned cps no longer provide propaganda benefit to owning faction when unity triggers
- adjusted protectorate space victory conditions
- Added a new victory condition type requiring a T3 fully kitted base in every major planetary system that can support one, to be utilized by the Academy and Initiative. Academy loses GDP on Earth requirement and Initiative loses population on Earth conditions.
- Gave landed REDACTED an modest innate anti-bombardment PD value and more hit points.
- regular armies at TL >= 4 also get a small anti-bombardment PD value, will probably add some projects to help in the future
- when aliens destroy a hab, they gain intel on the owning faction (like humans do when they capture one)

AI
- FactionGoal_Fleet.ReadyForTransferToTarget() : Added exception to desiredFleetCombatValue rule. Certain fleets may find themselves within spitting distance of their target but turn around and leave (or worse, freeze) because they aren't quite meeting the strength requirements _of the location_. If they've already taken on the risk of being there, they might as well go through with their mission.
- FactionGoal_FoundSurveillanceStation : no longer overrides DailyGoalMaintenance(), allowing it to use the standard behavior for dealing with the target orbit being taken. It does however now modify the list of AlternativeOrbits().
- HabSchematicOrder.GetMetaScore() : tamped down the net-zero MC usage bonus a lot.
- adjustments to alien hunt AI
- AIEvaluators.EvaluateHabModule_LEO() : Added scoring bonus to AlienDetectionBonus granting hab modules in LEO if faction is currentlyDetectingHydra
- aliens blowing up an under construction module will now reduce their anger IF it's being built over a prior module, based on the lower of the new and old module's tiers. It also vents a tiny bit if the module slot is newly under construction but the hab has completed its core. Previously, no hate was lost if an under construction module was hit,
- increase alien anger at you for bombing one of their ||redacted|| landed on Earth, AI will also prepare retaliation in that instance.

A
- Fix crash when AI considering bombing a target with no faction affiliation and checks for NAPs/Truces

B
- fix 5163 Discrepancy in Hab Crew Upkeep cost calculation between GetMonthlySupportCost and GetNetCurrentMonthlyIncome in TiHabState
- #5162 fix logic error causing powerful region defenses to have lower than intended success chance against alien megafauna
- #5158 Reworked AI war planning to have consistent ally behavior when considering the war and then actually declaring it. AI should launch smarter wars now.
- StratCombatInitStrategy.SelectStance() : Fixed YARE (Yet Another Redwah Exploit) where fleets without weapons could force AI fleets to pursue them. This applied to all AI fleets, even those who would normally be required to evade.
- TIFactionState.RecordTransaction() : sanitizing stacktrace labels. May fix the save editor mod?
- completing construction of a hab module will not re-unlock a project if it's already been completed. Should prevent pointless re-trigger of a new home project for Project Exodus
- fix some potentially significant bugs in alien anger reduction on destruction of ships and hab modules that was preventing values from going down in some cases

C
- Fixed a bug where objectives following category headers would be incorrectly highlighted in the objectives screen

0.4.60

B
- fix bad dots in column 5 of nation priority manager
- fix appease and escape faction objective order before victory condition unlocks
- fix assault xenoforming councilor mission destroying some xenoforming even on a failure roll; capped the amount of xenoforming destruction from a single bombardment shot

C
- fix hab crew and gravity data displaying in hab screen when no hab is selected

0.4.59

Balance
- Reduced army bombardment splash damage to region, reduced army bombardment damage multiplier from kinetics (still better than lasers)
- Reduced exotics reward from alien hab assaults somewhat, still should be plenty
- Newly found alien facilities, and the capital of the *redacted*, will spawn investigate-able abduction and enthrall missions for factions that haven't otherwise found them yet. These aren't actual missions that mark an alien operative but just things to investigate if a faction (AI or human) is really badly stuck in the early objective track.
- The first detected alien facility, and the creation of the *redacted*, will satisfy pro-alien factions contact an alien objective requirements if not already satisfied.
- reduced mitigating impact of low education on inequality
- randomized order of mid monthly update to balance how orgs are passed around between faction markets
- techs that unlock orgs will also immediately create some of those orgs and add them to the general pool that rotates between factions, so they should become available sooner
- delayed alien observation station goal by 1 year
- restore 0.4.38 ops center/command center hab module crew/costs/power (so greater requirements)
- restore 0.4.38 MC IPs (25 sted 20)
- reduced national cap on funding to .5% of GDP, increased funding influence requirement for IP by 30%
- victory conditions: most factions space-oriented victory conditions updated. generally they require taking out all enemy t3 bases (or stations and bases in some cases) around the major planets and all large enemy fleets around the major planets. (These requirements are somewhat reduced from the Humanity First requirements we've been testing).

UI
- Split Ship Designer Module Info panel into separate Selected Module and Installed Module panels
- added some missing UI feedback audio in general controls

AI
- FactionGoal_WarOnFaction.DailyGoalMaintenance() : if targetFaction has no fleets, its last in line to be the most important war goal.
- FactionGoal_WarOnFaction.DailyGoalMaintenance() : only choose attack targets from pool of targets that don't already have attacks ordered against them
- FactionGoal_WarOnFaction.DailyGoalMaintenance() : Added ability for mostImportantWar to add extra attacks if there are unused ships available to undertake them
- FactionGoal_AssembleFleet : reworked to support use case of ensuring aliens keep building ships (as long as they have the fuel to support them). All AI factions now must have an assemble goal if they aren't experiencing fuel shortages. Once those shortages begin, the goal is discarded, and recreated if/when the situation improves. This addresses situations where the aliens don't have any fleet goals that want ships and therefore just stop building. I think this was the original intent of the start-of-campaign assemble fleet goal however that goal could easily be discarded and then was never replaced. FactionGoal_AssembleFleet was greatly simplified in this commit because its design bore little resemblance to its actual use cases in the code. Some of its unused features were clearly broken.
AlienHabPlanner.ManageHabGoals() : Added a small number of forced fuel bases. These fuel bases are built after the faction has reached its "proactive" base limit. I'm introducing this due to the fact that sometimes the aliens manage their fuel so well that they don't trigger the code that builds fuel bases in response to fuel crises. This is intended, but the side effect is that their ratio of fuel bases to normal bases is not ideal and thus they end up having to be more passive to avoid running out of fuel.
- JealousyAndDeescalation() : increased overall alien hate gain rate a bit. In exchange, I lowered the alien's hate gain rate based on ideology. This effectively increases the rate at which the aliens go to war with the most threatening faction while slowing the others, meaning its less likely for the aliens to go to war with the anti-alien factions all at once.
- Worked on AI for the AI to look harder for aliens.
- reduce AI use of propaganda mission on targets with no related faction goal and overall prop mission scoring
- increased number of situations where AI will build nukes in its nations (mostly revolving around *redacted* existing)
- added AI to make sure early councilor hires aren't all about making war on other factions and can't help the faction in general. This is an attempt to address some reports about players getting weird trade offers in the first couple of months of the game; this was occurring in one case because the AI faction hired a rebel without control nation, propaganda, or advise missions, and it couldn't do unrest/purge etc because we're trying to reduce random faction attacks on other factions, so it couldn't think of anything else to do but offer a trade.
- SelectHabToAttack() : Removed preference for defenseless bases. This is easily exploited and is contrary to the intent of this method - to find valuable hab targets to attack. I also simplified the random selection weights. It now simply goes by mass with a slight preference for bases.
- GetNearbySpaceAssetTarget() : May now select non-defenseless bases. But it still prefers them if they have significant mass.
- BuildSpaceAssets() : Never build ships if fleetGoal.NeedsShipsOrdered() is false
- InvadeEarth, TransportCouncilorsWithFleet : Aliens now order attacks on space defenses if it has nowhere to land/crashdown

A
- Downgrading OSAException AssertValidWidthHeight from exception to logerror to prevent crashes due to false positives when trying to detect negative canvas height
- fix for crash in councilor screen when mission planning is resolving
- part 2 of fixing reinforcement swap posture crash - fix now works correctly when enemy only has hab
- Fix 5119, crash when you try to make a bad officer swap; instead it tries to warn you
- 5141 fix attempt; Added GameControl.gameStartedUnloading to signal unload for shutdown race conditions
- 5143 - fixed ship UI listeners getting out of sync when swapping reinforcements precombat
- [#4917] Added null reference protections for UI lists
- crash fix for AI narrative event resolution
- On Startup, game will catch if you have permissions issues with cloud storage because you're using a work computer or something and alert you to the problem in a popup, rather than crash when creating your profile and then generating bad reviews on Steam. Game will still not allow campaign start in this situation.
- [#5157] Fixed a bug where selecting certain Earth Map Modes would crash the game. Affected map modes: Alliance Status; Nation Claims; Federation; Can Join Federation

B
- #5107 Alien bombardment of surface bases should vent hate correctly
- Marine officers should actually die now when they are killed in assaults
- #5110 You may no longer use boost to found bases on space bodies where you learned prospecting data from aliens before researching the corresponding global tech
- #5123 fix logic in ship template role autoassignment
- #5103 cracked down control points will no longer provide mission bonuses based on their type
- #5109 you will be able to equip orgs while around and on Luna just like the text says you can
- [#5014] Fixed a bug where the first policy in the policies tab would be hidden. Because of incorrectly configured UI layout components, sometimes the top of the policy list would be hidden behind the header object
- GetNearbySpaceAssetTarget() bugfix : When choosing a fully random target, only choose from habs if there are actually habs available
- CanFulfullGoal() bugfix : Added SurveilEarth case. Surveillance fleets were 1) Free to head straight to earth without a surveillance ship 2) Free to remove a surveillance ship if they had one.
- GetResourceBasedMaximumFleetSize() bugfix : Adjusted time and cost limit minimums towards zero Previously even a target with a kill value of zero was still allowed to use 30 days of income and and 10% of the entire fleet for one year. This was not intended.
- GetResourceBasedMaximumFleetSize() bugfix : expectedCasualtyRate intended for base attacks was being used by stations.
- FactionGoal_FoundHab.RequiresFleet() : If a hab can be founded at the target location using boost, then return false.
- FactionGoal_FoundBase.DailyGoalMaintenance() bugfix : Discard goal if site is taken and there are no alternative options
- FactionGoal_FoundBase.DailyGoalMaintenance() : removed case where inferior habsite was permitted to be switched to.
- fix 5100, Farms will now offset under construction module crew costs in all cases
- Fix 5108, alien activity markers will expire after 2 months, sted 1, to ensure you can investigate it during extended turn period. Will not fix existing "live" markers in saves.
- Fix 5093, fix user settings for one-time alerts being recorded properly
- [#5137] Fixed an issue where some Objectives Screen UI elements could size incorrectly
- Fixed a spacing issue in Save/Load UI panels when the scrollbar is hidden due to a small number of saves
- revolutions in the AA will now affect unrest, inequality and cohesion, but especially unrest
- 5082 When getting info shared from the aliens (even by a chain of sharing), you'd sometimes get alerted there was a new structure in the places, but none would appear on the map. There wasn't actually one there. Fixed conditions in which a bad alert would trigger.
- 5060 Added missing milestone for megafauna spawning, kept some projects off the board
- AI will not bomb your armies if you have an NAP with them and their country is at war with a country where you have an army but aren't the exec -- and the army isn't in battle or taking damage.
- fix 4604, some bad logic in math for extra mine MC cost. Mine network overages will be modestly more punitive now

C
- #5112 changes to faction priority bonii will update the priority bonus UI element immediately instead of at the day rollover
- [#5128] Fixed a bug where Exofighter text in the Nation Info Panel could overflow
- Fix 5129, Change "Guagamela" to "Gaugamela" in SpaceAssetName.csv to properly reflect name of battle and good lord but it took longer to write this patch note than just make the fix
- remove config for absent russian far east art that was moved to sakhalin
- 5148 - fixed incorrect voice line playing when faction initiates trade with you.
- [#5067] Converted all Unicode colored sots for priority spending in NationInfo and Intel UI into colored sprites
- [#5144] Darkened Ship Designer / Construction Manager background sprite to prevent it blending in with the scrollbar

0.4.58

Feature
- faint rings for Jupiter, Uranus, Neptune, other bodies with them in the Solar System

Performance
- SimulateCombat() optimization : remainingCombatants now a list instead of IEnumerable

A
- [#5102] Fixed a bug that could cause a crash, where selecting the Ship Designer Hull Weapons or Nose weapons tab in table mode when there are no Gun weapons for that slot would display an incorrect table.
- 5104 - fixed crash when zooming into hab that is constructing a ship after upgrading shipyard while previously viewed ship was under construction
- 5094 - fixed crash after combat when reinforcements were swapped during precombat phase
- 5116 - fixed combat crash when using fleet posture commands after swapping reinforcements during formation setup


B
- Bugfix #5062: Fleets planning a trajectory to a destination will include the remnants of any trajectory they are already on to that same destination. This avoids a "code path not implemented" when no other solution can be found. Also fixed a bug where an arriving fleet's orbit line could be based on it's origin orbit, instead of it's destination (i.e. current) orbit.
- [#5101] Fixed a bug where Ship Designer UI visuals would update at undesired times. Ship preview space background now only changes when making large changes like swapping ship types or resetting a ship design. Ship module detail table no longer jitters in some locales when rapidly changing ship values (such as number of drives)
- AI: GetNearbySpaceCombatTarget() bugfix : emergency targets not actually being used.
- skirmish scrollview fixes

C
- Missing word in new tooltip for Space Body Solar Summary, "far FROM the Sun."
- UIFleets ArmorOnFacing loc adjustment for all other languages. Changing to match change in code with loc line using just one reference now.
- Fixed an issue where shipyard construction VFX wouldn't properly display for some ship hulls; Primarily for Alien and Earth_Alt hull/thruster meshes


0.4.57

UI
- [#5086] Ship Designer armor and drive text entry fields

AI
- TIFactionState.GetDesiredStaticFleetFraction() : smoothed things out. Previously the AI set its desired static fleet fraction (this currently means the fraction of the fleet that should be used for defense) based on two parameters and thus it could suddenly demand 70%, then just as suddenly drop down to 40%. This probably made fuel issues worse because defense fleets would split down and then the new fleet could take off, only for the AI to once again request more defenders, resulting in fleets from far away being pulled in only to be split out again shortly afterwards. To combat this, I've made the desired fleet fraction move towards the target (which still uses the same numbers as before) x% per day. This should slow things down enough to prevent the thrashing we had before.
- SingleFleetOperation() bugfix : adjusted mayBreakupFleet logic to avoid sending overly large attack fleets. If a fleet was split out of a large defense fleet and then immediately given an attack goal, it would head off without splitting down regardless of how small the target was, because it wasn't docked at a friendly station which was previously one of the conditions for splitting. The new conditions are either: 1) The fleet must have a goal that forces it to stay in one place permanently (thus may never have the chance to split), or 2) it must not be at it's goal's target space body (to prevent splitting right before finishing the job) AND it must have a friendly station or defense fleet nearby.
- AlienHabPlanner.ManageHabGoals() : Changed stationlessSpaceBodies goals from FactionGoal_FoundStation to FactionGoal_FoundPlatform. This is more of a standard way of create a station founding goal (no other code uses FactionGoal_FoundStation currently)
- CanFulfillGoal() bugfix : Added GoalType.FoundStation case. Without this, any fleet will be considered capable of fulfilling this goal type. This normally does not come up because station founding goals don't usually use this goal type but rather "FoundPlatform" or "FoundMaxStation".
- AIEvaluators.IsResourceUpkeepInsecure() : Increased gap between "Present" and "PresentCautious" states. There already was a big gap in terms of income assessment, but previously they both used the same stockpile numbers. Now there's a 2-2.5x gap there which means that factions may sit with "PresentCautious" insecurity (which prevents ships from being built) but not also cross the "Present" insecurity point which causes the faction to shift fleets into defense roles to save fuel. The ideal situation is that when the AI maxes out its usage of its current resource incomes, it stop building new ships and just uses its fleets to their full effect, not overbuilding or retreating into a defensive posture.
- FactionGoal.AttackWithFleet.GetMaximumFleetCombatValueRatio() : adjusted fuel insecurity ratio adjustments. I lessened the severity of the ratio penalties in both the HasUpkeepInsecurity() and FuelEfficiencyMode() cases, with a greater relative change to FuelEfficiencyMode()
- AlienHabPlanner.ManageHabGoals() : adjusted maxReactiveBases up to help aliens deal with fuel shortages better

A
- [#5099] Fixed logic for culture-invariant string table formatting in Ship Designer Module info view. This fixes a bug where selecting an installed Radiator module in the Ship Designer would crash the game on non-English localization settings.

B
- FactionGoal_AttackWithFleet.ComputeKillValue() bugfix : NaN kill value when target faction has no fleets

0.4.56

A
- [#5088] SlotToWeaponMountIndex Mismatch fix. Fixes crash in certain alien lancer and titan builds.
- fix for skirmish menu tooltip crash
- FinishWaitingToInitiateCombat() bugfix : Check if fleet is Valid(), in case it was destroyed while waiting. Issue #5087
- FinishWaitingToInitiateCombat() bugfix : Remove waiting data before trying to InitiateCombat to prevent invalid combat autosaves. Issue #5087
- StartCombatFromStrategyLayer() bugfix : check if cachedHab is null before trying to clear its inCombat variable. Issue #5087
- crash safety code for narrative events and finder
- fixed crash for solar tooltip when spacebodies have no hab sites

B
- 5093 - fixed objective-gated notifications being hidden when they shouldn't be
- 5091 - fixed unresponsive tech tree canvas bug

C
- [#5089] Sun Icon Replacement in SpaceObjectDetailCanvas
- 5071 - reduce vertical scale factor on ultrawide resolution when using large ui scale
- finder ui layer fix & ui tweak
- Increased Resolution of Ship Construction Camera View Render Texture for sharper image in Ship Construction view

0.4.55

Balance
- increased personnel coverage by hydroponics bay from 50 to 60
- increased personnel coverage by farm to 300 to 600

AI
- *redacted* will put 1 pip in oppression by default in their priority preset

A
- 4463 - prevent dismissing councilors while AI mission planning is in progress, prevents crash
- Direct Invest Nation Null Case Handling. Somebody managed to break the game this way, no idea how
- fixed crash when searching for army with no faction
- fix for intermittent crash on new game when playing a faction that starts with a space station (new in 0.4.54)
- 5085 - fixed crash when selecting protect mission target

0.4.54

UI
- You may now reorder items in the finder
- more ship designer style updates

A
- HasNap(), HasTruce() bugfix : stackoverflow if asking if faction has NAP/Truce with itself. (This was the one we heard a lot about)
- 5078 - fixed broken exitsaves being created when exiting combat in a campaign;
- GetOrderedShipyards() bugfix : InvalidOperationException due to empty shortfall TIResourcesCost. Issue #5079

B
- fix 5074; nations will update enemy accessibility data after completing the "go home" operation for a landlocked naval army. The failure to do so was causing single-army nations using "Go Home" to sometimes not be able to attack certain nations when they should be allowed to do so.

Balance
- toned down Mercury polar solar bonus.

0.4.53

Balance
- nuking small island regions will produce fewer stratospheric aerosols
- nukes will now have a global GDP effect when hitting any region, not just those with more than 1M people
- nukes fired in a war in which you are an attacker, on enemy territory, when the defender is not the alien nation, will incur a greater atrocity rate
- made it easier to gain cohesion rest state from public opinion distribution
- added some code to have marine officers killed in failed assaults
- Farm modules will only eliminate water and volatiles consumption of actual crew, not all hab support.
- Doubled power output and increased mass of fission/fusion plants.
- Increased power consumption of antimatter-manufacturing modules, information and energy labs, and ship-construction facilities.
- reduced impact of PO diversity on cohesion rest state
- bombardment: improved surface hab defensive module PD capabilities quite a bit
- bombardment: sufficient missiles can now overcome PD without accompanying gun type weapons firing
bombardment: special code for shaped nukes used in bombardment -- they will always destroy a module if they hit, and they get a saving throw if they are shot down (a chance to destroy the module at distance)
- widened the firing cone for the STO fighter autocannon

- Complexificated solar production based on several factors:

All solar modules have roughly 2x baseline production as current.

Modules orbiting space bodies receive a penalty based on how much of their orbit they are in the planet's shadow. For Earth LEO, it's about a 25% penalty. So an LEO T1 solar is going to be 15 power sted the old 10.

Power plants on planetary surfaces receive 50% power because of night. Asteroids receive 60%, which is a simple way of portraying you can build solar panels high enough on small, low-gravity bodies that they'll catch rays that would be beyond the horizon for larger bodies. Power plants very close to Mercury's poles also get extra solar. We might do the more complex version of the bonuses in the future. This puts lunar and Mars surface solar back where they started, at 10 for a T1 solar at Luna.

Power plants still receive reduced production in atmosphere (which really only matters on Mars.)

L-1, L-3, L-4 and L-5 points get full solar. L-2 varies whether the orbit around the point is in the planetary shadow, but Mercury, Venus and Earth L-2s all receive full solar.

Modules on or above moons receive an additional penalty for how often the moon is inside the planet's shadow. Until I can figure out more complex versions of this, it only affects planets + moon combos with very low inclination relative to the Sun. Ultimately I think this only hits gas giant moons where solar isn't particularly tenable anyways, so I don't think this is terribly relevant, but it's there for completeness.

AI
- AIEvaluators : Changed hab attack selection to prefer construction module containing habs
- AssignIdleFleetsToGoals() : assign idle fleets to defense goals if faction is below its desired static fleet fraction. Currently this only happens if the faction is running out of fuel for its ships.
- AssignIdleFleetsToGoals() : merge resupply fleets
- GetDesiredStaticFleetFraction() : raised numbers a bit here to allow reprieve for factions facing severe fuel shortages.
- FactionGoal_WarOnFaction.DailyGoalMaintenance() : fixed attack goal that did not requiresWar
- AIEvaluators : Changed hab attack selection to prefer construction module containing habs
- AIEvaluators.GetNearbySpaceCombatTarget() : Prefer bases before stations. This is because this method currently only targets defenseless bases so its preferable to take those out while they are easily destroyed.
- GetBestOperation() : change resupplyHab to current hab if that hab can service fleet's needs
- GetBestOperation() : do not leave a hab if you are there to resupply/repair and still need to use it
- CanMerge() : adjusted rule so that fleets the same station can merge even if they don't share the same docking status. Under the hood, fleets will still undock before merging if they are docked. This neatly fixes an AI bug where docked fleets can't complete a JoinFleet goal when their target is nearby but undocked.
- AI_GetBestShipyardForBuild() bugfix : aliens no longer order ships regardless of whether they can afford to build them
- CheckTriggerInnerSystemOffensives() : disabled redundant importance setting code for jupiter defense goal
- FactionGoal_WarOnFaction.GoalFulfilled() : raised standard from enemy simply having no councilors to also having no space assets. In addition, if totalWar is true, the goal cannot be fulfilled.
- GetBestOperation() bugfix : emergency targets not included in shouldAttackHab logic
- AI will no longer auto-flee when it has councilor transports or army carriers around Earth
- SingleFleetOperation() : Only break up "at rest" fleets. "At rest" fleets being ones that are hanging out at a hab or are permanently deployed into an orbit. This fixes a bug where an attack fleet could travel all the way to a distant spacebody only to immediately split out all but one of its ships and send them home.
- TIFactionState.HasNAP(), HasTruce() : made these methods bilateral. .Previously, if you asked an AI faction if it had a nap with a human player, it would say no even if it did. I'm not sure if this ever occurred however.
- TIFactionState.CanTradeNAP() : Added case that requires veryProAlien factions if NAP is with the aliens
- IsTresspassing(), AliensCheckGoals(), CheckTriggerInnerSystemOffensives() : Added NAP logic
- FactionGoal_FoundHab, FactionGoal_ProspectSites : removed ComputeDesiredFleetCombatValue() ovrrides These overrides prevented fleets assigned to these goals from acquiring a escort.
- Fix issues in bombardment fleet building AI that was making AI build such fleets inefficiently

UI
- Start on ship designer UI overhaul.
- added right-click context icon to tech tooltips
- added UI and explanatory text for solar availabilty

A
- Space Fleet's getOrbitalElementsState() now uses the same metric to determine if the fleet is in a transfer as the rest of the code. Namely, that opponents don't know about a fleet's upcoming transfer at the instant of launch. Fixes a rare crash.
- attempt fix crash when updating a space councilor UI element when councilor is null
- fix a crash and bad UI interactions when the AI attacks one of your habs that you can defend with exofighters but choose not to do so.
- attempt fix 5035, NRE in SpaceObjectDetailController
- attempt fix another crash in SpaceObjectDetailController after a hab blows up
- 5076, added handling in stance management for when two fleets fight at third fleet's hab, prevents a crash
- Bugfix #5048: If a fleet has 0 acceleration or DV, the AI now knows that any transfer with it is impossible. This avoids a crash when attempting to calculate its (infinite duration) microthrust spirals.
- Added safety to TIDateTime to catch if we'd exceed the limits of DateTime before adding/subtracting seconds.
- Fixes and save repair related to inexplicable AI dummy STO fighter fleet that persisted into a save, causing crashes.

B
- completing a core eco region will remove core mining/core oil status from that region as intended
- nations gaining or losing regions will have their PCGDP history adjusted to aggregate/dis-aggregate the lost region's PCGDP into/out of said history. This will limit the PCGDP-based cohesion hit from annexations/region losses.
- ship mass breakdown will include drive mass (when separate from reactor mass). Also added %mass breakdown in the tooltip for each ship part and right-justified the numbers so it looks purdy.
- add some UI management so you can't try to start multiple combats with exofighters at the same time and put the game in a weird state
- # 5054 recache certain nation values on region control change (normally happens daily) to ensure core eco/resource values are kept. (This didn't fully fix the bugs related to this, additional work required)
- fix 5050: army-liberated breakaway will be controlled by faction in control of occupying armies, not by unrest leader
- 5042 - fixed inaccurate tech leader highlight

C
- removed some combat log debugging spam for builds
- 4990 - fix for nation flags jiggling and wiggling from inertia in the dropdown; fix for mission target dropdown going off screen on some resolutions
- 4905 - fix hab sort switching when managing habs with custom icons
- 5038 - fixed some alien ship data not being obfuscated appropriately in tooltips
Locked