Attackable units now have red circle marking their location

This commit is contained in:
Yair Morgenstern
2018-04-12 21:43:52 +03:00
parent ca7fb9c3be
commit e9c69eed6f
2 changed files with 18 additions and 1 deletions

View File

@ -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<TileInfo> {
return tileMap.getTilesInDistance(position,distance)
}
fun getDefensiveBonus(): Float {
var bonus = getBaseTerrain().defenceBonus
if(terrainFeature!=null) bonus += getTerrainFeature()!!.defenceBonus

View File

@ -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<TileInfo>
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) {