mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-23 03:23:17 -04:00
Added fog on non-viewable tiles
This commit is contained in:
parent
1b2fa7317e
commit
03d452fd42
BIN
android/assets/TerrainIcons/Fog.png
Normal file
BIN
android/assets/TerrainIcons/Fog.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 54 KiB |
@ -30,12 +30,14 @@ open class TileGroup(var tileInfo: TileInfo) : Group() {
|
|||||||
private val borderImages = ArrayList<Image>()
|
private val borderImages = ArrayList<Image>()
|
||||||
protected var unitImage: Group? = null
|
protected var unitImage: Group? = null
|
||||||
private val circleImage = ImageGetter.getImage("UnitIcons/Circle.png") // for blue and red circles on the tile
|
private val circleImage = ImageGetter.getImage("UnitIcons/Circle.png") // for blue and red circles on the tile
|
||||||
|
private val fogImage = ImageGetter.getImage("TerrainIcons/Fog.png")
|
||||||
|
|
||||||
init {
|
init {
|
||||||
val groupSize = 50f
|
val groupSize = 50f
|
||||||
this.setSize(groupSize,groupSize)
|
this.setSize(groupSize,groupSize)
|
||||||
addHexagon(groupSize)
|
addHexagon(groupSize)
|
||||||
addCircleImage()
|
addCircleImage()
|
||||||
|
addFogImage()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun addCircleImage() {
|
private fun addCircleImage() {
|
||||||
@ -46,6 +48,14 @@ open class TileGroup(var tileInfo: TileInfo) : Group() {
|
|||||||
circleImage.isVisible = false
|
circleImage.isVisible = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun addFogImage(){
|
||||||
|
fogImage.width=70f
|
||||||
|
fogImage.height=70f
|
||||||
|
fogImage.center(this)
|
||||||
|
fogImage.color= Color.WHITE.cpy().apply { a=0.5f }
|
||||||
|
addActor(fogImage)
|
||||||
|
}
|
||||||
|
|
||||||
private fun addHexagon(groupSize: Float) {
|
private fun addHexagon(groupSize: Float) {
|
||||||
val imageScale = groupSize * 1.5f / hexagon.width
|
val imageScale = groupSize * 1.5f / hexagon.width
|
||||||
hexagon.setScale(imageScale)
|
hexagon.setScale(imageScale)
|
||||||
@ -81,11 +91,15 @@ open class TileGroup(var tileInfo: TileInfo) : Group() {
|
|||||||
|
|
||||||
updateTerrainFeatureImage()
|
updateTerrainFeatureImage()
|
||||||
updateTileColor(isViewable)
|
updateTileColor(isViewable)
|
||||||
updateResourceImage()
|
|
||||||
updateImprovementImage()
|
updateResourceImage(isViewable)
|
||||||
|
updateImprovementImage(isViewable)
|
||||||
|
|
||||||
updateRoadImages()
|
updateRoadImages()
|
||||||
updateBorderImages()
|
updateBorderImages()
|
||||||
|
|
||||||
|
fogImage.toFront()
|
||||||
|
fogImage.isVisible=!isViewable
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun updateBorderImages() {
|
private fun updateBorderImages() {
|
||||||
@ -95,7 +109,6 @@ open class TileGroup(var tileInfo: TileInfo) : Group() {
|
|||||||
if (tileInfo.getOwner() != null) {
|
if (tileInfo.getOwner() != null) {
|
||||||
for (neighbor in tileInfo.neighbors.filter { it.getOwner() != tileInfo.getOwner() }) {
|
for (neighbor in tileInfo.neighbors.filter { it.getOwner() != tileInfo.getOwner() }) {
|
||||||
|
|
||||||
|
|
||||||
val relativeHexPosition = tileInfo.position.cpy().sub(neighbor.position)
|
val relativeHexPosition = tileInfo.position.cpy().sub(neighbor.position)
|
||||||
val relativeWorldPosition = HexMath.Hex2WorldCoords(relativeHexPosition)
|
val relativeWorldPosition = HexMath.Hex2WorldCoords(relativeHexPosition)
|
||||||
|
|
||||||
@ -181,7 +194,7 @@ open class TileGroup(var tileInfo: TileInfo) : Group() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun updateImprovementImage() {
|
private fun updateImprovementImage(viewable: Boolean) {
|
||||||
if (tileInfo.improvement != null && tileInfo.improvement != improvementType) {
|
if (tileInfo.improvement != null && tileInfo.improvement != improvementType) {
|
||||||
improvementImage = ImageGetter.getImage("ImprovementIcons/" + tileInfo.improvement!!.replace(' ', '_') + "_(Civ5).png")
|
improvementImage = ImageGetter.getImage("ImprovementIcons/" + tileInfo.improvement!!.replace(' ', '_') + "_(Civ5).png")
|
||||||
addActor(improvementImage)
|
addActor(improvementImage)
|
||||||
@ -192,9 +205,13 @@ open class TileGroup(var tileInfo: TileInfo) : Group() {
|
|||||||
}
|
}
|
||||||
improvementType = tileInfo.improvement
|
improvementType = tileInfo.improvement
|
||||||
}
|
}
|
||||||
|
if(improvementImage!=null){
|
||||||
|
if(viewable) improvementImage!!.color= Color.WHITE
|
||||||
|
else improvementImage!!.color= Color.WHITE.cpy().apply { a=0.7f }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun updateResourceImage() {
|
private fun updateResourceImage(viewable: Boolean) {
|
||||||
if (tileInfo.hasViewableResource(tileInfo.tileMap.gameInfo.getPlayerCivilization()) && resourceImage == null) { // Need to add the resource image!
|
if (tileInfo.hasViewableResource(tileInfo.tileMap.gameInfo.getPlayerCivilization()) && resourceImage == null) { // Need to add the resource image!
|
||||||
val fileName = "ResourceIcons/" + tileInfo.resource + "_(Civ5).png"
|
val fileName = "ResourceIcons/" + tileInfo.resource + "_(Civ5).png"
|
||||||
resourceImage = ImageGetter.getImage(fileName)
|
resourceImage = ImageGetter.getImage(fileName)
|
||||||
@ -203,6 +220,10 @@ open class TileGroup(var tileInfo: TileInfo) : Group() {
|
|||||||
resourceImage!!.x -= 20 // left
|
resourceImage!!.x -= 20 // left
|
||||||
addActor(resourceImage!!)
|
addActor(resourceImage!!)
|
||||||
}
|
}
|
||||||
|
if(resourceImage!=null){
|
||||||
|
if(viewable) resourceImage!!.color= Color.WHITE
|
||||||
|
else resourceImage!!.color= Color.WHITE.cpy().apply { a=0.7f }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user