* Fix UniqueType.ChangesTerrain not working for base terrain parameter
* Fix spawnRiver resultingTiles to include all affected tiles on both sides of the River
* Fix terrain conversion for rivers from Map Editor partial generation / paint from-to
* forEach linting
* Instrumentation for generateSingleStep
* forEach linting
* Remove lazies
* Some preparation refactoring
* Some preparation API extension
* Initial constructions context menu
* More CityConstructions API clarification
* Templates and KeyBindings
* Fix quirks and prettify highlighting issues
Big DUH moment, we've been applying this same trick everywhere but haven't generalized it yet...
This will both make performance improvements easier, AND improve readability!
- Cache civ uniques ignoring conditionals, for better reuse
- Cache civ uniques *when querying city uniques*, same
This allows us to use the same UniqueCache between cities, and we still get the performance boost of "search once filter always", since the searching is the heavier part, and in any case we'll always have to do the filtering by conditionals either way
* Added "Jump To Destination" UnitActionButton for moving unit
This commit also fixes the situation where the player is unable to open the Show More unit actions list while the unit is moving and out of moves for the turn. Previously, clicking Show More in this scenario would jump to the next active unit.
* Added Jump To Destination to translation file
* Changed Jump to Destination to Show Unit Destination, updated icon, credits
* 💡 add some comments providing examples
* ♻ refactor getGeneralModifiers to increase readability
* ♻ refactor getAttackModifiers to increase readability
* 🏗 move constants expressed as magic number to separated class to increase maintainability and expressivity
* ♻ invert condition to remove continue statement and simplify code
* 💚 add some tests for battle damage class
* Fix promotions being available when they shouldn't
* Move unreachable code to the bottom
* Remove unnecessary comment
* Details for adopted nodes technically shouldn't be overriden
* Add back in unreachable before we do checks
* Just realized we're back to square one. Here's an actual fix
* Improved Nuke AI
* AI can only nuke visible tiles now
* Removed an extra space
* Removed commented changes from another feature in testing
* Removed commented changes from another feature in testing again
* AI now doesn't calculate the value of nuking a tile while at peace
* Removed extra change related to attacking cities.
* Improved AI chooseAttackTarget
* Added extra import statement
* Restructured chooseAttackTarget to use .maxByOrNull
* Refactored getUnitAttackValue
* Standardised attack valuing in BattleHelper
* address unnecessary ruleset checks
* Add missing imports
* Fix units not getting the ability uses set if it the city has your own religion
* Remove unnecessary cityConstructions check
* Remove more cases of unnecessary ruleset checks
* Research agreements can now be offered when both civilizations combined have enough gold.
* Moved a OfferColumnsTable constructor parameter.
* Fixed the ordering of an argument in TradeTable.
* Added an extra comment to OffersListScroll.
* Refactored research pact trade balancing when offered.
* Research agreement cost now uses the highest era from both participants.
* Minor UI tweaks - mainly duplicate icons on ResourcesOverviewTab and EspionageOverviewScreen
* Bugfix and expand NotificationActions
* Switch NotificationAction migration to Phase IV
* Tweak a few Notifications to have more useful actions
* Remove one `run {}`
* Better predictability of clicks on Notifications pulled out of history
* Unit creation notifications can now select the unit
* Linting
* ClearBarbarianCamp quest Notification shows map location first
* More Linting
* Hide City-state call for help from aggressor