From 9950aa5b41097251112100d61cf0a5c26485976e Mon Sep 17 00:00:00 2001 From: Dusk Date: Thu, 5 Mar 2026 18:52:18 +0100 Subject: [PATCH] feat: Implement buying tux upgrades --- shop.gd | 22 +++++++++++++++++++++- shop.tscn | 45 +++++++++++++++++++++++++++++++++++++++++++++ stamina.gd | 6 +++--- 3 files changed, 69 insertions(+), 4 deletions(-) diff --git a/shop.gd b/shop.gd index 0f7d44a..7ef4909 100644 --- a/shop.gd +++ b/shop.gd @@ -1,11 +1,21 @@ extends Control var upgrade_node: Node +var available_money: int = 1000 + +func _process(delta: float) -> void: + $Money.text = str(available_money) # Called when the node enters the scene tree for the first time. func populate() -> void: + $TuxUpgrades.clear() for upgrade in upgrade_node.get_children(): - $TuxUpgrades.add_item(upgrade.upgrade_name, upgrade.icon) + var index = $TuxUpgrades.add_item(upgrade.upgrade_description, upgrade.icon) + $TuxUpgrades.set_item_metadata(index, upgrade) + if upgrade.enabled: + $TuxUpgrades.set_item_disabled(index, true) + + func _on_tux_mouse_entered() -> void: @@ -14,3 +24,13 @@ func _on_tux_mouse_entered() -> void: func _on_tux_mouse_exited() -> void: $Tux.modulate = Color(1, 1, 1) + + +func _on_tux_upgrades_item_clicked(index: int, at_position: Vector2, mouse_button_index: int) -> void: + var upgrade = $TuxUpgrades.get_item_metadata(index) + if upgrade.cost <= available_money: + upgrade.enabled = true; + available_money -= upgrade.cost + populate() + else: + $Error.text = "No tens prou Diners!!!!" diff --git a/shop.tscn b/shop.tscn index 512b22e..ac25e6b 100644 --- a/shop.tscn +++ b/shop.tscn @@ -77,5 +77,50 @@ grow_horizontal = 2 grow_vertical = 2 fixed_icon_size = Vector2i(100, 100) +[node name="Diners" type="Label" parent="." unique_id=1267923551] +layout_mode = 0 +offset_left = 161.0 +offset_top = 3.0 +offset_right = 212.0 +offset_bottom = 26.0 +text = "Diners:" + +[node name="Money" type="Label" parent="." unique_id=234629460] +layout_mode = 0 +offset_left = 223.0 +offset_top = 4.0 +offset_right = 263.0 +offset_bottom = 27.0 +text = "0" + +[node name="Description" type="Label" parent="." unique_id=1324515689] +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -134.0 +offset_top = 352.0 +offset_right = 185.0 +offset_bottom = 409.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="Error" type="Label" parent="." unique_id=2072947215] +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -136.0 +offset_top = -309.0 +offset_right = 132.0 +offset_bottom = -270.0 +grow_horizontal = 2 +grow_vertical = 2 + [connection signal="mouse_entered" from="Tux" to="." method="_on_tux_mouse_entered"] [connection signal="mouse_exited" from="Tux" to="." method="_on_tux_mouse_exited"] +[connection signal="item_clicked" from="TuxUpgrades" to="." method="_on_tux_upgrades_item_clicked"] diff --git a/stamina.gd b/stamina.gd index aa6ab67..b20cb6a 100644 --- a/stamina.gd +++ b/stamina.gd @@ -1,9 +1,9 @@ extends Node -var enabled: bool = true - +var enabled: bool = false +var cost: int = 1000 var upgrade_name: String = "Energia" -var upgrade_Description: String = "Multiplicar energia per 2" +var upgrade_description: String = "Multiplicar energia per 2" var icon: Texture2D = preload("res://assets/Images/tren.jpg")