diff --git a/core/src/com/unciv/Constants.kt b/core/src/com/unciv/Constants.kt index 63b5d43311..ec59cabb09 100644 --- a/core/src/com/unciv/Constants.kt +++ b/core/src/com/unciv/Constants.kt @@ -74,6 +74,10 @@ object Constants { const val barbarians = "Barbarians" const val spectator = "Spectator" + const val embarked = "Embarked" + const val wounded = "Wounded" + + const val rising = "Rising" const val lowering = "Lowering" const val remove = "Remove " diff --git a/core/src/com/unciv/logic/civilization/managers/TechManager.kt b/core/src/com/unciv/logic/civilization/managers/TechManager.kt index 3cd21ad71d..5fea268a30 100644 --- a/core/src/com/unciv/logic/civilization/managers/TechManager.kt +++ b/core/src/com/unciv/logic/civilization/managers/TechManager.kt @@ -1,5 +1,6 @@ package com.unciv.logic.civilization.managers +import com.unciv.Constants import com.unciv.logic.IsPartOfGameInfoSerialization import com.unciv.logic.city.City import com.unciv.logic.civilization.AlertType @@ -486,8 +487,8 @@ class TechManager : IsPartOfGameInfoSerialization { val enterOceanUniques = civInfo.getMatchingUniques(UniqueType.UnitsMayEnterOcean) allUnitsCanEnterOcean = enterOceanUniques.any { it.params[0] == "All" } embarkedUnitsCanEnterOcean = allUnitsCanEnterOcean || - enterOceanUniques.any { it.params[0] == "Embarked" } - specificUnitsCanEnterOcean = enterOceanUniques.any { it.params[0] != "All" && it.params[0] != "Embarked" } + enterOceanUniques.any { it.params[0] == Constants.embarked } + specificUnitsCanEnterOcean = enterOceanUniques.any { it.params[0] != "All" && it.params[0] != Constants.embarked } movementSpeedOnRoads = if (civInfo.hasUnique(UniqueType.RoadMovementSpeed)) RoadStatus.Road.movementImproved else RoadStatus.Road.movement diff --git a/core/src/com/unciv/models/ruleset/nation/Nation.kt b/core/src/com/unciv/models/ruleset/nation/Nation.kt index 7cfcef3fd3..6a6b0b20e7 100644 --- a/core/src/com/unciv/models/ruleset/nation/Nation.kt +++ b/core/src/com/unciv/models/ruleset/nation/Nation.kt @@ -305,9 +305,8 @@ class Nation : RulesetObject() { "All" -> true name -> true "Major" -> isMajorCiv - // To be deprecated, replaced by "City-States" - "CityState" -> isCityState - Constants.cityStates -> isCityState + // "CityState" to be deprecated, replaced by "City-States" + "CityState", Constants.cityStates -> isCityState else -> uniques.contains(filter) } } diff --git a/core/src/com/unciv/models/ruleset/unique/Unique.kt b/core/src/com/unciv/models/ruleset/unique/Unique.kt index 8d4f4ba22c..eb9edfe219 100644 --- a/core/src/com/unciv/models/ruleset/unique/Unique.kt +++ b/core/src/com/unciv/models/ruleset/unique/Unique.kt @@ -217,7 +217,7 @@ class Unique(val text: String, val sourceObjectType: UniqueTarget? = null, val s UniqueType.ConditionalVsCity -> state.theirCombatant?.matchesCategory("City") == true UniqueType.ConditionalVsUnits -> state.theirCombatant?.matchesCategory(condition.params[0]) == true - UniqueType.ConditionalOurUnit -> + UniqueType.ConditionalOurUnit, UniqueType.ConditionalOurUnitOnUnit -> relevantUnit?.matchesFilter(condition.params[0]) == true UniqueType.ConditionalUnitWithPromotion -> relevantUnit?.promotions?.promotions?.contains(condition.params[0]) == true UniqueType.ConditionalUnitWithoutPromotion -> relevantUnit?.promotions?.promotions?.contains(condition.params[0]) == false diff --git a/core/src/com/unciv/models/ruleset/unique/UniqueParameterType.kt b/core/src/com/unciv/models/ruleset/unique/UniqueParameterType.kt index d4cfce1359..d3d47f1556 100644 --- a/core/src/com/unciv/models/ruleset/unique/UniqueParameterType.kt +++ b/core/src/com/unciv/models/ruleset/unique/UniqueParameterType.kt @@ -71,8 +71,8 @@ enum class UniqueParameterType( }, /** Implemented by [MapUnit.matchesFilter][com.unciv.logic.map.MapUnit.matchesFilter] */ - MapUnitFilter("mapUnitFilter", "Wounded", null, "Map Unit Filters") { - private val knownValues = setOf("Wounded", Constants.barbarians, "City-State", "Embarked", "Non-City") + MapUnitFilter("mapUnitFilter", Constants.wounded, null, "Map Unit Filters") { + private val knownValues = setOf(Constants.wounded, Constants.barbarians, "City-State", Constants.embarked, "Non-City") override fun getErrorSeverity(parameterText: String, ruleset: Ruleset): UniqueType.UniqueComplianceErrorSeverity? { if (parameterText.startsWith('{')) // "{filter} {filter}" for and logic diff --git a/core/src/com/unciv/models/ruleset/unique/UniqueType.kt b/core/src/com/unciv/models/ruleset/unique/UniqueType.kt index 351ba6587e..079591fd2e 100644 --- a/core/src/com/unciv/models/ruleset/unique/UniqueType.kt +++ b/core/src/com/unciv/models/ruleset/unique/UniqueType.kt @@ -680,6 +680,7 @@ enum class UniqueType(val text: String, vararg targets: UniqueTarget, val flags: /////// unit conditionals ConditionalOurUnit("for [mapUnitFilter] units", UniqueTarget.Conditional), + ConditionalOurUnitOnUnit("when [mapUnitFilter]", UniqueTarget.Conditional), // Same but for the unit itself ConditionalUnitWithPromotion("for units with [promotion]", UniqueTarget.Conditional), ConditionalUnitWithoutPromotion("for units without [promotion]", UniqueTarget.Conditional), ConditionalVsCity("vs cities", UniqueTarget.Conditional),