From fe38249dc1fefa2eaf84f6e2bee008a5029f3a88 Mon Sep 17 00:00:00 2001 From: 9kgsofrice <65415105+9kgsofrice@users.noreply.github.com> Date: Sat, 12 Dec 2020 18:09:39 +0000 Subject: [PATCH] City-state resources from all sources shared with ally civ (#3411) * merged functions for getCityResources and getResourcesFromAlly * "city-states" origin moved to civinfotransientupdater --- core/src/com/unciv/logic/city/CityInfo.kt | 18 +++--------------- .../civilization/CivInfoTransientUpdater.kt | 3 ++- 2 files changed, 5 insertions(+), 16 deletions(-) diff --git a/core/src/com/unciv/logic/city/CityInfo.kt b/core/src/com/unciv/logic/city/CityInfo.kt index ee0f71d33a..d06fda5d37 100644 --- a/core/src/com/unciv/logic/city/CityInfo.kt +++ b/core/src/com/unciv/logic/city/CityInfo.kt @@ -181,15 +181,14 @@ class CityInfo { if (amount > 0) cityResources.add(resource, amount, "Tiles") } for (tileInfo in getTiles()) { - if (tileInfo.improvement== null) continue + if (tileInfo.improvement == null) continue val tileImprovement = tileInfo.getTileImprovement() for (unique in tileImprovement!!.uniqueObjects) if (unique.placeholderText == "Provides [] []") { val resource = getRuleset().tileResources[unique.params[1]] ?: continue cityResources.add(resource, unique.params[0].toInt() * civInfo.getResourceModifier(resource), "Tiles") } - } - + } for (building in cityConstructions.getBuiltBuildings().filter { it.requiredResource != null }) { val resource = getRuleset().tileResources[building.requiredResource]!! cityResources.add(resource, -1, "Buildings") @@ -197,23 +196,12 @@ class CityInfo { for(unique in cityConstructions.builtBuildingUniqueMap.getUniques("Provides [] []")) { // E.G "Provides [1] [Iron]" val resource = getRuleset().tileResources[unique.params[1]] if(resource!=null){ - cityResources.add(resource, unique.params[0].toInt() * civInfo.getResourceModifier(resource), "Buildings") } + cityResources.add(resource, unique.params[0].toInt() * civInfo.getResourceModifier(resource), "Tiles") } } return cityResources } - fun getCityResourcesForAlly(): ResourceSupplyList { - val cityResources = ResourceSupplyList() - - for (tileInfo in getTiles().filter { it.resource != null }) { - val resource = tileInfo.getTileResource() - val amount = getTileResourceAmount(tileInfo) - if (amount > 0) cityResources.add(resource, amount, "City-States") - } - return cityResources - } - fun getTileResourceAmount(tileInfo: TileInfo): Int { if (tileInfo.resource == null) return 0 val resource = tileInfo.getTileResource() diff --git a/core/src/com/unciv/logic/civilization/CivInfoTransientUpdater.kt b/core/src/com/unciv/logic/civilization/CivInfoTransientUpdater.kt index c1bc8e4800..6c8337dbdd 100644 --- a/core/src/com/unciv/logic/civilization/CivInfoTransientUpdater.kt +++ b/core/src/com/unciv/logic/civilization/CivInfoTransientUpdater.kt @@ -146,7 +146,8 @@ class CivInfoTransientUpdater(val civInfo: CivilizationInfo) { if (!civInfo.isCityState()) { for (otherCiv in civInfo.getKnownCivs().filter { it.getAllyCiv() == civInfo.civName }) { for (city in otherCiv.cities) { - newDetailedCivResources.add(city.getCityResourcesForAlly()) + for(resourceSupply in city.getCityResources()) + newDetailedCivResources.add(resourceSupply.resource,resourceSupply.amount,"City-States") } } }