From 3cfe3a7f730dcbed63bc1fb2ca93f3a9b890e18b Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Mon, 20 May 2019 20:06:08 +0300 Subject: [PATCH] Resolved #787 - when selecting bombardable enemy unit with no military unit selected, bombarding city is automatically selected --- core/src/com/unciv/ui/worldscreen/TileMapHolder.kt | 13 +++++++++++++ core/src/com/unciv/ui/worldscreen/TradePopup.kt | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/core/src/com/unciv/ui/worldscreen/TileMapHolder.kt b/core/src/com/unciv/ui/worldscreen/TileMapHolder.kt index 61e1340b04..8266221db2 100644 --- a/core/src/com/unciv/ui/worldscreen/TileMapHolder.kt +++ b/core/src/com/unciv/ui/worldscreen/TileMapHolder.kt @@ -16,6 +16,7 @@ import com.unciv.logic.civilization.CivilizationInfo import com.unciv.logic.map.MapUnit import com.unciv.logic.map.TileInfo import com.unciv.logic.map.TileMap +import com.unciv.models.gamebasics.unit.UnitType import com.unciv.ui.tilegroups.WorldTileGroup import com.unciv.ui.utils.* import kotlin.concurrent.thread @@ -84,6 +85,18 @@ class TileMapHolder(internal val worldScreen: WorldScreen, internal val tileMap: queueAddMoveHereButton(selectedUnit, tileInfo) } + if(selectedUnit==null || selectedUnit.type==UnitType.Civilian){ + val unitsInTile = selectedTile!!.getUnits() + if(unitsInTile.isNotEmpty() && unitsInTile.first().civInfo.isAtWarWith(worldScreen.currentPlayerCiv)){ + // try to select the closest city to bombard this guy + val citiesThatCanBombard = selectedTile!!.getTilesInDistance(2) + .filter { it.isCityCenter() }.map { it.getCity()!! } + .filter { !it.attackedThisTurn } + if(citiesThatCanBombard.isNotEmpty()) + worldScreen.bottomBar.unitTable.citySelected(citiesThatCanBombard.first()) + } + } + worldScreen.bottomBar.unitTable.tileSelected(tileInfo) worldScreen.shouldUpdate = true } diff --git a/core/src/com/unciv/ui/worldscreen/TradePopup.kt b/core/src/com/unciv/ui/worldscreen/TradePopup.kt index 1d4a00a691..f8781ac196 100644 --- a/core/src/com/unciv/ui/worldscreen/TradePopup.kt +++ b/core/src/com/unciv/ui/worldscreen/TradePopup.kt @@ -37,7 +37,7 @@ class TradePopup(worldScreen: WorldScreen): PopupTable(worldScreen){ addGoodSizedLabel(translatedNation.tradeRequest).colspan(columns).row() - addButton("Sounds good!".tr()){ + addButton("Sounds good!"){ val tradeLogic = TradeLogic(currentPlayerCiv, requestingCiv) tradeLogic.currentTrade.set(trade) tradeLogic.acceptTrade()