* added support
* now toggleable in settings
* translation
* added note that it requires restart
* made it enabled by default
* padded buttons to the right if there is a cutout
* checking for cutout instead of android
* reverted button changes
* moved option to advancedTab
* Refactor: Consistent usage of coroutines
* Add usage comments to the different threads
* Refactor: Properly separate crash handling into its platform-specific parts
* Fix autoSave never finishing
* Correctly handle coroutines when the GL thread is not accepting runnables anymore
Co-authored-by: Yair Morgenstern <yairm210@hotmail.com>
* Refactor: Make Popups work on Stages instead of BaseScreens
* Refactor: Change UncivGame.worldScreen and UncivGame.gameInfo to be of nullable type
* Fix "Resume" game loading not fully handling exceptions
* Fix one missed refactoring
* Refactor: remove useless postRunnable
* Refactor: Extract methods & reduce code duplication
* Refactor: Rename Sounds to SoundPlayer
* Refactor: Make UncivSound a data class
As far as I can see, UncivSoundConstants served no purpose
* Refactor: Reorder sounds
* Refactor: Split up ExtensionFunctions and move into own package
* Add multiplayer turn sound notification
* Refactor: Remove unnecessary double translation
* Refactor: Reduce code duplication
* Refactor: No if for boolean logic
* Bump version and create initial changelog entry
* Update French.properties (#7093)
* Update Italian.properties (#7092)
* Update German translation (#7087)
* Update Japanese.properties (#7086)
* Update Japanese.properties
Added about 20 lines of Japanese translation.
Didn't know where the 'fastlane_full_description' so good so put one there commented out for now.
* Update Japanese.properties
Replaced the commented out fastlane_full_description with appropriate \n for line breaks
* Update Japanese.properties
Various easy one line translations
* Update Spanish.properties (#7082)
* Update Catalan.properties (#7081)
* Update Indonesian.properties (#7079)
Co-authored-by: yairm210 <yairm210@users.noreply.github.com>
Co-authored-by: Ouaz <Ouaz@users.noreply.github.com>
Co-authored-by: Giuseppe D'Addio <41149920+Smashfanful@users.noreply.github.com>
Co-authored-by: MartinP <77325495+Mape6@users.noreply.github.com>
Co-authored-by: itmaru <34495311+itmaru@users.noreply.github.com>
Co-authored-by: Caballero Arepa <78449553+ArchDuque-Pancake@users.noreply.github.com>
Co-authored-by: Joan Josep <juanjo.ng.83@gmail.com>
Co-authored-by: kensvin <63847755+Kensvin28@users.noreply.github.com>
* 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>
- "Resources" in city-state diplomacy screen
- "When Friends"/"When Allies" in same
- "Enhance religion"
- "Choose a Religion" in religion screen
- Religion name in religion screen
- Translated drilldown items in city screen
- "null for wheat" in improvement Civilopedia entry
- "Type" and others in city-state civilopedia entry
- Requires more population
- Religious
- "Requires" in Policy civilopedia text
- "for" in improvement civilopedia text
- Untranslated conditionals in battle table (listed as "when fighting in [tileFilter] tiles")
* Unified "X is only available under Y conditions" into a single unique
There were a few problems with existing uniques - they weren't really composable, the offered things they didn't keep, etc
For example, "Incompatible with [policy/tech/promotion]", UniqueTarget.Policy, UniqueTarget.Tech, UniqueTarget.Promotion. In fact, promotions only checked promotion incompatibility, promotions - promotion incompat, etc
Additionally, with a few more changes, this could cover several other uniques - "Hidden until [amount] social policy branches have been completed", "Requires at least [amount] population", perhaps others
I have to say I think conditionals are the best thing ever and they make amazing composability possible :)
* Autoupdate correctly recognizes parameters
Updated ruleset jsons
* Deprecation texts should be allowed to forward to other deprecated uniques so we only need to change the leaves when introducing new uniques, not go through the whole tree
* Arbitrary conditionals can become timed conditionals!
triggerCivwideUniques is activated in 3 situations:
- Tech complete
- Policy adopted
- Building complete
So for each of the unique containers for these I added a catch saying 'if this unique is a temporary unique then don't save it yourself
This has been lying around in todos for a while and generalizes one of the nasty hardcoded messes that I hate about Civ V. Why would you introduce ONE timed effect in the whole game?! You can use them all the time like Humankind or never use them like Civ IV, but why have just one whyyy
One more thing in this PR, that needed to be solved by the by, is allowing parameters to have a '2' on the end so we can autoreplace multiple parameters of the same type.
Using a regex is slightly more inefficient, but since this is A. only used once per UniqueType.kt, and B. allows us to have as many 'amount's as we want which is important if we have a lot of conditionals, I feel this is justified.
* Fixed comments from PR
* Big update for French.properties (#6112)
* Big update for French.properties
- Try as much as possible to match Civ 5 french translation
- Modify some translations to better fit the UI
- Modify some translations to improve some original Civ 5 french entries which were poorly translated
- Make translations consistent through all the file
- Fix all broken translations due to bad word/key ordering
- Some quotes are now real quotes from french books (when available) rather than translated from english quotes
- Fix many typos
* Fix translation error
* Translatión: Actualización del Español (#6109)
Also deleted the extra resource icons I originally put 'xD
* Update Korean.properties (#6108)
* Update Korean.properties
* Update Korean.properties
* Update Korean.properties
* Update Korean.properties
* Update Korean.properties
* Update Korean.properties
* Update Korean.properties
* Update Korean.properties
* Update Japanese.properties (#6107)
* Update Indonesian.properties (#6103)
* Update Indonesian.properties
* Update Indonesian.properties
Co-authored-by: Ouaz <Ouaz@users.noreply.github.com>
Co-authored-by: ArchDuque-Pancake <78449553+ArchDuque-Pancake@users.noreply.github.com>
Co-authored-by: Samsaek the Calico <saud2410@naver.com>
Co-authored-by: yuracla <89312848+yuracla@users.noreply.github.com>
Co-authored-by: kensvin <63847755+Kensvin28@users.noreply.github.com>
* Find all replaceable uniques, generate replacement text, check for compatibility, and replace!
All of the work up until now has lead up to this point - since we already know what's out and what to replace it with, we can do 90%+ of the work ourselves and spare the sanity of our modders
For an example run:
- Download your favorite mod
- Check its deprecated uniques in the options menu
- Run the autoupdater from the same menu
- See how they disappear
- Bask in the glory
* A few unreplaced uniques raised problems in some of the replacement texts
* Old unusable deprecated uniques are suddenly important again, because they can help autoupdate mods!
I'm wondering if to remove outdated mods entirely from the uniques.md, since they're going to keep accumulating
* Padding for the 'autoupdate' button
* Only display autoupdate button if there are unique to update
Also, fixed some of the revived deprecated unique's replacement text thanks to fancy new tests :)
Tech uniques autoupdate!
* Toast now pops correctly, added translation entries
* Added unique to convert terrain to other terrain if adjacent to something
Terrain converting to other terrain when adjacent to rivers was using hardcoded stuff, so I un-hardcoded it
I thought I could use this to replace the 'coast' hardcoding, and if it wasn't for the maxCoastExtension then I could.
Modders CAN therefore add their own coast (Lava tiles and Ash tiles I dunno) but it will only be for directly close terrains.
This enables Deciv Redux to spawn huge maps.
* Also for Vanilla, which apparently had a different number of tabs than G&K for no apparent reason.
* Apparently terrain name wasn't a uniquetype yet
(cherry picked from commit 593fc257b5)
* Update Spanish.properties (#6082)
* Update Spanish.properties
the only thing i didn't translate were the names of the cities if you have any problem contact me on discord like: lostxxxxx
* Update Spanish.properties
problem solved
* Update Japanese translation (#6075)
* Update Japanese.properties
* Update Japanese.properties
* Update Italian.properties (#6074)
Co-authored-by: Hello200000 <98656089+Hello200000@users.noreply.github.com>
Co-authored-by: yuracla <89312848+yuracla@users.noreply.github.com>
Co-authored-by: Giuseppe D'Addio <41149920+Smashfanful@users.noreply.github.com>
* Gradle build tools upgrade
Apparently the magic is rewriting a specific line in the Android build file and downloading Android SDK 30.0.3
* Added wiki change, isn't that nice :)
* Added a json file for unhappiness effects
* Change existing code to handle these effects
* Made a weird and unexpendable way to add unhappiness effects to the civilopedia
* Add the default unhappinesseffects to mods without the json
* Added revolts when at very low happiness
* Renamed a few often-used functions
* Added a file for uniques that are always active
* Fixed tests
* Nullifies [Food] -> Nullifies Growth
* Update Italian.properties (#6029)
* more word change (#6010)
* more word change
* Added that space
Co-authored-by: Xander Lenstra <71121390+xlenstra@users.noreply.github.com>
Co-authored-by: Giuseppe D'Addio <41149920+Smashfanful@users.noreply.github.com>
Co-authored-by: fab144 <58261459+fab144@users.noreply.github.com>
Co-authored-by: Xander Lenstra <71121390+xlenstra@users.noreply.github.com>
* Typed some uniques, etc.
* Missed a few square braces
* Missed a parameter
* Missed another parameter
* Made a conditional, spelling, added check to `isStatRelated`
Co-authored-by: Yair Morgenstern <yairm210@hotmail.com>
* Typified some building uniques
I noticed that the code allows "[stats] from every [buildingFilter]" but the UniqueType was limited to "[stats] from every [buildingName]", so now that that's available we don't actually need the "[stats] from every Wonder" unique :)
* buildings-only unique moved to buildings section
* Make unknown nation placeholder translatable.
* Make MultiplayerScreen help button clearer and translatable.
* Use `Constants.spectator` more.
* Make random/unknown nation icon translatable.
* Update English.properties. (Remove no-op translations.) (#5977)
* Update Spanish.properties (#5970)
* Update Italian.properties (#5966)
* I made some changes to the simplified Chinese translation file. (#5987)
* Minor polishing up for accuracy and some translation
* Additional translation
* Update Simplified_Chinese.properties
Co-authored-by: will-ca <willchencontact@gmail.com>
Co-authored-by: ArchDuque-Pancake <78449553+ArchDuque-Pancake@users.noreply.github.com>
Co-authored-by: Giuseppe D'Addio <41149920+Smashfanful@users.noreply.github.com>
Co-authored-by: unciv-translation <97832928+unciv-translation@users.noreply.github.com>
The NewGameScreen was written by a past version of myself that had no idea how to handle threading, and thus was extremely strange. Checking an object _on render_ and if it's set then activate? Totally clueless.
* Add crashHandlingThread.
* Replace all uses of `thread` with `crashHandlingThread`.
* Add `postCrashHandlingRunnable`.
* Replace all uses of `Gdx.app.postRunnable` with `postCrashHandlingRunnable`.
* Remove CrashController and CrashReport; Strip down CrashReportSender to CrashReportSysInfo; Fold their functionality into CrashScreen.
* Typo in comments, rename `SafeCrashStage` to `CrashHandlingStage`.
* Tweak docs.
* Tweak docs, comments, text. Undo an accidentally recursive Replace All change.
* Remove replaced translations.
* More readable indentation handling in report template.
* Update Portuguese.properties
# Language settings
# Equivalent of a space in your language
# If your language doesn't use spaces, just add "" as a translation, otherwise " "
# Requires translation!
" " =
# If the first word in a sentence starts with a capital in your language,
# put the english word 'true' behind the '=', otherwise 'false'.
# Don't translate these words to your language, only put 'true' or 'false'.
# Requires translation!
StartWithCapitalLetter =
# Starting from here normal translations start, as written on
# https://github.com/yairm210/Unciv/wiki/Translating
# Tutorial tasks
* Update Simplified_Chinese.properties (#5890)
* Merged some uniques and added a new one for not allowing to build units (#5731)
* Print stacktraces in more cases when crashing, useful for debugging
* Conditionalized no oceans before astronomy unique
* Cannot be built on tile before tech conditionalized
* Added "Cannot build unitFilter units" unique
* Fixed tests failing
* Merge branch master into some-uniques
* Fixed typo
* Apparently I made the same mistake twice
* Globalized unique
* Allowed follower beliefs to have more uniques, merged a unique and globalized some uniques (#5882)
* Regenerate atlas. #5884. (#5885)
* Update Simplified_Chinese.properties
* Fixed translation tests failing
Co-authored-by: Xander Lenstra <71121390+xlenstra@users.noreply.github.com>
Co-authored-by: will-ca <willchencontact@gmail.com>
* Update Simplified_Chinese.properties (#5889)
* Merged some uniques and added a new one for not allowing to build units (#5731)
* Print stacktraces in more cases when crashing, useful for debugging
* Conditionalized no oceans before astronomy unique
* Cannot be built on tile before tech conditionalized
* Added "Cannot build unitFilter units" unique
* Fixed tests failing
* Merge branch master into some-uniques
* Fixed typo
* Apparently I made the same mistake twice
* Globalized unique
* Allowed follower beliefs to have more uniques, merged a unique and globalized some uniques (#5882)
* Regenerate atlas. #5884. (#5885)
* Update Simplified_Chinese.properties
Co-authored-by: Xander Lenstra <71121390+xlenstra@users.noreply.github.com>
Co-authored-by: will-ca <willchencontact@gmail.com>
* Update Brazillian_portuguese.properties (#5887)
* Merged some uniques and added a new one for not allowing to build units (#5731)
* Print stacktraces in more cases when crashing, useful for debugging
* Conditionalized no oceans before astronomy unique
* Cannot be built on tile before tech conditionalized
* Added "Cannot build unitFilter units" unique
* Fixed tests failing
* Merge branch master into some-uniques
* Fixed typo
* Apparently I made the same mistake twice
* Globalized unique
* Allowed follower beliefs to have more uniques, merged a unique and globalized some uniques (#5882)
* Regenerate atlas. #5884. (#5885)
* Update Brazillian_portuguese.properties
I translated some sentences.
Co-authored-by: Xander Lenstra <71121390+xlenstra@users.noreply.github.com>
Co-authored-by: will-ca <willchencontact@gmail.com>
* Update Czech.properties (#5875)
- translated lot of new strings
* Some French translations (#5871)
* Some French translations
* Update French.properties
* Update Italian.properties (#5869)
* Update Dutch.properties (#5858)
* Update Dutch.properties
* Voorgestelde verbeteringen toegevoegd
Co-authored-by: Xander Lenstra <71121390+xlenstra@users.noreply.github.com>
* Actually fixed the atlas generation
* Update Turkish.properties (#5903)
* Delete Ship Of The Line.png
* GH Actions: Check user privileges before running bots. (#5895)
* Revamped nukes again to closer match the original (#5892)
* Update Turkish.properties
I translated again.This time i translated somra error scripts
Co-authored-by: hundun <wwj.hddjj@gmail.com>
Co-authored-by: Xander Lenstra <71121390+xlenstra@users.noreply.github.com>
Co-authored-by: will-ca <willchencontact@gmail.com>
Co-authored-by: sidneybr <95696905+sidneybr@users.noreply.github.com>
Co-authored-by: ZGMZY <69511837+ZGMZY@users.noreply.github.com>
Co-authored-by: will-ca <willchencontact@gmail.com>
Co-authored-by: Ustklm <58632848+Ustklm@users.noreply.github.com>
Co-authored-by: stoupa007 <60326342+stoupa007@users.noreply.github.com>
Co-authored-by: Newexae <96820363+Newexae@users.noreply.github.com>
Co-authored-by: Giuseppe D'Addio <41149920+Smashfanful@users.noreply.github.com>
Co-authored-by: Peter Bos <55184696+Peter1306@users.noreply.github.com>
Co-authored-by: HariboSever <96971269+HariboSever@users.noreply.github.com>
Co-authored-by: hundun <wwj.hddjj@gmail.com>
* Print stacktraces in more cases when crashing, useful for debugging
* Conditionalized no oceans before astronomy unique
* Cannot be built on tile before tech conditionalized
* Added "Cannot build unitFilter units" unique
* Fixed tests failing
* Merge branch master into some-uniques
* Fixed typo
* Apparently I made the same mistake twice
* Globalized unique
* Update German.properties (#5863)
* Update Italian.properties (#5851)
* Update Romanian.properties (#5806)
* Update Romanian.properties
I made a contribution to Romanian translation. Up to rougly line 800 should be translated until now. I'd be happy you introduced these translation to the game!
* Update Romanian.properties
Mostly typos, that hopefully have been fixed.
Co-authored-by: Xander Lenstra <71121390+xlenstra@users.noreply.github.com>
Co-authored-by: jacer2010 <96766494+jacer2010@users.noreply.github.com>
Co-authored-by: Giuseppe D'Addio <41149920+Smashfanful@users.noreply.github.com>
Co-authored-by: Cosmin Burada <77898829+cosylynx@users.noreply.github.com>
Co-authored-by: Xander Lenstra <71121390+xlenstra@users.noreply.github.com>
* Fixed a bug where bonusses applying 'in friendly tiles' would not apply
* Reworded something so it actually makes sense
* Fixed capitalization error leading to autocracy complete bonus no longer working
* Fixed save serialization errors and finally correctly implemented the time limit for autocracy bonus
* Made value const and static
* Show arrows on map for unit actions.
* Don't wrap arrows unless world wrap is actually enabled.
* Fix transported air units always being treated like teleports.
* Simple reviews.
* Separate movement arrow visibility checks from WorldScreen.
* Assets for map arrows overlay.
Co-authored-by: Yair Morgenstern <yairm210@hotmail.com>
* Show arrows on map for unit actions.
* Don't wrap arrows unless world wrap is actually enabled.
* Fix transported air units always being treated like teleports.
* Simple reviews.
* Separate movement arrow visibility checks from WorldScreen.
Co-authored-by: Yair Morgenstern <yairm210@hotmail.com>
* Added a score calculation
* Added the score in multiple places of the UI
* Added time victory and a max turns
* Made time victory functional
* Added translation files
* Add new crash handler and error reporting screen.
* Minor cleanup.
* Word choice.
* Rename `SafeCrashStage` to `CrashHandlingStage`.
* Reviews.
* Reference stack traces in comments for thread and postRunnable exceptions.
* Remove excessive line breaks, superfluous .apply{}.
This lead to failed tests for new languages, as the second space would be seen as the translated string, which obviously doesn't contain the placeholder tags.
* Fixed an infinite loop where foreign legion upgraded to the unit it replaced
* Changed the wrong variable
* Maybe it is useful to also change its unlock tech
* Whoops, should only be for non-null values
* Added necessary utils
Added the FileNotFoundException which is also part of #5593
* Added preview download to MultiplayerScreen
* Added preview download to TurnChecker
* Fixed uncomplete commit
* Removed debug print in MultiplayerScreen
According to a Malay speaker in discord, this resolves several curse words and similar being removed from the translation. As #4820 also changed some 3700 other lines and the file hasn't been touched since, this should also improve the translation in other ways.
I am, however, not a Malay speaker, so I personally cannot vouch for the correctness of these translations.
Additionally, all lines that have been added since 3.16.3 to be translated, have been removed from this file, making the change seem larger than it really is.