From b212f2bfd0b2c3e517e1842767cde3d8c6f8d1f1 Mon Sep 17 00:00:00 2001 From: Jack Rainy Date: Mon, 30 Mar 2020 23:06:18 +0300 Subject: [PATCH] UI bugfixes: city info and aircrafts (#2289) * Display aircraft icon even for full carriers * Do not reveal strategic city information like aircrafts or units near by --- core/src/com/unciv/ui/tilegroups/CityButton.kt | 12 ++++++++---- core/src/com/unciv/ui/tilegroups/TileGroupIcons.kt | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/core/src/com/unciv/ui/tilegroups/CityButton.kt b/core/src/com/unciv/ui/tilegroups/CityButton.kt index 4fe435183c..10d546575b 100644 --- a/core/src/com/unciv/ui/tilegroups/CityButton.kt +++ b/core/src/com/unciv/ui/tilegroups/CityButton.kt @@ -28,15 +28,16 @@ class CityButton(val city: CityInfo, private val tileGroup: WorldTileGroup, skin private val listOfHiddenUnitMarkers: MutableList = mutableListOf() private lateinit var iconTable: Table private var isButtonMoved = false + private var showAdditionalInfoTags = false fun update(isCityViewable:Boolean) { + showAdditionalInfoTags = isCityViewable + clear() - setButtonActions() - addAirUnitTable() - if (isCityViewable && city.health < city.getMaxHealth().toFloat()) { + if (showAdditionalInfoTags && city.health < city.getMaxHealth().toFloat()) { val healthBar = ImageGetter.getHealthBar(city.health.toFloat(), city.getMaxHealth().toFloat(), 100f) add(healthBar).row() } @@ -58,6 +59,9 @@ class CityButton(val city: CityInfo, private val tileGroup: WorldTileGroup, skin for (marker in listOfHiddenUnitMarkers) iconTable.removeActor(marker) listOfHiddenUnitMarkers.clear() + + if (!showAdditionalInfoTags) return + // detect civilian in the city center if (!isButtonMoved && (tileGroup.tileInfo.civilianUnit != null)) insertHiddenUnitMarker(HiddenUnitMarkerPosition.Center) @@ -111,7 +115,7 @@ class CityButton(val city: CityInfo, private val tileGroup: WorldTileGroup, skin } private fun addAirUnitTable() { - if (tileGroup.tileInfo.airUnits.isEmpty()) return + if (!showAdditionalInfoTags || tileGroup.tileInfo.airUnits.isEmpty()) return val secondarycolor = city.civInfo.nation.getInnerColor() val airUnitTable = Table().apply { defaults().pad(5f) } airUnitTable.background = ImageGetter.getRoundedEdgeTableBackground(city.civInfo.nation.getOuterColor()) diff --git a/core/src/com/unciv/ui/tilegroups/TileGroupIcons.kt b/core/src/com/unciv/ui/tilegroups/TileGroupIcons.kt index 892d37c789..2058744e56 100644 --- a/core/src/com/unciv/ui/tilegroups/TileGroupIcons.kt +++ b/core/src/com/unciv/ui/tilegroups/TileGroupIcons.kt @@ -66,7 +66,7 @@ class TileGroupIcons(val tileGroup: TileGroup){ newImage.y += yFromCenter // Display number of carried air units - if (unit.getTile().airUnits.any { unit.canTransport(it) } && !unit.getTile().isCityCenter()) { + if (unit.getTile().airUnits.any { unit.isTransportTypeOf(it) } && !unit.getTile().isCityCenter()) { val holder = Table() val secondarycolor = unit.civInfo.nation.getInnerColor() val airUnitTable = Table().apply { defaults().pad(5f) }