diff --git a/apps/gamejam/brackeys/13/scenes/game.tscn b/apps/gamejam/brackeys/13/scenes/game.tscn index a3ba0dd94..203df8e97 100644 --- a/apps/gamejam/brackeys/13/scenes/game.tscn +++ b/apps/gamejam/brackeys/13/scenes/game.tscn @@ -56,6 +56,21 @@ theme_override_styles/panel = SubResource("StyleBoxFlat_4vpul") layout_mode = 2 alignment = 1 +[node name="Stone" type="Label" parent="CanvasLayer/UI/HUD/Panel/Menu"] +layout_mode = 2 + +[node name="Metal" type="Label" parent="CanvasLayer/UI/HUD/Panel/Menu"] +layout_mode = 2 + +[node name="Gems" type="Label" parent="CanvasLayer/UI/HUD/Panel/Menu"] +layout_mode = 2 + +[node name="Gold" type="Label" parent="CanvasLayer/UI/HUD/Panel/Menu"] +layout_mode = 2 + +[node name="StarshipName" type="Label" parent="CanvasLayer/UI/HUD/Panel/Menu"] +layout_mode = 2 + [node name="Label" type="Label" parent="CanvasLayer/UI/HUD/Panel/Menu"] layout_mode = 2 diff --git a/apps/gamejam/brackeys/13/scripts/global.gd b/apps/gamejam/brackeys/13/scripts/global.gd index 167f939e3..2902c67bd 100644 --- a/apps/gamejam/brackeys/13/scripts/global.gd +++ b/apps/gamejam/brackeys/13/scripts/global.gd @@ -8,6 +8,8 @@ signal starship_data_changed(data_name, new_value) signal environment_data_changed(data_name, new_value) signal notification_received(message_id: String, message: String, type: String) +@export var resources_list: Array[String] = ["gold", "stone", "metal", "gems"] + var environment_data := { "asteroids": 10, "asteroid_speed": 200, @@ -27,7 +29,7 @@ var base_starship_stats := { "rotation_speed": 270.0, "laser_speed": 550.0, "overheat": 0.0, - "laser_ammo": 25.0, + "laser_ammo": 10.0, } var starship_bonuses := { diff --git a/apps/gamejam/brackeys/13/scripts/hud.gd b/apps/gamejam/brackeys/13/scripts/hud.gd index a1d4176a6..4606717fd 100644 --- a/apps/gamejam/brackeys/13/scripts/hud.gd +++ b/apps/gamejam/brackeys/13/scripts/hud.gd @@ -1,11 +1,49 @@ extends Control +@onready var score_label = $Panel/Menu/Label +@onready var name_label = $Panel/Menu/StarshipName +@onready var stone_label = $Panel/Menu/Stone +@onready var metal_label = $Panel/Menu/Metal +@onready var gems_label = $Panel/Menu/Gems +@onready var gold_label = $Panel/Menu/Gold -# Called when the node enters the scene tree for the first time. -func _ready() -> void: - pass # Replace with function body. +var resource_labels = {} +func _ready(): + resource_labels = { + "gold": gold_label, + "stone": stone_label, + "metal": metal_label, + "gems": gems_label + } + + call_deferred("_update_starship_name") + call_deferred("_update_starship_resources") + Global.connect("resource_changed", Callable(self, "_on_resource_changed")) + update_score(0) -# Called every frame. 'delta' is the elapsed time since the previous frame. -func _process(delta: float) -> void: - pass +func update_score(new_score): + if score_label: + score_label.text = "Score: %d" % new_score + else: + push_warning("Score label not found!") + +func _update_starship_resources(): + for resource in Global.resources_list: + var amount = Global.get_resource(resource) + if resource_labels.has(resource) and resource_labels[resource]: + resource_labels[resource].text = "%s: %d" % [resource.capitalize(), amount] + +func _on_resource_changed(resource_name: String, new_value: int): + if resource_labels.has(resource_name) and resource_labels[resource_name]: + resource_labels[resource_name].text = "%s: %d" % [resource_name.capitalize(), new_value] + +func _update_starship_name(): + var starship_name = Global.get_starship_data("name") + if name_label: + if starship_name: + name_label.text = "Starship: " + starship_name + else: + name_label.text = "Starship: Unknown" + else: + push_warning("Starship name label not found!") diff --git a/apps/gamejam/brackeys/13/scripts/laser.gd b/apps/gamejam/brackeys/13/scripts/laser.gd index 5aaff5408..5adce495d 100644 --- a/apps/gamejam/brackeys/13/scripts/laser.gd +++ b/apps/gamejam/brackeys/13/scripts/laser.gd @@ -18,6 +18,7 @@ func _on_area_entered(area): var asteroid = area asteroid.destroy() Global.emit_signal("notification_received", "asteroid_hit", "Asteroid was destoried!", "success") + Global.earn_resource("stone", 10) visible = false if get_parent(): get_parent()._on_laser_exited(self) diff --git a/apps/gamejam/brackeys/13/scripts/projectiles.gd b/apps/gamejam/brackeys/13/scripts/projectiles.gd index 638b54224..bf7a0f6c5 100644 --- a/apps/gamejam/brackeys/13/scripts/projectiles.gd +++ b/apps/gamejam/brackeys/13/scripts/projectiles.gd @@ -1,7 +1,7 @@ extends Node const LASER_SCENE = preload("res://scenes/laser.tscn") -@onready var tm = get_parent().get_node("ToastManager") +# @onready var tm = get_parent().get_node("ToastManager") # Shift these to the Q crate later on. var laser_pool: Array = [] var active_lasers: Array = [] @@ -42,7 +42,7 @@ func dynamic_pool_adjustment(): laser.set_deferred("visible", false) laser_pool.append(laser) add_child(laser) - emit_signal("notification_received","laser_upgrade", "Laser Upgraded", "info") + Global.emit_signal("notification_received","laser_upgrade", "Laser Upgraded", "info") print("Laser pool increased to:", desired_pool_size) elif desired_pool_size < current_pool_size: @@ -51,5 +51,5 @@ func dynamic_pool_adjustment(): if laser_pool.size() > 0: var laser = laser_pool.pop_back() laser.queue_free() - emit_signal("notification_received","laser_downgrade", "Laser Downgraded", "warning") + Global.emit_signal("notification_received","laser_downgrade", "Laser Downgraded", "warning") print("Laser pool decreased to:", desired_pool_size)