From 2d2b7303999b389219b663c2b32ab1f0144cf4da Mon Sep 17 00:00:00 2001 From: Oskar Niesen Date: Wed, 19 Jun 2024 09:13:36 -0500 Subject: [PATCH] Civs can no longer declare war right after peace with a city-state (#11762) * Signing peace with a civ and a city state adds a peace treaty with the city-state * Added a comment --- .../civilization/diplomacy/DiplomacyManager.kt | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/core/src/com/unciv/logic/civilization/diplomacy/DiplomacyManager.kt b/core/src/com/unciv/logic/civilization/diplomacy/DiplomacyManager.kt index af240306a9..362aa210ce 100644 --- a/core/src/com/unciv/logic/civilization/diplomacy/DiplomacyManager.kt +++ b/core/src/com/unciv/logic/civilization/diplomacy/DiplomacyManager.kt @@ -8,6 +8,7 @@ import com.unciv.logic.civilization.NotificationCategory import com.unciv.logic.civilization.NotificationIcon import com.unciv.logic.trade.Trade import com.unciv.logic.trade.TradeEvaluation +import com.unciv.logic.trade.TradeLogic import com.unciv.logic.trade.TradeOffer import com.unciv.logic.trade.TradeType import com.unciv.models.ruleset.tile.ResourceSupplyList @@ -471,8 +472,17 @@ class DiplomacyManager() : IsPartOfGameInfoSerialization { for (thirdCiv in civInfo.getKnownCivs()) { // Our ally city states make peace with us - if (thirdCiv.getAllyCiv() == civInfo.civName && thirdCiv.isAtWarWith(otherCiv)) - thirdCiv.getDiplomacyManager(otherCiv)!!.makePeace() + if (thirdCiv.getAllyCiv() == civInfo.civName && thirdCiv.isAtWarWith(otherCiv)) { + val thirdCivDiplo = thirdCiv.getDiplomacyManager(otherCiv)!! + thirdCivDiplo.makePeace() + + // Make the peace treaty so that the civ can't declare war immedietly + val tradeLogic = TradeLogic(thirdCiv, otherCiv) + tradeLogic.currentTrade.ourOffers.add(TradeOffer(Constants.peaceTreaty, TradeType.Treaty)) + tradeLogic.currentTrade.theirOffers.add(TradeOffer(Constants.peaceTreaty, TradeType.Treaty)) + thirdCivDiplo.trades.add(tradeLogic.currentTrade) + thirdCivDiplo.otherCivDiplomacy().trades.add(tradeLogic.currentTrade.reverse()) + } // Other City-States that are not our ally don't like the fact that we made peace with their enemy if (thirdCiv.getAllyCiv() != civInfo.civName && thirdCiv.isAtWarWith(otherCiv)) thirdCiv.getDiplomacyManager(civInfo)!!.addInfluence(-10f)