From 386c0812bef753556e14bde4390aa7d0e5b72085 Mon Sep 17 00:00:00 2001 From: yairm210 Date: Thu, 14 Nov 2024 08:17:27 +0200 Subject: [PATCH] Growth nullifying uniques do not nullify starvation --- core/src/com/unciv/logic/city/CityStats.kt | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/core/src/com/unciv/logic/city/CityStats.kt b/core/src/com/unciv/logic/city/CityStats.kt index f4b12668bd..11bc71e70b 100644 --- a/core/src/com/unciv/logic/city/CityStats.kt +++ b/core/src/com/unciv/logic/city/CityStats.kt @@ -589,12 +589,13 @@ class CityStats(val city: City) { val growthNullifyingUnique = city.getMatchingUniques(UniqueType.NullifiesGrowth).firstOrNull() if (growthNullifyingUnique != null) { - // Note that negative food will also be nullified. Pretty sure that's conform civ V, but haven't checked. - val amountToRemove = -newFinalStatList.values.sumOf { it[Stat.Food].toDouble() } - newFinalStatList.add( - growthNullifyingUnique.getSourceNameForUser(), - Stats(food = amountToRemove.toFloat()) - ) + // Does not nullify negative growth (starvation) + val currentGrowth = newFinalStatList.values.sumOf { it[Stat.Food].toDouble() } + if (currentGrowth > 0) + newFinalStatList.add( + growthNullifyingUnique.getSourceNameForUser(), + Stats(food = -currentGrowth.toFloat()) + ) } if (city.isInResistance())