TowerDefense/UI/UpgradeButton.gd
2025-09-05 19:33:56 +02:00

43 lines
860 B
GDScript

extends HBoxContainer
class_name UpgradeButton
var tower: Tower
var upgrade: TowerUpgrade
@onready var upgradeBtn : Button = $UpgradeButton
func _ready() -> void:
Game.money_changed.connect(moneyChanged)
upgradeBtn.pressed.connect(upgradeTower)
func setData(_tower: Tower, _upgrade: TowerUpgrade) -> void:
tower = _tower
upgrade = _upgrade
updateVisuals()
func upgradeTower() -> void:
if upgrade.upgrade(tower):
updateVisuals()
func updateVisuals() -> void:
$UpgradeName.text = upgrade.text
if upgrade.isLevelMax:
upgradeBtn.visible = false
$UpgradeName.text += " Lvl. max"
return
if upgrade.level:
$UpgradeName.text += " Lvl. %d" % upgrade.level
upgradeBtn.text = "%d" % upgrade.cost
if not upgrade.canUpgrade():
upgradeBtn.disabled = true
func moneyChanged() -> void:
upgradeBtn.disabled = not upgrade.canUpgrade()