Non-idle units are faded out, to show they can't move this turn

This commit is contained in:
Yair Morgenstern 2018-03-23 11:01:23 +03:00
parent 96c217fec8
commit 4e7d1bfaec
2 changed files with 45 additions and 39 deletions

View File

@ -15,7 +15,6 @@ open class TileGroup(var tileInfo: TileInfo) : Group() {
protected var terrainFeatureImage:Image?=null protected var terrainFeatureImage:Image?=null
protected var resourceImage: Image? = null protected var resourceImage: Image? = null
protected var unitImage: Group? = null
protected var improvementImage: Image? =null protected var improvementImage: Image? =null
private var improvementType: String? = null private var improvementType: String? = null
var populationImage: Image? = null var populationImage: Image? = null
@ -87,26 +86,6 @@ open class TileGroup(var tileInfo: TileInfo) : Group() {
addActor(resourceImage!!) addActor(resourceImage!!)
} }
if (tileInfo.unit != null && unitImage == null) {
val unit = tileInfo.unit!!
unitImage = getUnitImage(unit.name!!, unit.civInfo.getCivilization().getColor())
addActor(unitImage!!)
unitImage!!.setSize(20f, 20f)
unitImage!!.setPosition(width/2 - unitImage!!.width/2,
height/2 - unitImage!!.height/2 +20) // top
}
if (tileInfo.unit == null && unitImage != null) {
unitImage!!.remove()
unitImage = null
}
if (unitImage != null) {
if (!tileInfo.hasIdleUnit())
unitImage!!.color = Color.GRAY
else
unitImage!!.color = Color.WHITE
}
if (tileInfo.improvement != null && tileInfo.improvement != improvementType) { if (tileInfo.improvement != null && tileInfo.improvement != improvementType) {
@ -186,21 +165,5 @@ open class TileGroup(var tileInfo: TileInfo) : Group() {
} }
private fun getUnitImage(unitType:String, color:Color): Group {
val unitBaseImage = ImageGetter.getImage("UnitIcons/$unitType.png")
.apply { setSize(15f,15f) }
val background = ImageGetter.getImage("UnitIcons/Circle.png").apply {
this.color = color
setSize(20f,20f)
}
val group = Group().apply {
setSize(background.width,background.height)
addActor(background)
}
unitBaseImage.setPosition(group.width/2-unitBaseImage.width/2,
group.height/2-unitBaseImage.height/2)
group.addActor(unitBaseImage)
return group
}
} }

View File

@ -1,15 +1,19 @@
package com.unciv.ui.tilegroups package com.unciv.ui.tilegroups
import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.scenes.scene2d.Group
import com.badlogic.gdx.scenes.scene2d.ui.TextButton import com.badlogic.gdx.scenes.scene2d.ui.TextButton
import com.unciv.logic.map.TileInfo import com.unciv.logic.map.TileInfo
import com.unciv.ui.cityscreen.CityScreen import com.unciv.ui.cityscreen.CityScreen
import com.unciv.ui.cityscreen.addClickListener import com.unciv.ui.cityscreen.addClickListener
import com.unciv.ui.utils.CameraStageBaseScreen import com.unciv.ui.utils.CameraStageBaseScreen
import com.unciv.ui.utils.ImageGetter
import com.unciv.ui.worldscreen.WorldScreen import com.unciv.ui.worldscreen.WorldScreen
class WorldTileGroup(tileInfo: TileInfo) : TileGroup(tileInfo) { class WorldTileGroup(tileInfo: TileInfo) : TileGroup(tileInfo) {
var cityButton: TextButton? = null private var cityButton: TextButton? = null
private var unitImage: Group? = null
fun setIsViewable(isViewable: Boolean) { fun setIsViewable(isViewable: Boolean) {
if (isViewable) { if (isViewable) {
@ -20,7 +24,6 @@ class WorldTileGroup(tileInfo: TileInfo) : TileGroup(tileInfo) {
setColor(0f, 0f, 0f, 0.6f) setColor(0f, 0f, 0f, 0.6f)
} }
fun update(worldScreen: WorldScreen) { fun update(worldScreen: WorldScreen) {
super.update() super.update()
@ -51,5 +54,45 @@ class WorldTileGroup(tileInfo: TileInfo) : TileGroup(tileInfo) {
cityButton!!.zIndex = cityButton!!.parent.children.size // so city button is rendered over everything else in this tile cityButton!!.zIndex = cityButton!!.parent.children.size // so city button is rendered over everything else in this tile
} }
if (tileInfo.unit != null && unitImage == null) {
val unit = tileInfo.unit!!
unitImage = getUnitImage(unit.name!!, unit.civInfo.getCivilization().getColor())
addActor(unitImage!!)
unitImage!!.setSize(20f, 20f)
unitImage!!.setPosition(width/2 - unitImage!!.width/2,
height/2 - unitImage!!.height/2 +20) // top
}
if (tileInfo.unit == null && unitImage != null) {
unitImage!!.remove()
unitImage = null
}
if (unitImage != null) {
if (!tileInfo.hasIdleUnit())
unitImage!!.color = Color(1f,1f,1f,0.5f)
else
unitImage!!.color = Color.WHITE
}
}
private fun getUnitImage(unitType:String, color:Color): Group {
val unitBaseImage = ImageGetter.getImage("UnitIcons/$unitType.png")
.apply { setSize(15f,15f) }
val background = ImageGetter.getImage("UnitIcons/Circle.png").apply {
this.color = color
setSize(20f,20f)
}
val group = Group().apply {
setSize(background.width,background.height)
addActor(background)
}
unitBaseImage.setPosition(group.width/2-unitBaseImage.width/2,
group.height/2-unitBaseImage.height/2)
group.addActor(unitBaseImage)
return group
} }
} }