diff --git a/core/src/com/unciv/logic/city/CityInfo.kt b/core/src/com/unciv/logic/city/CityInfo.kt index 34916911c2..686bd973d4 100644 --- a/core/src/com/unciv/logic/city/CityInfo.kt +++ b/core/src/com/unciv/logic/city/CityInfo.kt @@ -9,6 +9,7 @@ import com.unciv.logic.battle.Battle import com.unciv.logic.civilization.CivilizationInfo import com.unciv.logic.civilization.diplomacy.DiplomacyFlags import com.unciv.logic.civilization.diplomacy.DiplomaticModifiers +import com.unciv.logic.civilization.diplomacy.DiplomaticStatus import com.unciv.logic.map.RoadStatus import com.unciv.logic.map.TileInfo import com.unciv.logic.map.TileMap @@ -438,10 +439,14 @@ class CityInfo { } val oldCiv = civInfo - diplomaticRepercussionsForLiberatingCity(conqueringCiv) val foundingCiv = civInfo.gameInfo.civilizations.first { it.civName == foundingCiv } + if (foundingCiv.isDefeated()) // resurrected civ + for (diploManager in foundingCiv.diplomacy.values) + if (diploManager.diplomaticStatus == DiplomaticStatus.War) + diploManager.makePeace() + diplomaticRepercussionsForLiberatingCity(conqueringCiv) moveToCiv(foundingCiv) Battle.destroyIfDefeated(oldCiv, conqueringCiv) diff --git a/core/src/com/unciv/logic/civilization/diplomacy/DiplomacyManager.kt b/core/src/com/unciv/logic/civilization/diplomacy/DiplomacyManager.kt index d6a0635aad..672909c206 100644 --- a/core/src/com/unciv/logic/civilization/diplomacy/DiplomacyManager.kt +++ b/core/src/com/unciv/logic/civilization/diplomacy/DiplomacyManager.kt @@ -462,26 +462,27 @@ class DiplomacyManager() { } } - fun makePeace(){ - diplomaticStatus= DiplomaticStatus.Peace + fun makePeace() { + diplomaticStatus = DiplomaticStatus.Peace + otherCivDiplomacy().diplomaticStatus = DiplomaticStatus.Peace if (otherCiv().isAtWarWith(civInfo)) { for (civ in getCommonKnownCivs()) { civ.addNotification( - "[${civInfo.civName}] and [${otherCiv().civName}] have signed the Peace Treaty!", - null, - Color.WHITE + "[${civInfo.civName}] and [${otherCiv().civName}] have signed the Peace Treaty!", + null, + Color.WHITE ) } } val otherCiv = otherCiv() // We get out of their territory - for(unit in civInfo.getCivUnits().filter { it.getTile().getOwner()== otherCiv}) + for (unit in civInfo.getCivUnits().filter { it.getTile().getOwner() == otherCiv }) unit.movement.teleportToClosestMoveableTile() // And we get out of theirs - for(unit in otherCiv.getCivUnits().filter { it.getTile().getOwner()== civInfo}) + for (unit in otherCiv.getCivUnits().filter { it.getTile().getOwner() == civInfo }) unit.movement.teleportToClosestMoveableTile() }