Fixed a few rare mod-specific crashes (#6070)

This commit is contained in:
Xander Lenstra
2022-01-29 17:36:50 +01:00
committed by GitHub
parent 1b01ee3802
commit 599a09176d
2 changed files with 11 additions and 4 deletions

View File

@ -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()

View File

@ -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