44 lines
1.4 KiB
GDScript
44 lines
1.4 KiB
GDScript
extends Control
|
|
|
|
const COST_CONTAINER = preload("res://scenes/cost_container.tscn")
|
|
|
|
@onready var upgrades_list = %UpgradesList
|
|
@onready var upgrade_title_label = %UpgradeTitleLabel
|
|
@onready var desciption_label = %DesciptionLabel
|
|
@onready var cost_container = %CostContainer
|
|
@onready var buy_button = %BuyButton
|
|
|
|
var available_upgrades: Array[Upgrade]
|
|
|
|
func _ready():
|
|
upgrade_title_label.text = "<- Select an Upgrade"
|
|
desciption_label.text = ""
|
|
for child in cost_container.get_children():
|
|
cost_container.remove_child(child)
|
|
buy_button.disabled = true
|
|
upgrades_list.clear()
|
|
available_upgrades = DataHandler.get_available_upgrades()
|
|
for upgd in available_upgrades:
|
|
upgrades_list.add_item(upgd.name)
|
|
|
|
|
|
func _on_upgrades_list_item_selected(index):
|
|
var upgd: Upgrade = available_upgrades[index]
|
|
upgrade_title_label.text = upgd.name
|
|
desciption_label.text = upgd.description
|
|
for child in cost_container.get_children():
|
|
cost_container.remove_child(child)
|
|
for cost in upgd.cost:
|
|
var cost_row: CostContainer = COST_CONTAINER.instantiate()
|
|
cost_container.add_child(cost_row)
|
|
cost_row.set_data(DataHandler.type_to_texture(cost), upgd.cost[cost])
|
|
if DataHandler.has_upgrade_cost(upgd):
|
|
buy_button.disabled = false
|
|
|
|
|
|
func _on_buy_button_pressed():
|
|
var selected = upgrades_list.get_selected_items()[0]
|
|
var upgd: Upgrade = available_upgrades[selected]
|
|
if upgd.activate_upgrade():
|
|
_ready()
|