Files
slopvivors/scenes/damage_numbers.gd

31 lines
914 B
GDScript

extends Node2D
@export var damage_taken: float
@export var player_damage: bool = true
@export var critical_damage: bool = false
@onready var animation_player: AnimationPlayer = $Control/AnimationPlayer
@onready var label: Label = $Control/Label
const COLOR_CRIT = Color.GOLD
const COLOR_REGULAR = Color.WHITE
const COLOR_PLAYER = Color.CRIMSON
const COLOR_HEAL = Color.CHARTREUSE
func _ready() -> void:
if !player_damage:
label.add_theme_color_override("font_color", COLOR_PLAYER)
if critical_damage:
label.add_theme_color_override("font_color", COLOR_CRIT)
if damage_taken < 0:
label.add_theme_color_override("font_color", COLOR_HEAL)
label.add_theme_font_size_override("font_size", 8)
label.text = "%0.0f" % absf(damage_taken)
animation_player.play("normal_damage")
animation_player.animation_finished.connect(_on_animation_finished)
func _on_animation_finished(_name: String):
queue_free()