* Defensive Pacts can now be offered.
* Signing a defensive pact now makes the Civs join all defensive wars. Any future defensive wars will force the other civ to join.
* Removed Popup Alert Defensive Pact.
* Defensive pact and Research pact now are only on the trade screen.
* AI now offers defensive pacts.
* Added AI evaluating sending and receiving Defensive Pact offers.
* Reverted some temporary changes
* Reduced the chance an AI offers a defensive pact
* Starting an offensive war now cancels all Defensive Pacts with other civilisations.
* Removed extra requirements before an AI will sign or offer a defensive pact.
* Added Defensive Pacts to the Civilopedia.
* Fixed the AI counter offering with treaties.
* Fixed a test using the old method of checking if a civ is at war.
* Fixed a previous refactor error.
* Deleted commented out Research Agreement button code.
* Fixed some spelling errors and remnant debugging code.
* Removed signing a defensive pact brings both Civ's into each others previous defensive wars.
* Refactored setFriendshipBasedModifier to look better
* Starting an offensive war now removes the defensive pact form both sides.
* Reverted changes to DiplomaticStatus
* Removed extra technology check to sign a defensive pact.
* Removed DiplomacyManager.isAtWar() completely.
* Moved setting defensivePact flags from TradeLogic.transferTrade() to DiplomacyManager.signDefensivePact.
* Changed diplomatic modifiers related to Defensive Pacts to be less extreme.
* Fixed canceling Defensive Pacts when declaring war and notifying other Civs.
* Updated the Defensive Pact entry in the Civilopedia and fixed some spelling.
* Fixed Defensive Pact behavior while attacking and defending.
* Changed a variable to a more readable name.
* Improved readability of setFriendshipBasedModifier().
* Moved the important onWarDeclared functionality to their own functions.
* Added a notification for the attacking Civ when a Civ joins war through a Defensive Pact.
* Refactored setDefensivePactBasedModifier() to be more readable.
* Increased DeclinedDefensivePact time.
* Deleted old commented code that removed the research agreement button.
* Fixed having reverting changes errors in UnitMovementTests.
* Refactored breaking treaties when declaring war.
* Removed unnecessary semicolons.
* Defensive Tileset loading
* Deleting a mod should do the same cleanup as downloading a new one
* Extensive RulesetValidator checks on Tileset mod integrity
* 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
* Slight cleanup of TileStatFunctions
* Make City center minimum tile yields moddable
* Make City center minimum tile yields moddable - patch1
* Make City center minimum tile yields moddable - patch1
Normally this is auto-fixed but a `/` at the end of the URL does not work. Because in API you do requests like `GET /file/:filename` and if you also put a `/` at the end of the server URL, it becomes something like this `https://example.com//files/filename`. Since the auto-fix happens only when typing a new URL from `Options` > `Multiplayer`, the default value doesn't get auto-fixed and shows errors.
I tested on a new installation and as expected it shows the `Couldn't upload game` error.
This pr fixes this.
* Reapply Changes
* Logic clean up
* Adding getImprovementToPillage() and getRepairableImprovement()
* Cleaning up Unit Actions
* getImprovementToPillage() needs to check for Unpillagable
* Remove redundant logic since canBuildImprovement() returns true if currently repairing
* More redundant logic
* Prevent City Center from being Pillage status
addRepairAction will not show a Repair Action
Adding the improvement to be repaired/pillaged in button text
Utilizing getImprovementToPillage() more
* Some import cleanup
Add Irremovable to blockers
More consolidation of code
* More translation files
* When improvements/roads are built/removed, pillaged flag set to False
* Better and more consistent logic
* Fix dumb logic bug
* Added unitset selection to options menu
* Added None type to unitset selection
+ added logic to switch unitset when changing tileset as long as one with the same name exists and both are selected
* Updated default unitset to be HexaRealm
* Made UI skins selectable
This allows mods to provide alternative skin pngs without overriding the default skin purely by being downloaded
* Added UI Skin loading from NinePatches
This allows mod creators to define the stretch region and padding directly in the png
* Update baseScreen skin on skin reload
* Merged displayTab onChange functions
As all of them are equal anyway
* Removed legacy tileset code
which was only used for the "Default" tileset
* Updated "Default" tileset to support new rendering
* Updated docs
* Fixed fogOfWar coloring bug
* Removed cityImage variable completely
* Renamed variable out to baseHexagon
* Moved color lerp out of for loop
* Renamed "Default" tileset to "Minimal"
* Made "HexaRealm" the games fallback tileset
* Implemented requested changes
* Readded accidentally removed variable
* Reverted updateTileImage back to foreach loop
Since indices are not needed anymore
* Regenerated game.atlas and game.png
* Update AI for buying with Faith, allowing it to buy Faith buildings
* Minor bug fixes
* Revamped inquisitor AI, minor changes to missionary AI
* Reviews
* Reviews
* Reviews
* Removed magic number
* 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
* Hide the names of unmet yet alive civs in the victory screen.
Mainly affects the DestroyAllPlayers victory but the CaptureAllCapitals (as capital name) and WorldReligion victory code is updated accordingly.
* Redundant condition since dead civs can't hold cities.
* Formatting + undid CaptureAllCapitals name obscuring since there could be some cases where the known capital name suddenly becomes unknown.
* Parameterized if statement
* Hide other capital names until the tile is explored.
* New constant for an unknown city name.
Co-authored-by: OptimizedForDensity <>
* 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
* 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
* 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
* Autoupdates to uniques will multiple solutions now replace to the correct one
Problem - some deprecated uniques can lead to multiple possibilities of replacements, depending on the parameter type
This lead to replacements in the jsons that were either unparseable entirely or were causing errors, both of which needed to be corrected by hand
We now separate such deprecations into their constituent potential replacement uniques, and try and take only the unique that doesn't cause any errors
Works like a charmander :)
* Conditional name change
* Resolved#6179 - when changing units production due to deprecation, notification no longer counts the same city multiple times if it appears multiple times in its queue
* Remove unused Constants.
* Remove outdated comments.
* Typified "Will not be displayed in Civilopedia" Unique.
* Fix pre-existing inconsistency that would display religious UBs with broken links in the Civilopedia when religion was disabled.
* Use Sequences, and fewer function params, in Nations' Civilopedia texts.
* Accidentally hid a Unique that should be visible.
* Oops… Missed a negation.
* Unhide limitations on Religious Ruin rewards— But I'm not sure they'll be displayed anywhere even so.
* Make unknown nation placeholder translatable.
* Make MultiplayerScreen help button clearer and translatable.
* Use `Constants.spectator` more.
* Make random/unknown nation icon translatable.
* Worker AI for mods, step 2
Support for removing terrain features, both when we need to get rid of them for a resource, and when they plain reduce the yield of a tile
Note that the "Remove <improvement>" was implemented WAY before templating and uniques were a thing - the correct solution in these enlightened times would be to separate the improvement *name* from the *effect*, so we could have e.g. a "Deforestation" improvement which would contain botth ["Removes [Jungle]", "Removes [Forest]"] or whatnot.
For now I Constant'D the "Remove " so we can at least follow where it's used.
* Reverted some of the auto-formatting so the PR is cleaner
* Caught 'nullify yields' unique for terrain removal
* Ancient Ruins, Civilopedia and Translations
- TranslationFileWriter can process Ruins.json
- Hide Religion / Civilopedia uniques hardcoded String moved to Constants
- Civilopedia display of Ruins pulls actual json rewards in code
- Manually curated rewards description removed
* Ancient Ruins, Civilopedia and Translations
- Old rewards descriptions moved to names, color
- Code now recreates old output closely
- civilopediaText allowed additionally
- TranslationFileWriter tweaked accordingly
* Ancient Ruins, Civilopedia and Translations - fix stargazers
* Unit action constants and worker unique cleanup
* Replace unit action constants with enum properties - patch1
* Replace unit action constants with enum properties - patch2
* Implemented religious pressure: cities now can have more than one religion in them and religions spread between nearby cities over time.
* Implemented proposed changes
* Implemented requested changes & minor changes I forgot to include last time
* All pantheons not founded by you are now removed when you gain a new city (found this somewhere in the source code of the original, don't know if it's documented anywhere online)
* Ruins now have their own file
* Added religious rewards
* Added an option for only enabling rewards after a certain amount of turns
* You can now weigh rewards making some more likely than others
* Cleaned up some code
* Make new changes compatible with old mods
* Implemented proposed changes
* Implemented requested changes
* Implemented requested changes
* cellular automata for mountains and hills
* cellular automata for mountains and hills
* tweaks
* spawn location algorithm
* consolation prizes
* improve city state spawns
* AI settle in place if possible
* make heightmap generation mod agnostic
* Added Era.json and imported the data to the ruleset
* Units at start are now also determined by eras.json
* Research agreement costs now determined by json file
* Gold and Culture provided at the start are now awarded
* Can no longer build wonders that are more than two eras older than the starting era
* Default population and buildings for settlers can now be added
* Added checks for validity of eras.json file in mods
* Colors for the icons of technologies are no also saved in eras.json
* Removed constants for all era's as they have been generalized away by this PR
* Removed spurios println's
* Added compatibility for mods
* Updated the military unit you get from ruines to be the military unit you received at the start of the game
* Generalized building of improvements
* Readded support for the deprecated unique "Can build improvements on tiles"
* Small code quality changes
* Implemented requested chagnes
* Added the paratrooper unit
* Reverted accidental reordering of action table
* Fixed Github build errors
* Hopefully actually fixed the build errors
* Added a Dutch translation, finally fixing the error
* Paratroopers can no longer actually paradrop on a tile they shouldn't be able to paradrop onto
* Removed double update action