* Defensive Pacts can now be offered.
* Signing a defensive pact now makes the Civs join all defensive wars. Any future defensive wars will force the other civ to join.
* Removed Popup Alert Defensive Pact.
* Defensive pact and Research pact now are only on the trade screen.
* AI now offers defensive pacts.
* Added AI evaluating sending and receiving Defensive Pact offers.
* Reverted some temporary changes
* Reduced the chance an AI offers a defensive pact
* Starting an offensive war now cancels all Defensive Pacts with other civilisations.
* Removed extra requirements before an AI will sign or offer a defensive pact.
* Added Defensive Pacts to the Civilopedia.
* Fixed the AI counter offering with treaties.
* Fixed a test using the old method of checking if a civ is at war.
* Fixed a previous refactor error.
* Deleted commented out Research Agreement button code.
* Fixed some spelling errors and remnant debugging code.
* Removed signing a defensive pact brings both Civ's into each others previous defensive wars.
* Refactored setFriendshipBasedModifier to look better
* Starting an offensive war now removes the defensive pact form both sides.
* Reverted changes to DiplomaticStatus
* Removed extra technology check to sign a defensive pact.
* Removed DiplomacyManager.isAtWar() completely.
* Moved setting defensivePact flags from TradeLogic.transferTrade() to DiplomacyManager.signDefensivePact.
* Changed diplomatic modifiers related to Defensive Pacts to be less extreme.
* Fixed canceling Defensive Pacts when declaring war and notifying other Civs.
* Updated the Defensive Pact entry in the Civilopedia and fixed some spelling.
* Fixed Defensive Pact behavior while attacking and defending.
* Changed a variable to a more readable name.
* Improved readability of setFriendshipBasedModifier().
* Moved the important onWarDeclared functionality to their own functions.
* Added a notification for the attacking Civ when a Civ joins war through a Defensive Pact.
* Refactored setDefensivePactBasedModifier() to be more readable.
* Increased DeclinedDefensivePact time.
* Deleted old commented code that removed the research agreement button.
* Fixed having reverting changes errors in UnitMovementTests.
* Refactored breaking treaties when declaring war.
* Removed unnecessary semicolons.
* Overhaul NUKE code to behave closer to original
* Separate garrison protection of Bomb Shelter to its own Unique
* Reduce code duplication: getNukeBlastRadius
* Disallow nuking unknown civs
* Don't show Nuke attack table when the Nuke has just been selected
* World map display of nuke blast radius and friendly fire
* Allow a few working UniqueType-UniqueTarget combos in RulesetValidator
* RulesetValidator checks GlobalUniques
* Alternate Settlers and Workers recognized via Unique - same rules in RulesetValidator and GameStarter, wiki clarification
* Split off some UniqueType helper classes, make regions work in Android Studio and linting
* Fix wrong UniqueType.Stats target
* Fix two Pantheon uniques
* BeliefType a little nicer to read
* More linting
* Implement UniqueTarget validation
* Validation of UniqueTypes allowed as conditionals
* City-level resources are...
- Not displayed in civ top bar
- Not considered civ-level resources (for trade, non-city conditionals, etc)
- Are explicitly treated in city conditionals
- ARE considered for constructing buildings requiring resource
- ARE NOT considered for construction units requiring resource
* getCityResources separates resources by origin so we need to sum them - kudos @SeventhM
* CR fixes
* Added new Civilization.getResourceAmount function
* More usages of civInfo.getResourceAmount()
* Don't add city resource table if it's empty
* Tighten mod check severity and selectivity for unit-producing triggered Uniques
* Prettify display of mod check results by suppressing dupes and hiding conditionals from tr()
* Extra confirmation to play with errors, colors, improved handling of mod checkboxes
* Tweaks to improved mod checking in new game
* Add `May not annex cities` unique, following same behaviour as Civ5 Venice. Hopefully this time I won't need to re-install windows.
* Add `May not annex cities` unique, following same behaviour as Civ5 Venice. Hopefully this time I won't need to re-install windows.
* Fix raze button being unavailable in city screen
* Fixed raze button being available in city screen, as per civ5
* Corrected indentation
* mayAnnex instead of canAnnex, hasUnique rather than getMatchingUniques
* AI will follow rules
* Replaced getMatchingUniques with hasUnique, for real this time
* Resource stockpiles!
* toString extension including sign (+/-)
* Trigger uniques to provide/consume stockpiled resources
* Fixed build
* Display 'per turn' for stockpiled resources that are consumed per turn
* "Costs [amount] [resource]" works!
* Stockpile unique costs are displayed in construction button
* Added unique to prevert certain resources from being traded
* Slight cleanup of TileStatFunctions
* Make City center minimum tile yields moddable
* Make City center minimum tile yields moddable - patch1
* Make City center minimum tile yields moddable - patch1