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:
|
2025-09-10 23:48:22 +02:00
|
|
|
Game.money_changed.connect(onMoneyChanged)
|
|
|
|
|
upgradeBtn.pressed.connect(onUpgradePressed)
|
2025-09-05 19:33:56 +02:00
|
|
|
|
|
|
|
|
|
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-10 23:48:22 +02:00
|
|
|
func onUpgradePressed() -> void:
|
2025-09-05 19:33:56 +02:00
|
|
|
if upgrade.upgrade(tower):
|
|
|
|
|
updateVisuals()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func updateVisuals() -> void:
|
|
|
|
|
$UpgradeName.text = upgrade.text
|
2025-09-10 23:48:22 +02:00
|
|
|
if upgrade.isLevelMax():
|
2025-09-05 19:33:56 +02:00
|
|
|
upgradeBtn.visible = false
|
2025-09-10 23:48:22 +02:00
|
|
|
if upgrade.level:
|
|
|
|
|
$UpgradeName.text += " Lvl. max"
|
2025-09-05 19:33:56 +02:00
|
|
|
return
|
|
|
|
|
if upgrade.level:
|
|
|
|
|
$UpgradeName.text += " Lvl. %d" % upgrade.level
|
|
|
|
|
|
|
|
|
|
upgradeBtn.text = "%d €" % upgrade.cost
|
2025-09-10 23:48:22 +02:00
|
|
|
upgradeBtn.disabled = not upgrade.canUpgrade()
|
2025-09-05 19:33:56 +02:00
|
|
|
|
|
|
|
|
|
2025-09-10 23:48:22 +02:00
|
|
|
func onMoneyChanged() -> void:
|
2025-09-05 19:33:56 +02:00
|
|
|
upgradeBtn.disabled = not upgrade.canUpgrade()
|