TowerDefense/Upgrades/CubeUpgrade.gd

39 lines
802 B
GDScript3
Raw Permalink Normal View History

2025-09-07 19:48:58 +02:00
extends Upgrade
2025-09-03 18:39:58 +02:00
class_name CubeUpgrade
enum TYPE {
2025-09-07 19:48:58 +02:00
TIER,
MAX_HEALTH,
WAVE_HEALTH_REGEN,
WAVE_MONEY,
BOOST_REGEN_ENERGY,
2025-09-03 18:39:58 +02:00
}
@export var type : TYPE
2025-09-07 19:48:58 +02:00
func isLevelMax() -> bool :
return super.isLevelMax() || type == TYPE.TIER && Game.maxTier == Game.tier
2025-09-07 19:48:58 +02:00
func canUpgrade() -> bool:
return super.canUpgrade() && (type != TYPE.TIER || Game.maxTier > Game.tier)
2025-09-07 19:48:58 +02:00
func upgrade(_subject = null) -> bool:
if not canUpgrade():
return false
match type:
TYPE.TIER: upgradeProperty(Game, "tier")
TYPE.MAX_HEALTH: upgradeProperty(Game, "max_health")
TYPE.WAVE_HEALTH_REGEN: upgradeProperty(Game, "wave_health_regen")
TYPE.WAVE_MONEY: upgradeProperty(Game, "wave_money")
TYPE.BOOST_REGEN_ENERGY: upgradeProperty(Game, "energy_boost")
upgradeUpgrade()
#Game.changed.emit()
return true