From c9bd56da95e90f97940acb3159b9458b77a687cb Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Sun, 12 May 2019 22:29:22 +0300 Subject: [PATCH] Resolved #732 - don't change peace negotiation deals depending on how much you dislike the enemy --- core/src/com/unciv/logic/trade/TradeEvaluation.kt | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/core/src/com/unciv/logic/trade/TradeEvaluation.kt b/core/src/com/unciv/logic/trade/TradeEvaluation.kt index 2defdaea75..8d7f9e4602 100644 --- a/core/src/com/unciv/logic/trade/TradeEvaluation.kt +++ b/core/src/com/unciv/logic/trade/TradeEvaluation.kt @@ -17,9 +17,13 @@ class TradeEvaluation{ .filter { it.type!= TradeType.Treaty } // since treaties should only be evaluated once for 2 sides .map { evaluateBuyCost(it,evaluator,tradePartner) }.sum() - val relationshipLevel = evaluator.getDiplomacyManager(tradePartner).relationshipLevel() - if(relationshipLevel==RelationshipLevel.Enemy) sumOfTheirOffers = (sumOfTheirOffers*1.5).toInt() - else if(relationshipLevel==RelationshipLevel.Unforgivable) sumOfTheirOffers *= 2 + // If we're making a peace treaty, don't try to up the bargain for people you don't like. + // Leads to spartan behaviour where you demand more, the more you hate the enemy...unhelpful + if(trade.ourOffers.none { it.name==Constants.peaceTreaty }) { + val relationshipLevel = evaluator.getDiplomacyManager(tradePartner).relationshipLevel() + if (relationshipLevel == RelationshipLevel.Enemy) sumOfTheirOffers = (sumOfTheirOffers * 1.5).toInt() + else if (relationshipLevel == RelationshipLevel.Unforgivable) sumOfTheirOffers *= 2 + } val sumOfOurOffers = trade.ourOffers.map { evaluateSellCost(it, evaluator, tradePartner)}.sum() return sumOfOurOffers <= sumOfTheirOffers