TowerDefense/Upgrades/TowerUpgrade.gd
2025-09-05 04:07:17 +02:00

30 lines
771 B
GDScript

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) -> void:
match type:
TYPE.MAX_ENERGY: upgradeTowerProperty(tower, "max_energy")
TYPE.ENERGY_REGEN: upgradeTowerProperty(tower, "energy_regen")
TYPE.ENERGY_COST: upgradeTowerProperty(tower, "energy_cost")
TYPE.DAMAGE: upgradeTowerProperty(tower.projectileRessource, "damage")
TYPE.AOE_INCREASE: upgradeTowerProperty(tower.projectileRessource.damageArea, "radius")
TYPE.COOLDOWN: upgradeTowerProperty(tower, "action_cooldown")
upgradeUpgrade()
func upgradeTowerProperty(tower: Variant, property: String) -> void:
tower.set(property, getNextValue(tower.get(property)))