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,6 +39,7 @@ func _process(_delta: float) -> void:
STATE.SPAWNING when troopTimer.is_stopped(): STATE.SPAWNING when troopTimer.is_stopped():
state = STATE.FIGHT state = STATE.FIGHT
STATE.FIGHT when enemiesAlive == 0: STATE.FIGHT when enemiesAlive == 0:
if wave != level.waves.size():
$SFX/SFXWinner.play() $SFX/SFXWinner.play()
EventBus.wave_finished.emit() EventBus.wave_finished.emit()
state = STATE.WAVE_END state = STATE.WAVE_END
@ -92,16 +93,9 @@ func spawnEnemy(enemyScene: PackedScene, laneToSpawn: int, delay: float) -> void
var enemy : PathFollow3D = createEnemy(enemyScene) var enemy : PathFollow3D = createEnemy(enemyScene)
if delay > 0: if delay > 0:
var enemyTimer : Timer = createTimer(delay) await get_tree().create_timer(delay).timeout
enemyTimer.timeout.connect(
func():
paths[laneToSpawn].add_child(enemy)
enemyTimer.queue_free()
)
add_child(enemyTimer)
else:
paths[laneToSpawn].add_child(enemy)
paths[laneToSpawn].add_child(enemy)
enemiesAlive += 1 enemiesAlive += 1
@ -113,15 +107,6 @@ func createEnemy(enemyScene: PackedScene) -> PathFollow3D :
return PF3D 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: func addMap(mapScene : PackedScene) -> void:
var map : Map = mapScene.instantiate() var map : Map = mapScene.instantiate()
add_child(map) add_child(map)

View file

@ -84,10 +84,6 @@ func _process(_delta: float) -> void:
shoot() shoot()
func get_available_upgrades() -> Array[TowerUpgrade]:
return upgrades.filter(func(u: TowerUpgrade): u.isLevelMax)
func shoot() -> void: func shoot() -> void:
energy -= energy_cost energy -= energy_cost
var projectile : Projectile = projectileScene.instantiate() var projectile : Projectile = projectileScene.instantiate()