48 lines
2.0 KiB
GDScript
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
|