diff --git a/core/src/com/unciv/logic/trade/TradeEvaluation.kt b/core/src/com/unciv/logic/trade/TradeEvaluation.kt index 62d8d3e6c2..f63be276aa 100644 --- a/core/src/com/unciv/logic/trade/TradeEvaluation.kt +++ b/core/src/com/unciv/logic/trade/TradeEvaluation.kt @@ -12,11 +12,18 @@ import kotlin.math.sqrt class TradeEvaluation{ fun isTradeValid(trade:Trade, offerer:CivilizationInfo, tradePartner: CivilizationInfo): Boolean { - for(offer in trade.ourOffers) - if(!isOfferValid(offer,offerer)) + + // 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 } == offerer.cities.size + || trade.theirOffers.count { it.type == TradeType.City } == tradePartner.cities.size) + return false + + for (offer in trade.ourOffers) + if (!isOfferValid(offer, offerer)) return false - for(offer in trade.theirOffers) - if(!isOfferValid(offer,tradePartner)) + for (offer in trade.theirOffers) + if (!isOfferValid(offer, tradePartner)) return false return true } @@ -43,11 +50,6 @@ 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() diff --git a/core/src/com/unciv/ui/utils/ImageGetter.kt b/core/src/com/unciv/ui/utils/ImageGetter.kt index 135b91c930..b9cc45cad1 100644 --- a/core/src/com/unciv/ui/utils/ImageGetter.kt +++ b/core/src/com/unciv/ui/utils/ImageGetter.kt @@ -49,8 +49,8 @@ object ImageGetter { fun reload(){ textureRegionDrawables.clear() // These are the drawables from the base game - for(region in atlas.regions){ - val drawable =TextureRegionDrawable(region) + for(region in atlas.regions) { + val drawable = TextureRegionDrawable(region) textureRegionDrawables[region.name] = drawable }