43 lines
1.0 KiB
GDScript
43 lines
1.0 KiB
GDScript
extends Control
|
|
|
|
var upgrade_node: Node
|
|
var available_money: int = 30
|
|
|
|
signal shop_exit
|
|
|
|
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():
|
|
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:
|
|
$Tux.modulate = Color(0.5, 0.5, 0.6)
|
|
|
|
|
|
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!!!!"
|
|
|
|
|
|
func _on_button_pressed() -> void:
|
|
shop_exit.emit()
|