[gd_scene load_steps=37 format=4 uid="uid://cbg46c4q2ian4"]

[ext_resource type="TileSet" uid="uid://beqyyhtlgk8tg" path="res://scenes/assets/main_tileset.tres" id="1_maeo5"]
[ext_resource type="PackedScene" uid="uid://chmxabjea27ay" path="res://puzzles/grave/grave.tscn" id="2_fe1sr"]
[ext_resource type="Script" path="res://puzzles/main_tile_layer.gd" id="2_tu5u2"]
[ext_resource type="PackedScene" uid="uid://dpn82ibpmpb6u" path="res://entities/player/player.tscn" id="2_w5xov"]
[ext_resource type="PackedScene" uid="uid://cjus07bbbn4wd" path="res://puzzles/box/box.tscn" id="3_jiwuy"]
[ext_resource type="AudioStream" uid="uid://dptmnectas0m2" path="res://scenes/assets/jingles/grave_jingle1.wav" id="3_v8h4p"]
[ext_resource type="PackedScene" uid="uid://c2qq84wh76mkx" path="res://puzzles/box/box_switch.tscn" id="4_7yk3l"]
[ext_resource type="Script" path="res://puzzles/checkpoint.gd" id="4_8rbbs"]
[ext_resource type="Script" path="res://puzzles/room_manager/prison_manager.gd" id="4_fpjs2"]
[ext_resource type="AudioStream" uid="uid://b6gukjjv4o82b" path="res://scenes/assets/jingles/grave_jingle4.wav" id="4_xmwgp"]
[ext_resource type="Script" path="res://puzzles/grave_puzzle.gd" id="8_sr3y5"]
[ext_resource type="Script" path="res://puzzles/box_puzzle.gd" id="9_1ejn4"]
[ext_resource type="Script" path="res://puzzles/button_puzzle.gd" id="10_kcb3q"]
[ext_resource type="Texture2D" uid="uid://cbuibrshdpkm1" path="res://scenes/assets/tileset.png" id="11_hi5wu"]
[ext_resource type="PackedScene" uid="uid://dyllmgs8q1voh" path="res://puzzles/box/box_reset.tscn" id="12_kg83l"]
[ext_resource type="PackedScene" uid="uid://36rwjmb572qd" path="res://puzzles/teleporter/stairs_right.tscn" id="13_1kugw"]
[ext_resource type="PackedScene" uid="uid://bdlyuun4o4val" path="res://puzzles/button/button.tscn" id="13_nrbrh"]
[ext_resource type="PackedScene" uid="uid://cr5ddcb7bxa5x" path="res://puzzles/teleporter/teleport_location.tscn" id="14_4nm2v"]
[ext_resource type="Script" path="res://puzzles/room_manager/garden_manager.gd" id="15_ssj8q"]
[ext_resource type="PackedScene" uid="uid://dpkj44krp378g" path="res://puzzles/arrow/arrow_shooter.tscn" id="16_v754x"]
[ext_resource type="AudioStream" uid="uid://bogaat12g1qmw" path="res://scenes/assets/jingles/grave_jingle5.wav" id="17_02jvj"]
[ext_resource type="PackedScene" uid="uid://dgatvman85cq7" path="res://puzzles/teleporter/stairs_left.tscn" id="19_r6amy"]
[ext_resource type="Script" path="res://puzzles/ball_course_puzzle.gd" id="22_d6g03"]
[ext_resource type="PackedScene" uid="uid://dtya31nfxo0h7" path="res://puzzles/ball/ball.tscn" id="22_kicee"]
[ext_resource type="Script" path="res://puzzles/room_manager/ball_course_manager.gd" id="22_oli26"]
[ext_resource type="Script" path="res://puzzles/button/ball_button.gd" id="23_sf041"]

[sub_resource type="RectangleShape2D" id="RectangleShape2D_xcgii"]
size = Vector2(26, 48)

[sub_resource type="RectangleShape2D" id="RectangleShape2D_j3x8b"]
size = Vector2(16, 56)

[sub_resource type="RectangleShape2D" id="RectangleShape2D_265wp"]
size = Vector2(32, 56)

[sub_resource type="RectangleShape2D" id="RectangleShape2D_t0k1c"]
size = Vector2(16, 32)

[sub_resource type="RectangleShape2D" id="RectangleShape2D_x2olj"]
size = Vector2(17, 8)

[sub_resource type="RectangleShape2D" id="RectangleShape2D_8unxy"]
size = Vector2(23, 8)

[sub_resource type="RectangleShape2D" id="RectangleShape2D_nrvhp"]
size = Vector2(24, 41)

[sub_resource type="RectangleShape2D" id="RectangleShape2D_7nhl0"]
size = Vector2(16, 24)

[sub_resource type="RectangleShape2D" id="RectangleShape2D_q33h1"]
size = Vector2(24, 8)

[sub_resource type="RectangleShape2D" id="RectangleShape2D_c5an3"]
size = Vector2(24, 40)

[node name="Main" type="Node"]

[node name="TileMap" type="Node2D" parent="."]
script = ExtResource("2_tu5u2")
metadata/_edit_lock_ = true

