Future build
- Added the following regions / nations:
Aceh, Indonesia (+ breakaway nation) • Brunei • Visayas, Philippines • Maldives • Leon/Galicia/Northern Spain • Cumberland (Tennessee/Kentucky) USA • Equatorial Guinea • Sao Tome and Principe • Guinea-Bissau • Sulawesi • Timor-Leste • Togo • Wales (+ breakaway) • English Midlands (+breakaway) • Toulouse, France • Anhui, China • Fujian • Gansu • Hunan (+ breakaway) • Jilin • Liaoning • Shanxi • Yunnan (+ breakaway) • Odesa, Ukraine • Donetsk, Ukraine (+ breakaway) • Kirov, Russia (+ breakaway) • Voronezh, Russia • Kaliningrad, Russia (+ breakaway) • Karakalpakstan, Uzbekistan (+ breakaway) • Northern Chad • Northern Mozambique • Eastern Central African Republic (+ breakaway) • Andhra Pradesh, India • Arunchal Pradesh • Ossira (+ breakaway) • Slovenia • Kosovo • Montenegro • Transylvania (+ breakaway) • Mauritius • Seychelles • Kuwait • Bhutan • Alberta • Manitoba • Yukon • South Island, NZ (+ breakaway) • Zanzibar (+ breakaway) • Azores (+ breakaway) • Jamaica • Bahamas
- some nations start with a lost-PCGDP cohesion hit based on historical data back to 2012
- adjusted calculation for cohesion based on distance from region center
- reduced cohesion rest state impact scaling for autocracy so it ranges from 0 to 5 sted 0 to 6.5
- nuking a region will remove all accumulated triggers for region status changes (Core Eco, etc)
- added handling for which regions should have councilors wearing kaffiyeh/hijab and which should not
- merged a number of breakaway projects for smaller and mid-sized nations into 4 continental-scale projects that unlock them all at once. These projects also grant influence to bribe you into using them.
- reduced mitigating impact of low education on inequality
- various changes to unions and breakaways. Added Caribbean and Arabian Peninsula unions.
- Added new "hostile claim" mechanic. When a nation annexes a region with this type of claim, it suffers cohesion rest state and unrest rest state penalties. The penalties are calculated like this:
* Cohesion Rest State Decrease: 10 * hostile region pop Proportion of nation * (Democracy / 10)
* Unrest Rest State Increase: 10 * hostile region pop Proportion of nation * ((10 - Democracy) / 10)
- A nation claim on a region can be "hostile" under any of these four circumstances:
* The relationship is set in initial config. Israel's claim on Palestine, Palestine's claim on Israel, the United Arab claim on Israel, the Caliphate's claim on Israel, all of Serbia's claims except that on Montenegro start with this status, and most of Russia's claims awarded by the "Forward Russia" project.
* The region belongs to a nation that previously broke away from the nation with the claim on it.
* The nation with the claim has a government score at least 1.5 points lower than the nation controlling the region. (This will even mess with a few initial EU claims.)
* The nation gains the region without previously having a claim on it (in the cases of nations eating other nations they only have partial claims on.)
If a nation develops a claim through tech on a region with a hostile claim, the hostile claim status is removed.
After annexation, investing 200 steps in the Unity and Government priorities will legitimize the claim on one region in the eyes of the people there, removing the hostile status and negative effects. The region will be the highest population hostile region that is adjacent to a nonhostile region (if any), otherwise it will be the highest population region.
The **redacted** is immune to this mechanic thanks to **redacted**.
- Added AI to focus on legitimizing claims if it feels able
- Added codex entry and tooltip help
- Unrest symbol next to region name will generally denote hostile claim in various UIs
- Consolidate executive power duration changed from flat 180 days to (75 + number of CPs in the nation * 15.)
- The "Transfer Regions" policy is now "Demand Region." The nation that wants to annex another nation's region is now the Target of the Set Policy mission and it may only demand one region at a time. The other nation may refuse. This puts on an improve relations cooldown and is also subject to that cooldown.
- Federations where the lead nation is authoritarian or totalitarian (has a government score < 4) have some additional rules to reflect a hegemonic relationship with federation members. The lead nation may veto attempts by a member to leave the federation via the Set Policy mission. If the member undergoes a coup, revolution, or regime change, the nation leaves the federation but the lead nation is given an immediate option to declare war.
- Testing changes to GDP -> num Control Point calculation aimed at increasing the number of 2 CP nations and reducing the number of 1 CP nations
UI
- Added more detail icons to set policy targeting grid
- Added icons for canals and their status on the world map
- Added icons for frozen coastlines on the world map
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