extends CanvasLayer @onready var health_bar: ProgressBar = $HealthBar @onready var shield_bar: ProgressBar = $ShieldBar @onready var respawn_label: Label = $RespawnTimer @onready var class_icon: Label = $AbilityBar/ClassIcon/Label var player_node: Node = null func _ready() -> void: respawn_label.visible = false EventBus.health_changed.connect(_on_health_changed) EventBus.shield_changed.connect(_on_shield_changed) EventBus.entity_died.connect(_on_entity_died) EventBus.player_respawned.connect(_on_player_respawned) EventBus.class_changed.connect(_on_class_changed) EventBus.respawn_tick.connect(_on_respawn_tick) func _on_health_changed(entity: Node, current: float, max_val: float) -> void: if entity.name == "Player": health_bar.max_value = max_val health_bar.value = current func _on_shield_changed(entity: Node, current: float, max_val: float) -> void: if entity.name == "Player": shield_bar.max_value = max_val shield_bar.value = current func _on_entity_died(entity: Node) -> void: if entity.name == "Player": respawn_label.visible = true func _on_player_respawned(_player: Node) -> void: respawn_label.visible = false func _on_respawn_tick(timer: float) -> void: respawn_label.text = str(ceil(timer)) func _on_class_changed(_player: Node, class_type: int) -> void: match class_type: 0: class_icon.text = "T" 1: class_icon.text = "D" 2: class_icon.text = "H"