Water units can no longer see over hills etc.

This commit is contained in:
Yair Morgenstern 2020-03-05 23:37:58 +02:00
parent 5117a498f9
commit 585ec2b723
4 changed files with 5 additions and 8 deletions

View File

@ -63,7 +63,7 @@ class BattleHelper {
val tilesInAttackRange =
if (unit.hasUnique("Ranged attacks may be performed over obstacles") || unit.type.isAirUnit())
reachableTile.getTilesInDistance(rangeOfAttack)
else reachableTile.getViewableTilesList(rangeOfAttack, unit.type.isWaterUnit())
else reachableTile.getViewableTilesList(rangeOfAttack)
.asSequence()
attackableTiles += tilesInAttackRange.filter { it in tilesWithEnemies }

View File

@ -161,7 +161,7 @@ class MapUnit {
val tile = getTile()
if (tile.baseTerrain == Constants.hill && type.isLandUnit()) visibilityRange += 1
viewableTiles = tile.getViewableTilesList(visibilityRange, type.isWaterUnit())
viewableTiles = tile.getViewableTilesList(visibilityRange)
}
civInfo.updateViewableTiles() // for the civ
}

View File

@ -262,8 +262,8 @@ open class TileInfo {
fun hasViewableResource(civInfo: CivilizationInfo): Boolean =
resource != null && (getTileResource().revealedBy == null || civInfo.tech.isResearched(getTileResource().revealedBy!!))
fun getViewableTilesList(distance:Int, ignoreCurrentTileHeight: Boolean): List<TileInfo> =
tileMap.getViewableTiles(position, distance, ignoreCurrentTileHeight)
fun getViewableTilesList(distance:Int): List<TileInfo> =
tileMap.getViewableTiles(position, distance)
fun getTilesInDistance(distance: Int): Sequence<TileInfo> =
tileMap.getTilesInDistance(position,distance)

View File

@ -177,10 +177,7 @@ class TileMap {
}
fun getViewableTiles(position: Vector2, sightDistance: Int, ignoreCurrentTileHeight: Boolean)
: List<TileInfo> {
if (ignoreCurrentTileHeight) return getTilesInDistance(position, sightDistance).toList()
fun getViewableTiles(position: Vector2, sightDistance: Int): List<TileInfo> {
val viewableTiles = getTilesInDistance(position, 1).toMutableList()
val currentTileHeight = get(position).getHeight()