Resolved #2820 - ressurected civs are at peace with everyone

This commit is contained in:
Yair Morgenstern 2020-07-10 09:55:48 +03:00
parent 13a26fa434
commit e848d0b8b8
2 changed files with 14 additions and 8 deletions

View File

@ -9,6 +9,7 @@ import com.unciv.logic.battle.Battle
import com.unciv.logic.civilization.CivilizationInfo import com.unciv.logic.civilization.CivilizationInfo
import com.unciv.logic.civilization.diplomacy.DiplomacyFlags import com.unciv.logic.civilization.diplomacy.DiplomacyFlags
import com.unciv.logic.civilization.diplomacy.DiplomaticModifiers 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.RoadStatus
import com.unciv.logic.map.TileInfo import com.unciv.logic.map.TileInfo
import com.unciv.logic.map.TileMap import com.unciv.logic.map.TileMap
@ -438,10 +439,14 @@ class CityInfo {
} }
val oldCiv = civInfo val oldCiv = civInfo
diplomaticRepercussionsForLiberatingCity(conqueringCiv)
val foundingCiv = civInfo.gameInfo.civilizations.first { it.civName == foundingCiv } 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) moveToCiv(foundingCiv)
Battle.destroyIfDefeated(oldCiv, conqueringCiv) Battle.destroyIfDefeated(oldCiv, conqueringCiv)

View File

@ -462,8 +462,9 @@ class DiplomacyManager() {
} }
} }
fun makePeace(){ fun makePeace() {
diplomaticStatus= DiplomaticStatus.Peace diplomaticStatus = DiplomaticStatus.Peace
otherCivDiplomacy().diplomaticStatus = DiplomaticStatus.Peace
if (otherCiv().isAtWarWith(civInfo)) { if (otherCiv().isAtWarWith(civInfo)) {
for (civ in getCommonKnownCivs()) { for (civ in getCommonKnownCivs()) {
@ -477,11 +478,11 @@ class DiplomacyManager() {
val otherCiv = otherCiv() val otherCiv = otherCiv()
// We get out of their territory // 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() unit.movement.teleportToClosestMoveableTile()
// And we get out of theirs // 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() unit.movement.teleportToClosestMoveableTile()
} }