diff --git a/buildSrc/src/main/kotlin/BuildConfig.kt b/buildSrc/src/main/kotlin/BuildConfig.kt index 83f57a2570..a58fcea84c 100644 --- a/buildSrc/src/main/kotlin/BuildConfig.kt +++ b/buildSrc/src/main/kotlin/BuildConfig.kt @@ -4,8 +4,8 @@ package com.unciv.build object BuildConfig { const val kotlinVersion = "1.8.21" const val appName = "Unciv" - const val appCodeNumber = 998 - const val appVersion = "4.11.14" + const val appCodeNumber = 999 + const val appVersion = "4.11.14-patch1" const val gdxVersion = "1.12.1" const val ktorVersion = "2.2.3" diff --git a/core/src/com/unciv/UncivGame.kt b/core/src/com/unciv/UncivGame.kt index 61f81afc02..13b166b130 100644 --- a/core/src/com/unciv/UncivGame.kt +++ b/core/src/com/unciv/UncivGame.kt @@ -471,7 +471,7 @@ open class UncivGame(val isConsoleMode: Boolean = false) : Game(), PlatformSpeci companion object { //region AUTOMATICALLY GENERATED VERSION DATA - DO NOT CHANGE THIS REGION, INCLUDING THIS COMMENT - val VERSION = Version("4.11.14", 998) + val VERSION = Version("4.11.14-patch1", 999) //endregion /** Global reference to the one Gdx.Game instance created by the platform launchers - do not use without checking [isCurrentInitialized] first. */ diff --git a/core/src/com/unciv/models/ruleset/validation/RulesetValidator.kt b/core/src/com/unciv/models/ruleset/validation/RulesetValidator.kt index 268d0bf514..bef6302223 100644 --- a/core/src/com/unciv/models/ruleset/validation/RulesetValidator.kt +++ b/core/src/com/unciv/models/ruleset/validation/RulesetValidator.kt @@ -270,6 +270,8 @@ class RulesetValidator(val ruleset: Ruleset) { uniqueValidator.checkUniques(nation, lines, true, tryFixUnknownUniques) + if (nation.preferredVictoryType != Constants.neutralVictoryType && nation.preferredVictoryType !in ruleset.victories) + lines.add("${nation.name}'s preferredVictoryType is ${nation.preferredVictoryType} which does not exist!", sourceObject = nation) if (nation.cityStateType != null && nation.cityStateType !in ruleset.cityStateTypes) lines.add("${nation.name} is of city-state type ${nation.cityStateType} which does not exist!", sourceObject = nation) if (nation.favoredReligion != null && nation.favoredReligion !in ruleset.religions) @@ -577,9 +579,6 @@ class RulesetValidator(val ruleset: Ruleset) { lines.add("${nation.name} can settle cities, but has no city names!", sourceObject = nation) } - if (nation.preferredVictoryType != Constants.neutralVictoryType && nation.preferredVictoryType !in ruleset.victories) - lines.add("${nation.name}'s preferredVictoryType is ${nation.preferredVictoryType} which does not exist!", sourceObject = nation) - // https://www.w3.org/TR/WCAG20/#visual-audio-contrast-contrast val constrastRatio = nation.getContrastRatio() if (constrastRatio < 3) { diff --git a/core/src/com/unciv/ui/screens/newgamescreen/GameOptionsTable.kt b/core/src/com/unciv/ui/screens/newgamescreen/GameOptionsTable.kt index 03703a9aab..c378a6fd36 100644 --- a/core/src/com/unciv/ui/screens/newgamescreen/GameOptionsTable.kt +++ b/core/src/com/unciv/ui/screens/newgamescreen/GameOptionsTable.kt @@ -408,7 +408,7 @@ class GameOptionsTable( } private fun Table.addEraSelectBox() { - if (ruleset.technologies.isEmpty()) return // mod with no techs + if (ruleset.eras.isEmpty()) return // mod with no techs val eras = ruleset.eras.keys addSelectBox("{Starting Era}:", eras, gameParameters.startingEra) { gameParameters.startingEra = it; null } diff --git a/docs/Modders/Making-a-new-Civilization.md b/docs/Modders/Making-a-new-Civilization.md index ea44d78ca8..c57faadebb 100644 --- a/docs/Modders/Making-a-new-Civilization.md +++ b/docs/Modders/Making-a-new-Civilization.md @@ -92,3 +92,4 @@ You have a working mod, now it's time to go wild! - Expand the abilities of your civ by adding new [uniques](uniques.md) - Add new civs, buildings or units - Expand into other game objects by exploring the rest of the [mod file structure](Mod-file-structure/1-Overview.md) +- Try creating a base ruleset [from this template](https://github.com/yairm210/Unciv-minimal-base-ruleset) diff --git a/docs/Modders/Mods.md b/docs/Modders/Mods.md index b8c8cd8308..8d20e1862d 100644 --- a/docs/Modders/Mods.md +++ b/docs/Modders/Mods.md @@ -13,7 +13,7 @@ The game only knows how to recognize existing definitions, so you can't add *new There are three main kinds of mods: - **Extension mods** - these add new nations/units/buildings/resources to a base ruleset - can be either to the default ruleset, or to a base ruleset mod. Easy to do and probably the better place to get started - for example, [creating a new Civilization](Making-a-new-Civilization.md) -- **Base Ruleset mods** - these replace the entire existing ruleset - tech tree, units, policies, nations etc - to give an entirely different experience than the base game. These generally require quite a bit of work, but give a whole new experience, and so are the most popular. +- **Base Ruleset mods** - these replace the entire existing ruleset - tech tree, units, policies, nations etc - to give an entirely different experience than the base game. These generally require quite a bit of work, but give a whole new experience, and so are the most popular. [A minimal example can be found here](https://github.com/yairm210/Unciv-minimal-base-ruleset) as a template to build off of ("Use this template" green button in top right, "Create a new repository") - **Ruleset-agnostic mods** - these do not contain any ruleset-related jsons, but instead contain other affects. Audiovisual mods (including tilesets, unitsets, and UI skins) and map mods are in this category. Creating and editing mods from your phone is NOT RECOMMENDED - it's *much easier* using a desktop device!