2025-09-18 20:09:53 +02:00
|
|
|
extends Node2D
|
|
|
|
|
@onready var player = get_tree().get_root().get_node("main/Player")
|
|
|
|
|
var speed = 200
|
|
|
|
|
var angular_speed = TAU/8
|
|
|
|
|
var lifetime = 5
|
|
|
|
|
|
|
|
|
|
var ready_blobs = 0
|
|
|
|
|
var num_blobs = 4
|
|
|
|
|
|
|
|
|
|
var particles_ended = false
|
|
|
|
|
|
|
|
|
|
func _on_target_reached():
|
|
|
|
|
ready_blobs += 1
|
|
|
|
|
|
|
|
|
|
func _ready() -> void:
|
|
|
|
|
for child in get_children():
|
|
|
|
|
if "target_reached" in child:
|
|
|
|
|
child.connect("target_reached", _on_target_reached)
|
2025-09-19 15:12:35 +02:00
|
|
|
$SplashSound.play()
|
2025-09-18 20:09:53 +02:00
|
|
|
|
2025-09-23 12:36:15 +02:00
|
|
|
func _process(delta: float) -> void:
|
2025-09-18 20:09:53 +02:00
|
|
|
if ready_blobs == num_blobs:
|
|
|
|
|
position += (player.position - position).normalized() * speed * delta
|
|
|
|
|
rotate(angular_speed * delta)
|
|
|
|
|
lifetime -= delta
|
|
|
|
|
if lifetime < 0 and not particles_ended:
|
|
|
|
|
particles_ended = true
|
|
|
|
|
for child in get_children():
|
|
|
|
|
if "target_reached" in child:
|
|
|
|
|
child.get_node("GPUParticles2D").emitting = false
|
|
|
|
|
child.get_node("Area2D").queue_free()
|
|
|
|
|
if lifetime < -2:
|
|
|
|
|
queue_free()
|