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

View File

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