extends Upgrade class_name TowerUpgrade enum TYPE { MAX_ENERGY, ENERGY_REGEN, ENERGY_COST, DAMAGE, AOE_INCREASE, COOLDOWN, } @export var type : TYPE func upgrade(tower: Tower) -> bool: if not canUpgrade(): return false match type: TYPE.MAX_ENERGY: upgradeProperty(tower, "max_energy") TYPE.ENERGY_REGEN: upgradeProperty(tower, "energy_regen") TYPE.ENERGY_COST: upgradeProperty(tower, "energy_cost") TYPE.DAMAGE: upgradeProperty(tower.projectileRessource, "damage") TYPE.AOE_INCREASE: upgradeProperty(tower.projectileRessource.damageArea, "radius") TYPE.COOLDOWN: upgradeProperty(tower, "action_cooldown") upgradeUpgrade() tower.changed.emit() return true