extends SceneTree ## Deterministic visual review in the real Compatibility renderer. const Boss = preload("res://scripts/alien_grunt.gd") func _initialize() -> void: call_deferred("run_test") func run_test() -> void: root.size = Vector2i(1280, 720) var world = load("res://scenes/main.tscn").instantiate() root.add_child(world) world.start_screen.hide() world.spawning = true world.player.set_physics_process(false) world.player.position = Vector3(0, 0.1, 3.5) world.player.camera.look_at(Vector3(0, 1.2, -3)) Input.mouse_mode = Input.MOUSE_MODE_VISIBLE await physics_frame var actor := Boss.new() actor.configure(10) actor.player = world.player actor.navigation = world.navigation actor.position = Vector3(0, 0.05, -3) actor.rotation.y = PI world.add_child(actor) actor.set_physics_process(false) world.boss = actor world.wave = 10 var portal = load("res://scripts/boss_teleport.gd").new() portal.position = actor.position portal.materialized.connect(actor.materialize) world.add_child(portal) await create_timer(1.0).timeout await RenderingServer.frame_post_draw root.get_texture().get_image().save_png("/tmp/zombie-boss-portal.png") await create_timer(0.8).timeout await RenderingServer.frame_post_draw root.get_texture().get_image().save_png("/tmp/zombie-boss-arrival.png") await create_timer(1.8).timeout actor.anim.play("hornetattack") await create_timer(0.3).timeout actor._fire_hornet() await RenderingServer.frame_post_draw root.get_texture().get_image().save_png("/tmp/zombie-boss-combat.png") print("SHOT: /tmp/zombie-boss-{portal,arrival,combat}.png") world.queue_free() await process_frame quit()