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 {
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
}

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