extends Node2D # Preview, not a test - #52's "visually distinguishable from a chaser" # acceptance criterion. Same setup shape as _sniper_vs_chaser_preview.gd - # see that file's header note for why setup is deferred to the first # _process() tick and the tree gets paused once everything is placed. # # bash tests/screenshot.sh res://tests/_turret_vs_chaser_preview.tscn /tmp/turret.png 20 720x1280 var main: Node var setup_done: bool = false func _ready() -> void: GameState.buildings.clear() GameState.extractors.clear() GameState.transporters.clear() main = load("res://Main.tscn").instantiate() add_child(main) main.get_node("BackgroundLayer").visible = false main.get_node("AsteroidField").visible = false main.get_node("PlanetField").visible = false main.get_node("BuildingField").visible = false main.get_node("EnemySpawner").set_process(false) main.get_node("AsteroidField").set_process(false) func _process(_delta: float) -> void: if setup_done: return setup_done = true var fleet: Node = main.get_node("Fleet") for ship in fleet.ships: if is_instance_valid(ship): ship.set_physics_process(false) fleet.spawn_ships(0, Vector2.ZERO) for ship in fleet.ships: if is_instance_valid(ship): ship.set_physics_process(false) ship.queue_free() fleet.ships.clear() for projectile in get_tree().get_nodes_in_group("player_projectiles"): projectile.queue_free() var chaser: Node = load("res://Enemy.tscn").instantiate() chaser.enemy_id = "chaser" chaser.position = Vector2(-160, -80) main.add_child(chaser) chaser.speed = 0.0 var turret: Node = load("res://Enemy.tscn").instantiate() turret.enemy_id = "turret_spawner" turret.position = Vector2(160, -80) main.add_child(turret) var camera: Camera2D = main.get_node("Camera2D") camera.zoom = Vector2(1.4, 1.4) get_tree().paused = true