From 66d7e8cbd02634837505acc3c445e475116710db Mon Sep 17 00:00:00 2001 From: yairm210 Date: Fri, 10 Sep 2021 13:42:37 +0300 Subject: [PATCH] Minor improvements --- core/src/com/unciv/logic/city/CityInfo.kt | 8 ++------ core/src/com/unciv/logic/trade/TradeEvaluation.kt | 11 +++++------ core/src/com/unciv/ui/trade/DiplomacyScreen.kt | 14 ++++++++------ 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/core/src/com/unciv/logic/city/CityInfo.kt b/core/src/com/unciv/logic/city/CityInfo.kt index 47759f0450..7e9906f1a4 100644 --- a/core/src/com/unciv/logic/city/CityInfo.kt +++ b/core/src/com/unciv/logic/city/CityInfo.kt @@ -714,7 +714,7 @@ class CityInfo { } - fun getNeighbouringCivs(): List { + fun getNeighbouringCivs(): Set { val tilesList: HashSet = getTiles().toHashSet() val cityPositionList: ArrayList = arrayListOf() @@ -726,12 +726,8 @@ class CityInfo { return cityPositionList .asSequence() .mapNotNull { it.getOwner()?.civName } - .distinct() - .toList() + .toSet() } - fun getImprovableTiles(): Sequence = getTiles() - .filter { it.hasViewableResource(civInfo) && it.improvement == null } - //endregion } \ No newline at end of file diff --git a/core/src/com/unciv/logic/trade/TradeEvaluation.kt b/core/src/com/unciv/logic/trade/TradeEvaluation.kt index 039589d1b2..45598a25be 100644 --- a/core/src/com/unciv/logic/trade/TradeEvaluation.kt +++ b/core/src/com/unciv/logic/trade/TradeEvaluation.kt @@ -163,15 +163,14 @@ class TradeEvaluation { } } } - private fun surroundedByOurCities(city: CityInfo, civInfo: CivilizationInfo): Int{ - val borderingCivs: List = city.getNeighbouringCivs() - if (borderingCivs.size == 1 && borderingCivs.contains(civInfo.civName)){ - return 10*civInfo.getEraNumber() // if the city is surrounded only by trading civ + private fun surroundedByOurCities(city: CityInfo, civInfo: CivilizationInfo): Int { + val borderingCivs: Set = city.getNeighbouringCivs() + if (borderingCivs.size == 1 && borderingCivs.contains(civInfo.civName)) { + return 10 * civInfo.getEraNumber() // if the city is surrounded only by trading civ } if (borderingCivs.contains(civInfo.civName)) - return 2*civInfo.getEraNumber() // if the city has a border with trading civ + return 2 * civInfo.getEraNumber() // if the city has a border with trading civ return 0 - } private fun evaluateSellCost(offer: TradeOffer, civInfo: CivilizationInfo, tradePartner: CivilizationInfo): Int { diff --git a/core/src/com/unciv/ui/trade/DiplomacyScreen.kt b/core/src/com/unciv/ui/trade/DiplomacyScreen.kt index a1ef52b2c1..4a3818b786 100644 --- a/core/src/com/unciv/ui/trade/DiplomacyScreen.kt +++ b/core/src/com/unciv/ui/trade/DiplomacyScreen.kt @@ -328,13 +328,12 @@ class DiplomacyScreen(val viewingCiv:CivilizationInfo):CameraStageBaseScreen() { otherCivDiplomacyManager: DiplomacyManager ): TextButton? { if (otherCiv.cities.isEmpty()) return null - val improvableTiles = otherCiv.getCapital().getImprovableTiles() - .filterNot { it.getTileResource().resourceType == ResourceType.Bonus }.toList() + val improvableResourceTiles = getImprovableResourceTiles(otherCiv) val improvements = otherCiv.gameInfo.ruleSet.tileImprovements.filter { it.value.turnsToBuild != 0 } var needsImprovements = false - for (improvableTile in improvableTiles) + for (improvableTile in improvableResourceTiles) for (tileImprovement in improvements.values) if (improvableTile.canBuildImprovement( tileImprovement, @@ -401,16 +400,19 @@ class DiplomacyScreen(val viewingCiv:CivilizationInfo):CameraStageBaseScreen() { return diplomacyTable } + fun getImprovableResourceTiles(otherCiv:CivilizationInfo) = otherCiv.getCapital().getTiles() + .filter { it.hasViewableResource(otherCiv) && it.improvement == null + && it.getTileResource().resourceType!=ResourceType.Bonus } + private fun getImprovementGiftTable(otherCiv: CivilizationInfo): Table { val improvementGiftTable = getCityStateDiplomacyTableHeader(otherCiv) improvementGiftTable.addSeparator() - val improvableTiles = otherCiv.getCapital().getImprovableTiles() - .filterNot { it.getTileResource().resourceType == ResourceType.Bonus }.toList() + val improvableResourceTiles = getImprovableResourceTiles(otherCiv) val tileImprovements = otherCiv.gameInfo.ruleSet.tileImprovements.filter { it.value.turnsToBuild != 0 } - for (improvableTile in improvableTiles) { + for (improvableTile in improvableResourceTiles) { for (tileImprovement in tileImprovements.values) { if (improvableTile.canBuildImprovement(tileImprovement, otherCiv) && improvableTile.getTileResource().improvement == tileImprovement.name