mirror of
https://github.com/yairm210/Unciv.git
synced 2025-02-23 05:00:43 +07:00
UnitFilter accepts NationFilter of the civ (e.g. "vs [England] units")
chore: Constants for "Embarked" and "Wounded"
This commit is contained in:
parent
2b1f2513fc
commit
26a155351e
@ -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 "
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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),
|
||||
|
Loading…
Reference in New Issue
Block a user