[node name="TileMapLayer" type="TileMapLayer" parent="TileMap"]
texture_filter = 1
tile_map_data = PackedByteArray("[encoded data, 255492 characters]")
tile_set = ExtResource("1_maeo5")
metadata/_edit_lock_ = true

[node name="Start" type="Marker2D" parent="."]
position = Vector2(-180, 284)

[node name="Player" parent="." node_paths=PackedStringArray("checkpoints") instance=ExtResource("2_w5xov")]
position = Vector2(220, 60)
checkpoints = [NodePath("../Start"), NodePath("../Checkpoints/Hallway"), NodePath("../Checkpoints/Garden"), NodePath("../Checkpoints/BallCourse"), NodePath("../Checkpoints/PostBallCourse")]
current_checkpoint = 1

[node name="Checkpoints" type="Node2D" parent="."]

[node name="Hallway" type="Area2D" parent="Checkpoints"]
position = Vector2(156, 372)
script = ExtResource("4_8rbbs")
checkpoint_id = 1

[node name="CollisionShape2D" type="CollisionShape2D" parent="Checkpoints/Hallway"]
position = Vector2(3, 0)
shape = SubResource("RectangleShape2D_xcgii")

[node name="Garden" type="Area2D" parent="Checkpoints"]
position = Vector2(548, 524)
script = ExtResource("4_8rbbs")
checkpoint_id = 2

[node name="CollisionShape2D" type="CollisionShape2D" parent="Checkpoints/Garden"]
position = Vector2(16, -4)
shape = SubResource("RectangleShape2D_j3x8b")

[node name="BallCourse" type="Area2D" parent="Checkpoints"]
position = Vector2(940, 492)
script = ExtResource("4_8rbbs")
checkpoint_id = 3

[node name="CollisionShape2D" type="CollisionShape2D" parent="Checkpoints/BallCourse"]
position = Vector2(8, -4)
shape = SubResource("RectangleShape2D_265wp")

[node name="PostBallCourse" type="Area2D" parent="Checkpoints"]
position = Vector2(1212, 436)
script = ExtResource("4_8rbbs")
checkpoint_id = 4

[node name="CollisionShape2D" type="CollisionShape2D" parent="Checkpoints/PostBallCourse"]
position = Vector2(-8, 0)
shape = SubResource("RectangleShape2D_t0k1c")

[node name="PrisonRoomManager" type="Node2D" parent="." node_paths=PackedStringArray("next_room_wall", "box_puzzle_light", "switch_puzzle_light", "mandatory_puzzles")]
position = Vector2(-60, 372)
script = ExtResource("4_fpjs2")
next_room_wall = NodePath("FakeWall")
box_puzzle_light = NodePath("SimpleBoxPuzzleLight")
switch_puzzle_light = NodePath("SimpleSwitchPuzzleLight")
mandatory_puzzles = [NodePath("SimpleBoxPuzzle"), NodePath("SimpleSwitchPuzzle")]

[node name="HallwayEntryArrows" type="Node2D" parent="PrisonRoomManager"]

[node name="ArrowShooter" parent="PrisonRoomManager/HallwayEntryArrows" instance=ExtResource("16_v754x")]
position = Vector2(-64, -24)
arrow_speed = 100

[node name="ArrowShooter2" parent="PrisonRoomManager/HallwayEntryArrows" instance=ExtResource("16_v754x")]
position = Vector2(-16, -24)
arrow_speed = 100

[node name="ArrowShooter3" parent="PrisonRoomManager/HallwayEntryArrows" instance=ExtResource("16_v754x")]
position = Vector2(-8, -24)
arrow_speed = 100

[node name="ArrowShooter4" parent="PrisonRoomManager/HallwayEntryArrows" instance=ExtResource("16_v754x")]
position = Vector2(-88, 24)
target_position = Vector2(0, -8)
arrow_speed = 100

[node name="ArrowShooter5" parent="PrisonRoomManager/HallwayEntryArrows" instance=ExtResource("16_v754x")]
position = Vector2(-40, 24)
target_position = Vector2(0, -8)
arrow_speed = 100

[node name="ArrowShooter6" parent="PrisonRoomManager/HallwayEntryArrows" instance=ExtResource("16_v754x")]
position = Vector2(8, 24)
target_position = Vector2(0, -8)
arrow_speed = 100

[node name="ArrowShooter7" parent="PrisonRoomManager/HallwayEntryArrows" instance=ExtResource("16_v754x")]
position = Vector2(16, 24)
target_position = Vector2(0, -8)
arrow_speed = 100

[node name="SimpleBoxPuzzle" type="Node2D" parent="PrisonRoomManager" node_paths=PackedStringArray("boxes")]
position = Vector2(64, 112)
script = ExtResource("9_1ejn4")
boxes = [NodePath("Box")]

[node name="Box" parent="PrisonRoomManager/SimpleBoxPuzzle" instance=ExtResource("3_jiwuy")]
position = Vector2(-40, 0)

[node name="BoxSwitch" parent="PrisonRoomManager/SimpleBoxPuzzle" instance=ExtResource("4_7yk3l")]
position = Vector2(24, 0)

