diff --git a/core/src/com/unciv/logic/automation/civilization/DiplomacyAutomation.kt b/core/src/com/unciv/logic/automation/civilization/DiplomacyAutomation.kt index 9edfe797af..7768f2fde4 100644 --- a/core/src/com/unciv/logic/automation/civilization/DiplomacyAutomation.kt +++ b/core/src/com/unciv/logic/automation/civilization/DiplomacyAutomation.kt @@ -173,7 +173,7 @@ object DiplomacyAutomation { .filter { civInfo.diplomacyFunctions.canSignDefensivePactWith(it) && !civInfo.getDiplomacyManager(it).hasFlag(DiplomacyFlags.DeclinedDefensivePact) - && civInfo.getDiplomacyManager(it).relationshipIgnoreAfraid() == RelationshipLevel.Ally + && civInfo.getDiplomacyManager(it).opinionOfOtherCiv() < 70f && !isTradeBeingOffered(civInfo, it, Constants.defensivePact) } @@ -197,17 +197,17 @@ object DiplomacyAutomation { fun wantsToSignDefensivePact(civInfo: Civilization, otherCiv: Civilization): Boolean { val diploManager = civInfo.getDiplomacyManager(otherCiv) if (diploManager.hasFlag(DiplomacyFlags.DeclinedDefensivePact)) return false - if (diploManager.isRelationshipLevelLT(RelationshipLevel.Ally)) return false + if (diploManager.opinionOfOtherCiv() < 60f) return false val commonknownCivs = diploManager.getCommonKnownCivs() // If they have bad relations with any of our friends, don't consider it for (thirdCiv in commonknownCivs) { - if (civInfo.getDiplomacyManager(thirdCiv).isRelationshipLevelGE(RelationshipLevel.Friend) + if (civInfo.getDiplomacyManager(thirdCiv).hasFlag(DiplomacyFlags.DeclarationOfFriendship) && thirdCiv.getDiplomacyManager(otherCiv).isRelationshipLevelLT(RelationshipLevel.Favorable)) return false } - // If they have bad relations with any of thier friends, don't consider it + // If they have bad relations with any of our friends, don't consider it for (thirdCiv in commonknownCivs) { - if (otherCiv.getDiplomacyManager(thirdCiv).isRelationshipLevelGE(RelationshipLevel.Friend) + if (otherCiv.getDiplomacyManager(thirdCiv).hasFlag(DiplomacyFlags.DeclarationOfFriendship) && thirdCiv.getDiplomacyManager(civInfo).isRelationshipLevelLT(RelationshipLevel.Neutral)) return false } diff --git a/core/src/com/unciv/logic/trade/Trade.kt b/core/src/com/unciv/logic/trade/Trade.kt index d162e7e42f..7077bcf9c0 100644 --- a/core/src/com/unciv/logic/trade/Trade.kt +++ b/core/src/com/unciv/logic/trade/Trade.kt @@ -57,19 +57,19 @@ class TradeRequest : IsPartOfGameInfoSerialization { // the numbers of the flags (20,5) are the amount of turns to wait until offering again if (trade.ourOffers.all { it.type == TradeType.Luxury_Resource } && trade.theirOffers.all { it.type == TradeType.Luxury_Resource }) - requestingCivDiploManager.setFlag(DiplomacyFlags.DeclinedLuxExchange,20) + requestingCivDiploManager.setFlag(DiplomacyFlags.DeclinedLuxExchange,5) if (trade.ourOffers.any { it.name == Constants.researchAgreement }) - requestingCivDiploManager.setFlag(DiplomacyFlags.DeclinedResearchAgreement,20) + requestingCivDiploManager.setFlag(DiplomacyFlags.DeclinedResearchAgreement,10) if (trade.ourOffers.any { it.name == Constants.defensivePact }) - requestingCivDiploManager.setFlag(DiplomacyFlags.DeclinedDefensivePact,20) + requestingCivDiploManager.setFlag(DiplomacyFlags.DeclinedDefensivePact,10) if (trade.ourOffers.any { it.name == Constants.openBorders }) - requestingCivDiploManager.setFlag(DiplomacyFlags.DeclinedOpenBorders, if (decliningCiv.isAI()) 10 else 20) + requestingCivDiploManager.setFlag(DiplomacyFlags.DeclinedOpenBorders, if (decliningCiv.isAI()) 5 else 10) if (trade.theirOffers.any { it.type == TradeType.WarDeclaration }) - requestingCivDiploManager.setFlag(DiplomacyFlags.DeclinedJoinWarOffer, if (decliningCiv.isAI()) 10 else 20) + requestingCivDiploManager.setFlag(DiplomacyFlags.DeclinedJoinWarOffer, if (decliningCiv.isAI()) 5 else 10) if (trade.ourOffers.any { it.type == TradeType.WarDeclaration }) - requestingCivDiploManager.otherCivDiplomacy().setFlag(DiplomacyFlags.DeclinedJoinWarOffer, if (decliningCiv.isAI()) 10 else 20) + requestingCivDiploManager.otherCivDiplomacy().setFlag(DiplomacyFlags.DeclinedJoinWarOffer, if (decliningCiv.isAI()) 5 else 10) - if (trade.isPeaceTreaty()) requestingCivDiploManager.setFlag(DiplomacyFlags.DeclinedPeace, 5) + if (trade.isPeaceTreaty()) requestingCivDiploManager.setFlag(DiplomacyFlags.DeclinedPeace, 3) requestingCivInfo.addNotification("[${decliningCiv.civName}] has denied your trade request", NotificationCategory.Trade, decliningCiv.civName, NotificationIcon.Trade)