game: add simple damage-numbers scene
This commit is contained in:
25
scenes/damage_numbers.gd
Normal file
25
scenes/damage_numbers.gd
Normal file
@@ -0,0 +1,25 @@
|
||||
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
|
||||
|
||||
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)
|
||||
label.add_theme_font_size_override("font_size", 8)
|
||||
label.text = "%0.0f" % damage_taken
|
||||
animation_player.play("normal_damage")
|
||||
animation_player.animation_finished.connect(_on_animation_finished)
|
||||
|
||||
func _on_animation_finished(_name: String):
|
||||
queue_free()
|
Reference in New Issue
Block a user