AI is more likely to sign Defensive pacts (#11740)

* Made the AI more likely to sign defensive pacts

* Reduced AI Declined flags time by half

* Fixed a value
This commit is contained in:
Oskar Niesen 2024-06-14 09:40:45 -05:00 committed by GitHub
parent 3c91647fb2
commit 294a0a71a4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 12 additions and 12 deletions

View File

@ -173,7 +173,7 @@ object DiplomacyAutomation {
.filter { .filter {
civInfo.diplomacyFunctions.canSignDefensivePactWith(it) civInfo.diplomacyFunctions.canSignDefensivePactWith(it)
&& !civInfo.getDiplomacyManager(it).hasFlag(DiplomacyFlags.DeclinedDefensivePact) && !civInfo.getDiplomacyManager(it).hasFlag(DiplomacyFlags.DeclinedDefensivePact)
&& civInfo.getDiplomacyManager(it).relationshipIgnoreAfraid() == RelationshipLevel.Ally && civInfo.getDiplomacyManager(it).opinionOfOtherCiv() < 70f
&& !isTradeBeingOffered(civInfo, it, Constants.defensivePact) && !isTradeBeingOffered(civInfo, it, Constants.defensivePact)
} }
@ -197,17 +197,17 @@ object DiplomacyAutomation {
fun wantsToSignDefensivePact(civInfo: Civilization, otherCiv: Civilization): Boolean { fun wantsToSignDefensivePact(civInfo: Civilization, otherCiv: Civilization): Boolean {
val diploManager = civInfo.getDiplomacyManager(otherCiv) val diploManager = civInfo.getDiplomacyManager(otherCiv)
if (diploManager.hasFlag(DiplomacyFlags.DeclinedDefensivePact)) return false if (diploManager.hasFlag(DiplomacyFlags.DeclinedDefensivePact)) return false
if (diploManager.isRelationshipLevelLT(RelationshipLevel.Ally)) return false if (diploManager.opinionOfOtherCiv() < 60f) return false
val commonknownCivs = diploManager.getCommonKnownCivs() val commonknownCivs = diploManager.getCommonKnownCivs()
// If they have bad relations with any of our friends, don't consider it // If they have bad relations with any of our friends, don't consider it
for (thirdCiv in commonknownCivs) { for (thirdCiv in commonknownCivs) {
if (civInfo.getDiplomacyManager(thirdCiv).isRelationshipLevelGE(RelationshipLevel.Friend) if (civInfo.getDiplomacyManager(thirdCiv).hasFlag(DiplomacyFlags.DeclarationOfFriendship)
&& thirdCiv.getDiplomacyManager(otherCiv).isRelationshipLevelLT(RelationshipLevel.Favorable)) && thirdCiv.getDiplomacyManager(otherCiv).isRelationshipLevelLT(RelationshipLevel.Favorable))
return false 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) { for (thirdCiv in commonknownCivs) {
if (otherCiv.getDiplomacyManager(thirdCiv).isRelationshipLevelGE(RelationshipLevel.Friend) if (otherCiv.getDiplomacyManager(thirdCiv).hasFlag(DiplomacyFlags.DeclarationOfFriendship)
&& thirdCiv.getDiplomacyManager(civInfo).isRelationshipLevelLT(RelationshipLevel.Neutral)) && thirdCiv.getDiplomacyManager(civInfo).isRelationshipLevelLT(RelationshipLevel.Neutral))
return false return false
} }

View File

@ -57,19 +57,19 @@ class TradeRequest : IsPartOfGameInfoSerialization {
// the numbers of the flags (20,5) are the amount of turns to wait until offering again // 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 } if (trade.ourOffers.all { it.type == TradeType.Luxury_Resource }
&& trade.theirOffers.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 }) 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 }) 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 }) 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 }) 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 }) 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", requestingCivInfo.addNotification("[${decliningCiv.civName}] has denied your trade request",
NotificationCategory.Trade, decliningCiv.civName, NotificationIcon.Trade) NotificationCategory.Trade, decliningCiv.civName, NotificationIcon.Trade)