From b3b6998e145296614cab07f0a891ce6945c34c8e Mon Sep 17 00:00:00 2001 From: RealMelwei Date: Sat, 11 Oct 2025 19:37:25 +0200 Subject: [PATCH] Refactoring of blob.gd --- enemies/boss/blob.gd | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/enemies/boss/blob.gd b/enemies/boss/blob.gd index 5e8fe50..ae2f87d 100644 --- a/enemies/boss/blob.gd +++ b/enemies/boss/blob.gd @@ -1,26 +1,35 @@ extends Node2D - var moving = false @onready var player = get_tree().get_root().get_node("main/Player") -@onready var target = player.position var speed = 500 +# The target is set on initialization and never updated. +@onready var target = player.position + var reached = false signal target_reached func _ready() -> void: + + # Wait one second before firing await get_tree().create_timer(1).timeout moving = true func _process(delta: float) -> void: + + # Fire towards the center of the cross if moving: position += (target - global_position).normalized().rotated(-get_parent().rotation) * speed * delta + + # When reaching the center, inform parent node if((global_position - target).length() < 40): moving = false if not reached: target_reached.emit() reached = true + + # Damage the player on contact if has_node("Area2D") and $Area2D.overlaps_body(player): player.hurt(1, global_position-player.position)