Resolved #8368 - Different colors for 'definite damage' and 'possible damage'

This commit is contained in:
Yair Morgenstern 2023-01-14 20:04:11 +02:00
parent 15d8ed8f74
commit b6215690b7
2 changed files with 11 additions and 12 deletions

View File

@ -230,8 +230,8 @@ class BattleTable(val worldScreen: WorldScreen): Table() {
}
add(defeatedText.toLabel())
} else {
add(getHealthBar(attacker.getHealth(), attacker.getMaxHealth(), expectedDamageToAttackerForHealthbar))
add(getHealthBar(defender.getHealth(), defender.getMaxHealth(), expectedDamageToDefenderForHealthbar)).row()
add(getHealthBar(attacker.getHealth(), attacker.getMaxHealth(), maxDamageToAttacker, minDamageToAttacker))
add(getHealthBar(defender.getHealth(), defender.getMaxHealth(), maxDamageToDefender, minDamageToDefender)).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))
add(getHealthBar(attacker.getMaxHealth(), attacker.getMaxHealth(), 0))
add(getHealthBar(attacker.getHealth(), attacker.getMaxHealth(), 0,0))
add(getHealthBar(attacker.getMaxHealth(), attacker.getMaxHealth(), 0,0))
row().pad(5f)
val attackButton = "Air Sweep".toTextButton().apply { color = Color.RED }

View File

@ -63,7 +63,7 @@ object BattleTableHelpers {
))
}
fun getHealthBar(currentHealth: Int, maxHealth: Int, expectedDamage: Int): Table {
fun getHealthBar(currentHealth: Int, maxHealth: Int, maxDamage: Int, minDamage: Int): Table {
val healthBar = Table()
val totalWidth = 100f
fun addHealthToBar(image: Image, amount:Int) {
@ -79,15 +79,14 @@ object BattleTableHelpers {
Actions.color(Color.BLACK, 0.7f),
Actions.color(Color.FIREBRICK, 0.7f)
))) }
addHealthToBar(damagedHealth,expectedDamage)
addHealthToBar(damagedHealth, maxDamage - minDamage)
val remainingHealth = currentHealth - expectedDamage
val maybeDamagedHealth = ImageGetter.getDot(Color.ORANGE)
addHealthToBar(maybeDamagedHealth, minDamage)
val remainingHealth = currentHealth - minDamage
val remainingHealthDot = ImageGetter.getWhiteDot()
remainingHealthDot.color = when {
remainingHealth / maxHealth.toFloat() > 2 / 3f -> Color.GREEN
remainingHealth / maxHealth.toFloat() > 1 / 3f -> Color.ORANGE
else -> Color.RED
}
remainingHealthDot.color = Color.GREEN
addHealthToBar(remainingHealthDot ,remainingHealth)
healthBar.pack()