TowerDefense/Upgrades/TowerUpgrade.gd

34 lines
689 B
GDScript3
Raw Normal View History

2025-09-03 18:39:58 +02:00
extends Upgrade
class_name TowerUpgrade
enum TYPE {
MAX_ENERGY,
ENERGY_REGEN,
ENERGY_COST,
DAMAGE,
AOE_INCREASE,
COOLDOWN,
}
@export var type : TYPE
2025-09-05 19:33:56 +02:00
func upgrade(tower: Tower) -> bool:
if not canUpgrade():
return false
2025-09-03 18:39:58 +02:00
match type:
2025-09-05 19:33:56 +02:00
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")
2025-09-03 18:39:58 +02:00
upgradeUpgrade()
2025-09-06 22:08:29 +02:00
tower.changed.emit()
2025-09-05 19:33:56 +02:00
return true