extends Control @export var debug = false @export var spawnTimerValue = 5.0 var deltaCount := 0 var enemyMoveSpeed := 5.0 var questsComplete := false func _ready() -> void: if not debug: $MarginContainer/Menus/MenuButtons/DebugMenu.hide() $SpawnArea/SpawnTimer.start(spawnTimerValue) func _create_enemy(): var enemy = load("res://scenes/npc.tscn").instantiate() enemy.scale = Vector2.ONE*0.5 enemy.position = Vector2(randi_range(0, get_viewport_rect().size.x), -50) #enemy.get_node("%NPCNameLabel").text = "Test" return enemy func _spawn_enemies() -> void: #await get_tree().create_timer(time).timeout var middleX := get_viewport_rect().size.x/2 var targetPosition = Vector2(middleX, get_viewport_rect().size.y*(0.75)) var numEnemies = randi_range(1, 5) for i in range(numEnemies): var enemy = _create_enemy() %SpawnArea.add_child(enemy) var randEnemyMoveSpeed := randf_range(0.5, 2.0)*enemyMoveSpeed create_tween().tween_property(enemy, "position", targetPosition, randEnemyMoveSpeed) func _process(delta: float) -> void: deltaCount += 1 var enemies := %SpawnArea.get_children() var numEnemies := %SpawnArea.get_child_count() if numEnemies != 0 and (deltaCount % 60) == 0: # change movement test, not sure it's working right... #create_tween().tween_property(enemies[randi_range(0, numEnemies-1)], "position", Vector2(100, 100), 1.0) pass if questsComplete: %SpawnArea/SpawnTimer.stop() func _on_button_test_pressed() -> void: # remove all existing enemies from scene and array #for enemy in enemies: #remove_child(enemy) #enemies = [] questsComplete = true func _on_button_exit_pressed() -> void: get_tree().quit() func _on_spawn_timer_timeout() -> void: _spawn_enemies()