34 lines
1.2 KiB
GDScript
34 lines
1.2 KiB
GDScript
extends PanelContainer
|
|
|
|
signal buy_filament
|
|
|
|
var filament_data: FilamentData
|
|
@onready var filament_material: Label = %Material
|
|
@onready var description: Label = %Description
|
|
@onready var reward_multiplier: Label = %RewardMultiplier
|
|
@onready var xp_multiplier: Label = %ExperienceMultiplier
|
|
@onready var amount: Label = %Amount
|
|
@onready var price_tag: Label = %PriceTag
|
|
@onready var buy_button: Button = $Margin/Info/Price/BuyButton
|
|
|
|
|
|
func _ready() -> void:
|
|
PlayerData.money_changed.connect(_on_toggle_button)
|
|
|
|
func initialize_filament(data: FilamentData) -> void:
|
|
filament_data = data
|
|
filament_material.text = filament_data.material
|
|
description.text = filament_data.description
|
|
reward_multiplier.text = 'Reward multiplier: x%.1f' % filament_data.reward_multiplier
|
|
xp_multiplier.text = 'Experience multiplier: x%.1f' % filament_data.xp_multiplier
|
|
amount.text = 'Amount: %.0f g' % filament_data.amount
|
|
price_tag.text = 'Price: %.2f €' % filament_data.price
|
|
|
|
func _on_buy_button_pressed() -> void:
|
|
buy_filament.emit(self)
|
|
|
|
func _on_toggle_button(money) -> void:
|
|
if PlayerData.money >= filament_data.price:
|
|
buy_button.disabled = false
|
|
else:
|
|
buy_button.disabled = true
|