If we're already at it, same thing for anti-local effects, this should help performance in the tileInfo.getStats() function

This commit is contained in:
yairm210 2021-10-31 22:24:27 +02:00
parent bf568a44eb
commit b7f9472308
2 changed files with 3 additions and 2 deletions

View File

@ -727,14 +727,14 @@ class CityInfo {
// Matching uniques provided by sources in the city itself // Matching uniques provided by sources in the city itself
fun getLocalMatchingUniques(placeholderText: String): Sequence<Unique> { fun getLocalMatchingUniques(placeholderText: String): Sequence<Unique> {
return cityConstructions.builtBuildingUniqueMap.getUniques(placeholderText) return cityConstructions.builtBuildingUniqueMap.getUniques(placeholderText)
.filter { it.params.none { param -> param == "in other cities" } } + .filter { !it.isAntiLocalEffect } +
religion.getUniques().filter { it.placeholderText == placeholderText } religion.getUniques().filter { it.placeholderText == placeholderText }
} }
fun getLocalMatchingUniques(uniqueType: UniqueType, stateForConditionals: StateForConditionals? = null): Sequence<Unique> { fun getLocalMatchingUniques(uniqueType: UniqueType, stateForConditionals: StateForConditionals? = null): Sequence<Unique> {
return ( return (
cityConstructions.builtBuildingUniqueMap.getUniques(uniqueType) cityConstructions.builtBuildingUniqueMap.getUniques(uniqueType)
.filter { it.params.none { param -> param == "in other cities" } } .filter { !it.isAntiLocalEffect }
+ religion.getUniques().filter { it.isOfType(uniqueType) } + religion.getUniques().filter { it.isOfType(uniqueType) }
).filter { ).filter {
it.conditionalsApply(stateForConditionals) it.conditionalsApply(stateForConditionals)

View File

@ -27,6 +27,7 @@ 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")
val isAntiLocalEffect = params.contains("in other cities")
fun isOfType(uniqueType: UniqueType) = uniqueType == type fun isOfType(uniqueType: UniqueType) = uniqueType == type