60 lines
1.8 KiB
GDScript3
60 lines
1.8 KiB
GDScript3
|
|
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
|