mtd/Scripts/Affectors/spawn_affect.gd

22 lines
732 B
GDScript

class_name SpawnAffect extends Affector
@export var spawn_scene: PackedScene
@export var tower: Tower
var force: float = 150.0
var projectile_id: int = 0
func apply_effect(effect: Effect, targets: Array[EnemyController]) -> void:
for target: EnemyController in targets:
var projectile: Projectile = spawn_scene.instantiate() as Projectile
if projectile is HomingProjectile:
projectile.target = target
projectile.position = tower.yaw_model.global_position
projectile.effect = effect
projectile.direction = -tower.yaw_model.global_transform.basis.z
projectile.force = force
projectile.name = tower.base_name + str(tower.owner_id) + str(projectile_id)
get_tree().root.add_child(projectile)
projectile_id += 1