[node name="BoxReset" parent="PrisonRoomManager/SimpleBoxPuzzle" node_paths=PackedStringArray("box") instance=ExtResource("12_kg83l")]
position = Vector2(-40, 0)
box = NodePath("../Box")

[node name="SimpleSwitchPuzzle" type="Node2D" parent="PrisonRoomManager" node_paths=PackedStringArray("buttons")]
position = Vector2(80, -144)
script = ExtResource("10_kcb3q")
buttons = [NodePath("Button"), NodePath("Button2")]

[node name="Button" parent="PrisonRoomManager/SimpleSwitchPuzzle" node_paths=PackedStringArray("nodes") instance=ExtResource("13_nrbrh")]
position = Vector2(8, 40)
nodes = [NodePath("../FakeWall")]

[node name="FakeWall" type="StaticBody2D" parent="PrisonRoomManager/SimpleSwitchPuzzle"]
position = Vector2(24, 16)

[node name="FakeWall" type="Sprite2D" parent="PrisonRoomManager/SimpleSwitchPuzzle/FakeWall"]
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8
frame = 15

[node name="FakeWall2" type="Sprite2D" parent="PrisonRoomManager/SimpleSwitchPuzzle/FakeWall"]
position = Vector2(8, 0)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8
frame = 15

[node name="CollisionShape2D" type="CollisionShape2D" parent="PrisonRoomManager/SimpleSwitchPuzzle/FakeWall"]
position = Vector2(3.5, 0)
shape = SubResource("RectangleShape2D_x2olj")

[node name="Button2" parent="PrisonRoomManager/SimpleSwitchPuzzle" node_paths=PackedStringArray("nodes") instance=ExtResource("13_nrbrh")]
position = Vector2(-24, -8)
nodes = [NodePath("../FakeWall2")]

[node name="FakeWall2" type="StaticBody2D" parent="PrisonRoomManager/SimpleSwitchPuzzle"]
position = Vector2(-32, 16)

[node name="FakeWall" type="Sprite2D" parent="PrisonRoomManager/SimpleSwitchPuzzle/FakeWall2"]
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8
frame = 15

[node name="FakeWall2" type="Sprite2D" parent="PrisonRoomManager/SimpleSwitchPuzzle/FakeWall2"]
position = Vector2(8, 0)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8
frame = 15

[node name="FakeWall3" type="Sprite2D" parent="PrisonRoomManager/SimpleSwitchPuzzle/FakeWall2"]
position = Vector2(16, 0)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8
frame = 15

[node name="CollisionShape2D" type="CollisionShape2D" parent="PrisonRoomManager/SimpleSwitchPuzzle/FakeWall2"]
position = Vector2(8.5, 0)
shape = SubResource("RectangleShape2D_8unxy")

[node name="FakeWall" type="StaticBody2D" parent="PrisonRoomManager"]
position = Vector2(104, 0)

[node name="FakeWall" type="Sprite2D" parent="PrisonRoomManager/FakeWall"]
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8
frame = 6

[node name="FakeWall2" type="Sprite2D" parent="PrisonRoomManager/FakeWall"]
position = Vector2(0, -16)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8
frame = 6

[node name="FakeWall3" type="Sprite2D" parent="PrisonRoomManager/FakeWall"]
position = Vector2(0, -8)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8
frame = 6

[node name="FakeWall4" type="Sprite2D" parent="PrisonRoomManager/FakeWall"]
position = Vector2(0, 8)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8
frame = 6

[node name="FakeWall5" type="Sprite2D" parent="PrisonRoomManager/FakeWall"]
position = Vector2(0, 16)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8
frame = 6

[node name="FakeWall6" type="Sprite2D" parent="PrisonRoomManager/FakeWall"]
position = Vector2(8, 8)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8
frame = 6

[node name="FakeWall7" type="Sprite2D" parent="PrisonRoomManager/FakeWall"]
position = Vector2(8, 0)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8
frame = 6

[node name="FakeWall8" type="Sprite2D" parent="PrisonRoomManager/FakeWall"]
position = Vector2(8, -8)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8
frame = 6

[node name="FakeWall9" type="Sprite2D" parent="PrisonRoomManager/FakeWall"]
position = Vector2(16, -8)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8
frame = 6

[node name="FakeWall10" type="Sprite2D" parent="PrisonRoomManager/FakeWall"]
position = Vector2(16, 0)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8
frame = 6

[node name="FakeWall11" type="Sprite2D" parent="PrisonRoomManager/FakeWall"]
position = Vector2(16, 8)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8
frame = 6

[node name="CollisionShape2D" type="CollisionShape2D" parent="PrisonRoomManager/FakeWall"]
position = Vector2(8, -0.5)
shape = SubResource("RectangleShape2D_nrvhp")

[node name="SimpleSwitchPuzzleLight" type="Sprite2D" parent="PrisonRoomManager"]
position = Vector2(104, -24)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8
frame = 18

[node name="SimpleBoxPuzzleLight" type="Sprite2D" parent="PrisonRoomManager"]
position = Vector2(104, 24)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8
frame = 18

