Fixed crash when a militaristic city state tries to gift a unit to a civ with no cities

This commit is contained in:
Yair Morgenstern 2019-07-30 21:21:24 +03:00
parent 9aa12493e3
commit 9c1864708f
2 changed files with 7 additions and 9 deletions

View File

@ -400,16 +400,12 @@ class CivilizationInfo {
fun giftMilitaryUnitBy(otherCiv: CivilizationInfo) { fun giftMilitaryUnitBy(otherCiv: CivilizationInfo) {
val city = NextTurnAutomation().getClosestCities(this, otherCiv).city1 val city = NextTurnAutomation().getClosestCities(this, otherCiv).city1
if (city == null) { val militaryUnit = city.cityConstructions.getConstructableUnits()
addNotification("Exception! Failed to find a suitable city to place gift unit.".tr(), null, Color.RED) .filter { !it.unitType.isCivilian() && it.unitType.isLandUnit() }
} else {
var militaryUnit = city.cityConstructions
.getConstructableUnits().filter { !it.unitType.isCivilian() && it.unitType.isLandUnit()}
.random() .random()
placeUnitNearTile(city.location, militaryUnit.name) placeUnitNearTile(city.location, militaryUnit.name)
addNotification("[${otherCiv.civName}] gave us a [${militaryUnit.name}] as gift near [${city.name}]!".tr(), null, Color.GREEN) addNotification("[${otherCiv.civName}] gave us a [${militaryUnit.name}] as gift near [${city.name}]!".tr(), null, Color.GREEN)
} }
}
//endregion //endregion
} }

View File

@ -274,6 +274,8 @@ class DiplomacyManager() {
for(flag in flagsCountdown.keys.toList()) { for(flag in flagsCountdown.keys.toList()) {
flagsCountdown[flag] = flagsCountdown[flag]!! - 1 flagsCountdown[flag] = flagsCountdown[flag]!! - 1
if(flagsCountdown[flag]==0) { if(flagsCountdown[flag]==0) {
if(flag==DiplomacyFlags.ProvideMilitaryUnit.name && civInfo.cities.isEmpty())
continue
flagsCountdown.remove(flag) flagsCountdown.remove(flag)
if(flag==DiplomacyFlags.AgreedToNotSettleNearUs.name) if(flag==DiplomacyFlags.AgreedToNotSettleNearUs.name)
addModifier(DiplomaticModifiers.FulfilledPromiseToNotSettleCitiesNearUs,10f) addModifier(DiplomaticModifiers.FulfilledPromiseToNotSettleCitiesNearUs,10f)