23 lines
611 B
GDScript
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
|