[node name="HallwayManager" type="Node2D" parent="."]
position = Vector2(-60, 372)

[node name="HallwayArrows" type="Node2D" parent="HallwayManager"]

[node name="ArrowShooter8" parent="HallwayManager/HallwayArrows" instance=ExtResource("16_v754x")]
position = Vector2(248, -32)
arrow_speed = 250
shoot_timer = 2.5

[node name="ArrowShooter9" parent="HallwayManager/HallwayArrows" instance=ExtResource("16_v754x")]
position = Vector2(256, -32)
arrow_speed = 250
shoot_timer = 2.5

[node name="ArrowShooter10" parent="HallwayManager/HallwayArrows" instance=ExtResource("16_v754x")]
position = Vector2(264, -32)
arrow_speed = 250
shoot_timer = 2.5

[node name="ArrowShooter11" parent="HallwayManager/HallwayArrows" instance=ExtResource("16_v754x")]
position = Vector2(272, -32)
arrow_speed = 250
shoot_timer = 2.5

[node name="Stairs" parent="HallwayManager" node_paths=PackedStringArray("teleport_marker") instance=ExtResource("13_1kugw")]
position = Vector2(344, 160)
teleport_marker = NodePath("TeleportLocation")

[node name="TeleportLocation" parent="HallwayManager/Stairs" instance=ExtResource("14_4nm2v")]
position = Vector2(240, -16)

[node name="GardenManager" type="Node2D" parent="." node_paths=PackedStringArray("next_room_stairs", "mandatory_puzzles")]
position = Vector2(644, 516)
script = ExtResource("15_ssj8q")
next_room_stairs = NodePath("Stairs2")
mandatory_puzzles = [NodePath("GravesPuzzle")]

[node name="GravesPuzzle" type="Node2D" parent="GardenManager" node_paths=PackedStringArray("graves")]
script = ExtResource("8_sr3y5")
graves = [NodePath("Grave"), NodePath("Grave3"), NodePath("Grave2"), NodePath("Grave5"), NodePath("Grave4"), NodePath("Grave6")]

[node name="Grave" parent="GardenManager/GravesPuzzle" node_paths=PackedStringArray("pair") instance=ExtResource("2_fe1sr")]
position = Vector2(-8, -16)
pair = NodePath("../Grave3")
jingle = ExtResource("3_v8h4p")

[node name="Grave3" parent="GardenManager/GravesPuzzle" node_paths=PackedStringArray("pair") instance=ExtResource("2_fe1sr")]
position = Vector2(16, -24)
pair = NodePath("../Grave")
jingle = ExtResource("3_v8h4p")

[node name="Grave2" parent="GardenManager/GravesPuzzle" node_paths=PackedStringArray("pair") instance=ExtResource("2_fe1sr")]
position = Vector2(24, -8)
pair = NodePath("../Grave5")
jingle = ExtResource("4_xmwgp")

[node name="Grave5" parent="GardenManager/GravesPuzzle" node_paths=PackedStringArray("pair") instance=ExtResource("2_fe1sr")]
position = Vector2(32, -48)
pair = NodePath("../Grave2")
jingle = ExtResource("4_xmwgp")

[node name="Grave4" parent="GardenManager/GravesPuzzle" node_paths=PackedStringArray("pair") instance=ExtResource("2_fe1sr")]
position = Vector2(-16, -40)
pair = NodePath("../Grave6")
jingle = ExtResource("17_02jvj")

[node name="Grave6" parent="GardenManager/GravesPuzzle" node_paths=PackedStringArray("pair") instance=ExtResource("2_fe1sr")]
position = Vector2(0, -64)
pair = NodePath("../Grave4")
jingle = ExtResource("17_02jvj")

[node name="Stairs" parent="GardenManager" node_paths=PackedStringArray("teleport_marker") instance=ExtResource("19_r6amy")]
position = Vector2(-120, 0)
teleport_marker = NodePath("TeleportLocation2")

[node name="TeleportLocation2" parent="GardenManager/Stairs" instance=ExtResource("14_4nm2v")]
position = Vector2(-240, 16)

[node name="Stairs2" parent="GardenManager" node_paths=PackedStringArray("teleport_marker") instance=ExtResource("19_r6amy")]
process_mode = 4
visible = false
position = Vector2(8, -40)
teleport_marker = NodePath("TeleportLocation")

[node name="TeleportLocation" parent="GardenManager/Stairs2" instance=ExtResource("14_4nm2v")]
position = Vector2(296, 24)

[node name="BallCourseManager" type="Node2D" parent="." node_paths=PackedStringArray("ball_puzzle_elements", "mandatory_puzzles")]
position = Vector2(1092, 436)
script = ExtResource("22_oli26")
ball_puzzle_elements = [NodePath("BallPuzzle/FakeWall2"), NodePath("BallPuzzle/VoidLayer")]
mandatory_puzzles = [NodePath("BallPuzzle")]

[node name="ArrowShooters" type="Node2D" parent="BallCourseManager"]

[node name="ArrowShooter" parent="BallCourseManager/ArrowShooters" instance=ExtResource("16_v754x")]
position = Vector2(112, -80)
target_position = Vector2(8, 0)
arrow_speed = 200
shoot_timer = 1.0
offset_start_time = 30.0

