* Load and Save Game Screens rework - Linting
* Load and Save Game Screens rework - Modularize and Keyboard
* Load and Save Game Screens rework - error handling
* Load and Save Game Screens rework - Move other save/load code
* Load and Save Game Screens rework - More Keyboard
* Load and Save Game Screens rework - Increase clipboard limit
* Load and Save Game Screens rework - Post-merge patch
* Load and Save Game Screens rework - Home, End, harden
* Load and Save Game Screens rework - Post-merge patch again
* Load and Save Game Screens rework - reviews
* Improve suggestions when constructing an improvement is not possible
* Reimplement getImprovementBuildingProblems() as a generator function
* Update documentation of getImprovementBuildingProblems(); forgotten in the last commit
* ImprovementPickerScreen - tr
* Rename a variable for clarity
Co-authored-by: SomeTroglodyte <63000004+SomeTroglodyte@users.noreply.github.com>
* Handle subclassing of Events properly
Previously, you could only listen to the exact class
* Add relevant parent classes for the multiplayer events
* Refactor: use the old name as the main name in MultiplayerGameNameChanged event
* Add being able to stop listening to events in the EventBus
* Add tests for EventBus
* Refactor: Extract GameList into standalone file
* Refactor: safeUpdateIf to more generic throttle function
* Refactor: Extract multiplayer UI helper functions into separate file
* Refactor: Extract load/download multiplayer game into logic class from UI
* Make loading a multiplayer game automatically update the in-memory game in OnlineMultiplayer
* Refactor: Extract multiplayer settings into separate object
* Add multiplayer status display
* Fix error with multiplayer games not correctly being cleaned up after successful update
* Prevent loadLatestMultiplayerState() while next turn update is running
* Show "Working..." while waiting for next turn calculations instead of "Waiting for [civ]..."
* Fix race condition while updating online game state
* Make Civilopedia independent of worldScreen or gameInfo
* Make Civilopedia callable from Main Menu
* Era category for Civilopedia
* Era category for Civilopedia - atlas
* Added rate limit handling to dropbox
+ some refactor to make the whole file one object
* Added error messages on rate limit reached
+ refactored some popup code to reduce repetition
* Fixed merge error
* Made variables private
* Fixed file upload not working
because of missing override flag for dropbox
* Stop multiplayer refresher if rate limit reached
* Fixed typo
* Various code changes/fixes
- ErrorResponse var name has to be `error` because that's how DropBox's json property is named
- Change FileStorageRateLimitReached exception to store the seconds remaining as its own property instead of in the message
- Use toIntOrNull to avoid setting defaults in two places
* Fixed missed exception message
Co-authored-by: Azzurite <azzurite@gmail.com>
* Healing parity
Adjusted healing values for parity with CV
* New Demographics system for victory screen rankings
Added a new game setup checkbox option to use a ranking system on the victory screen which is more in line with the Civ V Demographics window. Created the UI element and game parameter but the demographics screen still needs to be implemented.
Also removed unnecessary comments from adjustments to healing values in a previous update.
* Demographics table init
Beginning to build structure of Demographics rankings table.
* Update VictoryScreen.kt
Attempt at getting more of the Demographics table implemented
* Update VictoryScreen.kt
Continued building the structure of the Demographics table
* Demographics first implementation
Finished first pass of Demographics screen.
* Minor text formatting
Improved some text formatting in code and comments.
* Update MapUnit.kt
Minor comment cleanup.
* SomeTroglodyte's Feedback, pt. 1
Implemented feedback given by SomeTroglodyte in PR #6645.
* Organized into functions
Split up Rankings table creation and Demographics table creation into new functions
* Update template.properties
Fixed missing space.
* Implementing more PR #6645 feedback
Added needed translation templates, used enum class instead of array for headers, moved checkbox to Options -> Display instead of new game
* Implemented rest of PR #6645 feedback
Simplified logic for finding player's rank, value, best/worst civ value, and filtered out defeated civs from the display and calculations
* Dead Civs get 0 in all categories
Added simple check if a civ is dead when computing score. If they are dead then they get 0 and go to the bottom of the scoreboard.
* Update VictoryScreen.kt
Further cleaned up code for better reuse and simpler logic with fewer loops.
* Update CivilizationInfo.kt
Simplified implementation of return 0 for stats when civ is defeated.
* Update CivilizationInfo.kt
Removed commented-out line of code.
* Fixed duplicate rank bug
Adjusted method of determining best and worst civs so that duplicates don't occur.
* Update VictoryScreen.kt
One-lined the handling of logic in buildDemographicsTable()
* Update VictoryScreen.kt
Moved static header row to new function.
* Readability overloads for `getComplexRuleset`
* Enable loading maps containing missing ruleset objects with fix and message
* Fix bungled `noMapsAvailable` and follow minor criticism
* More info for Resources in Civilopedia
* Remove duplicates for Resource requirements in Civilopedia
* Resource overview link resource label to Civilopedia
* Resource overview stay if clicking can't notify (resources not existing on map)
* Resource overview display of resources produced by buildings
* Added a moddable (but not yet functional) file for victories
* Spaceship parts are units now
* Fixed tests
* Added milestone objects
* Made 'our status' table in VictoryScreen dependend on file
* Updated VictoryManager to use the new Milestone system
* Fixed bug where in vanilla too many spaceship parts could beb uild
* Whoops
* Updated global victory table to use the jsons
* Updated the new game screen to show the new victory types
Also started with the deprecation of VictorType
* Did some translation stuff, also finally fixed the tests
* Removed VictoryType and reworked AI to use Milestones instead
* Add some checks for the victory file; tested that custom victories work
Also moves some code to a better spot and fixes compilation errors
* Fixed some things I thought about while falling asleep
Most notably: built -> build; fixed spaceship part construction
priority; removed more code for the old system
* Fixed translation issues on the victory screen
* New Map editor - attempts 1
* New Map editor - attempts 2
* New Map editor - attempts 3
* New Map editor - attempts 4
* New Map editor - attempts 5
* New Map editor - attempts 6
* New Map editor - attempts 7
* New Map editor - attempts 8
* New Map editor - attempts 9
* New Map editor - attempts 10
* New Map editor - merge
* Revert included Stat icons in favour of #f90b22a
* Adapt to renamed TileGroup methods
* Manual merge of some baseruleset code for the map loader only
* Kludge for disappeared `getBaseRuleset`
* Fix after-merge conflicts, run convertTerrains in stepwise map generation
* Fix merge error
* Adapt to latest merge
* Baseruleset control - unpolished draft + max zoom out
* MapEditorV2 - merge fixes, base ruleset and mod control, texture loader fix, pedia links, translation, load mod maps, continent visualization, minor improvements and fixes
* MapEditorV2 - removed old editor
* Allow TranslationFileWriter to follow several superclass levels (fixes PolicyBranch names)
* Bring German and template up to par as baseline
* Framework to feed TranslationFileWriter from UniqueParameterType, also fixes Fountain of Youth
* TranslationFileWriter legacy guessing now _much_ simpler
* Fix "chance to be destroyed by nukes" case
* Fix tests (allTranslationsHaveCorrectPlaceholders goes cross-language)
* Background implementation for Unciv server with ktor.
Server ip in settings, able to copy your own ip and copy ip from clipboard for easy sharing, created stub for the client-server data transfer. No actual data storage or server implementation.
* Unciv server round 2 - implementing crud for files and it works!
metadata seems to only be in use for mutex, which is currently unused
That's all for today
* When starting a new multiplayer game the files are correctly saved in the server, and the server can return the files, but the function in the game to retrieve the game info is non-blocking so it doesn't work. Still, progress!
* Changed the Gdx http to basic Java http, as used for Dropbox, and now everything works!!!!
* Documentation for running and using the server
* Better texts, translations, etc
* Trog is right this should be a PUT not POST
* Some Ruleset linting
* Mod-check display remove unnecessary FormattedLine
* Mod-check can run on selectable base ruleset instead of Vanilla only
* Mod-check show final severity on Expander
* Mod-check base selectbox translatable