Commit Graph

15 Commits

Author SHA1 Message Date
SomeTroglodyte
46a84c23b0
Make mod categories curated in Json (#9542)
* Dynamic mod categories from online query

* Move Working string to Constants

* Move Mod categories to json

* Move Mod categories to json - UI

* Move Mod categories to json - initial json
2023-06-14 09:12:24 +03:00
SomeTroglodyte
8b72dba4fb
Refactor input-related components into own package (#9552) 2023-06-11 12:36:09 +03:00
Yair Morgenstern
575983578a
Game saves are regular json, not minimalized json (#9427) 2023-05-22 17:57:56 +03:00
Yair Morgenstern
d2eaae0922
4.6.11-patch1 (#9375)
* Convert 'camps' vectorhashmap to 'encampments' arraylist

* Solve camps For Real This Time
Previous solution was only taking the first item of the class, not all of it

* 4.6.11-patch1
2023-05-11 16:54:37 +03:00
SomeTroglodyte
2ef5ed14e1
Fix 4.6.10 no longer loading older games (#9370)
* Fix 4.6.10 no longer loading older games

* Save games with correct current version info
2023-05-11 13:01:00 +03:00
WhoIsJohannes
11be6e2804
Silently log ranking stats for each major civ every turn (#8964)
* Record each stat each round for each civilization.

* Implement custom serialization and encapsulate logic in separate CivRankingHistory.kt

* Address comments

* Address comments and add RankingTypeTest.kt
2023-03-21 14:38:22 +02:00
Yair Morgenstern
9eee47a628 Resolved #8880 - deprecated old barb camp serialzation 2023-03-13 16:59:09 +02:00
WhoIsJohannes
f4dca2281e
Add Replay feature in VictoryScreen (#8844)
* Add Replay feature in VictoryScreen.

* Add Replay feature in VictoryScreen.

* Support for i18n

* Extract year to text conversion into common util to be used from VictoryScreen.kt and WorldScreenTopBar.kt

* Remove ReplayMapTile and modify MinimapTile so that it can support both use cases.

* Reuse code for spreading out tiles onto tile layer between Minimap and ReplayMap by factoring it out into a new MinimapTileUtil

* Revert "Reuse code for spreading out tiles onto tile layer between Minimap and ReplayMap by factoring it out into a new MinimapTileUtil"

This reverts commit d4cddb4312.

* Add Replay feature in VictoryScreen.

* Add Replay feature in VictoryScreen.

* Support for i18n

* Extract year to text conversion into common util to be used from VictoryScreen.kt and WorldScreenTopBar.kt

* Remove ReplayMapTile and modify MinimapTile so that it can support both use cases.

* Revert some unintentional indentation changes

* Refactor some common logic of Minimap and ReplayMap into MinimapTileUtil

* Slightly increase ReplayMap size and simplify logic to calculate tile size since input is static.

* Indentation again... :|

* Unify isCityCenter & isCapital into an enum in TileHistory and shorten identifiers

* Use city.getTiles() instead of city.tiles in CityInfoConquestFunctions.kt

* Improve tileSize calculation in ReplayMap.kt

* Remove extra padding in VictoryScreen -> Replay to prevent WorldScreenTopBar from acting up on the next turn.

* Make return value of MinimapTileUtil.spreadOutMinimapTiles more useful to callers

* Cancel Replay timer when VictoryScreen is disposed or when Replay is opened again.

* Cancel replay map timer task whenever tab is switched in VictoryScreen

* Improve serialization for TileHistory by using a custom serializer. This removes the need for holding two copies of the same thing and to use String based keys.

* Add backwards compatibility for replay. The replay will start at the turn where it came into play.

* Remove debugging code :|

* Use gameInfo field rather than going throug the global UncivGame...
2023-03-12 19:59:48 +02:00
SomeTroglodyte
793d3387bf
Custom key bindings (#8802)
* Configurable key bindings - linting

* Configurable key bindings - move keyboardAvailable

* Configurable key bindings - separate KeyShortcutDispatcher

* Configurable key bindings - framework

* Configurable key bindings - save and load

* Configurable key bindings - activation

* Configurable key bindings - UI

* Configurable key bindings - more linting

* Configurable key bindings - Separate SettingsSelect

* Configurable key bindings - translation tested

* Configurable key bindings - disclaimer

* Configurable key bindings - disclaimer
2023-03-11 20:12:00 +02:00
Timo T
ea03b97639
#6914 Multiplayer Status Display (#6916)
* 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
2022-05-25 22:22:58 +02:00
Timo T
244f9477df
Initial Event Bus implementation & Event-based multiplayer updates (#6826)
* Add EventBus

* Refactor: Extract multiplayer logic into their own classes & make updates event-based instead of throwaway+rebuild
2022-05-22 00:05:33 +02:00
Jack Rainy
915f3e694f
A lot of smaller code/performance improvements (#6859)
* Unused import directive

* Unused symbols

* Unnecessary constructions

* Redundant constructions

* Some optimizations

* Java interop issues: a package must match a location

* Collection .count() can be replaced with .size

* Class member can be "private"

* Call chain can be simplified

* Simplified conditions

* Proper use of variables

* Assignment styles

* Corrections after the code review

* Corrections after the code review - part 2

* Code review feedback: get them back to public

* Fix of the bad merging

* Code review: Lost spaces found their homes
2022-05-21 01:41:28 +02:00
SomeTroglodyte
3d6a01d633
Build warnings cleanup (#6827) 2022-05-19 02:12:18 +02:00
Timo T
7c24b0b6af
Fix old barbarian camps not being properly loaded after 86d5011 (#6724)
* Fix old barbarian camps not being properly loaded after 86d5011

* Fix first load resulting in error
2022-05-08 21:21:25 +03:00
Timo T
86d5011da1
In-depth serialization improvement, fixes Barbarian Camps revealed by Honor not showing immediately in multiplayer
* Fix Barbarian Camp Spawned notification not revealing the camp on the map in multiplayer

* Fix lastSeenImprovement not being cloned

* Use HashMapVector2 in BarbarianManager

* Fix value not having its class written out for proper deserializing

* Refactor: various code improvements
2022-05-08 12:35:41 +02:00