Removed edge case option where the AI can trade you all of their cities

This commit is contained in:
Yair Morgenstern 2020-09-25 13:42:13 +03:00
parent 1f52a8ad88
commit 98a79f8fb4

View File

@ -43,6 +43,11 @@ class TradeEvaluation{
}
fun isTradeAcceptable(trade: Trade, evaluator: CivilizationInfo, tradePartner: CivilizationInfo): Boolean {
// Edge case time! Guess what happens if you offer a peace agreement to the AI for all their cities except for the capital,
// and then capture their capital THAT SAME TURN? It can agree, leading to the civilization getting instantly destroyed!
if (trade.ourOffers.count { it.type == TradeType.City } == evaluator.cities.size)
return false
var sumOfTheirOffers = trade.theirOffers.asSequence()
.filter { it.type != TradeType.Treaty } // since treaties should only be evaluated once for 2 sides
.map { evaluateBuyCost(it, evaluator, tradePartner) }.sum()