diff --git a/docs/wiki/Civilization-related-JSON-files.md b/docs/wiki/Civilization-related-JSON-files.md index 30bb9640e2..c75994cfa2 100644 --- a/docs/wiki/Civilization-related-JSON-files.md +++ b/docs/wiki/Civilization-related-JSON-files.md @@ -1,11 +1,13 @@ -* [Beliefs.json](#beliefsjson) -* [Buildings.json](#buildingsjson) -* [Nations.json](#nationsjson) -* [Policies.json](#policiesjson) -* [Quests.json](#questsjson) -* [Religions.json](#religionsjson) -* [Specialists.json](#specialistsjson) -* [Techs.json](#techsjson) +- [Beliefs.json](#beliefsjson) +- [Buildings.json](#buildingsjson) +- [Nations.json](#nationsjson) +- [Policies.json](#policiesjson) +- [Quests.json](#questsjson) +- [Religions.json](#religionsjson) +- [Specialists.json](#specialistsjson) +- [Techs.json](#techsjson) + - [Column structure](#column-structure) + - [Tech structure](#tech-structure) ## Beliefs.json @@ -17,7 +19,7 @@ Each belief can have the following attributes: | attribute | Type | Optional or not | notes | | --------- | ---- | --------------- | ----- | | name | String | Required | Name of the belief | -| type | String | Required | The type of the belief. Valid values are: "Pantheon" and "Follower". Later "Founder" will be added, but this has not been implemented yet | +| type | String | Required | The type of the belief. Valid values are: "Pantheon", "Follower", "Founder" and "Enhancer". | | uniques | List of Strings | defaults to none | The unique abilities this belief adds to cities following it. May be chosen from the list of building uniques [here](./Uniques.md#buildings-only), as well as the general uniques on that page | | civilopediaText | List | Default empty | see [civilopediaText chapter](./Miscellaneous-JSON-files.md#civilopedia-text) | @@ -43,7 +45,6 @@ Each building can have the following attributes: | isWonder | Boolean | defaults to false | Whether this building is a global wonder | | isNationalWonder | Boolean | defaults to false | Whether this building is a national wonder | | requiredBuilding | String | defaults to none | A building that has to be built before this building can be built. Must be in [Buildings.json](/android/assets/jsons/Civ%20V%20-%20Gods%20&%20Kings/Buildings.json) | -| requiredBuildingInAllCities | String | defaults to none | A building that has to be built in all cities before this building can be built. Must be in [Buildings.json](/android/assets/jsons/Civ%20V%20-%20Gods%20&%20Kings/Buildings.json) | | cannotBeBuiltWith | String | defaults to none | The building [cannotBeBuiltWith] and this building cannot exist in the same city together. Should be in [Buildings.json](/android/assets/jsons/Civ%20V%20-%20Gods%20&%20Kings/Buildings.json) | | providesFreeBuilding | String | defaults to none | When the building is built, [providesFreeBuilding] is also automatically added to the city | | requiredTech | String | defaults to none | The tech that should be researched before this building may be built. Must be in [Techs.json](#techsjson) | diff --git a/docs/wiki/From-code-to-deployment.md b/docs/wiki/From-code-to-deployment.md index be9c831638..dd93376eef 100644 --- a/docs/wiki/From-code-to-deployment.md +++ b/docs/wiki/From-code-to-deployment.md @@ -17,10 +17,10 @@ The process has two major parts, one is "Getting your code in the main repositor ## Deploying versions When I'm ready to release a new version I: +* Comment "merge translations" in one of the open PRs tagged as 'mergeable translation' to trigger the translation branch creation, add a "summary" comment to trigger summary generation, merge the PR and delete the branch (so next version translation branch starts fresh) +* From my workstation - pull the latest changes and run the [translation generation](./Translating#translation-generation---for-developers) * Change the versionCode and versionName in the Android build.gradle so that Google Play and F-droid can recognize that it's a different release -* Run the [translation generation](./Translating.md#translation-generation---for-developers) -* Upload the new version to Google Play - we start at a 10% rollout, after a day with no major problems go to 30%, and after another day to 100%. If you were counting that means that most players will get the new version after 2+ days. - * If there were problems, we halt the current rollout, fix the problems, and release a patch version, which starts at 10% again. +* Add an entry in the changelog.md done, WITHOUT hashtags, and less than 500 characters (that's the limit for Google play entries). The formatting needs to be exact or the text sent to Discord, the Github release etc. won't be complete. * Add a tag to the commit of the version. When the [Github action](https://github.com/yairm210/Unciv/actions/workflows/buildAndDeploy.yml) sees that we've added a tag, it will run a build, and this time (because of the configuration we put in the [yml file](/.github/workflows/buildAndDeploy.yml) file), it will: * Pack a .jar file, which will work for every operating system with Java * Use Linux and Windows JDKs to create standalone zips for 32 and 64 bit systems, because we can't rely on the fact that users will have a JRE @@ -34,6 +34,10 @@ When I'm ready to release a new version I: ## About Google Play publishing -Dear future me - this was extremely annoying guesswork to set up, so the facts you need to know are: ++We start at a 10% rollout, after a day with no major problems go to 30%, and after another day to 100%. If you were counting that means that most players will get the new version after 2+ days. ++ ++If there were problems, we halt the current rollout, fix the problems, and release a patch version, which starts at 10% again. ++ ++Dear future me - the automation was extremely annoying guesswork to set up, so the facts you need to know are: - There is a user at the [Google Cloud Platform Account Manager](https://console.cloud.google.com/iam-admin/iam) called Unciv_Upload_Account. There is an access key to this account, in json, stored as the Github secret GOOGLE_PLAY_SERVICE_ACCOUNT_JSON. - This user was granted ADMIN permissions to the Google Play (after much trial and error since nothing else seemed to work) under User > Users and Permissions. Under Manage > Account permissions, you can see that it has Admin. diff --git a/docs/wiki/Getting-Started.md b/docs/wiki/Getting-Started.md index 10fd741fee..1125836655 100644 --- a/docs/wiki/Getting-Started.md +++ b/docs/wiki/Getting-Started.md @@ -9,7 +9,7 @@ So first things first - the initial "No assumptions" setup to have Unciv run fro * Fork the repo (click the "Fork" button on the top-right corner of https://github.com/yairm210/Unciv) - this will create a "copy" of the code on your account, at https://github.com/YourUsername/Unciv * Clone your fork with git - the location will be https://github.com/YourUsername/Unciv.git, visible from the green "Clone or download" button at https://github.com/YourUsername/Unciv * Load the project in Android Studio, Gradle will attempt the initial sync. If this is your first time with Android Studio, this may require you to accept the Android Build-tools licenses, which works differently on every device, so search for your OS-specific solution. - * A new install may not be able to do the initial sync. If you have this problem go into File > Settings > Appearance & Behavior > System Settings > Android SDK + * A new install may not be able to do the initial sync - this comes in the form of `Unable to find method ''void org.apache.commons.compress.archivers.zip.ZipFile.(java.nio.channels.SeekableByteChannel)''` errors when you try to sync. If you have this problem go into File > Settings > Appearance & Behavior > System Settings > Android SDK * Click "SDK Tools" * Select "Show Package Details" in the bottom right * Choose version 30.0.2 under "Android SDK Build-Tools 31" @@ -18,7 +18,9 @@ So first things first - the initial "No assumptions" setup to have Unciv run fro * Click "+" to add a new configuration * Choose "Application" * Set the module to `Unciv.desktop`, main class to `com.unciv.app.desktop.DesktopLauncher` and `\android\assets\` as the Working directory, OK to close the window + * If you get a `../../docs/uniques.md (No such file or directory)` error that means you forgot to set the working directory! * Select the Desktop configuration and click the green arrow button to run! +* I also recommend going to Settings > Version Control > Commit and turning off 'Before commit - perform code analysis' Unciv uses Gradle to specify dependencies and how to run. In the background, the Gradle gnomes will be off fetching the packages (a one-time effort) and, once that's done, will build the project! diff --git a/docs/wiki/Uniques.md b/docs/wiki/Uniques.md index ec75d0be45..5b4f0b4de7 100644 --- a/docs/wiki/Uniques.md +++ b/docs/wiki/Uniques.md @@ -6,6 +6,7 @@ * [tileFilter](#tilefilter) * [unitFilter](#unitfilter) * [cityFilter](#cityfilter) + * [buildingFilter](#constructionfilter) - [Conditionals](#conditionals) - [General uniques](#general-uniques) * [Stat uniques](#stat-uniques) @@ -46,11 +47,11 @@ As seen in the above example, in order to provide flexibility and generalization ### Generated Documentation -This part of the wiki is human-edited and partially out of date. However, we now have automatically generated documentation, complete for all Uniques that have been updated to the new UniqueType system. [It is part of the main source tree](/docs/uniques.md). +This part of the wiki is human-edited and partially out of date. However, we now have automatically generated documentation, complete for all Uniques that have been updated to the new UniqueType system. It is part of the main source tree and [can be found here.](/docs/uniques.md). This version should always be up-to-date with the uniques and conditionals currently supported in the game. ### Unique locations -Most uniques are "Global uniques" - meaning, they can be put in one of four places: +Most uniques are "Global uniques" - meaning, they can be put in one of these places: - Nation uniques - Always active for a specific Nation - Policy uniques - Active once the policy has been chosen - Building uniques - Active once the building has been constructed in any city @@ -64,10 +65,10 @@ Most uniques are *ongoing* - they describe something continuous. Some, however, Parameters come in various types, and will be addressed as such inside the [square brackets]. -- amount - This indicates a whole, (usually) positive number, like "2" or "13". +- amount - This indicates a whole number, possibly with a + or - sign, such as "2", "+13", or "-3". - unitName, buildingName, improvementName etc - Rather self explanatory. Examples: "Warrior", "Library", and "Mine", accordingly. - stat - This is one of the 7 major stats in the game - "Gold", "Science", "Production", "Food", "Happiness", "Culture" and "Faith". Note that the stat names need to be capitalized! -- stats, tileFilter, unitFilter, cityFilter, constructionFilter - these are more complex and are addressed individually +- stats, tileFilter, unitFilter, cityFilter, constructionFilter/buildingFilter - these are more complex and are addressed individually #### stats @@ -172,7 +173,7 @@ cityFilters allow us to choose the range of cities affected by this unique: - "in all cities in which the majority religion is a major religion" - "in all cities in which the majority religion is a enhanced religion" -### ConstructionFilter +### constructionFilter ConstructionFilters allow us to activate uniques while constructing certain buildings or units. For units, the UnitFilter is called. For Buildings, the following options are implemented: @@ -180,10 +181,12 @@ For units, the UnitFilter is called. For Buildings, the following options are im - "All" - "Buildings", "Building" - "Wonders", "Wonders" +- "National Wonder" +- "World Wonder" -- All wonders that are not national wonders - building name - The name of the building it replaces (so for example uniques for libraries will apply to paper makers as well) - an exact unique the building has (e.g.: "spaceship part") -- if the building is "stat-related" for some stat. Stat-related buildings are defined as one of the following: +- "Culture", "Gold", etc. if the building is "stat-related" for that stat. Stat-related buildings are defined as one of the following: - Provides that stat directly (e.g. +1 Culture) - Provides a percentage bonus for that stat (e.g. +10% Production) - Provides that stat as a bonus for resources (e.g. +1 Food for Wheat) @@ -200,10 +203,6 @@ Which will only apply the strength boost when fighting armored units in open ter This system is currently in development, so only a small amount of conditionals exist, and only a few uniques can have conditionals for now. It will be expanded greatly, improving the amount of combinations that can be made and therefore the amount of different uniques that exist. Uniques that support conditionals will be denoted with a "©" sign for now. -### Autogenerated unique documentation - -Can be found [here!](/docs/uniques.md) - #### Global conditionals \ - Applies when the civilization is at war