* Tied the unit upkeep scaling to game speed
* Refactor: Modifier and TurnLimit are now fields
* Turn limit will be derived from the GameSpeed.modifier and base game duration
* Mongolia
* Translation & Atlas
* Remove debug option
* Remove erroneous import
* Promotions.addXP
* Khan heals 15 HP
* XP bonus fix
* Added 'Mongol Terror' which is the term used for the mongolian combat bonus
Co-authored-by: Yair Morgenstern <yairm210@hotmail.com>
* Diplomacy overview window: Using full screen
* Different shades of friendship
* Show/hide the relations for the picked civilization
* Minor refactoring
* Optimized handling of lines visibility
* Minor refactoring
* Refactoring: special function Battle.nuke() for missiles
* Special BattleTable.simulateNuke() function for missiles
* Refactoring: BugReport popup moved into a separate function
* Refactoring: call defaults().pad once in the init()
* Refactoring: not using "syntax sugar"
* Fix community popup not opening
Fixes a regression in b95844d2f4. This commit refactored popups and it was thought that the "screen has popup -> don't show popup" was correct for all popups. That assumption was incorrect, the community popup was not opening anymore as well as the game menu popups (editor and normal game) could not be opened over other popups anymore.
This commit fixes that by introducing a queue for popups. When you try to open a popup and one is already open, the popup you tried to open only gets shown when the popup that was already open is closed. This can be manually overridden with a calling the `open` method with a `(force = true)` argument.
Also, all popups are now and should be opened and closed only with their `open()` and `close()` methods to ensure this behavior works.
* Refactor: Remove all open() methods from popup constructors
While it may be a little less to type, it should be up to the caller to decide to open a popup over other popups (via the `force = true` parameter) or not. This is not possible if a popup is opened automatically within its constructor, which is why that is the wrong place to open the popup-
Implemented with @Azzurite's suggestions to match the button's behavior with the player's own city buttons:
* First tap slides the city button down so that the underlying tile is visible.
* Second tap on the button presents the diplomacy screen focused on the city's owner civ.
* Add missing Forge and Seaport production bonus uniques
Parital fix for #1762
- Forge gets "+15% production of land units"
- Seaport gets "+15% production of naval units"
* Adds missing translation "+15% production of land units"
* Implemented aircraft carrier "Flight Deck" and "Armor Plating" promotions
* Template for the translation strings
* New icons are added
Co-authored-by: ltrcao <ltrcao@users.noreply.github.com>
First, `PopupTable` and all extending classes had the `Table` at the end removed. Second, the popup base classes `Popup(Table)` and `YesNoPopup(Table)` were moved from the worldscreen to the util package.
Third: The popups were inconsistent. In CameraStageBaseScreen, there was a check with 3 parts, one if any tutorial was showing, second if any child is a TradePopup, and third if the boolean field "hasPopupOpen" is true.
However, all of these checks were, in the end, `Popup(Table)`s on the screen. So, this check has simply been changed to check if any child is a `Popup(Table)`. All the other checks and their relating code could simply be removed.
* Barbarians don't move/attack on the turn of their spawning
* Revert "Barbarians don't move/attack on the turn of their spawning"
This reverts commit b088fb8c
* Better implementation
Co-authored-by: dumichno <57294813+dumichno@users.noreply.github.com>
* Fix: ships being teleported into landlocked cities
* Proposal: extend the city teleport to all owned tiles
* Utilizing the existing method
Co-authored-by: dumichno <57294813+dumichno@users.noreply.github.com>
* Added map reveal when the player is defeated in singleplayer
* Added victory (actually defeat) screen when the player is defeated
* Moved the victory screen navigation to an appropriate place
* Moved the map reveal logic to WorldMapHolder
* Tutorials and Diplomacy button are hidden after the defeat
* Callback to exit the game by 'Back' button
* Prompt dialog for the game exit
* Additional strings for translations are generated
* Do not show exit prompt dialog twice
* Construction Queue
* Added constructionQueue in addition to currentConstruction: if currentConstruction is done, next construction from Queue is started; if Queue is empty invoke ConstructionAutomation
* Queue utility methods: add, remove, higher prio, lower prio
* Icons to move constructions in queue
* Top left city stats moved to top right panel
* Added current construction and queue construction to top left
* Extended selected construction (containing description) moved to bottom right, it is now displayed alternatively to selected tile
* Max queue size, cannot change queue in puppet city or in other player turn
* Queue and current construction reset on puppeting city
* Cleanup again
* CityStatsTable is a separate class so we can play around with where it's located with minimal code changes
* Rejection reason wrap & removing nothing on enqueue a construction
* Crude UI proposal
* Tutorial updates for queues
Co-authored-by: Yair Morgenstern <yairm210@hotmail.com>
* Construction Queue
* Added constructionQueue in addition to currentConstruction: if currentConstruction is done, next construction from Queue is started; if Queue is empty invoke ConstructionAutomation
* Queue utility methods: add, remove, higher prio, lower prio
* Icons to move constructions in queue
* Top left city stats moved to top right panel
* Added current construction and queue construction to top left
* Extended selected construction (containing description) moved to bottom right, it is now displayed alternatively to selected tile
Rework
* Max queue size, cannot change queue in puppet city or in other player turn
* Queue and current construction reset on puppeting city
Co-authored-by: Yair Morgenstern <yairm210@hotmail.com>
* Added the "crudely-drawn map" to ancient ruins outcomes
Closes#1640
* Extracted the constants for readability
Co-authored-by: Yair Morgenstern <yairm210@hotmail.com>
* Songhai, Burial Tomb, Gold for capturing city
* Burial Tomb unique: double gold gained when city is captured
* Rebuilt Atlas and Translations
* Italian translation + fix missing translations
* Barbarian Camp Reward
Is now modified by Speed and Difficulty
* Added temporary growth number to CityButton.
* Added a growth bar to CityButton.
* Made relevant changes based on comments in pull request #1626
* Added the unicode infinity symbol to reflect no growth.
* New growth functions now return null instead of -1.
* Adjusted the population group width to account for large numbers.
* Changed the colour of the growth number.
Rulesets are heavy to load so we now have a RulesetCache, which can construct "custom" rulesets with a list of mods!
We now pack mod images on Desktop run, and load the atlases for the loaded mods on load game!
* Fix: "Sell the building" button being randomly disabled based on the sell price
* Fix: `sellBuildingButton` being enabled in puppet cities
Co-authored-by: dumichno <57294813+dumichno@users.noreply.github.com>