Example damage label

This commit is contained in:
2026-01-11 20:08:44 -06:00
parent 561ab5a983
commit 7defac68c4
11 changed files with 109 additions and 25 deletions

View File

@@ -1,18 +1,25 @@
class_name BattleFighterScene extends Node3D
@export var battlePosition:BattleSingleton.BattlePosition = BattleSingleton.BattlePosition.LEFT_MIDDLE_FRONT
@export var damageLabels:Node3D
@export var damageLabelPreset:PackedScene
var currentFighter:BattleFighter = null
func _getFighter() -> BattleFighter:
return BATTLE.getFighterAtPosition(self.battlePosition)
func _updateFighter() -> void:
var fighter = _getFighter()
if currentFighter != null:
currentFighter.healthChanged.disconnect(onDamageTaken)
if fighter == null:
currentFighter = _getFighter()
if currentFighter == null:
self.visible = false
return
# Set up the visual representation of the fighter here
currentFighter.healthChanged.connect(onDamageTaken)
self.visible = true
func _enter_tree() -> void:
@@ -24,3 +31,7 @@ func _exit_tree() -> void:
func onFightersChanged() -> void:
_updateFighter()
func onDamageTaken(amount:int, crit:bool) -> void:
var damageLabel = damageLabelPreset.instantiate() as Label3D
damageLabel.showDamage(damageLabels, amount, crit)