From 599a09176dd6cfb71d40649e6add6e7008720bc2 Mon Sep 17 00:00:00 2001 From: Xander Lenstra <71121390+xlenstra@users.noreply.github.com> Date: Sat, 29 Jan 2022 17:36:50 +0100 Subject: [PATCH] Fixed a few rare mod-specific crashes (#6070) --- core/src/com/unciv/logic/city/PopulationManager.kt | 9 +++++---- .../src/com/unciv/logic/civilization/CivilizationInfo.kt | 6 ++++++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/core/src/com/unciv/logic/city/PopulationManager.kt b/core/src/com/unciv/logic/city/PopulationManager.kt index bba13d0fd9..5e25d85c58 100644 --- a/core/src/com/unciv/logic/city/PopulationManager.kt +++ b/core/src/com/unciv/logic/city/PopulationManager.kt @@ -63,11 +63,12 @@ class PopulationManager { if (foodStored >= getFoodToNextPopulation()) { // growth! foodStored -= getFoodToNextPopulation() var percentOfFoodCarriedOver = - (cityInfo.getMatchingUniques(UniqueType.CarryOverFood) + ( + (cityInfo.getMatchingUniques(UniqueType.CarryOverFood) + + cityInfo.getMatchingUniques(UniqueType.CarryOverFoodAlsoDeprecated) + ).filter { cityInfo.matchesFilter(it.params[1]) } + cityInfo.getMatchingUniques(UniqueType.CarryOverFoodDeprecated) - + cityInfo.getMatchingUniques(UniqueType.CarryOverFoodAlsoDeprecated) - ).filter { cityInfo.matchesFilter(it.params[1]) } - .sumOf { it.params[0].toInt() } + ).sumOf { it.params[0].toInt() } // Try to avoid runaway food gain in mods, just in case if (percentOfFoodCarriedOver > 95) percentOfFoodCarriedOver = 95 foodStored += (getFoodToNextPopulation() * percentOfFoodCarriedOver / 100f).toInt() diff --git a/core/src/com/unciv/logic/civilization/CivilizationInfo.kt b/core/src/com/unciv/logic/civilization/CivilizationInfo.kt index d4dccfb6db..f2af77cc5f 100644 --- a/core/src/com/unciv/logic/civilization/CivilizationInfo.kt +++ b/core/src/com/unciv/logic/civilization/CivilizationInfo.kt @@ -1,6 +1,7 @@ package com.unciv.logic.civilization import com.badlogic.gdx.math.Vector2 +import com.unciv.Constants import com.unciv.UncivGame import com.unciv.logic.GameInfo import com.unciv.logic.UncivShowableException @@ -965,6 +966,11 @@ class CivilizationInfo { shouldShowDiplomaticVotingResults() private fun updateRevolts() { + if (gameInfo.civilizations.none { it.civName == Constants.barbarians }) { + // Can't spawn revolts without barbarians ¯\_(ツ)_/¯ + return + } + if (!hasUnique(UniqueType.SpawnRebels)) { removeFlag(CivFlags.RevoltSpawning.name) return