diff --git a/worlds/witness/Options.py b/worlds/witness/Options.py index 2975696a..1b539f6f 100644 --- a/worlds/witness/Options.py +++ b/worlds/witness/Options.py @@ -58,6 +58,31 @@ class ShuffleVaultBoxes(Toggle): display_name = "Shuffle Vault Boxes" +class ShuffleEnvironmentalPuzzles(Choice): + """ + Add Environmental/Obelisk Puzzles into the location pool. + In "individual", every Environmental Puzzle sends an item. + In "obelisk_sides", completing every puzzle on one side of an Obelisk sends an item. + """ + display_name = "Shuffle Environmental Puzzles" + option_off = 0 + option_individual = 1 + option_obelisk_sides = 2 + + +class ShuffleDog(Toggle): + """Add petting the Town dog into the location pool.""" + + display_name = "Pet the Dog" + + +class EnvironmentalPuzzlesDifficulty(Choice): + display_name = "Environmental Puzzles Difficulty" + option_normal = 0 + option_tedious = 1 + option_eclipse = 2 + + class ShufflePostgame(Toggle): """Adds locations into the pool that are guaranteed to become accessible after or at the same time as your goal. Use this if you don't play with release on victory. IMPORTANT NOTE: The possibility of your second @@ -81,6 +106,7 @@ class PuzzleRandomization(Choice): display_name = "Puzzle Randomization" option_sigma_normal = 0 option_sigma_expert = 1 + option_none = 2 class MountainLasers(Range): @@ -133,6 +159,8 @@ the_witness_options: Dict[str, type] = { "disable_non_randomized_puzzles": DisableNonRandomizedPuzzles, "shuffle_discarded_panels": ShuffleDiscardedPanels, "shuffle_vault_boxes": ShuffleVaultBoxes, + "shuffle_EPs": ShuffleEnvironmentalPuzzles, + "EP_difficulty": EnvironmentalPuzzlesDifficulty, "shuffle_postgame": ShufflePostgame, "victory_condition": VictoryCondition, "mountain_lasers": MountainLasers, diff --git a/worlds/witness/WitnessLogic.txt b/worlds/witness/WitnessLogic.txt index 2bb0b5ca..85bf7d40 100644 --- a/worlds/witness/WitnessLogic.txt +++ b/worlds/witness/WitnessLogic.txt @@ -1,6 +1,11 @@ -First Hallway (First Hallway) - Entry - True - Tutorial - 0x00182: +Entry (Entry): + +First Hallway (First Hallway) - Entry - True - First Hallway Room - 0x00064: 158000 - 0x00064 (Straight) - True - True -158001 - 0x00182 (Bend) - 0x00064 - True +159510 - 0x01848 (EP) - 0x00064 - True + +First Hallway Room (First Hallway) - Tutorial - 0x00182: +158001 - 0x00182 (Bend) - True - True Tutorial (Tutorial) - Outside Tutorial - 0x03629: 158002 - 0x00293 (Front Center) - True - True @@ -10,8 +15,11 @@ Tutorial (Tutorial) - Outside Tutorial - 0x03629: 158006 - 0x0A3B2 (Back Right) - True - True 158007 - 0x03629 (Gate Open) - 0x002C2 & 0x0A3B5 & 0x0A3B2 - True 158008 - 0x03505 (Gate Close) - 0x2FAF6 - True -158009 - 0x0C335 (Pillar) - True - Triangles - True +158009 - 0x0C335 (Pillar) - True - Triangles 158010 - 0x0C373 (Patio Floor) - 0x0C335 - Dots +159512 - 0x33530 (Cloud EP) - True - True +159513 - 0x33600 (Patio Flowers EP) - 0x0C373 - True +159517 - 0x3352F (Gate EP) - 0x03505 - True Outside Tutorial (Outside Tutorial) - Outside Tutorial Path To Outpost - 0x03BA2: 158650 - 0x033D4 (Vault) - True - Dots & Black/White Squares @@ -31,6 +39,10 @@ Outside Tutorial (Outside Tutorial) - Outside Tutorial Path To Outpost - 0x03BA2 158025 - 0x00020 (Tree Row 8) - 0x0001F - Black/White Squares 158026 - 0x00021 (Tree Row 9) - 0x00020 - Black/White Squares Door - 0x03BA2 (Outpost Path) - 0x0A3B5 +159511 - 0x03D06 (Garden EP) - True - True +159514 - 0x28A2F (Town Sewer EP) - True - True +159516 - 0x334A3 (Path EP) - True - True +159500 - 0x035C7 (Tractor EP) - True - True Outside Tutorial Path To Outpost (Outside Tutorial) - Outside Tutorial Outpost - 0x0A170: 158011 - 0x0A171 (Outpost Entry Panel) - True - Dots & Full Dots @@ -41,12 +53,14 @@ Outside Tutorial Outpost (Outside Tutorial) - Outside Tutorial - 0x04CA3: Door - 0x04CA3 (Outpost Exit) - 0x04CA4 158600 - 0x17CFB (Discard) - True - Triangles -Main Island () - Outside Tutorial - True: +Main Island (Main Island) - Outside Tutorial - True: +159550 - 0x28B91 (Thundercloud EP) - 0x09F98 & 0x012FB - True Outside Glass Factory (Glass Factory) - Main Island - True - Inside Glass Factory - 0x01A29: 158027 - 0x01A54 (Entry Panel) - True - Symmetry Door - 0x01A29 (Entry) - 0x01A54 158601 - 0x3C12B (Discard) - True - Triangles +159002 - 0x28B8A (Vase EP) - 0x01A54 - True Inside Glass Factory (Glass Factory) - Inside Glass Factory Behind Back Wall - 0x0D7ED: 158028 - 0x00086 (Back Wall 1) - True - Symmetry @@ -95,6 +109,7 @@ Symmetry Island Lower (Symmetry Island) - Symmetry Island Upper - 0x18269: 158063 - 0x00B8D (Scenery Outlines 5) - 0x00B53 - Symmetry 158064 - 0x1C349 (Upper Panel) - 0x00076 - Symmetry & Dots Door - 0x18269 (Upper) - 0x1C349 +159000 - 0x0332B (Glass Factory Black Line Reflection EP) - True - True Symmetry Island Upper (Symmetry Island): 158065 - 0x00A52 (Yellow 1) - True - Symmetry & Colored Dots @@ -104,7 +119,8 @@ Symmetry Island Upper (Symmetry Island): 158069 - 0x00A64 (Blue 2) - 0x00A61 & 0x00A52 - Symmetry & Colored Dots 158070 - 0x00A68 (Blue 3) - 0x00A64 & 0x00A57 - Symmetry & Colored Dots 158700 - 0x0360D (Laser Panel) - 0x00A68 - True -Laser - 0x00509 (Laser) - 0x0360D - True +Laser - 0x00509 (Laser) - 0x0360D +159001 - 0x03367 (Glass Factory Black Line EP) - True - True Orchard (Orchard) - Main Island - True - Orchard Beyond First Gate - 0x03307: 158071 - 0x00143 (Apple Tree 1) - True - True @@ -134,9 +150,18 @@ Desert Outside (Desert) - Main Island - True - Desert Floodlight Room - 0x09FEE: 158084 - 0x09F94 (Surface 8) - 0x0A053 & 0x09F86 - True 158085 - 0x09F86 (Surface 8 Control) - 0x0A053 - True 158086 - 0x0C339 (Light Room Entry Panel) - 0x09F94 - True -Door - 0x09FEE (Light Room Entry) - 0x0C339 - True +Door - 0x09FEE (Light Room Entry) - 0x0C339 158701 - 0x03608 (Laser Panel) - 0x012D7 & 0x0A15F - True Laser - 0x012FB (Laser) - 0x03608 +159020 - 0x3351D (Sand Snake EP) - True - True +159030 - 0x0053C (Facade Right EP) - True - True +159031 - 0x00771 (Facade Left EP) - True - True +159032 - 0x335C8 (Stairs Left EP) - True - True +159033 - 0x335C9 (Stairs Right EP) - True - True +159036 - 0x220E4 (Broken Wall Straight EP) - True - True +159037 - 0x220E5 (Broken Wall Bend EP) - True - True +159040 - 0x334B9 (Shore EP) - True - True +159041 - 0x334BC (Island EP) - True - True Desert Floodlight Room (Desert) - Desert Pond Room - 0x0C2C3: 158087 - 0x09FAA (Light Control) - True - True @@ -153,6 +178,8 @@ Desert Pond Room (Desert) - Desert Water Levels Room - 0x0A24B: 158095 - 0x18313 (Pond Room 5) - 0x0078D - True 158096 - 0x0A249 (Flood Room Entry Panel) - 0x18313 - True Door - 0x0A24B (Flood Room Entry) - 0x0A249 +159043 - 0x0A14C (Pond Room Near Reflection EP) - True - True +159044 - 0x0A14D (Pond Room Far Reflection EP) - True - True Desert Water Levels Room (Desert) - Desert Elevator Room - 0x0C316: 158097 - 0x1C2DF (Reduce Water Level Far Left) - True - True @@ -170,6 +197,7 @@ Desert Water Levels Room (Desert) - Desert Elevator Room - 0x0C316: 158109 - 0x17ECA (Flood Room 5) - 0x0117A & 0x1C260 & 0x1831C - True 158110 - 0x18076 (Flood Room 6) - 0x17ECA & 0x1C260 & 0x1831C - True Door - 0x0C316 (Elevator Room Entry) - 0x18076 +159034 - 0x337F8 (Flood Room EP) - 0x1C2DF - True Desert Elevator Room (Desert) - Desert Lowest Level Inbetween Shortcuts - 0x012FB: 158111 - 0x17C31 (Final Transparent) - True - True @@ -178,22 +206,31 @@ Desert Elevator Room (Desert) - Desert Lowest Level Inbetween Shortcuts - 0x012F 158115 - 0x0A15C (Final Bent 1) - True - True 158116 - 0x09FFF (Final Bent 2) - 0x0A15C - True 158117 - 0x0A15F (Final Bent 3) - 0x09FFF - True +159035 - 0x037BB (Elevator EP) - 0x012FB - True Desert Lowest Level Inbetween Shortcuts (Desert): -Outside Quarry (Quarry) - Main Island - True - Quarry Between Entrys - 0x09D6F: +Outside Quarry (Quarry) - Main Island - True - Quarry Between Entrys - 0x09D6F - Quarry Elevator - TrueOneWay: 158118 - 0x09E57 (Entry 1 Panel) - True - Black/White Squares -158120 - 0x17CC4 (Elevator Control) - 0x0367C - Dots & Eraser 158603 - 0x17CF0 (Discard) - True - Triangles 158702 - 0x03612 (Laser Panel) - 0x0A3D0 & 0x0367C - Eraser & Shapers Laser - 0x01539 (Laser) - 0x03612 Door - 0x09D6F (Entry 1) - 0x09E57 +159404 - 0x28A4A (Shore EP) - True - True +159410 - 0x334B6 (Entrance Pipe EP) - True - True +159412 - 0x28A4C (Sand Pile EP) - True - True +159420 - 0x289CF (Rock Line EP) - True - True +159421 - 0x289D1 (Rock Line Reflection EP) - True - True + +Quarry Elevator (Quarry): +158120 - 0x17CC4 (Elevator Control) - 0x0367C - Dots & Eraser +159403 - 0x17CB9 (Railroad EP) - 0x17CC4 - True Quarry Between Entrys (Quarry) - Quarry - 0x17C07: 158119 - 0x17C09 (Entry 2 Panel) - True - Shapers Door - 0x17C07 (Entry 2) - 0x17C09 -Quarry (Quarry) - Quarry Mill Ground Floor - 0x02010: +Quarry (Quarry) - Quarry Mill Ground Floor - 0x02010 - Quarry Elevator - 0x17CC4: 158121 - 0x01E5A (Mill Entry Left Panel) - True - Black/White Squares 158122 - 0x01E59 (Mill Entry Right Panel) - True - Dots Door - 0x02010 (Mill Entry) - 0x01E59 & 0x01E5A @@ -229,6 +266,8 @@ Quarry Mill Upper Floor (Quarry Mill) - Quarry Mill Middle Floor - 0x03676 & 0x0 Door - 0x0368A (Stairs) - 0x03677 158143 - 0x3C125 (Control Room Left) - 0x0367C - Black/White Squares & Dots & Eraser 158144 - 0x0367C (Control Room Right) - 0x014E9 - Colored Squares & Dots & Eraser +159411 - 0x0069D (Ramp EP) - 0x03676 & 0x275FF - True +159413 - 0x00614 (Lift EP) - 0x275FF & 0x03675 - True Quarry Boathouse (Quarry Boathouse) - Quarry - True - Quarry Boathouse Upper Front - 0x03852 - Quarry Boathouse Behind Staircase - 0x2769B: 158146 - 0x034D4 (Intro Left) - True - Stars @@ -250,6 +289,7 @@ Door - 0x17C50 (First Barrier) - 0x021AE Quarry Boathouse Upper Middle (Quarry Boathouse) - Quarry Boathouse Upper Back - 0x03858: 158154 - 0x03858 (Ramp Horizontal Control) - True - Shapers & Eraser +159402 - 0x00859 (Moving Ramp EP) - 0x03858 & 0x03852 & 0x3865F - True Quarry Boathouse Upper Back (Quarry Boathouse) - Quarry Boathouse Upper Middle - 0x3865F: 158155 - 0x38663 (Second Barrier Panel) - True - True @@ -267,6 +307,7 @@ Door - 0x3865F (Second Barrier) - 0x38663 158167 - 0x0A3CB (Back Second Row 1) - 0x09DB4 - Stars & Eraser & Shapers 158168 - 0x0A3CC (Back Second Row 2) - 0x0A3CB - Stars & Eraser & Shapers 158169 - 0x0A3D0 (Back Second Row 3) - 0x0A3CC - Stars & Eraser & Shapers +159401 - 0x005F6 (Hook EP) - 0x275FA & 0x03852 & 0x3865F - True Shadows (Shadows) - Main Island - True - Shadows Ledge - 0x19B24 - Shadows Laser Room - 0x194B2 & 0x19665: 158170 - 0x334DB (Door Timer Outside) - True - True @@ -289,6 +330,7 @@ Door - 0x194B2 (Laser Entry Right) - 0x1972F 158185 - 0x197E8 (Near 4) - 0x197E0 - True 158186 - 0x197E5 (Near 5) - 0x197E8 - True Door - 0x19665 (Laser Entry Left) - 0x197E5 +159400 - 0x28A7B (Quarry Mill Rooftop Vent EP) - True - True Shadows Ledge (Shadows) - Shadows - 0x1855B - Quarry - 0x19865 & 0x0A2DF: 158187 - 0x334DC (Door Timer Inside) - True - True @@ -306,12 +348,19 @@ Shadows Laser Room (Shadows): 158703 - 0x19650 (Laser Panel) - True - True Laser - 0x181B3 (Laser) - 0x19650 +Treehouse Beach (Treehouse Beach) - Main Island - True: +159200 - 0x0053D (Rock Shadow EP) - True - True +159201 - 0x0053E (Sand Shadow EP) - True - True +159212 - 0x220BD (Both Orange Bridges EP) - 0x17DA2 & 0x17DDB - True + Keep (Keep) - Main Island - True - Keep 2nd Maze - 0x01954 - Keep 2nd Pressure Plate - 0x01BEC: 158193 - 0x00139 (Hedge Maze 1) - True - True 158197 - 0x0A3A8 (Reset Pressure Plates 1) - True - True 158198 - 0x033EA (Pressure Plates 1) - 0x0A3A8 - Dots Door - 0x01954 (Hedge Maze 1 Exit) - 0x00139 Door - 0x01BEC (Pressure Plates 1 Exit) - 0x033EA +159430 - 0x03E77 (Red Flowers EP) - True - True +159431 - 0x03E7C (Purple Flowers EP) - True - True Keep 2nd Maze (Keep) - Keep - 0x018CE - Keep 3rd Maze - 0x019D8: Door - 0x018CE (Hedge Maze 2 Shortcut) - 0x00139 @@ -350,6 +399,13 @@ Shipwreck (Shipwreck) - Keep 3rd Pressure Plate - True: 158654 - 0x00AFB (Vault) - True - Symmetry & Sound Dots & Colored Dots 158655 - 0x03535 (Vault Box) - 0x00AFB - True 158605 - 0x17D28 (Discard) - True - Triangles +159220 - 0x03B22 (Circle Far EP) - True - True +159221 - 0x03B23 (Circle Left EP) - True - True +159222 - 0x03B24 (Circle Near EP) - True - True +159224 - 0x03A79 (Stern EP) - True - True +159225 - 0x28ABD (Rope Inner EP) - True - True +159226 - 0x28ABE (Rope Outer EP) - True - True +159230 - 0x3388F (Couch EP) - 0x17CDF | 0x0A054 - True Keep Tower (Keep) - Keep - 0x04F8F: 158206 - 0x0361B (Tower Shortcut Panel) - True - True @@ -357,6 +413,13 @@ Door - 0x04F8F (Tower Shortcut) - 0x0361B 158704 - 0x0360E (Laser Panel Hedges) - 0x01A0F & 0x019E7 & 0x019DC & 0x00139 - True 158705 - 0x03317 (Laser Panel Pressure Plates) - 0x01D3F - Shapers & Black/White Squares & Colored Squares & Stars & Stars + Same Colored Symbol & Dots Laser - 0x014BB (Laser) - 0x0360E | 0x03317 +159240 - 0x033BE (Pressure Plates 1 EP) - 0x033EA - True +159241 - 0x033BF (Pressure Plates 2 EP) - 0x01BE9 - True +159242 - 0x033DD (Pressure Plates 3 EP) - 0x01CD3 & 0x01CD5 - True +159243 - 0x033E5 (Pressure Plates 4 Left Exit EP) - 0x01D3F - True +159244 - 0x018B6 (Pressure Plates 4 Right Exit EP) - 0x01D3F - True +159250 - 0x28AE9 (Path EP) - True - True +159251 - 0x3348F (Hedges EP) - True - True Outside Monastery (Monastery) - Main Island - True - Inside Monastery - 0x0C128 & 0x0C153 - Monastery Garden - 0x03750: 158207 - 0x03713 (Shortcut Panel) - True - True @@ -371,6 +434,13 @@ Door - 0x0C153 (Entry Outer) - 0x00C92 Door - 0x03750 (Garden Entry) - 0x00037 158706 - 0x17CA4 (Laser Panel) - 0x193A6 - True Laser - 0x17C65 (Laser) - 0x17CA4 +159130 - 0x006E5 (Facade Left Near EP) - True - True +159131 - 0x006E6 (Facade Left Far Short EP) - True - True +159132 - 0x006E7 (Facade Left Far Long EP) - True - True +159136 - 0x03DAB (Facade Right Near EP) - True - True +159137 - 0x03DAC (Facade Left Stairs EP) - True - True +159138 - 0x03DAD (Facade Right Stairs EP) - True - True +159140 - 0x03E01 (Grass Stairs EP) - True - True Inside Monastery (Monastery): 158213 - 0x09D9B (Shutters Control) - True - Dots @@ -378,6 +448,9 @@ Inside Monastery (Monastery): 158215 - 0x193AA (Inside 2) - 0x193A7 - True 158216 - 0x193AB (Inside 3) - 0x193AA - True 158217 - 0x193A6 (Inside 4) - 0x193AB - True +159133 - 0x034A7 (Left Shutter EP) - 0x09D9B - True +159134 - 0x034AD (Middle Shutter EP) - 0x09D9B - True +159135 - 0x034AF (Right Shutter EP) - 0x09D9B - True Monastery Garden (Monastery): @@ -404,12 +477,24 @@ Door - 0x03BB0 (Church Entry) - 0x28A0D Door - 0x28AA2 (Maze Stairs) - 0x28A79 158241 - 0x17F5F (Windmill Entry Panel) - True - Dots Door - 0x1845B (Windmill Entry) - 0x17F5F +159010 - 0x037B6 (Windmill First Blade EP) - 0x17D02 - True +159011 - 0x037B2 (Windmill Second Blade EP) - 0x17D02 - True +159012 - 0x000F7 (Windmill Third Blade EP) - 0x17D02 - True +159540 - 0x03335 (Tower Underside First EP) - True - True +159541 - 0x03412 (Tower Underside Second EP) - True - True +159542 - 0x038A6 (Tower Underside Third EP) - True - True +159543 - 0x038AA (Tower Underside Fourth EP) - True - True +159545 - 0x03E40 (RGB House Green EP) - 0x334D8 - True +159546 - 0x28B8E (Maze Bridge Underside EP) - 0x2896A - True +159552 - 0x03BCF (Black Line Redirect EP) - True - True +159800 - 0xFFF80 (Pet the Dog) - True - True Town Inside Cargo Box (Town): 158606 - 0x17D01 (Cargo Box Discard) - True - Triangles Town Maze Rooftop (Town) - Town Red Rooftop - 0x2896A: 158229 - 0x2896A (Maze Rooftop Bridge Control) - True - Shapers +159544 - 0x03E3F (RGB House Red EP) - 0x334D8 - True Town Red Rooftop (Town): 158607 - 0x17C71 (Rooftop Discard) - True - Triangles @@ -425,6 +510,7 @@ Town Wooden Rooftop (Town): Town Church (Town): 158227 - 0x28A69 (Church Lattice) - 0x03BB0 - True +159553 - 0x03BD1 (Black Line Church EP) - True - True RGB House (Town) - RGB Room - 0x2897B: 158242 - 0x034E4 (Sound Room Left) - True - True @@ -445,6 +531,8 @@ Door - 0x2779A (Fourth Door) - 0x28B39 Town Tower Top (Town): 158708 - 0x032F5 (Laser Panel) - True - True Laser - 0x032F9 (Laser) - 0x032F5 +159422 - 0x33692 (Brown Bridge EP) - True - True +159551 - 0x03BCE (Black Line Tower EP) - True - True Windmill Interior (Windmill) - Theater - 0x17F88: 158247 - 0x17D02 (Turn Control) - True - Dots @@ -464,6 +552,10 @@ Theater (Theater) - Town - 0x0A16D | 0x3CCDF: Door - 0x0A16D (Exit Left) - 0x0A168 Door - 0x3CCDF (Exit Right) - 0x33AB2 158608 - 0x17CF7 (Discard) - True - Triangles +159554 - 0x339B6 (Eclipse EP) - 0x03549 & 0x0A16D & 0x3CCDF - True +159555 - 0x33A29 (Window EP) - 0x03553 - True +159556 - 0x33A2A (Door EP) - 0x03553 - True +159558 - 0x33B06 (Church EP) - 0x0354E - True Jungle (Jungle) - Main Island - True - Outside Jungle River - 0x3873B - Boat - 0x17CDF: 158251 - 0x17CDF (Shore Boat Spawn) - True - Boat @@ -487,12 +579,24 @@ Door - 0x1475B (Popup Wall) - 0x17CAB Laser - 0x00274 (Laser) - 0x03616 158266 - 0x337FA (Laser Shortcut Panel) - True - True Door - 0x3873B (Laser Shortcut) - 0x337FA +159100 - 0x03ABC (Long Arch Moss EP) - True - True +159101 - 0x03ABE (Straight Left Moss EP) - True - True +159102 - 0x03AC0 (Pop-up Wall Moss EP) - True - True +159103 - 0x03AC4 (Short Arch Moss EP) - True - True +159150 - 0x289F4 (Entrance EP) - True - True +159151 - 0x289F5 (Tree Halo EP) - True - True +159350 - 0x035CB (Bamboo CCW EP) - True - True +159351 - 0x035CF (Bamboo CW EP) - True - True Outside Jungle River (River) - Main Island - True - Monastery Garden - 0x0CF2A: 158267 - 0x17CAA (Monastery Shortcut Panel) - True - True Door - 0x0CF2A (Monastery Shortcut) - 0x17CAA 158663 - 0x15ADD (Vault) - True - Black/White Squares & Dots 158664 - 0x03702 (Vault Box) - 0x15ADD - True +159110 - 0x03AC5 (Green Leaf Moss EP) - True - True +159120 - 0x03BE2 (Monastery Garden Left EP) - 0x03750 - True +159121 - 0x03BE3 (Monastery Garden Right EP) - True - True +159122 - 0x0A409 (Monastery Wall EP) - True - True Outside Bunker (Bunker) - Main Island - True - Bunker - 0x0C2A4: 158268 - 0x17C2E (Entry Panel) - True - Black/White Squares & Colored Squares @@ -524,16 +628,25 @@ Bunker Ultraviolet Room (Bunker) - Bunker Elevator Section - 0x0A08D: 158285 - 0x17E67 (UV Room 2) - 0x17E63 & 0x34BC6 - Colored Squares & Black/White Squares Door - 0x0A08D (Elevator Room Entry) - 0x17E67 -Bunker Elevator Section (Bunker) - Bunker Laser Platform - 0x0A079: +Bunker Elevator Section (Bunker) - Bunker Elevator - TrueOneWay: +159311 - 0x035F5 (Tinted Door EP) - 0x17C79 - True + +Bunker Elevator (Bunker) - Bunker Laser Platform - 0x0A079 - Bunker Green Room - 0x0A079 - Bunker Laser Platform - 0x0A079 - Outside Bunker - 0x0A079: 158286 - 0x0A079 (Elevator Control) - True - Colored Squares & Black/White Squares -Bunker Laser Platform (Bunker): +Bunker Green Room (Bunker) - Bunker Elevator - TrueOneWay: +159310 - 0x000D3 (Green Room Flowers EP) - True - True + +Bunker Laser Platform (Bunker) - Bunker Elevator - TrueOneWay: 158710 - 0x09DE0 (Laser Panel) - True - True Laser - 0x0C2B2 (Laser) - 0x09DE0 Outside Swamp (Swamp) - Swamp Entry Area - 0x00C1C - Main Island - True: 158287 - 0x0056E (Entry Panel) - True - Shapers Door - 0x00C1C (Entry) - 0x0056E +159321 - 0x03603 (Purple Sand Middle EP) - 0x17E2B - True +159322 - 0x03601 (Purple Sand Top EP) - 0x17E2B - True +159327 - 0x035DE (Purple Sand Bottom EP) - True - True Swamp Entry Area (Swamp) - Swamp Sliding Bridge - TrueOneWay: 158288 - 0x00469 (Intro Front 1) - True - Shapers @@ -553,6 +666,8 @@ Swamp Entry Area (Swamp) - Swamp Sliding Bridge - TrueOneWay: Swamp Sliding Bridge (Swamp) - Swamp Entry Area - 0x00609 - Swamp Near Platform - 0x00609: 158302 - 0x00609 (Sliding Bridge) - True - Shapers +159342 - 0x0105D (Sliding Bridge Left EP) - 0x00609 - True +159343 - 0x0A304 (Sliding Bridge Right EP) - 0x00609 - True Swamp Near Platform (Swamp) - Swamp Cyan Underwater - 0x04B7F - Swamp Near Boat - 0x38AE6 - Swamp Between Bridges Near - 0x184B7 - Swamp Sliding Bridge - TrueOneWay: 158313 - 0x00982 (Platform Row 1) - True - Shapers @@ -572,6 +687,7 @@ Swamp Cyan Underwater (Swamp): 158310 - 0x013E6 (Cyan Underwater 4) - 0x00005 - Shapers & Negative Shapers 158311 - 0x00596 (Cyan Underwater 5) - 0x013E6 - Shapers & Negative Shapers 158312 - 0x18488 (Cyan Underwater Sliding Bridge Control) - True - Shapers +159340 - 0x03AA6 (Cyan Underwater Sliding Bridge EP) - 0x18488 - True Swamp Between Bridges Near (Swamp) - Swamp Between Bridges Far - 0x18507: 158303 - 0x00999 (Between Bridges Near Row 1) - 0x00990 - Shapers @@ -596,6 +712,8 @@ Door - 0x305D5 (Red Underwater Exit) - 0x014D1 Swamp Rotating Bridge (Swamp) - Swamp Between Bridges Far - 0x181F5 - Swamp Near Boat - 0x181F5 - Swamp Purple Area - 0x181F5: 158327 - 0x181F5 (Rotating Bridge) - True - Rotated Shapers & Shapers +159331 - 0x016B2 (Rotating Bridge CCW EP) - 0x181F5 - True +159334 - 0x036CE (Rotating Bridge CW EP) - 0x181F5 - True Swamp Near Boat (Swamp) - Swamp Rotating Bridge - TrueOneWay - Swamp Blue Underwater - 0x18482: 158328 - 0x09DB8 (Boat Spawn) - True - Boat @@ -605,12 +723,16 @@ Swamp Near Boat (Swamp) - Swamp Rotating Bridge - TrueOneWay - Swamp Blue Underw 158332 - 0x00E3A (Beyond Rotating Bridge 4) - 0x00C2E - Rotated Shapers 158339 - 0x17E2B (Long Bridge Control) - True - Rotated Shapers & Shapers Door - 0x18482 (Blue Water Pump) - 0x00E3A +159332 - 0x3365F (Boat EP) - 0x09DB8 - True +159333 - 0x03731 (Long Bridge Side EP) - 0x17E2B - True Swamp Purple Area (Swamp) - Swamp Rotating Bridge - TrueOneWay - Swamp Purple Underwater - 0x0A1D6: Door - 0x0A1D6 (Purple Water Pump) - 0x00E3A Swamp Purple Underwater (Swamp): 158333 - 0x009A6 (Purple Underwater) - True - Shapers +159330 - 0x03A9E (Purple Underwater Right EP) - True - True +159336 - 0x03A93 (Purple Underwater Left EP) - True - True Swamp Blue Underwater (Swamp): 158334 - 0x009AB (Blue Underwater 1) - True - Shapers & Negative Shapers @@ -634,6 +756,7 @@ Treehouse Entry Area (Treehouse) - Treehouse Between Doors - 0x0C309: 158343 - 0x17C95 (Boat Spawn) - True - Boat 158344 - 0x0288C (First Door Panel) - True - Stars Door - 0x0C309 (First Door) - 0x0288C +159210 - 0x33721 (Buoy EP) - 0x17C95 - True Treehouse Between Doors (Treehouse) - Treehouse Yellow Bridge - 0x0C310: 158345 - 0x02886 (Second Door Panel) - True - Stars @@ -691,7 +814,7 @@ Treehouse Second Purple Bridge (Treehouse) - Treehouse Left Orange Bridge - 0x17 158367 - 0x17D91 (Second Purple Bridge 6) - 0x17BDF - Stars & Colored Squares 158368 - 0x17DC6 (Second Purple Bridge 7) - 0x17D91 - Stars & Colored Squares -Treehouse Left Orange Bridge (Treehouse) - Treehouse Laser Room Front Platform - 0x17DDB - Treehouse Laser Room Back Platform - 0x17DDB: +Treehouse Left Orange Bridge (Treehouse) - Treehouse Laser Room Front Platform - 0x17DDB - Treehouse Laser Room Back Platform - 0x17DDB - Treehouse Burned House - 0x17DDB: 158376 - 0x17DB3 (Left Orange Bridge 1) - True - Stars & Black/White Squares & Stars + Same Colored Symbol 158377 - 0x17DB5 (Left Orange Bridge 2) - 0x17DB3 - Stars & Black/White Squares & Stars + Same Colored Symbol 158378 - 0x17DB6 (Left Orange Bridge 3) - 0x17DB5 - Stars & Black/White Squares & Stars + Same Colored Symbol @@ -708,7 +831,7 @@ Treehouse Left Orange Bridge (Treehouse) - Treehouse Laser Room Front Platform - 158389 - 0x17DB0 (Left Orange Bridge 14) - 0x17DAE - Stars & Black/White Squares & Stars + Same Colored Symbol 158390 - 0x17DDB (Left Orange Bridge 15) - 0x17DB0 - Stars & Black/White Squares & Stars + Same Colored Symbol -Treehouse Green Bridge (Treehouse): +Treehouse Green Bridge (Treehouse) - Treehouse Green Bridge Front House - 0x17E61 - Treehouse Green Bridge Left House - 0x17E61: 158369 - 0x17E3C (Green Bridge 1) - True - Stars & Shapers 158370 - 0x17E4D (Green Bridge 2) - 0x17E3C - Stars & Shapers 158371 - 0x17E4F (Green Bridge 3) - 0x17E4D - Stars & Shapers & Rotated Shapers @@ -716,7 +839,12 @@ Treehouse Green Bridge (Treehouse): 158373 - 0x17E5B (Green Bridge 5) - 0x17E52 - Stars & Shapers & Stars + Same Colored Symbol 158374 - 0x17E5F (Green Bridge 6) - 0x17E5B - Stars & Shapers & Negative Shapers & Stars + Same Colored Symbol 158375 - 0x17E61 (Green Bridge 7) - 0x17E5F - Stars & Shapers & Rotated Shapers -158610 - 0x17FA9 (Green Bridge Discard) - 0x17E61 - Triangles + +Treehouse Green Bridge Front House (Treehouse): +158610 - 0x17FA9 (Green Bridge Discard) - True - Triangles + +Treehouse Green Bridge Left House (Treehouse): +159211 - 0x220A7 (Right Orange Bridge EP) - 0x17DA2 - True Treehouse Laser Room Front Platform (Treehouse) - Treehouse Laser Room - 0x0C323: Door - 0x0C323 (Laser House Entry) - 0x17DA2 & 0x2700B & 0x17DDB @@ -724,6 +852,9 @@ Door - 0x0C323 (Laser House Entry) - 0x17DA2 & 0x2700B & 0x17DDB Treehouse Laser Room Back Platform (Treehouse): 158611 - 0x17FA0 (Laser Discard) - True - Triangles +Treehouse Burned House (Treehouse): +159202 - 0x00769 (Burned House Beach EP) - True - True + Treehouse Laser Room (Treehouse): 158712 - 0x03613 (Laser Panel) - True - True 158403 - 0x17CBC (Laser House Door Timer Inside) - True - True @@ -733,12 +864,19 @@ Mountainside (Mountainside) - Main Island - True - Mountaintop - True: 158612 - 0x17C42 (Discard) - True - Triangles 158665 - 0x002A6 (Vault) - True - Symmetry & Colored Dots & Black/White Squares & Dots 158666 - 0x03542 (Vault Box) - 0x002A6 - True +159301 - 0x335AE (Cloud Cycle EP) - True - True +159325 - 0x33505 (Bush EP) - True - True +159335 - 0x03C07 (Apparent River EP) - True - True Mountaintop (Mountaintop) - Mountain Top Layer - 0x17C34: 158405 - 0x0042D (River Shape) - True - True 158406 - 0x09F7F (Box Short) - 7 Lasers - True 158407 - 0x17C34 (Trap Door Triple Exit) - 0x09F7F - Stars & Black/White Squares & Stars + Same Colored Symbol 158800 - 0xFFF00 (Box Long) - 7 Lasers & 11 Lasers & 0x17C34 - True +159300 - 0x001A3 (River Shape EP) - True - True +159320 - 0x3370E (Arch Black EP) - True - True +159324 - 0x336C8 (Arch White Right EP) - True - True +159326 - 0x3369A (Arch White Left EP) - True - True Mountain Top Layer (Mountain Floor 1) - Mountain Top Layer Bridge - 0x09E39: 158408 - 0x09E39 (Light Bridge Controller) - True - Black/White Squares & Colored Squares & Eraser @@ -763,7 +901,7 @@ Mountain Top Layer Bridge (Mountain Floor 1) - Mountain Floor 2 - 0x09E54: 158425 - 0x09EAF (Trash Pillar 2) - 0x09EAD - Black/White Squares & Shapers Door - 0x09E54 (Exit) - 0x09EAF & 0x09F6E & 0x09E6B & 0x09E7B -Mountain Floor 2 (Mountain Floor 2) - Mountain Floor 2 Light Bridge Room Near - 0x09FFB - Mountain Floor 2 Blue Bridge - 0x09E86: +Mountain Floor 2 (Mountain Floor 2) - Mountain Floor 2 Light Bridge Room Near - 0x09FFB - Mountain Floor 2 Blue Bridge - 0x09E86 - Mountain Pink Bridge EP - TrueOneWay: 158426 - 0x09FD3 (Near Row 1) - True - Stars & Colored Squares & Stars + Same Colored Symbol 158427 - 0x09FD4 (Near Row 2) - 0x09FD3 - Stars & Colored Squares & Stars + Same Colored Symbol 158428 - 0x09FD6 (Near Row 3) - 0x09FD4 - Stars & Colored Squares & Stars + Same Colored Symbol @@ -779,7 +917,7 @@ Door - 0x09EDD (Elevator Room Entry) - 0x09ED8 & 0x09E86 Mountain Floor 2 Light Bridge Room Near (Mountain Floor 2): 158431 - 0x09E86 (Light Bridge Controller Near) - True - Stars & Stars + Same Colored Symbol & Rotated Shapers & Eraser -Mountain Floor 2 Beyond Bridge (Mountain Floor 2) - Mountain Floor 2 Light Bridge Room Far - 0x09E07: +Mountain Floor 2 Beyond Bridge (Mountain Floor 2) - Mountain Floor 2 Light Bridge Room Far - 0x09E07 - Mountain Pink Bridge EP - TrueOneWay: 158432 - 0x09FCC (Far Row 1) - True - Dots 158433 - 0x09FCE (Far Row 2) - 0x09FCC - Black/White Squares 158434 - 0x09FCF (Far Row 3) - 0x09FCE - Stars @@ -805,14 +943,19 @@ Mountain Third Layer (Mountain Bottom Floor) - Mountain Floor 2 Elevator - TrueO 158444 - 0x09FDA (Giant Puzzle) - 0x09FC1 & 0x09F8E & 0x09F01 & 0x09EFF - Shapers & Symmetry Door - 0x09F89 (Exit) - 0x09FDA -Mountain Bottom Floor (Mountain Bottom Floor) - Mountain Bottom Floor Rock - 0x17FA2 - Final Room - 0x0C141: +Mountain Bottom Floor (Mountain Bottom Floor) - Mountain Bottom Floor Rock - 0x17FA2 - Final Room - 0x0C141 - Mountain Pink Bridge EP - TrueOneWay: 158614 - 0x17FA2 (Discard) - 0xFFF00 - Triangles 158445 - 0x01983 (Final Room Entry Left) - True - Shapers & Stars 158446 - 0x01987 (Final Room Entry Right) - True - Colored Squares & Dots Door - 0x0C141 (Final Room Entry) - 0x01983 & 0x01987 +159313 - 0x09D5D (Yellow Bridge EP) - 0x09E86 & 0x09ED8 - True +159314 - 0x09D5E (Blue Bridge EP) - 0x09E86 & 0x09ED8 - True + +Mountain Pink Bridge EP (Mountain Floor 2): +159312 - 0x09D63 (Pink Bridge EP) - 0x09E39 - True Mountain Bottom Floor Rock (Mountain Bottom Floor) - Mountain Bottom Floor - 0x17F33 - Mountain Path to Caves - 0x17F33: -Door - 0x17F33 (Rock Open) - True +Door - 0x17F33 (Rock Open) - True - True Mountain Path to Caves (Mountain Bottom Floor) - Mountain Bottom Floor Rock - 0x334E1 - Caves - 0x2D77D: 158447 - 0x00FF8 (Caves Entry Panel) - True - Triangles & Black/White Squares @@ -872,6 +1015,7 @@ Door - 0x019A5 (Pillar Door) - 0x09DD5 Door - 0x2D73F (Mountain Shortcut Door) - 0x021D7 158450 - 0x17CF2 (Swamp Shortcut Panel) - True - Triangles Door - 0x2D859 (Swamp Shortcut Door) - 0x17CF2 +159341 - 0x3397C (Skylight EP) - True - True Path to Challenge (Caves) - Challenge - 0x0A19A: 158477 - 0x0A16E (Challenge Entry Panel) - True - Stars & Shapers & Stars + Same Colored Symbol @@ -900,6 +1044,7 @@ Challenge (Challenge) - Tunnels - 0x0348A: 158667 - 0x0356B (Vault Box) - 0x1C31A & 0x1C319 - True 158518 - 0x039B4 (Tunnels Entry Panel) - True - Triangles Door - 0x0348A (Tunnels Entry) - 0x039B4 +159530 - 0x28B30 (Water EP) - True - True Tunnels (Tunnels) - Windmill Interior - 0x27739 - Desert Lowest Level Inbetween Shortcuts - 0x27263 - Town - 0x09E87: 158668 - 0x2FAF6 (Vault Box) - True - True @@ -909,6 +1054,7 @@ Door - 0x27739 (Theater Shortcut) - 0x27732 Door - 0x27263 (Desert Shortcut) - 0x2773D 158521 - 0x09E85 (Town Shortcut Panel) - True - Triangles Door - 0x09E87 (Town Shortcut) - 0x09E85 +159557 - 0x33A20 (Theater Flowers EP) - 0x03553 & Theater to Tunnels - True Final Room (Mountain Final Room) - Elevator - 0x339BB & 0x33961: 158522 - 0x0383A (Right Pillar 1) - True - Stars @@ -930,3 +1076,50 @@ Elevator (Mountain Final Room): 158536 - 0x3D9A9 (Elevator Start) - 0x3D9AA & 7 Lasers | 0x3D9A8 & 7 Lasers - True Boat (Boat) - Main Island - TrueOneWay - Swamp Near Boat - TrueOneWay - Treehouse Entry Area - TrueOneWay - Quarry Boathouse Behind Staircase - TrueOneWay - Inside Glass Factory Behind Back Wall - TrueOneWay: +159042 - 0x22106 (Desert EP) - True - True +159223 - 0x03B25 (Shipwreck CCW Underside EP) - True - True +159231 - 0x28B29 (Shipwreck Green EP) - True - True +159232 - 0x28B2A (Shipwreck CW Underside EP) - True - True +159323 - 0x03D0D (Bunker Yellow Line EP) - True - True +159515 - 0x28A37 (Town Long Sewer EP) - True - True +159520 - 0x33857 (Tutorial EP) - True - True +159521 - 0x33879 (Tutorial Reflection EP) - True - True +159522 - 0x03C19 (Tutorial Moss EP) - True - True +159531 - 0x035C9 (Cargo Box EP) - 0x0A0C9 - True + +Obelisks (EPs) - Entry - True: +159700 - 0xFFE00 (Desert Obelisk Side 1) - 0x0332B & 0x03367 & 0x28B8A - True +159701 - 0xFFE01 (Desert Obelisk Side 2) - 0x037B6 & 0x037B2 & 0x000F7 - True +159702 - 0xFFE02 (Desert Obelisk Side 3) - 0x3351D - True +159703 - 0xFFE03 (Desert Obelisk Side 4) - 0x0053C & 0x00771 & 0x335C8 & 0x335C9 & 0x337F8 & 0x037BB & 0x220E4 & 0x220E5 - True +159704 - 0xFFE04 (Desert Obelisk Side 5) - 0x334B9 & 0x334BC & 0x22106 & 0x0A14C & 0x0A14D - True +159710 - 0xFFE10 (Monastery Obelisk Side 1) - 0x03ABC & 0x03ABE & 0x03AC0 & 0x03AC4 - True +159711 - 0xFFE11 (Monastery Obelisk Side 2) - 0x03AC5 - True +159712 - 0xFFE12 (Monastery Obelisk Side 3) - 0x03BE2 & 0x03BE3 & 0x0A409 - True +159713 - 0xFFE13 (Monastery Obelisk Side 4) - 0x006E5 & 0x006E6 & 0x006E7 & 0x034A7 & 0x034AD & 0x034AF & 0x03DAB & 0x03DAC & 0x03DAD - True +159714 - 0xFFE14 (Monastery Obelisk Side 5) - 0x03E01 - True +159715 - 0xFFE15 (Monastery Obelisk Side 6) - 0x289F4 & 0x289F5 - True +159720 - 0xFFE20 (Treehouse Obelisk Side 1) - 0x0053D & 0x0053E & 0x00769 - True +159721 - 0xFFE21 (Treehouse Obelisk Side 2) - 0x33721 & 0x220A7 & 0x220BD - True +159722 - 0xFFE22 (Treehouse Obelisk Side 3) - 0x03B22 & 0x03B23 & 0x03B24 & 0x03B25 & 0x03A79 & 0x28ABD & 0x28ABE - True +159723 - 0xFFE23 (Treehouse Obelisk Side 4) - 0x3388F & 0x28B29 & 0x28B2A - True +159724 - 0xFFE24 (Treehouse Obelisk Side 5) - 0x018B6 & 0x033BE & 0x033BF & 0x033DD & 0x033E5 - True +159725 - 0xFFE25 (Treehouse Obelisk Side 6) - 0x28AE9 & 0x3348F - True +159730 - 0xFFE30 (River Obelisk Side 1) - 0x001A3 & 0x335AE - True +159731 - 0xFFE31 (River Obelisk Side 2) - 0x000D3 & 0x035F5 & 0x09D5D & 0x09D5E & 0x09D63 - True +159732 - 0xFFE32 (River Obelisk Side 3) - 0x3370E & 0x035DE & 0x03601 & 0x03603 & 0x03D0D & 0x3369A & 0x336C8 & 0x33505 - True +159733 - 0xFFE33 (River Obelisk Side 4) - 0x03A9E & 0x016B2 & 0x3365F & 0x03731 & 0x036CE & 0x03C07 & 0x03A93 - True +159734 - 0xFFE34 (River Obelisk Side 5) - 0x03AA6 & 0x3397C & 0x0105D & 0x0A304 - True +159735 - 0xFFE35 (River Obelisk Side 6) - 0x035CB & 0x035CF - True +159740 - 0xFFE40 (Quarry Obelisk Side 1) - 0x28A7B & 0x005F6 & 0x00859 & 0x17CB9 & 0x28A4A - True +159741 - 0xFFE41 (Quarry Obelisk Side 2) - 0x334B6 & 0x00614 & 0x0069D & 0x28A4C - True +159742 - 0xFFE42 (Quarry Obelisk Side 3) - 0x289CF & 0x289D1 & 0x33692 - True +159743 - 0xFFE43 (Quarry Obelisk Side 4) - 0x03E77 & 0x03E7C - True +159750 - 0xFFE50 (Town Obelisk Side 1) - 0x035C7 - True +159751 - 0xFFE51 (Town Obelisk Side 2) - 0x01848 & 0x03D06 & 0x33530 & 0x33600 & 0x28A2F & 0x28A37 & 0x334A3 & 0x3352F - True +159752 - 0xFFE52 (Town Obelisk Side 3) - 0x33857 & 0x33879 & 0x03C19 - True +159753 - 0xFFE53 (Town Obelisk Side 4) - 0x28B30 & 0x035C9 - True +159754 - 0xFFE54 (Town Obelisk Side 5) - 0x03335 & 0x03412 & 0x038A6 & 0x038AA & 0x03E3F & 0x03E40 & 0x28B8E - True +159755 - 0xFFE55 (Town Obelisk Side 6) - 0x28B91 & 0x03BCE & 0x03BCF & 0x03BD1 & 0x339B6 & 0x33A20 & 0x33A29 & 0x33A2A & 0x33B06 - True + +Lasers (Lasers) - Entry - True: diff --git a/worlds/witness/WitnessLogicExpert.txt b/worlds/witness/WitnessLogicExpert.txt index 89ac7390..aecf5f04 100644 --- a/worlds/witness/WitnessLogicExpert.txt +++ b/worlds/witness/WitnessLogicExpert.txt @@ -1,6 +1,11 @@ -First Hallway (First Hallway) - Entry - True - Tutorial - 0x00182: +Entry (Entry): + +First Hallway (First Hallway) - Entry - True - First Hallway Room - 0x00064: 158000 - 0x00064 (Straight) - True - True -158001 - 0x00182 (Bend) - 0x00064 - True +159510 - 0x01848 (EP) - 0x00064 - True + +First Hallway Room (First Hallway) - Tutorial - 0x00182: +158001 - 0x00182 (Bend) - True - True Tutorial (Tutorial) - Outside Tutorial - True: 158002 - 0x00293 (Front Center) - True - Dots @@ -10,8 +15,11 @@ Tutorial (Tutorial) - Outside Tutorial - True: 158006 - 0x0A3B2 (Back Right) - True - Dots & Full Dots 158007 - 0x03629 (Gate Open) - 0x002C2 - Symmetry & Dots 158008 - 0x03505 (Gate Close) - 0x2FAF6 - False -158009 - 0x0C335 (Pillar) - True - Triangles - True +158009 - 0x0C335 (Pillar) - True - Triangles 158010 - 0x0C373 (Patio Floor) - 0x0C335 - Dots +159512 - 0x33530 (Cloud EP) - True - True +159513 - 0x33600 (Patio Flowers EP) - 0x0C373 - True +159517 - 0x3352F (Gate EP) - 0x03505 - True Outside Tutorial (Outside Tutorial) - Outside Tutorial Path To Outpost - 0x03BA2: 158650 - 0x033D4 (Vault) - True - Dots & Full Dots & Squares & Black/White Squares @@ -31,6 +39,10 @@ Outside Tutorial (Outside Tutorial) - Outside Tutorial Path To Outpost - 0x03BA2 158025 - 0x00020 (Tree Row 8) - 0x0001F - Squares & Black/White Squares & Dots & Full Dots 158026 - 0x00021 (Tree Row 9) - 0x00020 - Squares & Black/White Squares & Dots & Full Dots Door - 0x03BA2 (Outpost Path) - 0x0A3B5 +159511 - 0x03D06 (Garden EP) - True - True +159514 - 0x28A2F (Town Sewer EP) - True - True +159516 - 0x334A3 (Path EP) - True - True +159500 - 0x035C7 (Tractor EP) - True - True Outside Tutorial Path To Outpost (Outside Tutorial) - Outside Tutorial Outpost - 0x0A170: 158011 - 0x0A171 (Outpost Entry Panel) - True - Dots & Full Dots & Triangles @@ -41,12 +53,14 @@ Outside Tutorial Outpost (Outside Tutorial) - Outside Tutorial - 0x04CA3: Door - 0x04CA3 (Outpost Exit) - 0x04CA4 158600 - 0x17CFB (Discard) - True - Arrows -Main Island () - Outside Tutorial - True: +Main Island (Main Island) - Outside Tutorial - True: +159550 - 0x28B91 (Thundercloud EP) - 0x09F98 & 0x012FB - True Outside Glass Factory (Glass Factory) - Main Island - True - Inside Glass Factory - 0x01A29: 158027 - 0x01A54 (Entry Panel) - True - Symmetry Door - 0x01A29 (Entry) - 0x01A54 158601 - 0x3C12B (Discard) - True - Arrows +159002 - 0x28B8A (Vase EP) - 0x01A54 - True Inside Glass Factory (Glass Factory) - Inside Glass Factory Behind Back Wall - 0x0D7ED: 158028 - 0x00086 (Back Wall 1) - True - Symmetry & Dots @@ -88,13 +102,14 @@ Symmetry Island Lower (Symmetry Island) - Symmetry Island Upper - 0x18269: 158056 - 0x00070 (Left 5) - 0x0006F - Symmetry & Colored Dots & Triangles 158057 - 0x00071 (Left 6) - 0x00070 - Symmetry & Triangles 158058 - 0x00076 (Left 7) - 0x00071 - Symmetry & Triangles -158059 - 0x009B8 (Scenery Outlines 1) - True - Symmetry & Environment -158060 - 0x003E8 (Scenery Outlines 2) - 0x009B8 - Symmetry & Environment -158061 - 0x00A15 (Scenery Outlines 3) - 0x003E8 - Symmetry & Environment -158062 - 0x00B53 (Scenery Outlines 4) - 0x00A15 - Symmetry & Environment -158063 - 0x00B8D (Scenery Outlines 5) - 0x00B53 - Symmetry & Environment +158059 - 0x009B8 (Scenery Outlines 1) - True - Symmetry +158060 - 0x003E8 (Scenery Outlines 2) - 0x009B8 - Symmetry +158061 - 0x00A15 (Scenery Outlines 3) - 0x003E8 - Symmetry +158062 - 0x00B53 (Scenery Outlines 4) - 0x00A15 - Symmetry +158063 - 0x00B8D (Scenery Outlines 5) - 0x00B53 - Symmetry 158064 - 0x1C349 (Upper Panel) - 0x00076 - Symmetry & Triangles Door - 0x18269 (Upper) - 0x1C349 +159000 - 0x0332B (Glass Factory Black Line Reflection EP) - True - True Symmetry Island Upper (Symmetry Island): 158065 - 0x00A52 (Yellow 1) - True - Symmetry & Colored Dots @@ -104,17 +119,18 @@ Symmetry Island Upper (Symmetry Island): 158069 - 0x00A64 (Blue 2) - 0x00A61 & 0x00A52 - Symmetry & Colored Dots 158070 - 0x00A68 (Blue 3) - 0x00A64 & 0x00A57 - Symmetry & Colored Dots 158700 - 0x0360D (Laser Panel) - 0x00A68 - True -Laser - 0x00509 (Laser) - 0x0360D - True +Laser - 0x00509 (Laser) - 0x0360D +159001 - 0x03367 (Glass Factory Black Line EP) - True - True Orchard (Orchard) - Main Island - True - Orchard Beyond First Gate - 0x03307: -158071 - 0x00143 (Apple Tree 1) - True - Environment -158072 - 0x0003B (Apple Tree 2) - 0x00143 - Environment -158073 - 0x00055 (Apple Tree 3) - 0x0003B - Environment +158071 - 0x00143 (Apple Tree 1) - True - True +158072 - 0x0003B (Apple Tree 2) - 0x00143 - True +158073 - 0x00055 (Apple Tree 3) - 0x0003B - True Door - 0x03307 (First Gate) - 0x00055 Orchard Beyond First Gate (Orchard) - Orchard End - 0x03313: -158074 - 0x032F7 (Apple Tree 4) - 0x00055 - Environment -158075 - 0x032FF (Apple Tree 5) - 0x032F7 - Environment +158074 - 0x032F7 (Apple Tree 4) - 0x00055 - True +158075 - 0x032FF (Apple Tree 5) - 0x032F7 - True Door - 0x03313 (Second Gate) - 0x032FF Orchard End (Orchard): @@ -123,36 +139,47 @@ Desert Outside (Desert) - Main Island - True - Desert Floodlight Room - 0x09FEE: 158652 - 0x0CC7B (Vault) - True - Dots & Full Dots & Stars & Stars + Same Colored Symbol & Eraser & Triangles & Shapers & Negative Shapers & Colored Squares 158653 - 0x0339E (Vault Box) - 0x0CC7B - True 158602 - 0x17CE7 (Discard) - True - Arrows -158076 - 0x00698 (Surface 1) - True - Reflection -158077 - 0x0048F (Surface 2) - 0x00698 - Reflection -158078 - 0x09F92 (Surface 3) - 0x0048F & 0x09FA0 - Reflection +158076 - 0x00698 (Surface 1) - True - True +158077 - 0x0048F (Surface 2) - 0x00698 - True +158078 - 0x09F92 (Surface 3) - 0x0048F & 0x09FA0 - True 158079 - 0x09FA0 (Surface 3 Control) - 0x0048F - True -158080 - 0x0A036 (Surface 4) - 0x09F92 - Reflection -158081 - 0x09DA6 (Surface 5) - 0x09F92 - Reflection -158082 - 0x0A049 (Surface 6) - 0x09F92 - Reflection -158083 - 0x0A053 (Surface 7) - 0x0A036 & 0x09DA6 & 0x0A049 - Reflection -158084 - 0x09F94 (Surface 8) - 0x0A053 & 0x09F86 - Reflection +158080 - 0x0A036 (Surface 4) - 0x09F92 - True +158081 - 0x09DA6 (Surface 5) - 0x09F92 - True +158082 - 0x0A049 (Surface 6) - 0x09F92 - True +158083 - 0x0A053 (Surface 7) - 0x0A036 & 0x09DA6 & 0x0A049 - True +158084 - 0x09F94 (Surface 8) - 0x0A053 & 0x09F86 - True 158085 - 0x09F86 (Surface 8 Control) - 0x0A053 - True 158086 - 0x0C339 (Light Room Entry Panel) - 0x09F94 - True -Door - 0x09FEE (Light Room Entry) - 0x0C339 - True +Door - 0x09FEE (Light Room Entry) - 0x0C339 158701 - 0x03608 (Laser Panel) - 0x012D7 & 0x0A15F - True Laser - 0x012FB (Laser) - 0x03608 +159020 - 0x3351D (Sand Snake EP) - True - True +159030 - 0x0053C (Facade Right EP) - True - True +159031 - 0x00771 (Facade Left EP) - True - True +159032 - 0x335C8 (Stairs Left EP) - True - True +159033 - 0x335C9 (Stairs Right EP) - True - True +159036 - 0x220E4 (Broken Wall Straight EP) - True - True +159037 - 0x220E5 (Broken Wall Bend EP) - True - True +159040 - 0x334B9 (Shore EP) - True - True +159041 - 0x334BC (Island EP) - True - True Desert Floodlight Room (Desert) - Desert Pond Room - 0x0C2C3: 158087 - 0x09FAA (Light Control) - True - True -158088 - 0x00422 (Light Room 1) - 0x09FAA - Reflection -158089 - 0x006E3 (Light Room 2) - 0x09FAA - Reflection -158090 - 0x0A02D (Light Room 3) - 0x09FAA & 0x00422 & 0x006E3 - Reflection +158088 - 0x00422 (Light Room 1) - 0x09FAA - True +158089 - 0x006E3 (Light Room 2) - 0x09FAA - True +158090 - 0x0A02D (Light Room 3) - 0x09FAA & 0x00422 & 0x006E3 - True Door - 0x0C2C3 (Pond Room Entry) - 0x0A02D Desert Pond Room (Desert) - Desert Water Levels Room - 0x0A24B: -158091 - 0x00C72 (Pond Room 1) - True - Reflection -158092 - 0x0129D (Pond Room 2) - 0x00C72 - Reflection -158093 - 0x008BB (Pond Room 3) - 0x0129D - Reflection -158094 - 0x0078D (Pond Room 4) - 0x008BB - Reflection -158095 - 0x18313 (Pond Room 5) - 0x0078D - Reflection -158096 - 0x0A249 (Flood Room Entry Panel) - 0x18313 - Reflection +158091 - 0x00C72 (Pond Room 1) - True - True +158092 - 0x0129D (Pond Room 2) - 0x00C72 - True +158093 - 0x008BB (Pond Room 3) - 0x0129D - True +158094 - 0x0078D (Pond Room 4) - 0x008BB - True +158095 - 0x18313 (Pond Room 5) - 0x0078D - True +158096 - 0x0A249 (Flood Room Entry Panel) - 0x18313 - True Door - 0x0A24B (Flood Room Entry) - 0x0A249 +159043 - 0x0A14C (Pond Room Near Reflection EP) - True - True +159044 - 0x0A14D (Pond Room Far Reflection EP) - True - True Desert Water Levels Room (Desert) - Desert Elevator Room - 0x0C316: 158097 - 0x1C2DF (Reduce Water Level Far Left) - True - True @@ -163,37 +190,47 @@ Desert Water Levels Room (Desert) - Desert Elevator Room - 0x0C316: 158102 - 0x1831D (Raise Water Level Far Right) - True - True 158103 - 0x1C2B1 (Raise Water Level Near Left) - True - True 158104 - 0x1831B (Raise Water Level Near Right) - True - True -158105 - 0x04D18 (Flood Room 1) - 0x1C260 & 0x1831C - Reflection -158106 - 0x01205 (Flood Room 2) - 0x04D18 & 0x1C260 & 0x1831C - Reflection -158107 - 0x181AB (Flood Room 3) - 0x01205 & 0x1C260 & 0x1831C - Reflection -158108 - 0x0117A (Flood Room 4) - 0x181AB & 0x1C260 & 0x1831C - Reflection -158109 - 0x17ECA (Flood Room 5) - 0x0117A & 0x1C260 & 0x1831C - Reflection -158110 - 0x18076 (Flood Room 6) - 0x17ECA & 0x1C260 & 0x1831C - Reflection +158105 - 0x04D18 (Flood Room 1) - 0x1C260 & 0x1831C - True +158106 - 0x01205 (Flood Room 2) - 0x04D18 & 0x1C260 & 0x1831C - True +158107 - 0x181AB (Flood Room 3) - 0x01205 & 0x1C260 & 0x1831C - True +158108 - 0x0117A (Flood Room 4) - 0x181AB & 0x1C260 & 0x1831C - True +158109 - 0x17ECA (Flood Room 5) - 0x0117A & 0x1C260 & 0x1831C - True +158110 - 0x18076 (Flood Room 6) - 0x17ECA & 0x1C260 & 0x1831C - True Door - 0x0C316 (Elevator Room Entry) - 0x18076 +159034 - 0x337F8 (Flood Room EP) - 0x1C2DF - True Desert Elevator Room (Desert) - Desert Lowest Level Inbetween Shortcuts - 0x012FB: -158111 - 0x17C31 (Final Transparent) - True - Reflection -158113 - 0x012D7 (Final Hexagonal) - 0x17C31 & 0x0A015 - Reflection +158111 - 0x17C31 (Final Transparent) - True - True +158113 - 0x012D7 (Final Hexagonal) - 0x17C31 & 0x0A015 - True 158114 - 0x0A015 (Final Hexagonal Control) - 0x17C31 - True -158115 - 0x0A15C (Final Bent 1) - True - Reflection -158116 - 0x09FFF (Final Bent 2) - 0x0A15C - Reflection -158117 - 0x0A15F (Final Bent 3) - 0x09FFF - Reflection +158115 - 0x0A15C (Final Bent 1) - True - True +158116 - 0x09FFF (Final Bent 2) - 0x0A15C - True +158117 - 0x0A15F (Final Bent 3) - 0x09FFF - True +159035 - 0x037BB (Elevator EP) - 0x012FB - True Desert Lowest Level Inbetween Shortcuts (Desert): -Outside Quarry (Quarry) - Main Island - True - Quarry Between Entrys - 0x09D6F: +Outside Quarry (Quarry) - Main Island - True - Quarry Between Entrys - 0x09D6F - Quarry Elevator - TrueOneWay: 158118 - 0x09E57 (Entry 1 Panel) - True - Squares & Black/White Squares & Triangles -158120 - 0x17CC4 (Elevator Control) - 0x0367C - Dots & Eraser 158603 - 0x17CF0 (Discard) - True - Arrows 158702 - 0x03612 (Laser Panel) - 0x0A3D0 & 0x0367C - Eraser & Triangles & Stars & Stars + Same Colored Symbol Laser - 0x01539 (Laser) - 0x03612 Door - 0x09D6F (Entry 1) - 0x09E57 +159404 - 0x28A4A (Shore EP) - True - True +159410 - 0x334B6 (Entrance Pipe EP) - True - True +159412 - 0x28A4C (Sand Pile EP) - True - True +159420 - 0x289CF (Rock Line EP) - True - True +159421 - 0x289D1 (Rock Line Reflection EP) - True - True + +Quarry Elevator (Quarry): +158120 - 0x17CC4 (Elevator Control) - 0x0367C - Dots & Eraser +159403 - 0x17CB9 (Railroad EP) - 0x17CC4 - True Quarry Between Entrys (Quarry) - Quarry - 0x17C07: 158119 - 0x17C09 (Entry 2 Panel) - True - Shapers & Triangles Door - 0x17C07 (Entry 2) - 0x17C09 -Quarry (Quarry) - Quarry Mill Ground Floor - 0x02010: +Quarry (Quarry) - Quarry Mill Ground Floor - 0x02010 - Quarry Elevator - 0x17CC4: 158121 - 0x01E5A (Mill Entry Left Panel) - True - Squares & Black/White Squares & Stars & Stars + Same Colored Symbol 158122 - 0x01E59 (Mill Entry Right Panel) - True - Triangles Door - 0x02010 (Mill Entry) - 0x01E59 & 0x01E5A @@ -229,6 +266,8 @@ Quarry Mill Upper Floor (Quarry Mill) - Quarry Mill Middle Floor - 0x03676 & 0x0 Door - 0x0368A (Stairs) - 0x03677 158143 - 0x3C125 (Control Room Left) - 0x0367C - Squares & Black/White Squares & Dots & Full Dots & Eraser 158144 - 0x0367C (Control Room Right) - 0x014E9 - Squares & Colored Squares & Triangles & Eraser & Stars & Stars + Same Colored Symbol +159411 - 0x0069D (Ramp EP) - 0x03676 & 0x275FF - True +159413 - 0x00614 (Lift EP) - 0x275FF & 0x03675 - True Quarry Boathouse (Quarry Boathouse) - Quarry - True - Quarry Boathouse Upper Front - 0x03852 - Quarry Boathouse Behind Staircase - 0x2769B: 158146 - 0x034D4 (Intro Left) - True - Stars & Eraser @@ -250,6 +289,7 @@ Door - 0x17C50 (First Barrier) - 0x021AE Quarry Boathouse Upper Middle (Quarry Boathouse) - Quarry Boathouse Upper Back - 0x03858: 158154 - 0x03858 (Ramp Horizontal Control) - True - Shapers & Eraser +159402 - 0x00859 (Moving Ramp EP) - 0x03858 & 0x03852 & 0x3865F - True Quarry Boathouse Upper Back (Quarry Boathouse) - Quarry Boathouse Upper Middle - 0x3865F: 158155 - 0x38663 (Second Barrier Panel) - True - True @@ -267,96 +307,119 @@ Door - 0x3865F (Second Barrier) - 0x38663 158167 - 0x0A3CB (Back Second Row 1) - 0x09DB4 - Stars & Eraser & Shapers & Negative Shapers & Stars + Same Colored Symbol 158168 - 0x0A3CC (Back Second Row 2) - 0x0A3CB - Stars & Eraser & Shapers & Negative Shapers & Stars + Same Colored Symbol 158169 - 0x0A3D0 (Back Second Row 3) - 0x0A3CC - Stars & Eraser & Shapers & Negative Shapers & Stars + Same Colored Symbol +159401 - 0x005F6 (Hook EP) - 0x275FA & 0x03852 & 0x3865F - True Shadows (Shadows) - Main Island - True - Shadows Ledge - 0x19B24 - Shadows Laser Room - 0x194B2 & 0x19665: 158170 - 0x334DB (Door Timer Outside) - True - True Door - 0x19B24 (Timed Door) - 0x334DB -158171 - 0x0AC74 (Intro 6) - 0x0A8DC - Shadows Avoid -158172 - 0x0AC7A (Intro 7) - 0x0AC74 - Shadows Avoid -158173 - 0x0A8E0 (Intro 8) - 0x0AC7A - Shadows Avoid -158174 - 0x386FA (Far 1) - 0x0A8E0 - Shadows Avoid & Environment -158175 - 0x1C33F (Far 2) - 0x386FA - Shadows Avoid & Environment -158176 - 0x196E2 (Far 3) - 0x1C33F - Shadows Avoid & Environment -158177 - 0x1972A (Far 4) - 0x196E2 - Shadows Avoid & Environment -158178 - 0x19809 (Far 5) - 0x1972A - Shadows Avoid & Environment -158179 - 0x19806 (Far 6) - 0x19809 - Shadows Avoid & Environment -158180 - 0x196F8 (Far 7) - 0x19806 - Shadows Avoid & Environment -158181 - 0x1972F (Far 8) - 0x196F8 - Shadows Avoid & Environment +158171 - 0x0AC74 (Intro 6) - 0x0A8DC - True +158172 - 0x0AC7A (Intro 7) - 0x0AC74 - True +158173 - 0x0A8E0 (Intro 8) - 0x0AC7A - True +158174 - 0x386FA (Far 1) - 0x0A8E0 - True +158175 - 0x1C33F (Far 2) - 0x386FA - True +158176 - 0x196E2 (Far 3) - 0x1C33F - True +158177 - 0x1972A (Far 4) - 0x196E2 - True +158178 - 0x19809 (Far 5) - 0x1972A - True +158179 - 0x19806 (Far 6) - 0x19809 - True +158180 - 0x196F8 (Far 7) - 0x19806 - True +158181 - 0x1972F (Far 8) - 0x196F8 - True Door - 0x194B2 (Laser Entry Right) - 0x1972F -158182 - 0x19797 (Near 1) - 0x0A8E0 - Shadows Follow -158183 - 0x1979A (Near 2) - 0x19797 - Shadows Follow -158184 - 0x197E0 (Near 3) - 0x1979A - Shadows Follow -158185 - 0x197E8 (Near 4) - 0x197E0 - Shadows Follow -158186 - 0x197E5 (Near 5) - 0x197E8 - Shadows Follow +158182 - 0x19797 (Near 1) - 0x0A8E0 - True +158183 - 0x1979A (Near 2) - 0x19797 - True +158184 - 0x197E0 (Near 3) - 0x1979A - True +158185 - 0x197E8 (Near 4) - 0x197E0 - True +158186 - 0x197E5 (Near 5) - 0x197E8 - True Door - 0x19665 (Laser Entry Left) - 0x197E5 +159400 - 0x28A7B (Quarry Mill Rooftop Vent EP) - True - True Shadows Ledge (Shadows) - Shadows - 0x1855B - Quarry - 0x19865 & 0x0A2DF: 158187 - 0x334DC (Door Timer Inside) - True - True -158188 - 0x198B5 (Intro 1) - True - Shadows Avoid -158189 - 0x198BD (Intro 2) - 0x198B5 - Shadows Avoid -158190 - 0x198BF (Intro 3) - 0x198BD & 0x334DC & 0x19B24 - Shadows Avoid +158188 - 0x198B5 (Intro 1) - True - True +158189 - 0x198BD (Intro 2) - 0x198B5 - True +158190 - 0x198BF (Intro 3) - 0x198BD & 0x334DC & 0x19B24 - True Door - 0x19865 (Quarry Barrier) - 0x198BF Door - 0x0A2DF (Quarry Barrier 2) - 0x198BF -158191 - 0x19771 (Intro 4) - 0x198BF - Shadows Avoid -158192 - 0x0A8DC (Intro 5) - 0x19771 - Shadows Avoid +158191 - 0x19771 (Intro 4) - 0x198BF - True +158192 - 0x0A8DC (Intro 5) - 0x19771 - True Door - 0x1855B (Ledge Barrier) - 0x0A8DC Door - 0x19ADE (Ledge Barrier 2) - 0x0A8DC Shadows Laser Room (Shadows): -158703 - 0x19650 (Laser Panel) - True - Shadows Avoid & Shadows Follow +158703 - 0x19650 (Laser Panel) - True - True Laser - 0x181B3 (Laser) - 0x19650 +Treehouse Beach (Treehouse Beach) - Main Island - True: +159200 - 0x0053D (Rock Shadow EP) - True - True +159201 - 0x0053E (Sand Shadow EP) - True - True +159212 - 0x220BD (Both Orange Bridges EP) - 0x17DA2 & 0x17DDB - True + Keep (Keep) - Main Island - True - Keep 2nd Maze - 0x01954 - Keep 2nd Pressure Plate - 0x01BEC: -158193 - 0x00139 (Hedge Maze 1) - True - Environment +158193 - 0x00139 (Hedge Maze 1) - True - True 158197 - 0x0A3A8 (Reset Pressure Plates 1) - True - True -158198 - 0x033EA (Pressure Plates 1) - 0x0A3A8 - Pressure Plates & Colored Squares & Triangles & Stars & Stars + Same Colored Symbol +158198 - 0x033EA (Pressure Plates 1) - 0x0A3A8 - Colored Squares & Triangles & Stars & Stars + Same Colored Symbol Door - 0x01954 (Hedge Maze 1 Exit) - 0x00139 Door - 0x01BEC (Pressure Plates 1 Exit) - 0x033EA +159430 - 0x03E77 (Red Flowers EP) - True - True +159431 - 0x03E7C (Purple Flowers EP) - True - True Keep 2nd Maze (Keep) - Keep - 0x018CE - Keep 3rd Maze - 0x019D8: Door - 0x018CE (Hedge Maze 2 Shortcut) - 0x00139 -158194 - 0x019DC (Hedge Maze 2) - True - Environment +158194 - 0x019DC (Hedge Maze 2) - True - True Door - 0x019D8 (Hedge Maze 2 Exit) - 0x019DC Keep 3rd Maze (Keep) - Keep - 0x019B5 - Keep 4th Maze - 0x019E6: Door - 0x019B5 (Hedge Maze 3 Shortcut) - 0x019DC -158195 - 0x019E7 (Hedge Maze 3) - True - Environment & Sound +158195 - 0x019E7 (Hedge Maze 3) - True - True Door - 0x019E6 (Hedge Maze 3 Exit) - 0x019E7 Keep 4th Maze (Keep) - Keep - 0x0199A - Keep Tower - 0x01A0E: Door - 0x0199A (Hedge Maze 4 Shortcut) - 0x019E7 -158196 - 0x01A0F (Hedge Maze 4) - True - Environment +158196 - 0x01A0F (Hedge Maze 4) - True - True Door - 0x01A0E (Hedge Maze 4 Exit) - 0x01A0F Keep 2nd Pressure Plate (Keep) - Keep 3rd Pressure Plate - True: 158199 - 0x0A3B9 (Reset Pressure Plates 2) - True - True -158200 - 0x01BE9 (Pressure Plates 2) - PP2 Weirdness - Pressure Plates & Stars & Stars + Same Colored Symbol & Squares & Black/White Squares & Shapers & Rotated Shapers +158200 - 0x01BE9 (Pressure Plates 2) - PP2 Weirdness - Stars & Stars + Same Colored Symbol & Squares & Black/White Squares & Shapers & Rotated Shapers Door - 0x01BEA (Pressure Plates 2 Exit) - 0x01BE9 Keep 3rd Pressure Plate (Keep) - Keep 4th Pressure Plate - 0x01CD5: 158201 - 0x0A3BB (Reset Pressure Plates 3) - True - True -158202 - 0x01CD3 (Pressure Plates 3) - 0x0A3BB - Pressure Plates & Black/White Squares & Triangles & Shapers & Rotated Shapers +158202 - 0x01CD3 (Pressure Plates 3) - 0x0A3BB - Black/White Squares & Triangles & Shapers & Rotated Shapers Door - 0x01CD5 (Pressure Plates 3 Exit) - 0x01CD3 Keep 4th Pressure Plate (Keep) - Shadows - 0x09E3D - Keep Tower - 0x01D40: 158203 - 0x0A3AD (Reset Pressure Plates 4) - True - True -158204 - 0x01D3F (Pressure Plates 4) - 0x0A3AD - Pressure Plates & Shapers & Triangles & Stars & Stars + Same Colored Symbol +158204 - 0x01D3F (Pressure Plates 4) - 0x0A3AD - Shapers & Triangles & Stars & Stars + Same Colored Symbol Door - 0x01D40 (Pressure Plates 4 Exit) - 0x01D3F 158604 - 0x17D27 (Discard) - True - Arrows 158205 - 0x09E49 (Shadows Shortcut Panel) - True - True Door - 0x09E3D (Shadows Shortcut) - 0x09E49 Shipwreck (Shipwreck) - Keep 3rd Pressure Plate - True: -158654 - 0x00AFB (Vault) - True - Symmetry & Sound & Sound Dots & Colored Dots +158654 - 0x00AFB (Vault) - True - Symmetry & Sound Dots & Colored Dots 158655 - 0x03535 (Vault Box) - 0x00AFB - True 158605 - 0x17D28 (Discard) - True - Arrows +159220 - 0x03B22 (Circle Far EP) - True - True +159221 - 0x03B23 (Circle Left EP) - True - True +159222 - 0x03B24 (Circle Near EP) - True - True +159224 - 0x03A79 (Stern EP) - True - True +159225 - 0x28ABD (Rope Inner EP) - True - True +159226 - 0x28ABE (Rope Outer EP) - True - True +159230 - 0x3388F (Couch EP) - 0x17CDF | 0x0A054 - True Keep Tower (Keep) - Keep - 0x04F8F: 158206 - 0x0361B (Tower Shortcut Panel) - True - True Door - 0x04F8F (Tower Shortcut) - 0x0361B -158704 - 0x0360E (Laser Panel Hedges) - 0x01A0F & 0x019E7 & 0x019DC & 0x00139 - Environment & Sound +158704 - 0x0360E (Laser Panel Hedges) - 0x01A0F & 0x019E7 & 0x019DC & 0x00139 - True 158705 - 0x03317 (Laser Panel Pressure Plates) - 0x01BE9 - Shapers & Rotated Shapers & Triangles & Stars & Stars + Same Colored Symbol & Colored Squares & Black/White Squares Laser - 0x014BB (Laser) - 0x0360E | 0x03317 +159240 - 0x033BE (Pressure Plates 1 EP) - 0x033EA - True +159241 - 0x033BF (Pressure Plates 2 EP) - 0x01BE9 - True +159242 - 0x033DD (Pressure Plates 3 EP) - 0x01CD3 & 0x01CD5 - True +159243 - 0x033E5 (Pressure Plates 4 Left Exit EP) - 0x01D3F - True +159244 - 0x018B6 (Pressure Plates 4 Right Exit EP) - 0x01D3F - True +159250 - 0x28AE9 (Path EP) - True - True +159251 - 0x3348F (Hedges EP) - True - True Outside Monastery (Monastery) - Main Island - True - Inside Monastery - 0x0C128 & 0x0C153 - Monastery Garden - 0x03750: 158207 - 0x03713 (Shortcut Panel) - True - True @@ -365,19 +428,29 @@ Door - 0x0364E (Shortcut) - 0x03713 158209 - 0x00C92 (Entry Right) - True - True Door - 0x0C128 (Entry Inner) - 0x00B10 Door - 0x0C153 (Entry Outer) - 0x00C92 -158210 - 0x00290 (Outside 1) - 0x09D9B - Environment -158211 - 0x00038 (Outside 2) - 0x09D9B & 0x00290 - Environment -158212 - 0x00037 (Outside 3) - 0x09D9B & 0x00038 - Environment +158210 - 0x00290 (Outside 1) - 0x09D9B - True +158211 - 0x00038 (Outside 2) - 0x09D9B & 0x00290 - True +158212 - 0x00037 (Outside 3) - 0x09D9B & 0x00038 - True Door - 0x03750 (Garden Entry) - 0x00037 158706 - 0x17CA4 (Laser Panel) - 0x193A6 - True Laser - 0x17C65 (Laser) - 0x17CA4 +159130 - 0x006E5 (Facade Left Near EP) - True - True +159131 - 0x006E6 (Facade Left Far Short EP) - True - True +159132 - 0x006E7 (Facade Left Far Long EP) - True - True +159136 - 0x03DAB (Facade Right Near EP) - True - True +159137 - 0x03DAC (Facade Left Stairs EP) - True - True +159138 - 0x03DAD (Facade Right Stairs EP) - True - True +159140 - 0x03E01 (Grass Stairs EP) - True - True Inside Monastery (Monastery): 158213 - 0x09D9B (Shutters Control) - True - Dots -158214 - 0x193A7 (Inside 1) - 0x00037 - Environment -158215 - 0x193AA (Inside 2) - 0x193A7 - Environment -158216 - 0x193AB (Inside 3) - 0x193AA - Environment -158217 - 0x193A6 (Inside 4) - 0x193AB - Environment +158214 - 0x193A7 (Inside 1) - 0x00037 - True +158215 - 0x193AA (Inside 2) - 0x193A7 - True +158216 - 0x193AB (Inside 3) - 0x193AA - True +158217 - 0x193A6 (Inside 4) - 0x193AB - True +159133 - 0x034A7 (Left Shutter EP) - 0x09D9B - True +159134 - 0x034AD (Middle Shutter EP) - 0x09D9B - True +159135 - 0x034AF (Right Shutter EP) - 0x09D9B - True Monastery Garden (Monastery): @@ -386,10 +459,10 @@ Town (Town) - Main Island - True - Boat - 0x0A054 - Town Maze Rooftop - 0x28AA2 158219 - 0x0A0C8 (Cargo Box Entry Panel) - True - Squares & Black/White Squares & Shapers & Triangles Door - 0x0A0C9 (Cargo Box Entry) - 0x0A0C8 158707 - 0x09F98 (Desert Laser Redirect) - True - True -158220 - 0x18590 (Transparent) - True - Symmetry & Environment -158221 - 0x28AE3 (Vines) - 0x18590 - Shadows Follow & Environment -158222 - 0x28938 (Apple Tree) - 0x28AE3 - Environment -158223 - 0x079DF (Triple Exit) - 0x28938 - Shadows Avoid & Environment & Reflection +158220 - 0x18590 (Transparent) - True - Symmetry +158221 - 0x28AE3 (Vines) - 0x18590 - True +158222 - 0x28938 (Apple Tree) - 0x28AE3 - True +158223 - 0x079DF (Triple Exit) - 0x28938 - True 158235 - 0x2899C (Wooden Roof Lower Row 1) - True - Triangles & Dots & Full Dots 158236 - 0x28A33 (Wooden Roof Lower Row 2) - 0x2899C - Triangles & Dots & Full Dots 158237 - 0x28ABF (Wooden Roof Lower Row 3) - 0x28A33 - Triangles & Dots & Full Dots @@ -398,18 +471,30 @@ Door - 0x0A0C9 (Cargo Box Entry) - 0x0A0C8 Door - 0x034F5 (Wooden Roof Stairs) - 0x28AC1 158225 - 0x28998 (Tinted Glass Door Panel) - True - Stars & Rotated Shapers & Stars + Same Colored Symbol Door - 0x28A61 (Tinted Glass Door) - 0x28A0D -158226 - 0x28A0D (Church Entry Panel) - 0x28998 - Stars & RGB & Environment +158226 - 0x28A0D (Church Entry Panel) - 0x28998 - Stars Door - 0x03BB0 (Church Entry) - 0x03C08 -158228 - 0x28A79 (Maze Stair Control) - True - Environment +158228 - 0x28A79 (Maze Stair Control) - True - True Door - 0x28AA2 (Maze Stairs) - 0x28A79 158241 - 0x17F5F (Windmill Entry Panel) - True - Dots Door - 0x1845B (Windmill Entry) - 0x17F5F +159010 - 0x037B6 (Windmill First Blade EP) - 0x17D02 - True +159011 - 0x037B2 (Windmill Second Blade EP) - 0x17D02 - True +159012 - 0x000F7 (Windmill Third Blade EP) - 0x17D02 - True +159540 - 0x03335 (Tower Underside First EP) - True - True +159541 - 0x03412 (Tower Underside Second EP) - True - True +159542 - 0x038A6 (Tower Underside Third EP) - True - True +159543 - 0x038AA (Tower Underside Fourth EP) - True - True +159545 - 0x03E40 (RGB House Green EP) - 0x334D8 & 0x03C0C & 0x03C08 - True +159546 - 0x28B8E (Maze Bridge Underside EP) - 0x2896A - True +159552 - 0x03BCF (Black Line Redirect EP) - True - True +159800 - 0xFFF80 (Pet the Dog) - True - True Town Inside Cargo Box (Town): 158606 - 0x17D01 (Cargo Box Discard) - True - Arrows Town Maze Rooftop (Town) - Town Red Rooftop - 0x2896A: 158229 - 0x2896A (Maze Rooftop Bridge Control) - True - Shapers +159544 - 0x03E3F (RGB House Red EP) - 0x334D8 & 0x03C0C & 0x03C08 - True Town Red Rooftop (Town): 158607 - 0x17C71 (Rooftop Discard) - True - Arrows @@ -418,23 +503,24 @@ Town Red Rooftop (Town): 158232 - 0x28ACA (Red Rooftop 3) - 0x28AC8 - Symmetry & Shapers 158233 - 0x28ACB (Red Rooftop 4) - 0x28ACA - Symmetry & Shapers 158234 - 0x28ACC (Red Rooftop 5) - 0x28ACB - Symmetry & Shapers -158224 - 0x28B39 (Tall Hexagonal) - 0x079DF - Reflection +158224 - 0x28B39 (Tall Hexagonal) - 0x079DF - True Town Wooden Rooftop (Town): 158240 - 0x28AD9 (Wooden Rooftop) - 0x28AC1 - Triangles & Dots & Full Dots & Eraser Town Church (Town): -158227 - 0x28A69 (Church Lattice) - 0x03BB0 - Environment +158227 - 0x28A69 (Church Lattice) - 0x03BB0 - True +159553 - 0x03BD1 (Black Line Church EP) - True - True RGB House (Town) - RGB Room - 0x2897B: -158242 - 0x034E4 (Sound Room Left) - True - Sound -158243 - 0x034E3 (Sound Room Right) - True - Sound & Sound Dots +158242 - 0x034E4 (Sound Room Left) - True - True +158243 - 0x034E3 (Sound Room Right) - True - Sound Dots Door - 0x2897B (RGB House Stairs) - 0x034E4 & 0x034E3 RGB Room (Town): -158244 - 0x334D8 (RGB Control) - True - Rotated Shapers & RGB & Squares & Colored Squares & Triangles -158245 - 0x03C0C (RGB Room Left) - 0x334D8 - RGB & Squares & Colored Squares & Black/White Squares & Eraser -158246 - 0x03C08 (RGB Room Right) - 0x334D8 & 0x03C0C - RGB & Symmetry & Dots & Colored Dots & Triangles +158244 - 0x334D8 (RGB Control) - True - Rotated Shapers & Squares & Colored Squares & Triangles +158245 - 0x03C0C (RGB Room Left) - 0x334D8 - Squares & Colored Squares & Black/White Squares & Eraser +158246 - 0x03C08 (RGB Room Right) - 0x334D8 & 0x03C0C - Symmetry & Dots & Colored Dots & Triangles Town Tower (Town Tower) - Town - True - Town Tower Top - 0x27798 & 0x27799 & 0x2779A & 0x2779C: Door - 0x27798 (First Door) - 0x28ACC @@ -445,6 +531,8 @@ Door - 0x2779A (Fourth Door) - 0x28B39 Town Tower Top (Town): 158708 - 0x032F5 (Laser Panel) - True - True Laser - 0x032F9 (Laser) - 0x032F5 +159422 - 0x33692 (Brown Bridge EP) - True - True +159551 - 0x03BCE (Black Line Tower EP) - True - True Windmill Interior (Windmill) - Theater - 0x17F88: 158247 - 0x17D02 (Turn Control) - True - Dots @@ -464,35 +552,51 @@ Theater (Theater) - Town - 0x0A16D | 0x3CCDF: Door - 0x0A16D (Exit Left) - 0x0A168 Door - 0x3CCDF (Exit Right) - 0x33AB2 158608 - 0x17CF7 (Discard) - True - Arrows +159554 - 0x339B6 (Eclipse EP) - 0x03549 & 0x0A16D & 0x3CCDF - True +159555 - 0x33A29 (Window EP) - 0x03553 - True +159556 - 0x33A2A (Door EP) - 0x03553 - True +159558 - 0x33B06 (Church EP) - 0x0354E - True Jungle (Jungle) - Main Island - True - Outside Jungle River - 0x3873B - Boat - 0x17CDF: 158251 - 0x17CDF (Shore Boat Spawn) - True - Boat 158609 - 0x17F9B (Discard) - True - Arrows -158252 - 0x002C4 (First Row 1) - True - Sound -158253 - 0x00767 (First Row 2) - 0x002C4 - Sound -158254 - 0x002C6 (First Row 3) - 0x00767 - Sound -158255 - 0x0070E (Second Row 1) - 0x002C6 - Sound -158256 - 0x0070F (Second Row 2) - 0x0070E - Sound -158257 - 0x0087D (Second Row 3) - 0x0070F - Sound -158258 - 0x002C7 (Second Row 4) - 0x0087D - Sound +158252 - 0x002C4 (First Row 1) - True - True +158253 - 0x00767 (First Row 2) - 0x002C4 - True +158254 - 0x002C6 (First Row 3) - 0x00767 - True +158255 - 0x0070E (Second Row 1) - 0x002C6 - True +158256 - 0x0070F (Second Row 2) - 0x0070E - True +158257 - 0x0087D (Second Row 3) - 0x0070F - True +158258 - 0x002C7 (Second Row 4) - 0x0087D - True 158259 - 0x17CAB (Popup Wall Control) - 0x002C7 - True Door - 0x1475B (Popup Wall) - 0x17CAB -158260 - 0x0026D (Popup Wall 1) - 0x1475B - Sound & Sound Dots & Symmetry -158261 - 0x0026E (Popup Wall 2) - 0x0026D - Sound & Sound Dots & Symmetry -158262 - 0x0026F (Popup Wall 3) - 0x0026E - Sound & Sound Dots & Symmetry -158263 - 0x00C3F (Popup Wall 4) - 0x0026F - Sound & Sound Dots & Symmetry -158264 - 0x00C41 (Popup Wall 5) - 0x00C3F - Sound & Sound Dots & Symmetry -158265 - 0x014B2 (Popup Wall 6) - 0x00C41 - Sound & Sound Dots & Symmetry +158260 - 0x0026D (Popup Wall 1) - 0x1475B - Sound Dots & Symmetry +158261 - 0x0026E (Popup Wall 2) - 0x0026D - Sound Dots & Symmetry +158262 - 0x0026F (Popup Wall 3) - 0x0026E - Sound Dots & Symmetry +158263 - 0x00C3F (Popup Wall 4) - 0x0026F - Sound Dots & Symmetry +158264 - 0x00C41 (Popup Wall 5) - 0x00C3F - Sound Dots & Symmetry +158265 - 0x014B2 (Popup Wall 6) - 0x00C41 - Sound Dots & Symmetry 158709 - 0x03616 (Laser Panel) - 0x014B2 - True Laser - 0x00274 (Laser) - 0x03616 158266 - 0x337FA (Laser Shortcut Panel) - True - True Door - 0x3873B (Laser Shortcut) - 0x337FA +159100 - 0x03ABC (Long Arch Moss EP) - True - True +159101 - 0x03ABE (Straight Left Moss EP) - True - True +159102 - 0x03AC0 (Pop-up Wall Moss EP) - True - True +159103 - 0x03AC4 (Short Arch Moss EP) - True - True +159150 - 0x289F4 (Entrance EP) - True - True +159151 - 0x289F5 (Tree Halo EP) - True - True +159350 - 0x035CB (Bamboo CCW EP) - True - True +159351 - 0x035CF (Bamboo CW EP) - True - True Outside Jungle River (River) - Main Island - True - Monastery Garden - 0x0CF2A: -158267 - 0x17CAA (Monastery Shortcut Panel) - True - Environment +158267 - 0x17CAA (Monastery Shortcut Panel) - True - True Door - 0x0CF2A (Monastery Shortcut) - 0x17CAA -158663 - 0x15ADD (Vault) - True - Environment & Black/White Squares & Dots +158663 - 0x15ADD (Vault) - True - Black/White Squares & Dots 158664 - 0x03702 (Vault Box) - 0x15ADD - True +159110 - 0x03AC5 (Green Leaf Moss EP) - True - True +159120 - 0x03BE2 (Monastery Garden Left EP) - 0x03750 - True +159121 - 0x03BE3 (Monastery Garden Right EP) - True - True +159122 - 0x0A409 (Monastery Wall EP) - True - True Outside Bunker (Bunker) - Main Island - True - Bunker - 0x0C2A4: 158268 - 0x17C2E (Entry Panel) - True - Squares & Black/White Squares & Colored Squares @@ -512,28 +616,37 @@ Bunker (Bunker) - Bunker Glass Room - 0x17C79: Door - 0x17C79 (Tinted Glass Door) - 0x0A099 Bunker Glass Room (Bunker) - Bunker Ultraviolet Room - 0x0C2A3: -158279 - 0x0A010 (Glass Room 1) - True - Squares & Colored Squares & RGB & Environment -158280 - 0x0A01B (Glass Room 2) - 0x0A010 - Squares & Colored Squares & Black/White Squares & RGB & Environment -158281 - 0x0A01F (Glass Room 3) - 0x0A01B - Squares & Colored Squares & Black/White Squares & RGB & Environment +158279 - 0x0A010 (Glass Room 1) - True - Squares & Colored Squares +158280 - 0x0A01B (Glass Room 2) - 0x0A010 - Squares & Colored Squares & Black/White Squares +158281 - 0x0A01F (Glass Room 3) - 0x0A01B - Squares & Colored Squares & Black/White Squares Door - 0x0C2A3 (UV Room Entry) - 0x0A01F Bunker Ultraviolet Room (Bunker) - Bunker Elevator Section - 0x0A08D: 158282 - 0x34BC5 (Drop-Down Door Open) - True - True 158283 - 0x34BC6 (Drop-Down Door Close) - 0x34BC5 - True -158284 - 0x17E63 (UV Room 1) - 0x34BC5 - Squares & Colored Squares & RGB & Environment -158285 - 0x17E67 (UV Room 2) - 0x17E63 & 0x34BC6 - Squares & Colored Squares & Black/White Squares & RGB +158284 - 0x17E63 (UV Room 1) - 0x34BC5 - Squares & Colored Squares +158285 - 0x17E67 (UV Room 2) - 0x17E63 & 0x34BC6 - Squares & Colored Squares & Black/White Squares Door - 0x0A08D (Elevator Room Entry) - 0x17E67 -Bunker Elevator Section (Bunker) - Bunker Laser Platform - 0x0A079: -158286 - 0x0A079 (Elevator Control) - True - Squares & Colored Squares & Black/White Squares & RGB +Bunker Elevator Section (Bunker) - Bunker Elevator - TrueOneWay: +159311 - 0x035F5 (Tinted Door EP) - 0x17C79 - True -Bunker Laser Platform (Bunker): +Bunker Elevator (Bunker) - Bunker Laser Platform - 0x0A079 - Bunker Green Room - 0x0A079 - Bunker Laser Platform - 0x0A079 - Outside Bunker - 0x0A079: +158286 - 0x0A079 (Elevator Control) - True - Colored Squares & Black/White Squares + +Bunker Green Room (Bunker) - Bunker Elevator - TrueOneWay: +159310 - 0x000D3 (Green Room Flowers EP) - True - True + +Bunker Laser Platform (Bunker) - Bunker Elevator - TrueOneWay: 158710 - 0x09DE0 (Laser Panel) - True - True Laser - 0x0C2B2 (Laser) - 0x09DE0 Outside Swamp (Swamp) - Swamp Entry Area - 0x00C1C - Main Island - True: 158287 - 0x0056E (Entry Panel) - True - Rotated Shapers & Black/White Squares & Triangles Door - 0x00C1C (Entry) - 0x0056E +159321 - 0x03603 (Purple Sand Middle EP) - 0x17E2B - True +159322 - 0x03601 (Purple Sand Top EP) - 0x17E2B - True +159327 - 0x035DE (Purple Sand Bottom EP) - True - True Swamp Entry Area (Swamp) - Swamp Sliding Bridge - TrueOneWay: 158288 - 0x00469 (Intro Front 1) - True - Black/White Squares & Shapers @@ -553,6 +666,8 @@ Swamp Entry Area (Swamp) - Swamp Sliding Bridge - TrueOneWay: Swamp Sliding Bridge (Swamp) - Swamp Entry Area - 0x00609 - Swamp Near Platform - 0x00609: 158302 - 0x00609 (Sliding Bridge) - True - Shapers & Black/White Squares +159342 - 0x0105D (Sliding Bridge Left EP) - 0x00609 - True +159343 - 0x0A304 (Sliding Bridge Right EP) - 0x00609 - True Swamp Near Platform (Swamp) - Swamp Cyan Underwater - 0x04B7F - Swamp Near Boat - 0x38AE6 - Swamp Between Bridges Near - 0x184B7 - Swamp Sliding Bridge - TrueOneWay: 158313 - 0x00982 (Platform Row 1) - True - Rotated Shapers @@ -572,6 +687,7 @@ Swamp Cyan Underwater (Swamp): 158310 - 0x013E6 (Cyan Underwater 4) - 0x00005 - Shapers & Negative Shapers & Triangles & Black/White Squares 158311 - 0x00596 (Cyan Underwater 5) - 0x013E6 - Shapers & Negative Shapers & Triangles & Black/White Squares 158312 - 0x18488 (Cyan Underwater Sliding Bridge Control) - True - Shapers +159340 - 0x03AA6 (Cyan Underwater Sliding Bridge EP) - 0x18488 - True Swamp Between Bridges Near (Swamp) - Swamp Between Bridges Far - 0x18507: 158303 - 0x00999 (Between Bridges Near Row 1) - 0x00990 - Rotated Shapers @@ -596,6 +712,8 @@ Door - 0x305D5 (Red Underwater Exit) - 0x014D1 Swamp Rotating Bridge (Swamp) - Swamp Between Bridges Far - 0x181F5 - Swamp Near Boat - 0x181F5 - Swamp Purple Area - 0x181F5: 158327 - 0x181F5 (Rotating Bridge) - True - Rotated Shapers & Shapers & Stars & Colored Squares & Triangles & Stars + Same Colored Symbol +159331 - 0x016B2 (Rotating Bridge CCW EP) - 0x181F5 - True +159334 - 0x036CE (Rotating Bridge CW EP) - 0x181F5 - True Swamp Near Boat (Swamp) - Swamp Rotating Bridge - TrueOneWay - Swamp Blue Underwater - 0x18482: 158328 - 0x09DB8 (Boat Spawn) - True - Boat @@ -605,12 +723,16 @@ Swamp Near Boat (Swamp) - Swamp Rotating Bridge - TrueOneWay - Swamp Blue Underw 158332 - 0x00E3A (Beyond Rotating Bridge 4) - 0x00C2E - Shapers & Dots & Full Dots 158339 - 0x17E2B (Long Bridge Control) - True - Rotated Shapers & Shapers Door - 0x18482 (Blue Water Pump) - 0x00E3A +159332 - 0x3365F (Boat EP) - 0x09DB8 - True +159333 - 0x03731 (Long Bridge Side EP) - 0x17E2B - True Swamp Purple Area (Swamp) - Swamp Rotating Bridge - TrueOneWay - Swamp Purple Underwater - 0x0A1D6: Door - 0x0A1D6 (Purple Water Pump) - 0x00E3A Swamp Purple Underwater (Swamp): 158333 - 0x009A6 (Purple Underwater) - True - Shapers & Triangles & Black/White Squares & Rotated Shapers & Dots & Full Dots +159330 - 0x03A9E (Purple Underwater Right EP) - True - True +159336 - 0x03A93 (Purple Underwater Left EP) - True - True Swamp Blue Underwater (Swamp): 158334 - 0x009AB (Blue Underwater 1) - True - Shapers & Negative Shapers @@ -620,8 +742,8 @@ Swamp Blue Underwater (Swamp): 158338 - 0x00006 (Blue Underwater 5) - 0x009AF - Shapers & Negative Shapers Swamp Maze (Swamp) - Swamp Laser Area - 0x17C0A & 0x17E07: -158340 - 0x17C0A (Maze Control) - True - Shapers & Negative Shapers & Rotated Shapers & Environment -158112 - 0x17E07 (Maze Control Other Side) - True - Shapers & Negative Shapers & Rotated Shapers & Environment +158340 - 0x17C0A (Maze Control) - True - Shapers & Negative Shapers & Rotated Shapers +158112 - 0x17E07 (Maze Control Other Side) - True - Shapers & Negative Shapers & Rotated Shapers Swamp Laser Area (Swamp) - Outside Swamp - 0x2D880: 158711 - 0x03615 (Laser Panel) - True - True @@ -634,6 +756,7 @@ Treehouse Entry Area (Treehouse) - Treehouse Between Doors - 0x0C309: 158343 - 0x17C95 (Boat Spawn) - True - Boat 158344 - 0x0288C (First Door Panel) - True - Stars & Stars + Same Colored Symbol & Triangles Door - 0x0C309 (First Door) - 0x0288C +159210 - 0x33721 (Buoy EP) - 0x17C95 - True Treehouse Between Doors (Treehouse) - Treehouse Yellow Bridge - 0x0C310: 158345 - 0x02886 (Second Door Panel) - True - Stars & Stars + Same Colored Symbol & Triangles @@ -691,7 +814,7 @@ Treehouse Second Purple Bridge (Treehouse) - Treehouse Left Orange Bridge - 0x17 158367 - 0x17D91 (Second Purple Bridge 6) - 0x17BDF - Stars & Colored Squares & Triangles & Stars + Same Colored Symbol 158368 - 0x17DC6 (Second Purple Bridge 7) - 0x17D91 - Stars & Colored Squares & Triangles & Stars + Same Colored Symbol -Treehouse Left Orange Bridge (Treehouse) - Treehouse Laser Room Front Platform - 0x17DDE - Treehouse Laser Room Back Platform - 0x17DDB: +Treehouse Left Orange Bridge (Treehouse) - Treehouse Laser Room Front Platform - 0x17DDE - Treehouse Laser Room Back Platform - 0x17DDB - Treehouse Burned House - 0x17DDB: 158376 - 0x17DB3 (Left Orange Bridge 1) - True - Stars & Black/White Squares & Stars + Same Colored Symbol & Shapers & Rotated Shapers 158377 - 0x17DB5 (Left Orange Bridge 2) - 0x17DB3 - Stars & Black/White Squares & Stars + Same Colored Symbol & Shapers & Rotated Shapers 158378 - 0x17DB6 (Left Orange Bridge 3) - 0x17DB5 - Stars & Black/White Squares & Stars + Same Colored Symbol & Shapers & Rotated Shapers @@ -708,7 +831,7 @@ Treehouse Left Orange Bridge (Treehouse) - Treehouse Laser Room Front Platform - 158389 - 0x17DB0 (Left Orange Bridge 14) - 0x17DAE - Stars & Black/White Squares & Stars + Same Colored Symbol 158390 - 0x17DDB (Left Orange Bridge 15) - 0x17DB0 - Stars & Black/White Squares & Stars + Same Colored Symbol -Treehouse Green Bridge (Treehouse): +Treehouse Green Bridge (Treehouse) - Treehouse Green Bridge Front House - 0x17E61 - Treehouse Green Bridge Left House - 0x17E61: 158369 - 0x17E3C (Green Bridge 1) - True - Stars & Shapers & Negative Shapers & Stars + Same Colored Symbol 158370 - 0x17E4D (Green Bridge 2) - 0x17E3C - Stars & Shapers & Negative Shapers & Stars + Same Colored Symbol 158371 - 0x17E4F (Green Bridge 3) - 0x17E4D - Stars & Shapers & Negative Shapers & Stars + Same Colored Symbol @@ -716,7 +839,12 @@ Treehouse Green Bridge (Treehouse): 158373 - 0x17E5B (Green Bridge 5) - 0x17E52 - Stars & Shapers & Negative Shapers & Stars + Same Colored Symbol 158374 - 0x17E5F (Green Bridge 6) - 0x17E5B - Stars & Shapers & Negative Shapers & Stars + Same Colored Symbol & Triangles 158375 - 0x17E61 (Green Bridge 7) - 0x17E5F - Stars & Shapers & Negative Shapers & Stars + Same Colored Symbol & Triangles -158610 - 0x17FA9 (Green Bridge Discard) - 0x17E61 - Arrows + +Treehouse Green Bridge Front House (Treehouse): +158610 - 0x17FA9 (Green Bridge Discard) - True - Arrows + +Treehouse Green Bridge Left House (Treehouse): +159211 - 0x220A7 (Right Orange Bridge EP) - 0x17DA2 - True Treehouse Laser Room Front Platform (Treehouse) - Treehouse Laser Room - 0x0C323: Door - 0x0C323 (Laser House Entry) - 0x17DA2 & 0x2700B & 0x17DEC @@ -724,6 +852,9 @@ Door - 0x0C323 (Laser House Entry) - 0x17DA2 & 0x2700B & 0x17DEC Treehouse Laser Room Back Platform (Treehouse): 158611 - 0x17FA0 (Laser Discard) - True - Arrows +Treehouse Burned House (Treehouse): +159202 - 0x00769 (Burned House Beach EP) - True - True + Treehouse Laser Room (Treehouse): 158712 - 0x03613 (Laser Panel) - True - True 158403 - 0x17CBC (Laser House Door Timer Inside) - True - True @@ -733,12 +864,19 @@ Mountainside (Mountainside) - Main Island - True - Mountaintop - True: 158612 - 0x17C42 (Discard) - True - Arrows 158665 - 0x002A6 (Vault) - True - Symmetry & Colored Squares & Triangles & Stars & Stars + Same Colored Symbol 158666 - 0x03542 (Vault Box) - 0x002A6 - True +159301 - 0x335AE (Cloud Cycle EP) - True - True +159325 - 0x33505 (Bush EP) - True - True +159335 - 0x03C07 (Apparent River EP) - True - True Mountaintop (Mountaintop) - Mountain Top Layer - 0x17C34: 158405 - 0x0042D (River Shape) - True - True 158406 - 0x09F7F (Box Short) - 7 Lasers - True 158407 - 0x17C34 (Trap Door Triple Exit) - 0x09F7F - Stars & Black/White Squares & Stars + Same Colored Symbol & Triangles 158800 - 0xFFF00 (Box Long) - 7 Lasers & 11 Lasers & 0x17C34 - True +159300 - 0x001A3 (River Shape EP) - True - True +159320 - 0x3370E (Arch Black EP) - True - True +159324 - 0x336C8 (Arch White Right EP) - True - True +159326 - 0x3369A (Arch White Left EP) - True - True Mountain Top Layer (Mountain Floor 1) - Mountain Top Layer Bridge - 0x09E39: 158408 - 0x09E39 (Light Bridge Controller) - True - Eraser & Triangles @@ -763,7 +901,7 @@ Mountain Top Layer Bridge (Mountain Floor 1) - Mountain Floor 2 - 0x09E54: 158425 - 0x09EAF (Trash Pillar 2) - 0x09EAD - Rotated Shapers & Triangles Door - 0x09E54 (Exit) - 0x09EAF & 0x09F6E & 0x09E6B & 0x09E7B -Mountain Floor 2 (Mountain Floor 2) - Mountain Floor 2 Light Bridge Room Near - 0x09FFB - Mountain Floor 2 Blue Bridge - 0x09E86: +Mountain Floor 2 (Mountain Floor 2) - Mountain Floor 2 Light Bridge Room Near - 0x09FFB - Mountain Floor 2 Blue Bridge - 0x09E86 - Mountain Pink Bridge EP - TrueOneWay: 158426 - 0x09FD3 (Near Row 1) - True - Stars & Colored Squares & Stars + Same Colored Symbol 158427 - 0x09FD4 (Near Row 2) - 0x09FD3 - Stars & Triangles & Stars + Same Colored Symbol 158428 - 0x09FD6 (Near Row 3) - 0x09FD4 - Stars & Shapers & Negative Shapers & Stars + Same Colored Symbol @@ -779,7 +917,7 @@ Door - 0x09EDD (Elevator Room Entry) - 0x09ED8 & 0x09E86 Mountain Floor 2 Light Bridge Room Near (Mountain Floor 2): 158431 - 0x09E86 (Light Bridge Controller Near) - True - Shapers & Dots -Mountain Floor 2 Beyond Bridge (Mountain Floor 2) - Mountain Floor 2 Light Bridge Room Far - 0x09E07: +Mountain Floor 2 Beyond Bridge (Mountain Floor 2) - Mountain Floor 2 Light Bridge Room Far - 0x09E07 - Mountain Pink Bridge EP - TrueOneWay: 158432 - 0x09FCC (Far Row 1) - True - Triangles 158433 - 0x09FCE (Far Row 2) - 0x09FCC - Black/White Squares & Stars & Stars + Same Colored Symbol 158434 - 0x09FCF (Far Row 3) - 0x09FCE - Stars & Triangles & Stars + Same Colored Symbol @@ -805,11 +943,16 @@ Mountain Third Layer (Mountain Bottom Floor) - Mountain Floor 2 Elevator - TrueO 158444 - 0x09FDA (Giant Puzzle) - 0x09FC1 & 0x09F8E & 0x09F01 & 0x09EFF - Shapers & Symmetry Door - 0x09F89 (Exit) - 0x09FDA -Mountain Bottom Floor (Mountain Bottom Floor) - Mountain Bottom Floor Rock - 0x17FA2 - Final Room - 0x0C141: +Mountain Bottom Floor (Mountain Bottom Floor) - Mountain Bottom Floor Rock - 0x17FA2 - Final Room - 0x0C141 - Mountain Pink Bridge EP - TrueOneWay: 158614 - 0x17FA2 (Discard) - 0xFFF00 - Arrows 158445 - 0x01983 (Final Room Entry Left) - True - Shapers & Stars 158446 - 0x01987 (Final Room Entry Right) - True - Squares & Colored Squares & Dots Door - 0x0C141 (Final Room Entry) - 0x01983 & 0x01987 +159313 - 0x09D5D (Yellow Bridge EP) - 0x09E86 & 0x09ED8 - True +159314 - 0x09D5E (Blue Bridge EP) - 0x09E86 & 0x09ED8 - True + +Mountain Pink Bridge EP (Mountain Floor 2): +159312 - 0x09D63 (Pink Bridge EP) - 0x09E39 - True Mountain Bottom Floor Rock (Mountain Bottom Floor) - Mountain Bottom Floor - 0x17F33 - Mountain Path to Caves - 0x17F33: Door - 0x17F33 (Rock Open) - True @@ -872,6 +1015,7 @@ Door - 0x019A5 (Pillar Door) - 0x09DD5 Door - 0x2D73F (Mountain Shortcut Door) - 0x021D7 158450 - 0x17CF2 (Swamp Shortcut Panel) - True - Arrows Door - 0x2D859 (Swamp Shortcut Door) - 0x17CF2 +159341 - 0x3397C (Skylight EP) - True - True Path to Challenge (Caves) - Challenge - 0x0A19A: 158477 - 0x0A16E (Challenge Entry Panel) - True - Stars & Arrows & Stars + Same Colored Symbol @@ -895,11 +1039,12 @@ Challenge (Challenge) - Tunnels - 0x0348A: 158513 - 0x00C22 (Choice Squares 2 Left) - 0x00CB9 | 0x00CA1 | 0x00C80 - Squares & Black/White Squares & Colored Squares 158514 - 0x034F4 (Maze Hidden 1) - 0x00C68 | 0x00C59 | 0x00C22 - Triangles 158515 - 0x034EC (Maze Hidden 2) - 0x00C68 | 0x00C59 | 0x00C22 - Triangles -158516 - 0x1C31A (Dots Pillar) - 0x034F4 & 0x034EC - Dots & Symmetry & Pillar -158517 - 0x1C319 (Squares Pillar) - 0x034F4 & 0x034EC - Squares & Black/White Squares & Symmetry & Pillar +158516 - 0x1C31A (Dots Pillar) - 0x034F4 & 0x034EC - Dots & Symmetry +158517 - 0x1C319 (Squares Pillar) - 0x034F4 & 0x034EC - Squares & Black/White Squares & Symmetry 158667 - 0x0356B (Vault Box) - 0x1C31A & 0x1C319 - True 158518 - 0x039B4 (Tunnels Entry Panel) - True - Arrows Door - 0x0348A (Tunnels Entry) - 0x039B4 +159530 - 0x28B30 (Water EP) - True - True Tunnels (Tunnels) - Windmill Interior - 0x27739 - Desert Lowest Level Inbetween Shortcuts - 0x27263 - Town - 0x09E87: 158668 - 0x2FAF6 (Vault Box) - True - True @@ -909,12 +1054,13 @@ Door - 0x27739 (Theater Shortcut) - 0x27732 Door - 0x27263 (Desert Shortcut) - 0x2773D 158521 - 0x09E85 (Town Shortcut Panel) - True - Arrows Door - 0x09E87 (Town Shortcut) - 0x09E85 +159557 - 0x33A20 (Theater Flowers EP) - 0x03553 & Theater to Tunnels - True Final Room (Mountain Final Room) - Elevator - 0x339BB & 0x33961: 158522 - 0x0383A (Right Pillar 1) - True - Stars & Eraser & Triangles & Stars + Same Colored Symbol 158523 - 0x09E56 (Right Pillar 2) - 0x0383A - Dots & Full Dots & Triangles & Symmetry 158524 - 0x09E5A (Right Pillar 3) - 0x09E56 - Dots & Shapers & Stars & Negative Shapers & Stars + Same Colored Symbol & Symmetry -158525 - 0x33961 (Right Pillar 4) - 0x09E5A - Eraser & Symmetry & Stars & Stars + Same Colored Symbols & Negative Shapers & Shapers +158525 - 0x33961 (Right Pillar 4) - 0x09E5A - Eraser & Symmetry & Stars & Stars + Same Colored Symbol & Negative Shapers & Shapers 158526 - 0x0383D (Left Pillar 1) - True - Stars & Black/White Squares & Stars + Same Colored Symbol 158527 - 0x0383F (Left Pillar 2) - 0x0383D - Triangles & Symmetry 158528 - 0x03859 (Left Pillar 3) - 0x0383F - Symmetry & Shapers & Black/White Squares @@ -930,3 +1076,48 @@ Elevator (Mountain Final Room): 158536 - 0x3D9A9 (Elevator Start) - 0x3D9AA & 7 Lasers | 0x3D9A8 & 7 Lasers - True Boat (Boat) - Main Island - TrueOneWay - Swamp Near Boat - TrueOneWay - Treehouse Entry Area - TrueOneWay - Quarry Boathouse Behind Staircase - TrueOneWay - Inside Glass Factory Behind Back Wall - TrueOneWay: +159042 - 0x22106 (Desert EP) - True - True +159223 - 0x03B25 (Shipwreck CCW Underside EP) - True - True +159231 - 0x28B29 (Shipwreck Green EP) - True - True +159232 - 0x28B2A (Shipwreck CW Underside EP) - True - True +159323 - 0x03D0D (Bunker Yellow Line EP) - True - True +159515 - 0x28A37 (Town Long Sewer EP) - True - True +159520 - 0x33857 (Tutorial EP) - True - True +159521 - 0x33879 (Tutorial Reflection EP) - True - True +159522 - 0x03C19 (Tutorial Moss EP) - True - True +159531 - 0x035C9 (Cargo Box EP) - 0x0A0C9 - True + +Obelisks (EPs) - Entry - True: +159700 - 0xFFE00 (Desert Obelisk Side 1) - 0x0332B & 0x03367 & 0x28B8A - True +159701 - 0xFFE01 (Desert Obelisk Side 2) - 0x037B6 & 0x037B2 & 0x000F7 - True +159702 - 0xFFE02 (Desert Obelisk Side 3) - 0x3351D - True +159703 - 0xFFE03 (Desert Obelisk Side 4) - 0x0053C & 0x00771 & 0x335C8 & 0x335C9 & 0x337F8 & 0x037BB & 0x220E4 & 0x220E5 - True +159704 - 0xFFE04 (Desert Obelisk Side 5) - 0x334B9 & 0x334BC & 0x22106 & 0x0A14C & 0x0A14D - True +159710 - 0xFFE10 (Monastery Obelisk Side 1) - 0x03ABC & 0x03ABE & 0x03AC0 & 0x03AC4 - True +159711 - 0xFFE11 (Monastery Obelisk Side 2) - 0x03AC5 - True +159712 - 0xFFE12 (Monastery Obelisk Side 3) - 0x03BE2 & 0x03BE3 & 0x0A409 - True +159713 - 0xFFE13 (Monastery Obelisk Side 4) - 0x006E5 & 0x006E6 & 0x006E7 & 0x034A7 & 0x034AD & 0x034AF & 0x03DAB & 0x03DAC & 0x03DAD - True +159714 - 0xFFE14 (Monastery Obelisk Side 5) - 0x03E01 - True +159715 - 0xFFE15 (Monastery Obelisk Side 6) - 0x289F4 & 0x289F5 - True +159720 - 0xFFE20 (Treehouse Obelisk Side 1) - 0x0053D & 0x0053E & 0x00769 - True +159721 - 0xFFE21 (Treehouse Obelisk Side 2) - 0x33721 & 0x220A7 & 0x220BD - True +159722 - 0xFFE22 (Treehouse Obelisk Side 3) - 0x03B22 & 0x03B23 & 0x03B24 & 0x03B25 & 0x03A79 & 0x28ABD & 0x28ABE - True +159723 - 0xFFE23 (Treehouse Obelisk Side 4) - 0x3388F & 0x28B29 & 0x28B2A - True +159724 - 0xFFE24 (Treehouse Obelisk Side 5) - 0x018B6 & 0x033BE & 0x033BF & 0x033DD & 0x033E5 - True +159725 - 0xFFE25 (Treehouse Obelisk Side 6) - 0x28AE9 & 0x3348F - True +159730 - 0xFFE30 (River Obelisk Side 1) - 0x001A3 & 0x335AE - True +159731 - 0xFFE31 (River Obelisk Side 2) - 0x000D3 & 0x035F5 & 0x09D5D & 0x09D5E & 0x09D63 - True +159732 - 0xFFE32 (River Obelisk Side 3) - 0x3370E & 0x035DE & 0x03601 & 0x03603 & 0x03D0D & 0x3369A & 0x336C8 & 0x33505 - True +159733 - 0xFFE33 (River Obelisk Side 4) - 0x03A9E & 0x016B2 & 0x3365F & 0x03731 & 0x036CE & 0x03C07 & 0x03A93 - True +159734 - 0xFFE34 (River Obelisk Side 5) - 0x03AA6 & 0x3397C & 0x0105D & 0x0A304 - True +159735 - 0xFFE35 (River Obelisk Side 6) - 0x035CB & 0x035CF - True +159740 - 0xFFE40 (Quarry Obelisk Side 1) - 0x28A7B & 0x005F6 & 0x00859 & 0x17CB9 & 0x28A4A - True +159741 - 0xFFE41 (Quarry Obelisk Side 2) - 0x334B6 & 0x00614 & 0x0069D & 0x28A4C - True +159742 - 0xFFE42 (Quarry Obelisk Side 3) - 0x289CF & 0x289D1 & 0x33692 - True +159743 - 0xFFE43 (Quarry Obelisk Side 4) - 0x03E77 & 0x03E7C - True +159750 - 0xFFE50 (Town Obelisk Side 1) - 0x035C7 - True +159751 - 0xFFE51 (Town Obelisk Side 2) - 0x01848 & 0x03D06 & 0x33530 & 0x33600 & 0x28A2F & 0x28A37 & 0x334A3 & 0x3352F - True +159752 - 0xFFE52 (Town Obelisk Side 3) - 0x33857 & 0x33879 & 0x03C19 - True +159753 - 0xFFE53 (Town Obelisk Side 4) - 0x28B30 & 0x035C9 - True +159754 - 0xFFE54 (Town Obelisk Side 5) - 0x03335 & 0x03412 & 0x038A6 & 0x038AA & 0x03E3F & 0x03E40 & 0x28B8E - True +159755 - 0xFFE55 (Town Obelisk Side 6) - 0x28B91 & 0x03BCE & 0x03BCF & 0x03BD1 & 0x339B6 & 0x33A20 & 0x33A29 & 0x33A2A & 0x33B06 - True \ No newline at end of file diff --git a/worlds/witness/WitnessLogicVanilla.txt b/worlds/witness/WitnessLogicVanilla.txt new file mode 100644 index 00000000..7b9fa884 --- /dev/null +++ b/worlds/witness/WitnessLogicVanilla.txt @@ -0,0 +1,1123 @@ +Entry (Entry): + +First Hallway (First Hallway) - Entry - True - First Hallway Room - 0x00064: +158000 - 0x00064 (Straight) - True - True +159510 - 0x01848 (EP) - 0x00064 - True + +First Hallway Room (First Hallway) - Tutorial - 0x00182: +158001 - 0x00182 (Bend) - True - True + +Tutorial (Tutorial) - Outside Tutorial - 0x03629: +158002 - 0x00293 (Front Center) - True - True +158003 - 0x00295 (Center Left) - 0x00293 - True +158004 - 0x002C2 (Front Left) - 0x00295 - True +158005 - 0x0A3B5 (Back Left) - True - True +158006 - 0x0A3B2 (Back Right) - True - True +158007 - 0x03629 (Gate Open) - 0x002C2 & 0x0A3B5 & 0x0A3B2 - True +158008 - 0x03505 (Gate Close) - 0x2FAF6 - True +158009 - 0x0C335 (Pillar) - True - Triangles - True +158010 - 0x0C373 (Patio Floor) - 0x0C335 - Dots +159512 - 0x33530 (Cloud EP) - True - True +159513 - 0x33600 (Patio Flowers EP) - 0x0C373 - True +159517 - 0x3352F (Gate EP) - 0x03505 - True + +Outside Tutorial (Outside Tutorial) - Outside Tutorial Path To Outpost - 0x03BA2: +158650 - 0x033D4 (Vault) - True - Dots & Black/White Squares +158651 - 0x03481 (Vault Box) - 0x033D4 - True +158013 - 0x0005D (Shed Row 1) - True - Dots +158014 - 0x0005E (Shed Row 2) - 0x0005D - Dots +158015 - 0x0005F (Shed Row 3) - 0x0005E - Dots +158016 - 0x00060 (Shed Row 4) - 0x0005F - Dots +158017 - 0x00061 (Shed Row 5) - 0x00060 - Dots +158018 - 0x018AF (Tree Row 1) - True - Black/White Squares +158019 - 0x0001B (Tree Row 2) - 0x018AF - Black/White Squares +158020 - 0x012C9 (Tree Row 3) - 0x0001B - Black/White Squares +158021 - 0x0001C (Tree Row 4) - 0x012C9 - Black/White Squares +158022 - 0x0001D (Tree Row 5) - 0x0001C - Black/White Squares +158023 - 0x0001E (Tree Row 6) - 0x0001D - Black/White Squares +158024 - 0x0001F (Tree Row 7) - 0x0001E - Black/White Squares +158025 - 0x00020 (Tree Row 8) - 0x0001F - Black/White Squares +158026 - 0x00021 (Tree Row 9) - 0x00020 - Black/White Squares +Door - 0x03BA2 (Outpost Path) - 0x0A3B5 +159511 - 0x03D06 (Garden EP) - True - True +159514 - 0x28A2F (Town Sewer EP) - True - True +159516 - 0x334A3 (Path EP) - True - True +159500 - 0x035C7 (Tractor EP) - True - True + +Outside Tutorial Path To Outpost (Outside Tutorial) - Outside Tutorial Outpost - 0x0A170: +158011 - 0x0A171 (Outpost Entry Panel) - True - Dots & Full Dots +Door - 0x0A170 (Outpost Entry) - 0x0A171 + +Outside Tutorial Outpost (Outside Tutorial) - Outside Tutorial - 0x04CA3: +158012 - 0x04CA4 (Outpost Exit Panel) - True - Dots & Full Dots +Door - 0x04CA3 (Outpost Exit) - 0x04CA4 +158600 - 0x17CFB (Discard) - True - Triangles + +Main Island (Main Island) - Outside Tutorial - True: +159550 - 0x28B91 (Thundercloud EP) - 0x09F98 & 0x012FB - True + +Outside Glass Factory (Glass Factory) - Main Island - True - Inside Glass Factory - 0x01A29: +158027 - 0x01A54 (Entry Panel) - True - Symmetry +Door - 0x01A29 (Entry) - 0x01A54 +158601 - 0x3C12B (Discard) - True - Triangles +159002 - 0x28B8A (Vase EP) - 0x01A54 - True + +Inside Glass Factory (Glass Factory) - Inside Glass Factory Behind Back Wall - 0x0D7ED: +158028 - 0x00086 (Back Wall 1) - True - Symmetry +158029 - 0x00087 (Back Wall 2) - 0x00086 - Symmetry +158030 - 0x00059 (Back Wall 3) - 0x00087 - Symmetry +158031 - 0x00062 (Back Wall 4) - 0x00059 - Symmetry +158032 - 0x0005C (Back Wall 5) - 0x00062 - Symmetry +158033 - 0x0008D (Front 1) - 0x0005C - Symmetry +158034 - 0x00081 (Front 2) - 0x0008D - Symmetry +158035 - 0x00083 (Front 3) - 0x00081 - Symmetry +158036 - 0x00084 (Melting 1) - 0x00083 - Symmetry +158037 - 0x00082 (Melting 2) - 0x00084 - Symmetry +158038 - 0x0343A (Melting 3) - 0x00082 - Symmetry +Door - 0x0D7ED (Back Wall) - 0x0005C + +Inside Glass Factory Behind Back Wall (Glass Factory) - Boat - 0x17CC8: +158039 - 0x17CC8 (Boat Spawn) - 0x17CA6 | 0x17CDF | 0x09DB8 | 0x17C95 - Boat + +Outside Symmetry Island (Symmetry Island) - Main Island - True - Symmetry Island Lower - 0x17F3E: +158040 - 0x000B0 (Lower Panel) - 0x0343A - Dots +Door - 0x17F3E (Lower) - 0x000B0 + +Symmetry Island Lower (Symmetry Island) - Symmetry Island Upper - 0x18269: +158041 - 0x00022 (Right 1) - True - Symmetry & Dots +158042 - 0x00023 (Right 2) - 0x00022 - Symmetry & Dots +158043 - 0x00024 (Right 3) - 0x00023 - Symmetry & Dots +158044 - 0x00025 (Right 4) - 0x00024 - Symmetry & Dots +158045 - 0x00026 (Right 5) - 0x00025 - Symmetry & Dots +158046 - 0x0007C (Back 1) - 0x00026 - Symmetry & Colored Dots +158047 - 0x0007E (Back 2) - 0x0007C - Symmetry & Colored Dots +158048 - 0x00075 (Back 3) - 0x0007E - Symmetry & Colored Dots +158049 - 0x00073 (Back 4) - 0x00075 - Symmetry & Dots & Colored Dots +158050 - 0x00077 (Back 5) - 0x00073 - Symmetry & Dots & Colored Dots +158051 - 0x00079 (Back 6) - 0x00077 - Symmetry & Dots & Colored Dots +158052 - 0x00065 (Left 1) - 0x00079 - Symmetry & Colored Dots +158053 - 0x0006D (Left 2) - 0x00065 - Symmetry & Colored Dots +158054 - 0x00072 (Left 3) - 0x0006D - Symmetry & Colored Dots +158055 - 0x0006F (Left 4) - 0x00072 - Symmetry & Colored Dots +158056 - 0x00070 (Left 5) - 0x0006F - Symmetry & Colored Dots +158057 - 0x00071 (Left 6) - 0x00070 - Symmetry & Colored Dots +158058 - 0x00076 (Left 7) - 0x00071 - Symmetry & Colored Dots +158059 - 0x009B8 (Scenery Outlines 1) - True - Symmetry +158060 - 0x003E8 (Scenery Outlines 2) - 0x009B8 - Symmetry +158061 - 0x00A15 (Scenery Outlines 3) - 0x003E8 - Symmetry +158062 - 0x00B53 (Scenery Outlines 4) - 0x00A15 - Symmetry +158063 - 0x00B8D (Scenery Outlines 5) - 0x00B53 - Symmetry +158064 - 0x1C349 (Upper Panel) - 0x00076 - Symmetry & Dots +Door - 0x18269 (Upper) - 0x1C349 +159000 - 0x0332B (Glass Factory Black Line Reflection EP) - True - True + +Symmetry Island Upper (Symmetry Island): +158065 - 0x00A52 (Yellow 1) - True - Symmetry & Colored Dots +158066 - 0x00A57 (Yellow 2) - 0x00A52 - Symmetry & Colored Dots +158067 - 0x00A5B (Yellow 3) - 0x00A57 - Symmetry & Colored Dots +158068 - 0x00A61 (Blue 1) - 0x00A52 - Symmetry & Colored Dots +158069 - 0x00A64 (Blue 2) - 0x00A61 & 0x00A52 - Symmetry & Colored Dots +158070 - 0x00A68 (Blue 3) - 0x00A64 & 0x00A57 - Symmetry & Colored Dots +158700 - 0x0360D (Laser Panel) - 0x00A68 - True +Laser - 0x00509 (Laser) - 0x0360D +159001 - 0x03367 (Glass Factory Black Line EP) - True - True + +Orchard (Orchard) - Main Island - True - Orchard Beyond First Gate - 0x03307: +158071 - 0x00143 (Apple Tree 1) - True - True +158072 - 0x0003B (Apple Tree 2) - 0x00143 - True +158073 - 0x00055 (Apple Tree 3) - 0x0003B - True +Door - 0x03307 (First Gate) - 0x00055 + +Orchard Beyond First Gate (Orchard) - Orchard End - 0x03313: +158074 - 0x032F7 (Apple Tree 4) - 0x00055 - True +158075 - 0x032FF (Apple Tree 5) - 0x032F7 - True +Door - 0x03313 (Second Gate) - 0x032FF + +Orchard End (Orchard): + +Desert Outside (Desert) - Main Island - True - Desert Floodlight Room - 0x09FEE: +158652 - 0x0CC7B (Vault) - True - Dots & Shapers & Rotated Shapers & Negative Shapers & Full Dots +158653 - 0x0339E (Vault Box) - 0x0CC7B - True +158602 - 0x17CE7 (Discard) - True - Triangles +158076 - 0x00698 (Surface 1) - True - True +158077 - 0x0048F (Surface 2) - 0x00698 - True +158078 - 0x09F92 (Surface 3) - 0x0048F & 0x09FA0 - True +158079 - 0x09FA0 (Surface 3 Control) - 0x0048F - True +158080 - 0x0A036 (Surface 4) - 0x09F92 - True +158081 - 0x09DA6 (Surface 5) - 0x09F92 - True +158082 - 0x0A049 (Surface 6) - 0x09F92 - True +158083 - 0x0A053 (Surface 7) - 0x0A036 & 0x09DA6 & 0x0A049 - True +158084 - 0x09F94 (Surface 8) - 0x0A053 & 0x09F86 - True +158085 - 0x09F86 (Surface 8 Control) - 0x0A053 - True +158086 - 0x0C339 (Light Room Entry Panel) - 0x09F94 - True +Door - 0x09FEE (Light Room Entry) - 0x0C339 +158701 - 0x03608 (Laser Panel) - 0x012D7 & 0x0A15F - True +Laser - 0x012FB (Laser) - 0x03608 +159020 - 0x3351D (Sand Snake EP) - True - True +159030 - 0x0053C (Facade Right EP) - True - True +159031 - 0x00771 (Facade Left EP) - True - True +159032 - 0x335C8 (Stairs Left EP) - True - True +159033 - 0x335C9 (Stairs Right EP) - True - True +159036 - 0x220E4 (Broken Wall Straight EP) - True - True +159037 - 0x220E5 (Broken Wall Bend EP) - True - True +159040 - 0x334B9 (Shore EP) - True - True +159041 - 0x334BC (Island EP) - True - True + +Desert Floodlight Room (Desert) - Desert Pond Room - 0x0C2C3: +158087 - 0x09FAA (Light Control) - True - True +158088 - 0x00422 (Light Room 1) - 0x09FAA - True +158089 - 0x006E3 (Light Room 2) - 0x09FAA - True +158090 - 0x0A02D (Light Room 3) - 0x09FAA & 0x00422 & 0x006E3 - True +Door - 0x0C2C3 (Pond Room Entry) - 0x0A02D + +Desert Pond Room (Desert) - Desert Water Levels Room - 0x0A24B: +158091 - 0x00C72 (Pond Room 1) - True - True +158092 - 0x0129D (Pond Room 2) - 0x00C72 - True +158093 - 0x008BB (Pond Room 3) - 0x0129D - True +158094 - 0x0078D (Pond Room 4) - 0x008BB - True +158095 - 0x18313 (Pond Room 5) - 0x0078D - True +158096 - 0x0A249 (Flood Room Entry Panel) - 0x18313 - True +Door - 0x0A24B (Flood Room Entry) - 0x0A249 +159043 - 0x0A14C (Pond Room Near Reflection EP) - True - True +159044 - 0x0A14D (Pond Room Far Reflection EP) - True - True + +Desert Water Levels Room (Desert) - Desert Elevator Room - 0x0C316: +158097 - 0x1C2DF (Reduce Water Level Far Left) - True - True +158098 - 0x1831E (Reduce Water Level Far Right) - True - True +158099 - 0x1C260 (Reduce Water Level Near Left) - True - True +158100 - 0x1831C (Reduce Water Level Near Right) - True - True +158101 - 0x1C2F3 (Raise Water Level Far Left) - True - True +158102 - 0x1831D (Raise Water Level Far Right) - True - True +158103 - 0x1C2B1 (Raise Water Level Near Left) - True - True +158104 - 0x1831B (Raise Water Level Near Right) - True - True +158105 - 0x04D18 (Flood Room 1) - 0x1C260 & 0x1831C - True +158106 - 0x01205 (Flood Room 2) - 0x04D18 & 0x1C260 & 0x1831C - True +158107 - 0x181AB (Flood Room 3) - 0x01205 & 0x1C260 & 0x1831C - True +158108 - 0x0117A (Flood Room 4) - 0x181AB & 0x1C260 & 0x1831C - True +158109 - 0x17ECA (Flood Room 5) - 0x0117A & 0x1C260 & 0x1831C - True +158110 - 0x18076 (Flood Room 6) - 0x17ECA & 0x1C260 & 0x1831C - True +Door - 0x0C316 (Elevator Room Entry) - 0x18076 +159034 - 0x337F8 (Flood Room EP) - 0x1C2DF - True + +Desert Elevator Room (Desert) - Desert Lowest Level Inbetween Shortcuts - 0x012FB: +158111 - 0x17C31 (Final Transparent) - True - True +158113 - 0x012D7 (Final Hexagonal) - 0x17C31 & 0x0A015 - True +158114 - 0x0A015 (Final Hexagonal Control) - 0x17C31 - True +158115 - 0x0A15C (Final Bent 1) - True - True +158116 - 0x09FFF (Final Bent 2) - 0x0A15C - True +158117 - 0x0A15F (Final Bent 3) - 0x09FFF - True +159035 - 0x037BB (Elevator EP) - 0x012FB - True + +Desert Lowest Level Inbetween Shortcuts (Desert): + +Outside Quarry (Quarry) - Main Island - True - Quarry Between Entrys - 0x09D6F - Quarry Elevator - TrueOneWay: +158118 - 0x09E57 (Entry 1 Panel) - True - Black/White Squares +158603 - 0x17CF0 (Discard) - True - Triangles +158702 - 0x03612 (Laser Panel) - 0x0A3D0 & 0x0367C - Eraser & Shapers +Laser - 0x01539 (Laser) - 0x03612 +Door - 0x09D6F (Entry 1) - 0x09E57 +159404 - 0x28A4A (Shore EP) - True - True +159410 - 0x334B6 (Entrance Pipe EP) - True - True +159412 - 0x28A4C (Sand Pile EP) - True - True +159420 - 0x289CF (Rock Line EP) - True - True +159421 - 0x289D1 (Rock Line Reflection EP) - True - True + +Quarry Elevator (Quarry): +158120 - 0x17CC4 (Elevator Control) - 0x0367C - Dots & Eraser +159403 - 0x17CB9 (Railroad EP) - 0x17CC4 - True + +Quarry Between Entrys (Quarry) - Quarry - 0x17C07: +158119 - 0x17C09 (Entry 2 Panel) - True - Shapers +Door - 0x17C07 (Entry 2) - 0x17C09 + +Quarry (Quarry) - Quarry Mill Ground Floor - 0x02010 - Quarry Elevator - 0x17CC4: +158121 - 0x01E5A (Mill Entry Left Panel) - True - Black/White Squares +158122 - 0x01E59 (Mill Entry Right Panel) - True - Dots +Door - 0x02010 (Mill Entry) - 0x01E59 & 0x01E5A + +Quarry Mill Ground Floor (Quarry Mill) - Quarry - 0x275FF - Quarry Mill Middle Floor - 0x03678 - Outside Quarry - 0x17CE8: +158123 - 0x275ED (Side Exit Panel) - True - True +Door - 0x275FF (Side Exit) - 0x275ED +158124 - 0x03678 (Lower Ramp Control) - True - Dots & Eraser +158145 - 0x17CAC (Roof Exit Panel) - True - True +Door - 0x17CE8 (Roof Exit) - 0x17CAC + +Quarry Mill Middle Floor (Quarry Mill) - Quarry Mill Ground Floor - 0x03675 - Quarry Mill Upper Floor - 0x03679: +158125 - 0x00E0C (Lower Row 1) - True - Dots & Eraser +158126 - 0x01489 (Lower Row 2) - 0x00E0C - Dots & Eraser +158127 - 0x0148A (Lower Row 3) - 0x01489 - Dots & Eraser +158128 - 0x014D9 (Lower Row 4) - 0x0148A - Dots & Eraser +158129 - 0x014E7 (Lower Row 5) - 0x014D9 - Dots +158130 - 0x014E8 (Lower Row 6) - 0x014E7 - Dots & Eraser +158131 - 0x03679 (Lower Lift Control) - 0x014E8 - Dots & Eraser + +Quarry Mill Upper Floor (Quarry Mill) - Quarry Mill Middle Floor - 0x03676 & 0x03679 - Quarry Mill Ground Floor - 0x0368A: +158132 - 0x03676 (Upper Ramp Control) - True - Dots & Eraser +158133 - 0x03675 (Upper Lift Control) - True - Dots & Eraser +158134 - 0x00557 (Upper Row 1) - True - Colored Squares & Eraser +158135 - 0x005F1 (Upper Row 2) - 0x00557 - Colored Squares & Eraser +158136 - 0x00620 (Upper Row 3) - 0x005F1 - Colored Squares & Eraser +158137 - 0x009F5 (Upper Row 4) - 0x00620 - Colored Squares & Eraser +158138 - 0x0146C (Upper Row 5) - 0x009F5 - Colored Squares & Eraser +158139 - 0x3C12D (Upper Row 6) - 0x0146C - Colored Squares & Eraser +158140 - 0x03686 (Upper Row 7) - 0x3C12D - Colored Squares & Eraser +158141 - 0x014E9 (Upper Row 8) - 0x03686 - Colored Squares & Eraser +158142 - 0x03677 (Stair Control) - True - Colored Squares & Eraser +Door - 0x0368A (Stairs) - 0x03677 +158143 - 0x3C125 (Control Room Left) - 0x0367C - Black/White Squares & Dots & Eraser +158144 - 0x0367C (Control Room Right) - 0x014E9 - Colored Squares & Dots & Eraser +159411 - 0x0069D (Ramp EP) - 0x03676 & 0x275FF - True +159413 - 0x00614 (Lift EP) - 0x275FF & 0x03675 - True + +Quarry Boathouse (Quarry Boathouse) - Quarry - True - Quarry Boathouse Upper Front - 0x03852 - Quarry Boathouse Behind Staircase - 0x2769B: +158146 - 0x034D4 (Intro Left) - True - Stars +158147 - 0x021D5 (Intro Right) - True - Shapers & Rotated Shapers +158148 - 0x03852 (Ramp Height Control) - 0x034D4 & 0x021D5 - Rotated Shapers +158166 - 0x17CA6 (Boat Spawn) - True - Boat +Door - 0x2769B (Dock) - 0x17CA6 +Door - 0x27163 (Dock Invis Barrier) - 0x17CA6 + +Quarry Boathouse Behind Staircase (Quarry Boathouse) - Boat - 0x17CA6: + +Quarry Boathouse Upper Front (Quarry Boathouse) - Quarry Boathouse Upper Middle - 0x17C50: +158149 - 0x021B3 (Front Row 1) - True - Shapers & Eraser +158150 - 0x021B4 (Front Row 2) - 0x021B3 - Shapers & Eraser +158151 - 0x021B0 (Front Row 3) - 0x021B4 - Shapers & Eraser +158152 - 0x021AF (Front Row 4) - 0x021B0 - Shapers & Eraser +158153 - 0x021AE (Front Row 5) - 0x021AF - Shapers & Eraser +Door - 0x17C50 (First Barrier) - 0x021AE + +Quarry Boathouse Upper Middle (Quarry Boathouse) - Quarry Boathouse Upper Back - 0x03858: +158154 - 0x03858 (Ramp Horizontal Control) - True - Shapers & Eraser +159402 - 0x00859 (Moving Ramp EP) - 0x03858 & 0x03852 & 0x3865F - True + +Quarry Boathouse Upper Back (Quarry Boathouse) - Quarry Boathouse Upper Middle - 0x3865F: +158155 - 0x38663 (Second Barrier Panel) - True - True +Door - 0x3865F (Second Barrier) - 0x38663 +158156 - 0x021B5 (Back First Row 1) - True - Stars & Stars + Same Colored Symbol & Eraser +158157 - 0x021B6 (Back First Row 2) - 0x021B5 - Stars & Stars + Same Colored Symbol & Eraser +158158 - 0x021B7 (Back First Row 3) - 0x021B6 - Stars & Stars + Same Colored Symbol & Eraser +158159 - 0x021BB (Back First Row 4) - 0x021B7 - Stars & Stars + Same Colored Symbol & Eraser +158160 - 0x09DB5 (Back First Row 5) - 0x021BB - Stars & Stars + Same Colored Symbol & Eraser +158161 - 0x09DB1 (Back First Row 6) - 0x09DB5 - Stars & Stars + Same Colored Symbol & Eraser +158162 - 0x3C124 (Back First Row 7) - 0x09DB1 - Stars & Stars + Same Colored Symbol & Eraser +158163 - 0x09DB3 (Back First Row 8) - 0x3C124 - Stars & Eraser & Shapers +158164 - 0x09DB4 (Back First Row 9) - 0x09DB3 - Stars & Eraser & Shapers +158165 - 0x275FA (Hook Control) - True - Shapers & Eraser +158167 - 0x0A3CB (Back Second Row 1) - 0x09DB4 - Stars & Eraser & Shapers +158168 - 0x0A3CC (Back Second Row 2) - 0x0A3CB - Stars & Eraser & Shapers +158169 - 0x0A3D0 (Back Second Row 3) - 0x0A3CC - Stars & Eraser & Shapers +159401 - 0x005F6 (Hook EP) - 0x275FA & 0x03852 & 0x3865F - True + +Shadows (Shadows) - Main Island - True - Shadows Ledge - 0x19B24 - Shadows Laser Room - 0x194B2 & 0x19665: +158170 - 0x334DB (Door Timer Outside) - True - True +Door - 0x19B24 (Timed Door) - 0x334DB +158171 - 0x0AC74 (Intro 6) - 0x0A8DC - True +158172 - 0x0AC7A (Intro 7) - 0x0AC74 - True +158173 - 0x0A8E0 (Intro 8) - 0x0AC7A - True +158174 - 0x386FA (Far 1) - 0x0A8E0 - True +158175 - 0x1C33F (Far 2) - 0x386FA - True +158176 - 0x196E2 (Far 3) - 0x1C33F - True +158177 - 0x1972A (Far 4) - 0x196E2 - True +158178 - 0x19809 (Far 5) - 0x1972A - True +158179 - 0x19806 (Far 6) - 0x19809 - True +158180 - 0x196F8 (Far 7) - 0x19806 - True +158181 - 0x1972F (Far 8) - 0x196F8 - True +Door - 0x194B2 (Laser Entry Right) - 0x1972F +158182 - 0x19797 (Near 1) - 0x0A8E0 - True +158183 - 0x1979A (Near 2) - 0x19797 - True +158184 - 0x197E0 (Near 3) - 0x1979A - True +158185 - 0x197E8 (Near 4) - 0x197E0 - True +158186 - 0x197E5 (Near 5) - 0x197E8 - True +Door - 0x19665 (Laser Entry Left) - 0x197E5 +159400 - 0x28A7B (Quarry Mill Rooftop Vent EP) - True - True + +Shadows Ledge (Shadows) - Shadows - 0x1855B - Quarry - 0x19865 & 0x0A2DF: +158187 - 0x334DC (Door Timer Inside) - True - True +158188 - 0x198B5 (Intro 1) - True - True +158189 - 0x198BD (Intro 2) - 0x198B5 - True +158190 - 0x198BF (Intro 3) - 0x198BD & 0x334DC & 0x19B24 - True +Door - 0x19865 (Quarry Barrier) - 0x198BF +Door - 0x0A2DF (Quarry Barrier 2) - 0x198BF +158191 - 0x19771 (Intro 4) - 0x198BF - True +158192 - 0x0A8DC (Intro 5) - 0x19771 - True +Door - 0x1855B (Ledge Barrier) - 0x0A8DC +Door - 0x19ADE (Ledge Barrier 2) - 0x0A8DC + +Shadows Laser Room (Shadows): +158703 - 0x19650 (Laser Panel) - True - True +Laser - 0x181B3 (Laser) - 0x19650 + +Treehouse Beach (Treehouse Beach) - Main Island - True: +159200 - 0x0053D (Rock Shadow EP) - True - True +159201 - 0x0053E (Sand Shadow EP) - True - True +159212 - 0x220BD (Both Orange Bridges EP) - 0x17DA2 & 0x17DDB - True + +Keep (Keep) - Main Island - True - Keep 2nd Maze - 0x01954 - Keep 2nd Pressure Plate - 0x01BEC: +158193 - 0x00139 (Hedge Maze 1) - True - True +158197 - 0x0A3A8 (Reset Pressure Plates 1) - True - True +158198 - 0x033EA (Pressure Plates 1) - 0x0A3A8 - Dots +Door - 0x01954 (Hedge Maze 1 Exit) - 0x00139 +Door - 0x01BEC (Pressure Plates 1 Exit) - 0x033EA +159430 - 0x03E77 (Red Flowers EP) - True - True +159431 - 0x03E7C (Purple Flowers EP) - True - True + +Keep 2nd Maze (Keep) - Keep - 0x018CE - Keep 3rd Maze - 0x019D8: +Door - 0x018CE (Hedge Maze 2 Shortcut) - 0x00139 +158194 - 0x019DC (Hedge Maze 2) - True - True +Door - 0x019D8 (Hedge Maze 2 Exit) - 0x019DC + +Keep 3rd Maze (Keep) - Keep - 0x019B5 - Keep 4th Maze - 0x019E6: +Door - 0x019B5 (Hedge Maze 3 Shortcut) - 0x019DC +158195 - 0x019E7 (Hedge Maze 3) - True - True +Door - 0x019E6 (Hedge Maze 3 Exit) - 0x019E7 + +Keep 4th Maze (Keep) - Keep - 0x0199A - Keep Tower - 0x01A0E: +Door - 0x0199A (Hedge Maze 4 Shortcut) - 0x019E7 +158196 - 0x01A0F (Hedge Maze 4) - True - True +Door - 0x01A0E (Hedge Maze 4 Exit) - 0x01A0F + +Keep 2nd Pressure Plate (Keep) - Keep 3rd Pressure Plate - 0x01BEA: +158199 - 0x0A3B9 (Reset Pressure Plates 2) - True - True +158200 - 0x01BE9 (Pressure Plates 2) - 0x0A3B9 - Black/White Squares +Door - 0x01BEA (Pressure Plates 2 Exit) - 0x01BE9 + +Keep 3rd Pressure Plate (Keep) - Keep 4th Pressure Plate - 0x01CD5: +158201 - 0x0A3BB (Reset Pressure Plates 3) - True - True +158202 - 0x01CD3 (Pressure Plates 3) - 0x0A3BB - Shapers +Door - 0x01CD5 (Pressure Plates 3 Exit) - 0x01CD3 + +Keep 4th Pressure Plate (Keep) - Shadows - 0x09E3D - Keep Tower - 0x01D40: +158203 - 0x0A3AD (Reset Pressure Plates 4) - True - True +158204 - 0x01D3F (Pressure Plates 4) - 0x0A3AD - Rotated Shapers & Symmetry +Door - 0x01D40 (Pressure Plates 4 Exit) - 0x01D3F +158604 - 0x17D27 (Discard) - True - Triangles +158205 - 0x09E49 (Shadows Shortcut Panel) - True - True +Door - 0x09E3D (Shadows Shortcut) - 0x09E49 + +Shipwreck (Shipwreck) - Keep 3rd Pressure Plate - True: +158654 - 0x00AFB (Vault) - True - Symmetry & Sound Dots & Colored Dots +158655 - 0x03535 (Vault Box) - 0x00AFB - True +158605 - 0x17D28 (Discard) - True - Triangles +159220 - 0x03B22 (Circle Far EP) - True - True +159221 - 0x03B23 (Circle Left EP) - True - True +159222 - 0x03B24 (Circle Near EP) - True - True +159224 - 0x03A79 (Stern EP) - True - True +159225 - 0x28ABD (Rope Inner EP) - True - True +159226 - 0x28ABE (Rope Outer EP) - True - True +159230 - 0x3388F (Couch EP) - 0x17CDF | 0x0A054 - True + +Keep Tower (Keep) - Keep - 0x04F8F: +158206 - 0x0361B (Tower Shortcut Panel) - True - True +Door - 0x04F8F (Tower Shortcut) - 0x0361B +158704 - 0x0360E (Laser Panel Hedges) - 0x01A0F & 0x019E7 & 0x019DC & 0x00139 - True +158705 - 0x03317 (Laser Panel Pressure Plates) - 0x01D3F - Shapers & Black/White Squares & Rotated Shapers +Laser - 0x014BB (Laser) - 0x0360E | 0x03317 +159240 - 0x033BE (Pressure Plates 1 EP) - 0x033EA - True +159241 - 0x033BF (Pressure Plates 2 EP) - 0x01BE9 - True +159242 - 0x033DD (Pressure Plates 3 EP) - 0x01CD3 & 0x01CD5 - True +159243 - 0x033E5 (Pressure Plates 4 Left Exit EP) - 0x01D3F - True +159244 - 0x018B6 (Pressure Plates 4 Right Exit EP) - 0x01D3F - True +159250 - 0x28AE9 (Path EP) - True - True +159251 - 0x3348F (Hedges EP) - True - True + +Outside Monastery (Monastery) - Main Island - True - Inside Monastery - 0x0C128 & 0x0C153 - Monastery Garden - 0x03750: +158207 - 0x03713 (Shortcut Panel) - True - True +Door - 0x0364E (Shortcut) - 0x03713 +158208 - 0x00B10 (Entry Left) - True - True +158209 - 0x00C92 (Entry Right) - True - True +Door - 0x0C128 (Entry Inner) - 0x00B10 +Door - 0x0C153 (Entry Outer) - 0x00C92 +158210 - 0x00290 (Outside 1) - 0x09D9B - True +158211 - 0x00038 (Outside 2) - 0x09D9B & 0x00290 - True +158212 - 0x00037 (Outside 3) - 0x09D9B & 0x00038 - True +Door - 0x03750 (Garden Entry) - 0x00037 +158706 - 0x17CA4 (Laser Panel) - 0x193A6 - True +Laser - 0x17C65 (Laser) - 0x17CA4 +159130 - 0x006E5 (Facade Left Near EP) - True - True +159131 - 0x006E6 (Facade Left Far Short EP) - True - True +159132 - 0x006E7 (Facade Left Far Long EP) - True - True +159136 - 0x03DAB (Facade Right Near EP) - True - True +159137 - 0x03DAC (Facade Left Stairs EP) - True - True +159138 - 0x03DAD (Facade Right Stairs EP) - True - True +159140 - 0x03E01 (Grass Stairs EP) - True - True + +Inside Monastery (Monastery): +158213 - 0x09D9B (Shutters Control) - True - Dots +158214 - 0x193A7 (Inside 1) - 0x00037 - True +158215 - 0x193AA (Inside 2) - 0x193A7 - True +158216 - 0x193AB (Inside 3) - 0x193AA - True +158217 - 0x193A6 (Inside 4) - 0x193AB - True +159133 - 0x034A7 (Left Shutter EP) - 0x09D9B - True +159134 - 0x034AD (Middle Shutter EP) - 0x09D9B - True +159135 - 0x034AF (Right Shutter EP) - 0x09D9B - True + +Monastery Garden (Monastery): + +Town (Town) - Main Island - True - Boat - 0x0A054 - Town Maze Rooftop - 0x28AA2 - Town Church - True - Town Wooden Rooftop - 0x034F5 - RGB House - 0x28A61 - Windmill Interior - 0x1845B - Town Inside Cargo Box - 0x0A0C9: +158218 - 0x0A054 (Boat Spawn) - 0x17CA6 | 0x17CDF | 0x09DB8 | 0x17C95 - Boat +158219 - 0x0A0C8 (Cargo Box Entry Panel) - True - Black/White Squares & Shapers +Door - 0x0A0C9 (Cargo Box Entry) - 0x0A0C8 +158707 - 0x09F98 (Desert Laser Redirect) - True - True +158220 - 0x18590 (Transparent) - True - Symmetry +158221 - 0x28AE3 (Vines) - 0x18590 - True +158222 - 0x28938 (Apple Tree) - 0x28AE3 - True +158223 - 0x079DF (Triple Exit) - 0x28938 - True +158235 - 0x2899C (Wooden Roof Lower Row 1) - True - Rotated Shapers & Dots & Full Dots +158236 - 0x28A33 (Wooden Roof Lower Row 2) - 0x2899C - Shapers & Rotated Shapers & Dots & Full Dots +158237 - 0x28ABF (Wooden Roof Lower Row 3) - 0x28A33 - Shapers & Rotated Shapers & Dots & Full Dots +158238 - 0x28AC0 (Wooden Roof Lower Row 4) - 0x28ABF - Rotated Shapers & Dots & Full Dots +158239 - 0x28AC1 (Wooden Roof Lower Row 5) - 0x28AC0 - Rotated Shapers & Dots & Full Dots +Door - 0x034F5 (Wooden Roof Stairs) - 0x28AC1 +158225 - 0x28998 (Tinted Glass Door Panel) - True - Stars & Rotated Shapers +Door - 0x28A61 (Tinted Glass Door) - 0x28998 +158226 - 0x28A0D (Church Entry Panel) - 0x28A61 - Stars +Door - 0x03BB0 (Church Entry) - 0x28A0D +158228 - 0x28A79 (Maze Stair Control) - True - True +Door - 0x28AA2 (Maze Stairs) - 0x28A79 +158241 - 0x17F5F (Windmill Entry Panel) - True - Dots +Door - 0x1845B (Windmill Entry) - 0x17F5F +159010 - 0x037B6 (Windmill First Blade EP) - 0x17D02 - True +159011 - 0x037B2 (Windmill Second Blade EP) - 0x17D02 - True +159012 - 0x000F7 (Windmill Third Blade EP) - 0x17D02 - True +159540 - 0x03335 (Tower Underside First EP) - True - True +159541 - 0x03412 (Tower Underside Second EP) - True - True +159542 - 0x038A6 (Tower Underside Third EP) - True - True +159543 - 0x038AA (Tower Underside Fourth EP) - True - True +159545 - 0x03E40 (RGB House Green EP) - 0x334D8 - True +159546 - 0x28B8E (Maze Bridge Underside EP) - 0x2896A - True +159552 - 0x03BCF (Black Line Redirect EP) - True - True +159800 - 0xFFF80 (Pet the Dog) - True - True + +Town Inside Cargo Box (Town): +158606 - 0x17D01 (Cargo Box Discard) - True - Triangles + +Town Maze Rooftop (Town) - Town Red Rooftop - 0x2896A: +158229 - 0x2896A (Maze Rooftop Bridge Control) - True - Shapers +159544 - 0x03E3F (RGB House Red EP) - 0x334D8 - True + +Town Red Rooftop (Town): +158607 - 0x17C71 (Rooftop Discard) - True - Triangles +158230 - 0x28AC7 (Red Rooftop 1) - True - Symmetry & Black/White Squares +158231 - 0x28AC8 (Red Rooftop 2) - 0x28AC7 - Symmetry & Black/White Squares +158232 - 0x28ACA (Red Rooftop 3) - 0x28AC8 - Symmetry & Black/White Squares & Dots +158233 - 0x28ACB (Red Rooftop 4) - 0x28ACA - Symmetry & Black/White Squares & Dots +158234 - 0x28ACC (Red Rooftop 5) - 0x28ACB - Symmetry & Black/White Squares & Dots +158224 - 0x28B39 (Tall Hexagonal) - 0x079DF - True + +Town Wooden Rooftop (Town): +158240 - 0x28AD9 (Wooden Rooftop) - 0x28AC1 - Rotated Shapers & Dots & Eraser & Full Dots + +Town Church (Town): +158227 - 0x28A69 (Church Lattice) - 0x03BB0 - True +159553 - 0x03BD1 (Black Line Church EP) - True - True + +RGB House (Town) - RGB Room - 0x2897B: +158242 - 0x034E4 (Sound Room Left) - True - True +158243 - 0x034E3 (Sound Room Right) - True - Sound Dots +Door - 0x2897B (RGB House Stairs) - 0x034E4 & 0x034E3 + +RGB Room (Town): +158244 - 0x334D8 (RGB Control) - True - Rotated Shapers & Colored Squares +158245 - 0x03C0C (RGB Room Left) - 0x334D8 - Colored Squares & Black/White Squares +158246 - 0x03C08 (RGB Room Right) - 0x334D8 - Stars + +Town Tower (Town Tower) - Town - True - Town Tower Top - 0x27798 & 0x27799 & 0x2779A & 0x2779C: +Door - 0x27798 (First Door) - 0x28ACC +Door - 0x2779C (Second Door) - 0x28AD9 +Door - 0x27799 (Third Door) - 0x28A69 +Door - 0x2779A (Fourth Door) - 0x28B39 + +Town Tower Top (Town): +158708 - 0x032F5 (Laser Panel) - True - True +Laser - 0x032F9 (Laser) - 0x032F5 +159422 - 0x33692 (Brown Bridge EP) - True - True +159551 - 0x03BCE (Black Line Tower EP) - True - True + +Windmill Interior (Windmill) - Theater - 0x17F88: +158247 - 0x17D02 (Turn Control) - True - Dots +158248 - 0x17F89 (Theater Entry Panel) - True - Black/White Squares +Door - 0x17F88 (Theater Entry) - 0x17F89 + +Theater (Theater) - Town - 0x0A16D | 0x3CCDF: +158656 - 0x00815 (Video Input) - True - True +158657 - 0x03553 (Tutorial Video) - 0x00815 & 0x03481 - True +158658 - 0x03552 (Desert Video) - 0x00815 & 0x0339E - True +158659 - 0x0354E (Jungle Video) - 0x00815 & 0x03702 - True +158660 - 0x03549 (Challenge Video) - 0x00815 & 0x0356B - True +158661 - 0x0354F (Shipwreck Video) - 0x00815 & 0x03535 - True +158662 - 0x03545 (Mountain Video) - 0x00815 & 0x03542 - True +158249 - 0x0A168 (Exit Left Panel) - True - Black/White Squares & Eraser +158250 - 0x33AB2 (Exit Right Panel) - True - Black/White Squares & Shapers +Door - 0x0A16D (Exit Left) - 0x0A168 +Door - 0x3CCDF (Exit Right) - 0x33AB2 +158608 - 0x17CF7 (Discard) - True - Triangles +159554 - 0x339B6 (Eclipse EP) - 0x03549 & 0x0A16D & 0x3CCDF - True +159555 - 0x33A29 (Window EP) - 0x03553 - True +159556 - 0x33A2A (Door EP) - 0x03553 - True +159558 - 0x33B06 (Church EP) - 0x0354E - True + +Jungle (Jungle) - Main Island - True - Outside Jungle River - 0x3873B - Boat - 0x17CDF: +158251 - 0x17CDF (Shore Boat Spawn) - True - Boat +158609 - 0x17F9B (Discard) - True - Triangles +158252 - 0x002C4 (First Row 1) - True - True +158253 - 0x00767 (First Row 2) - 0x002C4 - True +158254 - 0x002C6 (First Row 3) - 0x00767 - True +158255 - 0x0070E (Second Row 1) - 0x002C6 - True +158256 - 0x0070F (Second Row 2) - 0x0070E - True +158257 - 0x0087D (Second Row 3) - 0x0070F - True +158258 - 0x002C7 (Second Row 4) - 0x0087D - True +158259 - 0x17CAB (Popup Wall Control) - 0x002C7 - True +Door - 0x1475B (Popup Wall) - 0x17CAB +158260 - 0x0026D (Popup Wall 1) - 0x1475B - Sound Dots +158261 - 0x0026E (Popup Wall 2) - 0x0026D - Sound Dots +158262 - 0x0026F (Popup Wall 3) - 0x0026E - Sound Dots +158263 - 0x00C3F (Popup Wall 4) - 0x0026F - Sound Dots +158264 - 0x00C41 (Popup Wall 5) - 0x00C3F - Sound Dots +158265 - 0x014B2 (Popup Wall 6) - 0x00C41 - Sound Dots +158709 - 0x03616 (Laser Panel) - 0x014B2 - True +Laser - 0x00274 (Laser) - 0x03616 +158266 - 0x337FA (Laser Shortcut Panel) - True - True +Door - 0x3873B (Laser Shortcut) - 0x337FA +159100 - 0x03ABC (Long Arch Moss EP) - True - True +159101 - 0x03ABE (Straight Left Moss EP) - True - True +159102 - 0x03AC0 (Pop-up Wall Moss EP) - True - True +159103 - 0x03AC4 (Short Arch Moss EP) - True - True +159150 - 0x289F4 (Entrance EP) - True - True +159151 - 0x289F5 (Tree Halo EP) - True - True +159350 - 0x035CB (Bamboo CCW EP) - True - True +159351 - 0x035CF (Bamboo CW EP) - True - True + +Outside Jungle River (River) - Main Island - True - Monastery Garden - 0x0CF2A: +158267 - 0x17CAA (Monastery Shortcut Panel) - True - True +Door - 0x0CF2A (Monastery Shortcut) - 0x17CAA +158663 - 0x15ADD (Vault) - True - Black/White Squares & Dots +158664 - 0x03702 (Vault Box) - 0x15ADD - True +159110 - 0x03AC5 (Green Leaf Moss EP) - True - True +159120 - 0x03BE2 (Monastery Garden Left EP) - 0x03750 - True +159121 - 0x03BE3 (Monastery Garden Right EP) - True - True +159122 - 0x0A409 (Monastery Wall EP) - True - True + +Outside Bunker (Bunker) - Main Island - True - Bunker - 0x0C2A4: +158268 - 0x17C2E (Entry Panel) - True - Black/White Squares & Colored Squares +Door - 0x0C2A4 (Entry) - 0x17C2E + +Bunker (Bunker) - Bunker Glass Room - 0x17C79: +158269 - 0x09F7D (Intro Left 1) - True - Colored Squares +158270 - 0x09FDC (Intro Left 2) - 0x09F7D - Colored Squares & Black/White Squares +158271 - 0x09FF7 (Intro Left 3) - 0x09FDC - Colored Squares & Black/White Squares +158272 - 0x09F82 (Intro Left 4) - 0x09FF7 - Colored Squares & Black/White Squares +158273 - 0x09FF8 (Intro Left 5) - 0x09F82 - Colored Squares & Black/White Squares +158274 - 0x09D9F (Intro Back 1) - 0x09FF8 - Colored Squares & Black/White Squares +158275 - 0x09DA1 (Intro Back 2) - 0x09D9F - Colored Squares +158276 - 0x09DA2 (Intro Back 3) - 0x09DA1 - Colored Squares +158277 - 0x09DAF (Intro Back 4) - 0x09DA2 - Colored Squares +158278 - 0x0A099 (Tinted Glass Door Panel) - 0x09DAF - True +Door - 0x17C79 (Tinted Glass Door) - 0x0A099 + +Bunker Glass Room (Bunker) - Bunker Ultraviolet Room - 0x0C2A3: +158279 - 0x0A010 (Glass Room 1) - True - Colored Squares +158280 - 0x0A01B (Glass Room 2) - 0x0A010 - Colored Squares & Black/White Squares +158281 - 0x0A01F (Glass Room 3) - 0x0A01B - Colored Squares & Black/White Squares +Door - 0x0C2A3 (UV Room Entry) - 0x0A01F + +Bunker Ultraviolet Room (Bunker) - Bunker Elevator Section - 0x0A08D: +158282 - 0x34BC5 (Drop-Down Door Open) - True - True +158283 - 0x34BC6 (Drop-Down Door Close) - 0x34BC5 - True +158284 - 0x17E63 (UV Room 1) - 0x34BC5 - Colored Squares +158285 - 0x17E67 (UV Room 2) - 0x17E63 & 0x34BC6 - Colored Squares & Black/White Squares +Door - 0x0A08D (Elevator Room Entry) - 0x17E67 + +Bunker Elevator Section (Bunker) - Bunker Elevator - TrueOneWay: +159311 - 0x035F5 (Tinted Door EP) - 0x17C79 - True + +Bunker Elevator (Bunker) - Bunker Laser Platform - 0x0A079 - Bunker Green Room - 0x0A079 - Bunker Laser Platform - 0x0A079 - Outside Bunker - 0x0A079: +158286 - 0x0A079 (Elevator Control) - True - Colored Squares & Black/White Squares + +Bunker Green Room (Bunker) - Bunker Elevator - TrueOneWay: +159310 - 0x000D3 (Green Room Flowers EP) - True - True + +Bunker Laser Platform (Bunker) - Bunker Elevator - TrueOneWay: +158710 - 0x09DE0 (Laser Panel) - True - True +Laser - 0x0C2B2 (Laser) - 0x09DE0 + +Outside Swamp (Swamp) - Swamp Entry Area - 0x00C1C - Main Island - True: +158287 - 0x0056E (Entry Panel) - True - Shapers +Door - 0x00C1C (Entry) - 0x0056E +159321 - 0x03603 (Purple Sand Middle EP) - 0x17E2B - True +159322 - 0x03601 (Purple Sand Top EP) - 0x17E2B - True +159327 - 0x035DE (Purple Sand Bottom EP) - True - True + +Swamp Entry Area (Swamp) - Swamp Sliding Bridge - TrueOneWay: +158288 - 0x00469 (Intro Front 1) - True - Shapers +158289 - 0x00472 (Intro Front 2) - 0x00469 - Shapers +158290 - 0x00262 (Intro Front 3) - 0x00472 - Shapers +158291 - 0x00474 (Intro Front 4) - 0x00262 - Shapers +158292 - 0x00553 (Intro Front 5) - 0x00474 - Shapers +158293 - 0x0056F (Intro Front 6) - 0x00553 - Shapers +158294 - 0x00390 (Intro Back 1) - 0x0056F - Shapers +158295 - 0x010CA (Intro Back 2) - 0x00390 - Shapers +158296 - 0x00983 (Intro Back 3) - 0x010CA - Shapers +158297 - 0x00984 (Intro Back 4) - 0x00983 - Shapers +158298 - 0x00986 (Intro Back 5) - 0x00984 - Shapers +158299 - 0x00985 (Intro Back 6) - 0x00986 - Shapers +158300 - 0x00987 (Intro Back 7) - 0x00985 - Shapers +158301 - 0x181A9 (Intro Back 8) - 0x00987 - Shapers + +Swamp Sliding Bridge (Swamp) - Swamp Entry Area - 0x00609 - Swamp Near Platform - 0x00609: +158302 - 0x00609 (Sliding Bridge) - True - Shapers +159342 - 0x0105D (Sliding Bridge Left EP) - 0x00609 - True +159343 - 0x0A304 (Sliding Bridge Right EP) - 0x00609 - True + +Swamp Near Platform (Swamp) - Swamp Cyan Underwater - 0x04B7F - Swamp Near Boat - 0x38AE6 - Swamp Between Bridges Near - 0x184B7 - Swamp Sliding Bridge - TrueOneWay: +158313 - 0x00982 (Platform Row 1) - True - Shapers +158314 - 0x0097F (Platform Row 2) - 0x00982 - Shapers +158315 - 0x0098F (Platform Row 3) - 0x0097F - Shapers +158316 - 0x00990 (Platform Row 4) - 0x0098F - Shapers +Door - 0x184B7 (Between Bridges First Door) - 0x00990 +158317 - 0x17C0D (Platform Shortcut Left Panel) - True - Shapers +158318 - 0x17C0E (Platform Shortcut Right Panel) - True - Shapers +Door - 0x38AE6 (Platform Shortcut Door) - 0x17C0E +Door - 0x04B7F (Cyan Water Pump) - 0x00006 + +Swamp Cyan Underwater (Swamp): +158307 - 0x00002 (Cyan Underwater 1) - True - Shapers & Negative Shapers +158308 - 0x00004 (Cyan Underwater 2) - 0x00002 - Shapers & Negative Shapers +158309 - 0x00005 (Cyan Underwater 3) - 0x00004 - Shapers & Negative Shapers +158310 - 0x013E6 (Cyan Underwater 4) - 0x00005 - Shapers & Negative Shapers +158311 - 0x00596 (Cyan Underwater 5) - 0x013E6 - Shapers & Negative Shapers +158312 - 0x18488 (Cyan Underwater Sliding Bridge Control) - True - Shapers +159340 - 0x03AA6 (Cyan Underwater Sliding Bridge EP) - 0x18488 - True + +Swamp Between Bridges Near (Swamp) - Swamp Between Bridges Far - 0x18507: +158303 - 0x00999 (Between Bridges Near Row 1) - 0x00990 - Shapers +158304 - 0x0099D (Between Bridges Near Row 2) - 0x00999 - Shapers +158305 - 0x009A0 (Between Bridges Near Row 3) - 0x0099D - Shapers +158306 - 0x009A1 (Between Bridges Near Row 4) - 0x009A0 - Shapers +Door - 0x18507 (Between Bridges Second Door) - 0x009A1 + +Swamp Between Bridges Far (Swamp) - Swamp Red Underwater - 0x183F2 - Swamp Rotating Bridge - TrueOneWay: +158319 - 0x00007 (Between Bridges Far Row 1) - 0x009A1 - Rotated Shapers +158320 - 0x00008 (Between Bridges Far Row 2) - 0x00007 - Rotated Shapers +158321 - 0x00009 (Between Bridges Far Row 3) - 0x00008 - Rotated Shapers +158322 - 0x0000A (Between Bridges Far Row 4) - 0x00009 - Rotated Shapers +Door - 0x183F2 (Red Water Pump) - 0x00596 + +Swamp Red Underwater (Swamp) - Swamp Maze - 0x305D5: +158323 - 0x00001 (Red Underwater 1) - True - Shapers & Negative Shapers +158324 - 0x014D2 (Red Underwater 2) - True - Shapers & Negative Shapers +158325 - 0x014D4 (Red Underwater 3) - True - Shapers & Negative Shapers +158326 - 0x014D1 (Red Underwater 4) - True - Shapers & Negative Shapers +Door - 0x305D5 (Red Underwater Exit) - 0x014D1 + +Swamp Rotating Bridge (Swamp) - Swamp Between Bridges Far - 0x181F5 - Swamp Near Boat - 0x181F5 - Swamp Purple Area - 0x181F5: +158327 - 0x181F5 (Rotating Bridge) - True - Rotated Shapers & Shapers +159331 - 0x016B2 (Rotating Bridge CCW EP) - 0x181F5 - True +159334 - 0x036CE (Rotating Bridge CW EP) - 0x181F5 - True + +Swamp Near Boat (Swamp) - Swamp Rotating Bridge - TrueOneWay - Swamp Blue Underwater - 0x18482: +158328 - 0x09DB8 (Boat Spawn) - True - Boat +158329 - 0x003B2 (Beyond Rotating Bridge 1) - 0x0000A - Rotated Shapers +158330 - 0x00A1E (Beyond Rotating Bridge 2) - 0x003B2 - Rotated Shapers +158331 - 0x00C2E (Beyond Rotating Bridge 3) - 0x00A1E - Rotated Shapers & Shapers +158332 - 0x00E3A (Beyond Rotating Bridge 4) - 0x00C2E - Rotated Shapers +158339 - 0x17E2B (Long Bridge Control) - True - Rotated Shapers & Shapers +Door - 0x18482 (Blue Water Pump) - 0x00E3A +159332 - 0x3365F (Boat EP) - 0x09DB8 - True +159333 - 0x03731 (Long Bridge Side EP) - 0x17E2B - True + +Swamp Purple Area (Swamp) - Swamp Rotating Bridge - TrueOneWay - Swamp Purple Underwater - 0x0A1D6: +Door - 0x0A1D6 (Purple Water Pump) - 0x00E3A + +Swamp Purple Underwater (Swamp): +158333 - 0x009A6 (Purple Underwater) - True - Shapers +159330 - 0x03A9E (Purple Underwater Right EP) - True - True +159336 - 0x03A93 (Purple Underwater Left EP) - True - True + +Swamp Blue Underwater (Swamp): +158334 - 0x009AB (Blue Underwater 1) - True - Shapers & Negative Shapers +158335 - 0x009AD (Blue Underwater 2) - 0x009AB - Shapers & Negative Shapers +158336 - 0x009AE (Blue Underwater 3) - 0x009AD - Shapers & Negative Shapers +158337 - 0x009AF (Blue Underwater 4) - 0x009AE - Shapers & Negative Shapers +158338 - 0x00006 (Blue Underwater 5) - 0x009AF - Shapers & Negative Shapers + +Swamp Maze (Swamp) - Swamp Laser Area - 0x17C0A & 0x17E07: +158340 - 0x17C0A (Maze Control) - True - Shapers & Negative Shapers & Rotated Shapers +158112 - 0x17E07 (Maze Control Other Side) - True - Shapers & Negative Shapers & Rotated Shapers + +Swamp Laser Area (Swamp) - Outside Swamp - 0x2D880: +158711 - 0x03615 (Laser Panel) - True - True +Laser - 0x00BF6 (Laser) - 0x03615 +158341 - 0x17C05 (Laser Shortcut Left Panel) - True - Rotated Shapers +158342 - 0x17C02 (Laser Shortcut Right Panel) - 0x17C05 - Shapers & Negative Shapers & Rotated Shapers +Door - 0x2D880 (Laser Shortcut) - 0x17C02 + +Treehouse Entry Area (Treehouse) - Treehouse Between Doors - 0x0C309: +158343 - 0x17C95 (Boat Spawn) - True - Boat +158344 - 0x0288C (First Door Panel) - True - Stars +Door - 0x0C309 (First Door) - 0x0288C +159210 - 0x33721 (Buoy EP) - 0x17C95 - True + +Treehouse Between Doors (Treehouse) - Treehouse Yellow Bridge - 0x0C310: +158345 - 0x02886 (Second Door Panel) - True - Stars +Door - 0x0C310 (Second Door) - 0x02886 + +Treehouse Yellow Bridge (Treehouse) - Treehouse After Yellow Bridge - 0x17DC4: +158346 - 0x17D72 (Yellow Bridge 1) - True - Stars +158347 - 0x17D8F (Yellow Bridge 2) - 0x17D72 - Stars +158348 - 0x17D74 (Yellow Bridge 3) - 0x17D8F - Stars +158349 - 0x17DAC (Yellow Bridge 4) - 0x17D74 - Stars +158350 - 0x17D9E (Yellow Bridge 5) - 0x17DAC - Stars +158351 - 0x17DB9 (Yellow Bridge 6) - 0x17D9E - Stars +158352 - 0x17D9C (Yellow Bridge 7) - 0x17DB9 - Stars +158353 - 0x17DC2 (Yellow Bridge 8) - 0x17D9C - Stars +158354 - 0x17DC4 (Yellow Bridge 9) - 0x17DC2 - Stars + +Treehouse After Yellow Bridge (Treehouse) - Treehouse Junction - 0x0A181: +158355 - 0x0A182 (Third Door Panel) - True - Stars +Door - 0x0A181 (Third Door) - 0x0A182 + +Treehouse Junction (Treehouse) - Treehouse Right Orange Bridge - True - Treehouse First Purple Bridge - True - Treehouse Green Bridge - True: +158356 - 0x2700B (Laser House Door Timer Outside Control) - True - True + +Treehouse First Purple Bridge (Treehouse) - Treehouse Second Purple Bridge - 0x17D6C: +158357 - 0x17DC8 (First Purple Bridge 1) - True - Stars & Dots +158358 - 0x17DC7 (First Purple Bridge 2) - 0x17DC8 - Stars & Dots +158359 - 0x17CE4 (First Purple Bridge 3) - 0x17DC7 - Stars & Dots +158360 - 0x17D2D (First Purple Bridge 4) - 0x17CE4 - Stars & Dots +158361 - 0x17D6C (First Purple Bridge 5) - 0x17D2D - Stars & Dots + +Treehouse Right Orange Bridge (Treehouse) - Treehouse Bridge Platform - 0x17DA2: +158391 - 0x17D88 (Right Orange Bridge 1) - True - Stars +158392 - 0x17DB4 (Right Orange Bridge 2) - 0x17D88 - Stars +158393 - 0x17D8C (Right Orange Bridge 3) - 0x17DB4 - Stars +158394 - 0x17CE3 (Right Orange Bridge 4 & Directional) - 0x17D8C - Stars +158395 - 0x17DCD (Right Orange Bridge 5) - 0x17CE3 - Stars +158396 - 0x17DB2 (Right Orange Bridge 6) - 0x17DCD - Stars +158397 - 0x17DCC (Right Orange Bridge 7) - 0x17DB2 - Stars +158398 - 0x17DCA (Right Orange Bridge 8) - 0x17DCC - Stars +158399 - 0x17D8E (Right Orange Bridge 9) - 0x17DCA - Stars +158400 - 0x17DB7 (Right Orange Bridge 10 & Directional) - 0x17D8E - Stars +158401 - 0x17DB1 (Right Orange Bridge 11) - 0x17DB7 - Stars +158402 - 0x17DA2 (Right Orange Bridge 12) - 0x17DB1 - Stars + +Treehouse Bridge Platform (Treehouse) - Main Island - 0x0C32D: +158404 - 0x037FF (Bridge Control) - True - Stars +Door - 0x0C32D (Drawbridge) - 0x037FF + +Treehouse Second Purple Bridge (Treehouse) - Treehouse Left Orange Bridge - 0x17DC6: +158362 - 0x17D9B (Second Purple Bridge 1) - True - Stars & Black/White Squares +158363 - 0x17D99 (Second Purple Bridge 2) - 0x17D9B - Stars & Black/White Squares +158364 - 0x17DAA (Second Purple Bridge 3) - 0x17D99 - Stars & Black/White Squares +158365 - 0x17D97 (Second Purple Bridge 4) - 0x17DAA - Stars & Black/White Squares & Colored Squares +158366 - 0x17BDF (Second Purple Bridge 5) - 0x17D97 - Stars & Colored Squares +158367 - 0x17D91 (Second Purple Bridge 6) - 0x17BDF - Stars & Colored Squares +158368 - 0x17DC6 (Second Purple Bridge 7) - 0x17D91 - Stars & Colored Squares + +Treehouse Left Orange Bridge (Treehouse) - Treehouse Laser Room Front Platform - 0x17DDB - Treehouse Laser Room Back Platform - 0x17DDB - Treehouse Burned House - 0x17DDB: +158376 - 0x17DB3 (Left Orange Bridge 1) - True - Stars & Black/White Squares & Stars + Same Colored Symbol +158377 - 0x17DB5 (Left Orange Bridge 2) - 0x17DB3 - Stars & Black/White Squares +158378 - 0x17DB6 (Left Orange Bridge 3) - 0x17DB5 - Stars & Black/White Squares & Stars + Same Colored Symbol +158379 - 0x17DC0 (Left Orange Bridge 4) - 0x17DB6 - Stars & Black/White Squares & Stars + Same Colored Symbol +158380 - 0x17DD7 (Left Orange Bridge 5) - 0x17DC0 - Stars & Black/White Squares & Stars + Same Colored Symbol +158381 - 0x17DD9 (Left Orange Bridge 6) - 0x17DD7 - Stars & Black/White Squares & Colored Squares & Stars + Same Colored Symbol +158382 - 0x17DB8 (Left Orange Bridge 7) - 0x17DD9 - Stars & Black/White Squares & Colored Squares & Stars + Same Colored Symbol +158383 - 0x17DDC (Left Orange Bridge 8) - 0x17DB8 - Stars & Colored Squares & Stars + Same Colored Symbol +158384 - 0x17DD1 (Left Orange Bridge 9 & Directional) - 0x17DDC - Stars & Colored Squares & Stars + Same Colored Symbol +158385 - 0x17DDE (Left Orange Bridge 10) - 0x17DD1 - Stars & Colored Squares & Stars + Same Colored Symbol +158386 - 0x17DE3 (Left Orange Bridge 11) - 0x17DDE - Stars & Colored Squares & Stars + Same Colored Symbol +158387 - 0x17DEC (Left Orange Bridge 12) - 0x17DE3 - Stars & Black/White Squares & Stars + Same Colored Symbol +158388 - 0x17DAE (Left Orange Bridge 13) - 0x17DEC - Stars & Black/White Squares & Stars + Same Colored Symbol +158389 - 0x17DB0 (Left Orange Bridge 14) - 0x17DAE - Stars & Black/White Squares & Stars + Same Colored Symbol +158390 - 0x17DDB (Left Orange Bridge 15) - 0x17DB0 - Stars & Black/White Squares & Stars + Same Colored Symbol + +Treehouse Green Bridge (Treehouse) - Treehouse Green Bridge Front House - 0x17E61 - Treehouse Green Bridge Left House - 0x17E61: +158369 - 0x17E3C (Green Bridge 1) - True - Stars & Shapers +158370 - 0x17E4D (Green Bridge 2) - 0x17E3C - Stars & Shapers +158371 - 0x17E4F (Green Bridge 3) - 0x17E4D - Stars & Shapers & Rotated Shapers +158372 - 0x17E52 (Green Bridge 4 & Directional) - 0x17E4F - Stars & Rotated Shapers +158373 - 0x17E5B (Green Bridge 5) - 0x17E52 - Stars & Shapers & Stars + Same Colored Symbol +158374 - 0x17E5F (Green Bridge 6) - 0x17E5B - Stars & Shapers & Negative Shapers & Stars + Same Colored Symbol & Rotated Shapers +158375 - 0x17E61 (Green Bridge 7) - 0x17E5F - Stars & Shapers & Rotated Shapers + +Treehouse Green Bridge Front House (Treehouse): +158610 - 0x17FA9 (Green Bridge Discard) - True - Triangles + +Treehouse Green Bridge Left House (Treehouse): +159211 - 0x220A7 (Right Orange Bridge EP) - 0x17DA2 - True + +Treehouse Laser Room Front Platform (Treehouse) - Treehouse Laser Room - 0x0C323: +Door - 0x0C323 (Laser House Entry) - 0x17DA2 & 0x2700B & 0x17DDB + +Treehouse Laser Room Back Platform (Treehouse): +158611 - 0x17FA0 (Laser Discard) - True - Triangles + +Treehouse Burned House (Treehouse): +159202 - 0x00769 (Burned House Beach EP) - True - True + +Treehouse Laser Room (Treehouse): +158712 - 0x03613 (Laser Panel) - True - True +158403 - 0x17CBC (Laser House Door Timer Inside) - True - True +Laser - 0x028A4 (Laser) - 0x03613 + +Mountainside (Mountainside) - Main Island - True - Mountaintop - True: +158612 - 0x17C42 (Discard) - True - Triangles +158665 - 0x002A6 (Vault) - True - Symmetry & Colored Dots & Black/White Squares +158666 - 0x03542 (Vault Box) - 0x002A6 - True +159301 - 0x335AE (Cloud Cycle EP) - True - True +159325 - 0x33505 (Bush EP) - True - True +159335 - 0x03C07 (Apparent River EP) - True - True + +Mountaintop (Mountaintop) - Mountain Top Layer - 0x17C34: +158405 - 0x0042D (River Shape) - True - True +158406 - 0x09F7F (Box Short) - 7 Lasers - True +158407 - 0x17C34 (Trap Door Triple Exit) - 0x09F7F - Black/White Squares +158800 - 0xFFF00 (Box Long) - 7 Lasers & 11 Lasers & 0x17C34 - True +159300 - 0x001A3 (River Shape EP) - True - True +159320 - 0x3370E (Arch Black EP) - True - True +159324 - 0x336C8 (Arch White Right EP) - True - True +159326 - 0x3369A (Arch White Left EP) - True - True + +Mountain Top Layer (Mountain Floor 1) - Mountain Top Layer Bridge - 0x09E39: +158408 - 0x09E39 (Light Bridge Controller) - True - Black/White Squares & Rotated Shapers + +Mountain Top Layer Bridge (Mountain Floor 1) - Mountain Floor 2 - 0x09E54: +158409 - 0x09E7A (Right Row 1) - True - Black/White Squares & Dots +158410 - 0x09E71 (Right Row 2) - 0x09E7A - Black/White Squares & Dots +158411 - 0x09E72 (Right Row 3) - 0x09E71 - Black/White Squares & Shapers +158412 - 0x09E69 (Right Row 4) - 0x09E72 - Black/White Squares & Dots +158413 - 0x09E7B (Right Row 5) - 0x09E69 - Black/White Squares & Dots +158414 - 0x09E73 (Left Row 1) - True - Black/White Squares & Dots +158415 - 0x09E75 (Left Row 2) - 0x09E73 - Black/White Squares & Dots +158416 - 0x09E78 (Left Row 3) - 0x09E75 - Dots & Shapers +158417 - 0x09E79 (Left Row 4) - 0x09E78 - Shapers & Rotated Shapers +158418 - 0x09E6C (Left Row 5) - 0x09E79 - Stars & Black/White Squares +158419 - 0x09E6F (Left Row 6) - 0x09E6C - Shapers +158420 - 0x09E6B (Left Row 7) - 0x09E6F - Dots +158421 - 0x33AF5 (Back Row 1) - True - Black/White Squares & Symmetry +158422 - 0x33AF7 (Back Row 2) - 0x33AF5 - Black/White Squares & Stars +158423 - 0x09F6E (Back Row 3) - 0x33AF7 - Symmetry & Dots +158424 - 0x09EAD (Trash Pillar 1) - True - Black/White Squares & Shapers +158425 - 0x09EAF (Trash Pillar 2) - 0x09EAD - Black/White Squares & Shapers +Door - 0x09E54 (Exit) - 0x09EAF & 0x09F6E & 0x09E6B & 0x09E7B + +Mountain Floor 2 (Mountain Floor 2) - Mountain Floor 2 Light Bridge Room Near - 0x09FFB - Mountain Floor 2 Blue Bridge - 0x09E86 - Mountain Pink Bridge EP - TrueOneWay: +158426 - 0x09FD3 (Near Row 1) - True - Colored Squares +158427 - 0x09FD4 (Near Row 2) - 0x09FD3 - Colored Squares & Dots +158428 - 0x09FD6 (Near Row 3) - 0x09FD4 - Stars & Colored Squares & Stars + Same Colored Symbol +158429 - 0x09FD7 (Near Row 4) - 0x09FD6 - Stars & Colored Squares & Stars + Same Colored Symbol & Shapers +158430 - 0x09FD8 (Near Row 5) - 0x09FD7 - Colored Squares & Symmetry +Door - 0x09FFB (Staircase Near) - 0x09FD8 + +Mountain Floor 2 Blue Bridge (Mountain Floor 2) - Mountain Floor 2 Beyond Bridge - TrueOneWay - Mountain Floor 2 At Door - TrueOneWay: + +Mountain Floor 2 At Door (Mountain Floor 2) - Mountain Floor 2 Elevator Room - 0x09EDD: +Door - 0x09EDD (Elevator Room Entry) - 0x09ED8 & 0x09E86 + +Mountain Floor 2 Light Bridge Room Near (Mountain Floor 2): +158431 - 0x09E86 (Light Bridge Controller Near) - True - Stars & Black/White Squares + +Mountain Floor 2 Beyond Bridge (Mountain Floor 2) - Mountain Floor 2 Light Bridge Room Far - 0x09E07 - Mountain Pink Bridge EP - TrueOneWay: +158432 - 0x09FCC (Far Row 1) - True - Dots +158433 - 0x09FCE (Far Row 2) - 0x09FCC - Black/White Squares +158434 - 0x09FCF (Far Row 3) - 0x09FCE - Shapers +158435 - 0x09FD0 (Far Row 4) - 0x09FCF - Stars +158436 - 0x09FD1 (Far Row 5) - 0x09FD0 - Black/White Squares +158437 - 0x09FD2 (Far Row 6) - 0x09FD1 - Shapers +Door - 0x09E07 (Staircase Far) - 0x09FD2 + +Mountain Floor 2 Light Bridge Room Far (Mountain Floor 2): +158438 - 0x09ED8 (Light Bridge Controller Far) - True - Stars & Black/White Squares + +Mountain Floor 2 Elevator Room (Mountain Floor 2) - Mountain Floor 2 Elevator - TrueOneWay: +158613 - 0x17F93 (Elevator Discard) - True - Triangles + +Mountain Floor 2 Elevator (Mountain Floor 2) - Mountain Floor 2 Elevator Room - 0x09EEB - Mountain Third Layer - 0x09EEB: +158439 - 0x09EEB (Elevator Control Panel) - True - Dots + +Mountain Third Layer (Mountain Bottom Floor) - Mountain Floor 2 Elevator - TrueOneWay - Mountain Bottom Floor - 0x09F89: +158440 - 0x09FC1 (Giant Puzzle Bottom Left) - True - Shapers & Eraser +158441 - 0x09F8E (Giant Puzzle Bottom Right) - True - Rotated Shapers & Eraser +158442 - 0x09F01 (Giant Puzzle Top Right) - True - Shapers & Eraser +158443 - 0x09EFF (Giant Puzzle Top Left) - True - Shapers & Eraser +158444 - 0x09FDA (Giant Puzzle) - 0x09FC1 & 0x09F8E & 0x09F01 & 0x09EFF - Shapers & Symmetry +Door - 0x09F89 (Exit) - 0x09FDA + +Mountain Bottom Floor (Mountain Bottom Floor) - Mountain Bottom Floor Rock - 0x17FA2 - Final Room - 0x0C141 - Mountain Pink Bridge EP - TrueOneWay: +158614 - 0x17FA2 (Discard) - 0xFFF00 - Triangles +158445 - 0x01983 (Final Room Entry Left) - True - Shapers & Stars +158446 - 0x01987 (Final Room Entry Right) - True - Colored Squares & Dots +Door - 0x0C141 (Final Room Entry) - 0x01983 & 0x01987 +159313 - 0x09D5D (Yellow Bridge EP) - 0x09E86 & 0x09ED8 - True +159314 - 0x09D5E (Blue Bridge EP) - 0x09E86 & 0x09ED8 - True + +Mountain Pink Bridge EP (Mountain Floor 2): +159312 - 0x09D63 (Pink Bridge EP) - 0x09E39 - True + +Mountain Bottom Floor Rock (Mountain Bottom Floor) - Mountain Bottom Floor - 0x17F33 - Mountain Path to Caves - 0x17F33: +Door - 0x17F33 (Rock Open) - True - True + +Mountain Path to Caves (Mountain Bottom Floor) - Mountain Bottom Floor Rock - 0x334E1 - Caves - 0x2D77D: +158447 - 0x00FF8 (Caves Entry Panel) - True - Black/White Squares +Door - 0x2D77D (Caves Entry) - 0x00FF8 +158448 - 0x334E1 (Rock Control) - True - True + +Caves (Caves) - Main Island - 0x2D73F | 0x2D859 - Path to Challenge - 0x019A5: +158451 - 0x335AB (Elevator Inside Control) - True - Dots & Black/White Squares +158452 - 0x335AC (Elevator Upper Outside Control) - 0x335AB - Black/White Squares +158453 - 0x3369D (Elevator Lower Outside Control) - 0x335AB - Black/White Squares & Dots +158454 - 0x00190 (Blue Tunnel Right First 1) - True - Shapers +158455 - 0x00558 (Blue Tunnel Right First 2) - 0x00190 - Shapers +158456 - 0x00567 (Blue Tunnel Right First 3) - 0x00558 - Shapers +158457 - 0x006FE (Blue Tunnel Right First 4) - 0x00567 - Shapers +158458 - 0x01A0D (Blue Tunnel Left First 1) - True - Symmetry & Shapers +158459 - 0x008B8 (Blue Tunnel Left Second 1) - True - Shapers +158460 - 0x00973 (Blue Tunnel Left Second 2) - 0x008B8 - Shapers +158461 - 0x0097B (Blue Tunnel Left Second 3) - 0x00973 - Shapers +158462 - 0x0097D (Blue Tunnel Left Second 4) - 0x0097B - Shapers +158463 - 0x0097E (Blue Tunnel Left Second 5) - 0x0097D - Shapers +158464 - 0x00994 (Blue Tunnel Right Second 1) - True - Shapers +158465 - 0x334D5 (Blue Tunnel Right Second 2) - 0x00994 - Shapers +158466 - 0x00995 (Blue Tunnel Right Second 3) - 0x334D5 - Shapers +158467 - 0x00996 (Blue Tunnel Right Second 4) - 0x00995 - Shapers +158468 - 0x00998 (Blue Tunnel Right Second 5) - 0x00996 - Shapers +158469 - 0x009A4 (Blue Tunnel Left Third 1) - True - Shapers +158470 - 0x018A0 (Blue Tunnel Right Third 1) - True - Shapers & Symmetry +158471 - 0x00A72 (Blue Tunnel Left Fourth 1) - True - Shapers & Negative Shapers +158472 - 0x32962 (First Floor Left) - True - Rotated Shapers +158473 - 0x32966 (First Floor Grounded) - True - Stars & Black/White Squares & Stars + Same Colored Symbol +158474 - 0x01A31 (First Floor Middle) - True - Colored Squares +158475 - 0x00B71 (First Floor Right) - True - Colored Squares & Stars & Stars + Same Colored Symbol & Eraser +158478 - 0x288EA (First Wooden Beam) - True - Shapers +158479 - 0x288FC (Second Wooden Beam) - True - Black/White Squares & Shapers & Rotated Shapers +158480 - 0x289E7 (Third Wooden Beam) - True - Black/White Squares +158481 - 0x288AA (Fourth Wooden Beam) - True - Black/White Squares & Shapers +158482 - 0x17FB9 (Left Upstairs Single) - True - Dots +158483 - 0x0A16B (Left Upstairs Left Row 1) - True - Dots & Full Dots +158484 - 0x0A2CE (Left Upstairs Left Row 2) - 0x0A16B - Dots & Full Dots +158485 - 0x0A2D7 (Left Upstairs Left Row 3) - 0x0A2CE - Dots & Full Dots +158486 - 0x0A2DD (Left Upstairs Left Row 4) - 0x0A2D7 - Dots & Full Dots +158487 - 0x0A2EA (Left Upstairs Left Row 5) - 0x0A2DD - Dots & Full Dots +158488 - 0x0008F (Right Upstairs Left Row 1) - True - Dots & Invisible Dots +158489 - 0x0006B (Right Upstairs Left Row 2) - 0x0008F - Dots & Invisible Dots +158490 - 0x0008B (Right Upstairs Left Row 3) - 0x0006B - Dots & Invisible Dots +158491 - 0x0008C (Right Upstairs Left Row 4) - 0x0008B - Dots & Invisible Dots +158492 - 0x0008A (Right Upstairs Left Row 5) - 0x0008C - Dots & Invisible Dots +158493 - 0x00089 (Right Upstairs Left Row 6) - 0x0008A - Dots & Invisible Dots +158494 - 0x0006A (Right Upstairs Left Row 7) - 0x00089 - Dots & Invisible Dots +158495 - 0x0006C (Right Upstairs Left Row 8) - 0x0006A - Dots & Invisible Dots +158496 - 0x00027 (Right Upstairs Right Row 1) - True - Dots & Invisible Dots & Symmetry +158497 - 0x00028 (Right Upstairs Right Row 2) - 0x00027 - Dots & Invisible Dots & Symmetry +158498 - 0x00029 (Right Upstairs Right Row 3) - 0x00028 - Dots & Invisible Dots & Symmetry +158476 - 0x09DD5 (Lone Pillar) - True - Triangles +Door - 0x019A5 (Pillar Door) - 0x09DD5 +158449 - 0x021D7 (Mountain Shortcut Panel) - True - Stars +Door - 0x2D73F (Mountain Shortcut Door) - 0x021D7 +158450 - 0x17CF2 (Swamp Shortcut Panel) - True - Triangles +Door - 0x2D859 (Swamp Shortcut Door) - 0x17CF2 +159341 - 0x3397C (Skylight EP) - True - True + +Path to Challenge (Caves) - Challenge - 0x0A19A: +158477 - 0x0A16E (Challenge Entry Panel) - True - Stars & Shapers & Stars + Same Colored Symbol +Door - 0x0A19A (Challenge Entry) - 0x0A16E + +Challenge (Challenge) - Tunnels - 0x0348A: +158499 - 0x0A332 (Start Timer) - 11 Lasers - True +158500 - 0x0088E (Small Basic) - 0x0A332 - True +158501 - 0x00BAF (Big Basic) - 0x0088E - True +158502 - 0x00BF3 (Square) - 0x00BAF - Black/White Squares +158503 - 0x00C09 (Maze Map) - 0x00BF3 - Dots +158504 - 0x00CDB (Stars and Dots) - 0x00C09 - Stars & Dots +158505 - 0x0051F (Symmetry) - 0x00CDB - Symmetry & Colored Dots & Dots +158506 - 0x00524 (Stars and Shapers) - 0x0051F - Stars & Shapers +158507 - 0x00CD4 (Big Basic 2) - 0x00524 - True +158508 - 0x00CB9 (Choice Squares Right) - 0x00CD4 - Black/White Squares +158509 - 0x00CA1 (Choice Squares Middle) - 0x00CD4 - Black/White Squares +158510 - 0x00C80 (Choice Squares Left) - 0x00CD4 - Black/White Squares +158511 - 0x00C68 (Choice Squares 2 Right) - 0x00CB9 | 0x00CA1 | 0x00C80 - Black/White Squares & Colored Squares +158512 - 0x00C59 (Choice Squares 2 Middle) - 0x00CB9 | 0x00CA1 | 0x00C80 - Black/White Squares & Colored Squares +158513 - 0x00C22 (Choice Squares 2 Left) - 0x00CB9 | 0x00CA1 | 0x00C80 - Black/White Squares & Colored Squares +158514 - 0x034F4 (Maze Hidden 1) - 0x00C68 | 0x00C59 | 0x00C22 - Triangles +158515 - 0x034EC (Maze Hidden 2) - 0x00C68 | 0x00C59 | 0x00C22 - Triangles +158516 - 0x1C31A (Dots Pillar) - 0x034F4 & 0x034EC - Dots & Symmetry +158517 - 0x1C319 (Squares Pillar) - 0x034F4 & 0x034EC - Black/White Squares & Symmetry +158667 - 0x0356B (Vault Box) - 0x1C31A & 0x1C319 - True +158518 - 0x039B4 (Tunnels Entry Panel) - True - Triangles +Door - 0x0348A (Tunnels Entry) - 0x039B4 +159530 - 0x28B30 (Water EP) - True - True + +Tunnels (Tunnels) - Windmill Interior - 0x27739 - Desert Lowest Level Inbetween Shortcuts - 0x27263 - Town - 0x09E87: +158668 - 0x2FAF6 (Vault Box) - True - True +158519 - 0x27732 (Theater Shortcut Panel) - True - True +Door - 0x27739 (Theater Shortcut) - 0x27732 +158520 - 0x2773D (Desert Shortcut Panel) - True - True +Door - 0x27263 (Desert Shortcut) - 0x2773D +158521 - 0x09E85 (Town Shortcut Panel) - True - Triangles +Door - 0x09E87 (Town Shortcut) - 0x09E85 +159557 - 0x33A20 (Theater Flowers EP) - 0x03553 & Theater to Tunnels - True + +Final Room (Mountain Final Room) - Elevator - 0x339BB & 0x33961: +158522 - 0x0383A (Right Pillar 1) - True - Stars +158523 - 0x09E56 (Right Pillar 2) - 0x0383A - Stars & Dots +158524 - 0x09E5A (Right Pillar 3) - 0x09E56 - Dots & Full Dots +158525 - 0x33961 (Right Pillar 4) - 0x09E5A - Dots & Symmetry +158526 - 0x0383D (Left Pillar 1) - True - Dots & Full Dots +158527 - 0x0383F (Left Pillar 2) - 0x0383D - Black/White Squares +158528 - 0x03859 (Left Pillar 3) - 0x0383F - Shapers +158529 - 0x339BB (Left Pillar 4) - 0x03859 - Black/White Squares & Stars & Symmetry + +Elevator (Mountain Final Room): +158530 - 0x3D9A6 (Elevator Door Closer Left) - True - True +158531 - 0x3D9A7 (Elevator Door Close Right) - True - True +158532 - 0x3C113 (Elevator Entry Left) - 0x3D9A6 | 0x3D9A7 - True +158533 - 0x3C114 (Elevator Entry Right) - 0x3D9A6 | 0x3D9A7 - True +158534 - 0x3D9AA (Back Wall Left) - 0x3D9A6 | 0x3D9A7 - True +158535 - 0x3D9A8 (Back Wall Right) - 0x3D9A6 | 0x3D9A7 - True +158536 - 0x3D9A9 (Elevator Start) - 0x3D9AA & 7 Lasers | 0x3D9A8 & 7 Lasers - True + +Boat (Boat) - Main Island - TrueOneWay - Swamp Near Boat - TrueOneWay - Treehouse Entry Area - TrueOneWay - Quarry Boathouse Behind Staircase - TrueOneWay - Inside Glass Factory Behind Back Wall - TrueOneWay: +159042 - 0x22106 (Desert EP) - True - True +159223 - 0x03B25 (Shipwreck CCW Underside EP) - True - True +159231 - 0x28B29 (Shipwreck Green EP) - True - True +159232 - 0x28B2A (Shipwreck CW Underside EP) - True - True +159323 - 0x03D0D (Bunker Yellow Line EP) - True - True +159515 - 0x28A37 (Town Long Sewer EP) - True - True +159520 - 0x33857 (Tutorial EP) - True - True +159521 - 0x33879 (Tutorial Reflection EP) - True - True +159522 - 0x03C19 (Tutorial Moss EP) - True - True +159531 - 0x035C9 (Cargo Box EP) - 0x0A0C9 - True + +Obelisks (EPs) - Entry - True: +159700 - 0xFFE00 (Desert Obelisk Side 1) - 0x0332B & 0x03367 & 0x28B8A - True +159701 - 0xFFE01 (Desert Obelisk Side 2) - 0x037B6 & 0x037B2 & 0x000F7 - True +159702 - 0xFFE02 (Desert Obelisk Side 3) - 0x3351D - True +159703 - 0xFFE03 (Desert Obelisk Side 4) - 0x0053C & 0x00771 & 0x335C8 & 0x335C9 & 0x337F8 & 0x037BB & 0x220E4 & 0x220E5 - True +159704 - 0xFFE04 (Desert Obelisk Side 5) - 0x334B9 & 0x334BC & 0x22106 & 0x0A14C & 0x0A14D - True +159710 - 0xFFE10 (Monastery Obelisk Side 1) - 0x03ABC & 0x03ABE & 0x03AC0 & 0x03AC4 - True +159711 - 0xFFE11 (Monastery Obelisk Side 2) - 0x03AC5 - True +159712 - 0xFFE12 (Monastery Obelisk Side 3) - 0x03BE2 & 0x03BE3 & 0x0A409 - True +159713 - 0xFFE13 (Monastery Obelisk Side 4) - 0x006E5 & 0x006E6 & 0x006E7 & 0x034A7 & 0x034AD & 0x034AF & 0x03DAB & 0x03DAC & 0x03DAD - True +159714 - 0xFFE14 (Monastery Obelisk Side 5) - 0x03E01 - True +159715 - 0xFFE15 (Monastery Obelisk Side 6) - 0x289F4 & 0x289F5 - True +159720 - 0xFFE20 (Treehouse Obelisk Side 1) - 0x0053D & 0x0053E & 0x00769 - True +159721 - 0xFFE21 (Treehouse Obelisk Side 2) - 0x33721 & 0x220A7 & 0x220BD - True +159722 - 0xFFE22 (Treehouse Obelisk Side 3) - 0x03B22 & 0x03B23 & 0x03B24 & 0x03B25 & 0x03A79 & 0x28ABD & 0x28ABE - True +159723 - 0xFFE23 (Treehouse Obelisk Side 4) - 0x3388F & 0x28B29 & 0x28B2A - True +159724 - 0xFFE24 (Treehouse Obelisk Side 5) - 0x018B6 & 0x033BE & 0x033BF & 0x033DD & 0x033E5 - True +159725 - 0xFFE25 (Treehouse Obelisk Side 6) - 0x28AE9 & 0x3348F - True +159730 - 0xFFE30 (River Obelisk Side 1) - 0x001A3 & 0x335AE - True +159731 - 0xFFE31 (River Obelisk Side 2) - 0x000D3 & 0x035F5 & 0x09D5D & 0x09D5E & 0x09D63 - True +159732 - 0xFFE32 (River Obelisk Side 3) - 0x3370E & 0x035DE & 0x03601 & 0x03603 & 0x03D0D & 0x3369A & 0x336C8 & 0x33505 - True +159733 - 0xFFE33 (River Obelisk Side 4) - 0x03A9E & 0x016B2 & 0x3365F & 0x03731 & 0x036CE & 0x03C07 & 0x03A93 - True +159734 - 0xFFE34 (River Obelisk Side 5) - 0x03AA6 & 0x3397C & 0x0105D & 0x0A304 - True +159735 - 0xFFE35 (River Obelisk Side 6) - 0x035CB & 0x035CF - True +159740 - 0xFFE40 (Quarry Obelisk Side 1) - 0x28A7B & 0x005F6 & 0x00859 & 0x17CB9 & 0x28A4A - True +159741 - 0xFFE41 (Quarry Obelisk Side 2) - 0x334B6 & 0x00614 & 0x0069D & 0x28A4C - True +159742 - 0xFFE42 (Quarry Obelisk Side 3) - 0x289CF & 0x289D1 & 0x33692 - True +159743 - 0xFFE43 (Quarry Obelisk Side 4) - 0x03E77 & 0x03E7C - True +159750 - 0xFFE50 (Town Obelisk Side 1) - 0x035C7 - True +159751 - 0xFFE51 (Town Obelisk Side 2) - 0x01848 & 0x03D06 & 0x33530 & 0x33600 & 0x28A2F & 0x28A37 & 0x334A3 & 0x3352F - True +159752 - 0xFFE52 (Town Obelisk Side 3) - 0x33857 & 0x33879 & 0x03C19 - True +159753 - 0xFFE53 (Town Obelisk Side 4) - 0x28B30 & 0x035C9 - True +159754 - 0xFFE54 (Town Obelisk Side 5) - 0x03335 & 0x03412 & 0x038A6 & 0x038AA & 0x03E3F & 0x03E40 & 0x28B8E - True +159755 - 0xFFE55 (Town Obelisk Side 6) - 0x28B91 & 0x03BCE & 0x03BCF & 0x03BD1 & 0x339B6 & 0x33A20 & 0x33A29 & 0x33A2A & 0x33B06 - True \ No newline at end of file diff --git a/worlds/witness/__init__.py b/worlds/witness/__init__.py index 845ca3dd..da085444 100644 --- a/worlds/witness/__init__.py +++ b/worlds/witness/__init__.py @@ -38,7 +38,7 @@ class WitnessWorld(World): """ game = "The Witness" topology_present = False - data_version = 8 + data_version = 11 static_logic = StaticWitnessLogic() static_locat = StaticWitnessLocations() @@ -52,22 +52,27 @@ class WitnessWorld(World): location_name_to_id = StaticWitnessLocations.ALL_LOCATIONS_TO_ID item_name_groups = StaticWitnessItems.ITEM_NAME_GROUPS - required_client_version = (0, 3, 6) + required_client_version = (0, 3, 8) def _get_slot_data(self): return { 'seed': self.multiworld.random.randint(0, 1000000), 'victory_location': int(self.player_logic.VICTORY_LOCATION, 16), 'panelhex_to_id': self.locat.CHECK_PANELHEX_TO_ID, - 'item_id_to_door_hexes': self.items.ITEM_ID_TO_DOOR_HEX, - 'door_hexes': self.items.DOORS, + 'item_id_to_door_hexes': self.static_items.ITEM_ID_TO_DOOR_HEX_ALL, + 'door_hexes_in_the_pool': self.items.DOORS, 'symbols_not_in_the_game': self.items.SYMBOLS_NOT_IN_THE_GAME, 'disabled_panels': self.player_logic.COMPLETELY_DISABLED_CHECKS, 'log_ids_to_hints': self.log_ids_to_hints, - 'progressive_item_lists': self.items.MULTI_LISTS_BY_CODE + 'progressive_item_lists': self.items.MULTI_LISTS_BY_CODE, + 'obelisk_side_id_to_EPs': self.static_logic.OBELISK_SIDE_ID_TO_EP_HEXES, + 'precompleted_puzzles': {int(h, 16) for h in self.player_logic.PRECOMPLETED_LOCATIONS}, + 'ep_to_name': self.static_logic.EP_ID_TO_NAME, } def generate_early(self): + self.items_by_name = dict() + if not (is_option_enabled(self.multiworld, self.player, "shuffle_symbols") or get_option_value(self.multiworld, self.player, "shuffle_doors") or is_option_enabled(self.multiworld, self.player, "shuffle_lasers")): @@ -78,45 +83,52 @@ class WitnessWorld(World): raise Exception("This Witness world doesn't have any progression items. Please turn on Symbol Shuffle," " Door Shuffle or Laser Shuffle.") - self.player_logic = WitnessPlayerLogic(self.multiworld, self.player) + disabled_locations = self.multiworld.exclude_locations[self.player].value + + self.player_logic = WitnessPlayerLogic( + self.multiworld, self.player, disabled_locations, self.multiworld.start_inventory[self.player].value + ) + self.locat = WitnessPlayerLocations(self.multiworld, self.player, self.player_logic) self.items = WitnessPlayerItems(self.locat, self.multiworld, self.player, self.player_logic) self.regio = WitnessRegions(self.locat) - self.log_ids_to_hints = dict() - - self.junk_items_created = {key: 0 for key in self.items.JUNK_WEIGHTS.keys()} + def create_regions(self): + self.regio.create_regions(self.multiworld, self.player, self.player_logic) def generate_basic(self): + self.log_ids_to_hints = dict() + self.junk_items_created = {key: 0 for key in self.items.JUNK_WEIGHTS.keys()} + # Generate item pool pool = [] - items_by_name = dict() for item in self.items.ITEM_TABLE: for i in range(0, self.items.PROG_ITEM_AMOUNTS[item]): if item in self.items.PROGRESSION_TABLE: witness_item = self.create_item(item) pool.append(witness_item) - items_by_name[item] = witness_item + self.items_by_name[item] = witness_item less_junk = 0 - # Put good item on first check if symbol shuffle is on - symbols = is_option_enabled(self.multiworld, self.player, "shuffle_symbols") + dog_check = self.multiworld.get_location( + "Town Pet the Dog", self.player + ) - if symbols and get_option_value(self.multiworld, self.player, "puzzle_randomization") != 1: - random_good_item = self.multiworld.random.choice(self.items.GOOD_ITEMS) + dog_check.place_locked_item(self.create_item("Puzzle Skip")) - first_check = self.multiworld.get_location( - "Tutorial Gate Open", self.player - ) - first_check.place_locked_item(items_by_name[random_good_item]) - pool.remove(items_by_name[random_good_item]) + less_junk += 1 - less_junk = 1 + for precol_item in self.multiworld.precollected_items[self.player]: + if precol_item.name in self.items_by_name: # if item is in the pool, remove 1 instance. + item_obj = self.items_by_name[precol_item.name] + + if item_obj in pool: + pool.remove(item_obj) # remove one instance of this pre-collected item if it exists for item in self.player_logic.STARTING_INVENTORY: - self.multiworld.push_precollected(items_by_name[item]) - pool.remove(items_by_name[item]) + self.multiworld.push_precollected(self.items_by_name[item]) + pool.remove(self.items_by_name[item]) for item in self.items.EXTRA_AMOUNTS: for i in range(0, self.items.EXTRA_AMOUNTS[item]): @@ -140,8 +152,25 @@ class WitnessWorld(World): self.multiworld.itempool += pool - def create_regions(self): - self.regio.create_regions(self.multiworld, self.player, self.player_logic) + def pre_fill(self): + # Put good item on first check if there are any of the designated "good items" in the pool + good_items_in_the_game = [] + + for symbol in self.items.GOOD_ITEMS: + item = self.items_by_name[symbol] + if item in self.multiworld.itempool: # Only do this if the item is still in item pool (e.g. after plando) + good_items_in_the_game.append(symbol) + + if good_items_in_the_game: + random_good_item = self.multiworld.random.choice(good_items_in_the_game) + + first_check = self.multiworld.get_location( + "Tutorial Gate Open", self.player + ) + item = self.items_by_name[random_good_item] + + first_check.place_locked_item(item) + self.multiworld.itempool.remove(item) def set_rules(self): set_rules(self.multiworld, self.player, self.player_logic, self.locat) @@ -150,7 +179,9 @@ class WitnessWorld(World): hint_amount = get_option_value(self.multiworld, self.player, "hint_amount") credits_hint = ( - "This Randomizer", "is brought to you by", "NewSoupVi, Jarno, jbzdarkid, sigma144, IHNN, blastron", -1 + "This Randomizer is brought to you by", + "NewSoupVi, Jarno, blastron,", + "jbzdarkid, sigma144, IHNN, oddGarrett.", -1 ) audio_logs = get_audio_logs().copy() @@ -158,12 +189,12 @@ class WitnessWorld(World): if hint_amount != 0: generated_hints = make_hints(self.multiworld, self.player, hint_amount) - self.multiworld.random.shuffle(audio_logs) + self.multiworld.slot_seeds[self.player].shuffle(audio_logs) duplicates = len(audio_logs) // hint_amount for _ in range(0, hint_amount): - hint = generated_hints.pop() + hint = generated_hints.pop(0) for _ in range(0, duplicates): audio_log = audio_logs.pop() @@ -173,7 +204,7 @@ class WitnessWorld(World): audio_log = audio_logs.pop() self.log_ids_to_hints[int(audio_log, 16)] = credits_hint - joke_hints = generate_joke_hints(self.multiworld, len(audio_logs)) + joke_hints = generate_joke_hints(self.multiworld, self.player, len(audio_logs)) while audio_logs: audio_log = audio_logs.pop() @@ -192,7 +223,7 @@ class WitnessWorld(World): def create_item(self, name: str) -> Item: # this conditional is purely for unit tests, which need to be able to create an item before generate_early - if hasattr(self, 'items'): + if hasattr(self, 'items') and name in self.items.ITEM_TABLE: item = self.items.ITEM_TABLE[name] else: item = StaticWitnessItems.ALL_ITEM_TABLE[name] diff --git a/worlds/witness/docs/en_The Witness.md b/worlds/witness/docs/en_The Witness.md index 86ee8e93..2ae478be 100644 --- a/worlds/witness/docs/en_The Witness.md +++ b/worlds/witness/docs/en_The Witness.md @@ -35,4 +35,15 @@ Example: "Shipwreck Vault contains Triangles". ## The Jungle, Orchard, Forest and Color House aren't randomized. What gives? There are limitations to what can currently be randomized in The Witness. -There is an option to turn these non-randomized panels off, called "disable_non_randomized" in your yaml file. This will also slightly change the activation requirement of certain panels, detailed [here](https://github.com/sigma144/witness-randomizer/wiki/Activation-Triggers). \ No newline at end of file +There is an option to turn these non-randomized panels off, called "disable_non_randomized" in your yaml file. This will also slightly change the activation requirement of certain panels, detailed [here](https://github.com/sigma144/witness-randomizer/wiki/Activation-Triggers). + +## A note on starting inventory and excluded locations + +In this randomizer, items added to start_inventory will be removed from the item pool (as many copies as specified). + +It is also possible to add items to the starting inventory that are not part of the mode you are playing. +In this case, the generator will make its best attempt to adjust logic accordingly. +One of the use cases of this could be to pre-open a specific door or pre-activate a single laser. + +In "shuffle_EPs: obelisk_sides", any Environmental Puzzles in exclude_locations will be pre-completed and not considered for their Obelisk Side. +If every Environmental Puzzle on an Obelisk Side is pre-completed, that side disappears from the location pool entirely. \ No newline at end of file diff --git a/worlds/witness/hints.py b/worlds/witness/hints.py index b815ba4d..898bd4dc 100644 --- a/worlds/witness/hints.py +++ b/worlds/witness/hints.py @@ -17,7 +17,7 @@ joke_hints = [ ("Have you tried ChecksFinder?", "If you like puzzles,", "you might enjoy it!"), ("Have you tried Dark Souls III?", "A tough game like this", "feels better when friends are helping you!"), ("Have you tried Donkey Kong Country 3?", "A legendary game", "from a golden age of platformers!"), - ("Have you tried Factorio?", "Alone in an unknown world.", "Sound familiar?"), + ("Have you tried Factorio?", "Alone in an unknown multiworld.", "Sound familiar?"), ("Have you tried Final Fantasy?", "Experience a classic game", "improved to fit modern standards!"), ("Have you tried Hollow Knight?", "Another independent hit", "revolutionising a genre!"), ("Have you tried A Link to the Past?", "The Archipelago game", "that started it all!"), @@ -95,17 +95,18 @@ joke_hints = [ ] -def get_always_hint_items(world: MultiWorld, player: int): +def get_always_hint_items(multiworld: MultiWorld, player: int): priority = [ "Boat", "Mountain Bottom Floor Final Room Entry (Door)", "Caves Mountain Shortcut (Door)", "Caves Swamp Shortcut (Door)", "Caves Exits to Main Island", + "Progressive Dots", ] - difficulty = get_option_value(world, player, "puzzle_randomization") - discards = is_option_enabled(world, player, "shuffle_discards") + difficulty = get_option_value(multiworld, player, "puzzle_randomization") + discards = is_option_enabled(multiworld, player, "shuffle_discarded_panels") if discards: if difficulty == 1: @@ -116,16 +117,19 @@ def get_always_hint_items(world: MultiWorld, player: int): return priority -def get_always_hint_locations(world: MultiWorld, player: int): +def get_always_hint_locations(multiworld: MultiWorld, player: int): return { "Swamp Purple Underwater", "Shipwreck Vault Box", "Challenge Vault Box", "Mountain Bottom Floor Discard", + "Theater Eclipse EP", + "Shipwreck Couch EP", + "Mountainside Cloud Cycle EP", } -def get_priority_hint_items(world: MultiWorld, player: int): +def get_priority_hint_items(multiworld: MultiWorld, player: int): priority = { "Negative Shapers", "Sound Dots", @@ -135,7 +139,7 @@ def get_priority_hint_items(world: MultiWorld, player: int): "Swamp Laser Shortcut (Door)", } - if is_option_enabled(world, player, "shuffle_lasers"): + if is_option_enabled(multiworld, player, "shuffle_lasers"): lasers = { "Symmetry Laser", "Desert Laser", @@ -150,18 +154,18 @@ def get_priority_hint_items(world: MultiWorld, player: int): "Shadows Laser", } - if get_option_value(world, player, "doors") >= 2: + if get_option_value(multiworld, player, "doors") >= 2: priority.add("Desert Laser") lasers.remove("Desert Laser") - priority.update(world.random.sample(lasers, 2)) + priority.update(multiworld.slot_seeds[player].sample(lasers, 2)) else: - priority.update(world.random.sample(lasers, 3)) + priority.update(multiworld.slot_seeds[player].sample(lasers, 3)) return priority -def get_priority_hint_locations(world: MultiWorld, player: int): +def get_priority_hint_locations(multiworld: MultiWorld, player: int): return { "Town RGB Room Left", "Town RGB Room Right", @@ -171,75 +175,85 @@ def get_priority_hint_locations(world: MultiWorld, player: int): "Desert Vault Box", "Mountainside Vault Box", "Mountainside Discard", + "Tunnels Theater Flowers EP", + "Boat Shipwreck Green EP", } -def make_hint_from_item(world: MultiWorld, player: int, item: str): - location_obj = world.find_item(item, player).item.location +def make_hint_from_item(multiworld: MultiWorld, player: int, item: str): + location_obj = multiworld.find_item(item, player).item.location location_name = location_obj.name if location_obj.player != player: - location_name += " (" + world.get_player_name(location_obj.player) + ")" + location_name += " (" + multiworld.get_player_name(location_obj.player) + ")" return location_name, item, location_obj.address if(location_obj.player == player) else -1 -def make_hint_from_location(world: MultiWorld, player: int, location: str): - location_obj = world.get_location(location, player) - item_obj = world.get_location(location, player).item +def make_hint_from_location(multiworld: MultiWorld, player: int, location: str): + location_obj = multiworld.get_location(location, player) + item_obj = multiworld.get_location(location, player).item item_name = item_obj.name if item_obj.player != player: - item_name += " (" + world.get_player_name(item_obj.player) + ")" + item_name += " (" + multiworld.get_player_name(item_obj.player) + ")" return location, item_name, location_obj.address if(location_obj.player == player) else -1 -def make_hints(world: MultiWorld, player: int, hint_amount: int): +def make_hints(multiworld: MultiWorld, player: int, hint_amount: int): hints = list() prog_items_in_this_world = { - item.name for item in world.get_items() + item.name for item in multiworld.get_items() if item.player == player and item.code and item.advancement } loc_in_this_world = { - location.name for location in world.get_locations() - if location.player == player and not location.event + location.name for location in multiworld.get_locations() + if location.player == player and location.address } always_locations = [ - location for location in get_always_hint_locations(world, player) + location for location in get_always_hint_locations(multiworld, player) if location in loc_in_this_world ] always_items = [ - item for item in get_always_hint_items(world, player) + item for item in get_always_hint_items(multiworld, player) if item in prog_items_in_this_world ] priority_locations = [ - location for location in get_priority_hint_locations(world, player) + location for location in get_priority_hint_locations(multiworld, player) if location in loc_in_this_world ] priority_items = [ - item for item in get_priority_hint_items(world, player) + item for item in get_priority_hint_items(multiworld, player) if item in prog_items_in_this_world ] always_hint_pairs = dict() for item in always_items: - hint_pair = make_hint_from_item(world, player, item) + hint_pair = make_hint_from_item(multiworld, player, item) + + if hint_pair[2] == 158007: # Tutorial Gate Open + continue + always_hint_pairs[hint_pair[0]] = (hint_pair[1], True, hint_pair[2]) for location in always_locations: - hint_pair = make_hint_from_location(world, player, location) + hint_pair = make_hint_from_location(multiworld, player, location) always_hint_pairs[hint_pair[0]] = (hint_pair[1], False, hint_pair[2]) priority_hint_pairs = dict() for item in priority_items: - hint_pair = make_hint_from_item(world, player, item) + hint_pair = make_hint_from_item(multiworld, player, item) + + if hint_pair[2] == 158007: # Tutorial Gate Open + continue + priority_hint_pairs[hint_pair[0]] = (hint_pair[1], True, hint_pair[2]) for location in priority_locations: - hint_pair = make_hint_from_location(world, player, location) + hint_pair = make_hint_from_location(multiworld, player, location) priority_hint_pairs[hint_pair[0]] = (hint_pair[1], False, hint_pair[2]) for loc, item in always_hint_pairs.items(): @@ -248,17 +262,19 @@ def make_hints(world: MultiWorld, player: int, hint_amount: int): else: hints.append((loc, "contains", item[0], item[2])) - next_random_hint_is_item = world.random.randint(0, 2) + multiworld.slot_seeds[player].shuffle(hints) # shuffle always hint order in case of low hint amount + + next_random_hint_is_item = multiworld.slot_seeds[player].randint(0, 2) prog_items_in_this_world = sorted(list(prog_items_in_this_world)) locations_in_this_world = sorted(list(loc_in_this_world)) - world.random.shuffle(prog_items_in_this_world) - world.random.shuffle(locations_in_this_world) + multiworld.slot_seeds[player].shuffle(prog_items_in_this_world) + multiworld.slot_seeds[player].shuffle(locations_in_this_world) while len(hints) < hint_amount: if priority_hint_pairs: - loc = world.random.choice(list(priority_hint_pairs.keys())) + loc = multiworld.slot_seeds[player].choice(list(priority_hint_pairs.keys())) item = priority_hint_pairs[loc] del priority_hint_pairs[loc] @@ -273,10 +289,10 @@ def make_hints(world: MultiWorld, player: int, hint_amount: int): next_random_hint_is_item = not next_random_hint_is_item continue - hint = make_hint_from_item(world, player, prog_items_in_this_world.pop()) + hint = make_hint_from_item(multiworld, player, prog_items_in_this_world.pop()) hints.append((hint[1], "can be found at", hint[0], hint[2])) else: - hint = make_hint_from_location(world, player, locations_in_this_world.pop()) + hint = make_hint_from_location(multiworld, player, locations_in_this_world.pop()) hints.append((hint[0], "contains", hint[1], hint[2])) next_random_hint_is_item = not next_random_hint_is_item @@ -284,5 +300,5 @@ def make_hints(world: MultiWorld, player: int, hint_amount: int): return hints -def generate_joke_hints(world: MultiWorld, amount: int): - return [(x, y, z, -1) for (x, y, z) in world.random.sample(joke_hints, amount)] +def generate_joke_hints(multiworld: MultiWorld, player: int, amount: int): + return [(x, y, z, -1) for (x, y, z) in multiworld.slot_seeds[player].sample(joke_hints, amount)] diff --git a/worlds/witness/items.py b/worlds/witness/items.py index cbb15540..914c1af2 100644 --- a/worlds/witness/items.py +++ b/worlds/witness/items.py @@ -51,6 +51,8 @@ class StaticWitnessItems: ALL_JUNK_ITEMS = set(BONUS_WEIGHTS.keys()) | set(TRAP_WEIGHTS.keys()) + ITEM_ID_TO_DOOR_HEX_ALL = dict() + def __init__(self): item_tab = dict() @@ -62,6 +64,13 @@ class StaticWitnessItems: self.ITEM_NAME_GROUPS.setdefault("Symbols", set()).add(item[0]) + for progressive, item_list in StaticWitnessLogic.PROGRESSIVE_TO_ITEMS.items(): + if not item_list: + continue + + if item_list[0] in self.ITEM_NAME_GROUPS.setdefault("Symbols", set()): + self.ITEM_NAME_GROUPS.setdefault("Symbols", set()).add(progressive) + for item in StaticWitnessLogic.ALL_DOOR_ITEMS: item_tab[item[0]] = ItemData(158000 + item[1], True, False) @@ -91,6 +100,9 @@ class StaticWitnessItems: for key, item in item_tab.items(): self.ALL_ITEM_TABLE[key] = item + for door in StaticWitnessLogic.ALL_DOOR_ITEMS: + self.ITEM_ID_TO_DOOR_HEX_ALL[door[1] + 158000] = {int(door_hex, 16) for door_hex in door[2]} + class WitnessPlayerItems: """ @@ -101,10 +113,33 @@ class WitnessPlayerItems: def code(item_name: str): return StaticWitnessItems.ALL_ITEM_TABLE[item_name].code - def __init__(self, locat: WitnessPlayerLocations, world: MultiWorld, player: int, player_logic: WitnessPlayerLogic): + @staticmethod + def is_progression(item_name: str, multiworld: MultiWorld, player: int): + useless_doors = { + "River Monastery Shortcut (Door)", + "Jungle & River Shortcuts", + "Monastery Shortcut (Door)", + "Orchard Second Gate (Door)", + } + + if item_name in useless_doors: + return False + + ep_doors = { + "Monastery Garden Entry (Door)", + "Monastery Shortcuts", + } + + if item_name in ep_doors: + return get_option_value(multiworld, player, "shuffle_EPs") != 0 + + return True + + def __init__(self, locat: WitnessPlayerLocations, multiworld: MultiWorld, player: int, logic: WitnessPlayerLogic): """Adds event items after logic changes due to options""" self.EVENT_ITEM_TABLE = dict() self.ITEM_TABLE = copy.copy(StaticWitnessItems.ALL_ITEM_TABLE) + self.PROGRESSION_TABLE = dict() self.ITEM_ID_TO_DOOR_HEX = dict() @@ -116,27 +151,31 @@ class WitnessPlayerItems: self.EXTRA_AMOUNTS = { "Functioning Brain": 1, - "Puzzle Skip": get_option_value(world, player, "puzzle_skip_amount") + "Puzzle Skip": get_option_value(multiworld, player, "puzzle_skip_amount") } + for k, v in self.ITEM_TABLE.items(): + if v.progression and not self.is_progression(k, multiworld, player): + self.ITEM_TABLE[k] = ItemData(v.code, False, False, never_exclude=True) + for item in StaticWitnessLogic.ALL_SYMBOL_ITEMS.union(StaticWitnessLogic.ALL_DOOR_ITEMS): - if item[0] not in player_logic.PROG_ITEMS_ACTUALLY_IN_THE_GAME: + if item[0] not in logic.PROG_ITEMS_ACTUALLY_IN_THE_GAME: del self.ITEM_TABLE[item[0]] if item in StaticWitnessLogic.ALL_SYMBOL_ITEMS: self.SYMBOLS_NOT_IN_THE_GAME.add(StaticWitnessItems.ALL_ITEM_TABLE[item[0]].code) else: if item[0] in StaticWitnessLogic.PROGRESSIVE_TO_ITEMS: - self.PROG_ITEM_AMOUNTS[item[0]] = len(player_logic.MULTI_LISTS[item[0]]) + self.PROG_ITEM_AMOUNTS[item[0]] = len(logic.MULTI_LISTS[item[0]]) self.PROGRESSION_TABLE[item[0]] = self.ITEM_TABLE[item[0]] self.MULTI_LISTS_BY_CODE = dict() for item in self.PROG_ITEM_AMOUNTS: - multi_list = player_logic.MULTI_LISTS[item] + multi_list = logic.MULTI_LISTS[item] self.MULTI_LISTS_BY_CODE[self.code(item)] = [self.code(single_item) for single_item in multi_list] - for entity_hex, items in player_logic.DOOR_ITEMS_BY_ID.items(): + for entity_hex, items in logic.DOOR_ITEMS_BY_ID.items(): entity_hex_int = int(entity_hex, 16) self.DOORS.add(entity_hex_int) @@ -145,26 +184,33 @@ class WitnessPlayerItems: item_id = StaticWitnessItems.ALL_ITEM_TABLE[item].code self.ITEM_ID_TO_DOOR_HEX.setdefault(item_id, set()).add(entity_hex_int) - symbols = is_option_enabled(world, player, "shuffle_symbols") + symbols = is_option_enabled(multiworld, player, "shuffle_symbols") if "shuffle_symbols" not in the_witness_options.keys(): symbols = True - doors = get_option_value(world, player, "shuffle_doors") + doors = get_option_value(multiworld, player, "shuffle_doors") - if doors and symbols: + self.GOOD_ITEMS = [] + + if symbols: self.GOOD_ITEMS = [ - "Progressive Dots", "Black/White Squares", "Symmetry" - ] - elif symbols: - self.GOOD_ITEMS = [ - "Progressive Dots", "Black/White Squares", "Progressive Stars", + "Dots", "Black/White Squares", "Stars", "Shapers", "Symmetry" ] - if is_option_enabled(world, player, "shuffle_discarded_panels"): - self.GOOD_ITEMS.append("Triangles") - if not is_option_enabled(world, player, "disable_non_randomized_puzzles"): + if doors: + self.GOOD_ITEMS = [ + "Dots", "Black/White Squares", "Symmetry" + ] + + if is_option_enabled(multiworld, player, "shuffle_discarded_panels"): + if is_option_enabled(multiworld, player, "shuffle_discarded_panels"): + if get_option_value(multiworld, player, "puzzle_randomization") == 1: + self.GOOD_ITEMS.append("Arrows") + else: + self.GOOD_ITEMS.append("Triangles") + if not is_option_enabled(multiworld, player, "disable_non_randomized_puzzles"): self.GOOD_ITEMS.append("Colored Squares") self.GOOD_ITEMS = [ @@ -172,11 +218,11 @@ class WitnessPlayerItems: ] for event_location in locat.EVENT_LOCATION_TABLE: - location = player_logic.EVENT_ITEM_PAIRS[event_location] + location = logic.EVENT_ITEM_PAIRS[event_location] self.EVENT_ITEM_TABLE[location] = ItemData(None, True, True) self.ITEM_TABLE[location] = ItemData(None, True, True) - trap_percentage = get_option_value(world, player, "trap_percentage") + trap_percentage = get_option_value(multiworld, player, "trap_percentage") self.JUNK_WEIGHTS = dict() diff --git a/worlds/witness/locations.py b/worlds/witness/locations.py index cd27f3a9..14291f4e 100644 --- a/worlds/witness/locations.py +++ b/worlds/witness/locations.py @@ -13,13 +13,6 @@ class StaticWitnessLocations: """ ID_START = 158000 - TYPE_OFFSETS = { - "General": 0, - "Discard": 600, - "Vault": 650, - "Laser": 700, - } - EXTRA_LOCATIONS = { "Tutorial Front Left", "Tutorial Back Left", @@ -143,7 +136,214 @@ class StaticWitnessLocations: "Theater Mountain Video", "Town RGB Room Left", "Town RGB Room Right", + "Town Sound Room Right", "Swamp Purple Underwater", + + "First Hallway EP", + "Tutorial Cloud EP", + "Tutorial Patio Flowers EP", + "Tutorial Gate EP", + "Outside Tutorial Garden EP", + "Outside Tutorial Town Sewer EP", + "Outside Tutorial Path EP", + "Outside Tutorial Tractor EP", + "Main Island Thundercloud EP", + "Glass Factory Vase EP", + "Symmetry Island Glass Factory Black Line Reflection EP", + "Symmetry Island Glass Factory Black Line EP", + "Desert Sand Snake EP", + "Desert Facade Right EP", + "Desert Facade Left EP", + "Desert Stairs Left EP", + "Desert Stairs Right EP", + "Desert Broken Wall Straight EP", + "Desert Broken Wall Bend EP", + "Desert Shore EP", + "Desert Island EP", + "Desert Pond Room Near Reflection EP", + "Desert Pond Room Far Reflection EP", + "Desert Flood Room EP", + "Desert Elevator EP", + "Quarry Shore EP", + "Quarry Entrance Pipe EP", + "Quarry Sand Pile EP", + "Quarry Rock Line EP", + "Quarry Rock Line Reflection EP", + "Quarry Railroad EP", + "Quarry Mill Ramp EP", + "Quarry Mill Lift EP", + "Quarry Boathouse Moving Ramp EP", + "Quarry Boathouse Hook EP", + "Shadows Quarry Mill Rooftop Vent EP", + "Treehouse Beach Rock Shadow EP", + "Treehouse Beach Sand Shadow EP", + "Treehouse Beach Both Orange Bridges EP", + "Keep Red Flowers EP", + "Keep Purple Flowers EP", + "Shipwreck Circle Near EP", + "Shipwreck Circle Left EP", + "Shipwreck Circle Far EP", + "Shipwreck Stern EP", + "Shipwreck Rope Inner EP", + "Shipwreck Rope Outer EP", + "Shipwreck Couch EP", + "Keep Pressure Plates 1 EP", + "Keep Pressure Plates 2 EP", + "Keep Pressure Plates 3 EP", + "Keep Pressure Plates 4 Left Exit EP", + "Keep Pressure Plates 4 Right Exit EP", + "Keep Path EP", + "Keep Hedges EP", + "Monastery Facade Left Near EP", + "Monastery Facade Left Far Short EP", + "Monastery Facade Left Far Long EP", + "Monastery Facade Right Near EP", + "Monastery Facade Left Stairs EP", + "Monastery Facade Right Stairs EP", + "Monastery Grass Stairs EP", + "Monastery Left Shutter EP", + "Monastery Middle Shutter EP", + "Monastery Right Shutter EP", + "Town Windmill First Blade EP", + "Town Windmill Second Blade EP", + "Town Windmill Third Blade EP", + "Town Tower Underside First EP", + "Town Tower Underside Second EP", + "Town Tower Underside Third EP", + "Town Tower Underside Fourth EP", + "Town RGB House Red EP", + "Town RGB House Green EP", + "Town Maze Bridge Underside EP", + "Town Black Line Redirect EP", + "Town Black Line Church EP", + "Town Brown Bridge EP", + "Town Black Line Tower EP", + "Theater Eclipse EP", + "Theater Window EP", + "Theater Door EP", + "Theater Church EP", + "Jungle Long Arch Moss EP", + "Jungle Straight Left Moss EP", + "Jungle Pop-up Wall Moss EP", + "Jungle Short Arch Moss EP", + "Jungle Entrance EP", + "Jungle Tree Halo EP", + "Jungle Bamboo CCW EP", + "Jungle Bamboo CW EP", + "River Green Leaf Moss EP", + "River Monastery Garden Left EP", + "River Monastery Garden Right EP", + "River Monastery Wall EP", + "Bunker Tinted Door EP", + "Bunker Green Room Flowers EP", + "Swamp Purple Sand Middle EP", + "Swamp Purple Sand Top EP", + "Swamp Purple Sand Bottom EP", + "Swamp Sliding Bridge Left EP", + "Swamp Sliding Bridge Right EP", + "Swamp Cyan Underwater Sliding Bridge EP", + "Swamp Rotating Bridge CCW EP", + "Swamp Rotating Bridge CW EP", + "Swamp Boat EP", + "Swamp Long Bridge Side EP", + "Swamp Purple Underwater Right EP", + "Swamp Purple Underwater Left EP", + "Treehouse Buoy EP", + "Treehouse Right Orange Bridge EP", + "Treehouse Burned House Beach EP", + "Mountainside Cloud Cycle EP", + "Mountainside Bush EP", + "Mountainside Apparent River EP", + "Mountaintop River Shape EP", + "Mountaintop Arch Black EP", + "Mountaintop Arch White Right EP", + "Mountaintop Arch White Left EP", + "Mountain Bottom Floor Yellow Bridge EP", + "Mountain Bottom Floor Blue Bridge EP", + "Mountain Floor 2 Pink Bridge EP", + "Caves Skylight EP", + "Challenge Water EP", + "Tunnels Theater Flowers EP", + "Boat Desert EP", + "Boat Shipwreck CCW Underside EP", + "Boat Shipwreck Green EP", + "Boat Shipwreck CW Underside EP", + "Boat Bunker Yellow Line EP", + "Boat Town Long Sewer EP", + "Boat Tutorial EP", + "Boat Tutorial Reflection EP", + "Boat Tutorial Moss EP", + "Boat Cargo Box EP", + + "Desert Obelisk Side 1", + "Desert Obelisk Side 2", + "Desert Obelisk Side 3", + "Desert Obelisk Side 4", + "Desert Obelisk Side 5", + "Monastery Obelisk Side 1", + "Monastery Obelisk Side 2", + "Monastery Obelisk Side 3", + "Monastery Obelisk Side 4", + "Monastery Obelisk Side 5", + "Monastery Obelisk Side 6", + "Treehouse Obelisk Side 1", + "Treehouse Obelisk Side 2", + "Treehouse Obelisk Side 3", + "Treehouse Obelisk Side 4", + "Treehouse Obelisk Side 5", + "Treehouse Obelisk Side 6", + "River Obelisk Side 1", + "River Obelisk Side 2", + "River Obelisk Side 3", + "River Obelisk Side 4", + "River Obelisk Side 5", + "River Obelisk Side 6", + "Quarry Obelisk Side 1", + "Quarry Obelisk Side 2", + "Quarry Obelisk Side 3", + "Quarry Obelisk Side 4", + "Town Obelisk Side 1", + "Town Obelisk Side 2", + "Town Obelisk Side 3", + "Town Obelisk Side 4", + "Town Obelisk Side 5", + "Town Obelisk Side 6", + } + + OBELISK_SIDES = { + "Desert Obelisk Side 1", + "Desert Obelisk Side 2", + "Desert Obelisk Side 3", + "Desert Obelisk Side 4", + "Desert Obelisk Side 5", + "Monastery Obelisk Side 1", + "Monastery Obelisk Side 2", + "Monastery Obelisk Side 3", + "Monastery Obelisk Side 4", + "Monastery Obelisk Side 5", + "Monastery Obelisk Side 6", + "Treehouse Obelisk Side 1", + "Treehouse Obelisk Side 2", + "Treehouse Obelisk Side 3", + "Treehouse Obelisk Side 4", + "Treehouse Obelisk Side 5", + "Treehouse Obelisk Side 6", + "River Obelisk Side 1", + "River Obelisk Side 2", + "River Obelisk Side 3", + "River Obelisk Side 4", + "River Obelisk Side 5", + "River Obelisk Side 6", + "Quarry Obelisk Side 1", + "Quarry Obelisk Side 2", + "Quarry Obelisk Side 3", + "Quarry Obelisk Side 4", + "Town Obelisk Side 1", + "Town Obelisk Side 2", + "Town Obelisk Side 3", + "Town Obelisk Side 4", + "Town Obelisk Side 5", + "Town Obelisk Side 6", } CAVES_LOCATIONS = { @@ -170,8 +370,12 @@ class StaticWitnessLocations: "Caves Left Upstairs Left Row 5", "Tunnels Vault Box", - "Mountain Bottom Floor Discard", "Theater Challenge Video", + + "Caves Skylight EP", + "Challenge Water EP", + "Tunnels Theater Flowers EP", + "Tutorial Gate EP", } MOUNTAIN_UNREACHABLE_FROM_BEHIND = { @@ -183,6 +387,10 @@ class StaticWitnessLocations: "Mountain Floor 1 Trash Pillar 2", "Mountain Floor 2 Near Row 5", "Mountain Floor 2 Far Row 6", + + "Mountain Bottom Floor Yellow Bridge EP", + "Mountain Bottom Floor Blue Bridge EP", + "Mountain Floor 2 Pink Bridge EP", } MOUNTAIN_REACHABLE_FROM_BEHIND = { @@ -213,10 +421,11 @@ class StaticWitnessLocations: def get_event_name(panel_hex): """ Returns the event name of any given panel. - Currently this is always "Panelname Solved" """ - return StaticWitnessLogic.CHECKS_BY_HEX[panel_hex]["checkName"] + " Solved" + action = " Opened" if StaticWitnessLogic.CHECKS_BY_HEX[panel_hex]["panelType"] == "Door" else " Solved" + + return StaticWitnessLogic.CHECKS_BY_HEX[panel_hex]["checkName"] + action def __init__(self): all_loc_to_id = { @@ -286,11 +495,26 @@ class WitnessPlayerLocations: if is_option_enabled(world, player, "shuffle_vault_boxes"): self.PANEL_TYPES_TO_SHUFFLE.add("Vault") + if get_option_value(world, player, "shuffle_EPs") == 1: + self.PANEL_TYPES_TO_SHUFFLE.add("EP") + elif get_option_value(world, player, "shuffle_EPs") == 2: + self.PANEL_TYPES_TO_SHUFFLE.add("Obelisk Side") + + for obelisk_loc in StaticWitnessLocations.OBELISK_SIDES: + obelisk_loc_hex = StaticWitnessLogic.CHECKS_BY_NAME[obelisk_loc]["checkHex"] + if player_logic.REQUIREMENTS_BY_HEX[obelisk_loc_hex] == frozenset({frozenset()}): + self.CHECK_LOCATIONS.discard(obelisk_loc) + self.CHECK_LOCATIONS = self.CHECK_LOCATIONS | player_logic.ADDED_CHECKS if not is_option_enabled(world, player, "shuffle_postgame"): self.CHECK_LOCATIONS -= postgame + self.CHECK_LOCATIONS -= { + StaticWitnessLogic.CHECKS_BY_HEX[panel]["checkName"] + for panel in player_logic.PRECOMPLETED_LOCATIONS + } + self.CHECK_LOCATIONS.discard(StaticWitnessLogic.CHECKS_BY_HEX[player_logic.VICTORY_LOCATION]["checkName"]) self.CHECK_LOCATIONS = self.CHECK_LOCATIONS - { @@ -301,8 +525,13 @@ class WitnessPlayerLocations: self.CHECK_PANELHEX_TO_ID = { StaticWitnessLogic.CHECKS_BY_NAME[ch]["checkHex"]: StaticWitnessLocations.ALL_LOCATIONS_TO_ID[ch] for ch in self.CHECK_LOCATIONS + if StaticWitnessLogic.CHECKS_BY_NAME[ch]["panelType"] in self.PANEL_TYPES_TO_SHUFFLE } + dog_hex = StaticWitnessLogic.CHECKS_BY_NAME["Town Pet the Dog"]["checkHex"] + dog_id = StaticWitnessLocations.ALL_LOCATIONS_TO_ID["Town Pet the Dog"] + self.CHECK_PANELHEX_TO_ID[dog_hex] = dog_id + self.CHECK_PANELHEX_TO_ID = dict( sorted(self.CHECK_PANELHEX_TO_ID.items(), key=lambda item: item[1]) ) @@ -317,9 +546,9 @@ class WitnessPlayerLocations: } check_dict = { - location: StaticWitnessLocations.get_id(StaticWitnessLogic.CHECKS_BY_NAME[location]["checkHex"]) - for location in self.CHECK_LOCATIONS - if StaticWitnessLogic.CHECKS_BY_NAME[location]["panelType"] in self.PANEL_TYPES_TO_SHUFFLE + StaticWitnessLogic.CHECKS_BY_HEX[location]["checkName"]: + StaticWitnessLocations.get_id(StaticWitnessLogic.CHECKS_BY_HEX[location]["checkHex"]) + for location in self.CHECK_PANELHEX_TO_ID } self.CHECK_LOCATION_TABLE = {**self.EVENT_LOCATION_TABLE, **check_dict} diff --git a/worlds/witness/player_logic.py b/worlds/witness/player_logic.py index a58ad8ef..948029ec 100644 --- a/worlds/witness/player_logic.py +++ b/worlds/witness/player_logic.py @@ -16,11 +16,15 @@ When the world has parsed its options, a second function is called to finalize t """ import copy +from typing import Set, Dict +from logging import warning + from BaseClasses import MultiWorld from .static_logic import StaticWitnessLogic from .utils import define_new_region, get_disable_unrandomized_list, parse_lambda, get_early_utm_list, \ get_symbol_shuffle_list, get_door_panel_shuffle_list, get_doors_complex_list, get_doors_max_list, \ - get_doors_simple_list, get_laser_shuffle + get_doors_simple_list, get_laser_shuffle, get_ep_all_individual, get_ep_obelisks, get_ep_easy, get_ep_no_eclipse, \ + get_ep_no_caves, get_ep_no_mountain, get_ep_no_videos from .Options import is_option_enabled, get_option_value, the_witness_options @@ -71,6 +75,8 @@ class WitnessPlayerLogic: these_panels = self.DEPENDENT_REQUIREMENTS_BY_HEX[panel_hex]["panels"] + these_panels = frozenset({panels - self.PRECOMPLETED_LOCATIONS for panels in these_panels}) + if these_panels == frozenset({frozenset()}): return these_items @@ -84,7 +90,7 @@ class WitnessPlayerLogic: if option_panel in self.COMPLETELY_DISABLED_CHECKS: new_items = frozenset() - elif option_panel in {"7 Lasers", "11 Lasers", "PP2 Weirdness"}: + elif option_panel in {"7 Lasers", "11 Lasers", "PP2 Weirdness", "Theater to Tunnels"}: new_items = frozenset({frozenset([option_panel])}) # If a panel turns on when a panel in a different region turns on, # the latter panel will be an "event panel", unless it ends up being @@ -207,8 +213,13 @@ class WitnessPlayerLogic: return if adj_type == "Added Locations": + if "0x" in line: + line = StaticWitnessLogic.CHECKS_BY_HEX[line]["checkName"] self.ADDED_CHECKS.add(line) + if adj_type == "Precompleted Locations": + self.PRECOMPLETED_LOCATIONS.add(line) + def make_options_adjustments(self, world, player): """Makes logic adjustments based on options""" adjustment_linesets_in_order = [] @@ -234,6 +245,29 @@ class WitnessPlayerLogic: if is_option_enabled(world, player, "shuffle_symbols") or "shuffle_symbols" not in the_witness_options.keys(): adjustment_linesets_in_order.append(get_symbol_shuffle_list()) + if get_option_value(world, player, "EP_difficulty") == 0: + adjustment_linesets_in_order.append(get_ep_easy()) + elif get_option_value(world, player, "EP_difficulty") == 1: + adjustment_linesets_in_order.append(get_ep_no_eclipse()) + + if not is_option_enabled(world, player, "shuffle_vault_boxes"): + adjustment_linesets_in_order.append(get_ep_no_videos()) + + doors = get_option_value(world, player, "shuffle_doors") >= 2 + earlyutm = is_option_enabled(world, player, "early_secret_area") + victory = get_option_value(world, player, "victory_condition") + mount_lasers = get_option_value(world, player, "mountain_lasers") + chal_lasers = get_option_value(world, player, "challenge_lasers") + + excluse_postgame = not is_option_enabled(world, player, "shuffle_postgame") + + if excluse_postgame and not (earlyutm or doors): + adjustment_linesets_in_order.append(get_ep_no_caves()) + + mountain_enterable_from_top = victory == 0 or victory == 1 or (victory == 3 and chal_lasers > mount_lasers) + if excluse_postgame and not mountain_enterable_from_top: + adjustment_linesets_in_order.append(get_ep_no_mountain()) + if get_option_value(world, player, "shuffle_doors") == 1: adjustment_linesets_in_order.append(get_door_panel_shuffle_list()) @@ -249,9 +283,35 @@ class WitnessPlayerLogic: if is_option_enabled(world, player, "early_secret_area"): adjustment_linesets_in_order.append(get_early_utm_list()) + for item in self.YAML_ADDED_ITEMS: + adjustment_linesets_in_order.append(["Items:", item]) + if is_option_enabled(world, player, "shuffle_lasers"): adjustment_linesets_in_order.append(get_laser_shuffle()) + if get_option_value(world, player, "shuffle_EPs") == 0: # No EP Shuffle + adjustment_linesets_in_order.append(["Disabled Locations:"] + get_ep_all_individual()[1:]) + adjustment_linesets_in_order.append(["Disabled Locations:"] + get_ep_obelisks()[1:]) + + elif get_option_value(world, player, "shuffle_EPs") == 1: # Individual EPs + adjustment_linesets_in_order.append(["Disabled Locations:"] + get_ep_obelisks()[1:]) + + else: # Obelisk Sides + yaml_disabled_eps = [] + + for yaml_disabled_location in self.YAML_DISABLED_LOCATIONS: + if yaml_disabled_location not in StaticWitnessLogic.CHECKS_BY_NAME: + continue + + loc_obj = StaticWitnessLogic.CHECKS_BY_NAME[yaml_disabled_location] + + if loc_obj["panelType"] != "EP": + continue + + yaml_disabled_eps.append(loc_obj["checkHex"]) + + adjustment_linesets_in_order.append(["Precompleted Locations:"] + yaml_disabled_eps) + for adjustment_lineset in adjustment_linesets_in_order: current_adjustment_type = None @@ -290,7 +350,18 @@ class WitnessPlayerLogic: """ Makes a pair of an event panel and its event item """ - name = self.REFERENCE_LOGIC.CHECKS_BY_HEX[panel]["checkName"] + " Solved" + action = " Opened" if StaticWitnessLogic.CHECKS_BY_HEX[panel]["panelType"] == "Door" else " Solved" + + name = StaticWitnessLogic.CHECKS_BY_HEX[panel]["checkName"] + action + if panel not in self.EVENT_ITEM_NAMES: + if StaticWitnessLogic.CHECKS_BY_HEX[panel]["panelType"] == "EP": + obelisk = StaticWitnessLogic.CHECKS_BY_HEX[StaticWitnessLogic.EP_TO_OBELISK_SIDE[panel]]["checkName"] + + self.EVENT_ITEM_NAMES[panel] = obelisk + " - " + StaticWitnessLogic.CHECKS_BY_HEX[panel]["checkName"] + + else: + warning("Panel \"" + name + "\" does not have an associated event name.") + self.EVENT_ITEM_NAMES[panel] = name + " Event" pair = (name, self.EVENT_ITEM_NAMES[panel]) return pair @@ -323,7 +394,10 @@ class WitnessPlayerLogic: pair = self.make_event_item_pair(panel) self.EVENT_ITEM_PAIRS[pair[0]] = pair[1] - def __init__(self, world: MultiWorld, player: int): + def __init__(self, world: MultiWorld, player: int, disabled_locations: Set[str], start_inv: Dict[str, int]): + self.YAML_DISABLED_LOCATIONS = disabled_locations + self.YAML_ADDED_ITEMS = start_inv + self.EVENT_PANELS_FROM_PANELS = set() self.EVENT_PANELS_FROM_REGIONS = set() @@ -342,6 +416,8 @@ class WitnessPlayerLogic: self.REFERENCE_LOGIC = StaticWitnessLogic.sigma_normal elif self.DIFFICULTY == 1: self.REFERENCE_LOGIC = StaticWitnessLogic.sigma_expert + elif self.DIFFICULTY == 2: + self.REFERENCE_LOGIC = StaticWitnessLogic.vanilla self.CONNECTIONS_BY_REGION_NAME = copy.copy(self.REFERENCE_LOGIC.STATIC_CONNECTIONS_BY_REGION_NAME) self.DEPENDENT_REQUIREMENTS_BY_HEX = copy.copy(self.REFERENCE_LOGIC.STATIC_DEPENDENT_REQUIREMENTS_BY_HEX) @@ -353,6 +429,7 @@ class WitnessPlayerLogic: self.EVENT_ITEM_PAIRS = dict() self.ALWAYS_EVENT_HEX_CODES = set() self.COMPLETELY_DISABLED_CHECKS = set() + self.PRECOMPLETED_LOCATIONS = set() self.ADDED_CHECKS = set() self.VICTORY_LOCATION = "0x0356B" self.EVENT_ITEM_NAMES = { @@ -366,7 +443,7 @@ class WitnessPlayerLogic: "0x019DC": "Keep Hedges 2 Knowledge", "0x019E7": "Keep Hedges 3 Knowledge", "0x01D3F": "Keep Laser Panel (Pressure Plates) Activates", - "0x01BE9": "Keep Laser Panel (Pressure Plates) Activates", + "0x01BE9": "Keep Laser Panel (Pressure Plates) Activates - Expert", "0x09F7F": "Mountain Access", "0x0367C": "Quarry Laser Mill Requirement Met", "0x009A1": "Swamp Between Bridges Far 1 Activates", @@ -385,6 +462,7 @@ class WitnessPlayerLogic: "0x17CDF": "All Boat Panels Turn On", "0x09DB8": "All Boat Panels Turn On", "0x17C95": "All Boat Panels Turn On", + "0x0A054": "Couch EP solvable", "0x03BB0": "Town Church Lattice Vision From Outside", "0x28AC1": "Town Wooden Rooftop Turns On", "0x28A69": "Town Tower 1st Door Opens", @@ -411,6 +489,24 @@ class WitnessPlayerLogic: "0x03613": "Treehouse Orange Bridge 13 Turns On", "0x17DEC": "Treehouse Laser House Access Requirement", "0x03C08": "Town Church Entry Opens", + "0x17D02": "Windmill Blades Spinning", + "0x0A0C9": "Cargo Box EP completable", + "0x09E39": "Pink Light Bridge Extended", + "0x01CD3": "Pressure Plates 3 EP available", + "0x17CC4": "Rails EP available", + "0x2896A": "Bridge Underside EP available", + "0x00064": "First Tunnel EP visible", + "0x033EA": "Pressure Plates 1 EP available", + "0x03553": "Tutorial Video EPs availble", + "0x17C79": "Bunker Door EP available", + "0x275FF": "Mill Light EPs available", + "0x17E2B": "Remaining Purple Sand EPs available", + "0x03852": "Ramp EPs requirement", + "0x334D8": "RGB panels & EPs solvable", + "0x03750": "Left Garden EP available", + "0x03C0C": "RGB Flowers EP requirement", + "0x01CD5": "Pressure Plates 3 EP requirement", + "0x3865F": "Ramp EPs access requirement", } self.ALWAYS_EVENT_NAMES_BY_HEX = { diff --git a/worlds/witness/regions.py b/worlds/witness/regions.py index e17acf73..69b0317d 100644 --- a/worlds/witness/regions.py +++ b/worlds/witness/regions.py @@ -6,7 +6,7 @@ and connects them with the proper requirements from BaseClasses import MultiWorld, Entrance from .static_logic import StaticWitnessLogic from .Options import get_option_value -from .locations import WitnessPlayerLocations +from .locations import WitnessPlayerLocations, StaticWitnessLocations from .player_logic import WitnessPlayerLogic @@ -27,7 +27,7 @@ class WitnessRegions: ) def connect(self, world: MultiWorld, player: int, source: str, target: str, player_logic: WitnessPlayerLogic, - panel_hex_to_solve_set=None): + panel_hex_to_solve_set=frozenset({frozenset()})): """ connect two regions and set the corresponding requirement """ @@ -63,8 +63,10 @@ class WitnessRegions: if difficulty == 1: reference_logic = StaticWitnessLogic.sigma_expert - else: + elif difficulty == 0: reference_logic = StaticWitnessLogic.sigma_normal + else: + reference_logic = StaticWitnessLogic.vanilla all_locations = set() @@ -74,8 +76,8 @@ class WitnessRegions: if reference_logic.CHECKS_BY_HEX[panel]["checkName"] in self.locat.CHECK_LOCATION_TABLE ] locations_for_this_region += [ - reference_logic.CHECKS_BY_HEX[panel]["checkName"] + " Solved" for panel in region["panels"] - if reference_logic.CHECKS_BY_HEX[panel]["checkName"] + " Solved" in self.locat.EVENT_LOCATION_TABLE + StaticWitnessLocations.get_event_name(panel) for panel in region["panels"] + if StaticWitnessLocations.get_event_name(panel) in self.locat.EVENT_LOCATION_TABLE ] all_locations = all_locations | set(locations_for_this_region) @@ -86,9 +88,6 @@ class WitnessRegions: for region_name, region in reference_logic.ALL_REGIONS_BY_NAME.items(): for connection in player_logic.CONNECTIONS_BY_REGION_NAME[region_name]: - if connection[0] == "Entry": - continue - if connection[1] == frozenset({frozenset(["TrueOneWay"])}): self.connect(world, player, region_name, connection[0], player_logic, frozenset({frozenset()})) continue diff --git a/worlds/witness/rules.py b/worlds/witness/rules.py index f7de20a2..ba9a1fb7 100644 --- a/worlds/witness/rules.py +++ b/worlds/witness/rules.py @@ -20,35 +20,24 @@ class WitnessLogic(LogicMixin): """ def _witness_has_lasers(self, world, player: int, amount: int) -> bool: + regular_lasers = not is_option_enabled(world, player, "shuffle_lasers") + lasers = 0 - if is_option_enabled(world, player, "shuffle_lasers"): - lasers += int(self.has("Symmetry Laser", player)) - lasers += int(self.has("Desert Laser", player) - and self.has("Desert Laser Redirection", player)) - lasers += int(self.has("Town Laser", player)) - lasers += int(self.has("Monastery Laser", player)) - lasers += int(self.has("Keep Laser", player)) - lasers += int(self.has("Quarry Laser", player)) - lasers += int(self.has("Treehouse Laser", player)) - lasers += int(self.has("Jungle Laser", player)) - lasers += int(self.has("Bunker Laser", player)) - lasers += int(self.has("Swamp Laser", player)) - lasers += int(self.has("Shadows Laser", player)) - return lasers >= amount + place_names = [ + "Symmetry", "Desert", "Town", "Monastery", "Keep", + "Quarry", "Treehouse", "Jungle", "Bunker", "Swamp", "Shadows" + ] - lasers += int(self.has("Symmetry Laser Activation", player)) - lasers += int(self.has("Desert Laser Activation", player) - and self.has("Desert Laser Redirection", player)) - lasers += int(self.has("Town Laser Activation", player)) - lasers += int(self.has("Monastery Laser Activation", player)) - lasers += int(self.has("Keep Laser Activation", player)) - lasers += int(self.has("Quarry Laser Activation", player)) - lasers += int(self.has("Treehouse Laser Activation", player)) - lasers += int(self.has("Jungle Laser Activation", player)) - lasers += int(self.has("Bunker Laser Activation", player)) - lasers += int(self.has("Swamp Laser Activation", player)) - lasers += int(self.has("Shadows Laser Activation", player)) + for place in place_names: + has_laser = self.has(place + " Laser", player) + + has_laser = has_laser or (regular_lasers and self.has(place + " Laser Activation", player)) + + if place == "Desert": + has_laser = has_laser and self.has("Desert Laser Redirection", player) + + lasers += int(has_laser) return lasers >= amount @@ -84,11 +73,15 @@ class WitnessLogic(LogicMixin): for item in option: if item == "7 Lasers": - if not self._witness_has_lasers(world, player, get_option_value(world, player, "mountain_lasers")): + laser_req = get_option_value(world, player, "mountain_lasers") + + if not self._witness_has_lasers(world, player, laser_req): valid_option = False break elif item == "11 Lasers": - if not self._witness_has_lasers(world, player, get_option_value(world, player, "challenge_lasers")): + laser_req = get_option_value(world, player, "challenge_lasers") + + if not self._witness_has_lasers(world, player, laser_req): valid_option = False break elif item == "PP2 Weirdness": @@ -142,6 +135,24 @@ class WitnessLogic(LogicMixin): if not (front_access and backwards_access): valid_option = False break + elif item == "Theater to Tunnels": + direct_access = ( + self.can_reach("Tunnels to Windmill Interior", "Entrance", player) + and self.can_reach("Windmill Interior to Theater", "Entrance", player) + ) + + exit_to_town = self.can_reach("Theater to Town", "Entrance", player) + entrance_to_town = ( + self.can_reach("Town to Windmill Interior", "Entrance", player) + and self.can_reach("Windmill Interior to Theater", "Entrance", player) + ) + tunnels_to_town = self.can_reach("Tunnels to Town", "Entrance", player) + + if not (direct_access or (exit_to_town or entrance_to_town) and tunnels_to_town): + valid_option = False + break + + elif item in player_logic.EVENT_PANELS: if not self._witness_can_solve_panel(item, world, player, player_logic, locat): valid_option = False diff --git a/worlds/witness/settings/Disable_Unrandomized.txt b/worlds/witness/settings/Disable_Unrandomized.txt index 43c69409..8f6034cc 100644 --- a/worlds/witness/settings/Disable_Unrandomized.txt +++ b/worlds/witness/settings/Disable_Unrandomized.txt @@ -111,6 +111,18 @@ Disabled Locations: 0x17E67 (Bunker UV Room 2) 0x09DE0 (Bunker Laser) 0x0A079 (Bunker Elevator Control) -0x0042D (Mountaintop River Shape) 0x17CAA (River Garden Entry Panel) + +0x034A7 (Left Shutter EP) +0x034AD (Middle Shutter EP) +0x034AF (Right Shutter EP) +0x339B6 (Eclipse EP) - 0x03549 - True +0x33A29 (Window EP) - 0x03553 - True +0x33A2A (Door EP) - 0x03553 - True +0x33B06 (Church EP) - 0x0354E - True +0x3352F (Gate EP) +0x33600 (Patio Flowers EP) +0x035F5 (Tinted Door EP) +0x000D3 (Green Room Flowers EP) +0x33A20 (Theater Flowers EP) \ No newline at end of file diff --git a/worlds/witness/settings/EP_Shuffle/EP_All.txt b/worlds/witness/settings/EP_Shuffle/EP_All.txt new file mode 100644 index 00000000..51af5e38 --- /dev/null +++ b/worlds/witness/settings/EP_Shuffle/EP_All.txt @@ -0,0 +1,136 @@ +Added Locations: +0x0332B +0x03367 +0x28B8A +0x037B6 +0x037B2 +0x000F7 +0x3351D +0x0053C +0x00771 +0x335C8 +0x335C9 +0x337F8 +0x037BB +0x220E4 +0x220E5 +0x334B9 +0x334BC +0x22106 +0x0A14C +0x0A14D +0x03ABC +0x03ABE +0x03AC0 +0x03AC4 +0x03AC5 +0x03BE2 +0x03BE3 +0x0A409 +0x006E5 +0x006E6 +0x006E7 +0x034A7 +0x034AD +0x034AF +0x03DAB +0x03DAC +0x03DAD +0x03E01 +0x289F4 +0x289F5 +0x0053D +0x0053E +0x00769 +0x33721 +0x220A7 +0x220BD +0x03B22 +0x03B23 +0x03B24 +0x03B25 +0x03A79 +0x28ABD +0x28ABE +0x3388F +0x28B29 +0x28B2A +0x018B6 +0x033BE +0x033BF +0x033DD +0x033E5 +0x28AE9 +0x3348F +0x001A3 +0x335AE +0x000D3 +0x035F5 +0x09D5D +0x09D5E +0x09D63 +0x3370E +0x035DE +0x03601 +0x03603 +0x03D0D +0x3369A +0x336C8 +0x33505 +0x03A9E +0x016B2 +0x3365F +0x03731 +0x036CE +0x03C07 +0x03A93 +0x03AA6 +0x3397C +0x0105D +0x0A304 +0x035CB +0x035CF +0x28A7B +0x005F6 +0x00859 +0x17CB9 +0x28A4A +0x334B6 +0x0069D +0x00614 +0x28A4C +0x289CF +0x289D1 +0x33692 +0x03E77 +0x03E7C +0x035C7 +0x01848 +0x03D06 +0x33530 +0x33600 +0x28A2F +0x28A37 +0x334A3 +0x3352F +0x33857 +0x33879 +0x03C19 +0x28B30 +0x035C9 +0x03335 +0x03412 +0x038A6 +0x038AA +0x03E3F +0x03E40 +0x28B8E +0x28B91 +0x03BCE +0x03BCF +0x03BD1 +0x339B6 +0x33A20 +0x33A29 +0x33A2A +0x33B06 \ No newline at end of file diff --git a/worlds/witness/settings/EP_Shuffle/EP_Easy.txt b/worlds/witness/settings/EP_Shuffle/EP_Easy.txt new file mode 100644 index 00000000..10127438 --- /dev/null +++ b/worlds/witness/settings/EP_Shuffle/EP_Easy.txt @@ -0,0 +1,11 @@ +Precompleted Locations: +0x335AE +0x3388F +0x33A20 +0x037B2 +0x000F7 +0x28B29 +0x33857 +0x33879 +0x016B2 +0x036CE \ No newline at end of file diff --git a/worlds/witness/settings/EP_Shuffle/EP_NoCavesEPs.txt b/worlds/witness/settings/EP_Shuffle/EP_NoCavesEPs.txt new file mode 100644 index 00000000..3bb318a6 --- /dev/null +++ b/worlds/witness/settings/EP_Shuffle/EP_NoCavesEPs.txt @@ -0,0 +1,5 @@ +Precompleted Locations: +0x3397C +0x33A20 +0x3352F +0x28B30 \ No newline at end of file diff --git a/worlds/witness/settings/EP_Shuffle/EP_NoEclipse.txt b/worlds/witness/settings/EP_Shuffle/EP_NoEclipse.txt new file mode 100644 index 00000000..d41badfa --- /dev/null +++ b/worlds/witness/settings/EP_Shuffle/EP_NoEclipse.txt @@ -0,0 +1,2 @@ +Precompleted Locations: +0x339B6 \ No newline at end of file diff --git a/worlds/witness/settings/EP_Shuffle/EP_NoMountainEPs.txt b/worlds/witness/settings/EP_Shuffle/EP_NoMountainEPs.txt new file mode 100644 index 00000000..3558d77a --- /dev/null +++ b/worlds/witness/settings/EP_Shuffle/EP_NoMountainEPs.txt @@ -0,0 +1,4 @@ +Precompleted Locations: +0x09D63 +0x09D5D +0x09D5E \ No newline at end of file diff --git a/worlds/witness/settings/EP_Shuffle/EP_Sides.txt b/worlds/witness/settings/EP_Shuffle/EP_Sides.txt new file mode 100644 index 00000000..1da52ffb --- /dev/null +++ b/worlds/witness/settings/EP_Shuffle/EP_Sides.txt @@ -0,0 +1,34 @@ +Added Locations: +0xFFE00 +0xFFE01 +0xFFE02 +0xFFE03 +0xFFE04 +0xFFE10 +0xFFE11 +0xFFE12 +0xFFE13 +0xFFE14 +0xFFE15 +0xFFE20 +0xFFE21 +0xFFE22 +0xFFE23 +0xFFE24 +0xFFE25 +0xFFE30 +0xFFE31 +0xFFE32 +0xFFE33 +0xFFE34 +0xFFE35 +0xFFE40 +0xFFE41 +0xFFE42 +0xFFE43 +0xFFE50 +0xFFE51 +0xFFE52 +0xFFE53 +0xFFE54 +0xFFE55 \ No newline at end of file diff --git a/worlds/witness/settings/EP_Shuffle/EP_Videos.txt b/worlds/witness/settings/EP_Shuffle/EP_Videos.txt new file mode 100644 index 00000000..c4aaca13 --- /dev/null +++ b/worlds/witness/settings/EP_Shuffle/EP_Videos.txt @@ -0,0 +1,6 @@ +Precompleted Locations: +0x339B6 +0x33A29 +0x33A2A +0x33B06 +0x33A20 \ No newline at end of file diff --git a/worlds/witness/static_logic.py b/worlds/witness/static_logic.py index 18a0e19c..4311a84f 100644 --- a/worlds/witness/static_logic.py +++ b/worlds/witness/static_logic.py @@ -40,9 +40,11 @@ class StaticWitnessLogicObj: required_panel_lambda = line_split.pop(0) + full_check_name = current_region["shortName"] + " " + check_name + if location_id == "Door" or location_id == "Laser": self.CHECKS_BY_HEX[check_hex] = { - "checkName": current_region["shortName"] + " " + check_name, + "checkName": full_check_name, "checkHex": check_hex, "region": current_region, "id": None, @@ -74,20 +76,38 @@ class StaticWitnessLogicObj: location_type = "Vault" elif check_name in laser_names: location_type = "Laser" + elif "Obelisk Side" in check_name: + location_type = "Obelisk Side" + full_check_name = check_name + elif "EP" in check_name: + location_type = "EP" + + self.EP_ID_TO_NAME[check_hex] = full_check_name else: location_type = "General" required_items = parse_lambda(required_item_lambda) + required_panels = parse_lambda(required_panel_lambda) required_items = frozenset(required_items) requirement = { - "panels": parse_lambda(required_panel_lambda), + "panels": required_panels, "items": required_items } + if location_type == "Obelisk Side": + eps = set(list(required_panels)[0]) + eps -= {"Theater to Tunnels"} + + eps_ints = {int(h, 16) for h in eps} + + self.OBELISK_SIDE_ID_TO_EP_HEXES[int(check_hex, 16)] = eps_ints + for ep_hex in eps: + self.EP_TO_OBELISK_SIDE[ep_hex] = check_hex + self.CHECKS_BY_HEX[check_hex] = { - "checkName": current_region["shortName"] + " " + check_name, + "checkName": full_check_name, "checkHex": check_hex, "region": current_region, "id": int(location_id), @@ -108,6 +128,12 @@ class StaticWitnessLogicObj: self.CHECKS_BY_NAME = dict() self.STATIC_DEPENDENT_REQUIREMENTS_BY_HEX = dict() + self.OBELISK_SIDE_ID_TO_EP_HEXES = dict() + + self.EP_TO_OBELISK_SIDE = dict() + + self.EP_ID_TO_NAME = dict() + self.read_logic_file(file_path) @@ -125,10 +151,16 @@ class StaticWitnessLogic: ALL_REGIONS_BY_NAME = dict() STATIC_CONNECTIONS_BY_REGION_NAME = dict() + OBELISK_SIDE_ID_TO_EP_HEXES = dict() + CHECKS_BY_HEX = dict() CHECKS_BY_NAME = dict() STATIC_DEPENDENT_REQUIREMENTS_BY_HEX = dict() + EP_TO_OBELISK_SIDE = dict() + + EP_ID_TO_NAME = dict() + def parse_items(self): """ Parses currently defined items from WitnessItems.txt @@ -185,6 +217,10 @@ class StaticWitnessLogic: def sigma_normal(self) -> StaticWitnessLogicObj: return StaticWitnessLogicObj("WitnessLogic.txt") + @lazy + def vanilla(self) -> StaticWitnessLogicObj: + return StaticWitnessLogicObj("WitnessLogicVanilla.txt") + def __init__(self): self.parse_items() @@ -195,3 +231,8 @@ class StaticWitnessLogic: self.CHECKS_BY_NAME.update(self.sigma_normal.CHECKS_BY_NAME) self.STATIC_DEPENDENT_REQUIREMENTS_BY_HEX.update(self.sigma_normal.STATIC_DEPENDENT_REQUIREMENTS_BY_HEX) + self.OBELISK_SIDE_ID_TO_EP_HEXES.update(self.sigma_normal.OBELISK_SIDE_ID_TO_EP_HEXES) + + self.EP_TO_OBELISK_SIDE.update(self.sigma_normal.EP_TO_OBELISK_SIDE) + + self.EP_ID_TO_NAME.update(self.sigma_normal.EP_ID_TO_NAME) \ No newline at end of file diff --git a/worlds/witness/utils.py b/worlds/witness/utils.py index a69dabbb..dcb335ed 100644 --- a/worlds/witness/utils.py +++ b/worlds/witness/utils.py @@ -155,3 +155,38 @@ def get_laser_shuffle(): @cache_argsless def get_audio_logs(): return get_adjustment_file("settings/Audio_Logs.txt") + + +@cache_argsless +def get_ep_all_individual(): + return get_adjustment_file("settings/EP_Shuffle/EP_All.txt") + + +@cache_argsless +def get_ep_obelisks(): + return get_adjustment_file("settings/EP_Shuffle/EP_Sides.txt") + + +@cache_argsless +def get_ep_easy(): + return get_adjustment_file("settings/EP_Shuffle/EP_Easy.txt") + + +@cache_argsless +def get_ep_no_eclipse(): + return get_adjustment_file("settings/EP_Shuffle/EP_NoEclipse.txt") + + +@cache_argsless +def get_ep_no_caves(): + return get_adjustment_file("settings/EP_Shuffle/EP_NoCavesEPs.txt") + + +@cache_argsless +def get_ep_no_mountain(): + return get_adjustment_file("settings/EP_Shuffle/EP_NoMountainEPs.txt") + + +@cache_argsless +def get_ep_no_videos(): + return get_adjustment_file("settings/EP_Shuffle/EP_Videos.txt") \ No newline at end of file