extends Node2D var wave_count: int = 0 var enemy_count: int = 0 var enemy = preload("res://scenes/enemy.tscn") const COLS: int = 9 const ROWS: int = 3 func _ready(): wave_count += 1 EventBus.enemy_died.connect(_on_enemy_died) func spawn_enemies(): print("Enemy Wave: ", wave_count) for x in range(COLS): for y in range(ROWS): var e = enemy.instantiate() var pos = Vector2(x * (16 + 8) + 24, 16 * 4 + y * 16) add_child(e) e.start(pos) enemy_count = ROWS * COLS await get_tree().process_frame print_debug("Remaining enemies: ", enemy_count, ", ", get_tree().get_nodes_in_group("enemies").size()) 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) func update_enemy_aggression(low,high): var nodes = get_tree().get_nodes_in_group("enemies") for node in nodes: if node is Area2D: node.enemy_move_aggression = randf_range(low,high) node.enemy_shoot_aggression = randf_range(low,high) node.tween_speed = min(low,high) - .75