class_name BulletSet extends Node2D @export var preset: BulletPreset var spawn_offset: Vector2 = Vector2.ZERO var spawn_rotation: float = 0.0 func _ready() -> void: for _n in preset.rounds: preset.pattern.spawn_bullets(self, preset) await get_tree().create_timer(preset.round_delay, false, true).timeout func _physics_process(delta: float) -> void: if get_child_count() == 0: queue_free() if preset.set_behavior: preset.set_behavior.process_set(self, delta) for bullet in get_children(): if bullet is Bullet: preset.behavior.process_bullet(bullet, delta) func add_bullet(bullet: Bullet) -> void: preset.behavior.init_bullet(bullet) add_child(bullet) func add_bullets(new_bullets: Array[Bullet]) -> void: for bullet in new_bullets: preset.behavior.init_bullet(bullet) add_child(bullet)