diff --git a/wave.gd b/wave.gd index ec53e7f..1f36bfe 100644 --- a/wave.gd +++ b/wave.gd @@ -4,6 +4,8 @@ var wave_count: int = 0 var enemy_count: int = 0 var enemy = preload("res://scenes/enemy.tscn") +@export var wave_complete: bool = false + const COLS: int = 9 const ROWS: int = 3 @@ -27,21 +29,9 @@ func spawn_enemies(): func _on_enemy_died(): enemy_count -= 1 - print_debug(enemy_count) - if enemy_count == 0: - print_debug("Remaining enemies: ", enemy_count, ", ", get_tree().get_nodes_in_group("enemies").size()) - # win_game() - await get_tree().create_timer(2).timeout - wave_count += 1 - spawn_enemies() - if enemy_count == ROWS * COLS / 2: - print_debug("Enemy count is 50%") - update_enemy_aggression(2,10) - EventBus.goose_talk.emit() - if enemy_count == ROWS * COLS / 4: - print_debug("Enemy count is 25%") - update_enemy_aggression(1,1) - + wave_status() + + func update_enemy_aggression(low,high): var nodes = get_tree().get_nodes_in_group("enemies") @@ -50,3 +40,34 @@ func update_enemy_aggression(low,high): node.enemy_move_aggression = randf_range(low,high) node.enemy_shoot_aggression = randf_range(low,high) node.tween_speed = min(low,high) - .75 + + +func wave_status(): + if enemy_count > 0: + enemy_aggression_check() + wave_complete = false + + else: + EventBus.goose_talk.emit() + wave_initialize() + wave_complete = true + +func wave_initialize(): + await get_tree().create_timer(2).timeout + wave_count += 1 + spawn_enemies() + +func enemy_aggression_check(): + if enemy_count == ROWS * COLS / 2: + print_debug("Enemy count is 50%") + update_enemy_aggression(2,10) + EventBus.goose_talk.emit() + if enemy_count == ROWS * COLS / 4: + print_debug("Enemy count is 25%") + update_enemy_aggression(1,1) + + + + + +