mirror of
https://github.com/yairm210/Unciv.git
synced 2025-02-11 11:28:03 +07:00
Added "in this city", "in other cities" conditionals for city-based uniques
This commit is contained in:
parent
dea3256c93
commit
a81dd03fcf
@ -37,8 +37,8 @@ class Unique(val text: String, val sourceObjectType: UniqueTarget? = null, val s
|
|||||||
|
|
||||||
val allParams = params + conditionals.flatMap { it.params }
|
val allParams = params + conditionals.flatMap { it.params }
|
||||||
|
|
||||||
val isLocalEffect = params.contains("in this city")
|
val isLocalEffect = params.contains("in this city") || conditionals.any { it.type == UniqueType.ConditionalInThisCity }
|
||||||
val isAntiLocalEffect = params.contains("in other cities")
|
val isAntiLocalEffect = params.contains("in other cities") || conditionals.any { it.type == UniqueType.ConditionalInOtherCities }
|
||||||
|
|
||||||
fun hasFlag(flag: UniqueFlag) = type != null && type.flags.contains(flag)
|
fun hasFlag(flag: UniqueFlag) = type != null && type.flags.contains(flag)
|
||||||
|
|
||||||
@ -204,6 +204,8 @@ class Unique(val text: String, val sourceObjectType: UniqueTarget? = null, val s
|
|||||||
UniqueType.ConditionalBuildingBuilt ->
|
UniqueType.ConditionalBuildingBuilt ->
|
||||||
state.civInfo != null && state.civInfo.cities.any { it.cityConstructions.containsBuildingOrEquivalent(condition.params[0]) }
|
state.civInfo != null && state.civInfo.cities.any { it.cityConstructions.containsBuildingOrEquivalent(condition.params[0]) }
|
||||||
|
|
||||||
|
// Filtered via city.getMatchingUniques
|
||||||
|
UniqueType.ConditionalInThisCity -> true
|
||||||
UniqueType.ConditionalCityWithBuilding ->
|
UniqueType.ConditionalCityWithBuilding ->
|
||||||
state.city != null && state.city.cityConstructions.containsBuildingOrEquivalent(condition.params[0])
|
state.city != null && state.city.cityConstructions.containsBuildingOrEquivalent(condition.params[0])
|
||||||
UniqueType.ConditionalCityWithoutBuilding ->
|
UniqueType.ConditionalCityWithoutBuilding ->
|
||||||
|
@ -671,6 +671,8 @@ enum class UniqueType(val text: String, vararg targets: UniqueTarget, val flags:
|
|||||||
ConditionalWhenBelowAmountResource("when below [amount] [resource]", UniqueTarget.Conditional),
|
ConditionalWhenBelowAmountResource("when below [amount] [resource]", UniqueTarget.Conditional),
|
||||||
|
|
||||||
/////// city conditionals
|
/////// city conditionals
|
||||||
|
ConditionalInThisCity("in this city", UniqueTarget.Conditional),
|
||||||
|
ConditionalInOtherCities("in other cities", UniqueTarget.Conditional),
|
||||||
ConditionalCityWithBuilding("in cities with a [buildingFilter]", UniqueTarget.Conditional),
|
ConditionalCityWithBuilding("in cities with a [buildingFilter]", UniqueTarget.Conditional),
|
||||||
ConditionalCityWithoutBuilding("in cities without a [buildingFilter]", UniqueTarget.Conditional),
|
ConditionalCityWithoutBuilding("in cities without a [buildingFilter]", UniqueTarget.Conditional),
|
||||||
ConditionalPopulationFilter("in cities with at least [amount] [populationFilter]", UniqueTarget.Conditional),
|
ConditionalPopulationFilter("in cities with at least [amount] [populationFilter]", UniqueTarget.Conditional),
|
||||||
|
Loading…
Reference in New Issue
Block a user