diff --git a/core/src/com/unciv/logic/civilization/CivilizationInfo.kt b/core/src/com/unciv/logic/civilization/CivilizationInfo.kt index ff9b7356be..a28a0ee71b 100644 --- a/core/src/com/unciv/logic/civilization/CivilizationInfo.kt +++ b/core/src/com/unciv/logic/civilization/CivilizationInfo.kt @@ -542,15 +542,19 @@ class CivilizationInfo { val oldAllyName = allyCivName allyCivName = newAllyName + // If the city-state is captured by a civ, it stops being the ally of the civ it was previously an ally of. + // This means that it will NOT HAVE a capital at that time, so if we run getCapital we'll get a crash! + val capitalLocation = if(cities.isNotEmpty()) getCapital().location else null + if (newAllyName != "") { val newAllyCiv = gameInfo.getCivilization(newAllyName) - newAllyCiv.addNotification("We have allied with [${civName}].", getCapital().location, Color.GREEN) + newAllyCiv.addNotification("We have allied with [${civName}].", capitalLocation, Color.GREEN) newAllyCiv.updateViewableTiles() newAllyCiv.updateDetailedCivResources() } if (oldAllyName != "") { val oldAllyCiv = gameInfo.getCivilization(oldAllyName) - oldAllyCiv.addNotification("We have lost alliance with [${civName}].", getCapital().location, Color.RED) + oldAllyCiv.addNotification("We have lost alliance with [${civName}].", capitalLocation, Color.RED) oldAllyCiv.updateViewableTiles() oldAllyCiv.updateDetailedCivResources() } diff --git a/core/src/com/unciv/logic/civilization/diplomacy/DiplomacyManager.kt b/core/src/com/unciv/logic/civilization/diplomacy/DiplomacyManager.kt index 2e6beb9811..bb4f8166de 100644 --- a/core/src/com/unciv/logic/civilization/diplomacy/DiplomacyManager.kt +++ b/core/src/com/unciv/logic/civilization/diplomacy/DiplomacyManager.kt @@ -226,8 +226,9 @@ class DiplomacyManager() { * This includes friendly and allied city-states and the open border treaties. */ fun isConsideredAllyTerritory(): Boolean { - return (hasOpenBorders) - || (civInfo.isCityState() && relationshipLevel() >= RelationshipLevel.Friend) + if(civInfo.isCityState() && relationshipLevel() >= RelationshipLevel.Friend) + return true + return hasOpenBorders } //endregion