[node name="ArrowShooter2" parent="BallCourseManager/ArrowShooters" instance=ExtResource("16_v754x")]
position = Vector2(112, -64)
target_position = Vector2(8, 0)
arrow_speed = 200
shoot_timer = 1.0
offset_start_time = 20.0

[node name="ArrowShooter3" parent="BallCourseManager/ArrowShooters" instance=ExtResource("16_v754x")]
position = Vector2(112, -48)
target_position = Vector2(8, 0)
arrow_speed = 200
shoot_timer = 1.0
offset_start_time = 10.0

[node name="ArrowShooter4" parent="BallCourseManager/ArrowShooters" instance=ExtResource("16_v754x")]
position = Vector2(112, -32)
target_position = Vector2(8, 0)
arrow_speed = 200
shoot_timer = 1.0

[node name="BallPuzzle" type="Node2D" parent="BallCourseManager" node_paths=PackedStringArray("ball", "traps")]
script = ExtResource("22_d6g03")
ball = NodePath("Ball")
traps = [NodePath("TrapButton1"), NodePath("TrapButton2"), NodePath("TrapButton3"), NodePath("BallButton")]

[node name="BallSpawnPoint" type="Marker2D" parent="BallCourseManager/BallPuzzle"]
position = Vector2(-152, 0)

[node name="BallButton" parent="BallCourseManager/BallPuzzle" node_paths=PackedStringArray("ball") instance=ExtResource("13_nrbrh")]
position = Vector2(-120, 40)
script = ExtResource("23_sf041")
ball = NodePath("../Ball")

[node name="Ball" parent="BallCourseManager/BallPuzzle" node_paths=PackedStringArray("start_position") instance=ExtResource("22_kicee")]
position = Vector2(-152, 0)
start_position = NodePath("../BallSpawnPoint")
movement_dir = Vector2(1, 0)

[node name="FakeWall" type="StaticBody2D" parent="BallCourseManager/BallPuzzle" groups=["fake_wall"]]
position = Vector2(104, -8)

[node name="FakeWall" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeWall"]
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8
frame = 6

[node name="FakeWall2" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeWall"]
position = Vector2(8, 0)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8
frame = 6

[node name="FakeWall3" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeWall"]
position = Vector2(8, 8)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8
frame = 6

[node name="FakeWall4" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeWall"]
position = Vector2(8, 16)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8
frame = 6

[node name="FakeWall5" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeWall"]
position = Vector2(0, 16)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8
frame = 6

[node name="FakeWall6" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeWall"]
position = Vector2(0, 8)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8
frame = 6

[node name="CollisionShape2D" type="CollisionShape2D" parent="BallCourseManager/BallPuzzle/FakeWall"]
position = Vector2(4, 8)
shape = SubResource("RectangleShape2D_7nhl0")

[node name="FakeWall2" type="StaticBody2D" parent="BallCourseManager/BallPuzzle"]
position = Vector2(88, 24)

[node name="FakeWall" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeWall2"]
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8
frame = 15

[node name="FakeWall2" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeWall2"]
position = Vector2(8, 0)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8
frame = 15

[node name="FakeWall3" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeWall2"]
position = Vector2(-8, 0)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8
frame = 15

[node name="CollisionShape2D" type="CollisionShape2D" parent="BallCourseManager/BallPuzzle/FakeWall2"]
shape = SubResource("RectangleShape2D_q33h1")

[node name="FakeVoid" type="Area2D" parent="BallCourseManager/BallPuzzle" groups=["death"]]
position = Vector2(-80, 16)

[node name="FakeWall" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid"]
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall2" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid"]
position = Vector2(8, 0)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall3" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid"]
position = Vector2(-8, 0)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall4" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid"]
position = Vector2(0, -8)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall10" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid"]
position = Vector2(0, -16)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall11" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid"]
position = Vector2(0, -24)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall12" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid"]
position = Vector2(0, -32)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall5" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid"]
position = Vector2(8, -8)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall13" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid"]
position = Vector2(8, -16)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall14" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid"]
position = Vector2(8, -24)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall15" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid"]
position = Vector2(8, -32)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall6" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid"]
position = Vector2(-8, -8)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall7" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid"]
position = Vector2(-8, -16)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall8" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid"]
position = Vector2(-8, -24)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall9" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid"]
position = Vector2(-8, -32)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="CollisionShape2D" type="CollisionShape2D" parent="BallCourseManager/BallPuzzle/FakeVoid"]
position = Vector2(0, -16)
shape = SubResource("RectangleShape2D_c5an3")

[node name="FakeVoid2" type="Area2D" parent="BallCourseManager/BallPuzzle" groups=["death"]]
position = Vector2(-8, 16)

