added enemy spawners
This commit is contained in:
@@ -2,6 +2,8 @@ extends Node
|
||||
|
||||
@export_group("Main")
|
||||
@export var room_lockdown : bool = false
|
||||
@export var number_of_enemies : int = 20
|
||||
@export var spawnable_enemies = preload("res://assets/spider2.tscn")
|
||||
@export_group("Key")
|
||||
@export var key_drop : bool = false
|
||||
@export_enum("Silver", "Gold", "Special") var key_type: int
|
||||
@@ -12,6 +14,7 @@ extends Node
|
||||
var enemies = []
|
||||
var doors = []
|
||||
var room_checks = []
|
||||
var enemy_spawners = []
|
||||
var number_enemies : int
|
||||
var rot_amount : float
|
||||
|
||||
@@ -59,7 +62,7 @@ func _process(delta):
|
||||
|
||||
func assign_elements():
|
||||
for i in self.get_children():
|
||||
if i.is_in_group("enemy"):
|
||||
if i is Enemy:
|
||||
enemies.append(i)
|
||||
if i.is_in_group("door"):
|
||||
doors.append(i)
|
||||
@@ -67,7 +70,11 @@ func assign_elements():
|
||||
room_checks.append(i)
|
||||
i.room_entered.connect(room_entered)
|
||||
i.room_exited.connect(room_exited)
|
||||
print("ENEMIES IN ROOM - ",enemies)
|
||||
if i is EnemySpawner:
|
||||
enemy_spawners.append(i)
|
||||
|
||||
if enemy_spawners.size() > 0:
|
||||
spawn_enemies()
|
||||
|
||||
func enemy_in_room_killed():
|
||||
var enemy_count = 0
|
||||
@@ -94,3 +101,19 @@ func room_exited():
|
||||
for i in doors:
|
||||
if !i.door_open:
|
||||
i.open()
|
||||
|
||||
func spawn_enemies():
|
||||
while number_of_enemies >= 0:
|
||||
number_of_enemies -= 1
|
||||
|
||||
var random_spawner = enemy_spawners.pick_random()
|
||||
var spawn_offset = random_spawner.random_box_pos()
|
||||
var set_pos = random_spawner.global_position + spawn_offset
|
||||
var enemy = spawnable_enemies.instantiate() #turn into an array of available enemies later
|
||||
add_child(enemy)
|
||||
enemy.global_position = set_pos
|
||||
|
||||
await number_enemies == 0
|
||||
for i in self.get_children():
|
||||
if i is Enemy:
|
||||
enemies.append(i)
|
||||
|
||||
Reference in New Issue
Block a user