diff --git a/core/src/com/unciv/logic/map/TileInfo.kt b/core/src/com/unciv/logic/map/TileInfo.kt index 4647bc8fb8..fe4a65f856 100644 --- a/core/src/com/unciv/logic/map/TileInfo.kt +++ b/core/src/com/unciv/logic/map/TileInfo.kt @@ -1,6 +1,7 @@ package com.unciv.logic.map import com.badlogic.gdx.math.Vector2 +import com.unciv.UnCivGame import com.unciv.logic.city.CityInfo import com.unciv.logic.civilization.CivilizationInfo import com.unciv.models.gamebasics.GameBasics @@ -8,7 +9,6 @@ import com.unciv.models.gamebasics.Terrain import com.unciv.models.gamebasics.TileImprovement import com.unciv.models.gamebasics.TileResource import com.unciv.models.stats.Stats -import com.unciv.UnCivGame class TileInfo { @Transient lateinit var tileMap: TileMap @@ -175,6 +175,10 @@ class TileInfo { return tileMap.getViewableTiles(this.position,distance) } + fun getTilesInDistance(distance:Int): List { + return tileMap.getTilesInDistance(position,distance) + } + fun getDefensiveBonus(): Float { var bonus = getBaseTerrain().defenceBonus if(terrainFeature!=null) bonus += getTerrainFeature()!!.defenceBonus diff --git a/core/src/com/unciv/ui/worldscreen/TileMapHolder.kt b/core/src/com/unciv/ui/worldscreen/TileMapHolder.kt index e4686ff781..ca0cddb595 100644 --- a/core/src/com/unciv/ui/worldscreen/TileMapHolder.kt +++ b/core/src/com/unciv/ui/worldscreen/TileMapHolder.kt @@ -9,6 +9,7 @@ import com.badlogic.gdx.scenes.scene2d.utils.ActorGestureListener import com.unciv.logic.civilization.CivilizationInfo import com.unciv.logic.map.TileInfo import com.unciv.logic.map.TileMap +import com.unciv.logic.map.UnitType import com.unciv.ui.cityscreen.addClickListener import com.unciv.ui.tilegroups.WorldTileGroup import com.unciv.ui.utils.HexMath @@ -101,6 +102,18 @@ class TileMapHolder(internal val worldScreen: WorldScreen, internal val tileMap: if(worldScreen.unitTable.currentlyExecutingAction!=null) for(tile: TileInfo in worldScreen.unitTable.getTilesForCurrentlyExecutingAction()) tileGroups[tile.position.toString()]!!.showCircle(Color(0f,120/255f,215/255f,1f)) + else if(worldScreen.unitTable.selectedUnit!=null){ + val unit = worldScreen.unitTable.selectedUnit!! + val attackableTiles:List + when(unit.getBaseUnit().unitType){ + UnitType.Civilian -> return + UnitType.Melee -> attackableTiles = unit.getDistanceToTiles().keys.toList() + UnitType.Ranged -> attackableTiles = unit.getTile().getTilesInDistance(2) + } + + for (tile in attackableTiles.filter { it.unit!=null && it.unit!!.owner != unit.owner }) + tileGroups[tile.position.toString()]!!.showCircle(Color(237/255f,41/255f,57/255f,1f)) + } } fun setCenterPosition(vector: Vector2) {