mirror of
https://github.com/yairm210/Unciv.git
synced 2025-07-04 07:17:50 +07:00
Added "in other cities" as a cityFilter (#5131)
This commit is contained in:
@ -624,7 +624,8 @@ class CityInfo {
|
||||
fun matchesFilter(filter: String, viewingCiv: CivilizationInfo = civInfo): Boolean {
|
||||
return when (filter) {
|
||||
"in this city" -> true
|
||||
"in all cities" -> true
|
||||
"in all cities" -> true // Filtered by the way uniques our found
|
||||
"in other cities" -> true // Filtered by the way uniques our found
|
||||
"in all coastal cities" -> isCoastal()
|
||||
"in capital" -> isCapital()
|
||||
"in all non-occupied cities" -> !cityStats.hasExtraAnnexUnhappiness() || isPuppet
|
||||
@ -671,12 +672,16 @@ class CityInfo {
|
||||
// The localUniques might not be filtered when passed as a parameter, so we filter it anyway
|
||||
// The time loss shouldn't be that large I don't think
|
||||
return civInfo.getMatchingUniques(placeholderText, this) +
|
||||
localUniques.filter { it.placeholderText == placeholderText }
|
||||
localUniques.filter {
|
||||
it.placeholderText == placeholderText
|
||||
&& it.params.none { param -> param == "in other cities" }
|
||||
}
|
||||
}
|
||||
|
||||
// Matching uniques provided by sources in the city itself
|
||||
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" } } +
|
||||
religion.getMatchingUniques(placeholderText)
|
||||
}
|
||||
|
||||
|
@ -420,7 +420,7 @@ class CityStats(val cityInfo: CityInfo) {
|
||||
|
||||
newHappinessList["National ability"] = getStatsFromUniques(cityInfo.civInfo.nation.uniqueObjects.asSequence()).happiness
|
||||
|
||||
newHappinessList["Wonders"] = getStatsFromUniques(civInfo.getCivWideBuildingUniques()).happiness
|
||||
newHappinessList["Wonders"] = getStatsFromUniques(civInfo.getCivWideBuildingUniques(cityInfo)).happiness
|
||||
|
||||
newHappinessList["Religion"] = getStatsFromUniques(cityInfo.religion.getUniques()).happiness
|
||||
|
||||
@ -445,7 +445,7 @@ class CityStats(val cityInfo: CityInfo) {
|
||||
newBaseStatList["Buildings"] = cityInfo.cityConstructions.getStats()
|
||||
newBaseStatList["Policies"] = getStatsFromUniques(civInfo.policies.policyUniques.getAllUniques())
|
||||
newBaseStatList["National ability"] = getStatsFromNationUnique()
|
||||
newBaseStatList["Wonders"] = getStatsFromUniques(civInfo.getCivWideBuildingUniques())
|
||||
newBaseStatList["Wonders"] = getStatsFromUniques(civInfo.getCivWideBuildingUniques(cityInfo))
|
||||
newBaseStatList["City-States"] = getStatsFromCityStates()
|
||||
newBaseStatList["Religion"] = getStatsFromUniques(cityInfo.religion.getUniques())
|
||||
|
||||
@ -459,7 +459,7 @@ class CityStats(val cityInfo: CityInfo) {
|
||||
newStatPercentBonusList["Policies"] = getStatPercentBonusesFromUniques(currentConstruction, cityInfo.civInfo.policies.policyUniques.getAllUniques())
|
||||
newStatPercentBonusList["Buildings"] = getStatPercentBonusesFromUniques(currentConstruction, localBuildingUniques)
|
||||
.plus(cityInfo.cityConstructions.getStatPercentBonuses()) // This function is to be deprecated but it'll take a while.
|
||||
newStatPercentBonusList["Wonders"] = getStatPercentBonusesFromUniques(currentConstruction, cityInfo.civInfo.getCivWideBuildingUniques())
|
||||
newStatPercentBonusList["Wonders"] = getStatPercentBonusesFromUniques(currentConstruction, cityInfo.civInfo.getCivWideBuildingUniques(cityInfo))
|
||||
newStatPercentBonusList["Railroads"] = getStatPercentBonusesFromRailroad() // Name chosen same as tech, for translation, but theoretically independent
|
||||
newStatPercentBonusList["Resources"] = getStatPercentBonusesFromResources(currentConstruction)
|
||||
newStatPercentBonusList["National ability"] = getStatPercentBonusesFromNationUnique(currentConstruction)
|
||||
|
@ -276,9 +276,13 @@ class CivilizationInfo {
|
||||
|
||||
fun hasResource(resourceName: String): Boolean = getCivResourcesByName()[resourceName]!! > 0
|
||||
|
||||
fun getCivWideBuildingUniques(): Sequence<Unique> = cities.asSequence().flatMap {
|
||||
city -> city.getAllUniquesWithNonLocalEffects()
|
||||
}
|
||||
fun getCivWideBuildingUniques(cityItIsFor: CityInfo?): Sequence<Unique> =
|
||||
cities.asSequence().flatMap {
|
||||
city ->
|
||||
if (cityItIsFor != null && city == cityItIsFor)
|
||||
city.getAllUniquesWithNonLocalEffects().filter { it.params.none { param -> param == "in other cities" } }
|
||||
else city.getAllUniquesWithNonLocalEffects()
|
||||
}
|
||||
|
||||
fun hasUnique(unique: String) = getMatchingUniques(unique).any()
|
||||
|
||||
|
Reference in New Issue
Block a user