* Delete Oil WellC.png
Since now offshore platform is back again, the "coastal" oil rig is obsolete now.
* Adding spaceship parts sprites for FantasyHex tileset
* Add files via upload
* Add files via upload
* created files for friends list screen
* redone #3
* fixed some crashes and more additions
* changelog in the comment below
* Update .gitignore
included the FriendsList.json file
* changelog in the comment below, again
* optimized imports to hopefully fix the error in github build check
* replaced imports with the ones from master since OnlineMultiplayer.kt no longer exists
* imported ViewFriendsList
* used the right package for all friendsList related files and a little bit of cleanup
* check if friends list is empty before adding the select friend button
* check if the ID is correct when adding a new friend
* don't set null as playerID if no friend is selected
* added messageTexts for the input TextFields
* don't show already selected friends
* fixed checkmark not updating after selecting a friend
* you can't be your own friend! and other checks for edit button
* fix error
* replaced error type with enum, replaced nested ifs with when loop, added additional checks when editing friends
* fixed error, can't really tell how I managed to do this
* reorganized checks for adding and created settings variable to hopefully fix the github build error
* actually fixed github error
* it now removes selected friends from the list of selectable friends
* fixed not being able to change only the id of a friend
* made it look half decent
* cleanup + improved help button
* updated template.properties
* renamed variable
* some tweaks
* moved friends list to GameSettings
* tested every feature and fixed what didn't work
* removed redundant variables and final cleanup
* little improvements
* string improvements
* removed rightSideButton from ViewFriendsListScreen
* removed unnecesary uniformX and decreased padding to allow seeing more friends in ViewFriendsListScreen
* Add usesCleartextTrafic permission to Android manifest
* Add warning for starting a multiplayer game with the default Dropbox server
* Improve multiplayer server documentation
* Only update the current game if we're using a custom server or it's not our turn
* Refactor: Nicer variable name
* Fix compilation
* Fix type
Don't know what happened there
* Pillaging loots gold on certain improvements
* Add warning if improvement pillageGold > 0 and has UniqueType.Unpillagable
* Pillage yields as a UniqueType
* Forgot to undo demonstration
* Remove unused line
* Eliminate some redundancy
* Reword unique text
* Slight cleanup and add notification for pillage victim
* Reviews
* Made pillaging notifications more consistent with other hostile action notifications
* Missed a line
* 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>
The fix in #6901 caused `arrayIndex` to go out of sync, because the `continue` happened before `arrayIndex` was incremented. This caused a later game preview to be saved to the previous game name, overwriting and duplicating it.
* 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
* Refactor: change GameSaver from singleton to single instance pattern & move autosave logic info GameSaver
Singleton just doesn't make sense anymore when we have to `init(..)` with different arguments, then we should just make a normal class out of it
* Fix not correctly checking for missing external files dir
* Refactor: use more appropriate library method
* Add logging for external files dir
* Bump version and create initial changelog entry
* Update Polish.properties a little (#6853)
* Add some random translations
* Translate the abbreviaation WLTK as DUK (Dzień Uwielbiania Króla)
* Add antoher random translation
* Update Simplified_Chinese.properties (#6852)
Co-authored-by: yairm210 <yairm210@users.noreply.github.com>
Co-authored-by: Anton <antek@sniec.pl>
Co-authored-by: xk730 <40309144+xk730@users.noreply.github.com>
* Delete Oil WellC.png
Since now offshore platform is back again, the "coastal" oil rig is obsolete now.
* Add files via upload
* Add files via upload
* Add files via upload
* Update HexaRealm.json
* Great General UniqueTyped and improved moddability - draft
* Great General UniqueTyped and improved moddability - reviews
* Great General UniqueTyped and improved moddability - no reason not to cache another
* Integration with JackRainy's solution
* Integration with JackRainy's solution - part 2
* Revert of maxGreatGeneralBonusRadius logic
* Minor refactoring
* Code review: minor refactoring
* Keep the warning for the modders about the obsolete unique
* Code review: Better wording for the unique
Co-authored-by: SomeTroglodyte <63000004+SomeTroglodyte@users.noreply.github.com>
* Great improvements can again be constructed on forest
This PR fixes a bug where great improvements couldn't be build on
forests/marshes/jungles/etc. It does so by creating a unique which
specifically allows for removing features, and checking for that.
Additionally, we only remove these features when we have the tech to
remove them. For example, you can no longer plonk an Academy down over a
forest without having researched mining.
* Missed the file for vanilla
* Reviews
* Fixed logic
* Refactor: Move classes into their own files
* Handle 404 FileNotFound in UncivServer
* Refactor: Rename method
* Make GameSaver.saveGame throw the exception by default if it is not handled
* Add possibility to work with FileHandles in GameSaver
* Make OnlineMultiplayerGameSaver load the multiplayerServer setting each time it does something
This theoretically makes it unnecessary for the OnlineMultiplayerGameSaver to be re-instantiated each time it is used
* Refactor: Remove duplicated code
* Refactor: Extract NextTurnButton from WorldScreen
* Refactor: Remove WorldScreen-specific code from OptionsPopup
* Use kotlin coroutines everywhere instead of plain threads
This probably also cuts down on our raw thread usage, improving performance, since we now use a cached thread pool (in addition to coroutines being able to reuse threads anyway)
* Improve deep load from notification
* Refactor: Give music download coroutine the proper name
* 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>
* Create posh
* HexaRealm tile sprites upload (part 1)
* HexaRealm tile sprites upload (part2)
* HexaRealm tile sprites upload (part 3)
* Upload HexaRealm.json
Should have no problem in terms of most of the layering!
* Delete posh
* Delete bana.png
* vpn/proxy issues when creating new mp game
replaced redundant ping with opening a connection to dropbox to fix the proxy issue
* updated error message to include dropbox
* check multiplayerServer url if the user is playing on it
* use `https://content.dropboxapi.com` instead of `https://www.dropbox.com`
* fixed proxy issues on android
if connected to proxy but no internet access it will freeze for a couple seconds (until it finishes the for loop) but it works
* forgot to add the imports
* removed android sdk network check to fix proxy issues
* check for internet now separate from check for multiplayerServer
removed frunctions from PlatformSpecificHelpers__
* added improvements made by touhidurrr
* removed unused imports and replaced setter with property access syntax
Co-authored-by: Md. Touhidur Rahman <46617994+touhidurrr@users.noreply.github.com>
* Renamed tile.hasUnique, deprecated `Indestructable`, unique for citadels
Also refactored the consumption of (great) people out of UnitActions.
* Reworked when improvements can be build somewhere for more clarity
* Made resources improvable by multiple improvements; Offshore Platform
* Fix compatability
* WIP
* Fixed the tests, but better
* I suppose I might as well update this now that we're a version later
* Bump version and create initial changelog entry
* Update Filipino.properties (#6714)
* Update Filipino.properties
* Update Filipino.properties
* Update Filipino.properties
* Update Filipino.properties
* Update Filipino.properties
* Update Filipino.properties
* Update Romanian.properties (#6713)
* Fixed issue #6649 by checking for internet connection before starting the game if "online multiplayer" is selected
Many thanks to @SomeTroglodyte for most of the code and for explanations
* Revert "Fixed issue #6649 by checking for internet connection before starting the game if "online multiplayer" is selected"
This reverts commit bae7d7c07f.
* some translations
* merging with 4.0.13
* fixed a little error
* fixed github check error
* Update German translation (#6710)
* Update German translation
* Update German translation
* Update German translation
* Update Italian.properties (#6708)
* Update French.properties (#6697)
* Update French.properties
* Update French.properties to 4.0.13
Co-authored-by: yairm210 <yairm210@users.noreply.github.com>
Co-authored-by: Shann Aurelle Ripalda <shannaurelleg@gmail.com>
Co-authored-by: alexban011 <alexban011@gmail.com>
Co-authored-by: MartinP <77325495+Mape6@users.noreply.github.com>
Co-authored-by: Giuseppe D'Addio <41149920+Smashfanful@users.noreply.github.com>
Co-authored-by: Ouaz <Ouaz@users.noreply.github.com>
* 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
* 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.
* Implemented most easy things from comments on moddable victory PR
Also added religious victory condition
* Fixed tests
* Fixed compile problems & missing string
* Fixed typo
* Use both icon and roundIcon properties
* Studio-generated Android Icon
* Studio-generated Android Icon to fastlane
Co-authored-by: JackRainy <JackRainy@users.noreply.github.com>
* Fixed issue #6649 by checking for internet connection before starting the game if "online multiplayer" is selected
Many thanks to SomeTroglodyte for most of the code and for explanations
* check for internet before starting a mp game to avoid freeze
Fixed issue #6649 by checking for internet connection before starting the game if "online multiplayer" is selected.
Many thanks to SomeTroglodyte for most of the code and for explanations. A slight modification has been done to the code to catch an error caused by InetAddress
* Revert "Merge remote-tracking branch 'origin/master-noInternet' into master-noInternet"
This reverts commit bd6474b50d, reversing
changes made to f52ad60b51.
* 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
* Changed milestone build globally text to make it more understandable
* Actually this is probably just as clear, gramatically more correct and
more imperative like the other milestones
* Fixed tests
* Reworded again
* 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
* Fixed G&K policy eras
Patronage should be Medieval and Freedom should be Industrial in G&K
* Added 'priorities' object to policy branch entries
* Fixed Vanilla policy eras
Also set testing priorities in advance
* Partial code formatting
* Reworked how the AI chooses a policy to newly adopt
* Removed debugging codes
* Update Civilization-related-JSON-files.md
Added Branch priorities
* Assigned actual priorities to each branch
Also fixed a debugging value in Ruleset.kt (-1 -> 0)
* 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)
* Generalized trade route percent bonuses
* Unified two uniques using populationFilter; deprecated a deprecated uniq
* Made some renamings to improve clarity & fixed tests
* Fixed tests again
* Fixed typo
* 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
* Resolved#6335 - now shows conditionals precluding construction of units
Built simply so that if we decide to expand the conditionals that should be shown it will simply be building a hashset of conditionalsToShow
* Added an instance wrapper, so the enum has the default values and the class has the actual values
* minor lint
* Fixed reviewed comments of PR 6273
* Cleanup of Dropbox.kt
- moved Dropbox.kt from ui\worldscreen\mainmenu to logic\multiplayer
- moved ServerMutex and OnlineMultiplayer to own files
- changed DropBoxFileConflictException to FileStorageConflictException to match FileStorage scheme
- merged FolderListEntry with DropboxMetaData as they were basicly the same
- introduced IFileMetaData to match FileStorage scheme and modified DropboxMetaData to use it
- removed some unused imports
* Unique units abilities that should be inherited by upgrades
* Unique units abilities that should be inherited by upgrades - xlt
* Unique units abilities that should be inherited by upgrades - wiki
* Destroy Arsenal when city is captured
* Update vanilla Songhai
* Add Amphibious promotion to all Songhai units
In Gods and Kings, all Songhai Land units have the Amphibious promotion. This brings our Gods and Kings up to speed with the original.
* Destroy Arsenal when city is captured
* Fix Petra culture wiht city filter
Change Petra's culture bonus to city-specific bonus instead of empire-wide bonus
* WLTK decoration png's and atlas
* UncivTooltip anchor to stage so tips won't get clipped by some ScrollPane
* Empire Overview Cities add WLTK column
* Make WLTK line on CityScreen stats box link to Civilopedia
* Make Civilopedia return to previous screen for _both_ ESC/Back and the Close Button
* Revive Civilopedia links in WorldScreen.TileInfoTable
* Festive decoration for WLTK day on CityScreen
* 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
* Translation: Update Spanish.Properties (#6243)
* Translation: Update Spanish.Properties
Mosaicos? Pero si yá está el estandar de "Casilla"?...
* Update Spanish.properties
* Update Spanish.properties
* Create Spanish.properties
* Update Spanish.properties
* Update German translation (#6242)
* Update Indonesian.properties (#6241)
* Update French.properties (#6236)
* Update Simplified_Chinese.properties (#6233)
* Update Simplified_Chinese.properties
I have translated all I can, but there're still some of them out of my ability. Note: How to translate ID?
* Update Simplified_Chinese.properties
* Update Italian.properties (#6228)
Co-authored-by: ArchDuque-Pancake <78449553+ArchDuque-Pancake@users.noreply.github.com>
Co-authored-by: MartinP <77325495+Mape6@users.noreply.github.com>
Co-authored-by: kensvin <63847755+Kensvin28@users.noreply.github.com>
Co-authored-by: Ouaz <Ouaz@users.noreply.github.com>
Co-authored-by: heipizhu4 <100454479+heipizhu4@users.noreply.github.com>
Co-authored-by: Giuseppe D'Addio <41149920+Smashfanful@users.noreply.github.com>
* Change Embarked Defending Strength per era. Update Tutorial a little
* Use JSON implementation of EmbarkDefense
Co-authored-by: itanasi <spellman23@gmail.com>
* Add Amphibious penalty to Land attacking into Water and vice versa
* Replace Landing with Amphibious in all translation files
* Fix trailing whitespace
* Revert translation files
* Change working of Amphibious
Set penalty to Landing and Boarding
* Type-ify Unique and add Depreciated
Add Promotion to Melee Naval
Add exception that Landing penalty is NOT against cities
* Fix Vanilla
* Rename to Landing Party
Icon doesn't work
* Properly regenerated game.atlas/game.png
* Fox naval unit Landind penalty is for attacking on to land
* Only Land unit should have Boarding penalty
* Unbreak logic
* Adding more information to the Embarking Tutorial
* More info
Co-authored-by: itanasi <spellman23@gmail.com>
* Triggered uniques currently come from researching techs, adopting policies, and building buildings.
This adds a third way of triggering uniques, by attaching them to units with a "by consuming this unit" conditional, which will be added as a possible unit action.
So for example, "[amount] Free Technologies <by consuming this unit>", "Reveals the entire map <by consuming this unit>" etc.
* Added a new uniquetype for triggerable uniques, to make them separate from regular global uniques, so that triggerable uniques can become unit uniques when necessary
* And added translations so the tests will pass
Instead of expanding the existing 'requires building' unique to units and adding limiters, it's both easier and more generalizable to add conditionals for cities with and without certain buildings to replace the uniques entirely
* Add Amphibious penalty to Land attacking into Water and vice versa
* Replace Landing with Amphibious in all translation files
* Fix trailing whitespace
* Revert translation files
* Change working of Amphibious
Set penalty to Landing and Boarding
* Type-ify Unique and add Depreciated
Add Promotion to Melee Naval
Add exception that Landing penalty is NOT against cities
* Fix Vanilla
* Rename to Landing Party
Icon doesn't work
* Properly regenerated game.atlas/game.png
Co-authored-by: itanasi <spellman23@gmail.com>