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 {
|
fun rankTileForCityWork(tile: Tile, city: City, localUniqueCache: LocalUniqueCache = LocalUniqueCache(false)): Float {
|
||||||
val stats = tile.stats.getTileStats(city, city.civ, localUniqueCache)
|
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 {
|
fun rankSpecialist(specialist: String, city: City, localUniqueCache: LocalUniqueCache): Float {
|
||||||
val stats = city.cityStats.getStatsOfSpecialist(specialist, localUniqueCache)
|
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
|
// derive GPP score
|
||||||
var gpp = 0f
|
var gpp = 0f
|
||||||
if (city.getRuleset().specialists.containsKey(specialist)) { // To solve problems in total remake mods
|
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 cityAIFocus = city.getCityFocus()
|
||||||
val yieldStats = stats.clone()
|
val yieldStats = stats.clone()
|
||||||
val civPersonality = city.civ.getPersonality()
|
val civPersonality = city.civ.getPersonality()
|
||||||
val cityStatsObj = city.cityStats
|
val cityStatsObj = city.cityStats
|
||||||
|
|
||||||
if (specialist) {
|
if (areWeRankingSpecialist) {
|
||||||
// If you have the Food Bonus, count as 1 extra food production (base is 2food)
|
// If you have the Food Bonus, count as 1 extra food production (base is 2food)
|
||||||
for (unique in localUniqueCache.forCityGetMatchingUniques(city, UniqueType.FoodConsumptionBySpecialists))
|
for (unique in localUniqueCache.forCityGetMatchingUniques(city, UniqueType.FoodConsumptionBySpecialists))
|
||||||
if (city.matchesFilter(unique.params[1]))
|
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
|
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 current Production converts Food into Production, then calculate increased Production Yield
|
||||||
if (cityStatsObj.canConvertFoodToProduction(surplusFood, city.cityConstructions.getCurrentConstruction())) {
|
if (cityStatsObj.canConvertFoodToProduction(surplusFood, city.cityConstructions.getCurrentConstruction())) {
|
||||||
// calculate delta increase of food->prod. This isn't linear
|
// calculate delta increase of food->prod. This isn't linear
|
||||||
@ -100,7 +100,7 @@ object Automation {
|
|||||||
yieldStats.culture *= 2
|
yieldStats.culture *= 2
|
||||||
yieldStats.culture *= civPersonality.scaledFocus(PersonalityValue.Culture)
|
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 *= 2
|
||||||
yieldStats.happiness *= civPersonality.scaledFocus(PersonalityValue.Happiness)
|
yieldStats.happiness *= civPersonality.scaledFocus(PersonalityValue.Happiness)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user