refactor: better timer for spawn enemy
This commit is contained in:
parent
3452c943a5
commit
15f5274b15
2 changed files with 4 additions and 23 deletions
|
|
@ -39,7 +39,8 @@ 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:
|
||||||
$SFX/SFXWinner.play()
|
if wave != level.waves.size():
|
||||||
|
$SFX/SFXWinner.play()
|
||||||
EventBus.wave_finished.emit()
|
EventBus.wave_finished.emit()
|
||||||
state = STATE.WAVE_END
|
state = STATE.WAVE_END
|
||||||
STATE.WAVE_END when wave == level.waves.size():
|
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)
|
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)
|
||||||
|
|
|
||||||
|
|
@ -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()
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue