boss start, some enemies

This commit is contained in:
Daniel Kauss Serna 2026-04-16 18:53:36 +02:00
parent 93968ff9fb
commit 66ecb04bd1
123 changed files with 1884 additions and 499 deletions

55
scenes/boss_machine.gd Normal file
View file

@ -0,0 +1,55 @@
extends Node2D
@export var speed = 300;
@export var spawn_points : Node2D
var target_pos := Vector2(0, 0)
@onready var marker : Sprite2D = $DangerRound
@onready var claw : Claw = $DangerRound/Claw
enum s { Follow, Smash, Spawn, Laser}
var state = s.Follow
var max_follow_time = 2;
var following = max_follow_time;
var timer = 0;
func _ready() -> void:
target_pos = position
func _physics_process(delta: float) -> void:
match(state):
s.Follow:
follow(delta)
s.Smash:
pass
func spawn_minions(times : int):
var points : Array[Node]= spawn_points.get_children()
points.shuffle()
for i in range(times):
var p = points[i].global_position
await create_tween().tween_property(marker, "global_position", p, 1).finished
await claw.pickup()
state = s.Follow
func smash():
await claw.smash();
if randf() < 0.7:
state = s.Follow
else:
state = s.Spawn
spawn_minions(3)
func follow(delta : float):
var player : Player = get_tree().get_first_node_in_group("player")
if not player: return
move_to(player.global_position, delta)
following -= delta
if following < 0:
state = s.Smash
smash()
following = max_follow_time;
func move_to(pos : Vector2, delta : float):
marker.global_position = marker.global_position.move_toward(pos, delta * speed)