diff --git a/core/src/com/unciv/logic/automation/Automation.kt b/core/src/com/unciv/logic/automation/Automation.kt index 32e69a541d..46913a1f20 100644 --- a/core/src/com/unciv/logic/automation/Automation.kt +++ b/core/src/com/unciv/logic/automation/Automation.kt @@ -28,9 +28,9 @@ object Automation { return rankStatsForCityWork(stats, city, city.cityStats.currentCityStats, false, localUniqueCache) } - fun rankSpecialist(specialist: String, city: City, cityStats: Stats, localUniqueCache: LocalUniqueCache): Float { + fun rankSpecialist(specialist: String, city: City, localUniqueCache: LocalUniqueCache): Float { val stats = city.cityStats.getStatsOfSpecialist(specialist, localUniqueCache) - var rank = rankStatsForCityWork(stats, city, cityStats, true, localUniqueCache) + var rank = rankStatsForCityWork(stats, city, city.cityStats.currentCityStats, true, localUniqueCache) // derive GPP score var gpp = 0f if (city.getRuleset().specialists.containsKey(specialist)) { // To solve problems in total remake mods diff --git a/core/src/com/unciv/logic/city/managers/CityPopulationManager.kt b/core/src/com/unciv/logic/city/managers/CityPopulationManager.kt index 7abe8e1de9..a4d482d70f 100644 --- a/core/src/com/unciv/logic/city/managers/CityPopulationManager.kt +++ b/core/src/com/unciv/logic/city/managers/CityPopulationManager.kt @@ -173,7 +173,7 @@ class CityPopulationManager : IsPartOfGameInfoSerialization { else getMaxSpecialists().asSequence() .filter { specialistAllocations[it.key] < it.value } .map { it.key } - .associateWith { Automation.rankSpecialist(it, city, cityStats, localUniqueCache) } + .associateWith { Automation.rankSpecialist(it, city, localUniqueCache) } .maxByOrNull { it.value } val bestJob = bestJobAndRank?.key val valueBestSpecialist = bestJobAndRank?.value ?: 0f @@ -227,10 +227,10 @@ class CityPopulationManager : IsPartOfGameInfoSerialization { //evaluate specialists val worstAutoJob: String? = if (city.manualSpecialists) null else specialistAllocations.keys - .minByOrNull { Automation.rankSpecialist(it, city, city.cityStats.currentCityStats, localUniqueCache) } + .minByOrNull { Automation.rankSpecialist(it, city, localUniqueCache) } var valueWorstSpecialist = 0f if (worstAutoJob != null) - valueWorstSpecialist = Automation.rankSpecialist(worstAutoJob, city, city.cityStats.currentCityStats, localUniqueCache) + valueWorstSpecialist = Automation.rankSpecialist(worstAutoJob, city, localUniqueCache) // un-assign population @@ -250,7 +250,7 @@ class CityPopulationManager : IsPartOfGameInfoSerialization { // and population goes below the number of specialists, e.g. city is razing. // Let's give a chance to do the work automatically at least. val worstJob = specialistAllocations.keys.minByOrNull { - Automation.rankSpecialist(it, city, city.cityStats.currentCityStats, localUniqueCache) } + Automation.rankSpecialist(it, city, localUniqueCache) } ?: break // sorry, we can do nothing about that specialistAllocations.add(worstJob, -1) }