2025-12-22 09:04:22 -05:00
|
|
|
class_name HUD extends Control
|
|
|
|
|
|
|
|
|
|
@onready var trap_display : TrapDisplay = %TrapDisplay
|
2025-12-29 15:03:05 -05:00
|
|
|
@onready var p1_healthbar : HealthBar = %P1HealthBar
|
2026-01-01 07:36:54 -05:00
|
|
|
@onready var control_display : ControlDisplay = %ControlDisplay
|
|
|
|
|
@onready var ammo_label : Label = %AmmoLabel
|
2025-12-22 09:04:22 -05:00
|
|
|
func _ready() -> void:
|
|
|
|
|
Game.hud = self
|
|
|
|
|
|
|
|
|
|
func register_player(player : Player) -> void:
|
2025-12-29 15:03:05 -05:00
|
|
|
player.health_changed.connect(p1_healthbar._on_health_changed)
|
2026-01-01 07:36:54 -05:00
|
|
|
player.poison_status_changed.connect(p1_healthbar._on_poison_status_changed)
|
2025-12-22 09:04:22 -05:00
|
|
|
trap_display._on_trap_list_changed(player.data.traps, player.data.active_trap)
|
|
|
|
|
player.trap_cycled.connect(trap_display._on_trap_cycled)
|
|
|
|
|
player.trap_quantity_changed.connect(trap_display._on_trap_quantity_changed)
|
|
|
|
|
player.trap_list_changed.connect(trap_display._on_trap_list_changed)
|
2026-01-01 07:36:54 -05:00
|
|
|
player.combat_target_changed.connect(control_display._on_melee_range_changed)
|
|
|
|
|
player.ammo_changed.connect(_on_ammo_changed)
|
|
|
|
|
set_ammo(player.ammo)
|
|
|
|
|
|
|
|
|
|
func set_ammo(ammo : int) -> void:
|
|
|
|
|
ammo_label.text = str(ammo)
|
|
|
|
|
ammo_label.modulate = Color.DIM_GRAY if ammo == 0 else Color.WHITE
|
|
|
|
|
|
|
|
|
|
func _on_ammo_changed(current : int, max : int) -> void:
|
|
|
|
|
set_ammo(current)
|
|
|
|
|
|