TowerDefense/Enemies/boss.gd
2025-09-14 22:54:54 +02:00

23 lines
611 B
GDScript

extends Enemy
class_name Boss
@export_range(0.1, 15, 0.05, "or_greater") var disableTime : float
@export var projectileScene : PackedScene
func attack() -> bool:
if super.attack():
# already attacked TheCube
return true
var towerTargets : Array[Node3D] = targets.filter(func(b): return b is Tower)
if $AttackCooldown.is_stopped() && not towerTargets.is_empty():
var projectile : Projectile = projectileScene.instantiate()
projectile.amount = disableTime
projectile.shoot(towerTargets[0], global_position)
targets.erase(towerTargets[0])
$AttackCooldown.start()
return true
return false