about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorStar Rauchenberger <fefferburbia@gmail.com>2023-04-16 23:40:39 -0400
committerStar Rauchenberger <fefferburbia@gmail.com>2023-04-16 23:40:39 -0400
commitc6770ac83c49f4adb7e2c2a6ee6290f0487a3873 (patch)
tree0b3b52f31ba5663d33aa7cef02d1621d9dceeb5b
parent7aa62e5c0ac0d86e5aed2ead2a7116ea0edbffde (diff)
downloadlingo-archipelago-c6770ac83c49f4adb7e2c2a6ee6290f0487a3873.tar.gz
lingo-archipelago-c6770ac83c49f4adb7e2c2a6ee6290f0487a3873.tar.bz2
lingo-archipelago-c6770ac83c49f4adb7e2c2a6ee6290f0487a3873.zip
Implemented panel shuffle
-rw-r--r--Archipelago/client.gd12
-rw-r--r--Archipelago/load.gd57
-rw-r--r--data/LL1.yaml80
3 files changed, 139 insertions, 10 deletions
diff --git a/Archipelago/client.gd b/Archipelago/client.gd index 8f20d0a..c5f1488 100644 --- a/Archipelago/client.gd +++ b/Archipelago/client.gd
@@ -10,6 +10,12 @@ const color_items = [
10 "White", "Black", "Red", "Blue", "Green", "Brown", "Gray", "Orange", "Purple", "Yellow" 10 "White", "Black", "Red", "Blue", "Green", "Brown", "Gray", "Orange", "Purple", "Yellow"
11] 11]
12 12
13const kTHE_END = 0
14const kTHE_MASTER = 1
15
16const kNO_PANEL_SHUFFLE = 0
17const kREARRANGE_PANELS = 1
18
13var _client = WebSocketClient.new() 19var _client = WebSocketClient.new()
14var _last_state = WebSocketPeer.STATE_CLOSED 20var _last_state = WebSocketPeer.STATE_CLOSED
15var _should_process = false 21var _should_process = false
@@ -41,6 +47,8 @@ var _death_link = false
41var _victory_condition = 0 # THE END, THE MASTER 47var _victory_condition = 0 # THE END, THE MASTER
42var _door_shuffle = false 48var _door_shuffle = false
43var _color_shuffle = false 49var _color_shuffle = false
50var _panel_shuffle = 0 # none, rearrange
51var _slot_seed = 0
44 52
45var _map_loaded = false 53var _map_loaded = false
46var _held_items = [] 54var _held_items = []
@@ -165,6 +173,10 @@ func _on_data():
165 _color_shuffle = _slot_data["shuffle_colors"] 173 _color_shuffle = _slot_data["shuffle_colors"]
166 if _slot_data.has("shuffle_doors"): 174 if _slot_data.has("shuffle_doors"):
167 _door_shuffle = (_slot_data["shuffle_doors"] > 0) 175 _door_shuffle = (_slot_data["shuffle_doors"] > 0)
176 if _slot_data.has("shuffle_panels"):
177 _panel_shuffle = _slot_data["shuffle_panels"]
178 if _slot_data.has("seed"):
179 _slot_seed = _slot_data["seed"]
168 180
169 _localdata_file = "user://archipelago/%s_%d" % [_seed, _slot] 181 _localdata_file = "user://archipelago/%s_%d" % [_seed, _slot]
170 var ap_file = File.new() 182 var ap_file = File.new()
diff --git a/Archipelago/load.gd b/Archipelago/load.gd index f9dc65f..47f51a6 100644 --- a/Archipelago/load.gd +++ b/Archipelago/load.gd
@@ -38,9 +38,60 @@ func _load():
38 "answer_correct", location, "handle_correct" 38 "answer_correct", location, "handle_correct"
39 ) 39 )
40 40
41 # Randomize the panels, if necessary.
42 var rng = RandomNumberGenerator.new()
43 rng.seed = apclient._slot_seed
44
45 var gamedata = apclient.get_node("Gamedata")
46 if apclient._panel_shuffle == apclient.kREARRANGE_PANELS:
47 var panel_pools = {}
48 for panel in gamedata.panels:
49 if not panel_pools.has(panel["tag"]):
50 panel_pools[panel["tag"]] = {}
51 var pool = panel_pools[panel["tag"]]
52 var subtag = "default"
53 if panel.has("subtag"):
54 subtag = panel["subtag"]
55 if not pool.has(subtag):
56 pool[subtag] = []
57
58 var panel_node = panels_parent.get_node(panel["id"])
59 pool[subtag].append(
60 {
61 "id": panel["id"],
62 "hint": panel_node.text,
63 "answer": panel_node.answer,
64 "link": panel["link"]
65 }
66 )
67
68 for tag in panel_pools.keys():
69 if tag == "forbid":
70 continue
71
72 var pool = panel_pools[tag]
73 for subtag in pool.keys():
74 pool[subtag].sort_custom(self, "sort_by_link")
75
76 var count = pool[pool.keys()[0]].size()
77 var iota = range(0, count)
78 var order = []
79 while not iota.empty():
80 var i = rng.randi_range(0, iota.size() - 1)
81 order.append(iota[i])
82 iota.remove(i)
83
84 for subtag in pool.keys():
85 for i in range(0, count):
86 var source = pool[subtag][i]
87 var target = pool[subtag][order[i]]
88 var target_panel_node = panels_parent.get_node(target["id"])
89
90 target_panel_node.text = source["hint"]
91 target_panel_node.answer = source["answer"]
92
41 # Attach a script to every panel so that we can do things like conditionally 93 # Attach a script to every panel so that we can do things like conditionally
42 # disable them. 94 # disable them.
43 var gamedata = apclient.get_node("Gamedata")
44 var panel_script = ResourceLoader.load("user://maps/Archipelago/panel.gd") 95 var panel_script = ResourceLoader.load("user://maps/Archipelago/panel.gd")
45 for panel in gamedata.panels: 96 for panel in gamedata.panels:
46 var panel_node = panels_parent.get_node(panel["id"]) 97 var panel_node = panels_parent.get_node(panel["id"])
@@ -75,3 +126,7 @@ func _load():
75 # Process any items received while the map was loading, and send the checks 126 # Process any items received while the map was loading, and send the checks
76 # from the save load. 127 # from the save load.
77 apclient.mapFinishedLoading() 128 apclient.mapFinishedLoading()
129
130
131func sort_by_link(a, b):
132 return a["link"] < b["link"]
diff --git a/data/LL1.yaml b/data/LL1.yaml index 87cdde7..8c9bea2 100644 --- a/data/LL1.yaml +++ b/data/LL1.yaml
@@ -65,10 +65,12 @@
65- id: Synonym Room/Panel_compose_write 65- id: Synonym Room/Panel_compose_write
66 color: white 66 color: white
67 tag: double botwhite 67 tag: double botwhite
68 subtag: left
68 link: syn WRITE 69 link: syn WRITE
69- id: Synonym Room/Panel_record_write 70- id: Synonym Room/Panel_record_write
70 color: white 71 color: white
71 tag: double botwhite 72 tag: double botwhite
73 subtag: right
72 link: syn WRITE 74 link: syn WRITE
73- id: Synonym Room/Panel_category_type 75- id: Synonym Room/Panel_category_type
74 color: white 76 color: white
@@ -79,10 +81,12 @@
79- id: Synonym Room/Panel_duplicate_same 81- id: Synonym Room/Panel_duplicate_same
80 color: white 82 color: white
81 tag: double botwhite 83 tag: double botwhite
84 subtag: left
82 link: syn SAME 85 link: syn SAME
83- id: Synonym Room/Panel_identical_same 86- id: Synonym Room/Panel_identical_same
84 color: white 87 color: white
85 tag: double botwhite 88 tag: double botwhite
89 subtag: right
86 link: syn SAME 90 link: syn SAME
87- id: Synonym Room/Panel_distant_far 91- id: Synonym Room/Panel_distant_far
88 color: white 92 color: white
@@ -93,10 +97,12 @@
93- id: Synonym Room/Panel_giggle_laugh 97- id: Synonym Room/Panel_giggle_laugh
94 color: white 98 color: white
95 tag: double botwhite 99 tag: double botwhite
100 subtag: left
96 link: syn LAUGH 101 link: syn LAUGH
97- id: Synonym Room/Panel_chuckle_laugh 102- id: Synonym Room/Panel_chuckle_laugh
98 color: white 103 color: white
99 tag: double botwhite 104 tag: double botwhite
105 subtag: right
100 link: syn LAUGH 106 link: syn LAUGH
101- id: Synonym Room/Panel_snitch_rat 107- id: Synonym Room/Panel_snitch_rat
102 color: white 108 color: white
@@ -107,10 +113,12 @@
107- id: Synonym Room/Panel_plunge_fall 113- id: Synonym Room/Panel_plunge_fall
108 color: white 114 color: white
109 tag: double botwhite 115 tag: double botwhite
116 subtag: left
110 link: syn FALL 117 link: syn FALL
111- id: Synonym Room/Panel_autumn_fall 118- id: Synonym Room/Panel_autumn_fall
112 color: white 119 color: white
113 tag: double botwhite 120 tag: double botwhite
121 subtag: right
114 link: syn FALL 122 link: syn FALL
115- id: Synonym Room/Panel_growths_warts 123- id: Synonym Room/Panel_growths_warts
116 color: white 124 color: white
@@ -163,10 +171,12 @@
163- id: Heteronym Room/Panel_mine_mine 171- id: Heteronym Room/Panel_mine_mine
164 color: white 172 color: white
165 tag: double midwhite 173 tag: double midwhite
174 subtag: left
166 link: exact MINE 175 link: exact MINE
167- id: Heteronym Room/Panel_mine_mine_2 176- id: Heteronym Room/Panel_mine_mine_2
168 color: white 177 color: white
169 tag: double midwhite 178 tag: double midwhite
179 subtag: right
170 link: exact MINE 180 link: exact MINE
171- id: Heteronym Room/Panel_bow_bow 181- id: Heteronym Room/Panel_bow_bow
172 color: white 182 color: white
@@ -177,10 +187,12 @@
177- id: Heteronym Room/Panel_mobile_mobile 187- id: Heteronym Room/Panel_mobile_mobile
178 color: white 188 color: white
179 tag: double midwhite 189 tag: double midwhite
190 subtag: left
180 link: exact MOBILE 191 link: exact MOBILE
181- id: Heteronym Room/Panel_mobile_mobile_2 192- id: Heteronym Room/Panel_mobile_mobile_2
182 color: white 193 color: white
183 tag: double midwhite 194 tag: double midwhite
195 subtag: right
184 link: exact MOBILE 196 link: exact MOBILE
185- id: Heteronym Room/Panel_desert_desert 197- id: Heteronym Room/Panel_desert_desert
186 color: white 198 color: white
@@ -205,10 +217,12 @@
205- id: Heteronym Room/Panel_two_to 217- id: Heteronym Room/Panel_two_to
206 color: white 218 color: white
207 tag: double topwhite 219 tag: double topwhite
220 subtag: left
208 link: hp TWO 221 link: hp TWO
209- id: Heteronym Room/Panel_two_too 222- id: Heteronym Room/Panel_two_too
210 color: white 223 color: white
211 tag: double topwhite 224 tag: double topwhite
225 subtag: right
212 link: hp TWO 226 link: hp TWO
213- id: Heteronym Room/Panel_write_right 227- id: Heteronym Room/Panel_write_right
214 color: white 228 color: white
@@ -219,10 +233,12 @@
219- id: Heteronym Room/Panel_not_knot 233- id: Heteronym Room/Panel_not_knot
220 color: white 234 color: white
221 tag: double topwhite 235 tag: double topwhite
236 subtag: left
222 link: hp NOT 237 link: hp NOT
223- id: Heteronym Room/Panel_not_naught 238- id: Heteronym Room/Panel_not_naught
224 color: white 239 color: white
225 tag: double topwhite 240 tag: double topwhite
241 subtag: right
226 link: hp NOT 242 link: hp NOT
227- id: Heteronym Room/Panel_bear_bare 243- id: Heteronym Room/Panel_bear_bare
228 color: white 244 color: white
@@ -296,10 +312,12 @@
296- id: Truncate Room/Panel_needle_eye 312- id: Truncate Room/Panel_needle_eye
297 color: red 313 color: red
298 tag: double botred 314 tag: double botred
315 subtag: left
299 link: mero EYE 316 link: mero EYE
300- id: Truncate Room/Panel_face_eye 317- id: Truncate Room/Panel_face_eye
301 color: red 318 color: red
302 tag: double botred 319 tag: double botred
320 subtag: right
303 link: mero EYE 321 link: mero EYE
304- id: Truncate Room/Panel_sign_sigh 322- id: Truncate Room/Panel_sign_sigh
305 color: red 323 color: red
@@ -309,11 +327,13 @@
309 tag: topred 327 tag: topred
310- id: Truncate Room/Panel_undead_dead 328- id: Truncate Room/Panel_undead_dead
311 color: red 329 color: red
312 tag: midred 330 tag: double midred
331 subtag: left
313 link: trunc DEAD 332 link: trunc DEAD
314- id: Truncate Room/Panel_deadline_dead 333- id: Truncate Room/Panel_deadline_dead
315 color: red 334 color: red
316 tag: midred 335 tag: double midred
336 subtag: right
317 link: trunc DEAD 337 link: trunc DEAD
318- id: Truncate Room/Panel_sushi_hi 338- id: Truncate Room/Panel_sushi_hi
319 color: red 339 color: red
@@ -323,11 +343,13 @@
323 tag: midred 343 tag: midred
324- id: Truncate Room/Panel_landmass_mass 344- id: Truncate Room/Panel_landmass_mass
325 color: red 345 color: red
326 tag: midred 346 tag: double midred
347 subtag: left
327 link: trunc MASS 348 link: trunc MASS
328- id: Truncate Room/Panel_massacred_mass 349- id: Truncate Room/Panel_massacred_mass
329 color: red 350 color: red
330 tag: midred 351 tag: double midred
352 subtag: right
331 link: trunc MASS 353 link: trunc MASS
332- id: Truncate Room/Panel_airplane_plain 354- id: Truncate Room/Panel_airplane_plain
333 color: red 355 color: red
@@ -338,10 +360,12 @@
338- id: Truncate Room/Panel_mouth_teeth 360- id: Truncate Room/Panel_mouth_teeth
339 color: red 361 color: red
340 tag: double botred 362 tag: double botred
363 subtag: left
341 link: mero TEETH 364 link: mero TEETH
342- id: Truncate Room/Panel_saw_teeth 365- id: Truncate Room/Panel_saw_teeth
343 color: red 366 color: red
344 tag: double botred 367 tag: double botred
368 subtag: right
345 link: mero TEETH 369 link: mero TEETH
346- id: Truncate Room/Panel_hand_finger 370- id: Truncate Room/Panel_hand_finger
347 color: red 371 color: red
@@ -409,10 +433,12 @@
409- id: Blue Room/Panel_mouth_face 433- id: Blue Room/Panel_mouth_face
410 color: blue 434 color: blue
411 tag: double botblue 435 tag: double botblue
436 subtag: left
412 link: holo FACE 437 link: holo FACE
413- id: Blue Room/Panel_eye_face 438- id: Blue Room/Panel_eye_face
414 color: blue 439 color: blue
415 tag: double botblue 440 tag: double botblue
441 subtag: right
416 link: holo FACE 442 link: holo FACE
417- id: Blue Room/Panel_toucan_bird 443- id: Blue Room/Panel_toucan_bird
418 color: blue 444 color: blue
@@ -423,10 +449,12 @@
423- id: Blue Room/Panel_ice_eyesight 449- id: Blue Room/Panel_ice_eyesight
424 color: blue 450 color: blue
425 tag: double topblue 451 tag: double topblue
452 subtag: left
426 link: hex EYESIGHT 453 link: hex EYESIGHT
427- id: Blue Room/Panel_height_eyesight 454- id: Blue Room/Panel_height_eyesight
428 color: blue 455 color: blue
429 tag: double topblue 456 tag: double topblue
457 subtag: right
430 link: hex EYESIGHT 458 link: hex EYESIGHT
431- id: Blue Room/Panel_eye_hi 459- id: Blue Room/Panel_eye_hi
432 color: blue 460 color: blue
@@ -437,10 +465,12 @@
437- id: Blue Room/Panel_just_readjust 465- id: Blue Room/Panel_just_readjust
438 color: blue 466 color: blue
439 tag: double midblue 467 tag: double midblue
468 subtag: left
440 link: exp READJUST 469 link: exp READJUST
441- id: Blue Room/Panel_read_readjust 470- id: Blue Room/Panel_read_readjust
442 color: blue 471 color: blue
443 tag: double midblue 472 tag: double midblue
473 subtag: right
444 link: exp READJUST 474 link: exp READJUST
445- id: Blue Room/Panel_ate_primate 475- id: Blue Room/Panel_ate_primate
446 color: blue 476 color: blue
@@ -451,10 +481,12 @@
451- id: Blue Room/Panel_continent_planet 481- id: Blue Room/Panel_continent_planet
452 color: blue 482 color: blue
453 tag: double botblue 483 tag: double botblue
484 subtag: left
454 link: holo PLANET 485 link: holo PLANET
455- id: Blue Room/Panel_ocean_planet 486- id: Blue Room/Panel_ocean_planet
456 color: blue 487 color: blue
457 tag: double botblue 488 tag: double botblue
489 subtag: right
458 link: holo PLANET 490 link: holo PLANET
459- id: Blue Room/Panel_wall_room 491- id: Blue Room/Panel_wall_room
460 color: blue 492 color: blue
@@ -468,10 +500,12 @@
468- id: Sun Room/Panel_warred_drawer 500- id: Sun Room/Panel_warred_drawer
469 color: yellow 501 color: yellow
470 tag: double midyellow 502 tag: double midyellow
503 subtag: left
471 link: ana DRAWER 504 link: ana DRAWER
472- id: Sun Room/Panel_redraw_drawer 505- id: Sun Room/Panel_redraw_drawer
473 color: yellow 506 color: yellow
474 tag: double midyellow 507 tag: double midyellow
508 subtag: right
475 link: ana DRAWER 509 link: ana DRAWER
476- id: Sun Room/Panel_adder_dread 510- id: Sun Room/Panel_adder_dread
477 color: yellow 511 color: yellow
@@ -482,10 +516,12 @@
482- id: Sun Room/Panel_stone_notes 516- id: Sun Room/Panel_stone_notes
483 color: yellow 517 color: yellow
484 tag: double midyellow 518 tag: double midyellow
519 subtag: left
485 link: ana NOTES 520 link: ana NOTES
486- id: Sun Room/Panel_onset_notes 521- id: Sun Room/Panel_onset_notes
487 color: yellow 522 color: yellow
488 tag: double midyellow 523 tag: double midyellow
524 subtag: right
489 link: ana NOTES 525 link: ana NOTES
490- id: Sun Room/Panel_rat_art 526- id: Sun Room/Panel_rat_art
491 color: yellow 527 color: yellow
@@ -496,10 +532,12 @@
496- id: Sun Room/Panel_arts_star 532- id: Sun Room/Panel_arts_star
497 color: yellow 533 color: yellow
498 tag: double midyellow 534 tag: double midyellow
535 subtag: left
499 link: ana STAR 536 link: ana STAR
500- id: Sun Room/Panel_tsar_star 537- id: Sun Room/Panel_tsar_star
501 color: yellow 538 color: yellow
502 tag: double midyellow 539 tag: double midyellow
540 subtag: right
503 link: ana STAR 541 link: ana STAR
504- id: Sun Room/Panel_state_taste 542- id: Sun Room/Panel_state_taste
505 color: yellow 543 color: yellow
@@ -510,10 +548,12 @@
510- id: Sun Room/Panel_dear_read 548- id: Sun Room/Panel_dear_read
511 color: yellow 549 color: yellow
512 tag: double midyellow 550 tag: double midyellow
551 subtag: left
513 link: ana READ 552 link: ana READ
514- id: Sun Room/Panel_dare_read 553- id: Sun Room/Panel_dare_read
515 color: yellow 554 color: yellow
516 tag: double midyellow 555 tag: double midyellow
556 subtag: right
517 link: ana READ 557 link: ana READ
518- id: Sun Room/Panel_seam_same 558- id: Sun Room/Panel_seam_same
519 color: yellow 559 color: yellow
@@ -565,6 +605,7 @@
565- id: Shuffle Room/Panel_amen_mean 605- id: Shuffle Room/Panel_amen_mean
566 color: yellow 606 color: yellow
567 tag: double midyellow 607 tag: double midyellow
608 subtag: left
568 link: ana MEAN 609 link: ana MEAN
569- id: Shuffle Room/Panel_behind 610- id: Shuffle Room/Panel_behind
570 color: yellow 611 color: yellow
@@ -572,6 +613,7 @@
572- id: Shuffle Room/Panel_name_mean 613- id: Shuffle Room/Panel_name_mean
573 color: yellow 614 color: yellow
574 tag: double midyellow 615 tag: double midyellow
616 subtag: right
575 link: ana MEAN 617 link: ana MEAN
576- id: Shuffle Room/Panel_crossroads_crossroads 618- id: Shuffle Room/Panel_crossroads_crossroads
577 color: white 619 color: white
@@ -851,10 +893,12 @@
851- id: Rhyme Room/Panel_move_love 893- id: Rhyme Room/Panel_move_love
852 color: purple 894 color: purple
853 tag: double midpurp 895 tag: double midpurp
896 subtag: left
854 link: change STARS 897 link: change STARS
855- id: Rhyme Room/Panel_stove_love 898- id: Rhyme Room/Panel_stove_love
856 color: purple 899 color: purple
857 tag: double midpurp 900 tag: double midpurp
901 subtag: right
858 link: change STARS 902 link: change STARS
859- id: Rhyme Room/Panel_scope_type 903- id: Rhyme Room/Panel_scope_type
860 color: purple 904 color: purple
@@ -866,10 +910,12 @@
866- id: Rhyme Room/Panel_sweat_great 910- id: Rhyme Room/Panel_sweat_great
867 color: purple 911 color: purple
868 tag: double midpurp 912 tag: double midpurp
913 subtag: left
869 link: change GREAT 914 link: change GREAT
870- id: Rhyme Room/Panel_beat_great 915- id: Rhyme Room/Panel_beat_great
871 color: purple 916 color: purple
872 tag: double midpurp 917 tag: double midpurp
918 subtag: right
873 link: change GREAT 919 link: change GREAT
874- id: Rhyme Room/Panel_alumni_hi 920- id: Rhyme Room/Panel_alumni_hi
875 color: purple 921 color: purple
@@ -882,10 +928,12 @@
882- id: Rhyme Room/Panel_knight_write 928- id: Rhyme Room/Panel_knight_write
883 color: purple 929 color: purple
884 tag: double toppurp 930 tag: double toppurp
931 subtag: left
885 link: change WRITE 932 link: change WRITE
886- id: Rhyme Room/Panel_byte_write 933- id: Rhyme Room/Panel_byte_write
887 color: purple 934 color: purple
888 tag: double toppurp 935 tag: double toppurp
936 subtag: right
889 link: change WRITE 937 link: change WRITE
890- id: Rhyme Room/Panel_maim_same 938- id: Rhyme Room/Panel_maim_same
891 color: purple 939 color: purple
@@ -1644,7 +1692,7 @@
1644 tag: botbrown 1692 tag: botbrown
1645- id: Wonderland Room/Panel_wood_table 1693- id: Wonderland Room/Panel_wood_table
1646 color: brown 1694 color: brown
1647 tag: midbrown 1695 tag: botbrown
1648- id: Wonderland Room/Panel_fireplace_fire 1696- id: Wonderland Room/Panel_fireplace_fire
1649 color: red 1697 color: red
1650 tag: mid bot red 1698 tag: mid bot red
@@ -2103,14 +2151,14 @@
2103 subtag: bot 2151 subtag: bot
2104 link: xru LAKE 2152 link: xru LAKE
2105- id: Ceiling Room/Panel_red_bot_3 2153- id: Ceiling Room/Panel_red_bot_3
2106 color: blue 2154 color: red
2107 tag: blue mid red bot 2155 tag: blue mid red bot
2108 subtag: mid 2156 subtag: bot
2109 link: xur HOURS 2157 link: xur HOURS
2110- id: Ceiling Room/Panel_blue_mid_3 2158- id: Ceiling Room/Panel_blue_mid_3
2111 color: red 2159 color: blue
2112 tag: blue mid red bot 2160 tag: blue mid red bot
2113 subtag: bot 2161 subtag: mid
2114 link: xur HOURS 2162 link: xur HOURS
2115- id: Ceiling Room/Panel_red_top_4 2163- id: Ceiling Room/Panel_red_top_4
2116 color: red 2164 color: red
@@ -2284,18 +2332,22 @@
2284- id: Chemistry Room/Panel_blue_bot_5 2332- id: Chemistry Room/Panel_blue_bot_5
2285 color: blue 2333 color: blue
2286 tag: double botblue 2334 tag: double botblue
2335 subtag: left
2287 link: holo SALT 2336 link: holo SALT
2288- id: Chemistry Room/Panel_blue_bot_6 2337- id: Chemistry Room/Panel_blue_bot_6
2289 color: blue 2338 color: blue
2290 tag: double botblue 2339 tag: double botblue
2340 subtag: right
2291 link: holo SALT 2341 link: holo SALT
2292- id: Chemistry Room/Panel_blue_top_1 2342- id: Chemistry Room/Panel_blue_top_1
2293 color: blue 2343 color: blue
2294 tag: double topblue 2344 tag: double topblue
2345 subtag: left
2295 link: exp CHEMISTRY 2346 link: exp CHEMISTRY
2296- id: Chemistry Room/Panel_blue_top_2 2347- id: Chemistry Room/Panel_blue_top_2
2297 color: blue 2348 color: blue
2298 tag: double topblue 2349 tag: double topblue
2350 subtag: right
2299 link: exp CHEMISTRY 2351 link: exp CHEMISTRY
2300- id: Chemistry Room/Panel_long_bot_1 2352- id: Chemistry Room/Panel_long_bot_1
2301 color: 2353 color:
@@ -2371,6 +2423,7 @@
2371- id: Chemistry Room/Panel_physics_9 2423- id: Chemistry Room/Panel_physics_9
2372 color: purple 2424 color: purple
2373 tag: double midpurp 2425 tag: double midpurp
2426 subtag: left
2374 link: change GRAVITY 2427 link: change GRAVITY
2375- id: Chemistry Room/Panel_physics_10 2428- id: Chemistry Room/Panel_physics_10
2376 color: yellow 2429 color: yellow
@@ -2390,6 +2443,7 @@
2390- id: Chemistry Room/Panel_biology_4 2443- id: Chemistry Room/Panel_biology_4
2391 color: red 2444 color: red
2392 tag: double botred 2445 tag: double botred
2446 subtag: right
2393 link: mero SPINE 2447 link: mero SPINE
2394- id: Chemistry Room/Panel_biology_5 2448- id: Chemistry Room/Panel_biology_5
2395 color: red 2449 color: red
@@ -2403,6 +2457,7 @@
2403- id: Chemistry Room/Panel_biology_8 2457- id: Chemistry Room/Panel_biology_8
2404 color: red 2458 color: red
2405 tag: double botred 2459 tag: double botred
2460 subtag: left
2406 link: mero SPINE 2461 link: mero SPINE
2407- id: Chemistry Room/Panel_biology_9 2462- id: Chemistry Room/Panel_biology_9
2408 color: purple 2463 color: purple
@@ -2410,6 +2465,7 @@
2410- id: Chemistry Room/Panel_biology_10 2465- id: Chemistry Room/Panel_biology_10
2411 color: purple 2466 color: purple
2412 tag: double midpurp 2467 tag: double midpurp
2468 subtag: right
2413 link: change GRAVITY 2469 link: change GRAVITY
2414- id: Challenge Room/Panel_challenge_challenge 2470- id: Challenge Room/Panel_challenge_challenge
2415 color: white 2471 color: white
@@ -2436,6 +2492,7 @@
2436- id: Challenge Room/Panel_strawberries_mold 2492- id: Challenge Room/Panel_strawberries_mold
2437 color: brown 2493 color: brown
2438 tag: double botbrown 2494 tag: double botbrown
2495 subtag: left
2439 link: time MOLD 2496 link: time MOLD
2440- id: Challenge Room/Panel_grub_burger 2497- id: Challenge Room/Panel_grub_burger
2441 color: 2498 color:
@@ -2445,6 +2502,7 @@
2445- id: Challenge Room/Panel_bread_mold 2502- id: Challenge Room/Panel_bread_mold
2446 color: brown 2503 color: brown
2447 tag: double botbrown 2504 tag: double botbrown
2505 subtag: right
2448 link: time MOLD 2506 link: time MOLD
2449- id: Challenge Room/Panel_color_gray 2507- id: Challenge Room/Panel_color_gray
2450 color: gray 2508 color: gray
@@ -2508,18 +2566,22 @@
2508- id: Open Areas/Panel_rise_horizon 2566- id: Open Areas/Panel_rise_horizon
2509 color: blue 2567 color: blue
2510 tag: double topblue 2568 tag: double topblue
2569 subtag: left
2511 link: expand HORIZON 2570 link: expand HORIZON
2512- id: Open Areas/Panel_rise_sunrise 2571- id: Open Areas/Panel_rise_sunrise
2513 color: blue 2572 color: blue
2514 tag: double topblue 2573 tag: double topblue
2574 subtag: left
2515 link: expand SUNRISE 2575 link: expand SUNRISE
2516- id: Open Areas/Panel_son_horizon 2576- id: Open Areas/Panel_son_horizon
2517 color: blue 2577 color: blue
2518 tag: double topblue 2578 tag: double topblue
2579 subtag: right
2519 link: expand HORIZON 2580 link: expand HORIZON
2520- id: Open Areas/Panel_son_sunrise 2581- id: Open Areas/Panel_son_sunrise
2521 color: blue 2582 color: blue
2522 tag: double topblue 2583 tag: double topblue
2584 subtag: right
2523 link: expand SUNRISE 2585 link: expand SUNRISE
2524- id: Open Areas/Panel_smile_smile 2586- id: Open Areas/Panel_smile_smile
2525 color: white 2587 color: white