TowerDefense/UI/UpgradeButton.gd

48 lines
919 B
GDScript3
Raw Normal View History

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(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()
func onUpgradePressed() -> void:
2025-09-05 19:33:56 +02:00
if upgrade.upgrade(tower):
updateVisuals()
func updateVisuals() -> void:
$UpgradeName.text = upgrade.text
if upgrade.isLevelMax():
2025-09-05 19:33:56 +02:00
upgradeBtn.visible = false
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
upgradeBtn.disabled = not upgrade.canUpgrade()
2025-09-05 19:33:56 +02:00
func onMoneyChanged() -> void:
2025-09-05 19:33:56 +02:00
upgradeBtn.disabled = not upgrade.canUpgrade()