mirror of
https://github.com/yairm210/Unciv.git
synced 2025-07-14 01:39:40 +07:00
Resolved #2071 - AI will wait 20 turns between proposing research agreements if declined
This commit is contained in:
@ -319,7 +319,8 @@ class NextTurnAutomation{
|
|||||||
|
|
||||||
val canSignResearchAgreementCiv = civInfo.getKnownCivs()
|
val canSignResearchAgreementCiv = civInfo.getKnownCivs()
|
||||||
.asSequence()
|
.asSequence()
|
||||||
.filter { civInfo.canSignResearchAgreementsWith(it) }
|
.filter { civInfo.canSignResearchAgreementsWith(it)
|
||||||
|
&& !civInfo.getDiplomacyManager(it).hasFlag(DiplomacyFlags.DeclinedResearchAgreement) }
|
||||||
.sortedByDescending { it.statsForNextTurn.science }
|
.sortedByDescending { it.statsForNextTurn.science }
|
||||||
|
|
||||||
val duration = when(civInfo.gameInfo.gameParameters.gameSpeed) {
|
val duration = when(civInfo.gameInfo.gameParameters.gameSpeed) {
|
||||||
|
@ -23,6 +23,7 @@ enum class RelationshipLevel{
|
|||||||
enum class DiplomacyFlags{
|
enum class DiplomacyFlags{
|
||||||
DeclinedLuxExchange,
|
DeclinedLuxExchange,
|
||||||
DeclinedPeace,
|
DeclinedPeace,
|
||||||
|
DeclinedResearchAgreement,
|
||||||
DeclaredWar,
|
DeclaredWar,
|
||||||
DeclarationOfFriendship,
|
DeclarationOfFriendship,
|
||||||
ResearchAgreement,
|
ResearchAgreement,
|
||||||
|
@ -69,6 +69,8 @@ class TradePopup(worldScreen: WorldScreen): Popup(worldScreen){
|
|||||||
val diplomacyManager = requestingCiv.getDiplomacyManager(viewingCiv)
|
val diplomacyManager = requestingCiv.getDiplomacyManager(viewingCiv)
|
||||||
if(trade.ourOffers.all { it.type==TradeType.Luxury_Resource } && trade.theirOffers.all { it.type==TradeType.Luxury_Resource })
|
if(trade.ourOffers.all { it.type==TradeType.Luxury_Resource } && trade.theirOffers.all { it.type==TradeType.Luxury_Resource })
|
||||||
diplomacyManager.setFlag(DiplomacyFlags.DeclinedLuxExchange,20) // offer again in 20 turns
|
diplomacyManager.setFlag(DiplomacyFlags.DeclinedLuxExchange,20) // offer again in 20 turns
|
||||||
|
if(trade.ourOffers.any { it.type==TradeType.Agreement && it.name==Constants.researchAgreement })
|
||||||
|
diplomacyManager.setFlag(DiplomacyFlags.DeclinedResearchAgreement,20) // offer again in 20 turns
|
||||||
|
|
||||||
if(trade.ourOffers.any{ it.type==TradeType.Treaty && it.name== Constants.peaceTreaty })
|
if(trade.ourOffers.any{ it.type==TradeType.Treaty && it.name== Constants.peaceTreaty })
|
||||||
diplomacyManager.setFlag(DiplomacyFlags.DeclinedPeace,5)
|
diplomacyManager.setFlag(DiplomacyFlags.DeclinedPeace,5)
|
||||||
|
Reference in New Issue
Block a user