mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-24 03:53:12 -04:00
rankStatsForCityWork doesn't need to get cityStats as a parameter
This commit is contained in:
parent
d05bb35129
commit
ece8fe9a5c
@ -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)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user