47 lines
919 B
GDScript
47 lines
919 B
GDScript
extends HBoxContainer
|
|
class_name UpgradeButton
|
|
|
|
|
|
var tower: Tower
|
|
var upgrade: Upgrade
|
|
|
|
|
|
@onready var upgradeBtn : Button = $UpgradeButton
|
|
|
|
|
|
func _ready() -> void:
|
|
Game.money_changed.connect(onMoneyChanged)
|
|
upgradeBtn.pressed.connect(onUpgradePressed)
|
|
|
|
|
|
func setUpgrade(_upgrade: Upgrade) -> void:
|
|
upgrade = _upgrade
|
|
updateVisuals()
|
|
|
|
|
|
func setTower(_tower: Tower) -> void:
|
|
tower = _tower
|
|
updateVisuals()
|
|
|
|
|
|
func onUpgradePressed() -> void:
|
|
if upgrade.upgrade(tower):
|
|
updateVisuals()
|
|
|
|
|
|
func updateVisuals() -> void:
|
|
$UpgradeName.text = upgrade.text
|
|
if upgrade.isLevelMax():
|
|
upgradeBtn.visible = false
|
|
if upgrade.level:
|
|
$UpgradeName.text += " Lvl. max"
|
|
return
|
|
if upgrade.level:
|
|
$UpgradeName.text += " Lvl. %d" % upgrade.level
|
|
|
|
upgradeBtn.text = "%d €" % upgrade.cost
|
|
upgradeBtn.disabled = not upgrade.canUpgrade()
|
|
|
|
|
|
func onMoneyChanged() -> void:
|
|
upgradeBtn.disabled = not upgrade.canUpgrade()
|