spaceship/boss/BossReturnSignal.gd
2026-09-03 10:33:05 +02:00

39 lines
1 KiB
GDScript

class_name BossReturnSignal
extends Node2D
@export var speed: float = 520.0
var target: Node2D
var trail: PackedVector2Array = PackedVector2Array()
func _ready() -> void:
add_to_group("boss_returns")
trail.append(global_position)
queue_redraw()
func _process(delta: float) -> void:
if not is_instance_valid(target):
queue_free()
return
var destination: Vector2 = target.global_position
if global_position.distance_to(destination) <= speed * delta:
global_position = destination
target.open_next_eye()
queue_free()
return
global_position = global_position.move_toward(destination, speed * delta)
trail.append(global_position)
while trail.size() > 14:
trail.remove_at(0)
queue_redraw()
func _draw() -> void:
for i in range(1, trail.size()):
var alpha: float = float(i) / float(trail.size())
draw_line(trail[i - 1] - global_position, trail[i] - global_position,
Color(1.0, 0.82, 0.22, alpha * 0.7), 3.0 + alpha * 5.0, true)
NeonDraw.draw_glowing_circle(self, Vector2.ZERO, 9.0,
Color(1.0, 0.82, 0.22), 1.0, Color(0.16, 0.04, 0.01))