[node name="FakeWall" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid2"]
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall2" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid2"]
position = Vector2(8, 0)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall3" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid2"]
position = Vector2(-8, 0)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall4" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid2"]
position = Vector2(0, -8)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall10" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid2"]
position = Vector2(0, -16)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall11" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid2"]
position = Vector2(0, -24)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall12" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid2"]
position = Vector2(0, -32)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall5" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid2"]
position = Vector2(8, -8)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall13" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid2"]
position = Vector2(8, -16)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall14" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid2"]
position = Vector2(8, -24)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall15" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid2"]
position = Vector2(8, -32)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall6" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid2"]
position = Vector2(-8, -8)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall7" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid2"]
position = Vector2(-8, -16)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall8" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid2"]
position = Vector2(-8, -24)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall9" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid2"]
position = Vector2(-8, -32)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="CollisionShape2D" type="CollisionShape2D" parent="BallCourseManager/BallPuzzle/FakeVoid2"]
position = Vector2(0, -16)
shape = SubResource("RectangleShape2D_c5an3")

[node name="FakeVoid3" type="Area2D" parent="BallCourseManager/BallPuzzle" groups=["death"]]
position = Vector2(64, 16)

[node name="FakeWall" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid3"]
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall2" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid3"]
position = Vector2(8, 0)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall3" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid3"]
position = Vector2(-8, 0)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall4" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid3"]
position = Vector2(0, -8)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall10" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid3"]
position = Vector2(0, -16)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall11" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid3"]
position = Vector2(0, -24)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall12" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid3"]
position = Vector2(0, -32)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall5" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid3"]
position = Vector2(8, -8)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall13" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid3"]
position = Vector2(8, -16)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall14" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid3"]
position = Vector2(8, -24)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall15" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid3"]
position = Vector2(8, -32)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall6" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid3"]
position = Vector2(-8, -8)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall7" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid3"]
position = Vector2(-8, -16)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall8" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid3"]
position = Vector2(-8, -24)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="FakeWall9" type="Sprite2D" parent="BallCourseManager/BallPuzzle/FakeVoid3"]
position = Vector2(-8, -32)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8

[node name="CollisionShape2D" type="CollisionShape2D" parent="BallCourseManager/BallPuzzle/FakeVoid3"]
position = Vector2(0, -16)
shape = SubResource("RectangleShape2D_c5an3")

