mirror of
https://github.com/yairm210/Unciv.git
synced 2025-07-15 02:09:21 +07:00
UnitFilter accepts NationFilter of the civ (e.g. "vs [England] units")
chore: Constants for "Embarked" and "Wounded"
This commit is contained in:
@ -74,6 +74,10 @@ object Constants {
|
|||||||
const val barbarians = "Barbarians"
|
const val barbarians = "Barbarians"
|
||||||
const val spectator = "Spectator"
|
const val spectator = "Spectator"
|
||||||
|
|
||||||
|
const val embarked = "Embarked"
|
||||||
|
const val wounded = "Wounded"
|
||||||
|
|
||||||
|
|
||||||
const val rising = "Rising"
|
const val rising = "Rising"
|
||||||
const val lowering = "Lowering"
|
const val lowering = "Lowering"
|
||||||
const val remove = "Remove "
|
const val remove = "Remove "
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.unciv.logic.civilization.managers
|
package com.unciv.logic.civilization.managers
|
||||||
|
|
||||||
|
import com.unciv.Constants
|
||||||
import com.unciv.logic.IsPartOfGameInfoSerialization
|
import com.unciv.logic.IsPartOfGameInfoSerialization
|
||||||
import com.unciv.logic.city.City
|
import com.unciv.logic.city.City
|
||||||
import com.unciv.logic.civilization.AlertType
|
import com.unciv.logic.civilization.AlertType
|
||||||
@ -486,8 +487,8 @@ class TechManager : IsPartOfGameInfoSerialization {
|
|||||||
val enterOceanUniques = civInfo.getMatchingUniques(UniqueType.UnitsMayEnterOcean)
|
val enterOceanUniques = civInfo.getMatchingUniques(UniqueType.UnitsMayEnterOcean)
|
||||||
allUnitsCanEnterOcean = enterOceanUniques.any { it.params[0] == "All" }
|
allUnitsCanEnterOcean = enterOceanUniques.any { it.params[0] == "All" }
|
||||||
embarkedUnitsCanEnterOcean = allUnitsCanEnterOcean ||
|
embarkedUnitsCanEnterOcean = allUnitsCanEnterOcean ||
|
||||||
enterOceanUniques.any { it.params[0] == "Embarked" }
|
enterOceanUniques.any { it.params[0] == Constants.embarked }
|
||||||
specificUnitsCanEnterOcean = enterOceanUniques.any { it.params[0] != "All" && it.params[0] != "Embarked" }
|
specificUnitsCanEnterOcean = enterOceanUniques.any { it.params[0] != "All" && it.params[0] != Constants.embarked }
|
||||||
|
|
||||||
movementSpeedOnRoads = if (civInfo.hasUnique(UniqueType.RoadMovementSpeed))
|
movementSpeedOnRoads = if (civInfo.hasUnique(UniqueType.RoadMovementSpeed))
|
||||||
RoadStatus.Road.movementImproved else RoadStatus.Road.movement
|
RoadStatus.Road.movementImproved else RoadStatus.Road.movement
|
||||||
|
@ -305,9 +305,8 @@ class Nation : RulesetObject() {
|
|||||||
"All" -> true
|
"All" -> true
|
||||||
name -> true
|
name -> true
|
||||||
"Major" -> isMajorCiv
|
"Major" -> isMajorCiv
|
||||||
// To be deprecated, replaced by "City-States"
|
// "CityState" to be deprecated, replaced by "City-States"
|
||||||
"CityState" -> isCityState
|
"CityState", Constants.cityStates -> isCityState
|
||||||
Constants.cityStates -> isCityState
|
|
||||||
else -> uniques.contains(filter)
|
else -> uniques.contains(filter)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -217,7 +217,7 @@ class Unique(val text: String, val sourceObjectType: UniqueTarget? = null, val s
|
|||||||
|
|
||||||
UniqueType.ConditionalVsCity -> state.theirCombatant?.matchesCategory("City") == true
|
UniqueType.ConditionalVsCity -> state.theirCombatant?.matchesCategory("City") == true
|
||||||
UniqueType.ConditionalVsUnits -> state.theirCombatant?.matchesCategory(condition.params[0]) == true
|
UniqueType.ConditionalVsUnits -> state.theirCombatant?.matchesCategory(condition.params[0]) == true
|
||||||
UniqueType.ConditionalOurUnit ->
|
UniqueType.ConditionalOurUnit, UniqueType.ConditionalOurUnitOnUnit ->
|
||||||
relevantUnit?.matchesFilter(condition.params[0]) == true
|
relevantUnit?.matchesFilter(condition.params[0]) == true
|
||||||
UniqueType.ConditionalUnitWithPromotion -> relevantUnit?.promotions?.promotions?.contains(condition.params[0]) == true
|
UniqueType.ConditionalUnitWithPromotion -> relevantUnit?.promotions?.promotions?.contains(condition.params[0]) == true
|
||||||
UniqueType.ConditionalUnitWithoutPromotion -> relevantUnit?.promotions?.promotions?.contains(condition.params[0]) == false
|
UniqueType.ConditionalUnitWithoutPromotion -> relevantUnit?.promotions?.promotions?.contains(condition.params[0]) == false
|
||||||
|
@ -71,8 +71,8 @@ enum class UniqueParameterType(
|
|||||||
},
|
},
|
||||||
|
|
||||||
/** Implemented by [MapUnit.matchesFilter][com.unciv.logic.map.MapUnit.matchesFilter] */
|
/** Implemented by [MapUnit.matchesFilter][com.unciv.logic.map.MapUnit.matchesFilter] */
|
||||||
MapUnitFilter("mapUnitFilter", "Wounded", null, "Map Unit Filters") {
|
MapUnitFilter("mapUnitFilter", Constants.wounded, null, "Map Unit Filters") {
|
||||||
private val knownValues = setOf("Wounded", Constants.barbarians, "City-State", "Embarked", "Non-City")
|
private val knownValues = setOf(Constants.wounded, Constants.barbarians, "City-State", Constants.embarked, "Non-City")
|
||||||
override fun getErrorSeverity(parameterText: String, ruleset: Ruleset):
|
override fun getErrorSeverity(parameterText: String, ruleset: Ruleset):
|
||||||
UniqueType.UniqueComplianceErrorSeverity? {
|
UniqueType.UniqueComplianceErrorSeverity? {
|
||||||
if (parameterText.startsWith('{')) // "{filter} {filter}" for and logic
|
if (parameterText.startsWith('{')) // "{filter} {filter}" for and logic
|
||||||
|
@ -680,6 +680,7 @@ enum class UniqueType(val text: String, vararg targets: UniqueTarget, val flags:
|
|||||||
|
|
||||||
/////// unit conditionals
|
/////// unit conditionals
|
||||||
ConditionalOurUnit("for [mapUnitFilter] units", UniqueTarget.Conditional),
|
ConditionalOurUnit("for [mapUnitFilter] units", UniqueTarget.Conditional),
|
||||||
|
ConditionalOurUnitOnUnit("when [mapUnitFilter]", UniqueTarget.Conditional), // Same but for the unit itself
|
||||||
ConditionalUnitWithPromotion("for units with [promotion]", UniqueTarget.Conditional),
|
ConditionalUnitWithPromotion("for units with [promotion]", UniqueTarget.Conditional),
|
||||||
ConditionalUnitWithoutPromotion("for units without [promotion]", UniqueTarget.Conditional),
|
ConditionalUnitWithoutPromotion("for units without [promotion]", UniqueTarget.Conditional),
|
||||||
ConditionalVsCity("vs cities", UniqueTarget.Conditional),
|
ConditionalVsCity("vs cities", UniqueTarget.Conditional),
|
||||||
|
Reference in New Issue
Block a user