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.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)

View File

@ -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()
}