mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-26 13:27:22 -04:00
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:
parent
3c91647fb2
commit
294a0a71a4
@ -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
|
||||
}
|
||||
|
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user