From b854d618154be7782a5ee8d0d5b041fda2070dcf Mon Sep 17 00:00:00 2001 From: SeventhM <127357473+SeventhM@users.noreply.github.com> Date: Tue, 7 Nov 2023 00:38:54 -0800 Subject: [PATCH] Fix free stat buildings not giving unique stat buildings in certain cases (#10444) --- core/src/com/unciv/logic/city/CityConstructions.kt | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/core/src/com/unciv/logic/city/CityConstructions.kt b/core/src/com/unciv/logic/city/CityConstructions.kt index 09fb52ea44..2e0895497a 100644 --- a/core/src/com/unciv/logic/city/CityConstructions.kt +++ b/core/src/com/unciv/logic/city/CityConstructions.kt @@ -104,10 +104,6 @@ class CityConstructions : IsPartOfGameInfoSerialization { fun getConstructableUnits() = city.getRuleset().units.values .asSequence().filter { it.isBuildable(this) } - private fun getBasicStatBuildings(stat: Stat) = city.getRuleset().buildings.values - .asSequence() - .filter { !it.isAnyWonder() && it.replaces == null && it[stat] > 0f } - /** * @return [Stats] provided by all built buildings in city plus the bonus from Library */ @@ -298,9 +294,9 @@ class CityConstructions : IsPartOfGameInfoSerialization { } fun cheapestStatBuilding(stat: Stat): Building? { - return getBasicStatBuildings(stat) - .map { city.civ.getEquivalentBuilding(it) } - .filter { it.isBuildable(this) || isBeingConstructedOrEnqueued(it.name) } + return city.getRuleset().buildings.values + .filter { !it.isAnyWonder() && it.isStatRelated(stat) && + (it.isBuildable(this) || isBeingConstructedOrEnqueued(it.name)) } .minByOrNull { it.cost } }