City health is only visible for cities in visible tiles, not explored tiles

This commit is contained in:
Yair Morgenstern 2018-06-11 19:33:28 +03:00
parent 135a502990
commit 4c3231a3fe

View File

@ -44,7 +44,7 @@ class WorldTileGroup(tileInfo: TileInfo) : TileGroup(tileInfo) {
addPopulationIcon() addPopulationIcon()
if (tileInfo.tileMap.gameInfo.getPlayerCivilization().exploredTiles.contains(tileInfo.position) if (tileInfo.tileMap.gameInfo.getPlayerCivilization().exploredTiles.contains(tileInfo.position)
|| viewEntireMapForDebug) updateCityButton(city) // needs to be before the update so the units will be above the city button || viewEntireMapForDebug) updateCityButton(city, isViewable) // needs to be before the update so the units will be above the city button
super.update(isViewable) super.update(isViewable)
@ -53,7 +53,7 @@ class WorldTileGroup(tileInfo: TileInfo) : TileGroup(tileInfo) {
yieldGroup.setStats(tileInfo.getTileStats(UnCivGame.Current.gameInfo.getPlayerCivilization())) yieldGroup.setStats(tileInfo.getTileStats(UnCivGame.Current.gameInfo.getPlayerCivilization()))
} }
private fun updateCityButton(city: CityInfo?) { private fun updateCityButton(city: CityInfo?, viewable: Boolean) {
if(city==null && cityButton!=null)// there used to be a city here but it was razed if(city==null && cityButton!=null)// there used to be a city here but it was razed
{ {
cityButton!!.remove() cityButton!!.remove()
@ -79,6 +79,7 @@ class WorldTileGroup(tileInfo: TileInfo) : TileGroup(tileInfo) {
cityButton!!.run { cityButton!!.run {
clear() clear()
if(viewable) {
val healthBarSize = 100f val healthBarSize = 100f
val healthPercent = city.health / city.getMaxHealth().toFloat() val healthPercent = city.health / city.getMaxHealth().toFloat()
val healthBar = Table() val healthBar = Table()
@ -92,6 +93,8 @@ class WorldTileGroup(tileInfo: TileInfo) : TileGroup(tileInfo) {
healthBar.add(healthPartOfBar).width(healthBarSize * healthPercent).height(5f) healthBar.add(healthPartOfBar).width(healthBarSize * healthPercent).height(5f)
healthBar.add(emptyPartOfBar).width(healthBarSize * (1 - healthPercent)).height(5f) healthBar.add(emptyPartOfBar).width(healthBarSize * (1 - healthPercent)).height(5f)
add(healthBar).colspan(2).row() add(healthBar).colspan(2).row()
}
if(city.isCapital()){ if(city.isCapital()){
val starImage = Image(ImageGetter.getDrawable("OtherIcons/Star.png").tint(Color.LIGHT_GRAY)) val starImage = Image(ImageGetter.getDrawable("OtherIcons/Star.png").tint(Color.LIGHT_GRAY))
add(starImage).size(20f).padLeft(10f) add(starImage).size(20f).padLeft(10f)