Files
rgb/scripts/hud.gd
2024-02-24 08:36:06 -06:00

48 lines
2.0 KiB
GDScript

extends CanvasLayer
class_name HUD
@onready var progress_bar_red: ProgressBar = $PanelContainer/MarginContainer/VBoxContainer/HBoxContainer/PanelContainerRed/ProgressBar
@onready var progress_bar_green: ProgressBar = $PanelContainer/MarginContainer/VBoxContainer/HBoxContainer/PanelContainerGreen/ProgressBar
@onready var progress_bar_blue: ProgressBar = $PanelContainer/MarginContainer/VBoxContainer/HBoxContainer/PanelContainerBlue/ProgressBar
@onready var texture_rect: TextureRect = $PanelContainer/MarginContainer/VBoxContainer/TextureRect
@onready var lives_container: GridContainer = $PanelContainer/MarginContainer/VBoxContainer/LivesContainer
@onready var entity_count_label: Label = $EntityCountContainer/MarginContainer/EntityCountLabel
@onready var rocket_spawned_toast: PanelContainer = $RocketSpawnedToast
@onready var alliance_texture: TextureRect = $PanelContainer/MarginContainer/VBoxContainer/AllianceContainer/MarginContainer/AllianceTexture
const HEART = preload("res://assets/heart.png")
func _on_player_color_changed(color: Color) -> void:
progress_bar_red.value = color.r
progress_bar_green.value = color.g
progress_bar_blue.value = color.b
texture_rect.modulate = color
func _on_player_lives_changed(lives: int) -> void:
var heart_containers = lives_container.get_children()
if heart_containers.size() < lives:
var life = TextureRect.new()
life.texture = HEART
lives_container.add_child(life)
elif heart_containers.size() > lives:
heart_containers.pop_back().queue_free()
func update_entity_count(count: int):
entity_count_label.text = "Entity Count: %s" % count
func rocket_placed() -> void:
rocket_spawned_toast.show()
rocket_spawned_toast.get_node("Timer").start()
func _on_timer_timeout() -> void:
rocket_spawned_toast.hide()
func set_alliance(alliance: Buff.colors) -> void:
match alliance:
Buff.colors.RED:
alliance_texture.modulate = Color.RED
Buff.colors.GREEN:
alliance_texture.modulate = Color.GREEN
Buff.colors.BLUE:
alliance_texture.modulate = Color.BLUE