mirror of
https://github.com/yairm210/Unciv.git
synced 2025-03-10 04:43:29 +07:00
"Street fighter" style of health bars
This commit is contained in:
parent
b6215690b7
commit
1f0fd6ab1f
@ -230,8 +230,8 @@ class BattleTable(val worldScreen: WorldScreen): Table() {
|
||||
}
|
||||
add(defeatedText.toLabel())
|
||||
} else {
|
||||
add(getHealthBar(attacker.getHealth(), attacker.getMaxHealth(), maxDamageToAttacker, minDamageToAttacker))
|
||||
add(getHealthBar(defender.getHealth(), defender.getMaxHealth(), maxDamageToDefender, minDamageToDefender)).row()
|
||||
add(getHealthBar(attacker.getHealth(), attacker.getMaxHealth(), maxDamageToAttacker, minDamageToAttacker, true))
|
||||
add(getHealthBar(defender.getHealth(), defender.getMaxHealth(), maxDamageToDefender, minDamageToDefender, false)).row()
|
||||
|
||||
val attackerHealth = attacker.getHealth()
|
||||
val minRemainingLifeAttacker = max(attackerHealth-maxDamageToAttacker, 0)
|
||||
@ -393,8 +393,8 @@ class BattleTable(val worldScreen: WorldScreen): Table() {
|
||||
row().pad(2f)
|
||||
}
|
||||
|
||||
add(getHealthBar(attacker.getHealth(), attacker.getMaxHealth(), 0,0))
|
||||
add(getHealthBar(attacker.getMaxHealth(), attacker.getMaxHealth(), 0,0))
|
||||
add(getHealthBar(attacker.getHealth(), attacker.getMaxHealth(), 0,0, true))
|
||||
add(getHealthBar(attacker.getMaxHealth(), attacker.getMaxHealth(), 0,0, false))
|
||||
row().pad(5f)
|
||||
|
||||
val attackButton = "Air Sweep".toTextButton().apply { color = Color.RED }
|
||||
|
@ -63,14 +63,13 @@ object BattleTableHelpers {
|
||||
))
|
||||
}
|
||||
|
||||
fun getHealthBar(currentHealth: Int, maxHealth: Int, maxDamage: Int, minDamage: Int): Table {
|
||||
fun getHealthBar(currentHealth: Int, maxHealth: Int, maxDamage: Int, minDamage: Int, leftToRight:Boolean): Table {
|
||||
val healthBar = Table()
|
||||
val totalWidth = 100f
|
||||
fun addHealthToBar(image: Image, amount:Int) {
|
||||
val width = totalWidth * amount / maxHealth
|
||||
healthBar.add(image).size(width.coerceIn(0f, totalWidth),3f)
|
||||
}
|
||||
addHealthToBar(ImageGetter.getDot(Color.BLACK), maxHealth - currentHealth)
|
||||
|
||||
val damagedHealth = ImageGetter.getDot(Color.FIREBRICK)
|
||||
if (UncivGame.Current.settings.continuousRendering) {
|
||||
@ -79,15 +78,24 @@ object BattleTableHelpers {
|
||||
Actions.color(Color.BLACK, 0.7f),
|
||||
Actions.color(Color.FIREBRICK, 0.7f)
|
||||
))) }
|
||||
addHealthToBar(damagedHealth, maxDamage - minDamage)
|
||||
|
||||
val maybeDamagedHealth = ImageGetter.getDot(Color.ORANGE)
|
||||
addHealthToBar(maybeDamagedHealth, minDamage)
|
||||
|
||||
val remainingHealth = currentHealth - minDamage
|
||||
val remainingHealthDot = ImageGetter.getWhiteDot()
|
||||
remainingHealthDot.color = Color.GREEN
|
||||
addHealthToBar(remainingHealthDot ,remainingHealth)
|
||||
|
||||
if (leftToRight) {
|
||||
addHealthToBar(ImageGetter.getDot(Color.BLACK), maxHealth - currentHealth)
|
||||
addHealthToBar(damagedHealth, maxDamage - minDamage)
|
||||
addHealthToBar(maybeDamagedHealth, minDamage)
|
||||
addHealthToBar(remainingHealthDot, remainingHealth)
|
||||
} else {
|
||||
addHealthToBar(remainingHealthDot, remainingHealth)
|
||||
addHealthToBar(maybeDamagedHealth, minDamage)
|
||||
addHealthToBar(damagedHealth, maxDamage - minDamage)
|
||||
addHealthToBar(ImageGetter.getDot(Color.BLACK), maxHealth - currentHealth)
|
||||
}
|
||||
|
||||
healthBar.pack()
|
||||
return healthBar
|
||||
|
Loading…
Reference in New Issue
Block a user