Made more enemies, easier to kill, more slashy. You get passive health regen, health orbs. Little key bindings tooltip.

This commit is contained in:
2026-06-30 22:57:11 +01:00
parent 7fa2efabaf
commit 97ebbb1618
17 changed files with 404 additions and 6 deletions
+26
View File
@@ -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