* ♻️ merge together two branches executing same code
* ♻️ swap if-else chain with when to improve readability
* ⚡️ swap conditions to first check the lighter computationally-wise
* ♻️ extract method to increase readability
* 💚 add some tests for TargetHelper
* 💡 add comment explaining how Unciv grid system works using a graphical example
* 💚 add other tests
* ♻️ change method name to better reflect what it does
* 🐛 fix import after rebase
* 🔥 remove parameter when value is the default and use static field for Vector2(0f, 0f)
* ♻️ split setTileTerrainAndFeatures in two different methods
* ♻️ update older tests to use the new functions
* Fixed Civ getting two notifications of canceling their defensive pact when attacking.
* Added Defensive Pact related warnings to the Declare War popup
* Improved the warning to not include Civs that are already at war with the aggressor
* Improved the warning to not include Civs that are already at war with the aggressor
* Added defensive pact related warning translations
* Refactored removeDefensivePacts
* DeclareWarButton text now uses arrayListOf<String> and changed the for loop to a while loop
* Extracted the DeclareWarButton text to a new method.
* 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