From b59e235df5737c88cf132915fd9342d71a332c1f Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Mon, 9 Apr 2018 11:03:55 +0300 Subject: [PATCH] Ranged attacks can reach attackee if tile is in range --- core/src/com/unciv/ui/worldscreen/BattleTable.kt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/core/src/com/unciv/ui/worldscreen/BattleTable.kt b/core/src/com/unciv/ui/worldscreen/BattleTable.kt index 1c2e483721..8e0d0ea337 100644 --- a/core/src/com/unciv/ui/worldscreen/BattleTable.kt +++ b/core/src/com/unciv/ui/worldscreen/BattleTable.kt @@ -5,6 +5,7 @@ import com.badlogic.gdx.scenes.scene2d.ui.Table import com.badlogic.gdx.scenes.scene2d.ui.TextButton import com.unciv.logic.battle.* import com.unciv.logic.map.UnitType +import com.unciv.ui.UnCivGame import com.unciv.ui.cityscreen.addClickListener import com.unciv.ui.utils.CameraStageBaseScreen import com.unciv.ui.utils.disable @@ -111,7 +112,13 @@ class BattleTable(val worldScreen: WorldScreen): Table() { worldScreen.update() } - val attackerCanReachDefender = attacker.unit.getDistanceToTiles().containsKey(defender.getTile()) + val attackerCanReachDefender:Boolean + if (attacker.getCombatantType() == CombatantType.Ranged) { + val tilesInRange = UnCivGame.Current.gameInfo.tileMap.getTilesInDistance(attacker.getTile().position, 2) + attackerCanReachDefender = tilesInRange.contains(defender.getTile()) + } + else attackerCanReachDefender = attacker.unit.getDistanceToTiles().containsKey(defender.getTile()) + if(attacker.unit.currentMovement==0f || !attackerCanReachDefender) attackButton.disable() add(attackButton).colspan(2)