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()