From 23bad8d961fc50b1e4923226ac6256f74e4cb134 Mon Sep 17 00:00:00 2001 From: yairm210 Date: Thu, 9 Dec 2021 21:58:57 +0200 Subject: [PATCH] Resolved #4921 - can gift improvements to city states also on water tiles and when other improvements have been built on top of the resource --- core/src/com/unciv/ui/trade/DiplomacyScreen.kt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/core/src/com/unciv/ui/trade/DiplomacyScreen.kt b/core/src/com/unciv/ui/trade/DiplomacyScreen.kt index a74d94a98b..0b2198d8c0 100644 --- a/core/src/com/unciv/ui/trade/DiplomacyScreen.kt +++ b/core/src/com/unciv/ui/trade/DiplomacyScreen.kt @@ -457,8 +457,8 @@ class DiplomacyScreen(val viewingCiv:CivilizationInfo): BaseScreen() { } fun getImprovableResourceTiles(otherCiv:CivilizationInfo) = otherCiv.getCapital().getTiles() - .filter { it.hasViewableResource(otherCiv) && it.improvement == null - && it.tileResource.resourceType!=ResourceType.Bonus } + .filter { it.hasViewableResource(otherCiv) && it.tileResource.resourceType!=ResourceType.Bonus + && it.tileResource.improvement != it.improvement } private fun getImprovementGiftTable(otherCiv: CivilizationInfo): Table { val improvementGiftTable = getCityStateDiplomacyTableHeader(otherCiv) @@ -466,12 +466,12 @@ class DiplomacyScreen(val viewingCiv:CivilizationInfo): BaseScreen() { val improvableResourceTiles = getImprovableResourceTiles(otherCiv) val tileImprovements = - otherCiv.gameInfo.ruleSet.tileImprovements.filter { it.value.turnsToBuild != 0 } + otherCiv.gameInfo.ruleSet.tileImprovements for (improvableTile in improvableResourceTiles) { for (tileImprovement in tileImprovements.values) { - if (improvableTile.canBuildImprovement(tileImprovement, otherCiv) && - improvableTile.tileResource.improvement == tileImprovement.name + if (improvableTile.tileResource.improvement == tileImprovement.name + && improvableTile.canBuildImprovement(tileImprovement, otherCiv) ) { val improveTileButton = "Build [${tileImprovement}] on [${improvableTile.tileResource}] (200 Gold)".toTextButton()