diff --git a/core/src/com/unciv/logic/city/City.kt b/core/src/com/unciv/logic/city/City.kt index 8d49bfd799..a102ae482d 100644 --- a/core/src/com/unciv/logic/city/City.kt +++ b/core/src/com/unciv/logic/city/City.kt @@ -167,7 +167,7 @@ class City : IsPartOfGameInfoSerialization { for (tileInfo in getTiles().filter { it.resource != null }) { val resource = tileInfo.tileResource - val amount = getTileResourceAmount(tileInfo) * civ.getResourceModifier(resource) + val amount = getTileResourceAmount(tileInfo) if (amount > 0) cityResources.add(resource, "Tiles", amount) } @@ -179,7 +179,7 @@ class City : IsPartOfGameInfoSerialization { val resource = getRuleset().tileResources[unique.params[1]] ?: continue cityResources.add( resource, "Improvements", - unique.params[0].toInt() * civ.getResourceModifier(resource) + unique.params[0].toInt() ) } for (unique in tileImprovement.getMatchingUniques(UniqueType.ConsumesResources, stateForConditionals)) { @@ -203,7 +203,7 @@ class City : IsPartOfGameInfoSerialization { ?: continue cityResources.add( resource, "Buildings", - unique.params[0].toInt() * civ.getResourceModifier(resource) + unique.params[0].toInt() ) } diff --git a/core/src/com/unciv/logic/civilization/Civilization.kt b/core/src/com/unciv/logic/civilization/Civilization.kt index 23ed0412de..d0ff05c063 100644 --- a/core/src/com/unciv/logic/civilization/Civilization.kt +++ b/core/src/com/unciv/logic/civilization/Civilization.kt @@ -410,7 +410,7 @@ class Civilization : IsPartOfGameInfoSerialization { return hashMap } - fun getResourceModifier(resource: TileResource): Int { + fun getResourceModifier(resource: TileResource): Float { var resourceModifier = 1f for (unique in getMatchingUniques(UniqueType.DoubleResourceProduced)) if (unique.params[0] == resource.name) @@ -420,7 +420,7 @@ class Civilization : IsPartOfGameInfoSerialization { .map { it.params[0].toFloat() / 100f }.sum() } - return resourceModifier.toInt() + return resourceModifier } fun hasResource(resourceName: String): Boolean = getCivResourcesByName()[resourceName]!! > 0 diff --git a/core/src/com/unciv/logic/civilization/transients/CivInfoTransientCache.kt b/core/src/com/unciv/logic/civilization/transients/CivInfoTransientCache.kt index 0d1fe23401..f45a34ce76 100644 --- a/core/src/com/unciv/logic/civilization/transients/CivInfoTransientCache.kt +++ b/core/src/com/unciv/logic/civilization/transients/CivInfoTransientCache.kt @@ -255,6 +255,10 @@ class CivInfoTransientCache(val civInfo: Civilization) { val newDetailedCivResources = ResourceSupplyList() for (city in civInfo.cities) newDetailedCivResources.add(city.getCityResources()) + for (resourceSupply in newDetailedCivResources) + if(resourceSupply.amount > 0) + resourceSupply.amount = (resourceSupply.amount * civInfo.getResourceModifier(resourceSupply.resource)).toInt() + if (!civInfo.isCityState()) { // First we get all these resources of each city state separately val cityStateProvidedResources = ResourceSupplyList()