The_Dark_Side_of_Earth/blob_big.gd

33 lines
866 B
GDScript3
Raw Normal View History

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)
func _physics_process(delta: float) -> void:
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()