class_name LightBurstVFX extends ExplosionVFXBase # Shared radiating-neon-streak rendering for energy-based objects (player # ships, enemies) - concrete subclasses only need to fix their own color. var color: Color = Color(1, 1, 1) func _configure_particle(visual: ExplosionParticle, p: Dictionary) -> void: # Direction only ever scales (vel *= 0.9 each frame in the base class), # it never turns - so the streak's local orientation is safe to fix # once here rather than recomputed from vel every frame. var vel: Vector2 = p["vel"] var dir: Vector2 = vel.normalized() if vel.length() > 0.01 else Vector2.RIGHT var half: Vector2 = dir * p["size"] * 0.5 var line_color: Color = color visual.draw_callable = func(item: CanvasItem) -> void: NeonDraw.draw_glowing_line(item, -half, half, line_color, 1.0, 0.6)