extends Node func _ready() -> void: GameState.start_new_run() GameState.system_seed = 8428159 var game := preload("res://scenes/game/game.tscn").instantiate() add_child(game) game.set_physics_process(false) game.player.set_physics_process(false) game.player.get_node("WeaponController").set_physics_process(false) var manager: Node = game.get_node("PlanetExpeditions") manager.set_process(false) for enemy in get_tree().get_nodes_in_group("enemies"): enemy.set_physics_process(false) enemy.position = Vector2(-9999,-9999) await get_tree().process_frame for target in [manager.freighter,game.protected_planet]: game.player.position = target.position game.player.landing_combat_lock = 0.0 manager._process(0.11) assert(manager._prompt.visible) var position: Vector2 = game.player.position for repetition in 3: game.player.landing_combat_lock = 0.05 manager._process(0.016) assert(not manager._prompt.visible) manager.land_nearby() assert(not is_instance_valid(manager.screen)) assert(manager._message_time == 0.0,"Combat cannot leave a stale warning over the docking card") game.player.landing_combat_lock = 0.0 manager._process(0.016) assert(manager._prompt.visible,"Timer expiration restores the card without movement") assert(not manager._land_button.disabled) if target == game.protected_planet: assert(manager._text.text.contains("TLEN") and manager._text.text.contains("ŚREDNIA SZANSA POI")) assert(GameState.captain.expedition.scans.has(target.planet_profile.id)) assert(manager._prompt.find_children("*","Button",true,false).size()==1,"Only the land/dock button remains") assert(game.player.position == position) var enemy: Node2D = get_tree().get_first_node_in_group("enemies") enemy.position = position+Vector2(100,0) enemy.hull = 100.0 manager._process(0.016) assert(not manager._prompt.visible) enemy.hull = 0.0 manager._process(0.016) assert(manager._prompt.visible,"Dead ships cannot keep docking blocked") enemy.hull = 100.0 manager._process(0.016) assert(not manager._prompt.visible) enemy.queue_free() manager._process(0.016) assert(manager._prompt.visible,"Queued enemies cannot keep docking blocked") get_tree().paused = true manager._process(0.016) assert(not manager._prompt.visible) get_tree().paused = false manager._process(0.016) assert(manager._prompt.visible,"Resuming restores the card without movement") await get_tree().process_frame game.player.position = manager.freighter.position manager._process(0.11) manager.land_nearby() assert(is_instance_valid(manager.screen) and get_tree().paused) manager._leave() manager._process(0.016) assert(manager._prompt.visible and not get_tree().paused) print("ORBITAL_PROMPT_RECOVERY_TEST: PASS (stationary freighter/planet; combat lock expiry; live/dead/queued enemies; pause and docking)") game.queue_free()