feat: Implement buying tux upgrades

This commit is contained in:
Dusk 2026-03-05 18:52:18 +01:00
parent 23ff7358b4
commit 9950aa5b41
3 changed files with 69 additions and 4 deletions

22
shop.gd
View File

@ -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!!!!"

View File

@ -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"]

View File

@ -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")