diff --git a/core/src/com/unciv/logic/battle/Battle.kt b/core/src/com/unciv/logic/battle/Battle.kt index 64da63a24d..04a7aa9cf5 100644 --- a/core/src/com/unciv/logic/battle/Battle.kt +++ b/core/src/com/unciv/logic/battle/Battle.kt @@ -283,8 +283,10 @@ object Battle { if(thisCombatant.getCivInfo().isMajorCiv()) { var greatGeneralPointsModifier = 1f - for (unique in thisCombatant.unit.getMatchingUniques("[] is earned []% faster")) - if (unique.params[0] == Constants.greatGeneral) + val unitUniques = thisCombatant.unit.getMatchingUniques("[] is earned []% faster") + val civUniques = thisCombatant.unit.civInfo.getMatchingUniques("[] is earned []% faster") + for (unique in unitUniques + civUniques) + if (unique.params[0] == Constants.greatGeneral) greatGeneralPointsModifier += unique.params[1].toFloat() / 100 if (thisCombatant.unit.hasUnique("Combat very likely to create Great Generals")) // As of 3.10.10 This is to be deprecated and converted to "[Great General] is earned []% faster" - keeping it here to that mods with this can still work for now 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/CivInfoStats.kt b/core/src/com/unciv/logic/civilization/CivInfoStats.kt index a40eaad92c..ca2e8564e3 100644 --- a/core/src/com/unciv/logic/civilization/CivInfoStats.kt +++ b/core/src/com/unciv/logic/civilization/CivInfoStats.kt @@ -81,7 +81,9 @@ class CivInfoStats(val civInfo: CivilizationInfo){ // Inca unique according to https://civilization.fandom.com/wiki/Incan_%28Civ5%29 if (civInfo.hasUnique("50% Maintenance costs reduction")) transportationUpkeep /= 2 - if (civInfo.hasUnique("Maintenance on roads & railroads reduced by 33%, +2 gold from all trade routes")) + if (civInfo.hasUnique("Maintenance on roads & railroads reduced by 33%") + //presume we want to deprecate the old one at some point? + ||civInfo.hasUnique("Maintenance on roads & railroads reduced by 33%, +2 gold from all trade routes")) transportationUpkeep = (transportationUpkeep * 2 / 3f).toInt() return transportationUpkeep } 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") } } }