Files
Dawn-Godot/battle/ui/DamageLabel.gd
2026-01-11 20:08:44 -06:00

41 lines
773 B
GDScript

class_name DamageLabel extends Label3D
@export var timer:Timer
@export var speed:Vector3 = Vector3(0, 1, 0)
func onTimeout() -> void:
self.visible = false
queue_free()
print("Damage label removed")
func _process(delta: float) -> void:
self.position += speed * delta
func showDamage(
parent:Node3D,
amount:int,
isCritical:bool
) -> void:
if amount == 0:
return
text = str(amount)
if amount > 0:
# Healing
modulate = Color.GREEN
outline_modulate = Color.TRANSPARENT
elif isCritical:
# Crit
modulate = Color.RED
outline_modulate = Color.BLACK
else:
# DMG
modulate = Color.RED
outline_modulate = Color.TRANSPARENT
parent.add_child(self)
self.position = Vector3.ZERO
timer.timeout.connect(onTimeout)