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

View File

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

View File

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

View File

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