diff --git a/android/assets/jsons/Civ V - Gods & Kings/Ruins.json b/android/assets/jsons/Civ V - Gods & Kings/Ruins.json index 0864494b24..30be4cb693 100644 --- a/android/assets/jsons/Civ V - Gods & Kings/Ruins.json +++ b/android/assets/jsons/Civ V - Gods & Kings/Ruins.json @@ -20,7 +20,7 @@ { "name": "your exploring unit receives training", "notification": "An ancient tribe trained us in their ways of combat!", - "uniques": ["This Unit gains [10] XP", "Only available after [10] turns"] + "uniques": ["This Unit gains [10] XP", "Only available "] }, { "name": "survivors (adds population to a city)", @@ -58,14 +58,14 @@ { "name": "discover holy symbols", "notification": "We have found holy symbols in the ruins, giving us a deeper understanding of religion! (+[faithAmount] Faith)", - "uniques": ["Hidden when religion is disabled", "Gain enough Faith for a Pantheon", "Only available ", "Only available after [20] turns"], + "uniques": ["Hidden when religion is disabled", "Gain enough Faith for a Pantheon", "Only available ", "Only available "], "color": "#CDDDF4" }, { "name": "an ancient prophecy", "notification": "We have found an ancient prophecy in the ruins, greatly increasing our spiritual connection! (+[faithAmount] Faith)", "uniques": ["Hidden when religion is disabled", "Gain enough Faith for [33]% of a Great Prophet", "Hidden after generating a Great Prophet", - "Only available ", "Only available after [20] turns"], + "Only available ", "Only available "], "color": "#CDDDF4" } ] diff --git a/android/assets/jsons/Civ V - Vanilla/Ruins.json b/android/assets/jsons/Civ V - Vanilla/Ruins.json index bc31c048d5..8ce2acae7d 100644 --- a/android/assets/jsons/Civ V - Vanilla/Ruins.json +++ b/android/assets/jsons/Civ V - Vanilla/Ruins.json @@ -20,7 +20,7 @@ { "name": "your exploring unit receives training", "notification": "An ancient tribe trained us in their ways of combat!", - "uniques": ["This Unit gains [10] XP", "Only available after [10] turns"] + "uniques": ["This Unit gains [10] XP", "Only available "] }, { "name": "survivors (adds population to a city)", diff --git a/core/src/com/unciv/models/ruleset/unique/Unique.kt b/core/src/com/unciv/models/ruleset/unique/Unique.kt index 4040f91f7f..26486deee5 100644 --- a/core/src/com/unciv/models/ruleset/unique/Unique.kt +++ b/core/src/com/unciv/models/ruleset/unique/Unique.kt @@ -142,6 +142,9 @@ class Unique(val text: String, val sourceObjectType: UniqueTarget? = null, val s UniqueType.ConditionalTimedUnique -> true UniqueType.ConditionalConsumeUnit -> true + UniqueType.ConditionalBeforeTurns -> state.civInfo != null && state.civInfo.gameInfo.turns < condition.params[0].toInt() + UniqueType.ConditionalAfterTurns -> state.civInfo != null && state.civInfo.gameInfo.turns >= condition.params[0].toInt() + UniqueType.ConditionalChance -> stateBasedRandom.nextFloat() < condition.params[0].toFloat() / 100f UniqueType.ConditionalWar -> state.civInfo?.isAtWar() == true diff --git a/core/src/com/unciv/models/ruleset/unique/UniqueType.kt b/core/src/com/unciv/models/ruleset/unique/UniqueType.kt index 8c564f916b..27a7015772 100644 --- a/core/src/com/unciv/models/ruleset/unique/UniqueType.kt +++ b/core/src/com/unciv/models/ruleset/unique/UniqueType.kt @@ -585,6 +585,9 @@ enum class UniqueType(val text: String, vararg targets: UniqueTarget, val flags: ConditionalConsumeUnit("by consuming this unit", UniqueTarget.Conditional), ConditionalChance("with [amount]% chance", UniqueTarget.Conditional), + ConditionalBeforeTurns("before [amount] turns", UniqueTarget.Conditional), + ConditionalAfterTurns("after [amount] turns", UniqueTarget.Conditional), + /////// civ conditionals ConditionalWar("when at war", UniqueTarget.Conditional), ConditionalNotWar("when not at war", UniqueTarget.Conditional), @@ -694,7 +697,7 @@ enum class UniqueType(val text: String, vararg targets: UniqueTarget, val flags: //endregion ///////////////////////////////////////////// region META ///////////////////////////////////////////// - + @Deprecated("as of 4.2.18", ReplaceWith("Only available ")) AvailableAfterCertainTurns("Only available after [amount] turns", UniqueTarget.Ruins), HiddenWithoutReligion("Hidden when religion is disabled", UniqueTarget.Unit, UniqueTarget.Building, UniqueTarget.Ruins, flags = UniqueFlag.setOfHiddenToUsers), diff --git a/docs/Modders/uniques.md b/docs/Modders/uniques.md index 0a151d9171..c4a608ab5c 100644 --- a/docs/Modders/uniques.md +++ b/docs/Modders/uniques.md @@ -1619,11 +1619,6 @@ Simple unique parameters are explained by mouseover. Complex parameters are expl ??? example "This Unit upgrades for free including special upgrades" Applicable to: Ruins -??? example "Only available after [amount] turns" - Example: "Only available after [3] turns" - - Applicable to: Ruins - ??? example "Hidden after generating a Great Prophet" Applicable to: Ruins @@ -1665,6 +1660,16 @@ Simple unique parameters are explained by mouseover. Complex parameters are expl Applicable to: Conditional +??? example "<before [amount] turns>" + Example: "<before [3] turns>" + + Applicable to: Conditional + +??? example "<after [amount] turns>" + Example: "<after [3] turns>" + + Applicable to: Conditional + ??? example "<when at war>" Applicable to: Conditional