extends HBoxContainer class_name UpgradeButton var tower: Tower var upgrade: Upgrade @onready var upgradeBtn : Button = $UpgradeButton func _ready() -> void: Game.money_changed.connect(moneyChanged) upgradeBtn.pressed.connect(upgradeTower) func setUpgrade(_upgrade: Upgrade) -> void: upgrade = _upgrade updateVisuals() func setTower(_tower: Tower) -> void: tower = _tower 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()