From 15f5274b15bbea37609446cede750b8548111a50 Mon Sep 17 00:00:00 2001 From: Varylios Date: Sun, 7 Sep 2025 23:45:43 +0200 Subject: [PATCH] refactor: better timer for spawn enemy --- Levels/Scripts/WorldManager.gd | 23 ++++------------------- Towers/Tower.gd | 4 ---- 2 files changed, 4 insertions(+), 23 deletions(-) diff --git a/Levels/Scripts/WorldManager.gd b/Levels/Scripts/WorldManager.gd index cd9626c..8a40ae7 100644 --- a/Levels/Scripts/WorldManager.gd +++ b/Levels/Scripts/WorldManager.gd @@ -39,7 +39,8 @@ func _process(_delta: float) -> void: STATE.SPAWNING when troopTimer.is_stopped(): state = STATE.FIGHT STATE.FIGHT when enemiesAlive == 0: - $SFX/SFXWinner.play() + if wave != level.waves.size(): + $SFX/SFXWinner.play() EventBus.wave_finished.emit() state = STATE.WAVE_END STATE.WAVE_END when wave == level.waves.size(): @@ -92,16 +93,9 @@ func spawnEnemy(enemyScene: PackedScene, laneToSpawn: int, delay: float) -> void var enemy : PathFollow3D = createEnemy(enemyScene) if delay > 0: - var enemyTimer : Timer = createTimer(delay) - enemyTimer.timeout.connect( - func(): - paths[laneToSpawn].add_child(enemy) - enemyTimer.queue_free() - ) - add_child(enemyTimer) - else: - paths[laneToSpawn].add_child(enemy) + await get_tree().create_timer(delay).timeout + paths[laneToSpawn].add_child(enemy) enemiesAlive += 1 @@ -113,15 +107,6 @@ func createEnemy(enemyScene: PackedScene) -> PathFollow3D : return PF3D -func createTimer(delay: float) -> Timer : - var timer : Timer = Timer.new() - timer.wait_time = delay - timer.one_shot = true - timer.autostart = true - - return timer - - func addMap(mapScene : PackedScene) -> void: var map : Map = mapScene.instantiate() add_child(map) diff --git a/Towers/Tower.gd b/Towers/Tower.gd index 36f135a..803f337 100644 --- a/Towers/Tower.gd +++ b/Towers/Tower.gd @@ -84,10 +84,6 @@ func _process(_delta: float) -> void: shoot() -func get_available_upgrades() -> Array[TowerUpgrade]: - return upgrades.filter(func(u: TowerUpgrade): u.isLevelMax) - - func shoot() -> void: energy -= energy_cost var projectile : Projectile = projectileScene.instantiate()