extends HBoxContainer const upgradeBtnScene : PackedScene = preload("res://UI/upgrade_button.tscn") var tower : Tower func _ready() -> void: EventBus.tower_selected.connect(onTowerSelected) EventBus.tower_changed.connect(onTowerChange) func onTowerSelected(towerType : Tower.TYPE) -> void: if towerType == Tower.TYPE.NONE: visible = false tower = null return tower = Game.towers.get(towerType) visible = true onTowerChange(tower) if not tower.builded: %UpgradeContainer.visible = false return createTowerUpgradeButton() func onTowerChange(_tower : Tower) -> void: if _tower == tower: %TowerIcon.texture = tower.icone %TowerName.text = tower.tower_name %TowerDamage.text = "Dmg : %d" % tower.projectileRessource.damage %TowerCooldown.text = "cooldown : %.1f" % tower.action_cooldown # TODO Check for better UI to display it #%TowerBio.text = tower.bio %TowerEnergy.text = "%d/%d" % [ tower.energy, tower.max_energy ] func createTowerUpgradeButton() -> void: %UpgradeContainer.visible = true %UpgradeContainer.get_children().map(func(btn): btn.queue_free()) for upgrade in tower.upgrades: prints(upgrade.baseCost, upgrade.cost) var btn : UpgradeButton = upgradeBtnScene.instantiate() %UpgradeContainer.add_child(btn) btn.setData(tower, upgrade)