4.6, new attack, enemy spawning, shaders, bunch of stuff
This commit is contained in:
parent
e08e3ebb13
commit
19517a3176
84 changed files with 13348 additions and 91399 deletions
54
scripts/room_spawn.gd
Normal file
54
scripts/room_spawn.gd
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
class_name RoomSpawn extends Area2D
|
||||
|
||||
@export var waves_container: Node2D
|
||||
|
||||
var waves: Array[Node] = []
|
||||
var current_wave_index: int = 0
|
||||
var active_enemies: int = 0
|
||||
var has_triggered: bool = false
|
||||
|
||||
func _ready() -> void:
|
||||
body_entered.connect(_on_body_entered)
|
||||
|
||||
if not waves_container:
|
||||
push_error("Waves container not assigned in RoomSpawn!")
|
||||
return
|
||||
|
||||
waves = waves_container.get_children()
|
||||
for wave in waves:
|
||||
wave.hide()
|
||||
wave.process_mode = Node.PROCESS_MODE_DISABLED
|
||||
|
||||
func _on_body_entered(body: Node2D) -> void:
|
||||
if has_triggered:
|
||||
return
|
||||
|
||||
if body.is_in_group("player"):
|
||||
has_triggered = true
|
||||
start_next_wave()
|
||||
|
||||
func start_next_wave() -> void:
|
||||
if current_wave_index >= waves.size():
|
||||
return
|
||||
|
||||
var current_wave = waves[current_wave_index]
|
||||
current_wave.show()
|
||||
current_wave.process_mode = Node.PROCESS_MODE_INHERIT
|
||||
|
||||
var enemies = current_wave.get_children()
|
||||
active_enemies = enemies.size()
|
||||
|
||||
if active_enemies == 0:
|
||||
current_wave_index += 1
|
||||
start_next_wave()
|
||||
return
|
||||
|
||||
for enemy in enemies:
|
||||
enemy.tree_exited.connect(_on_enemy_died)
|
||||
|
||||
func _on_enemy_died() -> void:
|
||||
active_enemies -= 1
|
||||
|
||||
if active_enemies <= 0:
|
||||
current_wave_index += 1
|
||||
start_next_wave()
|
||||
Loading…
Add table
Add a link
Reference in a new issue