* AI now can offer declaration of friendship
* AI now offers open borders
* Added spectator notifications for DoFs and defensive pacts
* AI now wants friendship less as more Civs die
* Re-added spectator notifications that weren't added in the merge
* Replaced min with coerceAtLeast
* Replaced .filter and .count() with .count
* Removed some minus DoF motivation modifiers being in a military focus.
* Fixed AI offering open borders with City-States
* AI now signs defensive pacts
* Increased motivationToAttack weight when determining value of a declaration of friendship
* Removed double trade processing and notifications from Treaties
* Removed commented code
* Added wantsToSignDefensivePact
* Added defensive pact trade evaluation
* Revert "Removed commented code"
This reverts commit 6476a08d26.
* Revert "Removed double trade processing and notifications from Treaties"
This reverts commit 371e8e8a62.
* Changed wantsToSignDefensivePact to use a for loop
* Changed chance to consider offering a defensive pact back to 30%
* Added DeclinedOpenBordersFlag
* Added DeclinedDeclarationOfFriendshipFlag
* Civ AI now has a positive modifier when friends with under 1/4 of alive Civs
* AI values friendship based also on relative strength
* Changed AI valueing of a defensive pact
* AIs not use DeclinedDeclarationOfFriendship flag
* Fixed otherCivNonOverlappingDefensivePacts causing error with unmet Civs
* Avoid the detekt false positive for typed lambda `it` and its comment
* Fix regression of what-is-a-garrison (8952)
* Initial implementation of "Status" column
* "Status" column gets a header icon
* ✨ add testing helper function to create the barbarian civilization
* add tests for Battle class
* add more tests for Battle class
* ♻️ let compiler infer types
* add helper test methods to create unit with uniques
* use unit with unique explicitly created to loose tests from specific ruleset
* add even more tests for Battle
* Improved handling of "Nothing" construction
* Suppress "All" entries when you have only one city
* Global Construction Blacklist
* Reviews
* Reviews - missed renames
* A few yield extensions - use in existing code to do later
* Refactor getFreeBuildings to allow hasFreeBuilding not enumerating all
* Prevent selling free buildings - with a little easter egg
* Test translatability
* Shift "Free Building" methods towards preferring object parameters
* Remove easter egg
* Linting and improving Kdoc precision
* Linting and improving Kdoc precision: CityConstructions
* Convert stack overflow into explicit exception when a mod has recursive unit upgrade/replaces
* RulesetValidator detects recursive unit upgrade/replaces
* Override DoF displayed on Politics table with defensive pact when applicable and added CYAN color to table and diagram.
* City-state alliances now show as CYAN in the politics table
* ♻️ 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.