extends Upgrade class_name TowerUpgrade enum TYPE { MAX_ENERGY, ENERGY_REGEN, ENERGY_COST, DAMAGE, AOE_INCREASE, ## NOT WORKING COOLDOWN, } @export var type : TYPE func upgrade(tower: Tower = null) -> 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, "damage") #TYPE.AOE_INCREASE: upgradeProperty(tower.projectile.damageArea, "radius") TYPE.COOLDOWN: upgradeProperty(tower, "action_cooldown") upgradeUpgrade() tower.changed.emit() return true