refactor: better timer for spawn enemy

This commit is contained in:
Varylios 2025-09-07 23:45:43 +02:00
parent 3452c943a5
commit 15f5274b15
2 changed files with 4 additions and 23 deletions

View file

@ -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)

View file

@ -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()