33 lines
703 B
GDScript
33 lines
703 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) -> 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()
|
|
|
|
EventBus.tower_changed.emit(tower)
|
|
return true
|