38 lines
653 B
GDScript
38 lines
653 B
GDScript
extends Marker2D
|
|
|
|
var spawns : Array[Level.Spawn]
|
|
|
|
|
|
var next_spawn : Level.Spawn
|
|
|
|
var timer = 2
|
|
|
|
var spawning = false
|
|
|
|
func _process(delta):
|
|
|
|
if spawns == []:
|
|
spawning = false
|
|
|
|
if spawning:
|
|
timer -= delta
|
|
if timer < 0:
|
|
spawn(next_spawn.enemy)
|
|
timer = next_spawn.delay
|
|
spawns.erase(next_spawn)
|
|
timer = 2
|
|
if spawns != []:
|
|
next_spawn = spawns.pick_random()
|
|
|
|
func spawn(enemy : CharacterBody2D):
|
|
enemy.player = get_tree().get_nodes_in_group("player")[0]
|
|
|
|
enemy.global_position = global_position
|
|
get_parent().add_child(enemy)
|
|
|
|
func add_spawn(spawn : Level.Spawn):
|
|
spawns.append(spawn)
|
|
next_spawn = spawn
|
|
spawning = true
|
|
|