[node name="VoidLayer" type="TileMapLayer" parent="BallCourseManager/BallPuzzle"]
visible = false
z_index = 10
position = Vector2(4, 4)
tile_map_data = PackedByteArray("AAAOAPb/AAAAAAAAAAAOAPf/AAAAAAAAAAAOAPj/AAAAAAAAAAAOAPn/AAAAAAAAAAAOAPr/AAAAAAAAAAAOAPv/AAAAAAAAAAAOAPz/AAAAAAAAAAAOAP3/AAAAAAAAAAAOAP7/AAAAAAAAAAAOAP//AAAAAAAAAAAOAAAAAAAAAAAAAAAOAAEAAAAAAAAAAAAOAAIAAAAAAAAAAAAOAAMAAAAAAAAAAAAOAAQAAAAAAAAAAAAOAAUAAAAAAAAAAAAOAAYAAAAAAAAAAAAOAAcAAAAAAAAAAAAOAAgAAAAAAAAAAAAPAPb/AAAAAAAAAAAPAPf/AAAAAAAAAAAPAPj/AAAAAAAAAAAPAPn/AAAAAAAAAAAPAPr/AAAAAAAAAAAPAPv/AAAAAAAAAAAPAPz/AAAAAAAAAAAPAP3/AAAAAAAAAAAPAP7/AAAAAAAAAAAPAP//AAAAAAAAAAAPAAAAAAAAAAAAAAAPAAEAAAAAAAAAAAAPAAIAAAAAAAAAAAAPAAMAAAAAAAAAAAAPAAQAAAAAAAAAAAAPAAUAAAAAAAAAAAAPAAYAAAAAAAAAAAAPAAcAAAAAAAAAAAAPAAgAAAAAAAAAAAAQAPb/AAAAAAAAAAAQAPf/AAAAAAAAAAAQAPj/AAAAAAAAAAAQAPn/AAAAAAAAAAAQAPr/AAAAAAAAAAAQAPv/AAAAAAAAAAAQAPz/AAAAAAAAAAAQAP3/AAAAAAAAAAAQAP7/AAAAAAAAAAAQAP//AAAAAAAAAAAQAAAAAAAAAAAAAAAQAAEAAAAAAAAAAAAQAAIAAAAAAAAAAAAQAAMAAAAAAAAAAAAQAAQAAAAAAAAAAAAQAAUAAAAAAAAAAAAQAAYAAAAAAAAAAAAQAAcAAAAAAAAAAAAQAAgAAAAAAAAAAAARAPb/AAAAAAAAAAARAPf/AAAAAAAAAAARAPj/AAAAAAAAAAARAPn/AAAAAAAAAAARAPr/AAAAAAAAAAARAPv/AAAAAAAAAAARAPz/AAAAAAAAAAARAP3/AAAAAAAAAAARAP7/AAAAAAAAAAARAP//AAAAAAAAAAARAAAAAAAAAAAAAAARAAEAAAAAAAAAAAARAAIAAAAAAAAAAAARAAMAAAAAAAAAAAARAAQAAAAAAAAAAAARAAUAAAAAAAAAAAARAAYAAAAAAAAAAAARAAcAAAAAAAAAAAARAAgAAAAAAAAAAAASAPb/AAAAAAAAAAASAPf/AAAAAAAAAAASAPj/AAAAAAAAAAASAPn/AAAAAAAAAAASAPr/AAAAAAAAAAASAPv/AAAAAAAAAAASAPz/AAAAAAAAAAASAP3/AAAAAAAAAAASAP7/AAAAAAAAAAASAP//AAAAAAAAAAASAAAAAAAAAAAAAAASAAEAAAAAAAAAAAASAAIAAAAAAAAAAAASAAMAAAAAAAAAAAASAAQAAAAAAAAAAAASAAUAAAAAAAAAAAASAAYAAAAAAAAAAAASAAcAAAAAAAAAAAASAAgAAAAAAAAAAAATAPb/AAAAAAAAAAATAPf/AAAAAAAAAAATAPj/AAAAAAAAAAATAPn/AAAAAAAAAAATAPr/AAAAAAAAAAATAPv/AAAAAAAAAAATAPz/AAAAAAAAAAATAP3/AAAAAAAAAAATAP7/AAAAAAAAAAATAP//AAAAAAAAAAATAAAAAAAAAAAAAAATAAEAAAAAAAAAAAATAAIAAAAAAAAAAAATAAMAAAAAAAAAAAATAAQAAAAAAAAAAAATAAUAAAAAAAAAAAATAAYAAAAAAAAAAAATAAcAAAAAAAAAAAATAAgAAAAAAAAAAAAUAPb/AAAAAAAAAAAUAPf/AAAAAAAAAAAUAPj/AAAAAAAAAAAUAPn/AAAAAAAAAAAUAPr/AAAAAAAAAAAUAPv/AAAAAAAAAAAUAPz/AAAAAAAAAAAUAP3/AAAAAAAAAAAUAP7/AAAAAAAAAAAUAP//AAAAAAAAAAAUAAAAAAAAAAAAAAAUAAEAAAAAAAAAAAAUAAIAAAAAAAAAAAAUAAMAAAAAAAAAAAAUAAQAAAAAAAAAAAAUAAUAAAAAAAAAAAAUAAYAAAAAAAAAAAAUAAcAAAAAAAAAAAAUAAgAAAAAAAAAAAAOAO7/AAAAAAAAAAAOAO//AAAAAAAAAAAOAPD/AAAAAAAAAAAOAPH/AAAAAAAAAAAOAPL/AAAAAAAAAAAOAPP/AAAAAAAAAAAOAPT/AAAAAAAAAAAOAPX/AAAAAAAAAAAPAO7/AAAAAAAAAAAPAO//AAAAAAAAAAAPAPD/AAAAAAAAAAAPAPH/AAAAAAAAAAAPAPL/AAAAAAAAAAAPAPP/AAAAAAAAAAAPAPT/AAAAAAAAAAAPAPX/AAAAAAAAAAAQAO7/AAAAAAAAAAAQAO//AAAAAAAAAAAQAPD/AAAAAAAAAAAQAPH/AAAAAAAAAAAQAPL/AAAAAAAAAAAQAPP/AAAAAAAAAAAQAPT/AAAAAAAAAAAQAPX/AAAAAAAAAAARAO7/AAAAAAAAAAARAO//AAAAAAAAAAARAPD/AAAAAAAAAAARAPH/AAAAAAAAAAARAPL/AAAAAAAAAAARAPP/AAAAAAAAAAARAPT/AAAAAAAAAAARAPX/AAAAAAAAAAASAO7/AAAAAAAAAAASAO//AAAAAAAAAAASAPD/AAAAAAAAAAASAPH/AAAAAAAAAAASAPL/AAAAAAAAAAASAPP/AAAAAAAAAAASAPT/AAAAAAAAAAASAPX/AAAAAAAAAAATAO7/AAAAAAAAAAATAO//AAAAAAAAAAATAPD/AAAAAAAAAAATAPH/AAAAAAAAAAATAPL/AAAAAAAAAAATAPP/AAAAAAAAAAATAPT/AAAAAAAAAAATAPX/AAAAAAAAAAAUAO7/AAAAAAAAAAAUAO//AAAAAAAAAAAUAPD/AAAAAAAAAAAUAPH/AAAAAAAAAAAUAPL/AAAAAAAAAAAUAPP/AAAAAAAAAAAUAPT/AAAAAAAAAAAUAPX/AAAAAAAAAAANAPv/AAAGAAAAAAAMAO7/AAAAAAAAAAAMAO//AAAAAAAAAAAMAPD/AAAAAAAAAAAMAPH/AAAAAAAAAAAMAPL/AAAAAAAAAAAMAPP/AAAAAAAAAAAMAPT/AAAAAAAAAAAMAPX/AAAAAAAAAAAMAPb/AAAAAAAAAAAMAPf/AAAAAAAAAAAMAPj/AAAAAAAAAAAMAPn/AAAAAAAAAAAMAPr/AAAAAAAAAAANAO7/AAAAAAAAAAANAO//AAAAAAAAAAANAPD/AAAAAAAAAAANAPH/AAAAAAAAAAANAPL/AAAAAAAAAAANAPP/AAAAAAAAAAANAPT/AAAAAAAAAAANAPX/AAAAAAAAAAANAPb/AAAAAAAAAAANAPf/AAAAAAAAAAANAPj/AAAAAAAAAAANAPn/AAAAAAAAAAANAPr/AAAAAAAAAAA=")
tile_set = ExtResource("1_maeo5")

