From 9e37cc8f16f4c2c87c4e41e582b9e2e0efadd8c1 Mon Sep 17 00:00:00 2001 From: Xander Lenstra <71121390+xlenstra@users.noreply.github.com> Date: Tue, 6 Jul 2021 18:41:23 +0200 Subject: [PATCH] Fixed crash when a city had negative population due to faster razing (#4389) --- core/src/com/unciv/logic/city/CityInfo.kt | 2 +- core/src/com/unciv/logic/city/PopulationManager.kt | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/core/src/com/unciv/logic/city/CityInfo.kt b/core/src/com/unciv/logic/city/CityInfo.kt index 960285149b..fead7b43de 100644 --- a/core/src/com/unciv/logic/city/CityInfo.kt +++ b/core/src/com/unciv/logic/city/CityInfo.kt @@ -409,7 +409,7 @@ class CityInfo { cityConstructions.endTurn(stats) expansion.nextTurn(stats.culture) if (isBeingRazed) { - val removedPopulation = 1 + civInfo.getMatchingUniques("Cities are razed [] times as fast").sumBy { it.params[0].toInt() } + val removedPopulation = 1 + civInfo.getMatchingUniques("Cities are razed [] times as fast").sumBy { it.params[0].toInt() - 1 } population.addPopulation(-1 * removedPopulation) if (population.population <= 0) { civInfo.addNotification("[$name] has been razed to the ground!", location, "OtherIcons/Fire") diff --git a/core/src/com/unciv/logic/city/PopulationManager.kt b/core/src/com/unciv/logic/city/PopulationManager.kt index 6ad756c451..91b5b17de7 100644 --- a/core/src/com/unciv/logic/city/PopulationManager.kt +++ b/core/src/com/unciv/logic/city/PopulationManager.kt @@ -73,6 +73,7 @@ class PopulationManager { internal fun addPopulation(count: Int) { population += count + if (population < 0) population = 0 val freePopulation = getFreePopulation() if (freePopulation < 0) { unassignExtraPopulation()