2025-09-05 19:33:56 +02:00
|
|
|
extends HBoxContainer
|
|
|
|
|
class_name UpgradeButton
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var tower: Tower
|
2025-09-07 19:48:58 +02:00
|
|
|
var upgrade: Upgrade
|
2025-09-05 19:33:56 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
@onready var upgradeBtn : Button = $UpgradeButton
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func _ready() -> void:
|
|
|
|
|
Game.money_changed.connect(moneyChanged)
|
|
|
|
|
upgradeBtn.pressed.connect(upgradeTower)
|
|
|
|
|
|
|
|
|
|
|
2025-09-07 19:48:58 +02:00
|
|
|
func setUpgrade(_upgrade: Upgrade) -> void:
|
2025-09-05 19:33:56 +02:00
|
|
|
upgrade = _upgrade
|
|
|
|
|
updateVisuals()
|
|
|
|
|
|
|
|
|
|
|
2025-09-07 19:48:58 +02:00
|
|
|
func setTower(_tower: Tower) -> void:
|
|
|
|
|
tower = _tower
|
|
|
|
|
updateVisuals()
|
|
|
|
|
|
|
|
|
|
|
2025-09-05 19:33:56 +02:00
|
|
|
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()
|