From ece8fe9a5c7125b72a4cc221a612028b1a6dea1d Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Wed, 13 Mar 2024 22:26:11 +0200 Subject: [PATCH] rankStatsForCityWork doesn't need to get cityStats as a parameter --- core/src/com/unciv/logic/automation/Automation.kt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/core/src/com/unciv/logic/automation/Automation.kt b/core/src/com/unciv/logic/automation/Automation.kt index 46913a1f20..ff0c21a98f 100644 --- a/core/src/com/unciv/logic/automation/Automation.kt +++ b/core/src/com/unciv/logic/automation/Automation.kt @@ -25,12 +25,12 @@ object Automation { fun rankTileForCityWork(tile: Tile, city: City, localUniqueCache: LocalUniqueCache = LocalUniqueCache(false)): Float { val stats = tile.stats.getTileStats(city, city.civ, localUniqueCache) - return rankStatsForCityWork(stats, city, city.cityStats.currentCityStats, false, localUniqueCache) + return rankStatsForCityWork(stats, city, false, localUniqueCache) } fun rankSpecialist(specialist: String, city: City, localUniqueCache: LocalUniqueCache): Float { val stats = city.cityStats.getStatsOfSpecialist(specialist, localUniqueCache) - var rank = rankStatsForCityWork(stats, city, city.cityStats.currentCityStats, true, localUniqueCache) + var rank = rankStatsForCityWork(stats, city, true, localUniqueCache) // derive GPP score var gpp = 0f if (city.getRuleset().specialists.containsKey(specialist)) { // To solve problems in total remake mods @@ -43,13 +43,13 @@ object Automation { } - fun rankStatsForCityWork(stats: Stats, city: City, cityStats: Stats, specialist: Boolean, localUniqueCache: LocalUniqueCache): Float { + fun rankStatsForCityWork(stats: Stats, city: City, areWeRankingSpecialist: Boolean, localUniqueCache: LocalUniqueCache): Float { val cityAIFocus = city.getCityFocus() val yieldStats = stats.clone() val civPersonality = city.civ.getPersonality() val cityStatsObj = city.cityStats - if (specialist) { + if (areWeRankingSpecialist) { // If you have the Food Bonus, count as 1 extra food production (base is 2food) for (unique in localUniqueCache.forCityGetMatchingUniques(city, UniqueType.FoodConsumptionBySpecialists)) if (city.matchesFilter(unique.params[1])) @@ -61,7 +61,7 @@ object Automation { if (city.civ.getHappiness() < 0) yieldStats.happiness *= 2 // double weight for unhappy civilization } - val surplusFood = cityStats[Stat.Food] + val surplusFood = city.cityStats.currentCityStats[Stat.Food] // If current Production converts Food into Production, then calculate increased Production Yield if (cityStatsObj.canConvertFoodToProduction(surplusFood, city.cityConstructions.getCurrentConstruction())) { // calculate delta increase of food->prod. This isn't linear @@ -100,7 +100,7 @@ object Automation { yieldStats.culture *= 2 yieldStats.culture *= civPersonality.scaledFocus(PersonalityValue.Culture) - if (city.civ.getHappiness() < 0 && !specialist) // since this doesn't get updated, may overshoot + if (city.civ.getHappiness() < 0 && !areWeRankingSpecialist) // since this doesn't get updated, may overshoot yieldStats.happiness *= 2 yieldStats.happiness *= civPersonality.scaledFocus(PersonalityValue.Happiness)