feat: Add shop screen (WIP)

This commit is contained in:
Dusk 2026-03-05 18:12:40 +01:00
parent bb564d639e
commit 23ff7358b4
7 changed files with 125 additions and 5 deletions

View File

@ -20,7 +20,10 @@ var is_active: bool = true
func _ready() -> void:
$Upgrades.update()
$Shop.upgrade_node = $Upgrades
$Shop.populate()
$Shop.visible = false
$FailControl.visible = false
$FinishControl.visible = false
is_active = true
@ -91,9 +94,11 @@ func _on_retry_button_pressed():
func _on_continue_button_pressed():
stage_counter += 1
station_reached.emit()
$TimeLimit.start()
$FinishControl.visible = false
$HUD.visible = true
stamina = max_stamina
$Shop.visible = true
#stage_counter += 1
#station_reached.emit()
#$TimeLimit.start()
#$HUD.visible = true
#stamina = max_stamina

View File

@ -1,6 +1,7 @@
[gd_scene format=3 uid="uid://cmb3b7xrlboy3"]
[ext_resource type="Script" uid="uid://bobw4cfg1v6gj" path="res://player.gd" id="1_4flbx"]
[ext_resource type="PackedScene" uid="uid://52hoyqjot1cs" path="res://shop.tscn" id="2_i3pqv"]
[ext_resource type="PackedScene" uid="uid://ct7cc7qg3hpu1" path="res://upgrades.tscn" id="2_onrkg"]
[sub_resource type="PlaneMesh" id="PlaneMesh_sh265"]
@ -46,6 +47,9 @@ debug_color = Color(0.41852123, 0.4635067, 0.996484, 0.41960785)
wait_time = 60.0
one_shot = true
[node name="Shop" parent="." unique_id=632945658 instance=ExtResource("2_i3pqv")]
visible = false
[node name="FinishControl" type="Control" parent="." unique_id=1717901238]
layout_mode = 3
anchors_preset = 15

16
shop.gd Normal file
View File

@ -0,0 +1,16 @@
extends Control
var upgrade_node: Node
# Called when the node enters the scene tree for the first time.
func populate() -> void:
for upgrade in upgrade_node.get_children():
$TuxUpgrades.add_item(upgrade.upgrade_name, upgrade.icon)
func _on_tux_mouse_entered() -> void:
$Tux.modulate = Color(0.5, 0.5, 0.6)
func _on_tux_mouse_exited() -> void:
$Tux.modulate = Color(1, 1, 1)

1
shop.gd.uid Normal file
View File

@ -0,0 +1 @@
uid://bwekjlqnn55ea

81
shop.tscn Normal file
View File

@ -0,0 +1,81 @@
[gd_scene format=3 uid="uid://52hoyqjot1cs"]
[ext_resource type="Script" uid="uid://bwekjlqnn55ea" path="res://shop.gd" id="1_7ae35"]
[ext_resource type="Texture2D" uid="uid://vafsec00vepj" path="res://assets/Images/tren.jpg" id="2_c0ofq"]
[ext_resource type="Texture2D" uid="uid://ci36unhukt8tl" path="res://assets/Images/penguin21.webp" id="2_f511j"]
[node name="Shop" type="Control" unique_id=632945658]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_7ae35")
[node name="TextureRect" type="TextureRect" parent="." unique_id=1400016957]
modulate = Color(0.4156048, 0.3595127, 0.2152954, 1)
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -577.0
offset_top = -432.70294
offset_right = 577.0
offset_bottom = 432.70294
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("2_c0ofq")
expand_mode = 5
[node name="Tux" type="TextureRect" parent="." unique_id=200750690]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -431.0
offset_top = -268.0
offset_right = -87.0
offset_bottom = 43.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("2_f511j")
expand_mode = 3
[node name="TuxText" type="Label" parent="." unique_id=1682412623]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -368.0
offset_top = 25.0
offset_right = -103.0
offset_bottom = 93.0
grow_horizontal = 2
grow_vertical = 2
theme_override_font_sizes/font_size = 40
text = "Tenda de TUX"
[node name="TuxUpgrades" type="ItemList" parent="." unique_id=351105576]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -415.0
offset_top = -295.0
offset_right = -32.0
offset_bottom = 288.0
grow_horizontal = 2
grow_vertical = 2
fixed_icon_size = Vector2i(100, 100)
[connection signal="mouse_entered" from="Tux" to="." method="_on_tux_mouse_entered"]
[connection signal="mouse_exited" from="Tux" to="." method="_on_tux_mouse_exited"]

View File

@ -2,6 +2,11 @@ extends Node
var enabled: bool = true
var upgrade_name: String = "Energia"
var upgrade_Description: String = "Multiplicar energia per 2"
var icon: Texture2D = preload("res://assets/Images/tren.jpg")
# Called every frame. 'delta' is the elapsed time since the previous frame.
func update() -> void:
if enabled:

View File

@ -2,6 +2,8 @@ extends Node
var parent: CharacterBody3D
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
assert(get_parent().name == "Player", "Upgrade must have player as parent")
@ -17,3 +19,9 @@ func update() -> void:
for upgrade in upgrades:
upgrade.update()
func reset():
var upgrades: Array = get_children()
print("Updating all upgrades...")
for upgrade in upgrades:
upgrade.enabled = false