Made more enemies, easier to kill, more slashy. You get passive health regen, health orbs. Little key bindings tooltip.
This commit is contained in:
@@ -17,6 +17,11 @@ signal all_enemies_defeated()
|
||||
@export var auto_start_next_wave: bool = false ## Auto-start next wave when all defeated
|
||||
@export var wave_delay: float = 5.0 ## Delay before next wave auto-starts
|
||||
|
||||
@export_category("Timed Waves")
|
||||
@export var auto_waves: bool = true ## Spawn a fresh wave on a repeating timer
|
||||
@export var wave_interval: float = 15.0 ## Seconds between timed waves
|
||||
@export var first_wave_delay: float = 3.0 ## Delay before the very first timed wave
|
||||
|
||||
@export_category("Enemy Pool")
|
||||
@export var enemy_scenes: Array[PackedScene] = [] ## List of enemy scenes to spawn from
|
||||
|
||||
@@ -26,6 +31,8 @@ var active_enemies: Array[Node] = []
|
||||
var _wave_delay_timer: float = 0.0
|
||||
var _waiting_for_next_wave: bool = false
|
||||
var _enemy_id_counter: int = 0
|
||||
var _auto_waves_active: bool = false
|
||||
var _auto_wave_timer: float = 0.0
|
||||
|
||||
## Debug visualization
|
||||
@export var show_spawn_radius: bool = false ## Show spawn radius circle in game
|
||||
@@ -35,6 +42,18 @@ func _ready():
|
||||
print("[EnemySpawner] Ready. Server: ", multiplayer.is_server())
|
||||
_create_debug_circle()
|
||||
|
||||
## Begin spawning waves automatically on a timer (server only)
|
||||
func start_auto_waves():
|
||||
if not multiplayer.is_server() or not auto_waves:
|
||||
return
|
||||
_auto_waves_active = true
|
||||
_auto_wave_timer = first_wave_delay
|
||||
print("[EnemySpawner] Auto waves enabled - first wave in ", first_wave_delay, "s, then every ", wave_interval, "s")
|
||||
|
||||
## Stop the timed-wave loop
|
||||
func stop_auto_waves():
|
||||
_auto_waves_active = false
|
||||
|
||||
## Start a new wave
|
||||
func start_wave():
|
||||
if not multiplayer.is_server():
|
||||
@@ -240,6 +259,13 @@ func _process(_delta):
|
||||
if multiplayer.multiplayer_peer == null or not multiplayer.is_server():
|
||||
return
|
||||
|
||||
# Timed waves - spawn a fresh wave on a repeating interval
|
||||
if _auto_waves_active:
|
||||
_auto_wave_timer -= _delta
|
||||
if _auto_wave_timer <= 0:
|
||||
_auto_wave_timer = wave_interval
|
||||
start_wave()
|
||||
|
||||
# Handle wave delay timer
|
||||
if _waiting_for_next_wave:
|
||||
_wave_delay_timer -= _delta
|
||||
|
||||
Reference in New Issue
Block a user