City-state resources from all sources shared with ally civ (#3411)

* merged functions for getCityResources and getResourcesFromAlly

* "city-states" origin moved to civinfotransientupdater
This commit is contained in:
9kgsofrice 2020-12-12 18:09:39 +00:00 committed by GitHub
parent bbcf5ffed7
commit fe38249dc1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 16 deletions

View File

@ -181,7 +181,7 @@ 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 [] []") {
@ -189,7 +189,6 @@ class CityInfo {
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()

View File

@ -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")
}
}
}