[node name="TrapButton1" parent="BallCourseManager/BallPuzzle" node_paths=PackedStringArray("nodes") instance=ExtResource("13_nrbrh")]
position = Vector2(-56, 40)
nodes = [NodePath("../FakeVoid")]

[node name="TrapButton2" parent="BallCourseManager/BallPuzzle" node_paths=PackedStringArray("nodes") instance=ExtResource("13_nrbrh")]
position = Vector2(-8, 40)
nodes = [NodePath("../FakeVoid2")]
is_active = true

[node name="TrapButton3" parent="BallCourseManager/BallPuzzle" node_paths=PackedStringArray("nodes") instance=ExtResource("13_nrbrh")]
position = Vector2(40, 40)
nodes = [NodePath("../FakeVoid3")]

[node name="BoxPuzzle" type="Node2D" parent="BallCourseManager" node_paths=PackedStringArray("boxes")]
script = ExtResource("9_1ejn4")
boxes = [NodePath("Box")]

[node name="Box" parent="BallCourseManager/BoxPuzzle" instance=ExtResource("3_jiwuy")]
position = Vector2(136, -104)

[node name="BoxSwitch" parent="BallCourseManager/BoxPuzzle" instance=ExtResource("4_7yk3l")]
position = Vector2(136, 32)

[node name="BoxReset" parent="BallCourseManager/BoxPuzzle" node_paths=PackedStringArray("box") instance=ExtResource("12_kg83l")]
position = Vector2(136, -104)
box = NodePath("../Box")

[node name="BarsButton" parent="BallCourseManager/BoxPuzzle" node_paths=PackedStringArray("nodes") instance=ExtResource("13_nrbrh")]
position = Vector2(144, -16)
nodes = [NodePath("../FakeWall")]

[node name="ArrowsButton" parent="BallCourseManager/BoxPuzzle" node_paths=PackedStringArray("nodes") instance=ExtResource("13_nrbrh")]
position = Vector2(136, -120)
nodes = [NodePath("../../ArrowShooters")]

[node name="FakeWall" type="StaticBody2D" parent="BallCourseManager/BoxPuzzle"]
position = Vector2(136, -88)

[node name="FakeWall" type="Sprite2D" parent="BallCourseManager/BoxPuzzle/FakeWall"]
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8
frame = 15

[node name="FakeWall2" type="Sprite2D" parent="BallCourseManager/BoxPuzzle/FakeWall"]
position = Vector2(8, 0)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8
frame = 15

[node name="FakeWall3" type="Sprite2D" parent="BallCourseManager/BoxPuzzle/FakeWall"]
position = Vector2(-8, 0)
texture = ExtResource("11_hi5wu")
hframes = 8
vframes = 8
frame = 15

[node name="CollisionShape2D" type="CollisionShape2D" parent="BallCourseManager/BoxPuzzle/FakeWall"]
shape = SubResource("RectangleShape2D_q33h1")

[node name="Stairs" parent="BallCourseManager" node_paths=PackedStringArray("teleport_marker") instance=ExtResource("13_1kugw")]
position = Vector2(-144, 64)
teleport_marker = NodePath("TeleportLocation")

[node name="TeleportLocation" parent="BallCourseManager/Stairs" instance=ExtResource("14_4nm2v")]
position = Vector2(-296, -24)

[connection signal="body_entered" from="Checkpoints/Hallway" to="Checkpoints/Hallway" method="_on_body_entered"]
[connection signal="body_entered" from="Checkpoints/Garden" to="Checkpoints/Garden" method="_on_body_entered"]
[connection signal="body_entered" from="Checkpoints/BallCourse" to="Checkpoints/BallCourse" method="_on_body_entered"]
[connection signal="body_entered" from="Checkpoints/PostBallCourse" to="Checkpoints/PostBallCourse" method="_on_body_entered"]
[connection signal="finish_room" from="PrisonRoomManager" to="PrisonRoomManager" method="_on_finish_room"]
[connection signal="complete_puzzle" from="PrisonRoomManager/SimpleBoxPuzzle" to="PrisonRoomManager" method="_on_simple_box_puzzle_complete_puzzle"]
[connection signal="complete_puzzle" from="PrisonRoomManager/SimpleSwitchPuzzle" to="PrisonRoomManager" method="_on_simple_switch_puzzle_complete_puzzle"]
[connection signal="finish_room" from="GardenManager" to="GardenManager" method="_on_finish_room"]
[connection signal="finish_room" from="BallCourseManager" to="BallCourseManager" method="_on_finish_room"]
[connection signal="complete_puzzle" from="BallCourseManager/BallPuzzle" to="BallCourseManager" method="_on_ball_puzzle_complete_puzzle"]
