extends SceneTree var checks := 0 var failures := 0 func _initialize() -> void: call_deferred("run") func expect(ok: bool, message: String) -> void: checks += 1 if not ok: failures += 1;push_error(message) func run() -> void: root.size = Vector2i(1440,810) var clock: Variant = root.get_node("GameClock") var state: Variant = root.get_node("GameState") var runtime: Variant = root.get_node("SimulationRuntime") clock.reset(1,6,0);state.reset();runtime.initialize(clock,state,718);clock.set_paused(true) var main: Control = load("res://scenes/main/main.tscn").instantiate();root.add_child(main);await process_frame runtime.configure_save_policy({&"enabled":false}) main._set_layer(1) main.build_buttons[&"staff_waiting_room"].button_pressed = true main._on_map_cell_clicked(Vector3i(-6,0,1)) expect(runtime.construction_service.get_jobs().size() == 1,"waiting room builds through the real map palette") clock.advance_minutes(120) # Fatigue/health fixture, normal public registration and authoritative movement. expect(runtime.submit_command(&"register_staff",{&"staff_id":&"resting",&"role_id":&"porter",&"options":{&"health":20,&"fatigue":20,&"state":StaffRuntime.State.OFF_DUTY,&"current_cell":Vector3i(5,0,0)}},&"player").is_success(),"tired off-duty staff registers") main._activate_management_mode(&"staff");main.staff_management_panel.select_staff(&"resting") main.staff_management_panel.refresh() expect(main.staff_management_panel.staff_detail_label.text.contains("休憩先へ移動中"),"panel exposes actual journey to rest") clock.advance_minutes(60);main.staff_management_panel.refresh();main.world_preview.focus_operating_area() await process_frame expect(main.staff_management_panel.staff_detail_label.text.contains("待機室で休憩中"),"arrival updates the panel to resting") expect(runtime.staff_service.get_staff(&"resting").health > 20,"resting health recovers in normal operations") main.world_preview._prepare_room_presentations() expect(main.world_preview._resting_staff.has(&"resting"),"room presentation uses actual resting staff ownership") var room_id: StringName = main.world_preview._resting_staff.get(&"resting",&"") expect(main.world_preview._room_presentations.get(room_id,{}).get(&"count",0) == 1,"rest room count is a real person, not cosmetic occupancy") if OS.get_environment("THE_TREE_REST_CAPTURE") == "1": main.world_preview.queue_redraw();await process_frame;await RenderingServer.frame_post_draw expect(root.get_texture().get_image().save_png("res://artifacts/remaining-2026-09-29/staff-rest.png") == OK,"resting staff screenshot saved") expect(runtime.restore_snapshot(runtime.create_snapshot()),"visible rest state remains saveable") main.queue_free();await process_frame print("Staff rest UI: %d checks, %d failures" % [checks,failures]);quit(failures)