paratate/systems/bullets/spawn_patterns/line_pattern.gd
2026-01-01 18:03:22 -06:00

21 lines
624 B
GDScript

class_name LinePattern
extends BulletSpawnPattern
@export var bullet_count: int
@export var line_width: float
@export_custom(0, "direction") var line_normal: Vector2 = Vector2.RIGHT
func _spawn_bullets(bullet_set: BulletSet, preset: BulletPreset) -> void:
for i in bullet_count:
var bullet = Bullet.create(preset, line_normal)
var line = line_normal.orthogonal().rotated(bullet_set.spawn_rotation)
var weight = float(i) / float(bullet_count - 1)
weight -= 0.5
if bullet_count == 1:
weight = 0.0
bullet.position = bullet_set.spawn_offset + line * weight * line_width
bullet_set.add_bullet(bullet)