Files
Omens-Ascent/scenes/ui/enemy_counter_hud.gd

25 lines
631 B
GDScript

class_name EnemyCounterHUD
extends CanvasLayer
@onready var _label: Label = $MarginContainer/Label
var _remaining_enemies: int = 0
func _ready() -> void:
EventBus.enemy_defeated.connect(_on_enemy_defeated)
_count_initial_enemies.call_deferred()
func _count_initial_enemies() -> void:
_remaining_enemies = get_tree().get_nodes_in_group("enemies").size()
_update_label()
func _on_enemy_defeated() -> void:
_remaining_enemies = maxi(_remaining_enemies - 1, 0)
_update_label()
func _update_label() -> void:
if _remaining_enemies <= 0:
visible = false
return
_label.text = "Enemies remaining: %d" % _remaining_enemies