Differentiated attackable from visible tiles per Civ V

This commit is contained in:
Yair Morgenstern
2023-01-15 11:19:32 +02:00
parent 31acb7e469
commit 864145acbb
3 changed files with 38 additions and 3 deletions

View File

@ -186,6 +186,18 @@ class VisibilityTests {
assert(viewableTiles.contains(beyondSight))
}
@Test
fun canSeeElevation3TilesEvenWithInvisibleIntermediate() {
val source = addTile("Grassland", Vector2(0f,0f))
addTile(listOf("Grassland", "Hill"), Vector2(1f,0f))
val intermediate = addTile(listOf("Grassland", "Hill"), Vector2(2f,0f))
val beyondSight = addTile(listOf("Grassland", "Hill", "Forest"), Vector2(3f,0f))
val viewableTiles = source.getViewableTilesList(2)
assert(viewableTiles.contains(beyondSight))
assert(!viewableTiles.contains(intermediate))
}
@Test
fun cannotSeeHiddenElevation3Tiles() {
val source = addTile("Grassland", Vector2(0f,0f))
@ -197,4 +209,26 @@ class VisibilityTests {
assert(!viewableTiles.contains(beyondSight))
}
@Test
fun canSeeButNotAttackHillForestOverHill() {
val grassland = addTile("Grassland", Vector2(0f,0f))
addTile(listOf("Grassland", "Hill"), Vector2(1f,0f))
val hillForest = addTile(listOf("Grassland", "Hill", "Forest"), Vector2(2f, 0f))
val viewableTiles = grassland.getViewableTilesList(2)
assert(viewableTiles.contains(hillForest))
val attackableTiles = tileMap.getViewableTiles(grassland.position, 2, true)
assert(!attackableTiles.contains(hillForest))
}
@Test
fun canSeeAndAttackMountainOverHill() {
val grassland = addTile("Grassland", Vector2(0f,0f))
addTile(listOf("Grassland", "Hill"), Vector2(1f,0f))
val mountain = addTile(listOf("Mountain"), Vector2(2f, 0f))
val viewableTiles = grassland.getViewableTilesList(2)
assert(viewableTiles.contains(mountain))
val attackableTiles = tileMap.getViewableTiles(grassland.position, 2, true)
assert(attackableTiles.contains(mountain))
}
}