* Some UI architecture changes
* Some UI architecture changes - merge Kdoc update from another PR
* Remove experimental status of the key bindings UI
* Minor update to keyboard tutorials
* Minor readability linting: A few color names instead of hex codes
* Fix links from Options not working when called from MainMenuScreen
* Added coup success calculation
* Added a coup button
* Added a coup button functionality
* Improved coup chance calculation
* Added coup effects
* Fixed random value being too high
* Fixed percent chance roll
* Hid enemy spy factor from the chance text
* Added coup notifications
* Added translations
* Updated a notification
* Style changes
* Put some text onto multiple lines
* Fixed "failed staged" notification
* Added missing translation
* Finished fixing merge conflicts
* Added AI to city-state coups
* Coup notifications are now sent to the spectators as well
* Changed spy rank modifier to be additive
* Added city-state Elections
* Added Elections notifications
* Removed temporary rigging elections in Spy.kt
* Modified votes from influence a little
* Fixed rigging election turns
* Fixed elections
* Randomised city-state election days
* Refactored geCapital
* Refactored election random to use randomWeighted
* Fixed getSkillModifier being private
* Updated translations and fixed a notification for election rigging
* Minor linting
* More linting
* Consistent naming city/location, cache city on Spy (tile visibility perf)
* Empower SpyAction enum (minor perf)
* NotificationAction for Espionage, shorthand on the Spy instance
* Fix National Intelligence Agency giving one extra Spy level
* Fix "Move Spies" NextTurnButton prompt appearing every turn when spies are in Surveillance
* Fix failed tech theft rewarding tech anyway (and open spy kill chance when theft ordered but nothing to steal)
* Finally refactor SmallButtonStyle as standalone component
* Fix unable to assign spies for counter-intelligence
* Shorten establish-network phase for domestic spy placement
* Refactor and prettify MoveToCityButton, reuse as pointer who is to move (and some tiny changes)
* Decorate Spy icons by rank and show those in the hideout too
* Make city name labels in Espionage screen clickable
* Umm... duplicate targets behave same as single targets
* Spy mechanics - no establish network before counter-intelligence, commenting
* Oops, those lines do not belong in this branch anyway
* Fix Concurrency being zombified but still tasked to run stuff
* Do not tie Android logcat output to whether Gdx was built for debugging
* Simplify GameStartScreen
* Add wiki page on Debugging/Building for Android
* Created DeclareWarReason enum
* Created a new notifyOfWar function and a DeclareWarReason class
* moved handleCityStateDirectAttack to it's own function
* Moved changing modifiers to its own function
* Moved notifyOfWar above onWarDeclared
* Fixed defensive pact canceling notifications
* Added more comments
* Fixed DiplomacyManagerTests
* Warmongering does not stack with defensive pacts
* Reworked how shared enemy modifiers are given out
* Fixed JoinWar notifications
* Added join war translations
* Added missing defensive pact translations
* Fixed translation parameter problems
* Changed "canceled" to "cancelled"
* Rename new capital when a civ survives losing their civ-named capital
* Linting
* Make "overflow" city founding names translatable
* Fix some unit tests relying on hardcoded Random() results
* Expand Events to allow civilopediaText, fixing hidden uniques as side effect
* Fix ConditionalChance save scumming
* Fix ExtraImages not working within mods
* Missing documentation of the changes to Events
* Kdoc to clarify why helper returns nullable
* Lint getJavaClassByName: fix compiler warning and re-sort when
* FormattedLine now throws on problems with extraImage loading
* Fix Tutorial extraImage by removing auto and making it explicit
* Revert "FormattedLine now throws on problems with extraImage loading"
This reverts commit b5ab4084ee.
* Partially revert the revert, so bad extraImage fields are console-logged
* Replace and credit "Link" icon
* UnitActionIcons/Escort is a black version of "Link"
* Reprioritize UnitGroup "action" badge to prefer showing what Workers build over escorting
* Fix apparent bug removing starting locations
* Remove StartingLocation legacy support (when they were TileImprovements)
* Starting locations get a "usage" controlling new game "select players"
* Maps get a description map creators can use to pass info to their users
* Fix bad fix from last PR preventing then map preview of the initial selection to show in some cases
* Wrap all those setProgrammaticChangeEvents calls
* Fix None/Normal discrepancy
* Added OneTimeSpiesLevelUp, OneTimeGainSpy, SpyEffectiveness, EnemySpyEffectiveness and HiddenWithoutEspionage Uniques
* Spy effectiveness affects stealing tech and rigging elections
* Fixed HiddenWithoutEspionage
* Added Constabulary and Police Station
* Added cityFilter to SpyEffectiveness
* Added national Intelligence agency
* Added Great Firewall
* Fixed great firewall having a float value
* EspionageManager addSpy now returns Spy instead of name
* Added some simple espionage tests
* Fixed OneTimeSpiesLevelUp still wanting parameter
* Spy efficiency occurs after skill modifier
* Added another test
* Added Police State spy efficiency reduction unique
* Fixed "Hidden when espionage is disabled" wording
* Fixed "effectiveness" wording
* Changed "enemy spy effectiveness" unique to use negative matters
* Spy effectiveness only affect tech steal rate
* Changed "Gain an extra spy" and "Promotes all spies" uniques
* Removed Police State comment that is no longer accurate
* Changed spy effectiveness to be multiplicative
* Offer custom map mod/ruleset and name as master/child SelectBoxes
* Let map Preview class (partial parse) include starting locations
* Implement button to use map-selected nations
* Show a LoadingImage while the maps are still loading
* Fix merge errors
* Usability improvements
* More out-of-sync fixes and improvements
* Template