diff --git a/DoorShuffle.py b/DoorShuffle.py index 1124760a..4bbd53da 100644 --- a/DoorShuffle.py +++ b/DoorShuffle.py @@ -3251,7 +3251,7 @@ def find_accessible_entrances(world, player, builder): if connect not in queue and connect not in visited_regions: queue.append(connect) for ext in next_region.exits: - if hc_std and ext.name in ['Hyrule Castle Main Gate (North)', 'Top of Pyramid', 'Hyrule Castle Ledge Drop']: # just skip it + if hc_std and ext.name in ['Hyrule Castle Main Gate (North)', 'Castle Gate Teleporter', 'Hyrule Castle Ledge Drop']: # just skip it continue connect = ext.connected_region if connect is None or ext.door and ext.door.blocked: diff --git a/EntranceShuffle.py b/EntranceShuffle.py index 4c5b57a7..a5dda17a 100644 --- a/EntranceShuffle.py +++ b/EntranceShuffle.py @@ -1519,7 +1519,7 @@ LW_Single_Cave_Doors = ['Blinds Hideout', 'Chicken House', 'Aginahs Cave', 'Sahasrahlas Hut', - 'Cave Shop (Lake Hylia)', + 'Lake Hylia Shop', 'Blacksmiths Hut', 'Sick Kids House', 'Lost Woods Gamble', @@ -1560,9 +1560,9 @@ Isolated_LH_Doors_Open = ['Mimic Cave', 'Desert Palace Entrance (South)', 'Desert Palace Entrance (North)', 'Capacity Upgrade', - 'Ice Palace', 'Dark World Shop', 'Dark World Potion Shop', + 'Ice Palace', 'Dark World Shop', 'Dark Potion Shop', 'Skull Woods Final Section', 'Skull Woods Second Section Door (West)', - 'Dark World Hammer Peg Cave', 'Dark Death Mountain Ledge (West)', + 'Hammer Peg Cave', 'Dark Death Mountain Ledge (West)', 'Turtle Rock Isolated Ledge Entrance', 'Dark Death Mountain Ledge (East)'] DW_Single_Cave_Doors = ['Bonk Fairy (Dark)', @@ -1580,11 +1580,11 @@ DW_Single_Cave_Doors = ['Bonk Fairy (Dark)', 'Spike Cave', 'Palace of Darkness Hint', 'Dark Lake Hylia Ledge Spike Cave', - 'Cave Shop (Dark Death Mountain)', - 'Dark World Potion Shop', + 'Dark Death Mountain Shop', + 'Dark Potion Shop', 'Pyramid Fairy', 'Archery Game', - 'Dark World Lumberjack Shop', + 'Dark Lumberjack Shop', 'Hype Cave', 'Brewery', 'Dark Lake Hylia Ledge Hint', @@ -1592,7 +1592,7 @@ DW_Single_Cave_Doors = ['Bonk Fairy (Dark)', 'Dark Desert Fairy', 'Dark Lake Hylia Ledge Fairy', 'Fortune Teller (Dark)', - 'Dark World Hammer Peg Cave'] + 'Hammer Peg Cave'] Blacksmith_Single_Cave_Doors = ['Blinds Hideout', 'Lake Hylia Fairy', @@ -1601,7 +1601,7 @@ Blacksmith_Single_Cave_Doors = ['Blinds Hideout', 'Chicken House', 'Aginahs Cave', 'Sahasrahlas Hut', - 'Cave Shop (Lake Hylia)', + 'Lake Hylia Shop', 'Blacksmiths Hut', 'Sick Kids House', 'Lost Woods Gamble', @@ -1645,19 +1645,19 @@ Bomb_Shop_Single_Cave_Doors = ['Waterfall of Wishing', 'Brewery', 'C-Shaped House', 'Chest Game', - 'Dark World Hammer Peg Cave', + 'Hammer Peg Cave', 'Red Shield Shop', 'Dark Sanctuary Hint', 'Fortune Teller (Dark)', 'Dark World Shop', - 'Dark World Lumberjack Shop', - 'Dark World Potion Shop', + 'Dark Lumberjack Shop', + 'Dark Potion Shop', 'Archery Game', 'Mire Shed', 'Dark Desert Hint', 'Dark Desert Fairy', 'Spike Cave', - 'Cave Shop (Dark Death Mountain)', + 'Dark Death Mountain Shop', 'Dark Death Mountain Fairy', 'Mimic Cave', 'Big Bomb Shop', @@ -1668,13 +1668,13 @@ Single_Cave_Doors = ['Pyramid Fairy'] Single_Cave_Targets = ['Blinds Hideout', 'Bonk Fairy (Light)', 'Lake Hylia Healer Fairy', - 'Swamp Healer Fairy', + 'Light Hype Fairy', 'Desert Healer Fairy', 'Kings Grave', 'Chicken House', 'Aginahs Cave', 'Sahasrahlas Hut', - 'Cave Shop (Lake Hylia)', + 'Lake Hylia Shop', 'Sick Kids House', 'Lost Woods Gamble', 'Fortune Teller (Light)', @@ -1711,22 +1711,22 @@ Single_Cave_Targets = ['Blinds Hideout', 'Brewery', 'C-Shaped House', 'Chest Game', - 'Dark World Hammer Peg Cave', + 'Hammer Peg Cave', 'Red Shield Shop', 'Dark Sanctuary Hint', 'Fortune Teller (Dark)', 'Village of Outcasts Shop', 'Dark Lake Hylia Shop', - 'Dark World Lumberjack Shop', + 'Dark Lumberjack Shop', 'Archery Game', 'Mire Shed', 'Dark Desert Hint', 'Dark Desert Healer Fairy', 'Spike Cave', - 'Cave Shop (Dark Death Mountain)', + 'Dark Death Mountain Shop', 'Dark Death Mountain Healer Fairy', 'Mimic Cave', - 'Dark World Potion Shop', + 'Dark Potion Shop', 'Lumberjack House', 'Lake Hylia Fortune Teller', 'Kakariko Gamble Game', @@ -1867,11 +1867,11 @@ Inverted_DW_Single_Cave_Doors = ['Bonk Fairy (Dark)', 'Dark Desert Hint', 'Palace of Darkness Hint', 'Dark Lake Hylia Ledge Spike Cave', - 'Cave Shop (Dark Death Mountain)', - 'Dark World Potion Shop', + 'Dark Death Mountain Shop', + 'Dark Potion Shop', 'Pyramid Fairy', 'Archery Game', - 'Dark World Lumberjack Shop', + 'Dark Lumberjack Shop', 'Hype Cave', 'Brewery', 'Dark Lake Hylia Ledge Hint', @@ -1879,7 +1879,7 @@ Inverted_DW_Single_Cave_Doors = ['Bonk Fairy (Dark)', 'Dark Desert Fairy', 'Dark Lake Hylia Ledge Fairy', 'Fortune Teller (Dark)', - 'Dark World Hammer Peg Cave'] + 'Hammer Peg Cave'] Inverted_Bomb_Shop_Single_Cave_Doors = ['Waterfall of Wishing', @@ -1902,19 +1902,19 @@ Inverted_Bomb_Shop_Single_Cave_Doors = ['Waterfall of Wishing', 'Brewery', 'C-Shaped House', 'Chest Game', - 'Dark World Hammer Peg Cave', + 'Hammer Peg Cave', 'Red Shield Shop', 'Dark Sanctuary Hint', 'Fortune Teller (Dark)', 'Dark World Shop', - 'Dark World Lumberjack Shop', - 'Dark World Potion Shop', + 'Dark Lumberjack Shop', + 'Dark Potion Shop', 'Archery Game', 'Mire Shed', 'Dark Desert Hint', 'Dark Desert Fairy', 'Spike Cave', - 'Cave Shop (Dark Death Mountain)', + 'Dark Death Mountain Shop', 'Bumper Cave (Top)', 'Mimic Cave', 'Dark Lake Hylia Shop', @@ -1928,7 +1928,7 @@ Inverted_Blacksmith_Single_Cave_Doors = ['Blinds Hideout', 'Chicken House', 'Aginahs Cave', 'Sahasrahlas Hut', - 'Cave Shop (Lake Hylia)', + 'Lake Hylia Shop', 'Blacksmiths Hut', 'Sick Kids House', 'Lost Woods Gamble', @@ -1956,13 +1956,13 @@ Inverted_Blacksmith_Single_Cave_Doors = ['Blinds Hideout', Inverted_Single_Cave_Targets = ['Blinds Hideout', 'Bonk Fairy (Light)', 'Lake Hylia Healer Fairy', - 'Swamp Healer Fairy', + 'Light Hype Fairy', 'Desert Healer Fairy', 'Kings Grave', 'Chicken House', 'Aginahs Cave', 'Sahasrahlas Hut', - 'Cave Shop (Lake Hylia)', + 'Lake Hylia Shop', 'Sick Kids House', 'Lost Woods Gamble', 'Fortune Teller (Light)', @@ -1999,21 +1999,21 @@ Inverted_Single_Cave_Targets = ['Blinds Hideout', 'Brewery', 'C-Shaped House', 'Chest Game', - 'Dark World Hammer Peg Cave', + 'Hammer Peg Cave', 'Red Shield Shop', 'Fortune Teller (Dark)', 'Village of Outcasts Shop', 'Dark Lake Hylia Shop', - 'Dark World Lumberjack Shop', + 'Dark Lumberjack Shop', 'Archery Game', 'Mire Shed', 'Dark Desert Hint', 'Dark Desert Healer Fairy', 'Spike Cave', - 'Cave Shop (Dark Death Mountain)', + 'Dark Death Mountain Shop', 'Dark Death Mountain Healer Fairy', 'Mimic Cave', - 'Dark World Potion Shop', + 'Dark Potion Shop', 'Lumberjack House', 'Lake Hylia Fortune Teller', 'Kakariko Gamble Game', @@ -2025,7 +2025,7 @@ Inverted_Dark_Sanctuary_Doors = ['Dark Sanctuary Hint', 'Brewery', 'C-Shaped House', 'Chest Game', - 'Dark World Lumberjack Shop', + 'Dark Lumberjack Shop', 'Red Shield Shop', 'Bumper Cave (Bottom)', 'Bumper Cave (Top)', @@ -2036,9 +2036,9 @@ Isolated_LH_Doors = ['Kings Grave', 'Desert Palace Entrance (South)', 'Desert Palace Entrance (North)', 'Capacity Upgrade', - 'Ice Palace', 'Dark World Shop', 'Dark World Potion Shop', + 'Ice Palace', 'Dark World Shop', 'Dark Potion Shop', 'Skull Woods Final Section', 'Skull Woods Second Section Door (West)', - 'Dark World Hammer Peg Cave', 'Dark Death Mountain Ledge (West)', + 'Hammer Peg Cave', 'Dark Death Mountain Ledge (West)', 'Turtle Rock Isolated Ledge Entrance', 'Dark Death Mountain Ledge (East)'] # Entrances that cannot be used to access a must_exit entrance - symmetrical to allow reverse lookups @@ -2065,136 +2065,153 @@ Inverted_Must_Exit_Invalid_Connections = defaultdict(set, { # these are connections that cannot be shuffled and always exist. # They link together separate parts of the world we need to divide into regions mandatory_connections = [('Links House S&Q', 'Links House'), - ('Lake Hylia Central Island Pier', 'Lake Hylia Central Island'), - ('Lake Hylia Central Island Water Drop', 'Lake Hylia Water'), - ('Potion Shop Water Drop', 'Lake Hylia Water'), - ('Northeast Light World Water Drop', 'Lake Hylia Water'), - ('Zora Waterfall Water Drop', 'Lake Hylia Water'), - ('Light World Water Drop', 'Lake Hylia Water'), - ('East Dark World Water Drop', 'Dark Lake Hylia Water'), - ('South Dark World Water Drop', 'Dark Lake Hylia Water'), - ('Southeast Dark World Water Drop', 'Dark Lake Hylia Water'), - ('Northeast Dark World Water Drop', 'Dark Lake Hylia Water'), - ('Catfish Water Drop', 'Dark Lake Hylia Water'), - ('Ice Palace Leave Water Drop', 'Dark Lake Hylia Water'), - ('West Dark World Water Drop', 'Dark Lake Hylia Water'), - ('Zoras Domain', 'Zoras Domain'), - ('Kings Grave Outer Rocks', 'Kings Grave Area'), - ('Kings Grave Inner Rocks', 'Light World'), - ('Kakariko Well (top to bottom)', 'Kakariko Well (bottom)'), - ('Kakariko Well (top to back)', 'Kakariko Well (back)'), - ('Master Sword Meadow', 'Master Sword Meadow'), - ('Hobo Pier', 'Hobo Bridge'), - ('Bat Cave Ledge Peg', 'Bat Cave Ledge'), - ('Bat Cave Ledge Peg (East)', 'Light World'), - ('Bat Cave Door', 'Bat Cave (left)'), + + # underworld ('Lost Woods Hideout (top to bottom)', 'Lost Woods Hideout (bottom)'), ('Lumberjack Tree (top to bottom)', 'Lumberjack Tree (bottom)'), - ('Blinds Hideout N', 'Blinds Hideout (Top)'), - ('Light World Pier', 'Light World'), - ('Potion Shop Pier', 'Potion Shop Area'), - ('Wooden Bridge Bush (North)', 'Light World'), - ('Wooden Bridge Bush (South)', 'Potion Shop Area'), - ('Potion Shop Rock (South)', 'Northeast Light World'), - ('Potion Shop Rock (North)', 'Potion Shop Area'), - ('Desert Statue Move', 'Desert Palace Stairs'), - ('Desert Palace Stairs Drop', 'Light World'), - ('Desert Palace Entrance (North) Rocks', 'Desert Palace Entrance (North) Spot'), - ('Desert Ledge Return Rocks', 'Desert Ledge'), - ('Sewer Drop', 'Sewers Rat Path'), - ('Death Mountain Entrance Rock', 'Death Mountain Entrance'), - ('Death Mountain Entrance Drop', 'Light World'), - ('Spectacle Rock Cave Drop', 'Spectacle Rock Cave (Bottom)'), - ('Spectacle Rock Cave Peak Drop', 'Spectacle Rock Cave (Bottom)'), ('Death Mountain Return Cave E', 'Death Mountain Return Cave (right)'), ('Death Mountain Return Cave W', 'Death Mountain Return Cave (left)'), - ('Death Mountain Return Ledge Drop', 'Light World'), ('Old Man Cave Dropdown', 'Old Man Cave'), + ('Spectacle Rock Cave Drop', 'Spectacle Rock Cave (Bottom)'), + ('Spectacle Rock Cave Peak Drop', 'Spectacle Rock Cave (Bottom)'), ('Old Man House Front to Back', 'Old Man House Back'), ('Old Man House Back to Front', 'Old Man House'), - ('DM Broken Bridge (West)', 'East Death Mountain (Bottom)'), - ('DM Broken Bridge (East)', 'Death Mountain (West Bottom)'), - ('East Death Mountain Drop', 'East Death Mountain (Bottom)'), - ('Spiral Cave Ledge Access', 'Spiral Cave Ledge'), - ('Spiral Cave Ledge Drop', 'East Death Mountain (Bottom)'), ('Spiral Cave (top to bottom)', 'Spiral Cave (Bottom)'), - ('DM Hammer Bridge (West)', 'East Death Mountain (Top)'), - ('DM Hammer Bridge (East)', 'Death Mountain (Top)'), - ('Death Mountain Drop', 'Death Mountain (West Bottom)'), - ('East Dark World Pier', 'East Dark World'), - ('Hammer Bridge Pegs (North)', 'South Dark World'), - ('Hammer Bridge Pegs (South)', 'East Dark World'), - ('Village of Outcasts Heavy Rock', 'West Dark World'), - ('Village of Outcasts Drop', 'South Dark World'), - ('Village of Outcasts Eastern Rocks', 'Hammer Peg Area'), - ('Village of Outcasts Pegs', 'Dark Grassy Lawn'), - ('Peg Area Rocks', 'West Dark World'), - ('Grassy Lawn Pegs', 'West Dark World'), - ('West Dark World Gap', 'West Dark World'), - ('East Dark World Broken Bridge Pass', 'East Dark World'), - ('Dark Witch Rock (North)', 'Northeast Dark World'), - ('Dark Witch Rock (South)', 'Catfish Area'), - ('Northeast Dark World Broken Bridge Pass', 'Northeast Dark World'), - ('Bumper Cave Entrance Rock', 'Bumper Cave Entrance'), - ('Bumper Cave Entrance Drop', 'West Dark World'), - ('Bumper Cave Ledge Drop', 'West Dark World'), - ('Bumper Cave Bottom to Top', 'Bumper Cave (top)'), - ('Bumper Cave Top To Bottom', 'Bumper Cave (bottom)'), - ('Skull Woods Forest', 'Skull Woods Forest'), ('Paradox Cave Push Block Reverse', 'Paradox Cave Chest Area'), ('Paradox Cave Push Block', 'Paradox Cave Front'), ('Paradox Cave Chest Area NE', 'Paradox Cave Bomb Area'), ('Paradox Cave Bomb Jump', 'Paradox Cave'), ('Paradox Cave Drop', 'Paradox Cave Chest Area'), - ('Light World Death Mountain Shop', 'Light World Death Mountain Shop'), - ('Fairy Ascension Rocks', 'Fairy Ascension Plateau'), - ('Fairy Ascension Drop', 'East Death Mountain (Bottom)'), - ('Fairy Ascension Ledge Drop', 'Fairy Ascension Plateau'), + ('Paradox Shop', 'Paradox Shop'), ('Fairy Ascension Cave Climb', 'Fairy Ascension Cave (Top)'), ('Fairy Ascension Cave Pots', 'Fairy Ascension Cave (Bottom)'), ('Fairy Ascension Cave Drop', 'Fairy Ascension Cave (Drop)'), - ('Dark Death Mountain Drop (East)', 'Dark Death Mountain (East Bottom)'), - ('Superbunny Cave Climb', 'Superbunny Cave (Top)'), + ('Sewer Drop', 'Sewers Rat Path'), + ('Kakariko Well (top to bottom)', 'Kakariko Well (bottom)'), + ('Kakariko Well (top to back)', 'Kakariko Well (back)'), + ('Blinds Hideout N', 'Blinds Hideout (Top)'), + ('Bat Cave Door', 'Bat Cave (left)'), + ('Hookshot Cave Front to Middle', 'Hookshot Cave (Middle)'), ('Hookshot Cave Middle to Front', 'Hookshot Cave (Front)'), ('Hookshot Cave Middle to Back', 'Hookshot Cave (Back)'), ('Hookshot Cave Back to Middle', 'Hookshot Cave (Middle)'), ('Hookshot Cave Bonk Path', 'Hookshot Cave (Bonk Islands)'), ('Hookshot Cave Hook Path', 'Hookshot Cave (Hook Islands)'), + ('Superbunny Cave Climb', 'Superbunny Cave (Top)'), + ('Bumper Cave Bottom to Top', 'Bumper Cave (top)'), + ('Bumper Cave Top To Bottom', 'Bumper Cave (bottom)'), ('Ganon Drop', 'Bottom of Pyramid'), - ('Pyramid Drop', 'East Dark World'), - ('Maze Race Ledge Drop', 'Light World'), - ('Hyrule Castle Ledge Drop', 'Light World'), - ('Desert Ledge Drop', 'Light World'), + + # water entry + ('Light World Water Drop', 'Lake Hylia Water'), + ('Potion Shop Water Drop', 'Lake Hylia Water'), + ('Northeast Light World Water Drop', 'Lake Hylia Water'), + ('Lake Hylia Central Island Water Drop', 'Lake Hylia Water'), + ('Zora Waterfall Water Drop', 'Lake Hylia Water'), + + ('West Dark World Water Drop', 'Dark Lake Hylia Water'), + ('South Dark World Water Drop', 'Dark Lake Hylia Water'), + ('East Dark World Water Drop', 'Dark Lake Hylia Water'), + ('Northeast Dark World Water Drop', 'Dark Lake Hylia Water'), + ('Southeast Dark World Water Drop', 'Dark Lake Hylia Water'), + ('Catfish Water Drop', 'Dark Lake Hylia Water'), + ('Ice Palace Leave Water Drop', 'Dark Lake Hylia Water'), + + # water exit + ('Lake Hylia Central Island Pier', 'Lake Hylia Central Island'), + ('Hobo Pier', 'Hobo Bridge'), + ('Light World Pier', 'Light World'), # there are several piers in-game, only one needs to be modeled + ('Potion Shop Pier', 'Potion Shop Area'), ('Lake Hylia Whirlpool', 'Northeast Light World'), - ('Hyrule Castle Ledge Courtyard Drop', 'Hyrule Castle Courtyard'), + ('Waterfall Fairy Access', 'Zora Waterfall Entryway'), + + ('East Dark World Pier', 'East Dark World'), ('Southeast Dark World Pier', 'Southeast Dark World'), ('Northeast Dark World River Pier', 'Northeast Dark World'), - ('Fairy Ascension Ledge Access', 'Fairy Ascension Ledge'), - ('Hyrule Castle Courtyard Bush (North)', 'Hyrule Castle Courtyard'), - ('Hyrule Castle Courtyard Bush (South)', 'Hyrule Castle Secret Entrance Area'), - ('Turtle Rock Drop', 'Dark Death Mountain (Top)'), - ('Floating Island Drop', 'Dark Death Mountain (Top)'), - ('Dark Desert Drop', 'Dark Desert'), + + # terrain + ('Master Sword Meadow', 'Master Sword Meadow'), + ('DM Hammer Bridge (West)', 'East Death Mountain (Top)'), + ('DM Hammer Bridge (East)', 'West Death Mountain (Top)'), + ('DM Broken Bridge (West)', 'East Death Mountain (Bottom)'), + ('DM Broken Bridge (East)', 'West Death Mountain (Bottom)'), + ('Fairy Ascension Rocks', 'Fairy Ascension Plateau'), + ('Death Mountain Entrance Rock', 'Death Mountain Entrance'), + ('Zoras Domain', 'Zoras Domain'), + ('Kings Grave Rocks (Outer)', 'Kings Grave Area'), + ('Kings Grave Rocks (Inner)', 'Light World'), + ('Potion Shop Rock (South)', 'Northeast Light World'), + ('Potion Shop Rock (North)', 'Potion Shop Area'), ('Kakariko Yard Bush (North)', 'Light World'), ('Kakariko Yard Bush (South)', 'Bush Covered Lawn'), - ('Bush Covered Lawn Mirror Spot', 'Dark Grassy Lawn'), ('Kakariko Southwest Bush (South)', 'Light World'), ('Kakariko Southwest Bush (North)', 'Bomb Hut Area'), ('Hyrule Castle Main Gate', 'Hyrule Castle Courtyard'), - ('Spectacle Rock Drop', 'Death Mountain (Top)'), - ('Desert Teleporter Drop', 'Light World'), - ('Dark Death Mountain Drop (West)', 'Dark Death Mountain (West Bottom)'), + ('Hyrule Castle Main Gate (North)', 'Light World'), + ('Hyrule Castle Courtyard Bush (North)', 'Hyrule Castle Courtyard'), + ('Hyrule Castle Courtyard Bush (South)', 'Hyrule Castle Secret Entrance Area'), + ('Wooden Bridge Bush (North)', 'Light World'), + ('Wooden Bridge Bush (South)', 'Potion Shop Area'), + ('Bat Cave Ledge Peg', 'Bat Cave Ledge'), + ('Bat Cave Ledge Peg (East)', 'Light World'), + ('Desert Statue Move', 'Desert Palace Stairs'), + ('Desert Ledge Rocks (Outer)', 'Desert Palace Entrance (North) Spot'), + ('Desert Ledge Rocks (Inner)', 'Desert Ledge'), + + ('Skull Woods Forest', 'Skull Woods Forest'), + ('Bumper Cave Entrance Rock', 'Bumper Cave Entrance'), + ('Dark Witch Rock (North)', 'Northeast Dark World'), + ('Dark Witch Rock (South)', 'Catfish Area'), + ('Grassy Lawn Pegs (Bottom)', 'Dark Grassy Lawn'), + ('Grassy Lawn Pegs (Top)', 'West Dark World'), + ('West Dark World Gap', 'West Dark World'), + ('Broken Bridge Pass (Top)', 'East Dark World'), + ('Broken Bridge Pass (Bottom)', 'Northeast Dark World'), + ('Peg Area Rocks (Left)', 'Hammer Peg Area'), + ('Peg Area Rocks (Right)', 'West Dark World'), + ('Village of Outcasts Heavy Rock', 'West Dark World'), + ('Hammer Bridge Pegs (North)', 'South Dark World'), + ('Hammer Bridge Pegs (South)', 'East Dark World'), + + # ledge drops + ('Spectacle Rock Drop', 'West Death Mountain (Top)'), + ('Death Mountain Drop', 'West Death Mountain (Bottom)'), + ('Spiral Cave Ledge Access', 'Spiral Cave Ledge'), + ('Fairy Ascension Ledge Access', 'Fairy Ascension Ledge'), + ('East Death Mountain Drop', 'East Death Mountain (Bottom)'), + ('Spiral Cave Ledge Drop', 'East Death Mountain (Bottom)'), + ('Fairy Ascension Ledge Drop', 'Fairy Ascension Plateau'), + ('Fairy Ascension Drop', 'East Death Mountain (Bottom)'), + ('Death Mountain Entrance Drop', 'Light World'), + ('Death Mountain Return Ledge Drop', 'Light World'), ('Graveyard Ledge Drop', 'Light World'), - ('Cave 45 Ledge Drop', 'Light World'), + ('Hyrule Castle Ledge Courtyard Drop', 'Hyrule Castle Courtyard'), + ('Hyrule Castle Ledge Drop', 'Light World'), + ('Maze Race Ledge Drop', 'Light World'), + ('Desert Ledge Drop', 'Light World'), + ('Desert Palace Mouth Drop', 'Light World'), ('Checkerboard Ledge Drop', 'Light World'), - ('Hyrule Castle Main Gate (North)', 'Light World') + ('Desert Teleporter Drop', 'Light World'), + ('Cave 45 Ledge Drop', 'Light World'), + + ('Dark Death Mountain Drop (West)', 'West Dark Death Mountain (Bottom)'), + ('Dark Death Mountain Drop (East)', 'East Dark Death Mountain (Bottom)'), + ('Floating Island Drop', 'Dark Death Mountain (Top)'), + ('Turtle Rock Drop', 'Dark Death Mountain (Top)'), + ('Bumper Cave Entrance Drop', 'West Dark World'), + ('Bumper Cave Ledge Drop', 'West Dark World'), + ('Pyramid Drop', 'East Dark World'), + ('Village of Outcasts Drop', 'South Dark World'), + ('Dark Desert Drop', 'Dark Desert') ] open_mandatory_connections = [('Sanctuary S&Q', 'Sanctuary'), ('Old Man S&Q', 'Old Man House'), ('Other World S&Q', 'East Dark World'), - ('Flute Spot 1', 'Death Mountain (West Bottom)'), + + # flute + ('Flute Spot 1', 'West Death Mountain (Bottom)'), ('Flute Spot 2', 'Potion Shop Area'), ('Flute Spot 3', 'Light World'), ('Flute Spot 4', 'Light World'), @@ -2207,51 +2224,50 @@ open_mandatory_connections = [('Sanctuary S&Q', 'Sanctuary'), ('ZLW Flute', 'Flute Sky'), ('DM Flute', 'Flute Sky'), ('EDM Flute', 'Flute Sky'), - ('Lake Hylia Central Island Teleporter', 'Dark Lake Hylia Central Island'), - ('Kings Grave Mirror Spot', 'Kings Grave Area'), - ('Top of Pyramid', 'East Dark World'), - ('Lake Hylia Island Mirror Spot', 'Lake Hylia Island'), - ('Lake Hylia Central Island Mirror Spot', 'Lake Hylia Central Island'), - ('Hyrule Castle Ledge Mirror Spot', 'Hyrule Castle Ledge'), - ('Dig Game Mirror Spot', 'Maze Race Ledge'), - ('Bat Cave Drop Ledge Mirror Spot', 'Bat Cave Ledge'), - ('Bumper Cave Entrance Mirror Spot', 'Death Mountain Entrance'), - ('Bumper Cave Ledge Mirror Spot', 'Death Mountain Return Ledge'), - ('Desert Ledge Mirror Spot', 'Desert Ledge'), - ('Desert Ledge (Northeast) Mirror Spot', 'Desert Checkerboard Ledge'), - ('Desert Palace Entrance (North) Mirror Spot', 'Desert Palace Entrance (North) Spot'), - ('Desert Teleporter', 'Dark Desert'), - ('Mire To Desert Palace Stairs Mirror Spot', 'Desert Palace Stairs'), + + # portals + ('Death Mountain Teleporter', 'West Dark Death Mountain (Bottom)'), + ('East Death Mountain Teleporter', 'East Dark Death Mountain (Bottom)'), + ('Turtle Rock Teleporter', 'Turtle Rock (Top)'), + ('Kakariko Teleporter', 'West Dark World'), + ('Castle Gate Teleporter', 'East Dark World'), ('East Hyrule Teleporter', 'East Dark World'), ('South Hyrule Teleporter', 'South Dark World'), - ('Kakariko Teleporter', 'West Dark World'), - ('Death Mountain Teleporter', 'Dark Death Mountain (West Bottom)'), - ('Fairy Ascension Mirror Spot', 'Fairy Ascension Plateau'), + ('Desert Teleporter', 'Dark Desert'), + ('Lake Hylia Teleporter', 'Dark Lake Hylia Central Island'), + + # mirror ('Spectacle Rock Mirror Spot', 'Spectacle Rock'), + ('Fairy Ascension Mirror Spot', 'Fairy Ascension Plateau'), ('East Death Mountain (Top) Mirror Spot', 'East Death Mountain (Top)'), - ('Turtle Rock Teleporter', 'Turtle Rock (Top)'), - ('Dark Grassy Lawn Mirror Spot', 'Bush Covered Lawn'), ('Dark Floating Island Mirror Spot', 'Death Mountain Floating Island'), - ('East Death Mountain Teleporter', 'Dark Death Mountain (East Bottom)'), - ('Isolated Ledge Mirror Spot', 'Fairy Ascension Ledge'), ('Spiral Cave Mirror Spot', 'Spiral Cave Ledge'), ('Mimic Cave Mirror Spot', 'Mimic Cave Ledge'), - ('Cave 45 Mirror Spot', 'Cave 45 Ledge'), + ('Isolated Ledge Mirror Spot', 'Fairy Ascension Ledge'), + ('Bumper Cave Ledge Mirror Spot', 'Death Mountain Return Ledge'), + ('Bumper Cave Entrance Mirror Spot', 'Death Mountain Entrance'), + ('Kings Grave Mirror Spot', 'Kings Grave Area'), + ('Dark Grassy Lawn Mirror Spot', 'Bush Covered Lawn'), + ('Hyrule Castle Ledge Mirror Spot', 'Hyrule Castle Ledge'), + ('Bat Cave Drop Ledge Mirror Spot', 'Bat Cave Ledge'), + ('Dig Game Mirror Spot', 'Maze Race Ledge'), + ('Desert Ledge Rocks Mirror Spot', 'Desert Palace Entrance (North) Spot'), + ('Desert Ledge Mirror Spot', 'Desert Ledge'), + ('Mire To Desert Stairs Mirror Spot', 'Desert Palace Stairs'), + ('Checkerboard Ledge Mirror Spot', 'Desert Checkerboard Ledge'), ('Bombos Tablet Mirror Spot', 'Bombos Tablet Ledge'), + ('Cave 45 Mirror Spot', 'Cave 45 Ledge'), + ('Lake Hylia Island Mirror Spot', 'Lake Hylia Island'), + ('Lake Hylia Central Island Mirror Spot', 'Lake Hylia Central Island'), ('Graveyard Ledge Mirror Spot', 'Graveyard Ledge') ] inverted_mandatory_connections = [('Sanctuary S&Q', 'Dark Sanctuary Hint'), - ('Old Man S&Q', 'Dark Death Mountain (West Bottom)'), + ('Old Man S&Q', 'West Dark Death Mountain (Bottom)'), ('Other World S&Q', 'Hyrule Castle Ledge'), - ('Lake Hylia Island Pier', 'Lake Hylia Island'), - ('Spectacle Rock Leave', 'Death Mountain (Top)'), - ('Spectacle Rock Approach', 'Spectacle Rock'), - ('Checkerboard Ledge Approach', 'Desert Checkerboard Ledge'), - ('Checkerboard Ledge Leave', 'Light World'), - ('Cave 45 Approach', 'Cave 45 Ledge'), - ('Cave 45 Leave', 'Light World'), - ('Flute Spot 1', 'Dark Death Mountain (West Bottom)'), + + # flute + ('Flute Spot 1', 'West Dark Death Mountain (Bottom)'), ('Flute Spot 2', 'Northeast Dark World'), ('Flute Spot 3', 'West Dark World'), ('Flute Spot 4', 'South Dark World'), @@ -2269,229 +2285,250 @@ inverted_mandatory_connections = [('Sanctuary S&Q', 'Dark Sanctuary Hint'), ('EDDM Flute', 'Flute Sky'), ('Dark Grassy Lawn Flute', 'Flute Sky'), ('Hammer Peg Area Flute', 'Flute Sky'), + + # modified terrain + ('Lake Hylia Island Pier', 'Lake Hylia Island'), + ('Spectacle Rock Leave', 'West Death Mountain (Top)'), + ('Spectacle Rock Approach', 'Spectacle Rock'), + ('Checkerboard Ledge Approach', 'Desert Checkerboard Ledge'), + ('Checkerboard Ledge Leave', 'Light World'), + ('Cave 45 Approach', 'Cave 45 Ledge'), + ('Cave 45 Leave', 'Light World'), ('Dark Death Mountain Ladder (Bottom)', 'Dark Death Mountain (Top)'), - ('Dark Death Mountain Ladder (Top)', 'Dark Death Mountain (West Bottom)'), + ('Dark Death Mountain Ladder (Top)', 'West Dark Death Mountain (Bottom)'), ('Ice Palace Approach', 'Dark Lake Hylia Central Island'), ('Floating Island Bridge (East)', 'Death Mountain Floating Island'), ('Floating Island Bridge (West)', 'East Death Mountain (Top)'), - ('Post Aga Teleporter', 'Light World'), ('Graveyard Ladder (Top)', 'Light World'), ('Graveyard Ladder (Bottom)', 'Graveyard Ledge'), - ('Graveyard Cave Mirror Spot', 'West Dark World'), - ('Pyramid Uncle Mirror Spot', 'East Dark World'), ('Mimic Cave Ledge Access', 'Mimic Cave Ledge'), ('Mimic Cave Ledge Drop', 'East Death Mountain (Bottom)'), ('Turtle Rock Tail Drop', 'Turtle Rock (Top)'), - ('Dark Lake Hylia Central Island Teleporter', 'Lake Hylia Central Island'), - ('Dark Desert Teleporter', 'Light World'), - ('East Dark World Teleporter', 'Light World'), - ('South Dark World Teleporter', 'Light World'), - ('West Dark World Teleporter', 'Light World'), - ('Dark Death Mountain Teleporter (West)', 'Death Mountain (West Bottom)'), - ('Dark Death Mountain Teleporter (East)', 'East Death Mountain (Top)'), - ('Dark Death Mountain Teleporter (East Bottom)', 'East Death Mountain (Bottom)'), - ('Mire Mirror Spot', 'Dark Desert'), ('Bombos Tablet Ladder (Top)', 'Light World'), ('Bombos Tablet Ladder (Bottom)', 'Bombos Tablet Ledge'), - ('Desert Palace Stairs Mirror Spot', 'Dark Desert'), - ('Desert Palace North Mirror Spot', 'Dark Desert'), - ('Maze Race Mirror Spot', 'South Dark World'), - ('Lake Hylia Central Island Mirror Spot', 'Dark Lake Hylia Central Island'), - ('Hammer Peg Area Mirror Spot', 'Hammer Peg Area'), - ('Mountain Exit Ledge Mirror Spot', 'Bumper Cave Ledge'), - ('Bumper Cave Entrance Mirror Spot', 'Bumper Cave Entrance'), - ('Death Mountain Mirror Spot', 'Dark Death Mountain (West Bottom)'), - ('East Death Mountain Mirror Spot (Top)', 'Dark Death Mountain (Top)'), - ('East Death Mountain Mirror Spot (Bottom)', 'Dark Death Mountain (East Bottom)'), + + # portals + ('Dark Death Mountain Teleporter (West)', 'West Death Mountain (Bottom)'), + ('East Dark Death Mountain Teleporter (Bottom)', 'East Death Mountain (Bottom)'), + ('East Dark Death Mountain Teleporter (Top)', 'East Death Mountain (Top)'), + ('West Dark World Teleporter', 'Light World'), + ('Post Aga Teleporter', 'Light World'), + ('East Dark World Teleporter', 'Light World'), + ('South Dark World Teleporter', 'Light World'), + ('Dark Desert Teleporter', 'Light World'), + ('Dark Lake Hylia Teleporter', 'Lake Hylia Central Island'), + + # mirror + ('Skull Woods Mirror Spot', 'Skull Woods Forest (West)'), + ('Death Mountain Mirror Spot', 'West Dark Death Mountain (Bottom)'), ('Death Mountain (Top) Mirror Spot', 'Dark Death Mountain (Top)'), + ('East Death Mountain Mirror Spot (Top)', 'Dark Death Mountain (Top)'), + ('Floating Island Mirror Spot', 'Dark Death Mountain Floating Island'), ('Dark Death Mountain Ledge Mirror Spot (East)', 'Dark Death Mountain Ledge'), ('Dark Death Mountain Ledge Mirror Spot (West)', 'Dark Death Mountain Ledge'), - ('Floating Island Mirror Spot', 'Death Mountain Floating Island (Dark World)'), ('Laser Bridge Mirror Spot', 'Dark Death Mountain Isolated Ledge'), + ('East Death Mountain Mirror Spot (Bottom)', 'East Dark Death Mountain (Bottom)'), + ('Mountain Exit Ledge Mirror Spot', 'Bumper Cave Ledge'), + ('Mountain Entrance Mirror Spot', 'Bumper Cave Entrance'), + ('Catfish Mirror Spot', 'Catfish Area'), + ('Graveyard Cave Mirror Spot', 'West Dark World'), + ('Potion Shop Mirror Spot', 'Northeast Dark World'), + ('Bush Covered Lawn Mirror Spot', 'Dark Grassy Lawn'), + ('Bomb Hut Mirror Spot', 'West Dark World'), + ('Pyramid Uncle Mirror Spot', 'East Dark World'), + ('Hammer Peg Area Mirror Spot', 'Hammer Peg Area'), + ('Maze Race Mirror Spot', 'South Dark World'), + ('South Dark World Mirror Spot', 'South Dark World'), + ('Mire Mirror Spot', 'Dark Desert'), + ('Desert Palace Stairs Mirror Spot', 'Dark Desert'), + ('Desert Palace North Mirror Spot', 'Dark Desert'), + ('Lake Hylia Central Island Mirror Spot', 'Dark Lake Hylia Central Island'), ('East Dark World Mirror Spot', 'East Dark World'), ('West Dark World Mirror Spot', 'West Dark World'), - ('South Dark World Mirror Spot', 'South Dark World'), - ('Potion Shop Mirror Spot', 'Northeast Dark World'), - ('Catfish Mirror Spot', 'Catfish Area'), - ('Shopping Mall Mirror Spot', 'Southeast Dark World'), - ('Skull Woods Mirror Spot', 'Skull Woods Forest (West)'), - ('Bomb Hut Mirror Spot', 'West Dark World') + ('Shopping Mall Mirror Spot', 'Southeast Dark World') ] # non-shuffled entrance links -default_connections = [('Waterfall of Wishing', 'Waterfall of Wishing'), - ('Blinds Hideout', 'Blinds Hideout'), - ('Dam', 'Dam'), - ('Lumberjack House', 'Lumberjack House'), - ('Hyrule Castle Secret Entrance Drop', 'Hyrule Castle Secret Entrance'), - ('Hyrule Castle Secret Entrance Stairs', 'Hyrule Castle Secret Entrance'), - ('Hyrule Castle Secret Entrance Exit', 'Hyrule Castle Secret Entrance Area'), - ('Bonk Fairy (Light)', 'Bonk Fairy (Light)'), - ('Lake Hylia Fairy', 'Lake Hylia Healer Fairy'), - ('Lake Hylia Fortune Teller', 'Lake Hylia Fortune Teller'), - ('Light Hype Fairy', 'Swamp Healer Fairy'), - ('Desert Fairy', 'Desert Healer Fairy'), - ('Kings Grave', 'Kings Grave'), - ('Tavern North', 'Tavern'), - ('Chicken House', 'Chicken House'), - ('Aginahs Cave', 'Aginahs Cave'), - ('Sahasrahlas Hut', 'Sahasrahlas Hut'), - ('Cave Shop (Lake Hylia)', 'Cave Shop (Lake Hylia)'), - ('Capacity Upgrade', 'Capacity Upgrade'), - ('Kakariko Well Drop', 'Kakariko Well (top)'), - ('Kakariko Well Cave', 'Kakariko Well (bottom)'), - ('Kakariko Well Exit', 'Light World'), - ('Blacksmiths Hut', 'Blacksmiths Hut'), - ('Bat Cave Drop', 'Bat Cave (right)'), - ('Bat Cave Cave', 'Bat Cave (left)'), - ('Bat Cave Exit', 'Light World'), - ('Sick Kids House', 'Sick Kids House'), - ('Elder House (East)', 'Elder House'), - ('Elder House (West)', 'Elder House'), - ('Elder House Exit (East)', 'Light World'), - ('Elder House Exit (West)', 'Light World'), - ('North Fairy Cave Drop', 'North Fairy Cave'), - ('North Fairy Cave', 'North Fairy Cave'), - ('North Fairy Cave Exit', 'Light World'), - ('Lost Woods Gamble', 'Lost Woods Gamble'), - ('Fortune Teller (Light)', 'Fortune Teller (Light)'), - ('Snitch Lady (East)', 'Snitch Lady (East)'), - ('Snitch Lady (West)', 'Snitch Lady (West)'), - ('Bush Covered House', 'Bush Covered House'), - ('Tavern (Front)', 'Tavern (Front)'), - ('Light World Bomb Hut', 'Light World Bomb Hut'), - ('Kakariko Shop', 'Kakariko Shop'), +default_connections = [('Lost Woods Gamble', 'Lost Woods Gamble'), ('Lost Woods Hideout Drop', 'Lost Woods Hideout (top)'), ('Lost Woods Hideout Stump', 'Lost Woods Hideout (bottom)'), ('Lost Woods Hideout Exit', 'Light World'), + ('Lumberjack House', 'Lumberjack House'), ('Lumberjack Tree Tree', 'Lumberjack Tree (top)'), ('Lumberjack Tree Cave', 'Lumberjack Tree (bottom)'), ('Lumberjack Tree Exit', 'Light World'), - ('Cave 45', 'Cave 45'), - ('Graveyard Cave', 'Graveyard Cave'), - ('Checkerboard Cave', 'Checkerboard Cave'), - ('Mini Moldorm Cave', 'Mini Moldorm Cave'), - ('Long Fairy Cave', 'Long Fairy Cave'), - ('Good Bee Cave', 'Good Bee Cave'), - ('20 Rupee Cave', '20 Rupee Cave'), - ('50 Rupee Cave', '50 Rupee Cave'), - ('Ice Rod Cave', 'Ice Rod Cave'), - ('Bonk Rock Cave', 'Bonk Rock Cave'), - ('Library', 'Library'), - ('Kakariko Gamble Game', 'Kakariko Gamble Game'), - ('Potion Shop', 'Potion Shop'), - ('Two Brothers House (East)', 'Two Brothers House'), - ('Two Brothers House (West)', 'Two Brothers House'), - ('Two Brothers House Exit (East)', 'Light World'), - ('Two Brothers House Exit (West)', 'Maze Race Ledge'), - ('Sanctuary', 'Sanctuary Portal'), - ('Sanctuary Grave', 'Sewer Drop'), - ('Sanctuary Exit', 'Light World'), - ('Old Man House (Bottom)', 'Old Man House'), - ('Old Man House Exit (Bottom)', 'Death Mountain (West Bottom)'), - ('Old Man House (Top)', 'Old Man House Back'), - ('Old Man House Exit (Top)', 'Death Mountain (West Bottom)'), ('Death Mountain Return Cave (East)', 'Death Mountain Return Cave (right)'), - ('Death Mountain Return Cave Exit (East)', 'Death Mountain (West Bottom)'), + ('Death Mountain Return Cave Exit (East)', 'West Death Mountain (Bottom)'), ('Spectacle Rock Cave Peak', 'Spectacle Rock Cave (Peak)'), ('Spectacle Rock Cave (Bottom)', 'Spectacle Rock Cave (Bottom)'), ('Spectacle Rock Cave', 'Spectacle Rock Cave (Top)'), - ('Spectacle Rock Cave Exit', 'Death Mountain (West Bottom)'), - ('Spectacle Rock Cave Exit (Top)', 'Death Mountain (West Bottom)'), - ('Spectacle Rock Cave Exit (Peak)', 'Death Mountain (West Bottom)'), + ('Spectacle Rock Cave Exit', 'West Death Mountain (Bottom)'), + ('Spectacle Rock Cave Exit (Top)', 'West Death Mountain (Bottom)'), + ('Spectacle Rock Cave Exit (Peak)', 'West Death Mountain (Bottom)'), + ('Old Man House (Bottom)', 'Old Man House'), + ('Old Man House Exit (Bottom)', 'West Death Mountain (Bottom)'), + ('Old Man House (Top)', 'Old Man House Back'), + ('Old Man House Exit (Top)', 'West Death Mountain (Bottom)'), + ('Spiral Cave', 'Spiral Cave (Top)'), + ('Spiral Cave (Bottom)', 'Spiral Cave (Bottom)'), + ('Spiral Cave Exit', 'East Death Mountain (Bottom)'), + ('Spiral Cave Exit (Top)', 'Spiral Cave Ledge'), + ('Mimic Cave', 'Mimic Cave'), + ('Fairy Ascension Cave (Bottom)', 'Fairy Ascension Cave (Bottom)'), + ('Fairy Ascension Cave (Top)', 'Fairy Ascension Cave (Top)'), + ('Fairy Ascension Cave Exit (Bottom)', 'Fairy Ascension Plateau'), + ('Fairy Ascension Cave Exit (Top)', 'Fairy Ascension Ledge'), + ('Hookshot Fairy', 'Hookshot Fairy'), ('Paradox Cave (Bottom)', 'Paradox Cave Front'), ('Paradox Cave (Middle)', 'Paradox Cave'), ('Paradox Cave (Top)', 'Paradox Cave'), ('Paradox Cave Exit (Bottom)', 'East Death Mountain (Bottom)'), ('Paradox Cave Exit (Middle)', 'East Death Mountain (Bottom)'), ('Paradox Cave Exit (Top)', 'East Death Mountain (Top)'), - ('Hookshot Fairy', 'Hookshot Fairy'), - ('Fairy Ascension Cave (Bottom)', 'Fairy Ascension Cave (Bottom)'), - ('Fairy Ascension Cave (Top)', 'Fairy Ascension Cave (Top)'), - ('Fairy Ascension Cave Exit (Bottom)', 'Fairy Ascension Plateau'), - ('Fairy Ascension Cave Exit (Top)', 'Fairy Ascension Ledge'), - ('Spiral Cave', 'Spiral Cave (Top)'), - ('Spiral Cave (Bottom)', 'Spiral Cave (Bottom)'), - ('Spiral Cave Exit', 'East Death Mountain (Bottom)'), - ('Spiral Cave Exit (Top)', 'Spiral Cave Ledge'), - ('Pyramid Fairy', 'Pyramid Fairy'), - ('East Dark World Hint', 'East Dark World Hint'), - ('Palace of Darkness Hint', 'Palace of Darkness Hint'), - ('Dark Lake Hylia Shop', 'Dark Lake Hylia Shop'), - ('Dark Lake Hylia Fairy', 'Dark Lake Hylia Healer Fairy'), - ('Dark Lake Hylia Ledge Fairy', 'Dark Lake Hylia Ledge Healer Fairy'), - ('Dark Lake Hylia Ledge Spike Cave', 'Dark Lake Hylia Ledge Spike Cave'), - ('Dark Lake Hylia Ledge Hint', 'Dark Lake Hylia Ledge Hint'), - ('Hype Cave', 'Hype Cave'), - ('Bonk Fairy (Dark)', 'Bonk Fairy (Dark)'), - ('Brewery', 'Brewery'), - ('C-Shaped House', 'C-Shaped House'), - ('Chest Game', 'Chest Game'), - ('Dark World Hammer Peg Cave', 'Dark World Hammer Peg Cave'), - ('Red Shield Shop', 'Red Shield Shop'), - ('Dark Sanctuary Hint', 'Dark Sanctuary Hint'), - ('Fortune Teller (Dark)', 'Fortune Teller (Dark)'), - ('Dark World Shop', 'Village of Outcasts Shop'), - ('Dark World Lumberjack Shop', 'Dark World Lumberjack Shop'), - ('Dark World Potion Shop', 'Dark World Potion Shop'), - ('Archery Game', 'Archery Game'), - ('Mire Shed', 'Mire Shed'), - ('Dark Desert Hint', 'Dark Desert Hint'), - ('Dark Desert Fairy', 'Dark Desert Healer Fairy'), + ('Waterfall of Wishing', 'Waterfall of Wishing'), + ('Fortune Teller (Light)', 'Fortune Teller (Light)'), + ('Bonk Rock Cave', 'Bonk Rock Cave'), + ('Sanctuary', 'Sanctuary Portal'), + ('Sanctuary Exit', 'Light World'), + ('Sanctuary Grave', 'Sewer Drop'), + ('Graveyard Cave', 'Graveyard Cave'), + ('Kings Grave', 'Kings Grave'), + ('North Fairy Cave Drop', 'North Fairy Cave'), + ('North Fairy Cave', 'North Fairy Cave'), + ('North Fairy Cave Exit', 'Light World'), + ('Potion Shop', 'Potion Shop'), + ('Kakariko Well Drop', 'Kakariko Well (top)'), + ('Kakariko Well Cave', 'Kakariko Well (bottom)'), + ('Kakariko Well Exit', 'Light World'), + ('Blinds Hideout', 'Blinds Hideout'), + ('Elder House (East)', 'Elder House'), + ('Elder House (West)', 'Elder House'), + ('Elder House Exit (East)', 'Light World'), + ('Elder House Exit (West)', 'Light World'), + ('Snitch Lady (West)', 'Snitch Lady (West)'), + ('Snitch Lady (East)', 'Snitch Lady (East)'), + ('Bush Covered House', 'Bush Covered House'), + ('Chicken House', 'Chicken House'), + ('Sick Kids House', 'Sick Kids House'), + ('Light World Bomb Hut', 'Light World Bomb Hut'), + ('Kakariko Shop', 'Kakariko Shop'), + ('Tavern North', 'Tavern'), + ('Tavern (Front)', 'Tavern (Front)'), + ('Hyrule Castle Secret Entrance Drop', 'Hyrule Castle Secret Entrance'), + ('Hyrule Castle Secret Entrance Stairs', 'Hyrule Castle Secret Entrance'), + ('Hyrule Castle Secret Entrance Exit', 'Hyrule Castle Secret Entrance Area'), + ('Sahasrahlas Hut', 'Sahasrahlas Hut'), + ('Blacksmiths Hut', 'Blacksmiths Hut'), + ('Bat Cave Drop', 'Bat Cave (right)'), + ('Bat Cave Cave', 'Bat Cave (left)'), + ('Bat Cave Exit', 'Light World'), + ('Two Brothers House (West)', 'Two Brothers House'), + ('Two Brothers House Exit (West)', 'Maze Race Ledge'), + ('Two Brothers House (East)', 'Two Brothers House'), + ('Two Brothers House Exit (East)', 'Light World'), + ('Library', 'Library'), + ('Kakariko Gamble Game', 'Kakariko Gamble Game'), + ('Bonk Fairy (Light)', 'Bonk Fairy (Light)'), + ('Lake Hylia Fairy', 'Lake Hylia Healer Fairy'), + ('Long Fairy Cave', 'Long Fairy Cave'), + ('Checkerboard Cave', 'Checkerboard Cave'), + ('Aginahs Cave', 'Aginahs Cave'), + ('Cave 45', 'Cave 45'), + ('Light Hype Fairy', 'Light Hype Fairy'), + ('Lake Hylia Fortune Teller', 'Lake Hylia Fortune Teller'), + ('Lake Hylia Shop', 'Lake Hylia Shop'), + ('Capacity Upgrade', 'Capacity Upgrade'), + ('Mini Moldorm Cave', 'Mini Moldorm Cave'), + ('Ice Rod Cave', 'Ice Rod Cave'), + ('Good Bee Cave', 'Good Bee Cave'), + ('20 Rupee Cave', '20 Rupee Cave'), + ('Desert Fairy', 'Desert Healer Fairy'), + ('50 Rupee Cave', '50 Rupee Cave'), + ('Dam', 'Dam'), + + ('Dark Lumberjack Shop', 'Dark Lumberjack Shop'), ('Spike Cave', 'Spike Cave'), + ('Hookshot Cave Back Exit', 'Dark Death Mountain Floating Island'), + ('Hookshot Cave Back Entrance', 'Hookshot Cave (Back)'), ('Hookshot Cave', 'Hookshot Cave (Front)'), ('Hookshot Cave Front Exit', 'Dark Death Mountain (Top)'), ('Superbunny Cave (Top)', 'Superbunny Cave (Top)'), ('Superbunny Cave Exit (Top)', 'Dark Death Mountain (Top)'), - ('Cave Shop (Dark Death Mountain)', 'Cave Shop (Dark Death Mountain)'), ('Superbunny Cave (Bottom)', 'Superbunny Cave (Bottom)'), - ('Superbunny Cave Exit (Bottom)', 'Dark Death Mountain (East Bottom)'), - ('Hookshot Cave Back Exit', 'Death Mountain Floating Island (Dark World)'), - ('Hookshot Cave Back Entrance', 'Hookshot Cave (Back)'), - ('Mimic Cave', 'Mimic Cave') + ('Superbunny Cave Exit (Bottom)', 'East Dark Death Mountain (Bottom)'), + ('Dark Death Mountain Shop', 'Dark Death Mountain Shop'), + ('Fortune Teller (Dark)', 'Fortune Teller (Dark)'), + ('Dark Sanctuary Hint', 'Dark Sanctuary Hint'), + ('Dark Potion Shop', 'Dark Potion Shop'), + ('Chest Game', 'Chest Game'), + ('C-Shaped House', 'C-Shaped House'), + ('Brewery', 'Brewery'), + ('Dark World Shop', 'Village of Outcasts Shop'), + ('Hammer Peg Cave', 'Hammer Peg Cave'), + ('Red Shield Shop', 'Red Shield Shop'), + ('Pyramid Fairy', 'Pyramid Fairy'), + ('Palace of Darkness Hint', 'Palace of Darkness Hint'), + ('Archery Game', 'Archery Game'), + ('Bonk Fairy (Dark)', 'Bonk Fairy (Dark)'), + ('Dark Lake Hylia Fairy', 'Dark Lake Hylia Healer Fairy'), + ('East Dark World Hint', 'East Dark World Hint'), + ('Mire Shed', 'Mire Shed'), + ('Dark Desert Fairy', 'Dark Desert Healer Fairy'), + ('Dark Desert Hint', 'Dark Desert Hint'), + ('Hype Cave', 'Hype Cave'), + ('Dark Lake Hylia Shop', 'Dark Lake Hylia Shop'), + ('Dark Lake Hylia Ledge Fairy', 'Dark Lake Hylia Ledge Healer Fairy'), + ('Dark Lake Hylia Ledge Hint', 'Dark Lake Hylia Ledge Hint'), + ('Dark Lake Hylia Ledge Spike Cave', 'Dark Lake Hylia Ledge Spike Cave') ] open_default_connections = [('Links House', 'Links House'), ('Links House Exit', 'Light World'), + ('Big Bomb Shop', 'Big Bomb Shop'), ('Old Man Cave (West)', 'Old Man Cave Ledge'), ('Old Man Cave (East)', 'Old Man Cave'), ('Old Man Cave Exit (West)', 'Light World'), - ('Old Man Cave Exit (East)', 'Death Mountain (West Bottom)'), + ('Old Man Cave Exit (East)', 'West Death Mountain (Bottom)'), ('Death Mountain Return Cave (West)', 'Death Mountain Return Cave (left)'), ('Death Mountain Return Cave Exit (West)', 'Death Mountain Return Ledge'), - ('Big Bomb Shop', 'Big Bomb Shop'), ('Bumper Cave (Bottom)', 'Bumper Cave (bottom)'), ('Bumper Cave (Top)', 'Bumper Cave (top)'), ('Bumper Cave Exit (Top)', 'Bumper Cave Ledge'), ('Bumper Cave Exit (Bottom)', 'West Dark World'), ('Dark Death Mountain Fairy', 'Dark Death Mountain Healer Fairy'), ('Pyramid Hole', 'Pyramid'), - ('Pyramid Exit', 'Pyramid Ledge'), - ('Pyramid Entrance', 'Bottom of Pyramid') + ('Pyramid Entrance', 'Bottom of Pyramid'), + ('Pyramid Exit', 'Pyramid Exit Ledge') ] inverted_default_connections = [('Links House', 'Big Bomb Shop'), ('Links House Exit', 'South Dark World'), + ('Big Bomb Shop', 'Links House'), + ('Dark Sanctuary Hint Exit', 'West Dark World'), ('Old Man Cave (West)', 'Bumper Cave (bottom)'), ('Old Man Cave (East)', 'Death Mountain Return Cave (left)'), ('Old Man Cave Exit (West)', 'West Dark World'), - ('Old Man Cave Exit (East)', 'Dark Death Mountain (West Bottom)'), + ('Old Man Cave Exit (East)', 'West Dark Death Mountain (Bottom)'), ('Death Mountain Return Cave (West)', 'Bumper Cave (top)'), - ('Death Mountain Return Cave Exit (West)', 'Death Mountain (West Bottom)'), - ('Big Bomb Shop', 'Links House'), + ('Death Mountain Return Cave Exit (West)', 'West Death Mountain (Bottom)'), ('Bumper Cave (Bottom)', 'Old Man Cave Ledge'), ('Bumper Cave (Top)', 'Dark Death Mountain Healer Fairy'), ('Bumper Cave Exit (Top)', 'Death Mountain Return Ledge'), ('Bumper Cave Exit (Bottom)', 'Light World'), ('Dark Death Mountain Fairy', 'Old Man Cave'), - ('Dark Sanctuary Hint Exit', 'West Dark World'), ('Inverted Pyramid Hole', 'Pyramid'), - ('Pyramid Exit', 'Hyrule Castle Courtyard'), - ('Inverted Pyramid Entrance', 'Bottom of Pyramid') + ('Inverted Pyramid Entrance', 'Bottom of Pyramid'), + ('Pyramid Exit', 'Hyrule Castle Courtyard') ] # non shuffled dungeons -default_dungeon_connections = [('Desert Palace Entrance (South)', 'Desert South Portal'), +default_dungeon_connections = [('Hyrule Castle Entrance (South)', 'Hyrule Castle South Portal'), + ('Hyrule Castle Entrance (West)', 'Hyrule Castle West Portal'), + ('Hyrule Castle Entrance (East)', 'Hyrule Castle East Portal'), + ('Hyrule Castle Exit (South)', 'Hyrule Castle Courtyard'), + ('Hyrule Castle Exit (West)', 'Hyrule Castle Ledge'), + ('Hyrule Castle Exit (East)', 'Hyrule Castle Ledge'), + ('Desert Palace Entrance (South)', 'Desert South Portal'), ('Desert Palace Entrance (West)', 'Desert West Portal'), ('Desert Palace Entrance (North)', 'Desert Back Portal'), ('Desert Palace Entrance (East)', 'Desert East Portal'), @@ -2502,17 +2539,12 @@ default_dungeon_connections = [('Desert Palace Entrance (South)', 'Desert South ('Eastern Palace', 'Eastern Portal'), ('Eastern Palace Exit', 'Light World'), ('Tower of Hera', 'Hera Portal'), - ('Tower of Hera Exit', 'Death Mountain (Top)'), + ('Tower of Hera Exit', 'West Death Mountain (Top)'), - ('Hyrule Castle Entrance (South)', 'Hyrule Castle South Portal'), - ('Hyrule Castle Entrance (West)', 'Hyrule Castle West Portal'), - ('Hyrule Castle Entrance (East)', 'Hyrule Castle East Portal'), - ('Hyrule Castle Exit (South)', 'Hyrule Castle Courtyard'), - ('Hyrule Castle Exit (West)', 'Hyrule Castle Ledge'), - ('Hyrule Castle Exit (East)', 'Hyrule Castle Ledge'), - - ('Thieves Town', 'Thieves Town Portal'), - ('Thieves Town Exit', 'West Dark World'), + ('Palace of Darkness', 'Palace of Darkness Portal'), + ('Palace of Darkness Exit', 'East Dark World'), + ('Swamp Palace', 'Swamp Portal'), # requires additional patch for flooding moat if moved + ('Swamp Palace Exit', 'South Dark World'), ('Skull Woods First Section Hole (East)', 'Skull Pinball'), ('Skull Woods First Section Hole (West)', 'Skull Left Drop'), ('Skull Woods First Section Hole (North)', 'Skull Pot Circle'), @@ -2525,35 +2557,30 @@ default_dungeon_connections = [('Desert Palace Entrance (South)', 'Desert South ('Skull Woods Second Section Exit (West)', 'Skull Woods Forest (West)'), ('Skull Woods Final Section', 'Skull 3 Portal'), ('Skull Woods Final Section Exit', 'Skull Woods Forest (West)'), + ('Thieves Town', 'Thieves Town Portal'), + ('Thieves Town Exit', 'West Dark World'), ('Ice Palace', 'Ice Portal'), + ('Ice Palace Exit', 'Dark Lake Hylia Central Island'), ('Misery Mire', 'Mire Portal'), ('Misery Mire Exit', 'Dark Desert'), - ('Palace of Darkness', 'Palace of Darkness Portal'), - ('Palace of Darkness Exit', 'East Dark World'), - ('Swamp Palace', 'Swamp Portal'), # requires additional patch for flooding moat if moved - ('Swamp Palace Exit', 'South Dark World'), - ('Turtle Rock', 'Turtle Rock Main Portal'), - ('Turtle Rock Ledge Exit (West)', 'Dark Death Mountain Ledge'), - ('Turtle Rock Ledge Exit (East)', 'Dark Death Mountain Ledge'), + ('Turtle Rock Exit (Front)', 'Dark Death Mountain (Top)'), ('Dark Death Mountain Ledge (West)', 'Turtle Rock Lazy Eyes Portal'), ('Dark Death Mountain Ledge (East)', 'Turtle Rock Chest Portal'), - ('Turtle Rock Isolated Ledge Exit', 'Dark Death Mountain Isolated Ledge'), - ('Turtle Rock Isolated Ledge Entrance', 'Turtle Rock Eye Bridge Portal') + ('Turtle Rock Ledge Exit (West)', 'Dark Death Mountain Ledge'), + ('Turtle Rock Ledge Exit (East)', 'Dark Death Mountain Ledge'), + ('Turtle Rock Isolated Ledge Entrance', 'Turtle Rock Eye Bridge Portal'), + ('Turtle Rock Isolated Ledge Exit', 'Dark Death Mountain Isolated Ledge') ] open_default_dungeon_connections = [('Agahnims Tower', 'Agahnims Tower Portal'), ('Agahnims Tower Exit', 'Hyrule Castle Ledge'), - ('Ice Palace Exit', 'Dark Lake Hylia Central Island'), - ('Turtle Rock Exit (Front)', 'Dark Death Mountain (Top)'), ('Ganons Tower', 'Ganons Tower Portal'), ('Ganons Tower Exit', 'Dark Death Mountain (Top)') ] inverted_default_dungeon_connections = [('Agahnims Tower', 'Ganons Tower Portal'), ('Agahnims Tower Exit', 'Dark Death Mountain (Top)'), - ('Ice Palace Exit', 'Dark Lake Hylia Central Island'), - ('Turtle Rock Exit (Front)', 'Dark Death Mountain (Top)'), ('Ganons Tower', 'Agahnims Tower Portal'), ('Ganons Tower Exit', 'Hyrule Castle Ledge') ] @@ -2654,7 +2681,7 @@ door_addresses = {'Links House': (0x00, (0x0104, 0x2c, 0x0506, 0x0a9a, 0x0832, 0 'Chicken House': (0x4A, (0x0108, 0x18, 0x1120, 0x0837, 0x0106, 0x0888, 0x0188, 0x08a4, 0x0193, 0x07, 0xf9, 0x1530, 0x0000)), 'Aginahs Cave': (0x70, (0x010a, 0x30, 0x0656, 0x0cc6, 0x02aa, 0x0d18, 0x0328, 0x0d33, 0x032f, 0x08, 0xf8, 0x0000, 0x0000)), 'Sahasrahlas Hut': (0x44, (0x0105, 0x1e, 0x0610, 0x06d4, 0x0c76, 0x0727, 0x0cf0, 0x0743, 0x0cfb, 0x0a, 0xf6, 0x0000, 0x0000)), - 'Cave Shop (Lake Hylia)': (0x57, (0x0112, 0x35, 0x0022, 0x0c00, 0x0b1a, 0x0c26, 0x0b98, 0x0c6d, 0x0b9f, 0x00, 0x00, 0x0000, 0x0000)), + 'Lake Hylia Shop': (0x57, (0x0112, 0x35, 0x0022, 0x0c00, 0x0b1a, 0x0c26, 0x0b98, 0x0c6d, 0x0b9f, 0x00, 0x00, 0x0000, 0x0000)), 'Capacity Upgrade': (0x5C, (0x0115, 0x35, 0x0a46, 0x0d36, 0x0c2a, 0x0d88, 0x0ca8, 0x0da3, 0x0caf, 0x0a, 0xf6, 0x0000, 0x0000)), 'Kakariko Well Drop': ([0xDB85C, 0xDB85D], None), 'Blacksmiths Hut': (0x63, (0x0121, 0x22, 0x010c, 0x081a, 0x0466, 0x0868, 0x04d8, 0x0887, 0x04e3, 0x06, 0xfa, 0x041A, 0x0000)), @@ -2697,19 +2724,19 @@ door_addresses = {'Links House': (0x00, (0x0104, 0x2c, 0x0506, 0x0a9a, 0x0832, 0 'Brewery': (0x47, (0x0106, 0x58, 0x16a8, 0x08e4, 0x013e, 0x0938, 0x01b8, 0x0953, 0x01c3, 0x0a, 0xf6, 0x1AB6, 0x0000)), 'C-Shaped House': (0x53, (0x011c, 0x58, 0x09d8, 0x0744, 0x02ce, 0x0797, 0x0348, 0x07b3, 0x0353, 0x0a, 0xf6, 0x0DE8, 0x0000)), 'Chest Game': (0x46, (0x0106, 0x58, 0x078a, 0x0705, 0x004e, 0x0758, 0x00c8, 0x0774, 0x00d3, 0x09, 0xf7, 0x0B98, 0x0000)), - 'Dark World Hammer Peg Cave': (0x7E, (0x0127, 0x62, 0x0894, 0x091e, 0x0492, 0x09a6, 0x0508, 0x098b, 0x050f, 0x00, 0x00, 0x0000, 0x0000)), + 'Hammer Peg Cave': (0x7E, (0x0127, 0x62, 0x0894, 0x091e, 0x0492, 0x09a6, 0x0508, 0x098b, 0x050f, 0x00, 0x00, 0x0000, 0x0000)), 'Red Shield Shop': (0x74, (0x0110, 0x5a, 0x079a, 0x06e8, 0x04d6, 0x0738, 0x0548, 0x0755, 0x0553, 0x08, 0xf8, 0x0AA8, 0x0000)), 'Dark Sanctuary Hint': (0x59, (0x0112, 0x53, 0x001e, 0x0400, 0x06e2, 0x0446, 0x0758, 0x046d, 0x075f, 0x00, 0x00, 0x0000, 0x0000)), 'Fortune Teller (Dark)': (0x65, (0x0122, 0x51, 0x0610, 0x04b4, 0x027e, 0x0507, 0x02f8, 0x0523, 0x0303, 0x0a, 0xf6, 0x091E, 0x0000)), 'Dark World Shop': (0x5F, (0x010f, 0x58, 0x1058, 0x0814, 0x02be, 0x0868, 0x0338, 0x0883, 0x0343, 0x0a, 0xf6, 0x0000, 0x0000)), - 'Dark World Lumberjack Shop': (0x56, (0x010f, 0x42, 0x041c, 0x0074, 0x04e2, 0x00c7, 0x0558, 0x00e3, 0x055f, 0x0a, 0xf6, 0x0000, 0x0000)), - 'Dark World Potion Shop': (0x6E, (0x010f, 0x56, 0x080e, 0x04f4, 0x0c66, 0x0548, 0x0cd8, 0x0563, 0x0ce3, 0x0a, 0xf6, 0x0000, 0x0000)), + 'Dark Lumberjack Shop': (0x56, (0x010f, 0x42, 0x041c, 0x0074, 0x04e2, 0x00c7, 0x0558, 0x00e3, 0x055f, 0x0a, 0xf6, 0x0000, 0x0000)), + 'Dark Potion Shop': (0x6E, (0x010f, 0x56, 0x080e, 0x04f4, 0x0c66, 0x0548, 0x0cd8, 0x0563, 0x0ce3, 0x0a, 0xf6, 0x0000, 0x0000)), 'Archery Game': (0x58, (0x0111, 0x69, 0x069e, 0x0ac4, 0x02ea, 0x0b18, 0x0368, 0x0b33, 0x036f, 0x0a, 0xf6, 0x09AC, 0x0000)), 'Mire Shed': (0x5E, (0x010d, 0x70, 0x0384, 0x0c69, 0x001e, 0x0cb6, 0x0098, 0x0cd6, 0x00a3, 0x07, 0xf9, 0x0000, 0x0000)), 'Dark Desert Hint': (0x61, (0x0114, 0x70, 0x0654, 0x0cc5, 0x02aa, 0x0d16, 0x0328, 0x0d32, 0x032f, 0x09, 0xf7, 0x0000, 0x0000)), 'Dark Desert Fairy': (0x55, (0x0115, 0x70, 0x03a8, 0x0c6a, 0x013a, 0x0cb7, 0x01b8, 0x0cd7, 0x01bf, 0x06, 0xfa, 0x0000, 0x0000)), 'Spike Cave': (0x40, (0x0117, 0x43, 0x0ed4, 0x01e4, 0x08aa, 0x0236, 0x0928, 0x0253, 0x092f, 0x0a, 0xf6, 0x0000, 0x0000)), - 'Cave Shop (Dark Death Mountain)': (0x6D, (0x0112, 0x45, 0x0ee0, 0x01e3, 0x0d00, 0x0236, 0x0daa, 0x0252, 0x0d7d, 0x0b, 0xf5, 0x0000, 0x0000)), + 'Dark Death Mountain Shop': (0x6D, (0x0112, 0x45, 0x0ee0, 0x01e3, 0x0d00, 0x0236, 0x0daa, 0x0252, 0x0d7d, 0x0b, 0xf5, 0x0000, 0x0000)), 'Dark Death Mountain Fairy': (0x6F, (0x0115, 0x43, 0x1400, 0x0294, 0x0600, 0x02e8, 0x0678, 0x0303, 0x0685, 0x0a, 0xf6, 0x0000, 0x0000)), 'Mimic Cave': (0x4E, (0x010c, 0x05, 0x07e0, 0x0103, 0x0d00, 0x0156, 0x0d78, 0x0172, 0x0d7d, 0x0b, 0xf5, 0x0000, 0x0000)), 'Big Bomb Shop': (0x52, (0x011c, 0x6c, 0x0506, 0x0a9a, 0x0832, 0x0ae7, 0x08b8, 0x0b07, 0x08bf, 0x06, 0xfa, 0x0816, 0x0000)), @@ -2789,7 +2816,7 @@ exit_ids = {'Links House Exit': (0x01, 0x00), 'Bonk Fairy (Light)': 0x71, 'Bonk Fairy (Dark)': 0x71, 'Lake Hylia Healer Fairy': 0x5E, - 'Swamp Healer Fairy': 0x5E, + 'Light Hype Fairy': 0x5E, 'Desert Healer Fairy': 0x5E, 'Dark Lake Hylia Healer Fairy': 0x5E, 'Dark Lake Hylia Ledge Healer Fairy': 0x5E, @@ -2802,8 +2829,8 @@ exit_ids = {'Links House Exit': (0x01, 0x00), 'Chicken House': 0x4B, 'Aginahs Cave': 0x4D, 'Sahasrahlas Hut': 0x45, - 'Cave Shop (Lake Hylia)': 0x58, - 'Cave Shop (Dark Death Mountain)': 0x58, + 'Lake Hylia Shop': 0x58, + 'Dark Death Mountain Shop': 0x58, 'Capacity Upgrade': 0x5D, 'Blacksmiths Hut': 0x64, 'Sick Kids House': 0x40, @@ -2834,15 +2861,15 @@ exit_ids = {'Links House Exit': (0x01, 0x00), 'Big Bomb Shop': 0x53, 'Village of Outcasts Shop': 0x60, 'Dark Lake Hylia Shop': 0x60, - 'Dark World Lumberjack Shop': 0x60, - 'Dark World Potion Shop': 0x60, + 'Dark Lumberjack Shop': 0x60, + 'Dark Potion Shop': 0x60, 'Dark Lake Hylia Ledge Spike Cave': 0x70, 'Dark Lake Hylia Ledge Hint': 0x6A, 'Hype Cave': 0x3D, 'Brewery': 0x48, 'C-Shaped House': 0x54, 'Chest Game': 0x47, - 'Dark World Hammer Peg Cave': 0x83, + 'Hammer Peg Cave': 0x83, 'Red Shield Shop': 0x57, 'Dark Sanctuary Hint': 0x5A, 'Fortune Teller (Dark)': 0x66, @@ -2935,7 +2962,7 @@ ow_prize_table = {'Links House': (0x8b1, 0xb2d), 'Chicken House': (0x120, 0x880), 'Aginahs Cave': (0x2e0, 0xd00), 'Sahasrahlas Hut': (0xcf0, 0x6c0), - 'Cave Shop (Lake Hylia)': (0xbc0, 0xc00), + 'Lake Hylia Shop': (0xbc0, 0xc00), 'Capacity Upgrade': (0xca0, 0xda0), 'Kakariko Well Drop': None, 'Blacksmiths Hut': (0x4a0, 0x880), @@ -2975,19 +3002,19 @@ ow_prize_table = {'Links House': (0x8b1, 0xb2d), 'Hype Cave': (0x940, 0xc80), 'Bonk Fairy (Dark)': (0x740, 0xa80), 'Brewery': (0x170, 0x980), 'C-Shaped House': (0x310, 0x7a0), 'Chest Game': (0x800, 0x7a0), - 'Dark World Hammer Peg Cave': (0x4c0, 0x940), + 'Hammer Peg Cave': (0x4c0, 0x940), 'Red Shield Shop': (0x500, 0x680), 'Dark Sanctuary Hint': (0x720, 0x4a0), 'Fortune Teller (Dark)': (0x2c0, 0x4c0), 'Dark World Shop': (0x2e0, 0x880), - 'Dark World Lumberjack Shop': (0x4e0, 0x0d0), - 'Dark World Potion Shop': (0xc80, 0x4c0), + 'Dark Lumberjack Shop': (0x4e0, 0x0d0), + 'Dark Potion Shop': (0xc80, 0x4c0), 'Archery Game': (0x2f0, 0xaf0), 'Mire Shed': (0x060, 0xc90), 'Dark Desert Hint': (0x2e0, 0xd00), 'Dark Desert Fairy': (0x1c0, 0xc90), 'Spike Cave': (0x860, 0x180), - 'Cave Shop (Dark Death Mountain)': (0xd80, 0x180), + 'Dark Death Mountain Shop': (0xd80, 0x180), 'Dark Death Mountain Fairy': (0x620, 0x2c0), 'Mimic Cave': (0xc80, 0x180), 'Big Bomb Shop': (0x8b1, 0xb2d), diff --git a/ItemList.py b/ItemList.py index c17ce509..f0dd572f 100644 --- a/ItemList.py +++ b/ItemList.py @@ -435,7 +435,7 @@ def generate_itempool(world, player): take_any_locations = [ 'Snitch Lady (East)', 'Snitch Lady (West)', 'Bush Covered House', 'Light World Bomb Hut', 'Fortune Teller (Light)', 'Lake Hylia Fortune Teller', 'Lumberjack House', 'Bonk Fairy (Light)', - 'Bonk Fairy (Dark)', 'Lake Hylia Healer Fairy', 'Swamp Healer Fairy', 'Desert Healer Fairy', + 'Bonk Fairy (Dark)', 'Lake Hylia Healer Fairy', 'Light Hype Fairy', 'Desert Healer Fairy', 'Dark Lake Hylia Healer Fairy', 'Dark Lake Hylia Ledge Healer Fairy', 'Dark Desert Healer Fairy', 'Dark Death Mountain Healer Fairy', 'Long Fairy Cave', 'Good Bee Cave', '20 Rupee Cave', 'Kakariko Gamble Game', '50 Rupee Cave', 'Lost Woods Gamble', 'Hookshot Fairy', @@ -443,7 +443,7 @@ take_any_locations = [ 'Dark Lake Hylia Ledge Spike Cave', 'Fortune Teller (Dark)', 'Dark Sanctuary Hint', 'Dark Desert Hint'] fixed_take_anys = [ - 'Desert Healer Fairy', 'Swamp Healer Fairy', 'Dark Death Mountain Healer Fairy', + 'Desert Healer Fairy', 'Light Hype Fairy', 'Dark Death Mountain Healer Fairy', 'Dark Lake Hylia Ledge Healer Fairy', 'Bonk Fairy (Dark)'] @@ -781,7 +781,7 @@ def balance_prices(world, player): def check_hints(world, player): if world.shuffle[player] in ['simple', 'restricted', 'full', 'crossed', 'insanity']: for shop, location_list in shop_to_location_table.items(): - if shop in ['Capacity Upgrade', 'Light World Death Mountain Shop', 'Potion Shop']: + if shop in ['Capacity Upgrade', 'Paradox Shop', 'Potion Shop']: continue # near the queen, near potions, and near 7 chests are fine for loc_name in location_list: # other shops are indistinguishable in ER world.get_location(loc_name, player).hint_text = f'for sale' diff --git a/OverworldGlitchRules.py b/OverworldGlitchRules.py index 2268246e..ad9203fd 100644 --- a/OverworldGlitchRules.py +++ b/OverworldGlitchRules.py @@ -34,7 +34,7 @@ def get_invalid_mirror_bunny_entrances(): yield 'Hype Cave' yield 'Bonk Fairy (Dark)' yield 'Thieves Town' - yield 'Dark World Hammer Peg Cave' + yield 'Hammer Peg Cave' yield 'Brewery' yield 'Hookshot Cave' yield 'Dark Lake Hylia Ledge Fairy' @@ -135,23 +135,23 @@ def get_boots_clip_exits_lw(inverted = False): """ yield ('Bat Cave River Clip Spot', 'Light World', 'Bat Cave Ledge') - yield ('Light World DMA Clip Spot', 'Light World', 'Death Mountain (West Bottom)') - yield ('Hera Ascent', 'Death Mountain (West Bottom)', 'Death Mountain (Top)') + yield ('Light World DMA Clip Spot', 'Light World', 'West Death Mountain (Bottom)') + yield ('Hera Ascent', 'West Death Mountain (Bottom)', 'West Death Mountain (Top)') yield ('Death Mountain Return Ledge Clip Spot', 'Light World', 'Death Mountain Return Ledge') yield ('Death Mountain Entrance Clip Spot', 'Light World', 'Death Mountain Entrance') - yield ('Death Mountain Glitched Bridge', 'Death Mountain (West Bottom)', 'East Death Mountain (Top)') + yield ('Death Mountain Glitched Bridge', 'West Death Mountain (Bottom)', 'East Death Mountain (Top)') yield ('Zora Descent Clip Spot', 'East Death Mountain (Top)', 'Zoras Domain') yield ('Desert Northern Cliffs', 'Light World', 'Desert Northern Cliffs') yield ('Desert Ledge Dropdown', 'Desert Northern Cliffs', 'Desert Ledge') yield ('Desert Palace Entrance Dropdown', 'Desert Northern Cliffs', 'Desert Palace Entrance (North) Spot') yield ('Lake Hylia Island Clip Spot', 'Light World', 'Lake Hylia Island') - yield ('Death Mountain Descent', 'Death Mountain (West Bottom)', 'Light World') - yield ('Kings Grave Clip Spot', 'Death Mountain (West Bottom)', 'Kings Grave Area') + yield ('Death Mountain Descent', 'West Death Mountain (Bottom)', 'Light World') + yield ('Kings Grave Clip Spot', 'West Death Mountain (Bottom)', 'Kings Grave Area') if not inverted: - yield ('Graveyard Ledge Clip Spot', 'Death Mountain (West Bottom)', 'Graveyard Ledge') + yield ('Graveyard Ledge Clip Spot', 'West Death Mountain (Bottom)', 'Graveyard Ledge') yield ('Desert Ledge (Northeast) Dropdown', 'Desert Northern Cliffs', 'Desert Checkerboard Ledge') - yield ('Spectacle Rock Clip Spot', 'Death Mountain (Top)', 'Spectacle Rock') + yield ('Spectacle Rock Clip Spot', 'West Death Mountain (Top)', 'Spectacle Rock') yield ('Bombos Tablet Clip Spot', 'Light World', 'Bombos Tablet Ledge') yield ('Floating Island Clip Spot', 'East Death Mountain (Top)', 'Death Mountain Floating Island') yield ('Cave 45 Clip Spot', 'Light World', 'Cave 45 Ledge') @@ -162,19 +162,19 @@ def get_boots_clip_exits_dw(inverted): Special Dark World region exits that require boots clips. """ - yield ('Dark World DMA Clip Spot', 'West Dark World', 'Dark Death Mountain (West Bottom)') + yield ('Dark World DMA Clip Spot', 'West Dark World', 'West Dark Death Mountain (Bottom)') yield ('Bumper Cave Ledge Clip Spot', 'West Dark World', 'Bumper Cave Ledge') yield ('Bumper Cave Entrance Clip Spot', 'West Dark World', 'Bumper Cave Entrance') yield ('Catfish Descent', 'Dark Death Mountain (Top)', 'Catfish Area') yield ('Hammer Pegs River Clip Spot', 'East Dark World', 'Hammer Peg Area') yield ('Dark Lake Hylia Ledge Clip Spot', 'East Dark World', 'Southeast Dark World') yield ('Dark Desert Cliffs Clip Spot', 'South Dark World', 'Dark Desert') - yield ('DW Floating Island Clip Spot', 'Dark Death Mountain (East Bottom)', 'Death Mountain Floating Island (Dark World)') + yield ('DW Floating Island Clip Spot', 'East Dark Death Mountain (Bottom)', 'Dark Death Mountain Floating Island') if not inverted: - yield ('Dark Death Mountain Descent', 'Dark Death Mountain (West Bottom)', 'West Dark World') - yield ('Ganons Tower Ascent', 'Dark Death Mountain (West Bottom)', 'Dark Death Mountain (Top)') # This only gets you to the GT entrance - yield ('Dark Death Mountain Glitched Bridge', 'Dark Death Mountain (West Bottom)', 'Dark Death Mountain (Top)') + yield ('Dark Death Mountain Descent', 'West Dark Death Mountain (Bottom)', 'West Dark World') + yield ('Ganons Tower Ascent', 'West Dark Death Mountain (Bottom)', 'Dark Death Mountain (Top)') # This only gets you to the GT entrance + yield ('Dark Death Mountain Glitched Bridge', 'West Dark Death Mountain (Bottom)', 'Dark Death Mountain (Top)') yield ('Turtle Rock (Top) Clip Spot', 'Dark Death Mountain (Top)', 'Turtle Rock (Top)') else: yield ('Dark Desert Teleporter Clip Spot', 'Dark Desert', 'Dark Desert Ledge') @@ -191,8 +191,8 @@ def get_mirror_clip_spots_dw(): """ Out of bounds transitions using the mirror """ - yield ('Dark Death Mountain Bunny Descent Mirror Spot', 'Dark Death Mountain (West Bottom)', 'West Dark World') - yield ('Dark Death Mountain Bunny Mirror To East Jump', 'Dark Death Mountain (West Bottom)', 'Dark Death Mountain (East Bottom)') + yield ('Dark Death Mountain Bunny Descent Mirror Spot', 'West Dark Death Mountain (Bottom)', 'West Dark World') + yield ('Dark Death Mountain Bunny Mirror To East Jump', 'West Dark Death Mountain (Bottom)', 'East Dark Death Mountain (Bottom)') yield ('Desert East Mirror Clip', 'Dark Desert', 'Desert Palace Mouth') @@ -200,15 +200,15 @@ def get_mirror_offset_spots_dw(): """ Mirror shenanigans placing a mirror portal with a broken camera """ - yield ('Dark Death Mountain Offset Mirror', 'Dark Death Mountain (West Bottom)', 'East Dark World') + yield ('Dark Death Mountain Offset Mirror', 'West Dark Death Mountain (Bottom)', 'East Dark World') def get_mirror_offset_spots_lw(player): """ Mirror shenanigans placing a mirror portal with a broken camera """ - yield ('Death Mountain Offset Mirror', 'Death Mountain (West Bottom)', 'Light World') - yield ('Death Mountain Offset Mirror (Houlihan Exit)', 'Death Mountain (West Bottom)', 'Hyrule Castle Ledge', lambda state: state.has_Mirror(player) and state.can_boots_clip_dw(player) and state.has_Pearl(player)) + yield ('Death Mountain Offset Mirror', 'West Death Mountain (Bottom)', 'Light World') + yield ('Death Mountain Offset Mirror (Houlihan Exit)', 'West Death Mountain (Bottom)', 'Hyrule Castle Ledge', lambda state: state.has_Mirror(player) and state.can_boots_clip_dw(player) and state.has_Pearl(player)) def create_owg_connections(world, player): @@ -256,7 +256,7 @@ def overworld_glitches_rules(world, player): world.get_entrance('Dark Desert Teleporter', player).access_rule = lambda state: (state.can_flute(player) or state.can_boots_clip_dw(player)) and state.can_lift_heavy_rocks(player) add_alternate_rule(world.get_entrance('Dark Witch Rock (North)', player), lambda state: state.can_boots_clip_dw(player)) - add_alternate_rule(world.get_entrance('East Dark World Broken Bridge Pass', player), lambda state: state.can_boots_clip_dw(player)) + add_alternate_rule(world.get_entrance('Broken Bridge Pass (Top)', player), lambda state: state.can_boots_clip_dw(player)) add_alternate_rule(world.get_location('Zora\'s Ledge', player), lambda state: state.can_boots_clip_lw(player)) # assumes access to Waterwalk ability diff --git a/PotShuffle.py b/PotShuffle.py index 29a561c9..6a4df35e 100644 --- a/PotShuffle.py +++ b/PotShuffle.py @@ -851,10 +851,10 @@ vanilla_pots = { Pot(100, 22, PotItem.Heart, 'Dark Lake Hylia Ledge Spike Cave', obj=RoomObject(0x0AB62A, [0xCB, 0xB3, 0xFA])), Pot(88, 28, PotItem.Heart, 'Dark Lake Hylia Ledge Spike Cave', obj=RoomObject(0x0AB633, [0xB3, 0xE3, 0xFA])), Pot(100, 28, PotItem.Heart, 'Dark Lake Hylia Ledge Spike Cave', obj=RoomObject(0x0AB636, [0xCB, 0xE3, 0xFA]))], - 0x127: [Pot(24, 25, PotItem.Nothing, 'Dark World Hammer Peg Cave', obj=RoomObject(0x2B801A, [0x33, 0xCB, 0xFA])), - Pot(28, 25, PotItem.Nothing, 'Dark World Hammer Peg Cave', obj=RoomObject(0x2B801D, [0x3B, 0xCB, 0xFA])), - Pot(32, 25, PotItem.Nothing, 'Dark World Hammer Peg Cave', obj=RoomObject(0x2B8020, [0x43, 0xCB, 0xFA])), - Pot(36, 25, PotItem.Nothing, 'Dark World Hammer Peg Cave', obj=RoomObject(0x2B8023, [0x4B, 0xCB, 0xFA]))], + 0x127: [Pot(24, 25, PotItem.Nothing, 'Hammer Peg Cave', obj=RoomObject(0x2B801A, [0x33, 0xCB, 0xFA])), + Pot(28, 25, PotItem.Nothing, 'Hammer Peg Cave', obj=RoomObject(0x2B801D, [0x3B, 0xCB, 0xFA])), + Pot(32, 25, PotItem.Nothing, 'Hammer Peg Cave', obj=RoomObject(0x2B8020, [0x43, 0xCB, 0xFA])), + Pot(36, 25, PotItem.Nothing, 'Hammer Peg Cave', obj=RoomObject(0x2B8023, [0x4B, 0xCB, 0xFA]))], } diff --git a/Regions.py b/Regions.py index b98465ca..52cc2e0c 100644 --- a/Regions.py +++ b/Regions.py @@ -9,132 +9,83 @@ def create_regions(world, player): create_menu_region(player, 'Menu', None, ['Links House S&Q', 'Sanctuary S&Q', 'Old Man S&Q', 'Other World S&Q']), create_menu_region(player, 'Flute Sky', None, ['Flute Spot 1', 'Flute Spot 2', 'Flute Spot 3', 'Flute Spot 4', 'Flute Spot 5', 'Flute Spot 6', 'Flute Spot 7', 'Flute Spot 8']), create_lw_region(player, 'Light World', ['Mushroom', 'Bottle Merchant', 'Flute Spot', 'Sunken Treasure', 'Purple Chest'], - ['Blinds Hideout', 'Hyrule Castle Secret Entrance Drop', 'Kings Grave Outer Rocks', 'Dam', + ['Blinds Hideout', 'Hyrule Castle Secret Entrance Drop', 'Kings Grave Rocks (Outer)', 'Dam', 'Links House', 'Tavern North', 'Chicken House', 'Aginahs Cave', 'Sahasrahlas Hut', 'Kakariko Well Drop', 'Kakariko Well Cave', 'Blacksmiths Hut', 'Bat Cave Ledge Peg', 'Bat Cave Cave', 'Sick Kids House', 'Lost Woods Hideout Drop', 'Lost Woods Hideout Stump', 'Lumberjack Tree Tree', 'Lumberjack Tree Cave', 'Mini Moldorm Cave', 'Ice Rod Cave', 'Bonk Rock Cave', 'Library', 'Two Brothers House (East)', 'Desert Statue Move', 'Eastern Palace', 'Master Sword Meadow', 'Sanctuary', 'Sanctuary Grave', 'Death Mountain Entrance Rock', 'Light World Water Drop', 'LW Flute', 'East Hyrule Teleporter', 'South Hyrule Teleporter', 'Kakariko Teleporter', 'Elder House (East)', 'Elder House (West)', 'North Fairy Cave', 'North Fairy Cave Drop', 'Lost Woods Gamble', 'Snitch Lady (East)', 'Snitch Lady (West)', 'Tavern (Front)', - 'Kakariko Shop', 'Long Fairy Cave', 'Good Bee Cave', '20 Rupee Cave', 'Cave Shop (Lake Hylia)', 'Hyrule Castle Main Gate', - 'Bonk Fairy (Light)', '50 Rupee Cave', 'Fortune Teller (Light)', 'Lake Hylia Fairy', 'Light Hype Fairy', 'Desert Fairy', 'Lumberjack House', 'Lake Hylia Fortune Teller', 'Kakariko Gamble Game', 'Top of Pyramid', + 'Kakariko Shop', 'Long Fairy Cave', 'Good Bee Cave', '20 Rupee Cave', 'Lake Hylia Shop', 'Hyrule Castle Main Gate', + 'Bonk Fairy (Light)', '50 Rupee Cave', 'Fortune Teller (Light)', 'Lake Hylia Fairy', 'Light Hype Fairy', 'Desert Fairy', 'Lumberjack House', 'Lake Hylia Fortune Teller', 'Kakariko Gamble Game', 'Castle Gate Teleporter', 'East Dark World Mirror Spot', 'West Dark World Mirror Spot', 'South Dark World Mirror Spot', 'Cave 45 Approach', 'Checkerboard Ledge Approach', 'Mire Mirror Spot', 'Hammer Peg Area Mirror Spot', 'Shopping Mall Mirror Spot', 'Skull Woods Mirror Spot', 'Kakariko Yard Bush (South)', 'Bombos Tablet Ladder (Bottom)', 'Wooden Bridge Bush (South)', 'Graveyard Ladder (Bottom)', 'Kakariko Southwest Bush (North)']), + create_lw_region(player, 'West Death Mountain (Top)', ['Ether Tablet'], ['DM Hammer Bridge (West)', 'Tower of Hera', 'Death Mountain Drop', 'Spectacle Rock Approach', 'Death Mountain (Top) Mirror Spot']), + create_lw_region(player, 'West Death Mountain (Bottom)', None, ['Old Man Cave (East)', 'Old Man House (Bottom)', 'Old Man House (Top)', 'Death Mountain Return Cave (East)', 'Spectacle Rock Cave', + 'Spectacle Rock Cave Peak', 'Spectacle Rock Cave (Bottom)', 'DM Broken Bridge (West)', 'Death Mountain Mirror Spot', 'DM Flute', 'Death Mountain Teleporter']), + create_lw_region(player, 'Spectacle Rock', ['Spectacle Rock'], ['Spectacle Rock Drop', 'Spectacle Rock Leave']), + create_lw_region(player, 'East Death Mountain (Top)', None, ['Paradox Cave (Top)', 'DM Hammer Bridge (East)', 'Floating Island Bridge (East)', 'Spiral Cave Ledge Access', 'East Death Mountain Drop', 'Turtle Rock Teleporter', 'East Death Mountain Mirror Spot (Top)', 'Fairy Ascension Ledge Access', 'Mimic Cave Ledge Access']), + create_lw_region(player, 'Death Mountain Floating Island', ['Floating Island'], ['Floating Island Bridge (West)', 'Floating Island Mirror Spot']), + create_lw_region(player, 'Spiral Cave Ledge', None, ['Spiral Cave', 'Spiral Cave Ledge Drop', 'Dark Death Mountain Ledge Mirror Spot (West)']), + create_lw_region(player, 'Mimic Cave Ledge', None, ['Mimic Cave', 'Mimic Cave Ledge Drop', 'Dark Death Mountain Ledge Mirror Spot (East)']), + create_lw_region(player, 'Fairy Ascension Ledge', None, ['Fairy Ascension Ledge Drop', 'Fairy Ascension Cave (Top)', 'Laser Bridge Mirror Spot']), + create_lw_region(player, 'East Death Mountain (Bottom)', None, ['DM Broken Bridge (East)', 'Paradox Cave (Bottom)', 'Paradox Cave (Middle)', 'East Death Mountain Mirror Spot (Bottom)', 'East Death Mountain Teleporter', 'Hookshot Fairy', + 'Fairy Ascension Rocks', 'Spiral Cave (Bottom)', 'EDM Flute']), + create_lw_region(player, 'Fairy Ascension Plateau', None, ['Fairy Ascension Drop', 'Fairy Ascension Cave (Bottom)']), + create_lw_region(player, 'Death Mountain Return Ledge', None, ['Death Mountain Return Ledge Drop', 'Death Mountain Return Cave (West)', 'Mountain Exit Ledge Mirror Spot'], 'a ledge in the foothills'), + create_lw_region(player, 'Death Mountain Entrance', None, ['Old Man Cave (West)', 'Death Mountain Entrance Drop', 'Mountain Entrance Mirror Spot']), + create_lw_region(player, 'Northeast Light World', None, ['Zoras Domain', 'Potion Shop Rock (North)', 'Catfish Mirror Spot', 'Northeast Light World Water Drop']), + create_lw_region(player, 'Zora Waterfall Entryway', None, ['Waterfall of Wishing', 'ZLW Flute', 'Zora Waterfall Water Drop']), + create_lw_region(player, 'Graveyard Ledge', None, ['Graveyard Cave', 'Graveyard Ledge Drop', 'Graveyard Ladder (Top)', 'Graveyard Cave Mirror Spot']), + create_lw_region(player, 'Kings Grave Area', None, ['Kings Grave', 'Kings Grave Rocks (Inner)']), + create_lw_region(player, 'Potion Shop Area', None, ['Potion Shop', 'Wooden Bridge Bush (North)', 'Potion Shop Rock (South)', 'NWLW Flute', 'Potion Shop Mirror Spot', 'Potion Shop Water Drop']), create_lw_region(player, 'Bush Covered Lawn', None, ['Bush Covered House', 'Kakariko Yard Bush (North)', 'Bush Covered Lawn Mirror Spot']), create_lw_region(player, 'Bomb Hut Area', None, ['Light World Bomb Hut', 'Kakariko Southwest Bush (South)', 'Bomb Hut Mirror Spot']), - create_lw_region(player, 'Death Mountain Entrance', None, ['Old Man Cave (West)', 'Death Mountain Entrance Drop']), - create_lw_region(player, 'Lake Hylia Central Island', None, ['Capacity Upgrade', 'Lake Hylia Central Island Water Drop', 'Lake Hylia Central Island Teleporter']), - create_cave_region(player, 'Blinds Hideout', 'a bounty of five items', [ - "Blind's Hideout - Left", - "Blind's Hideout - Right", - "Blind's Hideout - Far Left", - "Blind's Hideout - Far Right"], - ['Blinds Hideout N']), - create_cave_region(player, 'Blinds Hideout (Top)', 'a bounty of five items', ["Blind's Hideout - Top"]), - create_lw_region(player, 'Northeast Light World', None, ['Zoras Domain', 'Potion Shop Rock (North)', 'Catfish Mirror Spot', 'Northeast Light World Water Drop']), - create_lw_region(player, 'Potion Shop Area', None, ['Potion Shop', 'Wooden Bridge Bush (North)', 'Potion Shop Rock (South)', 'NWLW Flute', 'Potion Shop Mirror Spot', 'Potion Shop Water Drop']), - create_lw_region(player, 'Lake Hylia Water', None, ['Hobo Pier', 'Light World Pier', 'Potion Shop Pier', 'Lake Hylia Central Island Pier', 'Lake Hylia Island Pier', 'Lake Hylia Whirlpool', 'Waterfall Fairy Access']), - create_cave_region(player, 'Hyrule Castle Secret Entrance', 'a drop\'s exit', ['Link\'s Uncle', 'Secret Passage'], ['Hyrule Castle Secret Entrance Exit']), - create_lw_region(player, 'Zoras Domain', ['King Zora', 'Zora\'s Ledge']), - create_lw_region(player, 'Zora Waterfall Entryway', None, ['Waterfall of Wishing', 'ZLW Flute', 'Zora Waterfall Water Drop']), - create_cave_region(player, 'Waterfall of Wishing', 'a cave with two chests', ['Waterfall Fairy - Left', 'Waterfall Fairy - Right']), - create_lw_region(player, 'Kings Grave Area', None, ['Kings Grave', 'Kings Grave Inner Rocks']), - create_cave_region(player, 'Kings Grave', 'a cave with a chest', ['King\'s Tomb']), - create_cave_region(player, 'North Fairy Cave', 'a drop\'s exit', None, ['North Fairy Cave Exit']), - create_cave_region(player, 'Dam', 'the dam', ['Floodgate', 'Floodgate Chest']), - create_cave_region(player, 'Links House', 'your house', ['Link\'s House'], ['Links House Exit']), - create_cave_region(player, 'Chris Houlihan Room', 'I AM ERROR', None, ['Chris Houlihan Room Exit']), - create_cave_region(player, 'Tavern', 'the tavern', ['Kakariko Tavern']), - create_cave_region(player, 'Elder House', 'a connector', None, ['Elder House Exit (East)', 'Elder House Exit (West)']), - create_cave_region(player, 'Snitch Lady (East)', 'a boring house'), - create_cave_region(player, 'Snitch Lady (West)', 'a boring house'), - create_cave_region(player, 'Bush Covered House', 'the grass man'), - create_cave_region(player, 'Tavern (Front)', 'the tavern'), - create_cave_region(player, 'Light World Bomb Hut', 'a restock room'), - create_cave_region(player, 'Kakariko Shop', 'a common shop', ['Kakariko Shop - Left', 'Kakariko Shop - Middle', 'Kakariko Shop - Right']), - create_cave_region(player, 'Fortune Teller (Light)', 'a fortune teller'), - create_cave_region(player, 'Lake Hylia Fortune Teller', 'a fortune teller'), - create_cave_region(player, 'Lumberjack House', 'a boring house'), - create_cave_region(player, 'Bonk Fairy (Light)', 'a fairy fountain'), - create_cave_region(player, 'Bonk Fairy (Dark)', 'a fairy fountain'), - create_cave_region(player, 'Lake Hylia Healer Fairy', 'a fairy fountain'), - create_cave_region(player, 'Swamp Healer Fairy', 'a fairy fountain'), - create_cave_region(player, 'Desert Healer Fairy', 'a fairy fountain'), - create_cave_region(player, 'Dark Lake Hylia Healer Fairy', 'a fairy fountain'), - create_cave_region(player, 'Dark Lake Hylia Ledge Healer Fairy', 'a fairy fountain'), - create_cave_region(player, 'Dark Desert Healer Fairy', 'a fairy fountain'), - create_cave_region(player, 'Dark Death Mountain Healer Fairy', 'a fairy fountain'), - create_cave_region(player, 'Chicken House', 'a house with a chest', ['Chicken House']), - create_cave_region(player, 'Aginahs Cave', 'a cave with a chest', ['Aginah\'s Cave']), - create_cave_region(player, 'Sahasrahlas Hut', 'Sahasrahla', ['Sahasrahla\'s Hut - Left', 'Sahasrahla\'s Hut - Middle', 'Sahasrahla\'s Hut - Right', 'Sahasrahla']), - create_cave_region(player, 'Kakariko Well (top)', 'a drop', - ['Kakariko Well - Left', 'Kakariko Well - Middle', 'Kakariko Well - Right', - 'Kakariko Well - Bottom'], - ['Kakariko Well (top to bottom)', 'Kakariko Well (top to back)']), - create_cave_region(player, 'Kakariko Well (back)', 'a drop', ['Kakariko Well - Top']), - create_cave_region(player, 'Kakariko Well (bottom)', 'a drop\'s exit', None, ['Kakariko Well Exit']), - create_cave_region(player, 'Blacksmiths Hut', 'the smith', ['Blacksmith', 'Missing Smith']), + create_lw_region(player, 'Hyrule Castle Courtyard', None, ['Hyrule Castle Entrance (South)', 'Inverted Pyramid Entrance', 'Hyrule Castle Courtyard Bush (South)', 'Hyrule Castle Main Gate (North)']), + create_lw_region(player, 'Hyrule Castle Secret Entrance Area', None, ['Hyrule Castle Secret Entrance Stairs', 'Hyrule Castle Courtyard Bush (North)', 'Pyramid Uncle Mirror Spot']), + create_lw_region(player, 'Hyrule Castle Ledge', None, ['Hyrule Castle Entrance (East)', 'Hyrule Castle Entrance (West)', 'Agahnims Tower', 'Hyrule Castle Ledge Courtyard Drop', 'Hyrule Castle Ledge Drop', 'Inverted Pyramid Hole'], 'the castle rampart'), create_lw_region(player, 'Bat Cave Ledge', None, ['Bat Cave Drop', 'Bat Cave Ledge Peg (East)']), - create_cave_region(player, 'Bat Cave (right)', 'a drop', ['Magic Bat'], ['Bat Cave Door']), - create_cave_region(player, 'Bat Cave (left)', 'a drop\'s exit', None, ['Bat Cave Exit']), - create_cave_region(player, 'Sick Kids House', 'the sick kid', ['Sick Kid']), + create_lw_region(player, 'Maze Race Ledge', ['Maze Race'], ['Two Brothers House (West)', 'Maze Race Mirror Spot', 'Maze Race Ledge Drop'], 'a race against time'), + create_lw_region(player, 'Desert Palace Stairs', None, ['Desert Palace Entrance (South)', 'Desert Palace Stairs Mirror Spot']), + create_lw_region(player, 'Desert Palace Mouth', None, ['Desert Palace Mouth Drop', 'Desert Palace Entrance (East)'], 'a sandy vista'), + create_lw_region(player, 'Desert Ledge', ['Desert Ledge'], ['Desert Ledge Rocks (Outer)', 'Desert Palace Entrance (West)', 'Desert Ledge Drop'], 'the desert ledge'), + create_lw_region(player, 'Desert Palace Entrance (North) Spot', None, ['Desert Palace Entrance (North)', 'Desert Ledge Rocks (Inner)', 'Desert Palace North Mirror Spot'], 'the desert ledge'), + create_lw_region(player, 'Desert Checkerboard Ledge', None, ['Checkerboard Cave', 'Checkerboard Ledge Drop', 'Checkerboard Ledge Leave']), + create_lw_region(player, 'Desert Teleporter Ledge', None, ['Desert Teleporter Drop', 'Desert Teleporter']), + create_lw_region(player, 'Bombos Tablet Ledge', ['Bombos Tablet'], ['Bombos Tablet Ladder (Top)']), + create_lw_region(player, 'Desert Northern Cliffs'), + create_lw_region(player, 'Cave 45 Ledge', None, ['Cave 45', 'Cave 45 Ledge Drop', 'Cave 45 Leave']), + create_lw_region(player, 'Lake Hylia Water', None, ['Hobo Pier', 'Light World Pier', 'Potion Shop Pier', 'Lake Hylia Central Island Pier', 'Lake Hylia Island Pier', 'Lake Hylia Whirlpool', 'Waterfall Fairy Access']), + create_lw_region(player, 'Lake Hylia Island', ['Lake Hylia Island']), + create_lw_region(player, 'Lake Hylia Central Island', None, ['Capacity Upgrade', 'Lake Hylia Central Island Water Drop', 'Lake Hylia Teleporter']), + create_lw_region(player, 'Master Sword Meadow', ['Master Sword Pedestal']), create_lw_region(player, 'Hobo Bridge', ['Hobo']), + create_lw_region(player, 'Zoras Domain', ['King Zora', 'Zora\'s Ledge']), + + create_cave_region(player, 'Lost Woods Gamble', 'a game of chance'), create_cave_region(player, 'Lost Woods Hideout (top)', 'a drop\'s exit', ['Lost Woods Hideout'], ['Lost Woods Hideout (top to bottom)']), create_cave_region(player, 'Lost Woods Hideout (bottom)', 'a drop\'s exit', None, ['Lost Woods Hideout Exit']), create_cave_region(player, 'Lumberjack Tree (top)', 'a drop\'s exit', ['Lumberjack Tree'], ['Lumberjack Tree (top to bottom)']), create_cave_region(player, 'Lumberjack Tree (bottom)', 'a drop\'s exit', None, ['Lumberjack Tree Exit']), - create_lw_region(player, 'Cave 45 Ledge', None, ['Cave 45', 'Cave 45 Ledge Drop', 'Cave 45 Leave']), - create_cave_region(player, 'Cave 45', 'a cave with an item', ['Cave 45']), - create_lw_region(player, 'Graveyard Ledge', None, ['Graveyard Cave', 'Graveyard Ledge Drop', 'Graveyard Ladder (Top)', 'Graveyard Cave Mirror Spot']), - create_cave_region(player, 'Graveyard Cave', 'a cave with an item', ['Graveyard Cave']), - create_cave_region(player, 'Checkerboard Cave', 'a cave with an item', ['Checkerboard Cave']), - create_cave_region(player, 'Long Fairy Cave', 'a fairy fountain'), - create_cave_region(player, 'Mini Moldorm Cave', 'a bounty of five items', ['Mini Moldorm Cave - Far Left', 'Mini Moldorm Cave - Left', 'Mini Moldorm Cave - Right', - 'Mini Moldorm Cave - Far Right', 'Mini Moldorm Cave - Generous Guy']), - create_cave_region(player, 'Ice Rod Cave', 'a cave with a chest', ['Ice Rod Cave']), - create_cave_region(player, 'Good Bee Cave', 'a cold bee'), - create_cave_region(player, '20 Rupee Cave', 'a cave with some cash'), - create_cave_region(player, 'Cave Shop (Lake Hylia)', 'a common shop', ['Lake Hylia Shop - Left', 'Lake Hylia Shop - Middle', 'Lake Hylia Shop - Right']), - create_cave_region(player, 'Cave Shop (Dark Death Mountain)', 'a common shop', ['Dark Death Mountain Shop - Left', 'Dark Death Mountain Shop - Middle', 'Dark Death Mountain Shop - Right']), - create_cave_region(player, 'Bonk Rock Cave', 'a cave with a chest', ['Bonk Rock Cave']), - create_cave_region(player, 'Library', 'the library', ['Library']), - create_cave_region(player, 'Kakariko Gamble Game', 'a game of chance'), - create_cave_region(player, 'Potion Shop', 'the potion shop', ['Potion Shop', 'Potion Shop - Left', 'Potion Shop - Middle', 'Potion Shop - Right']), - create_lw_region(player, 'Lake Hylia Island', ['Lake Hylia Island']), - create_cave_region(player, 'Capacity Upgrade', 'the queen of fairies', ['Capacity Upgrade - Left', 'Capacity Upgrade - Right']), - create_cave_region(player, 'Two Brothers House', 'a connector', None, ['Two Brothers House Exit (East)', 'Two Brothers House Exit (West)']), - create_lw_region(player, 'Maze Race Ledge', ['Maze Race'], ['Two Brothers House (West)', 'Maze Race Mirror Spot', 'Maze Race Ledge Drop'], 'a race against time'), - create_cave_region(player, '50 Rupee Cave', 'a cave with some cash'), - create_lw_region(player, 'Desert Ledge', ['Desert Ledge'], ['Desert Palace Entrance (North) Rocks', 'Desert Palace Entrance (West)', 'Desert Ledge Drop'], 'the desert ledge'), - create_lw_region(player, 'Desert Checkerboard Ledge', None, ['Checkerboard Cave', 'Checkerboard Ledge Drop', 'Checkerboard Ledge Leave']), - create_lw_region(player, 'Desert Palace Stairs', None, ['Desert Palace Entrance (South)', 'Desert Palace Stairs Mirror Spot']), - create_lw_region(player, 'Desert Palace Mouth', None, ['Desert Palace Stairs Drop', 'Desert Palace Entrance (East)'], 'a sandy vista'), - create_lw_region(player, 'Desert Palace Entrance (North) Spot', None, ['Desert Palace Entrance (North)', 'Desert Ledge Return Rocks', 'Desert Palace North Mirror Spot'], 'the desert ledge'), - create_lw_region(player, 'Desert Teleporter Ledge', None, ['Desert Teleporter Drop', 'Desert Teleporter']), - create_lw_region(player, 'Master Sword Meadow', ['Master Sword Pedestal']), - create_cave_region(player, 'Lost Woods Gamble', 'a game of chance'), - create_lw_region(player, 'Hyrule Castle Courtyard', None, ['Hyrule Castle Entrance (South)', 'Inverted Pyramid Entrance', 'Hyrule Castle Courtyard Bush (South)', 'Hyrule Castle Main Gate (North)']), - create_lw_region(player, 'Hyrule Castle Ledge', None, ['Hyrule Castle Entrance (East)', 'Hyrule Castle Entrance (West)', 'Agahnims Tower', 'Hyrule Castle Ledge Courtyard Drop', 'Hyrule Castle Ledge Drop', 'Inverted Pyramid Hole'], 'the castle rampart'), - create_lw_region(player, 'Hyrule Castle Secret Entrance Area', None, ['Hyrule Castle Secret Entrance Stairs', 'Hyrule Castle Courtyard Bush (North)', 'Pyramid Uncle Mirror Spot']), - create_dungeon_region(player, 'Sewer Drop', 'a drop\'s exit', None, ['Sewer Drop']), # This exists only to be referenced for access checks - + create_cave_region(player, 'Lumberjack House', 'a boring house'), create_cave_region(player, 'Old Man Cave', 'a connector', ['Old Man'], ['Old Man Cave Exit (East)']), create_cave_region(player, 'Old Man Cave Ledge', 'a connector', None, ['Old Man Cave Exit (West)', 'Old Man Cave Dropdown']), create_cave_region(player, 'Old Man House', 'a connector', None, ['Old Man House Exit (Bottom)', 'Old Man House Front to Back']), create_cave_region(player, 'Old Man House Back', 'a connector', None, ['Old Man House Exit (Top)', 'Old Man House Back to Front']), - create_lw_region(player, 'Death Mountain (West Bottom)', None, ['Old Man Cave (East)', 'Old Man House (Bottom)', 'Old Man House (Top)', 'Death Mountain Return Cave (East)', 'Spectacle Rock Cave', - 'Spectacle Rock Cave Peak', 'Spectacle Rock Cave (Bottom)', 'DM Broken Bridge (West)', 'Death Mountain Mirror Spot', 'DM Flute', 'Death Mountain Teleporter']), create_cave_region(player, 'Death Mountain Return Cave (left)', 'a connector', None, ['Death Mountain Return Cave Exit (West)', 'Death Mountain Return Cave E']), create_cave_region(player, 'Death Mountain Return Cave (right)', 'a connector', None, ['Death Mountain Return Cave Exit (East)', 'Death Mountain Return Cave W']), - create_lw_region(player, 'Death Mountain Return Ledge', None, ['Death Mountain Return Ledge Drop', 'Death Mountain Return Cave (West)', 'Mountain Exit Ledge Mirror Spot'], 'a ledge in the foothills'), create_cave_region(player, 'Spectacle Rock Cave (Top)', 'a connector', ['Spectacle Rock Cave'], ['Spectacle Rock Cave Drop', 'Spectacle Rock Cave Exit (Top)']), create_cave_region(player, 'Spectacle Rock Cave (Bottom)', 'a connector', None, ['Spectacle Rock Cave Exit']), create_cave_region(player, 'Spectacle Rock Cave (Peak)', 'a connector', None, ['Spectacle Rock Cave Peak Drop', 'Spectacle Rock Cave Exit (Peak)']), - create_lw_region(player, 'East Death Mountain (Bottom)', None, ['DM Broken Bridge (East)', 'Paradox Cave (Bottom)', 'Paradox Cave (Middle)', 'East Death Mountain Mirror Spot (Bottom)', 'East Death Mountain Teleporter', 'Hookshot Fairy', - 'Fairy Ascension Rocks', 'Spiral Cave (Bottom)', 'EDM Flute']), + create_cave_region(player, 'Spiral Cave (Top)', 'a connector', ['Spiral Cave'], ['Spiral Cave (top to bottom)', 'Spiral Cave Exit (Top)']), + create_cave_region(player, 'Spiral Cave (Bottom)', 'a connector', None, ['Spiral Cave Exit']), + create_cave_region(player, 'Mimic Cave', 'Mimic Cave', ['Mimic Cave']), + create_cave_region(player, 'Fairy Ascension Cave (Bottom)', 'a connector', None, ['Fairy Ascension Cave Climb', 'Fairy Ascension Cave Exit (Bottom)']), + create_cave_region(player, 'Fairy Ascension Cave (Drop)', 'a connector', None, ['Fairy Ascension Cave Pots']), + create_cave_region(player, 'Fairy Ascension Cave (Top)', 'a connector', None, ['Fairy Ascension Cave Exit (Top)', 'Fairy Ascension Cave Drop']), create_cave_region(player, 'Hookshot Fairy', 'fairies deep in a cave'), - create_cave_region(player, 'Paradox Cave Front', 'a connector', None, ['Paradox Cave Push Block Reverse', 'Paradox Cave Exit (Bottom)', 'Light World Death Mountain Shop']), + create_cave_region(player, 'Paradox Cave Front', 'a connector', None, ['Paradox Cave Push Block Reverse', 'Paradox Cave Exit (Bottom)', 'Paradox Shop']), create_cave_region(player, 'Paradox Cave Chest Area', 'a connector', ['Paradox Cave Lower - Far Left', 'Paradox Cave Lower - Left', 'Paradox Cave Lower - Right', @@ -144,93 +95,141 @@ def create_regions(world, player): create_cave_region(player, 'Paradox Cave Bomb Area', 'a connector', ['Paradox Cave Upper - Left', 'Paradox Cave Upper - Right']), create_cave_region(player, 'Paradox Cave', 'a connector', None, ['Paradox Cave Exit (Middle)', 'Paradox Cave Exit (Top)', 'Paradox Cave Drop']), - create_cave_region(player, 'Light World Death Mountain Shop', 'a common shop', ['Paradox Shop - Left', 'Paradox Shop - Middle', 'Paradox Shop - Right']), - create_lw_region(player, 'East Death Mountain (Top)', None, ['Paradox Cave (Top)', 'DM Hammer Bridge (East)', 'Floating Island Bridge (East)', 'Spiral Cave Ledge Access', 'East Death Mountain Drop', 'Turtle Rock Teleporter', 'East Death Mountain Mirror Spot (Top)', 'Fairy Ascension Ledge Access', 'Mimic Cave Ledge Access']), - create_lw_region(player, 'Spiral Cave Ledge', None, ['Spiral Cave', 'Spiral Cave Ledge Drop', 'Dark Death Mountain Ledge Mirror Spot (West)']), - create_cave_region(player, 'Spiral Cave (Top)', 'a connector', ['Spiral Cave'], ['Spiral Cave (top to bottom)', 'Spiral Cave Exit (Top)']), - create_cave_region(player, 'Spiral Cave (Bottom)', 'a connector', None, ['Spiral Cave Exit']), - create_lw_region(player, 'Fairy Ascension Plateau', None, ['Fairy Ascension Drop', 'Fairy Ascension Cave (Bottom)']), - create_cave_region(player, 'Fairy Ascension Cave (Bottom)', 'a connector', None, ['Fairy Ascension Cave Climb', 'Fairy Ascension Cave Exit (Bottom)']), - create_cave_region(player, 'Fairy Ascension Cave (Drop)', 'a connector', None, ['Fairy Ascension Cave Pots']), - create_cave_region(player, 'Fairy Ascension Cave (Top)', 'a connector', None, ['Fairy Ascension Cave Exit (Top)', 'Fairy Ascension Cave Drop']), - create_lw_region(player, 'Fairy Ascension Ledge', None, ['Fairy Ascension Ledge Drop', 'Fairy Ascension Cave (Top)', 'Laser Bridge Mirror Spot']), - create_lw_region(player, 'Death Mountain (Top)', ['Ether Tablet'], ['DM Hammer Bridge (West)', 'Tower of Hera', 'Death Mountain Drop', 'Spectacle Rock Approach', 'Death Mountain (Top) Mirror Spot']), - create_lw_region(player, 'Spectacle Rock', ['Spectacle Rock'], ['Spectacle Rock Drop', 'Spectacle Rock Leave']), + create_cave_region(player, 'Paradox Shop', 'a common shop', ['Paradox Shop - Left', 'Paradox Shop - Middle', 'Paradox Shop - Right']), + create_cave_region(player, 'Waterfall of Wishing', 'a cave with two chests', ['Waterfall Fairy - Left', 'Waterfall Fairy - Right']), + create_cave_region(player, 'Fortune Teller (Light)', 'a fortune teller'), + create_cave_region(player, 'Bonk Rock Cave', 'a cave with a chest', ['Bonk Rock Cave']), + create_dungeon_region(player, 'Sewer Drop', 'a drop\'s exit', None, ['Sewer Drop']), # This exists only to be referenced for access checks + create_cave_region(player, 'Graveyard Cave', 'a cave with an item', ['Graveyard Cave']), + create_cave_region(player, 'Kings Grave', 'a cave with a chest', ['King\'s Tomb']), + create_cave_region(player, 'North Fairy Cave', 'a drop\'s exit', None, ['North Fairy Cave Exit']), + create_cave_region(player, 'Potion Shop', 'the potion shop', ['Potion Shop', 'Potion Shop - Left', 'Potion Shop - Middle', 'Potion Shop - Right']), + create_cave_region(player, 'Kakariko Well (top)', 'a drop', + ['Kakariko Well - Left', 'Kakariko Well - Middle', 'Kakariko Well - Right', + 'Kakariko Well - Bottom'], + ['Kakariko Well (top to bottom)', 'Kakariko Well (top to back)']), + create_cave_region(player, 'Kakariko Well (back)', 'a drop', ['Kakariko Well - Top']), + create_cave_region(player, 'Kakariko Well (bottom)', 'a drop\'s exit', None, ['Kakariko Well Exit']), + create_cave_region(player, 'Blinds Hideout', 'a bounty of five items', [ + "Blind's Hideout - Left", + "Blind's Hideout - Right", + "Blind's Hideout - Far Left", + "Blind's Hideout - Far Right"], + ['Blinds Hideout N']), + create_cave_region(player, 'Blinds Hideout (Top)', 'a bounty of five items', ["Blind's Hideout - Top"]), + create_cave_region(player, 'Elder House', 'a connector', None, ['Elder House Exit (East)', 'Elder House Exit (West)']), + create_cave_region(player, 'Snitch Lady (East)', 'a boring house'), + create_cave_region(player, 'Snitch Lady (West)', 'a boring house'), + create_cave_region(player, 'Chicken House', 'a house with a chest', ['Chicken House']), + create_cave_region(player, 'Sick Kids House', 'the sick kid', ['Sick Kid']), + create_cave_region(player, 'Bush Covered House', 'the grass man'), + create_cave_region(player, 'Light World Bomb Hut', 'a restock room'), + create_cave_region(player, 'Kakariko Shop', 'a common shop', ['Kakariko Shop - Left', 'Kakariko Shop - Middle', 'Kakariko Shop - Right']), + create_cave_region(player, 'Tavern', 'the tavern', ['Kakariko Tavern']), + create_cave_region(player, 'Tavern (Front)', 'the tavern'), + create_cave_region(player, 'Hyrule Castle Secret Entrance', 'a drop\'s exit', ['Link\'s Uncle', 'Secret Passage'], ['Hyrule Castle Secret Entrance Exit']), + create_cave_region(player, 'Sahasrahlas Hut', 'Sahasrahla', ['Sahasrahla\'s Hut - Left', 'Sahasrahla\'s Hut - Middle', 'Sahasrahla\'s Hut - Right', 'Sahasrahla']), + create_cave_region(player, 'Blacksmiths Hut', 'the smith', ['Blacksmith', 'Missing Smith']), + create_cave_region(player, 'Bat Cave (right)', 'a drop', ['Magic Bat'], ['Bat Cave Door']), + create_cave_region(player, 'Bat Cave (left)', 'a drop\'s exit', None, ['Bat Cave Exit']), + create_cave_region(player, 'Two Brothers House', 'a connector', None, ['Two Brothers House Exit (East)', 'Two Brothers House Exit (West)']), + create_cave_region(player, 'Library', 'the library', ['Library']), + create_cave_region(player, 'Kakariko Gamble Game', 'a game of chance'), + create_cave_region(player, 'Bonk Fairy (Light)', 'a fairy fountain'), + create_cave_region(player, 'Links House', 'your house', ['Link\'s House'], ['Links House Exit']), + create_cave_region(player, 'Chris Houlihan Room', 'I AM ERROR', None, ['Chris Houlihan Room Exit']), + create_cave_region(player, 'Lake Hylia Healer Fairy', 'a fairy fountain'), + create_cave_region(player, 'Long Fairy Cave', 'a fairy fountain'), + create_cave_region(player, 'Checkerboard Cave', 'a cave with an item', ['Checkerboard Cave']), + create_cave_region(player, 'Aginahs Cave', 'a cave with a chest', ['Aginah\'s Cave']), + create_cave_region(player, 'Cave 45', 'a cave with an item', ['Cave 45']), + create_cave_region(player, 'Light Hype Fairy', 'a fairy fountain'), + create_cave_region(player, 'Lake Hylia Fortune Teller', 'a fortune teller'), + create_cave_region(player, 'Lake Hylia Shop', 'a common shop', ['Lake Hylia Shop - Left', 'Lake Hylia Shop - Middle', 'Lake Hylia Shop - Right']), + create_cave_region(player, 'Capacity Upgrade', 'the queen of fairies', ['Capacity Upgrade - Left', 'Capacity Upgrade - Right']), + create_cave_region(player, 'Mini Moldorm Cave', 'a bounty of five items', ['Mini Moldorm Cave - Far Left', 'Mini Moldorm Cave - Left', 'Mini Moldorm Cave - Right', + 'Mini Moldorm Cave - Far Right', 'Mini Moldorm Cave - Generous Guy']), + create_cave_region(player, 'Ice Rod Cave', 'a cave with a chest', ['Ice Rod Cave']), + create_cave_region(player, 'Good Bee Cave', 'a cold bee'), + create_cave_region(player, '20 Rupee Cave', 'a cave with some cash'), + create_cave_region(player, 'Desert Healer Fairy', 'a fairy fountain'), + create_cave_region(player, '50 Rupee Cave', 'a cave with some cash'), + create_cave_region(player, 'Dam', 'the dam', ['Floodgate', 'Floodgate Chest']), - create_dw_region(player, 'East Dark World', ['Pyramid'], ['Pyramid Fairy', 'Hammer Bridge Pegs (North)', 'Palace of Darkness', 'East Dark World Water Drop', - 'Hyrule Castle Ledge Mirror Spot', 'Dark Lake Hylia Fairy', 'Palace of Darkness Hint', 'East Dark World Hint', 'Pyramid Hole', 'Northeast Dark World Broken Bridge Pass', 'East Dark World Teleporter', 'EDW Flute']), - create_dw_region(player, 'Catfish Area', ['Catfish'], ['Dark Witch Rock (North)', 'Catfish Water Drop']), - create_dw_region(player, 'Northeast Dark World', None, ['West Dark World Gap', 'Dark World Potion Shop', 'East Dark World Broken Bridge Pass', 'Northeast Dark World Water Drop', 'Dark Witch Rock (South)', 'NEDW Flute']), - create_cave_region(player, 'Palace of Darkness Hint', 'a storyteller'), - create_cave_region(player, 'East Dark World Hint', 'a storyteller'), - create_dw_region(player, 'South Dark World', ['Stumpy', 'Digging Game'], ['Hype Cave', 'Swamp Palace', 'Village of Outcasts Heavy Rock', 'Dig Game Mirror Spot', - 'Cave 45 Mirror Spot', 'Hammer Bridge Pegs (South)', 'Big Bomb Shop', 'Archery Game', 'Bonk Fairy (Dark)', 'Dark Lake Hylia Shop', - 'Bombos Tablet Mirror Spot', 'South Dark World Water Drop', 'South Dark World Teleporter', 'Post Aga Teleporter', 'SDW Flute']), - create_lw_region(player, 'Bombos Tablet Ledge', ['Bombos Tablet'], ['Bombos Tablet Ladder (Top)']), - create_cave_region(player, 'Big Bomb Shop', 'the bomb shop'), - create_cave_region(player, 'Archery Game', 'a game of skill'), - create_dw_region(player, 'Dark Lake Hylia Water', None, ['Lake Hylia Island Mirror Spot', 'Northeast Dark World River Pier', 'East Dark World Pier', 'Southeast Dark World Pier', 'Ice Palace Approach']), - create_dw_region(player, 'Dark Lake Hylia Central Island', None, ['Ice Palace Leave Water Drop', 'Ice Island To East Pier', 'Ice Palace', 'Lake Hylia Central Island Mirror Spot', 'Dark Lake Hylia Central Island Teleporter']), - create_dw_region(player, 'Southeast Dark World', None, ['Southeast Dark World Water Drop', 'Dark Lake Hylia Ledge Fairy', 'Dark Lake Hylia Ledge Hint', 'Dark Lake Hylia Ledge Spike Cave', 'DLHL Flute']), - create_cave_region(player, 'Dark Lake Hylia Ledge Hint', 'a storyteller'), - create_cave_region(player, 'Dark Lake Hylia Ledge Spike Cave', 'a spiky hint'), - create_cave_region(player, 'Hype Cave', 'a bounty of five items', ['Hype Cave - Top', 'Hype Cave - Middle Right', 'Hype Cave - Middle Left', - 'Hype Cave - Bottom', 'Hype Cave - Generous Guy']), + create_dw_region(player, 'West Dark Death Mountain (Bottom)', None, ['Spike Cave', 'Spectacle Rock Mirror Spot', 'Dark Death Mountain Fairy', 'Dark Death Mountain Ladder (Bottom)', 'Dark Death Mountain Teleporter (West)', 'DDM Flute']), + create_dw_region(player, 'Dark Death Mountain (Top)', None, ['Dark Death Mountain Drop (East)', 'Dark Death Mountain Drop (West)', 'Ganons Tower', 'Superbunny Cave (Top)', + 'Hookshot Cave', 'East Death Mountain (Top) Mirror Spot', 'Dark Death Mountain Ladder (Top)', 'Turtle Rock Tail Drop', 'Turtle Rock']), + create_dw_region(player, 'Dark Death Mountain Floating Island', None, ['Floating Island Drop', 'Hookshot Cave Back Entrance', 'Dark Floating Island Mirror Spot'], 'a dark island'), + create_dw_region(player, 'Dark Death Mountain Ledge', None, ['Dark Death Mountain Ledge (East)', 'Dark Death Mountain Ledge (West)', 'Mimic Cave Mirror Spot', 'Spiral Cave Mirror Spot'], 'a dark ledge'), + create_dw_region(player, 'Dark Death Mountain Isolated Ledge', None, ['Isolated Ledge Mirror Spot', 'Turtle Rock Isolated Ledge Entrance'], 'a dark vista'), + create_dw_region(player, 'East Dark Death Mountain (Bottom)', None, ['Superbunny Cave (Bottom)', 'Dark Death Mountain Shop', 'Fairy Ascension Mirror Spot', 'East Dark Death Mountain Teleporter (Bottom)', 'EDDM Flute']), + create_dw_region(player, 'Turtle Rock (Top)', None, ['East Dark Death Mountain Teleporter (Top)', 'Turtle Rock Drop']), create_dw_region(player, 'West Dark World', ['Frog'], ['Village of Outcasts Drop', 'West Dark World Water Drop', 'Brewery', 'C-Shaped House', 'Chest Game', 'Thieves Town', 'Graveyard Ledge Mirror Spot', 'Kings Grave Mirror Spot', 'Bumper Cave Entrance Rock', - 'Skull Woods Forest', 'Village of Outcasts Pegs', 'Village of Outcasts Eastern Rocks', 'Red Shield Shop', 'Dark Sanctuary Hint', 'Fortune Teller (Dark)', 'Dark World Lumberjack Shop', + 'Skull Woods Forest', 'Grassy Lawn Pegs (Bottom)', 'Peg Area Rocks (Left)', 'Red Shield Shop', 'Dark Sanctuary Hint', 'Fortune Teller (Dark)', 'Dark Lumberjack Shop', 'West Dark World Teleporter', 'WDW Flute']), - create_dw_region(player, 'Dark Grassy Lawn', None, ['Grassy Lawn Pegs', 'Dark World Shop', 'Dark Grassy Lawn Mirror Spot', 'Dark Grassy Lawn Flute']), - create_dw_region(player, 'Hammer Peg Area', ['Dark Blacksmith Ruins'], ['Bat Cave Drop Ledge Mirror Spot', 'Dark World Hammer Peg Cave', 'Peg Area Rocks', 'Hammer Peg Area Flute']), - create_dw_region(player, 'Bumper Cave Entrance', None, ['Bumper Cave (Bottom)', 'Bumper Cave Entrance Mirror Spot', 'Bumper Cave Entrance Drop']), - create_cave_region(player, 'Fortune Teller (Dark)', 'a fortune teller'), - create_cave_region(player, 'Village of Outcasts Shop', 'a common shop', ['Village of Outcasts Shop - Left', 'Village of Outcasts Shop - Middle', 'Village of Outcasts Shop - Right']), - create_cave_region(player, 'Dark Lake Hylia Shop', 'a common shop', ['Dark Lake Hylia Shop - Left', 'Dark Lake Hylia Shop - Middle', 'Dark Lake Hylia Shop - Right']), - create_cave_region(player, 'Dark World Lumberjack Shop', 'a common shop', ['Dark Lumberjack Shop - Left', 'Dark Lumberjack Shop - Middle', 'Dark Lumberjack Shop - Right']), - create_cave_region(player, 'Dark World Potion Shop', 'a common shop', ['Dark Potion Shop - Left', 'Dark Potion Shop - Middle', 'Dark Potion Shop - Right']), - create_cave_region(player, 'Dark World Hammer Peg Cave', 'a cave with an item', ['Peg Cave']), - create_cave_region(player, 'Pyramid Fairy', 'a cave with two chests', ['Pyramid Fairy - Left', 'Pyramid Fairy - Right']), - create_cave_region(player, 'Brewery', 'a house with a chest', ['Brewery']), - create_cave_region(player, 'C-Shaped House', 'a house with a chest', ['C-Shaped House']), - create_cave_region(player, 'Chest Game', 'a game of 16 chests', ['Chest Game']), - create_cave_region(player, 'Red Shield Shop', 'the rare shop', ['Red Shield Shop - Left', 'Red Shield Shop - Middle', 'Red Shield Shop - Right']), - create_cave_region(player, 'Dark Sanctuary Hint', 'a storyteller', None, ['Dark Sanctuary Hint Exit']), - create_cave_region(player, 'Bumper Cave (bottom)', 'a connector', None, ['Bumper Cave Exit (Bottom)', 'Bumper Cave Bottom to Top']), - create_cave_region(player, 'Bumper Cave (top)', 'a connector', None, ['Bumper Cave Exit (Top)', 'Bumper Cave Top To Bottom']), - create_dw_region(player, 'Bumper Cave Ledge', ['Bumper Cave Ledge'], ['Bumper Cave Ledge Drop', 'Bumper Cave (Top)', 'Bumper Cave Ledge Mirror Spot'], 'a ledge with an item'), create_dw_region(player, 'Skull Woods Forest', None, ['Skull Woods First Section Hole (East)', 'Skull Woods First Section Hole (West)', 'Skull Woods First Section Hole (North)', 'Skull Woods First Section Door', 'Skull Woods Second Section Door (East)']), create_dw_region(player, 'Skull Woods Forest (West)', None, ['Skull Woods Second Section Hole', 'Skull Woods Second Section Door (West)', 'Skull Woods Final Section'], 'a deep, dark forest'), - create_dw_region(player, 'Dark Desert', None, ['Misery Mire', 'Mire Shed', 'Dark Desert Hint', 'Dark Desert Fairy', 'Desert Ledge (Northeast) Mirror Spot', 'Desert Ledge Mirror Spot', 'Mire To Desert Palace Stairs Mirror Spot', - 'Desert Palace Entrance (North) Mirror Spot', 'DD Flute']), + create_dw_region(player, 'Bumper Cave Ledge', ['Bumper Cave Ledge'], ['Bumper Cave Ledge Drop', 'Bumper Cave (Top)', 'Bumper Cave Ledge Mirror Spot'], 'a ledge with an item'), + create_dw_region(player, 'Bumper Cave Entrance', None, ['Bumper Cave (Bottom)', 'Bumper Cave Entrance Mirror Spot', 'Bumper Cave Entrance Drop']), + create_dw_region(player, 'Dark Grassy Lawn', None, ['Grassy Lawn Pegs (Top)', 'Dark World Shop', 'Dark Grassy Lawn Mirror Spot', 'Dark Grassy Lawn Flute']), + create_dw_region(player, 'Hammer Peg Area', ['Dark Blacksmith Ruins'], ['Bat Cave Drop Ledge Mirror Spot', 'Hammer Peg Cave', 'Peg Area Rocks (Right)', 'Hammer Peg Area Flute']), + create_dw_region(player, 'Northeast Dark World', None, ['West Dark World Gap', 'Dark Potion Shop', 'Broken Bridge Pass (Top)', 'Northeast Dark World Water Drop', 'Dark Witch Rock (South)', 'NEDW Flute']), + create_dw_region(player, 'Catfish Area', ['Catfish'], ['Dark Witch Rock (North)', 'Catfish Water Drop']), + create_dw_region(player, 'East Dark World', ['Pyramid'], ['Pyramid Fairy', 'Hammer Bridge Pegs (North)', 'Palace of Darkness', 'East Dark World Water Drop', + 'Hyrule Castle Ledge Mirror Spot', 'Dark Lake Hylia Fairy', 'Palace of Darkness Hint', 'East Dark World Hint', 'Pyramid Hole', 'Broken Bridge Pass (Bottom)', 'East Dark World Teleporter', 'EDW Flute']), + create_dw_region(player, 'Pyramid Exit Ledge', None, ['Pyramid Entrance', 'Pyramid Drop']), + create_dw_region(player, 'Dark Desert', None, ['Misery Mire', 'Mire Shed', 'Dark Desert Hint', 'Dark Desert Fairy', 'Checkerboard Ledge Mirror Spot', 'Desert Ledge Mirror Spot', 'Mire To Desert Stairs Mirror Spot', + 'Desert Ledge Rocks Mirror Spot', 'DD Flute']), create_dw_region(player, 'Dark Desert Ledge', None, ['Dark Desert Drop', 'Dark Desert Teleporter']), - create_cave_region(player, 'Mire Shed', 'a cave with two chests', ['Mire Shed - Left', 'Mire Shed - Right']), - create_cave_region(player, 'Dark Desert Hint', 'a storyteller'), - create_dw_region(player, 'Dark Death Mountain (West Bottom)', None, ['Spike Cave', 'Spectacle Rock Mirror Spot', 'Dark Death Mountain Fairy', 'Dark Death Mountain Ladder (Bottom)', 'Dark Death Mountain Teleporter (West)', 'DDM Flute']), - create_dw_region(player, 'Dark Death Mountain (Top)', None, ['Dark Death Mountain Drop (East)', 'Dark Death Mountain Drop (West)', 'Ganons Tower', 'Superbunny Cave (Top)', - 'Hookshot Cave', 'East Death Mountain (Top) Mirror Spot', 'Dark Death Mountain Ladder (Top)', 'Turtle Rock Tail Drop', 'Turtle Rock']), - create_dw_region(player, 'Dark Death Mountain Ledge', None, ['Dark Death Mountain Ledge (East)', 'Dark Death Mountain Ledge (West)', 'Mimic Cave Mirror Spot', 'Spiral Cave Mirror Spot'], 'a dark ledge'), - create_dw_region(player, 'Dark Death Mountain Isolated Ledge', None, ['Isolated Ledge Mirror Spot', 'Turtle Rock Isolated Ledge Entrance'], 'a dark vista'), - create_dw_region(player, 'Dark Death Mountain (East Bottom)', None, ['Superbunny Cave (Bottom)', 'Cave Shop (Dark Death Mountain)', 'Fairy Ascension Mirror Spot', 'Dark Death Mountain Teleporter (East Bottom)', 'EDDM Flute']), - create_cave_region(player, 'Superbunny Cave (Top)', 'a connector', ['Superbunny Cave - Top', 'Superbunny Cave - Bottom'], ['Superbunny Cave Exit (Top)']), - create_cave_region(player, 'Superbunny Cave (Bottom)', 'a connector', None, ['Superbunny Cave Climb', 'Superbunny Cave Exit (Bottom)']), + create_dw_region(player, 'South Dark World', ['Stumpy', 'Digging Game'], ['Hype Cave', 'Swamp Palace', 'Village of Outcasts Heavy Rock', 'Dig Game Mirror Spot', + 'Cave 45 Mirror Spot', 'Hammer Bridge Pegs (South)', 'Big Bomb Shop', 'Archery Game', 'Bonk Fairy (Dark)', 'Dark Lake Hylia Shop', + 'Bombos Tablet Mirror Spot', 'South Dark World Water Drop', 'South Dark World Teleporter', 'Post Aga Teleporter', 'SDW Flute']), + create_dw_region(player, 'Dark Lake Hylia Water', None, ['Lake Hylia Island Mirror Spot', 'Northeast Dark World River Pier', 'East Dark World Pier', 'Southeast Dark World Pier', 'Ice Palace Approach']), + create_dw_region(player, 'Dark Lake Hylia Central Island', None, ['Ice Palace Leave Water Drop', 'Ice Island To East Pier', 'Ice Palace', 'Lake Hylia Central Island Mirror Spot', 'Dark Lake Hylia Teleporter']), + create_dw_region(player, 'Southeast Dark World', None, ['Southeast Dark World Water Drop', 'Dark Lake Hylia Ledge Fairy', 'Dark Lake Hylia Ledge Hint', 'Dark Lake Hylia Ledge Spike Cave', 'DLHL Flute']), + + create_cave_region(player, 'Dark Lumberjack Shop', 'a common shop', ['Dark Lumberjack Shop - Left', 'Dark Lumberjack Shop - Middle', 'Dark Lumberjack Shop - Right']), + create_cave_region(player, 'Dark Death Mountain Healer Fairy', 'a fairy fountain'), create_cave_region(player, 'Spike Cave', 'Spike Cave', ['Spike Cave']), create_cave_region(player, 'Hookshot Cave (Front)', 'a connector', None, ['Hookshot Cave Front to Middle', 'Hookshot Cave Front Exit', 'Hookshot Cave Bonk Path', 'Hookshot Cave Hook Path']), create_cave_region(player, 'Hookshot Cave (Bonk Islands)', 'a connector', ['Hookshot Cave - Bottom Right']), create_cave_region(player, 'Hookshot Cave (Hook Islands)', 'a connector', ['Hookshot Cave - Top Right', 'Hookshot Cave - Top Left', 'Hookshot Cave - Bottom Left']), - create_cave_region(player, 'Hookshot Cave (Back)', 'a connector', None, ['Hookshot Cave Back to Middle', 'Hookshot Cave Back Exit']), create_cave_region(player, 'Hookshot Cave (Middle)', 'a connector', None, ['Hookshot Cave Middle to Back', 'Hookshot Cave Middle to Front']), - - create_dw_region(player, 'Death Mountain Floating Island (Dark World)', None, ['Floating Island Drop', 'Hookshot Cave Back Entrance', 'Dark Floating Island Mirror Spot'], 'a dark island'), - create_lw_region(player, 'Death Mountain Floating Island', ['Floating Island'], ['Floating Island Bridge (West)', 'Floating Island Mirror Spot']), - create_dw_region(player, 'Turtle Rock (Top)', None, ['Dark Death Mountain Teleporter (East)', 'Turtle Rock Drop']), - create_lw_region(player, 'Mimic Cave Ledge', None, ['Mimic Cave', 'Mimic Cave Ledge Drop', 'Dark Death Mountain Ledge Mirror Spot (East)']), - create_cave_region(player, 'Mimic Cave', 'Mimic Cave', ['Mimic Cave']), - + create_cave_region(player, 'Hookshot Cave (Back)', 'a connector', None, ['Hookshot Cave Back to Middle', 'Hookshot Cave Back Exit']), + create_cave_region(player, 'Superbunny Cave (Top)', 'a connector', ['Superbunny Cave - Top', 'Superbunny Cave - Bottom'], ['Superbunny Cave Exit (Top)']), + create_cave_region(player, 'Superbunny Cave (Bottom)', 'a connector', None, ['Superbunny Cave Climb', 'Superbunny Cave Exit (Bottom)']), + create_cave_region(player, 'Dark Death Mountain Shop', 'a common shop', ['Dark Death Mountain Shop - Left', 'Dark Death Mountain Shop - Middle', 'Dark Death Mountain Shop - Right']), + create_cave_region(player, 'Bumper Cave (bottom)', 'a connector', None, ['Bumper Cave Exit (Bottom)', 'Bumper Cave Bottom to Top']), + create_cave_region(player, 'Bumper Cave (top)', 'a connector', None, ['Bumper Cave Exit (Top)', 'Bumper Cave Top To Bottom']), + create_cave_region(player, 'Fortune Teller (Dark)', 'a fortune teller'), + create_cave_region(player, 'Dark Sanctuary Hint', 'a storyteller', None, ['Dark Sanctuary Hint Exit']), + create_cave_region(player, 'Dark Potion Shop', 'a common shop', ['Dark Potion Shop - Left', 'Dark Potion Shop - Middle', 'Dark Potion Shop - Right']), + create_cave_region(player, 'Chest Game', 'a game of 16 chests', ['Chest Game']), + create_cave_region(player, 'C-Shaped House', 'a house with a chest', ['C-Shaped House']), + create_cave_region(player, 'Brewery', 'a house with a chest', ['Brewery']), + create_cave_region(player, 'Village of Outcasts Shop', 'a common shop', ['Village of Outcasts Shop - Left', 'Village of Outcasts Shop - Middle', 'Village of Outcasts Shop - Right']), + create_cave_region(player, 'Red Shield Shop', 'the rare shop', ['Red Shield Shop - Left', 'Red Shield Shop - Middle', 'Red Shield Shop - Right']), + create_cave_region(player, 'Pyramid Fairy', 'a cave with two chests', ['Pyramid Fairy - Left', 'Pyramid Fairy - Right']), create_cave_region(player, 'Pyramid', 'a drop\'s exit', ['Ganon'], ['Ganon Drop']), create_cave_region(player, 'Bottom of Pyramid', 'a drop\'s exit', None, ['Pyramid Exit']), - create_dw_region(player, 'Pyramid Ledge', None, ['Pyramid Entrance', 'Pyramid Drop']), - create_lw_region(player, 'Desert Northern Cliffs') + create_cave_region(player, 'Palace of Darkness Hint', 'a storyteller'), + create_cave_region(player, 'Hammer Peg Cave', 'a cave with an item', ['Peg Cave']), + create_cave_region(player, 'Archery Game', 'a game of skill'), + create_cave_region(player, 'Bonk Fairy (Dark)', 'a fairy fountain'), + create_cave_region(player, 'Big Bomb Shop', 'the bomb shop'), + create_cave_region(player, 'Dark Lake Hylia Healer Fairy', 'a fairy fountain'), + create_cave_region(player, 'East Dark World Hint', 'a storyteller'), + create_cave_region(player, 'Mire Shed', 'a cave with two chests', ['Mire Shed - Left', 'Mire Shed - Right']), + create_cave_region(player, 'Dark Desert Healer Fairy', 'a fairy fountain'), + create_cave_region(player, 'Dark Desert Hint', 'a storyteller'), + create_cave_region(player, 'Hype Cave', 'a bounty of five items', ['Hype Cave - Top', 'Hype Cave - Middle Right', 'Hype Cave - Middle Left', + 'Hype Cave - Bottom', 'Hype Cave - Generous Guy']), + create_cave_region(player, 'Dark Lake Hylia Shop', 'a common shop', ['Dark Lake Hylia Shop - Left', 'Dark Lake Hylia Shop - Middle', 'Dark Lake Hylia Shop - Right']), + create_cave_region(player, 'Dark Lake Hylia Ledge Healer Fairy', 'a fairy fountain'), + create_cave_region(player, 'Dark Lake Hylia Ledge Hint', 'a storyteller'), + create_cave_region(player, 'Dark Lake Hylia Ledge Spike Cave', 'a spiky hint') ] @@ -1124,16 +1123,16 @@ def pot_address(pot_index, super_tile): _basic_shop_defaults = [('Red Potion', 150), ('Small Heart', 10), ('Bombs (10)', 50)] _dark_world_shop_defaults = [('Red Potion', 150), ('Blue Shield', 50), ('Bombs (10)', 50)] shop_table = { - 'Cave Shop (Dark Death Mountain)': (0x0112, ShopType.Shop, 0xC1, False, False, _basic_shop_defaults, 0), + 'Dark Death Mountain Shop': (0x0112, ShopType.Shop, 0xC1, False, False, _basic_shop_defaults, 0), 'Red Shield Shop': (0x0110, ShopType.Shop, 0xC1, False, False, [('Red Shield', 500), ('Bee', 10), ('Arrows (10)', 30)], 3), 'Dark Lake Hylia Shop': (0x010F, ShopType.Shop, 0xC1, False, False, _dark_world_shop_defaults, 6), - 'Dark World Lumberjack Shop': (0x010F, ShopType.Shop, 0xC1, False, False, _dark_world_shop_defaults, 9), + 'Dark Lumberjack Shop': (0x010F, ShopType.Shop, 0xC1, False, False, _dark_world_shop_defaults, 9), 'Village of Outcasts Shop': (0x010F, ShopType.Shop, 0xC1, False, False, _dark_world_shop_defaults, 12), - 'Dark World Potion Shop': (0x010F, ShopType.Shop, 0xC1, False, False, _dark_world_shop_defaults, 15), - 'Light World Death Mountain Shop': (0x00FF, ShopType.Shop, 0xA0, False, False, _basic_shop_defaults, 18), + 'Dark Potion Shop': (0x010F, ShopType.Shop, 0xC1, False, False, _dark_world_shop_defaults, 15), + 'Paradox Shop': (0x00FF, ShopType.Shop, 0xA0, False, False, _basic_shop_defaults, 18), 'Kakariko Shop': (0x011F, ShopType.Shop, 0xA0, False, False, _basic_shop_defaults, 21), - 'Cave Shop (Lake Hylia)': (0x0112, ShopType.Shop, 0xA0, False, False, _basic_shop_defaults, 24), + 'Lake Hylia Shop': (0x0112, ShopType.Shop, 0xA0, False, False, _basic_shop_defaults, 24), 'Potion Shop': (0x0109, ShopType.Shop, 0xFF, False, True, [('Red Potion', 120), ('Green Potion', 60), ('Blue Potion', 160)], 27), 'Capacity Upgrade': (0x0115, ShopType.UpgradeShop, 0x04, True, True, @@ -1142,15 +1141,15 @@ shop_table = { shop_to_location_table = { - 'Cave Shop (Dark Death Mountain)': ['Dark Death Mountain Shop - Left', 'Dark Death Mountain Shop - Middle', 'Dark Death Mountain Shop - Right'], + 'Dark Death Mountain Shop': ['Dark Death Mountain Shop - Left', 'Dark Death Mountain Shop - Middle', 'Dark Death Mountain Shop - Right'], 'Red Shield Shop': ['Red Shield Shop - Left', 'Red Shield Shop - Middle', 'Red Shield Shop - Right'], 'Dark Lake Hylia Shop': ['Dark Lake Hylia Shop - Left', 'Dark Lake Hylia Shop - Middle', 'Dark Lake Hylia Shop - Right'], - 'Dark World Lumberjack Shop': ['Dark Lumberjack Shop - Left', 'Dark Lumberjack Shop - Middle', 'Dark Lumberjack Shop - Right'], + 'Dark Lumberjack Shop': ['Dark Lumberjack Shop - Left', 'Dark Lumberjack Shop - Middle', 'Dark Lumberjack Shop - Right'], 'Village of Outcasts Shop': ['Village of Outcasts Shop - Left', 'Village of Outcasts Shop - Middle', 'Village of Outcasts Shop - Right'], - 'Dark World Potion Shop': ['Dark Potion Shop - Left', 'Dark Potion Shop - Middle', 'Dark Potion Shop - Right'], - 'Light World Death Mountain Shop': ['Paradox Shop - Left', 'Paradox Shop - Middle', 'Paradox Shop - Right'], + 'Dark Potion Shop': ['Dark Potion Shop - Left', 'Dark Potion Shop - Middle', 'Dark Potion Shop - Right'], + 'Paradox Shop': ['Paradox Shop - Left', 'Paradox Shop - Middle', 'Paradox Shop - Right'], 'Kakariko Shop': ['Kakariko Shop - Left', 'Kakariko Shop - Middle', 'Kakariko Shop - Right'], - 'Cave Shop (Lake Hylia)': ['Lake Hylia Shop - Left', 'Lake Hylia Shop - Middle', 'Lake Hylia Shop - Right'], + 'Lake Hylia Shop': ['Lake Hylia Shop - Left', 'Lake Hylia Shop - Middle', 'Lake Hylia Shop - Right'], 'Potion Shop': ['Potion Shop - Left', 'Potion Shop - Middle', 'Potion Shop - Right'], 'Capacity Upgrade': ['Capacity Upgrade - Left', 'Capacity Upgrade - Right'], } diff --git a/Rom.py b/Rom.py index 10125e66..c07a1b1c 100644 --- a/Rom.py +++ b/Rom.py @@ -2105,7 +2105,7 @@ def write_strings(rom, world, player, team): if world.mode[player] == 'inverted': entrances_to_hint.update({'Inverted Pyramid Entrance': 'The extra castle passage'}) else: - entrances_to_hint.update({'Pyramid Ledge': 'The pyramid ledge'}) + entrances_to_hint.update({'Pyramid Entrance': 'The pyramid ledge'}) hint_count = 4 if world.shuffle[player] not in ['vanilla', 'dungeonssimple', 'dungeonsfull'] else 0 hint_count -= 2 if world.shuffle[player] not in ['simple', 'restricted'] else 0 for entrance in all_entrances: @@ -2723,7 +2723,7 @@ InconvenientDungeonEntrances = {'Turtle Rock': 'Turtle Rock Main', InconvenientOtherEntrances = {'Death Mountain Return Cave (West)': 'The SW DM foothills cave', 'Mimic Cave': 'Mimic Ledge', - 'Dark World Hammer Peg Cave': 'The rows of pegs', + 'Hammer Peg Cave': 'The rows of pegs', 'Pyramid Fairy': 'The crack on the pyramid' } @@ -2792,15 +2792,15 @@ ItemEntrances = {'Blinds Hideout': 'Blind\'s old house', 'Chest Game': 'The westmost building in the Village of Outcasts', } -ShopEntrances = {'Cave Shop (Lake Hylia)': 'The cave NW Lake Hylia', +ShopEntrances = {'Lake Hylia Shop': 'The cave NW Lake Hylia', 'Kakariko Shop': 'The old Kakariko shop', 'Capacity Upgrade': 'The cave on the island', 'Dark Lake Hylia Shop': 'The building NW dark Lake Hylia', 'Dark World Shop': 'The hammer sealed building', 'Red Shield Shop': 'The fenced in building', - 'Cave Shop (Dark Death Mountain)': 'The base of east dark DM', - 'Dark World Potion Shop': 'The building near the catfish', - 'Dark World Lumberjack Shop': 'The northmost Dark World building' + 'Dark Death Mountain Shop': 'The base of east dark DM', + 'Dark Potion Shop': 'The building near the catfish', + 'Dark Lumberjack Shop': 'The northmost Dark World building' } OtherEntrances = {'Lake Hylia Fairy': 'A cave NE of Lake Hylia', diff --git a/Rules.py b/Rules.py index a8bc939b..86897bfa 100644 --- a/Rules.py +++ b/Rules.py @@ -157,107 +157,7 @@ def global_rules(world, player): for exit in world.get_region('Menu', player).exits: exit.hide_path = True - set_rule(world.get_entrance('Old Man S&Q', player), lambda state: state.can_reach('Old Man', 'Location', player)) - - set_rule(world.get_location('Sunken Treasure', player), lambda state: state.has('Open Floodgate', player)) - set_rule(world.get_location('Dark Blacksmith Ruins', player), lambda state: state.has('Return Smith', player)) - set_rule(world.get_location('Purple Chest', player), lambda state: state.has('Pick Up Purple Chest', player)) # Can S&Q with chest - set_rule(world.get_location('Ether Tablet', player), lambda state: state.has('Book of Mudora', player) and state.has_beam_sword(player)) - set_rule(world.get_location('Master Sword Pedestal', player), lambda state: state.has('Red Pendant', player) and state.has('Blue Pendant', player) and state.has('Green Pendant', player)) - - set_rule(world.get_location('Missing Smith', player), lambda state: state.has('Get Frog', player) and state.can_reach('Blacksmiths Hut', 'Region', player)) # Can't S&Q with smith - set_rule(world.get_location('Blacksmith', player), lambda state: state.has('Return Smith', player)) - set_rule(world.get_location('Magic Bat', player), lambda state: state.has('Magic Powder', player)) - set_rule(world.get_location('Sick Kid', player), lambda state: state.has_bottle(player)) - set_rule(world.get_location('Library', player), lambda state: state.has_Boots(player)) - set_rule(world.get_location('Mimic Cave', player), lambda state: state.has('Hammer', player)) - set_rule(world.get_location('Sahasrahla', player), lambda state: state.has('Green Pendant', player)) - - set_rule(world.get_location('Spike Cave', player), lambda state: - state.has('Hammer', player) and state.can_lift_rocks(player) and - ((state.has('Cape', player) and state.can_extend_magic(player, 16, True)) or - (state.has('Cane of Byrna', player) and - (state.can_extend_magic(player, 12, True) or - (state.world.can_take_damage and (state.has_Boots(player) or state.has_hearts(player, 4)))))) - ) - - set_rule(world.get_location('Hookshot Cave - Top Right', player), lambda state: state.has('Hookshot', player)) - set_rule(world.get_location('Hookshot Cave - Top Left', player), lambda state: state.has('Hookshot', player)) - set_rule(world.get_location('Hookshot Cave - Bottom Right', player), lambda state: state.has('Hookshot', player) or state.has('Pegasus Boots', player)) - set_rule(world.get_location('Hookshot Cave - Bottom Left', player), lambda state: state.has('Hookshot', player)) - - set_rule(world.get_entrance('Hookshot Cave Bonk Path', player), lambda state: state.has('Hookshot', player) or state.has('Pegasus Boots', player)) - set_rule(world.get_entrance('Hookshot Cave Hook Path', player), lambda state: state.has('Hookshot', player)) - - set_rule(world.get_entrance('Old Man Cave Exit (West)', player), lambda state: False) # drop cannot be climbed up - - # s&q regions. link's house entrance is set to true so the filler knows the chest inside can always be reached - set_rule(world.get_entrance('Other World S&Q', player), lambda state: state.has_Mirror(player) and state.has('Beat Agahnim 1', player)) - - # overworld requirements - set_rule(world.get_entrance('Kings Grave', player), lambda state: state.has_Boots(player)) - set_rule(world.get_entrance('Kings Grave Outer Rocks', player), lambda state: state.can_lift_heavy_rocks(player)) - set_rule(world.get_entrance('Kings Grave Inner Rocks', player), lambda state: state.can_lift_heavy_rocks(player)) - # Caution: If king's grave is relaxed at all to account for reaching it via a two way cave's exit in insanity mode, then the bomb shop logic will need to be updated (that would involve create a small ledge-like Region for it) - set_rule(world.get_entrance('Potion Shop Rock (North)', player), lambda state: state.can_lift_rocks(player)) - set_rule(world.get_entrance('Potion Shop Rock (South)', player), lambda state: state.can_lift_rocks(player)) - set_rule(world.get_entrance('Bonk Fairy (Light)', player), lambda state: state.has_Boots(player)) - set_rule(world.get_entrance('Bat Cave Ledge Peg', player), lambda state: state.has('Hammer', player)) - set_rule(world.get_entrance('Bat Cave Ledge Peg (East)', player), lambda state: state.has('Hammer', player)) - set_rule(world.get_entrance('Lumberjack Tree Tree', player), lambda state: state.has_Boots(player) and state.has('Beat Agahnim 1', player)) - set_rule(world.get_entrance('Bonk Rock Cave', player), lambda state: state.has_Boots(player)) - set_rule(world.get_entrance('Desert Statue Move', player), lambda state: state.has('Book of Mudora', player)) - set_rule(world.get_entrance('Sanctuary Grave', player), lambda state: state.can_lift_rocks(player)) - set_rule(world.get_entrance('20 Rupee Cave', player), lambda state: state.can_lift_rocks(player)) - set_rule(world.get_entrance('50 Rupee Cave', player), lambda state: state.can_lift_rocks(player)) - set_rule(world.get_entrance('Death Mountain Entrance Rock', player), lambda state: state.can_lift_rocks(player)) - set_rule(world.get_location('Flute Spot', player), lambda state: state.has('Shovel', player)) - - set_rule(world.get_location('Zora\'s Ledge', player), lambda state: state.has('Flippers', player)) - # can be fake flippered into, but is in weird state inside that might prevent you from doing things. - set_rule(world.get_entrance('Waterfall Fairy Access', player), lambda state: state.has('Flippers', player)) - - set_rule(world.get_location('Potion Shop', player), lambda state: state.has('Mushroom', player) and state.can_reach('Potion Shop Area', 'Region', player)) - set_rule(world.get_entrance('Desert Palace Entrance (North) Rocks', player), lambda state: state.can_lift_rocks(player)) - set_rule(world.get_entrance('Desert Ledge Return Rocks', player), lambda state: state.can_lift_rocks(player)) # should we decide to place something that is not a dungeon end up there at some point - set_rule(world.get_entrance('Checkerboard Cave', player), lambda state: state.can_lift_rocks(player)) - set_rule(world.get_entrance('Agahnims Tower', player), lambda state: state.has('Cape', player) or state.has_beam_sword(player)) - set_rule(world.get_entrance('DM Broken Bridge (West)', player), lambda state: state.has('Hookshot', player)) - set_rule(world.get_entrance('DM Broken Bridge (East)', player), lambda state: state.has('Hookshot', player)) - set_rule(world.get_entrance('East Death Mountain Teleporter', player), lambda state: state.can_lift_heavy_rocks(player)) - set_rule(world.get_entrance('Fairy Ascension Rocks', player), lambda state: state.can_lift_heavy_rocks(player)) - # can erase block - overridden in noglitches - set_rule(world.get_entrance('Paradox Cave Push Block Reverse', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('DM Hammer Bridge (East)', player), lambda state: state.has('Hammer', player)) - set_rule(world.get_entrance('Turtle Rock Teleporter', player), lambda state: state.can_lift_heavy_rocks(player) and state.has('Hammer', player)) - set_rule(world.get_entrance('DM Hammer Bridge (West)', player), lambda state: state.has('Hammer', player)) - - set_rule(world.get_entrance('Dark Witch Rock (North)', player), lambda state: state.can_lift_rocks(player)) - set_rule(world.get_entrance('Dark Witch Rock (South)', player), lambda state: state.can_lift_rocks(player)) - set_rule(world.get_entrance('Northeast Dark World Broken Bridge Pass', player), lambda state: state.can_lift_rocks(player) or state.has('Hammer', player) or state.has('Flippers', player)) - set_rule(world.get_entrance('East Dark World Broken Bridge Pass', player), lambda state: state.can_lift_rocks(player) or state.has('Hammer', player)) - set_rule(world.get_entrance('Hammer Bridge Pegs (North)', player), lambda state: state.has('Hammer', player)) - set_rule(world.get_entrance('Bonk Fairy (Dark)', player), lambda state: state.has_Boots(player)) - set_rule(world.get_entrance('West Dark World Gap', player), lambda state: state.has('Hookshot', player)) - set_rule(world.get_location('Bombos Tablet', player), lambda state: state.has('Book of Mudora', player) and state.has_beam_sword(player)) - set_rule(world.get_entrance('Dark Lake Hylia Ledge Spike Cave', player), lambda state: state.can_lift_rocks(player)) - set_rule(world.get_entrance('Village of Outcasts Heavy Rock', player), lambda state: state.can_lift_heavy_rocks(player)) - set_rule(world.get_entrance('Hammer Bridge Pegs (South)', player), lambda state: state.has('Hammer', player)) - set_rule(world.get_entrance('Bumper Cave Entrance Rock', player), lambda state: state.can_lift_rocks(player)) - set_rule(world.get_entrance('Dark World Hammer Peg Cave', player), lambda state: state.has('Hammer', player)) - set_rule(world.get_entrance('Village of Outcasts Eastern Rocks', player), lambda state: state.can_lift_heavy_rocks(player)) - set_rule(world.get_entrance('Peg Area Rocks', player), lambda state: state.can_lift_heavy_rocks(player)) - set_rule(world.get_entrance('Village of Outcasts Pegs', player), lambda state: state.has('Hammer', player)) - set_rule(world.get_entrance('Grassy Lawn Pegs', player), lambda state: state.has('Hammer', player)) - set_rule(world.get_entrance('Bumper Cave Bottom to Top', player), lambda state: state.has('Cape', player)) - set_rule(world.get_entrance('Bumper Cave Top To Bottom', player), lambda state: state.has('Cape', player) or state.has('Hookshot', player)) - - set_rule(world.get_entrance('Skull Woods Final Section', player), lambda state: state.has('Fire Rod', player)) - set_rule(world.get_entrance('Hookshot Cave', player), lambda state: state.can_lift_rocks(player)) - - set_rule(world.get_entrance('Misery Mire', player), lambda state: state.has_sword(player) and state.has_misery_mire_medallion(player)) # sword required to cast magic (!) - set_rule(world.get_entrance('Turtle Rock', player), lambda state: state.has_sword(player) and state.has_turtle_rock_medallion(player) and state.can_reach('Turtle Rock (Top)', 'Region', player)) # sword required to cast magic (!) - + # flute rules set_rule(world.get_entrance('Flute Spot 1', player), lambda state: state.can_flute(player)) set_rule(world.get_entrance('Flute Spot 2', player), lambda state: state.can_flute(player)) set_rule(world.get_entrance('Flute Spot 3', player), lambda state: state.can_flute(player)) @@ -267,6 +167,103 @@ def global_rules(world, player): set_rule(world.get_entrance('Flute Spot 7', player), lambda state: state.can_flute(player)) set_rule(world.get_entrance('Flute Spot 8', player), lambda state: state.can_flute(player)) + # s&q regions. link's house entrance is set to true so the filler knows the chest inside can always be reached + set_rule(world.get_entrance('Old Man S&Q', player), lambda state: state.can_reach('Old Man', 'Location', player)) + set_rule(world.get_entrance('Other World S&Q', player), lambda state: state.has_Mirror(player) and state.has('Beat Agahnim 1', player)) + + # overworld location rules + set_rule(world.get_location('Master Sword Pedestal', player), lambda state: state.has('Red Pendant', player) and state.has('Blue Pendant', player) and state.has('Green Pendant', player)) + set_rule(world.get_location('Zora\'s Ledge', player), lambda state: state.has('Flippers', player)) + set_rule(world.get_location('Sunken Treasure', player), lambda state: state.has('Open Floodgate', player)) + set_rule(world.get_location('Flute Spot', player), lambda state: state.has('Shovel', player)) + set_rule(world.get_location('Ether Tablet', player), lambda state: state.has('Book of Mudora', player) and state.has_beam_sword(player)) + set_rule(world.get_location('Bombos Tablet', player), lambda state: state.has('Book of Mudora', player) and state.has_beam_sword(player)) + + set_rule(world.get_location('Missing Smith', player), lambda state: state.has('Get Frog', player) and state.can_reach('Blacksmiths Hut', 'Region', player)) # Can't S&Q with smith + set_rule(world.get_location('Dark Blacksmith Ruins', player), lambda state: state.has('Return Smith', player)) + set_rule(world.get_location('Purple Chest', player), lambda state: state.has('Pick Up Purple Chest', player)) # Can S&Q with chest + + # underworld rules + set_rule(world.get_entrance('Old Man Cave Exit (West)', player), lambda state: False) # drop cannot be climbed up + set_rule(world.get_location('Mimic Cave', player), lambda state: state.has('Hammer', player)) + set_rule(world.get_entrance('Paradox Cave Push Block Reverse', player), lambda state: state.has_Mirror(player)) # can erase block - overridden in noglitches + set_rule(world.get_location('Potion Shop', player), lambda state: state.has('Mushroom', player) and state.can_reach('Potion Shop Area', 'Region', player)) + set_rule(world.get_location('Sick Kid', player), lambda state: state.has_bottle(player)) + set_rule(world.get_location('Magic Bat', player), lambda state: state.has('Magic Powder', player)) + set_rule(world.get_location('Blacksmith', player), lambda state: state.has('Return Smith', player)) + set_rule(world.get_location('Library', player), lambda state: state.has_Boots(player)) + set_rule(world.get_location('Sahasrahla', player), lambda state: state.has('Green Pendant', player)) + set_rule(world.get_location('Spike Cave', player), lambda state: + state.has('Hammer', player) and state.can_lift_rocks(player) and + ((state.has('Cape', player) and state.can_extend_magic(player, 16, True)) or + (state.has('Cane of Byrna', player) and + (state.can_extend_magic(player, 12, True) or + (state.world.can_take_damage and (state.has_Boots(player) or state.has_hearts(player, 4)))))) + ) + set_rule(world.get_location('Hookshot Cave - Top Right', player), lambda state: state.has('Hookshot', player)) + set_rule(world.get_location('Hookshot Cave - Top Left', player), lambda state: state.has('Hookshot', player)) + set_rule(world.get_location('Hookshot Cave - Bottom Right', player), lambda state: state.has('Hookshot', player) or state.has('Pegasus Boots', player)) + set_rule(world.get_location('Hookshot Cave - Bottom Left', player), lambda state: state.has('Hookshot', player)) + set_rule(world.get_entrance('Hookshot Cave Bonk Path', player), lambda state: state.has('Hookshot', player) or state.has('Pegasus Boots', player)) + set_rule(world.get_entrance('Hookshot Cave Hook Path', player), lambda state: state.has('Hookshot', player)) + set_rule(world.get_entrance('Bumper Cave Bottom to Top', player), lambda state: state.has('Cape', player)) + set_rule(world.get_entrance('Bumper Cave Top To Bottom', player), lambda state: state.has('Cape', player) or state.has('Hookshot', player)) + + # terrain rules + set_rule(world.get_entrance('DM Hammer Bridge (West)', player), lambda state: state.has('Hammer', player)) + set_rule(world.get_entrance('DM Hammer Bridge (East)', player), lambda state: state.has('Hammer', player)) + set_rule(world.get_entrance('DM Broken Bridge (West)', player), lambda state: state.has('Hookshot', player)) + set_rule(world.get_entrance('DM Broken Bridge (East)', player), lambda state: state.has('Hookshot', player)) + set_rule(world.get_entrance('Fairy Ascension Rocks', player), lambda state: state.can_lift_heavy_rocks(player)) + # can be fake flippered into, but is in weird state inside that might prevent you from doing things. + set_rule(world.get_entrance('Waterfall Fairy Access', player), lambda state: state.has('Flippers', player)) + set_rule(world.get_entrance('Death Mountain Entrance Rock', player), lambda state: state.can_lift_rocks(player)) + set_rule(world.get_entrance('Kings Grave Rocks (Outer)', player), lambda state: state.can_lift_heavy_rocks(player)) + set_rule(world.get_entrance('Kings Grave Rocks (Inner)', player), lambda state: state.can_lift_heavy_rocks(player)) + set_rule(world.get_entrance('Potion Shop Rock (North)', player), lambda state: state.can_lift_rocks(player)) + set_rule(world.get_entrance('Potion Shop Rock (South)', player), lambda state: state.can_lift_rocks(player)) + set_rule(world.get_entrance('Bat Cave Ledge Peg', player), lambda state: state.has('Hammer', player)) + set_rule(world.get_entrance('Bat Cave Ledge Peg (East)', player), lambda state: state.has('Hammer', player)) + set_rule(world.get_entrance('Desert Statue Move', player), lambda state: state.has('Book of Mudora', player)) + set_rule(world.get_entrance('Desert Ledge Rocks (Outer)', player), lambda state: state.can_lift_rocks(player)) + set_rule(world.get_entrance('Desert Ledge Rocks (Inner)', player), lambda state: state.can_lift_rocks(player)) + + set_rule(world.get_entrance('Bumper Cave Entrance Rock', player), lambda state: state.can_lift_rocks(player)) + set_rule(world.get_entrance('Dark Witch Rock (North)', player), lambda state: state.can_lift_rocks(player)) + set_rule(world.get_entrance('Dark Witch Rock (South)', player), lambda state: state.can_lift_rocks(player)) + set_rule(world.get_entrance('Broken Bridge Pass (Bottom)', player), lambda state: state.can_lift_rocks(player) or state.has('Hammer', player) or state.has('Flippers', player)) + set_rule(world.get_entrance('Broken Bridge Pass (Top)', player), lambda state: state.can_lift_rocks(player) or state.has('Hammer', player)) + set_rule(world.get_entrance('West Dark World Gap', player), lambda state: state.has('Hookshot', player)) + set_rule(world.get_entrance('Grassy Lawn Pegs (Bottom)', player), lambda state: state.has('Hammer', player)) + set_rule(world.get_entrance('Grassy Lawn Pegs (Top)', player), lambda state: state.has('Hammer', player)) + set_rule(world.get_entrance('Peg Area Rocks (Left)', player), lambda state: state.can_lift_heavy_rocks(player)) + set_rule(world.get_entrance('Peg Area Rocks (Right)', player), lambda state: state.can_lift_heavy_rocks(player)) + set_rule(world.get_entrance('Village of Outcasts Heavy Rock', player), lambda state: state.can_lift_heavy_rocks(player)) + set_rule(world.get_entrance('Hammer Bridge Pegs (North)', player), lambda state: state.has('Hammer', player)) + set_rule(world.get_entrance('Hammer Bridge Pegs (South)', player), lambda state: state.has('Hammer', player)) + + # entrance rules + # Caution: If king's grave is relaxed at all to account for reaching it via a two way cave's exit in insanity mode, then the bomb shop logic will need to be updated (that would involve create a small ledge-like Region for it) + # TODO: Not sure if this ^ is true anymore since Kings Grave is its own region now + set_rule(world.get_entrance('Lumberjack Tree Tree', player), lambda state: state.has_Boots(player) and state.has('Beat Agahnim 1', player)) + set_rule(world.get_entrance('Bonk Rock Cave', player), lambda state: state.has_Boots(player)) + set_rule(world.get_entrance('Sanctuary Grave', player), lambda state: state.can_lift_rocks(player)) + set_rule(world.get_entrance('Kings Grave', player), lambda state: state.has_Boots(player)) + set_rule(world.get_entrance('Bonk Fairy (Light)', player), lambda state: state.has_Boots(player)) + set_rule(world.get_entrance('Checkerboard Cave', player), lambda state: state.can_lift_rocks(player)) + set_rule(world.get_entrance('20 Rupee Cave', player), lambda state: state.can_lift_rocks(player)) + set_rule(world.get_entrance('50 Rupee Cave', player), lambda state: state.can_lift_rocks(player)) + set_rule(world.get_entrance('Hookshot Cave', player), lambda state: state.can_lift_rocks(player)) + set_rule(world.get_entrance('Hammer Peg Cave', player), lambda state: state.has('Hammer', player)) + set_rule(world.get_entrance('Bonk Fairy (Dark)', player), lambda state: state.has_Boots(player)) + set_rule(world.get_entrance('Dark Lake Hylia Ledge Spike Cave', player), lambda state: state.can_lift_rocks(player)) + + set_rule(world.get_entrance('Skull Woods Final Section', player), lambda state: state.has('Fire Rod', player)) + set_rule(world.get_entrance('Misery Mire', player), lambda state: state.has_sword(player) and state.has_misery_mire_medallion(player)) # sword required to cast magic (!) + set_rule(world.get_entrance('Turtle Rock', player), lambda state: state.has_sword(player) and state.has_turtle_rock_medallion(player) and state.can_reach('Turtle Rock (Top)', 'Region', player)) # sword required to cast magic (!) + + if not world.is_atgt_swapped(player): + set_rule(world.get_entrance('Agahnims Tower', player), lambda state: state.has('Cape', player) or state.has_beam_sword(player)) set_rule(world.get_entrance('Ganons Tower' if not world.is_atgt_swapped(player) else 'Agahnims Tower', player), lambda state: state.has_crystals(world.crystals_needed_for_gt[player], player)) # Start of door rando rules @@ -697,7 +694,7 @@ def global_rules(world, player): def bomb_rules(world, player): # todo: kak well, pod hint (bonkable pots), hookshot pot, spike cave pots bonkable_doors = ['Two Brothers House Exit (West)', 'Two Brothers House Exit (East)'] # Technically this is incorrectly defined, but functionally the same as what is intended. - bombable_doors = ['Ice Rod Cave', 'Light World Bomb Hut', 'Light World Death Mountain Shop', 'Mini Moldorm Cave', + bombable_doors = ['Ice Rod Cave', 'Light World Bomb Hut', 'Paradox Shop', 'Mini Moldorm Cave', 'Hookshot Cave Back to Middle', 'Hookshot Cave Front to Middle', 'Hookshot Cave Middle to Front', 'Hookshot Cave Middle to Back', 'Dark Lake Hylia Ledge Fairy', 'Hype Cave', 'Brewery', 'Paradox Cave Chest Area NE', 'Blinds Hideout N', 'Kakariko Well (top to back)', @@ -857,181 +854,174 @@ def pot_rules(world, player): def ow_inverted_rules(world, player): if world.mode[player] != 'inverted': - set_rule(world.get_entrance('Kings Grave Mirror Spot', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('Spectacle Rock Mirror Spot', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('East Death Mountain (Top) Mirror Spot', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('Dark Floating Island Mirror Spot', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('Spiral Cave Mirror Spot', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('Mimic Cave Mirror Spot', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('Isolated Ledge Mirror Spot', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('Fairy Ascension Mirror Spot', player), lambda state: state.has_Mirror(player) and state.has_Pearl(player)) # need to lift flowers + set_rule(world.get_entrance('Bumper Cave Ledge Mirror Spot', player), lambda state: state.has_Mirror(player)) set_rule(world.get_entrance('Bumper Cave Entrance Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Lake Hylia Central Island Teleporter', player), lambda state: state.can_lift_heavy_rocks(player)) - set_rule(world.get_entrance('Desert Teleporter', player), lambda state: state.can_lift_heavy_rocks(player)) - set_rule(world.get_entrance('East Hyrule Teleporter', player), lambda state: state.has('Hammer', player) and state.can_lift_rocks(player) and state.has_Pearl(player)) # bunny cannot use hammer - set_rule(world.get_entrance('South Hyrule Teleporter', player), lambda state: state.has('Hammer', player) and state.can_lift_rocks(player) and state.has_Pearl(player)) # bunny cannot use hammer - set_rule(world.get_entrance('Kakariko Teleporter', player), lambda state: ((state.has('Hammer', player) and state.can_lift_rocks(player)) or state.can_lift_heavy_rocks(player)) and state.has_Pearl(player)) # bunny cannot lift bushes - set_rule(world.get_entrance('Top of Pyramid', player), lambda state: state.has('Beat Agahnim 1', player)) + set_rule(world.get_entrance('Graveyard Ledge Mirror Spot', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('Kings Grave Mirror Spot', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('Dark Grassy Lawn Mirror Spot', player), lambda state: state.has_Mirror(player)) set_rule(world.get_entrance('Hyrule Castle Ledge Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Hyrule Castle Main Gate', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Hyrule Castle Main Gate (North)', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('Bat Cave Drop Ledge Mirror Spot', player), lambda state: state.has_Mirror(player)) set_rule(world.get_entrance('Dig Game Mirror Spot', player), lambda state: state.has_Mirror(player)) set_rule(world.get_entrance('Cave 45 Mirror Spot', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('Desert Ledge Mirror Spot', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('Mire To Desert Stairs Mirror Spot', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('Desert Ledge Rocks Mirror Spot', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('Checkerboard Ledge Mirror Spot', player), lambda state: state.has_Mirror(player)) set_rule(world.get_entrance('Bombos Tablet Mirror Spot', player), lambda state: state.has_Mirror(player)) set_rule(world.get_entrance('Lake Hylia Island Mirror Spot', player), lambda state: state.has_Pearl(player) and state.has('Flippers', player) and state.has_Mirror(player)) # force flipper rule since fake flipper cannot mirror set_rule(world.get_entrance('Lake Hylia Central Island Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Graveyard Ledge Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Bumper Cave Ledge Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Bat Cave Drop Ledge Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Dark Grassy Lawn Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Desert Ledge (Northeast) Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Desert Ledge Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Mire To Desert Palace Stairs Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Desert Palace Entrance (North) Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Spectacle Rock Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('East Death Mountain (Top) Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Mimic Cave Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Spiral Cave Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Fairy Ascension Mirror Spot', player), lambda state: state.has_Mirror(player) and state.has_Pearl(player)) # need to lift flowers - set_rule(world.get_entrance('Isolated Ledge Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Dark Floating Island Mirror Spot', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('East Death Mountain Teleporter', player), lambda state: state.can_lift_heavy_rocks(player)) + set_rule(world.get_entrance('Turtle Rock Teleporter', player), lambda state: state.can_lift_heavy_rocks(player) and state.has('Hammer', player)) + set_rule(world.get_entrance('Kakariko Teleporter', player), lambda state: ((state.has('Hammer', player) and state.can_lift_rocks(player)) or state.can_lift_heavy_rocks(player)) and state.has_Pearl(player)) # bunny cannot lift bushes + set_rule(world.get_entrance('Castle Gate Teleporter', player), lambda state: state.has('Beat Agahnim 1', player)) + set_rule(world.get_entrance('East Hyrule Teleporter', player), lambda state: state.has('Hammer', player) and state.can_lift_rocks(player) and state.has_Pearl(player)) # bunny cannot use hammer + set_rule(world.get_entrance('South Hyrule Teleporter', player), lambda state: state.has('Hammer', player) and state.can_lift_rocks(player) and state.has_Pearl(player)) # bunny cannot use hammer + set_rule(world.get_entrance('Desert Teleporter', player), lambda state: state.can_lift_heavy_rocks(player)) + set_rule(world.get_entrance('Lake Hylia Teleporter', player), lambda state: state.can_lift_heavy_rocks(player)) + set_rule(world.get_entrance('Hyrule Castle Main Gate', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('Hyrule Castle Main Gate (North)', player), lambda state: state.has_Mirror(player)) set_rule(world.get_location('Frog', player), lambda state: state.can_lift_heavy_rocks(player) and state.has_Pearl(player)) - set_rule(world.get_entrance('Pyramid Hole', player), lambda state: world.open_pyramid[player] or world.goal[player] == 'trinity' or state.has('Beat Agahnim 2', player)) else: - set_rule(world.get_entrance('Bumper Cave Entrance Mirror Spot', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('Skull Woods Mirror Spot', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('Death Mountain Mirror Spot', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('Death Mountain (Top) Mirror Spot', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('East Death Mountain Mirror Spot (Top)', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('Floating Island Mirror Spot', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('Dark Death Mountain Ledge Mirror Spot (West)', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('Dark Death Mountain Ledge Mirror Spot (East)', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('Laser Bridge Mirror Spot', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('East Death Mountain Mirror Spot (Bottom)', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('Mountain Exit Ledge Mirror Spot', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('Mountain Entrance Mirror Spot', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('Graveyard Cave Mirror Spot', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('Potion Shop Mirror Spot', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('Catfish Mirror Spot', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('West Dark World Mirror Spot', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('Bomb Hut Mirror Spot', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('Bush Covered Lawn Mirror Spot', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('Hammer Peg Area Mirror Spot', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('East Dark World Mirror Spot', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('Pyramid Uncle Mirror Spot', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('South Dark World Mirror Spot', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('Maze Race Mirror Spot', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('Mire Mirror Spot', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('Desert Palace North Mirror Spot', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('Desert Palace Stairs Mirror Spot', player), lambda state: state.has_Mirror(player)) set_rule(world.get_entrance('Lake Hylia Central Island Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Dark Lake Hylia Central Island Teleporter', player), lambda state: state.can_lift_heavy_rocks(player)) - set_rule(world.get_entrance('Dark Desert Teleporter', player), lambda state: state.can_lift_heavy_rocks(player)) + set_rule(world.get_entrance('Shopping Mall Mirror Spot', player), lambda state: state.has_Mirror(player)) + + set_rule(world.get_entrance('East Dark Death Mountain Teleporter (Top)', player), lambda state: state.can_lift_heavy_rocks(player) and state.has('Hammer', player) and state.has_Pearl(player)) # bunny cannot use hammer + set_rule(world.get_entrance('East Dark Death Mountain Teleporter (Bottom)', player), lambda state: state.can_lift_heavy_rocks(player)) + set_rule(world.get_entrance('West Dark World Teleporter', player), lambda state: ((state.has('Hammer', player) and state.can_lift_rocks(player)) or state.can_lift_heavy_rocks(player)) and state.has_Pearl(player)) + set_rule(world.get_entrance('Post Aga Teleporter', player), lambda state: state.has('Beat Agahnim 1', player)) set_rule(world.get_entrance('East Dark World Teleporter', player), lambda state: state.has('Hammer', player) and state.can_lift_rocks(player) and state.has_Pearl(player)) # bunny cannot use hammer set_rule(world.get_entrance('South Dark World Teleporter', player), lambda state: state.has('Hammer', player) and state.can_lift_rocks(player) and state.has_Pearl(player)) # bunny cannot use hammer - set_rule(world.get_entrance('West Dark World Teleporter', player), lambda state: ((state.has('Hammer', player) and state.can_lift_rocks(player)) or state.can_lift_heavy_rocks(player)) and state.has_Pearl(player)) - set_rule(world.get_entrance('Bush Covered Lawn Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Dark Death Mountain Teleporter (East Bottom)', player), lambda state: state.can_lift_heavy_rocks(player)) - set_rule(world.get_entrance('Dark Death Mountain Teleporter (East)', player), lambda state: state.can_lift_heavy_rocks(player) and state.has('Hammer', player) and state.has_Pearl(player)) # bunny cannot use hammer - set_rule(world.get_entrance('Lake Hylia Central Island Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Mountain Exit Ledge Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Hammer Peg Area Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Pyramid Uncle Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('East Death Mountain Mirror Spot (Top)', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Death Mountain (Top) Mirror Spot', player), lambda state: state.has_Mirror(player)) - - set_rule(world.get_entrance('East Death Mountain Mirror Spot (Bottom)', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Dark Death Mountain Ledge Mirror Spot (East)', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Dark Death Mountain Ledge Mirror Spot (West)', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Laser Bridge Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Floating Island Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Post Aga Teleporter', player), lambda state: state.has('Beat Agahnim 1', player)) - set_rule(world.get_entrance('Mire Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Desert Palace Stairs Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Death Mountain Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('East Dark World Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('West Dark World Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('South Dark World Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Catfish Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Potion Shop Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Shopping Mall Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Maze Race Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Desert Palace North Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Death Mountain (Top) Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Graveyard Cave Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Bomb Hut Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Skull Woods Mirror Spot', player), lambda state: state.has_Mirror(player)) + set_rule(world.get_entrance('Dark Desert Teleporter', player), lambda state: state.can_lift_heavy_rocks(player)) + set_rule(world.get_entrance('Dark Lake Hylia Teleporter', player), lambda state: state.can_lift_heavy_rocks(player)) set_rule(world.get_location('Frog', player), lambda state: state.can_lift_heavy_rocks(player) and (state.has_Pearl(player) or state.has('Beat Agahnim 1', player)) or (state.can_reach('Light World', 'Region', player) and state.has_Mirror(player))) # Need LW access using Mirror or Portal - set_rule(world.get_entrance('Inverted Pyramid Hole', player), lambda state: world.open_pyramid[player] or world.goal[player] == 'trinity' or state.has('Beat Agahnim 2', player)) def ow_bunny_rules(world, player): - add_bunny_rule(world.get_entrance('Kings Grave', player), player) - add_bunny_rule(world.get_entrance('Kings Grave Outer Rocks', player), player) - add_bunny_rule(world.get_entrance('Kings Grave Inner Rocks', player), player) - add_bunny_rule(world.get_entrance('Bonk Fairy (Light)', player), player) + # locations + add_bunny_rule(world.get_location('Mushroom', player), player) # need pearl to pick up bushes + add_bunny_rule(world.get_location('Zora\'s Ledge', player), player) + add_bunny_rule(world.get_location('Maze Race', player), player) + add_bunny_rule(world.get_location('Flute Spot', player), player) + + # terrain + add_bunny_rule(world.get_entrance('DM Hammer Bridge (West)', player), player) + add_bunny_rule(world.get_entrance('DM Hammer Bridge (East)', player), player) + add_bunny_rule(world.get_entrance('DM Broken Bridge (West)', player), player) + add_bunny_rule(world.get_entrance('DM Broken Bridge (East)', player), player) + add_bunny_rule(world.get_entrance('Fairy Ascension Rocks', player), player) + add_bunny_rule(world.get_entrance('Death Mountain Entrance Rock', player), player) + add_bunny_rule(world.get_entrance('Waterfall Fairy Access', player), player) + add_bunny_rule(world.get_entrance('Graveyard Ladder (Top)', player), player) + add_bunny_rule(world.get_entrance('Graveyard Ladder (Bottom)', player), player) + add_bunny_rule(world.get_entrance('Kings Grave Rocks (Outer)', player), player) + add_bunny_rule(world.get_entrance('Kings Grave Rocks (Inner)', player), player) + add_bunny_rule(world.get_entrance('Potion Shop Rock (North)', player), player) + add_bunny_rule(world.get_entrance('Potion Shop Rock (South)', player), player) + add_bunny_rule(world.get_entrance('Kakariko Yard Bush (North)', player), player) + add_bunny_rule(world.get_entrance('Kakariko Yard Bush (South)', player), player) + add_bunny_rule(world.get_entrance('Kakariko Southwest Bush (North)', player), player) + add_bunny_rule(world.get_entrance('Kakariko Southwest Bush (South)', player), player) + add_bunny_rule(world.get_entrance('Hyrule Castle Courtyard Bush (North)', player), player) + add_bunny_rule(world.get_entrance('Hyrule Castle Courtyard Bush (South)', player), player) + add_bunny_rule(world.get_entrance('Wooden Bridge Bush (North)', player), player) + add_bunny_rule(world.get_entrance('Wooden Bridge Bush (South)', player), player) add_bunny_rule(world.get_entrance('Bat Cave Ledge Peg', player), player) add_bunny_rule(world.get_entrance('Bat Cave Ledge Peg (East)', player), player) + add_bunny_rule(world.get_entrance('Desert Ledge Rocks (Outer)', player), player) + add_bunny_rule(world.get_entrance('Desert Ledge Rocks (Inner)', player), player) + + add_bunny_rule(world.get_entrance('Bumper Cave Entrance Rock', player), player) + add_bunny_rule(world.get_entrance('Dark Witch Rock (North)', player), player) + add_bunny_rule(world.get_entrance('Dark Witch Rock (South)', player), player) + add_bunny_rule(world.get_entrance('Grassy Lawn Pegs (Bottom)', player), player) + add_bunny_rule(world.get_entrance('Grassy Lawn Pegs (Top)', player), player) + add_bunny_rule(world.get_entrance('Broken Bridge Pass (Bottom)', player), player) + add_bunny_rule(world.get_entrance('Broken Bridge Pass (Top)', player), player) + add_bunny_rule(world.get_entrance('West Dark World Gap', player), player) + add_bunny_rule(world.get_entrance('Peg Area Rocks (Left)', player), player) + add_bunny_rule(world.get_entrance('Peg Area Rocks (Right)', player), player) + add_bunny_rule(world.get_entrance('Village of Outcasts Heavy Rock', player), player) + add_bunny_rule(world.get_entrance('Hammer Bridge Pegs (North)', player), player) + add_bunny_rule(world.get_entrance('Hammer Bridge Pegs (South)', player), player) + + # entrances + add_bunny_rule(world.get_entrance('Lost Woods Hideout Drop', player), player) add_bunny_rule(world.get_entrance('Lumberjack Tree Tree', player), player) add_bunny_rule(world.get_entrance('Bonk Rock Cave', player), player) add_bunny_rule(world.get_entrance('Sanctuary Grave', player), player) + add_bunny_rule(world.get_entrance('Kings Grave', player), player) + add_bunny_rule(world.get_entrance('North Fairy Cave Drop', player), player) + add_bunny_rule(world.get_entrance('Hyrule Castle Secret Entrance Drop', player), player) + add_bunny_rule(world.get_entrance('Bonk Fairy (Light)', player), player) + add_bunny_rule(world.get_entrance('Checkerboard Cave', player), player) add_bunny_rule(world.get_entrance('20 Rupee Cave', player), player) add_bunny_rule(world.get_entrance('50 Rupee Cave', player), player) - add_bunny_rule(world.get_entrance('Death Mountain Entrance Rock', player), player) - add_bunny_rule(world.get_location('Flute Spot', player), player) - add_bunny_rule(world.get_location('Zora\'s Ledge', player), player) - add_bunny_rule(world.get_entrance('Waterfall Fairy Access', player), player) - - add_bunny_rule(world.get_entrance('Desert Palace Entrance (North) Rocks', player), player) - add_bunny_rule(world.get_entrance('Desert Ledge Return Rocks', player), player) - add_bunny_rule(world.get_entrance('Checkerboard Cave', player), player) - add_bunny_rule(world.get_entrance('DM Broken Bridge (West)', player), player) - add_bunny_rule(world.get_entrance('DM Broken Bridge (East)', player), player) - add_bunny_rule(world.get_entrance('East Death Mountain Teleporter', player), player) - add_bunny_rule(world.get_entrance('Fairy Ascension Rocks', player), player) - add_bunny_rule(world.get_entrance('DM Hammer Bridge (East)', player), player) - add_bunny_rule(world.get_entrance('Turtle Rock Teleporter', player), player) - add_bunny_rule(world.get_entrance('DM Hammer Bridge (West)', player), player) - - add_bunny_rule(world.get_entrance('Dark Witch Rock (North)', player), player) - add_bunny_rule(world.get_entrance('Dark Witch Rock (South)', player), player) - add_bunny_rule(world.get_entrance('Northeast Dark World Broken Bridge Pass', player), player) - add_bunny_rule(world.get_entrance('East Dark World Broken Bridge Pass', player), player) - add_bunny_rule(world.get_entrance('Hammer Bridge Pegs (North)', player), player) - add_bunny_rule(world.get_entrance('Bonk Fairy (Dark)', player), player) - add_bunny_rule(world.get_entrance('West Dark World Gap', player), player) - add_bunny_rule(world.get_entrance('Palace of Darkness', player), player) # kiki needs pearl - add_bunny_rule(world.get_entrance('Dark Lake Hylia Ledge Spike Cave', player), player) - add_bunny_rule(world.get_entrance('Village of Outcasts Heavy Rock', player), player) - add_bunny_rule(world.get_entrance('Thieves Town', player), player) # bunny cannot pull add_bunny_rule(world.get_entrance('Skull Woods First Section Hole (North)', player), player) # bunny cannot lift bush add_bunny_rule(world.get_entrance('Skull Woods Second Section Hole', player), player) # bunny cannot lift bush - add_bunny_rule(world.get_entrance('Hammer Bridge Pegs (South)', player), player) - add_bunny_rule(world.get_entrance('Bumper Cave Entrance Rock', player), player) - add_bunny_rule(world.get_entrance('Dark World Hammer Peg Cave', player), player) - add_bunny_rule(world.get_entrance('Village of Outcasts Eastern Rocks', player), player) - add_bunny_rule(world.get_entrance('Peg Area Rocks', player), player) - add_bunny_rule(world.get_entrance('Village of Outcasts Pegs', player), player) - add_bunny_rule(world.get_entrance('Grassy Lawn Pegs', player), player) - add_bunny_rule(world.get_entrance('Bumper Cave Bottom to Top', player), player) - add_bunny_rule(world.get_entrance('Bumper Cave Top To Bottom', player), player) - add_bunny_rule(world.get_entrance('Skull Woods Final Section', player), player) # bunny cannot use fire rod add_bunny_rule(world.get_entrance('Hookshot Cave', player), player) - add_bunny_rule(world.get_entrance('Misery Mire', player), player) + add_bunny_rule(world.get_entrance('Thieves Town', player), player) # bunny cannot pull add_bunny_rule(world.get_entrance('Turtle Rock', player), player) - - #add_bunny_rule(world.get_location('Ice Rod Cave', player), player) - add_bunny_rule(world.get_location('Maze Race', player), player) - - add_bunny_rule(world.get_entrance('Wooden Bridge Bush (North)', player), player) - add_bunny_rule(world.get_entrance('Wooden Bridge Bush (South)', player), player) - add_bunny_rule(world.get_entrance('Potion Shop Rock (North)', player), player) - add_bunny_rule(world.get_entrance('Potion Shop Rock (South)', player), player) - add_bunny_rule(world.get_entrance('Graveyard Ladder (Top)', player), player) - add_bunny_rule(world.get_entrance('Graveyard Ladder (Bottom)', player), player) - add_bunny_rule(world.get_entrance('Hyrule Castle Courtyard Bush (North)', player), player) - add_bunny_rule(world.get_entrance('Hyrule Castle Courtyard Bush (South)', player), player) - - add_bunny_rule(world.get_location('Mushroom', player), player) # need pearl to pick up bushes - add_bunny_rule(world.get_entrance('Kakariko Yard Bush (North)', player), player) - add_bunny_rule(world.get_entrance('Kakariko Yard Bush (South)', player), player) - add_bunny_rule(world.get_entrance('Kakariko Southwest Bush (South)', player), player) - add_bunny_rule(world.get_entrance('Kakariko Southwest Bush (North)', player), player) - add_bunny_rule(world.get_entrance('North Fairy Cave Drop', player), player) - add_bunny_rule(world.get_entrance('Lost Woods Hideout Drop', player), player) - add_bunny_rule(world.get_entrance('Hyrule Castle Secret Entrance Drop', player), player) + add_bunny_rule(world.get_entrance('Palace of Darkness', player), player) # kiki needs pearl + add_bunny_rule(world.get_entrance('Hammer Peg Cave', player), player) + add_bunny_rule(world.get_entrance('Bonk Fairy (Dark)', player), player) + add_bunny_rule(world.get_entrance('Misery Mire', player), player) + add_bunny_rule(world.get_entrance('Dark Lake Hylia Ledge Spike Cave', player), player) if not world.is_atgt_swapped(player): add_bunny_rule(world.get_entrance('Agahnims Tower', player), player) - + #TODO: This needs to get applied after bunny rules, move somewhere else tho if not world.is_atgt_swapped(player): add_rule(world.get_entrance('Agahnims Tower', player), lambda state: state.has('Beat Agahnim 1', player), 'or') # barrier gets removed after killing agahnim, relevant for entrance shuffle def no_glitches_rules(world, player): - set_rule(world.get_entrance('Zora Waterfall Water Drop', player), lambda state: state.has('Flippers', player)) - set_rule(world.get_entrance('Lake Hylia Central Island Water Drop', player), lambda state: state.has('Flippers', player)) set_rule(world.get_entrance('Light World Water Drop', player), lambda state: state.has('Flippers', player)) # can be fake flippered to + set_rule(world.get_entrance('Zora Waterfall Water Drop', player), lambda state: state.has('Flippers', player)) set_rule(world.get_entrance('Potion Shop Water Drop', player), lambda state: state.has('Flippers', player)) # can be fake flippered to set_rule(world.get_entrance('Northeast Light World Water Drop', player), lambda state: state.has('Flippers', player)) # can be fake flippered to + set_rule(world.get_entrance('Lake Hylia Central Island Water Drop', player), lambda state: state.has('Flippers', player)) set_rule(world.get_entrance('West Dark World Water Drop', player), lambda state: state.has('Flippers', player)) set_rule(world.get_entrance('South Dark World Water Drop', player), lambda state: state.has('Flippers', player)) set_rule(world.get_entrance('East Dark World Water Drop', player), lambda state: state.has('Flippers', player)) @@ -1039,12 +1029,12 @@ def no_glitches_rules(world, player): set_rule(world.get_entrance('Southeast Dark World Water Drop', player), lambda state: state.has('Flippers', player)) # can be fake flippered to set_rule(world.get_entrance('Catfish Water Drop', player), lambda state: state.has('Flippers', player)) # can be fake flippered to set_rule(world.get_entrance('Ice Palace Leave Water Drop', player), lambda state: state.has('Flippers', player)) - - add_bunny_rule(world.get_entrance('Zora Waterfall Water Drop', player), player) - add_bunny_rule(world.get_entrance('Lake Hylia Central Island Water Drop', player), player) + add_bunny_rule(world.get_entrance('Light World Water Drop', player), player) + add_bunny_rule(world.get_entrance('Zora Waterfall Water Drop', player), player) add_bunny_rule(world.get_entrance('Potion Shop Water Drop', player), player) add_bunny_rule(world.get_entrance('Northeast Light World Water Drop', player), player) + add_bunny_rule(world.get_entrance('Lake Hylia Central Island Water Drop', player), player) add_bunny_rule(world.get_entrance('West Dark World Water Drop', player), player) add_bunny_rule(world.get_entrance('South Dark World Water Drop', player), player) add_bunny_rule(world.get_entrance('East Dark World Water Drop', player), player) @@ -1292,7 +1282,7 @@ def standard_rules(world, player): for location in ['Mushroom', 'Bottle Merchant', 'Flute Spot', 'Sunken Treasure', 'Purple Chest']: add_rule(world.get_location(location, player), lambda state: state.has('Zelda Delivered', player)) - for entrance in ['Blinds Hideout', 'Kings Grave Outer Rocks', 'Dam', 'Tavern North', 'Chicken House', + for entrance in ['Blinds Hideout', 'Kings Grave Rocks (Outer)', 'Dam', 'Tavern North', 'Chicken House', 'Aginahs Cave', 'Sahasrahlas Hut', 'Kakariko Well Drop', 'Kakariko Well Cave', 'Blacksmiths Hut', 'Bat Cave Ledge Peg', 'Bat Cave Cave', 'Sick Kids House', 'Wooden Bridge Bush (South)', 'Lost Woods Hideout Drop', 'Lost Woods Hideout Stump', 'Lumberjack Tree Tree', @@ -1303,10 +1293,10 @@ def standard_rules(world, player): 'South Hyrule Teleporter', 'Kakariko Teleporter', 'Elder House (East)', 'Elder House (West)', 'North Fairy Cave', 'North Fairy Cave Drop', 'Lost Woods Gamble', 'Snitch Lady (East)', 'Snitch Lady (West)', 'Tavern (Front)', 'Kakariko Yard Bush (South)', 'Kakariko Southwest Bush (North)', - 'Kakariko Shop', 'Long Fairy Cave', 'Good Bee Cave', '20 Rupee Cave', 'Cave Shop (Lake Hylia)', + 'Kakariko Shop', 'Long Fairy Cave', 'Good Bee Cave', '20 Rupee Cave', 'Lake Hylia Shop', 'Waterfall of Wishing', 'Hyrule Castle Main Gate', '50 Rupee Cave', 'Bonk Fairy (Light)', 'Fortune Teller (Light)', 'Lake Hylia Fairy', 'Light Hype Fairy', 'Desert Fairy', - 'Lumberjack House', 'Lake Hylia Fortune Teller', 'Kakariko Gamble Game', 'Top of Pyramid']: + 'Lumberjack House', 'Lake Hylia Fortune Teller', 'Kakariko Gamble Game', 'Castle Gate Teleporter']: add_rule(world.get_entrance(entrance, player), lambda state: state.has('Zelda Delivered', player)) # don't allow bombs to get past here before zelda is rescued @@ -1351,7 +1341,7 @@ def set_big_bomb_rules(world, player): 'Chicken House', 'Aginahs Cave', 'Sahasrahlas Hut', - 'Cave Shop (Lake Hylia)', + 'Lake Hylia Shop', 'Blacksmiths Hut', 'Sick Kids House', 'Lost Woods Gamble', @@ -1397,12 +1387,12 @@ def set_big_bomb_rules(world, player): Northern_DW_entrances = ['Brewery', 'C-Shaped House', 'Chest Game', - 'Dark World Hammer Peg Cave', + 'Hammer Peg Cave', 'Red Shield Shop', 'Dark Sanctuary Hint', 'Fortune Teller (Dark)', 'Dark World Shop', - 'Dark World Lumberjack Shop', + 'Dark Lumberjack Shop', 'Thieves Town', 'Skull Woods First Section Door', 'Skull Woods Second Section Door (East)'] @@ -1413,7 +1403,7 @@ def set_big_bomb_rules(world, player): 'Dark Lake Hylia Shop', 'Swamp Palace'] Isolated_DW_entrances = ['Spike Cave', - 'Cave Shop (Dark Death Mountain)', + 'Dark Death Mountain Shop', 'Dark Death Mountain Fairy', 'Mimic Cave', 'Skull Woods Second Section Door (West)', @@ -1554,7 +1544,7 @@ def set_big_bomb_rules(world, player): # 2. (has South dark world access) use existing mirror spot, mirror again off ledge # -> (Flute or (M and South Dark World access) and BR add_rule(world.get_entrance('Pyramid Fairy', player), lambda state: (state.can_flute(player) or (state.can_reach('South Dark World', 'Region', player) and state.has_Mirror(player))) and basic_routes(state)) - elif bombshop_entrance.name == 'Dark World Potion Shop': + elif bombshop_entrance.name == 'Dark Potion Shop': # 1. walk down by lifting rock: needs gloves and pearl` # 2. walk down by hammering peg: needs hammer and pearl # 3. mirror and basic routes @@ -1582,7 +1572,7 @@ def set_inverted_big_bomb_rules(world, player): 'Chicken House', 'Aginahs Cave', 'Sahasrahlas Hut', - 'Cave Shop (Lake Hylia)', + 'Lake Hylia Shop', 'Blacksmiths Hut', 'Sick Kids House', 'Lost Woods Gamble', @@ -1648,10 +1638,10 @@ def set_inverted_big_bomb_rules(world, player): Northern_DW_entrances = ['Brewery', 'C-Shaped House', 'Chest Game', - 'Dark World Hammer Peg Cave', + 'Hammer Peg Cave', 'Dark Sanctuary Hint', 'Fortune Teller (Dark)', - 'Dark World Lumberjack Shop', + 'Dark Lumberjack Shop', 'Thieves Town', 'Skull Woods First Section Door', 'Skull Woods Second Section Door (East)'] @@ -1662,7 +1652,7 @@ def set_inverted_big_bomb_rules(world, player): 'Dark Lake Hylia Shop', 'Swamp Palace'] Isolated_DW_entrances = ['Spike Cave', - 'Cave Shop (Dark Death Mountain)', + 'Dark Death Mountain Shop', 'Dark Death Mountain Fairy', 'Skull Woods Second Section Door (West)', 'Skull Woods Final Section', @@ -1734,7 +1724,7 @@ def set_inverted_big_bomb_rules(world, player): elif bombshop_entrance.name == 'Old Man Cave (West)': # The three paths back are Mirror and DW walk, Mirror and Flute, or LW walk and then Mirror. add_rule(world.get_entrance('Pyramid Fairy', player), lambda state: state.has_Mirror(player) and ((state.can_lift_heavy_rocks(player) and state.has('Hammer', player)) or (state.can_lift_rocks(player) and state.has_Pearl(player)) or state.can_flute(player))) - elif bombshop_entrance.name == 'Dark World Potion Shop': + elif bombshop_entrance.name == 'Dark Potion Shop': # You either need to Flute to 5 or cross the rock/hammer choice pass to the south. add_rule(world.get_entrance('Pyramid Fairy', player), lambda state: state.can_flute(player) or state.has('Hammer', player) or state.can_lift_rocks(player)) elif bombshop_entrance.name == 'Kings Grave': @@ -1895,7 +1885,7 @@ def set_bunny_rules(world, player, inverted): for ext in region.exits: add_rule(ext, rule) - paradox_shop = world.get_region('Light World Death Mountain Shop', player) + paradox_shop = world.get_region('Paradox Shop', player) if is_bunny(paradox_shop): add_rule(paradox_shop.entrances[0], get_rule_to_add(paradox_shop)) diff --git a/source/item/District.py b/source/item/District.py index 96599cc6..cdfa7bbf 100644 --- a/source/item/District.py +++ b/source/item/District.py @@ -55,7 +55,7 @@ def create_district_helper(world, player): 'Desert Palace Entrance (North)', 'Desert Palace Entrance (East)', 'Desert Fairy', 'Aginahs Cave', '50 Rupee Cave', 'Checkerboard Cave'] lake_entrances = ['Capacity Upgrade', 'Mini Moldorm Cave', 'Good Bee Cave', '20 Rupee Cave', 'Ice Rod Cave', - 'Cave Shop (Lake Hylia)', 'Lake Hylia Fortune Teller'] + 'Lake Hylia Shop', 'Lake Hylia Fortune Teller'] east_lw_entrances = ['Eastern Palace', 'Waterfall of Wishing', 'Lake Hylia Fairy', 'Sahasrahlas Hut', 'Long Fairy Cave', 'Potion Shop'] lw_dm_entrances = ['Tower of Hera', 'Old Man Cave (East)', 'Old Man House (Bottom)', 'Old Man House (Top)', @@ -64,22 +64,22 @@ def create_district_helper(world, player): 'Paradox Cave (Top)', 'Fairy Ascension Cave (Bottom)', 'Fairy Ascension Cave (Top)', 'Spiral Cave', 'Spiral Cave (Bottom)', 'Hookshot Fairy', 'Mimic Cave'] east_dw_entrances = ['Palace of Darkness', 'Pyramid Entrance', 'Pyramid Fairy', 'East Dark World Hint', - 'Palace of Darkness Hint', 'Dark Lake Hylia Fairy', 'Dark World Potion Shop', 'Pyramid Hole'] + 'Palace of Darkness Hint', 'Dark Lake Hylia Fairy', 'Dark Potion Shop', 'Pyramid Hole'] south_dw_entrances = ['Ice Palace', 'Swamp Palace', 'Dark Lake Hylia Ledge Fairy', 'Dark Lake Hylia Ledge Spike Cave', 'Dark Lake Hylia Ledge Hint', 'Hype Cave', 'Bonk Fairy (Dark)', 'Archery Game', 'Big Bomb Shop', 'Dark Lake Hylia Shop', ] voo_north_entrances = ['Thieves Town', 'Skull Woods First Section Door', 'Skull Woods Second Section Door (East)', 'Skull Woods Second Section Door (West)', 'Skull Woods Final Section', 'Bumper Cave (Bottom)', 'Bumper Cave (Top)', 'Brewery', 'C-Shaped House', 'Chest Game', - 'Dark World Hammer Peg Cave', 'Red Shield Shop', 'Dark Sanctuary Hint', - 'Fortune Teller (Dark)', 'Dark World Shop', 'Dark World Lumberjack Shop', + 'Hammer Peg Cave', 'Red Shield Shop', 'Dark Sanctuary Hint', + 'Fortune Teller (Dark)', 'Dark World Shop', 'Dark Lumberjack Shop', 'Skull Woods First Section Hole (West)', 'Skull Woods First Section Hole (East)', 'Skull Woods First Section Hole (North)', 'Skull Woods Second Section Hole'] mire_entrances = ['Misery Mire', 'Mire Shed', 'Dark Desert Hint', 'Dark Desert Fairy'] ddm_entrances = ['Turtle Rock', 'Dark Death Mountain Ledge (West)', 'Dark Death Mountain Ledge (East)', 'Turtle Rock Isolated Ledge Entrance', 'Superbunny Cave (Top)', 'Superbunny Cave (Bottom)', 'Hookshot Cave', 'Hookshot Cave Back Entrance', 'Ganons Tower', 'Spike Cave', - 'Cave Shop (Dark Death Mountain)', 'Dark Death Mountain Fairy'] + 'Dark Death Mountain Shop', 'Dark Death Mountain Fairy'] if inverted: east_dw_entrances.remove('Pyramid Entrance') @@ -152,7 +152,7 @@ def find_reachable_locations(state, player): inaccessible_regions_std = {'Desert Palace Mouth', 'Bumper Cave Ledge', 'Skull Woods Forest (West)', 'Dark Death Mountain Ledge', 'Dark Death Mountain Isolated Ledge', - 'Death Mountain Floating Island (Dark World)'} + 'Dark Death Mountain Floating Island'} inaccessible_regions_inv = {'Desert Palace Mouth', 'Maze Race Ledge', 'Desert Ledge', diff --git a/source/overworld/EntranceShuffle2.py b/source/overworld/EntranceShuffle2.py index 3f198733..37a63496 100644 --- a/source/overworld/EntranceShuffle2.py +++ b/source/overworld/EntranceShuffle2.py @@ -1197,9 +1197,9 @@ modes = { 'fixed_shops': { 'special': 'vanilla', 'condition': 'shopsanity', - 'entrances': ['Cave Shop (Dark Death Mountain)', 'Dark World Potion Shop', 'Dark World Lumberjack Shop', + 'entrances': ['Dark Death Mountain Shop', 'Dark Potion Shop', 'Dark Lumberjack Shop', 'Dark World Shop', 'Red Shield Shop', 'Kakariko Shop', 'Capacity Upgrade', - 'Cave Shop (Lake Hylia)'], + 'Lake Hylia Shop'], }, 'fixed_pottery': { 'special': 'vanilla', @@ -1211,14 +1211,14 @@ modes = { }, 'item_caves': { # shuffles shops/pottery if they weren't fixed in the last steps - 'entrances': ['Mimic Cave', 'Spike Cave', 'Mire Shed', 'Dark World Hammer Peg Cave', 'Chest Game', + 'entrances': ['Mimic Cave', 'Spike Cave', 'Mire Shed', 'Hammer Peg Cave', 'Chest Game', 'C-Shaped House', 'Brewery', 'Hype Cave', 'Big Bomb Shop', 'Pyramid Fairy', 'Ice Rod Cave', 'Dam', 'Bonk Rock Cave', 'Library', 'Potion Shop', 'Mini Moldorm Cave', 'Checkerboard Cave', 'Graveyard Cave', 'Cave 45', 'Sick Kids House', 'Blacksmiths Hut', 'Sahasrahlas Hut', 'Aginahs Cave', 'Chicken House', 'Kings Grave', 'Blinds Hideout', - 'Waterfall of Wishing', 'Cave Shop (Dark Death Mountain)', - 'Dark World Potion Shop', 'Dark World Lumberjack Shop', 'Dark World Shop', - 'Red Shield Shop', 'Kakariko Shop', 'Capacity Upgrade', 'Cave Shop (Lake Hylia)', + 'Waterfall of Wishing', 'Dark Death Mountain Shop', + 'Dark Potion Shop', 'Dark Lumberjack Shop', 'Dark World Shop', + 'Red Shield Shop', 'Kakariko Shop', 'Capacity Upgrade', 'Lake Hylia Shop', 'Lumberjack House', 'Snitch Lady (West)', 'Snitch Lady (East)', 'Tavern (Front)', 'Light World Bomb Hut', '20 Rupee Cave', '50 Rupee Cave', 'Hookshot Fairy', 'Palace of Darkness Hint', 'Dark Lake Hylia Ledge Spike Cave', @@ -1272,9 +1272,9 @@ modes = { 'fixed_shops': { 'special': 'vanilla', 'condition': 'shopsanity', - 'entrances': ['Cave Shop (Dark Death Mountain)', 'Dark World Potion Shop', 'Dark World Lumberjack Shop', + 'entrances': ['Dark Death Mountain Shop', 'Dark Potion Shop', 'Dark Lumberjack Shop', 'Dark World Shop', 'Red Shield Shop', 'Kakariko Shop', 'Capacity Upgrade', - 'Cave Shop (Lake Hylia)'], + 'Lake Hylia Shop'], }, 'fixed_pottery': { 'special': 'vanilla', @@ -1286,14 +1286,14 @@ modes = { }, 'item_caves': { # shuffles shops/pottery if they weren't fixed in the last steps - 'entrances': ['Mimic Cave', 'Spike Cave', 'Mire Shed', 'Dark World Hammer Peg Cave', 'Chest Game', + 'entrances': ['Mimic Cave', 'Spike Cave', 'Mire Shed', 'Hammer Peg Cave', 'Chest Game', 'C-Shaped House', 'Brewery', 'Hype Cave', 'Big Bomb Shop', 'Pyramid Fairy', 'Ice Rod Cave', 'Dam', 'Bonk Rock Cave', 'Library', 'Potion Shop', 'Mini Moldorm Cave', 'Checkerboard Cave', 'Graveyard Cave', 'Cave 45', 'Sick Kids House', 'Blacksmiths Hut', 'Sahasrahlas Hut', 'Aginahs Cave', 'Chicken House', 'Kings Grave', 'Blinds Hideout', - 'Waterfall of Wishing', 'Cave Shop (Dark Death Mountain)', - 'Dark World Potion Shop', 'Dark World Lumberjack Shop', 'Dark World Shop', - 'Red Shield Shop', 'Kakariko Shop', 'Capacity Upgrade', 'Cave Shop (Lake Hylia)', + 'Waterfall of Wishing', 'Dark Death Mountain Shop', + 'Dark Potion Shop', 'Dark Lumberjack Shop', 'Dark World Shop', + 'Red Shield Shop', 'Kakariko Shop', 'Capacity Upgrade', 'Lake Hylia Shop', 'Lumberjack House', 'Snitch Lady (West)', 'Snitch Lady (East)', 'Tavern (Front)', 'Light World Bomb Hut', '20 Rupee Cave', '50 Rupee Cave', 'Hookshot Fairy', 'Palace of Darkness Hint', 'Dark Lake Hylia Ledge Spike Cave', @@ -1567,12 +1567,12 @@ entrance_map = { single_entrance_map = { 'Mimic Cave': 'Mimic Cave', 'Dark Death Mountain Fairy': 'Dark Death Mountain Healer Fairy', - 'Cave Shop (Dark Death Mountain)': 'Cave Shop (Dark Death Mountain)', 'Spike Cave': 'Spike Cave', + 'Dark Death Mountain Shop': 'Dark Death Mountain Shop', 'Spike Cave': 'Spike Cave', 'Dark Desert Fairy': 'Dark Desert Healer Fairy', 'Dark Desert Hint': 'Dark Desert Hint', 'Mire Shed': 'Mire Shed', - 'Archery Game': 'Archery Game', 'Dark World Potion Shop': 'Dark World Potion Shop', - 'Dark World Lumberjack Shop': 'Dark World Lumberjack Shop', 'Dark World Shop': 'Village of Outcasts Shop', + 'Archery Game': 'Archery Game', 'Dark Potion Shop': 'Dark Potion Shop', + 'Dark Lumberjack Shop': 'Dark Lumberjack Shop', 'Dark World Shop': 'Village of Outcasts Shop', 'Fortune Teller (Dark)': 'Fortune Teller (Dark)', 'Dark Sanctuary Hint': 'Dark Sanctuary Hint', - 'Red Shield Shop': 'Red Shield Shop', 'Dark World Hammer Peg Cave': 'Dark World Hammer Peg Cave', + 'Red Shield Shop': 'Red Shield Shop', 'Hammer Peg Cave': 'Hammer Peg Cave', 'Chest Game': 'Chest Game', 'C-Shaped House': 'C-Shaped House', 'Brewery': 'Brewery', 'Bonk Fairy (Dark)': 'Bonk Fairy (Dark)', 'Hype Cave': 'Hype Cave', 'Dark Lake Hylia Ledge Hint': 'Dark Lake Hylia Ledge Hint', @@ -1591,9 +1591,9 @@ single_entrance_map = { 'Snitch Lady (West)': 'Snitch Lady (West)', 'Snitch Lady (East)': 'Snitch Lady (East)', 'Fortune Teller (Light)': 'Fortune Teller (Light)', 'Lost Woods Gamble': 'Lost Woods Gamble', 'Sick Kids House': 'Sick Kids House', 'Blacksmiths Hut': 'Blacksmiths Hut', 'Capacity Upgrade': 'Capacity Upgrade', - 'Cave Shop (Lake Hylia)': 'Cave Shop (Lake Hylia)', 'Sahasrahlas Hut': 'Sahasrahlas Hut', + 'Lake Hylia Shop': 'Lake Hylia Shop', 'Sahasrahlas Hut': 'Sahasrahlas Hut', 'Aginahs Cave': 'Aginahs Cave', 'Chicken House': 'Chicken House', 'Tavern North': 'Tavern', - 'Kings Grave': 'Kings Grave', 'Desert Fairy': 'Desert Healer Fairy', 'Light Hype Fairy': 'Swamp Healer Fairy', + 'Kings Grave': 'Kings Grave', 'Desert Fairy': 'Desert Healer Fairy', 'Light Hype Fairy': 'Light Hype Fairy', 'Lake Hylia Fortune Teller': 'Lake Hylia Fortune Teller', 'Lake Hylia Fairy': 'Lake Hylia Healer Fairy', 'Bonk Fairy (Light)': 'Bonk Fairy (Light)', 'Lumberjack House': 'Lumberjack House', 'Dam': 'Dam', 'Blinds Hideout': 'Blinds Hideout', 'Waterfall of Wishing': 'Waterfall of Wishing' @@ -1607,10 +1607,10 @@ default_dw = { 'Bumper Cave Exit (Bottom)', 'Superbunny Cave Exit (Top)', 'Superbunny Cave Exit (Bottom)', 'Hookshot Cave Front Exit', 'Hookshot Cave Back Exit', 'Pyramid Exit', 'Dark Lake Hylia Healer Fairy', 'Dark Lake Hylia Ledge Healer Fairy', 'Dark Desert Healer Fairy', - 'Dark Death Mountain Healer Fairy', 'Cave Shop (Dark Death Mountain)', 'Pyramid Fairy', 'East Dark World Hint', + 'Dark Death Mountain Healer Fairy', 'Dark Death Mountain Shop', 'Pyramid Fairy', 'East Dark World Hint', 'Palace of Darkness Hint', 'Village of Outcasts Shop', 'Dark Lake Hylia Shop', - 'Dark World Lumberjack Shop', 'Dark World Potion Shop', 'Dark Lake Hylia Ledge Spike Cave', - 'Dark Lake Hylia Ledge Hint', 'Hype Cave', 'Brewery', 'C-Shaped House', 'Chest Game', 'Dark World Hammer Peg Cave', + 'Dark Lumberjack Shop', 'Dark Potion Shop', 'Dark Lake Hylia Ledge Spike Cave', + 'Dark Lake Hylia Ledge Hint', 'Hype Cave', 'Brewery', 'C-Shaped House', 'Chest Game', 'Hammer Peg Cave', 'Red Shield Shop', 'Dark Sanctuary Hint', 'Fortune Teller (Dark)', 'Archery Game', 'Mire Shed', 'Dark Desert Hint', 'Spike Cave', 'Skull Back Drop', 'Skull Left Drop', 'Skull Pinball', 'Skull Pot Circle', 'Pyramid' #'Big Bomb Shop', 'Ganons Tower Exit', @@ -1629,8 +1629,8 @@ default_lw = { 'Paradox Cave Exit (Middle)', 'Paradox Cave Exit (Top)', 'Fairy Ascension Cave Exit (Bottom)', 'Fairy Ascension Cave Exit (Top)', 'Spiral Cave Exit', 'Spiral Cave Exit (Top)', 'Waterfall of Wishing', 'Dam', 'Blinds Hideout', 'Lumberjack House', 'Bonk Fairy (Light)', 'Bonk Fairy (Dark)', 'Lake Hylia Healer Fairy', - 'Swamp Healer Fairy', 'Desert Healer Fairy', 'Fortune Teller (Light)', 'Lake Hylia Fortune Teller', 'Kings Grave', 'Tavern', - 'Chicken House', 'Aginahs Cave', 'Sahasrahlas Hut', 'Cave Shop (Lake Hylia)', 'Capacity Upgrade', 'Blacksmiths Hut', + 'Light Hype Fairy', 'Desert Healer Fairy', 'Fortune Teller (Light)', 'Lake Hylia Fortune Teller', 'Kings Grave', 'Tavern', + 'Chicken House', 'Aginahs Cave', 'Sahasrahlas Hut', 'Lake Hylia Shop', 'Capacity Upgrade', 'Blacksmiths Hut', 'Sick Kids House', 'Lost Woods Gamble', 'Snitch Lady (East)', 'Snitch Lady (West)', 'Bush Covered House', 'Tavern (Front)', 'Light World Bomb Hut', 'Kakariko Shop', 'Cave 45', 'Graveyard Cave', 'Checkerboard Cave', 'Mini Moldorm Cave', 'Long Fairy Cave', 'Good Bee Cave', '20 Rupee Cave', '50 Rupee Cave', 'Ice Rod Cave', @@ -1647,7 +1647,7 @@ LW_Entrances = ['Elder House (East)', 'Elder House (West)', 'Two Brothers House 'Desert Palace Entrance (East)', 'Eastern Palace', 'Tower of Hera', 'Hyrule Castle Entrance (West)', 'Hyrule Castle Entrance (East)', 'Hyrule Castle Entrance (South)', 'Agahnims Tower', 'Blinds Hideout', 'Lake Hylia Fairy', 'Light Hype Fairy', 'Desert Fairy', 'Tavern North', 'Chicken House', 'Aginahs Cave', - 'Sahasrahlas Hut', 'Cave Shop (Lake Hylia)', 'Blacksmiths Hut', 'Sick Kids House', 'Lost Woods Gamble', + 'Sahasrahlas Hut', 'Lake Hylia Shop', 'Blacksmiths Hut', 'Sick Kids House', 'Lost Woods Gamble', 'Fortune Teller (Light)', 'Snitch Lady (East)', 'Snitch Lady (West)', 'Bush Covered House', 'Tavern (Front)', 'Light World Bomb Hut', 'Kakariko Shop', 'Mini Moldorm Cave', 'Long Fairy Cave', 'Good Bee Cave', '20 Rupee Cave', '50 Rupee Cave', 'Ice Rod Cave', 'Library', 'Potion Shop', 'Dam', @@ -1666,10 +1666,10 @@ DW_Entrances = ['Bumper Cave (Bottom)', 'Superbunny Cave (Top)', 'Superbunny Ca 'Bonk Fairy (Dark)', 'Dark Sanctuary Hint', 'Dark Lake Hylia Fairy', 'C-Shaped House', 'Big Bomb Shop', 'Dark Death Mountain Fairy', 'Dark Lake Hylia Shop', 'Dark World Shop', 'Red Shield Shop', 'Mire Shed', 'East Dark World Hint', 'Dark Desert Hint', 'Spike Cave', 'Palace of Darkness Hint', - 'Dark Lake Hylia Ledge Spike Cave', 'Cave Shop (Dark Death Mountain)', 'Dark World Potion Shop', - 'Pyramid Fairy', 'Archery Game', 'Dark World Lumberjack Shop', 'Hype Cave', 'Brewery', + 'Dark Lake Hylia Ledge Spike Cave', 'Dark Death Mountain Shop', 'Dark Potion Shop', + 'Pyramid Fairy', 'Archery Game', 'Dark Lumberjack Shop', 'Hype Cave', 'Brewery', 'Dark Lake Hylia Ledge Hint', 'Chest Game', 'Dark Desert Fairy', 'Dark Lake Hylia Ledge Fairy', - 'Fortune Teller (Dark)', 'Dark World Hammer Peg Cave', 'Pyramid Entrance', + 'Fortune Teller (Dark)', 'Hammer Peg Cave', 'Pyramid Entrance', 'Skull Woods First Section Door', 'Skull Woods Second Section Door (East)', 'Skull Woods Second Section Door (West)'] @@ -1689,16 +1689,16 @@ Inverted_DW_Must_Exit = [] Isolated_LH_Doors_Open = ['Mimic Cave', 'Kings Grave', 'Waterfall of Wishing', 'Desert Palace Entrance (South)', 'Desert Palace Entrance (North)', 'Capacity Upgrade', 'Ice Palace', 'Skull Woods Final Section', 'Skull Woods Second Section Door (West)', - 'Dark World Hammer Peg Cave', 'Turtle Rock Isolated Ledge Entrance', + 'Hammer Peg Cave', 'Turtle Rock Isolated Ledge Entrance', 'Dark Death Mountain Ledge (West)', 'Dark Death Mountain Ledge (East)', - 'Dark World Shop', 'Dark World Potion Shop'] + 'Dark World Shop', 'Dark Potion Shop'] Isolated_LH_Doors_Inv = ['Kings Grave', 'Waterfall of Wishing', 'Desert Palace Entrance (South)', 'Desert Palace Entrance (North)', 'Capacity Upgrade', 'Ice Palace', 'Skull Woods Final Section', 'Skull Woods Second Section Door (West)', - 'Dark World Hammer Peg Cave', 'Turtle Rock Isolated Ledge Entrance', + 'Hammer Peg Cave', 'Turtle Rock Isolated Ledge Entrance', 'Dark Death Mountain Ledge (West)', 'Dark Death Mountain Ledge (East)', - 'Dark World Shop', 'Dark World Potion Shop'] + 'Dark World Shop', 'Dark Potion Shop'] # inverted doesn't like really like - Paradox Top or Tower of Hera LH_DM_Connector_List = { @@ -1707,19 +1707,19 @@ LH_DM_Connector_List = { 'Tower of Hera', 'Spectacle Rock Cave Peak', 'Spectacle Rock Cave (Bottom)', 'Spectacle Rock Cave', 'Paradox Cave (Bottom)', 'Paradox Cave (Middle)', 'Paradox Cave (Top)', 'Hookshot Fairy', 'Spike Cave', 'Dark Death Mountain Fairy', 'Ganons Tower', 'Superbunny Cave (Top)', 'Superbunny Cave (Bottom)', - 'Hookshot Cave', 'Cave Shop (Dark Death Mountain)', 'Turtle Rock'} + 'Hookshot Cave', 'Dark Death Mountain Shop', 'Turtle Rock'} LH_DM_Exit_Forbidden = { 'Turtle Rock Isolated Ledge Entrance', 'Mimic Cave', 'Hookshot Cave Back Entrance', 'Dark Death Mountain Ledge (West)', 'Dark Death Mountain Ledge (East)', 'Desert Palace Entrance (South)', - 'Ice Palace', 'Waterfall of Wishing', 'Kings Grave', 'Dark World Hammer Peg Cave', 'Capacity Upgrade', + 'Ice Palace', 'Waterfall of Wishing', 'Kings Grave', 'Hammer Peg Cave', 'Capacity Upgrade', 'Skull Woods Final Section', 'Skull Woods Second Section Door (West)' -} # omissions from Isolated Starts: 'Desert Palace Entrance (North)', 'Dark World Shop', 'Dark World Potion Shop' +} # omissions from Isolated Starts: 'Desert Palace Entrance (North)', 'Dark World Shop', 'Dark Potion Shop' # in inverted we put dark sanctuary in west dark world for now Inverted_Dark_Sanctuary_Doors = [ 'Dark Sanctuary Hint', 'Fortune Teller (Dark)', 'Brewery', 'C-Shaped House', 'Chest Game', - 'Dark World Lumberjack Shop', 'Red Shield Shop', 'Bumper Cave (Bottom)', 'Bumper Cave (Top)', 'Thieves Town' + 'Dark Lumberjack Shop', 'Red Shield Shop', 'Bumper Cave (Bottom)', 'Bumper Cave (Top)', 'Thieves Town' ] Connector_List = [['Elder House Exit (East)', 'Elder House Exit (West)'], @@ -1788,7 +1788,7 @@ Simple_DM_Non_Connectors = {'Old Man Cave Ledge', 'Spiral Cave (Top)', 'Superbun Blacksmith_Options = [ 'Blinds Hideout', 'Lake Hylia Fairy', 'Light Hype Fairy', 'Desert Fairy', 'Tavern North', 'Chicken House', - 'Aginahs Cave', 'Sahasrahlas Hut', 'Cave Shop (Lake Hylia)', 'Blacksmiths Hut', 'Sick Kids House', 'Lost Woods Gamble', + 'Aginahs Cave', 'Sahasrahlas Hut', 'Lake Hylia Shop', 'Blacksmiths Hut', 'Sick Kids House', 'Lost Woods Gamble', 'Fortune Teller (Light)', 'Snitch Lady (East)', 'Snitch Lady (West)', 'Bush Covered House', 'Tavern (Front)', 'Light World Bomb Hut', 'Kakariko Shop', 'Mini Moldorm Cave', 'Long Fairy Cave', 'Good Bee Cave', '20 Rupee Cave', '50 Rupee Cave', 'Ice Rod Cave', 'Library', 'Potion Shop', 'Dam', 'Lumberjack House', 'Lake Hylia Fortune Teller', @@ -1801,9 +1801,9 @@ Bomb_Shop_Options = [ 'Kings Grave', 'Bonk Fairy (Light)', 'Hookshot Fairy', 'East Dark World Hint', 'Palace of Darkness Hint', 'Dark Lake Hylia Fairy', 'Dark Lake Hylia Ledge Fairy', 'Dark Lake Hylia Ledge Spike Cave', 'Dark Lake Hylia Ledge Hint', 'Hype Cave', 'Bonk Fairy (Dark)', 'Brewery', 'C-Shaped House', 'Chest Game', - 'Dark World Hammer Peg Cave', 'Red Shield Shop', 'Dark Sanctuary Hint', 'Fortune Teller (Dark)', 'Dark World Shop', - 'Dark World Lumberjack Shop', 'Dark World Potion Shop', 'Archery Game', 'Mire Shed', 'Dark Desert Hint', - 'Dark Desert Fairy', 'Spike Cave', 'Cave Shop (Dark Death Mountain)', 'Dark Death Mountain Fairy', 'Mimic Cave', + 'Hammer Peg Cave', 'Red Shield Shop', 'Dark Sanctuary Hint', 'Fortune Teller (Dark)', 'Dark World Shop', + 'Dark Lumberjack Shop', 'Dark Potion Shop', 'Archery Game', 'Mire Shed', 'Dark Desert Hint', + 'Dark Desert Fairy', 'Spike Cave', 'Dark Death Mountain Shop', 'Dark Death Mountain Fairy', 'Mimic Cave', 'Big Bomb Shop', 'Dark Lake Hylia Shop', 'Bumper Cave (Top)', 'Links House', 'Hyrule Castle Entrance (South)', 'Misery Mire', 'Thieves Town', 'Bumper Cave (Bottom)', 'Swamp Palace', 'Hyrule Castle Secret Entrance Stairs', 'Skull Woods First Section Door', 'Skull Woods Second Section Door (East)', @@ -1823,9 +1823,9 @@ Inverted_Bomb_Shop_Options = [ 'Kings Grave', 'Bonk Fairy (Light)', 'Hookshot Fairy', 'East Dark World Hint', 'Palace of Darkness Hint', 'Dark Lake Hylia Fairy', 'Dark Lake Hylia Ledge Fairy', 'Dark Lake Hylia Ledge Spike Cave', 'Dark Lake Hylia Ledge Hint', 'Hype Cave', 'Bonk Fairy (Dark)', 'Brewery', 'C-Shaped House', 'Chest Game', - 'Dark World Hammer Peg Cave', 'Red Shield Shop', 'Fortune Teller (Dark)', 'Dark World Shop', - 'Dark World Lumberjack Shop', 'Dark World Potion Shop', 'Archery Game', 'Mire Shed', 'Dark Desert Hint', - 'Dark Desert Fairy', 'Spike Cave', 'Cave Shop (Dark Death Mountain)', 'Dark Death Mountain Fairy', 'Mimic Cave', + 'Hammer Peg Cave', 'Red Shield Shop', 'Fortune Teller (Dark)', 'Dark World Shop', + 'Dark Lumberjack Shop', 'Dark Potion Shop', 'Archery Game', 'Mire Shed', 'Dark Desert Hint', + 'Dark Desert Fairy', 'Spike Cave', 'Dark Death Mountain Shop', 'Dark Death Mountain Fairy', 'Mimic Cave', 'Dark Lake Hylia Shop', 'Bumper Cave (Top)', 'Hyrule Castle Entrance (South)', 'Misery Mire', 'Thieves Town', 'Bumper Cave (Bottom)', 'Swamp Palace', 'Hyrule Castle Secret Entrance Stairs', 'Skull Woods First Section Door', 'Skull Woods Second Section Door (East)', @@ -1844,136 +1844,153 @@ Inverted_Bomb_Shop_Options = [ # these are connections that cannot be shuffled and always exist. # They link together separate parts of the world we need to divide into regions mandatory_connections = [('Links House S&Q', 'Links House'), - ('Lake Hylia Central Island Pier', 'Lake Hylia Central Island'), - ('Lake Hylia Central Island Water Drop', 'Lake Hylia Water'), - ('Potion Shop Water Drop', 'Lake Hylia Water'), - ('Northeast Light World Water Drop', 'Lake Hylia Water'), - ('Zora Waterfall Water Drop', 'Lake Hylia Water'), - ('Light World Water Drop', 'Lake Hylia Water'), - ('East Dark World Water Drop', 'Dark Lake Hylia Water'), - ('South Dark World Water Drop', 'Dark Lake Hylia Water'), - ('Southeast Dark World Water Drop', 'Dark Lake Hylia Water'), - ('Northeast Dark World Water Drop', 'Dark Lake Hylia Water'), - ('Catfish Water Drop', 'Dark Lake Hylia Water'), - ('Ice Palace Leave Water Drop', 'Dark Lake Hylia Water'), - ('West Dark World Water Drop', 'Dark Lake Hylia Water'), - ('Zoras Domain', 'Zoras Domain'), - ('Kings Grave Outer Rocks', 'Kings Grave Area'), - ('Kings Grave Inner Rocks', 'Light World'), - ('Kakariko Well (top to bottom)', 'Kakariko Well (bottom)'), - ('Kakariko Well (top to back)', 'Kakariko Well (back)'), - ('Master Sword Meadow', 'Master Sword Meadow'), - ('Hobo Pier', 'Hobo Bridge'), - ('Bat Cave Ledge Peg', 'Bat Cave Ledge'), - ('Bat Cave Ledge Peg (East)', 'Light World'), - ('Bat Cave Door', 'Bat Cave (left)'), + + # underworld ('Lost Woods Hideout (top to bottom)', 'Lost Woods Hideout (bottom)'), ('Lumberjack Tree (top to bottom)', 'Lumberjack Tree (bottom)'), - ('Blinds Hideout N', 'Blinds Hideout (Top)'), - ('Light World Pier', 'Light World'), - ('Potion Shop Pier', 'Potion Shop Area'), - ('Wooden Bridge Bush (North)', 'Light World'), - ('Wooden Bridge Bush (South)', 'Potion Shop Area'), - ('Potion Shop Rock (South)', 'Northeast Light World'), - ('Potion Shop Rock (North)', 'Potion Shop Area'), - ('Desert Statue Move', 'Desert Palace Stairs'), - ('Desert Palace Stairs Drop', 'Light World'), - ('Desert Palace Entrance (North) Rocks', 'Desert Palace Entrance (North) Spot'), - ('Desert Ledge Return Rocks', 'Desert Ledge'), - ('Sewer Drop', 'Sewers Rat Path'), - ('Death Mountain Entrance Rock', 'Death Mountain Entrance'), - ('Death Mountain Entrance Drop', 'Light World'), - ('Spectacle Rock Cave Drop', 'Spectacle Rock Cave (Bottom)'), - ('Spectacle Rock Cave Peak Drop', 'Spectacle Rock Cave (Bottom)'), ('Death Mountain Return Cave E', 'Death Mountain Return Cave (right)'), ('Death Mountain Return Cave W', 'Death Mountain Return Cave (left)'), - ('Death Mountain Return Ledge Drop', 'Light World'), ('Old Man Cave Dropdown', 'Old Man Cave'), + ('Spectacle Rock Cave Drop', 'Spectacle Rock Cave (Bottom)'), + ('Spectacle Rock Cave Peak Drop', 'Spectacle Rock Cave (Bottom)'), ('Old Man House Front to Back', 'Old Man House Back'), ('Old Man House Back to Front', 'Old Man House'), - ('DM Broken Bridge (West)', 'East Death Mountain (Bottom)'), - ('DM Broken Bridge (East)', 'Death Mountain (West Bottom)'), - ('East Death Mountain Drop', 'East Death Mountain (Bottom)'), - ('Spiral Cave Ledge Access', 'Spiral Cave Ledge'), - ('Spiral Cave Ledge Drop', 'East Death Mountain (Bottom)'), ('Spiral Cave (top to bottom)', 'Spiral Cave (Bottom)'), - ('DM Hammer Bridge (West)', 'East Death Mountain (Top)'), - ('DM Hammer Bridge (East)', 'Death Mountain (Top)'), - ('Death Mountain Drop', 'Death Mountain (West Bottom)'), - ('East Dark World Pier', 'East Dark World'), - ('Hammer Bridge Pegs (North)', 'South Dark World'), - ('Hammer Bridge Pegs (South)', 'East Dark World'), - ('Village of Outcasts Heavy Rock', 'West Dark World'), - ('Village of Outcasts Drop', 'South Dark World'), - ('Village of Outcasts Eastern Rocks', 'Hammer Peg Area'), - ('Village of Outcasts Pegs', 'Dark Grassy Lawn'), - ('Peg Area Rocks', 'West Dark World'), - ('Grassy Lawn Pegs', 'West Dark World'), - ('West Dark World Gap', 'West Dark World'), - ('East Dark World Broken Bridge Pass', 'East Dark World'), - ('Dark Witch Rock (North)', 'Northeast Dark World'), - ('Dark Witch Rock (South)', 'Catfish Area'), - ('Northeast Dark World Broken Bridge Pass', 'Northeast Dark World'), - ('Bumper Cave Entrance Rock', 'Bumper Cave Entrance'), - ('Bumper Cave Entrance Drop', 'West Dark World'), - ('Bumper Cave Ledge Drop', 'West Dark World'), - ('Bumper Cave Bottom to Top', 'Bumper Cave (top)'), - ('Bumper Cave Top To Bottom', 'Bumper Cave (bottom)'), - ('Skull Woods Forest', 'Skull Woods Forest'), ('Paradox Cave Push Block Reverse', 'Paradox Cave Chest Area'), ('Paradox Cave Push Block', 'Paradox Cave Front'), ('Paradox Cave Chest Area NE', 'Paradox Cave Bomb Area'), ('Paradox Cave Bomb Jump', 'Paradox Cave'), ('Paradox Cave Drop', 'Paradox Cave Chest Area'), - ('Light World Death Mountain Shop', 'Light World Death Mountain Shop'), - ('Fairy Ascension Rocks', 'Fairy Ascension Plateau'), - ('Fairy Ascension Drop', 'East Death Mountain (Bottom)'), - ('Fairy Ascension Ledge Drop', 'Fairy Ascension Plateau'), + ('Paradox Shop', 'Paradox Shop'), ('Fairy Ascension Cave Climb', 'Fairy Ascension Cave (Top)'), ('Fairy Ascension Cave Pots', 'Fairy Ascension Cave (Bottom)'), ('Fairy Ascension Cave Drop', 'Fairy Ascension Cave (Drop)'), - ('Dark Death Mountain Drop (East)', 'Dark Death Mountain (East Bottom)'), - ('Superbunny Cave Climb', 'Superbunny Cave (Top)'), + ('Sewer Drop', 'Sewers Rat Path'), + ('Kakariko Well (top to bottom)', 'Kakariko Well (bottom)'), + ('Kakariko Well (top to back)', 'Kakariko Well (back)'), + ('Blinds Hideout N', 'Blinds Hideout (Top)'), + ('Bat Cave Door', 'Bat Cave (left)'), + ('Hookshot Cave Front to Middle', 'Hookshot Cave (Middle)'), ('Hookshot Cave Middle to Front', 'Hookshot Cave (Front)'), ('Hookshot Cave Middle to Back', 'Hookshot Cave (Back)'), ('Hookshot Cave Back to Middle', 'Hookshot Cave (Middle)'), ('Hookshot Cave Bonk Path', 'Hookshot Cave (Bonk Islands)'), ('Hookshot Cave Hook Path', 'Hookshot Cave (Hook Islands)'), + ('Superbunny Cave Climb', 'Superbunny Cave (Top)'), + ('Bumper Cave Bottom to Top', 'Bumper Cave (top)'), + ('Bumper Cave Top To Bottom', 'Bumper Cave (bottom)'), ('Ganon Drop', 'Bottom of Pyramid'), - ('Pyramid Drop', 'East Dark World'), - ('Maze Race Ledge Drop', 'Light World'), - ('Hyrule Castle Ledge Drop', 'Light World'), - ('Desert Ledge Drop', 'Light World'), + + # water entry + ('Light World Water Drop', 'Lake Hylia Water'), + ('Potion Shop Water Drop', 'Lake Hylia Water'), + ('Northeast Light World Water Drop', 'Lake Hylia Water'), + ('Lake Hylia Central Island Water Drop', 'Lake Hylia Water'), + ('Zora Waterfall Water Drop', 'Lake Hylia Water'), + + ('West Dark World Water Drop', 'Dark Lake Hylia Water'), + ('South Dark World Water Drop', 'Dark Lake Hylia Water'), + ('East Dark World Water Drop', 'Dark Lake Hylia Water'), + ('Northeast Dark World Water Drop', 'Dark Lake Hylia Water'), + ('Southeast Dark World Water Drop', 'Dark Lake Hylia Water'), + ('Catfish Water Drop', 'Dark Lake Hylia Water'), + ('Ice Palace Leave Water Drop', 'Dark Lake Hylia Water'), + + # water exit + ('Lake Hylia Central Island Pier', 'Lake Hylia Central Island'), + ('Hobo Pier', 'Hobo Bridge'), + ('Light World Pier', 'Light World'), # there are several piers in-game, only one needs to be modeled + ('Potion Shop Pier', 'Potion Shop Area'), ('Lake Hylia Whirlpool', 'Northeast Light World'), - ('Hyrule Castle Ledge Courtyard Drop', 'Hyrule Castle Courtyard'), + ('Waterfall Fairy Access', 'Zora Waterfall Entryway'), + + ('East Dark World Pier', 'East Dark World'), ('Southeast Dark World Pier', 'Southeast Dark World'), ('Northeast Dark World River Pier', 'Northeast Dark World'), - ('Fairy Ascension Ledge Access', 'Fairy Ascension Ledge'), - ('Hyrule Castle Courtyard Bush (North)', 'Hyrule Castle Courtyard'), - ('Hyrule Castle Courtyard Bush (South)', 'Hyrule Castle Secret Entrance Area'), - ('Turtle Rock Drop', 'Dark Death Mountain (Top)'), - ('Floating Island Drop', 'Dark Death Mountain (Top)'), - ('Dark Desert Drop', 'Dark Desert'), + + # terrain + ('Master Sword Meadow', 'Master Sword Meadow'), + ('DM Hammer Bridge (West)', 'East Death Mountain (Top)'), + ('DM Hammer Bridge (East)', 'West Death Mountain (Top)'), + ('DM Broken Bridge (West)', 'East Death Mountain (Bottom)'), + ('DM Broken Bridge (East)', 'West Death Mountain (Bottom)'), + ('Fairy Ascension Rocks', 'Fairy Ascension Plateau'), + ('Death Mountain Entrance Rock', 'Death Mountain Entrance'), + ('Zoras Domain', 'Zoras Domain'), + ('Kings Grave Rocks (Outer)', 'Kings Grave Area'), + ('Kings Grave Rocks (Inner)', 'Light World'), + ('Potion Shop Rock (South)', 'Northeast Light World'), + ('Potion Shop Rock (North)', 'Potion Shop Area'), ('Kakariko Yard Bush (North)', 'Light World'), ('Kakariko Yard Bush (South)', 'Bush Covered Lawn'), - ('Bush Covered Lawn Mirror Spot', 'Dark Grassy Lawn'), ('Kakariko Southwest Bush (South)', 'Light World'), ('Kakariko Southwest Bush (North)', 'Bomb Hut Area'), ('Hyrule Castle Main Gate', 'Hyrule Castle Courtyard'), - ('Spectacle Rock Drop', 'Death Mountain (Top)'), - ('Desert Teleporter Drop', 'Light World'), - ('Dark Death Mountain Drop (West)', 'Dark Death Mountain (West Bottom)'), + ('Hyrule Castle Main Gate (North)', 'Light World'), + ('Hyrule Castle Courtyard Bush (North)', 'Hyrule Castle Courtyard'), + ('Hyrule Castle Courtyard Bush (South)', 'Hyrule Castle Secret Entrance Area'), + ('Wooden Bridge Bush (North)', 'Light World'), + ('Wooden Bridge Bush (South)', 'Potion Shop Area'), + ('Bat Cave Ledge Peg', 'Bat Cave Ledge'), + ('Bat Cave Ledge Peg (East)', 'Light World'), + ('Desert Statue Move', 'Desert Palace Stairs'), + ('Desert Ledge Rocks (Outer)', 'Desert Palace Entrance (North) Spot'), + ('Desert Ledge Rocks (Inner)', 'Desert Ledge'), + + ('Skull Woods Forest', 'Skull Woods Forest'), + ('Bumper Cave Entrance Rock', 'Bumper Cave Entrance'), + ('Dark Witch Rock (North)', 'Northeast Dark World'), + ('Dark Witch Rock (South)', 'Catfish Area'), + ('Grassy Lawn Pegs (Bottom)', 'Dark Grassy Lawn'), + ('Grassy Lawn Pegs (Top)', 'West Dark World'), + ('West Dark World Gap', 'West Dark World'), + ('Broken Bridge Pass (Top)', 'East Dark World'), + ('Broken Bridge Pass (Bottom)', 'Northeast Dark World'), + ('Peg Area Rocks (Left)', 'Hammer Peg Area'), + ('Peg Area Rocks (Right)', 'West Dark World'), + ('Village of Outcasts Heavy Rock', 'West Dark World'), + ('Hammer Bridge Pegs (North)', 'South Dark World'), + ('Hammer Bridge Pegs (South)', 'East Dark World'), + + # ledge drops + ('Spectacle Rock Drop', 'West Death Mountain (Top)'), + ('Death Mountain Drop', 'West Death Mountain (Bottom)'), + ('Spiral Cave Ledge Access', 'Spiral Cave Ledge'), + ('Fairy Ascension Ledge Access', 'Fairy Ascension Ledge'), + ('East Death Mountain Drop', 'East Death Mountain (Bottom)'), + ('Spiral Cave Ledge Drop', 'East Death Mountain (Bottom)'), + ('Fairy Ascension Ledge Drop', 'Fairy Ascension Plateau'), + ('Fairy Ascension Drop', 'East Death Mountain (Bottom)'), + ('Death Mountain Entrance Drop', 'Light World'), + ('Death Mountain Return Ledge Drop', 'Light World'), ('Graveyard Ledge Drop', 'Light World'), - ('Cave 45 Ledge Drop', 'Light World'), + ('Hyrule Castle Ledge Courtyard Drop', 'Hyrule Castle Courtyard'), + ('Hyrule Castle Ledge Drop', 'Light World'), + ('Maze Race Ledge Drop', 'Light World'), + ('Desert Ledge Drop', 'Light World'), + ('Desert Palace Mouth Drop', 'Light World'), ('Checkerboard Ledge Drop', 'Light World'), - ('Hyrule Castle Main Gate (North)', 'Light World') + ('Desert Teleporter Drop', 'Light World'), + ('Cave 45 Ledge Drop', 'Light World'), + + ('Dark Death Mountain Drop (West)', 'West Dark Death Mountain (Bottom)'), + ('Dark Death Mountain Drop (East)', 'East Dark Death Mountain (Bottom)'), + ('Floating Island Drop', 'Dark Death Mountain (Top)'), + ('Turtle Rock Drop', 'Dark Death Mountain (Top)'), + ('Bumper Cave Entrance Drop', 'West Dark World'), + ('Bumper Cave Ledge Drop', 'West Dark World'), + ('Pyramid Drop', 'East Dark World'), + ('Village of Outcasts Drop', 'South Dark World'), + ('Dark Desert Drop', 'Dark Desert') ] open_mandatory_connections = [('Sanctuary S&Q', 'Sanctuary'), ('Old Man S&Q', 'Old Man House'), ('Other World S&Q', 'East Dark World'), - ('Flute Spot 1', 'Death Mountain (West Bottom)'), + + # flute + ('Flute Spot 1', 'West Death Mountain (Bottom)'), ('Flute Spot 2', 'Potion Shop Area'), ('Flute Spot 3', 'Light World'), ('Flute Spot 4', 'Light World'), @@ -1986,51 +2003,50 @@ open_mandatory_connections = [('Sanctuary S&Q', 'Sanctuary'), ('ZLW Flute', 'Flute Sky'), ('DM Flute', 'Flute Sky'), ('EDM Flute', 'Flute Sky'), - ('Lake Hylia Central Island Teleporter', 'Dark Lake Hylia Central Island'), - ('Kings Grave Mirror Spot', 'Kings Grave Area'), - ('Top of Pyramid', 'East Dark World'), - ('Lake Hylia Island Mirror Spot', 'Lake Hylia Island'), - ('Lake Hylia Central Island Mirror Spot', 'Lake Hylia Central Island'), - ('Hyrule Castle Ledge Mirror Spot', 'Hyrule Castle Ledge'), - ('Dig Game Mirror Spot', 'Maze Race Ledge'), - ('Bat Cave Drop Ledge Mirror Spot', 'Bat Cave Ledge'), - ('Bumper Cave Entrance Mirror Spot', 'Death Mountain Entrance'), - ('Bumper Cave Ledge Mirror Spot', 'Death Mountain Return Ledge'), - ('Desert Ledge Mirror Spot', 'Desert Ledge'), - ('Desert Ledge (Northeast) Mirror Spot', 'Desert Checkerboard Ledge'), - ('Desert Palace Entrance (North) Mirror Spot', 'Desert Palace Entrance (North) Spot'), - ('Desert Teleporter', 'Dark Desert'), - ('Mire To Desert Palace Stairs Mirror Spot', 'Desert Palace Stairs'), + + # portals + ('Death Mountain Teleporter', 'West Dark Death Mountain (Bottom)'), + ('East Death Mountain Teleporter', 'East Dark Death Mountain (Bottom)'), + ('Turtle Rock Teleporter', 'Turtle Rock (Top)'), + ('Kakariko Teleporter', 'West Dark World'), + ('Castle Gate Teleporter', 'East Dark World'), ('East Hyrule Teleporter', 'East Dark World'), ('South Hyrule Teleporter', 'South Dark World'), - ('Kakariko Teleporter', 'West Dark World'), - ('Death Mountain Teleporter', 'Dark Death Mountain (West Bottom)'), - ('Fairy Ascension Mirror Spot', 'Fairy Ascension Plateau'), + ('Desert Teleporter', 'Dark Desert'), + ('Lake Hylia Teleporter', 'Dark Lake Hylia Central Island'), + + # mirror ('Spectacle Rock Mirror Spot', 'Spectacle Rock'), + ('Fairy Ascension Mirror Spot', 'Fairy Ascension Plateau'), ('East Death Mountain (Top) Mirror Spot', 'East Death Mountain (Top)'), - ('Turtle Rock Teleporter', 'Turtle Rock (Top)'), - ('Dark Grassy Lawn Mirror Spot', 'Bush Covered Lawn'), ('Dark Floating Island Mirror Spot', 'Death Mountain Floating Island'), - ('East Death Mountain Teleporter', 'Dark Death Mountain (East Bottom)'), - ('Isolated Ledge Mirror Spot', 'Fairy Ascension Ledge'), ('Spiral Cave Mirror Spot', 'Spiral Cave Ledge'), ('Mimic Cave Mirror Spot', 'Mimic Cave Ledge'), - ('Cave 45 Mirror Spot', 'Cave 45 Ledge'), + ('Isolated Ledge Mirror Spot', 'Fairy Ascension Ledge'), + ('Bumper Cave Ledge Mirror Spot', 'Death Mountain Return Ledge'), + ('Bumper Cave Entrance Mirror Spot', 'Death Mountain Entrance'), + ('Kings Grave Mirror Spot', 'Kings Grave Area'), + ('Dark Grassy Lawn Mirror Spot', 'Bush Covered Lawn'), + ('Hyrule Castle Ledge Mirror Spot', 'Hyrule Castle Ledge'), + ('Bat Cave Drop Ledge Mirror Spot', 'Bat Cave Ledge'), + ('Dig Game Mirror Spot', 'Maze Race Ledge'), + ('Desert Ledge Rocks Mirror Spot', 'Desert Palace Entrance (North) Spot'), + ('Desert Ledge Mirror Spot', 'Desert Ledge'), + ('Mire To Desert Stairs Mirror Spot', 'Desert Palace Stairs'), + ('Checkerboard Ledge Mirror Spot', 'Desert Checkerboard Ledge'), ('Bombos Tablet Mirror Spot', 'Bombos Tablet Ledge'), + ('Cave 45 Mirror Spot', 'Cave 45 Ledge'), + ('Lake Hylia Island Mirror Spot', 'Lake Hylia Island'), + ('Lake Hylia Central Island Mirror Spot', 'Lake Hylia Central Island'), ('Graveyard Ledge Mirror Spot', 'Graveyard Ledge') ] inverted_mandatory_connections = [('Sanctuary S&Q', 'Dark Sanctuary Hint'), - ('Old Man S&Q', 'Dark Death Mountain (West Bottom)'), + ('Old Man S&Q', 'West Dark Death Mountain (Bottom)'), ('Other World S&Q', 'Hyrule Castle Ledge'), - ('Lake Hylia Island Pier', 'Lake Hylia Island'), - ('Spectacle Rock Leave', 'Death Mountain (Top)'), - ('Spectacle Rock Approach', 'Spectacle Rock'), - ('Checkerboard Ledge Approach', 'Desert Checkerboard Ledge'), - ('Checkerboard Ledge Leave', 'Light World'), - ('Cave 45 Approach', 'Cave 45 Ledge'), - ('Cave 45 Leave', 'Light World'), - ('Flute Spot 1', 'Dark Death Mountain (West Bottom)'), + + # flute + ('Flute Spot 1', 'West Dark Death Mountain (Bottom)'), ('Flute Spot 2', 'Northeast Dark World'), ('Flute Spot 3', 'West Dark World'), ('Flute Spot 4', 'South Dark World'), @@ -2048,250 +2064,266 @@ inverted_mandatory_connections = [('Sanctuary S&Q', 'Dark Sanctuary Hint'), ('EDDM Flute', 'Flute Sky'), ('Dark Grassy Lawn Flute', 'Flute Sky'), ('Hammer Peg Area Flute', 'Flute Sky'), + + # modified terrain + ('Lake Hylia Island Pier', 'Lake Hylia Island'), + ('Spectacle Rock Leave', 'West Death Mountain (Top)'), + ('Spectacle Rock Approach', 'Spectacle Rock'), + ('Checkerboard Ledge Approach', 'Desert Checkerboard Ledge'), + ('Checkerboard Ledge Leave', 'Light World'), + ('Cave 45 Approach', 'Cave 45 Ledge'), + ('Cave 45 Leave', 'Light World'), ('Dark Death Mountain Ladder (Bottom)', 'Dark Death Mountain (Top)'), - ('Dark Death Mountain Ladder (Top)', 'Dark Death Mountain (West Bottom)'), + ('Dark Death Mountain Ladder (Top)', 'West Dark Death Mountain (Bottom)'), ('Ice Palace Approach', 'Dark Lake Hylia Central Island'), ('Floating Island Bridge (East)', 'Death Mountain Floating Island'), ('Floating Island Bridge (West)', 'East Death Mountain (Top)'), - ('Post Aga Teleporter', 'Light World'), ('Graveyard Ladder (Top)', 'Light World'), ('Graveyard Ladder (Bottom)', 'Graveyard Ledge'), - ('Graveyard Cave Mirror Spot', 'West Dark World'), - ('Pyramid Uncle Mirror Spot', 'East Dark World'), ('Mimic Cave Ledge Access', 'Mimic Cave Ledge'), ('Mimic Cave Ledge Drop', 'East Death Mountain (Bottom)'), ('Turtle Rock Tail Drop', 'Turtle Rock (Top)'), - ('Dark Lake Hylia Central Island Teleporter', 'Lake Hylia Central Island'), - ('Dark Desert Teleporter', 'Light World'), - ('East Dark World Teleporter', 'Light World'), - ('South Dark World Teleporter', 'Light World'), - ('West Dark World Teleporter', 'Light World'), - ('Dark Death Mountain Teleporter (West)', 'Death Mountain (West Bottom)'), - ('Dark Death Mountain Teleporter (East)', 'East Death Mountain (Top)'), - ('Dark Death Mountain Teleporter (East Bottom)', 'East Death Mountain (Bottom)'), - ('Mire Mirror Spot', 'Dark Desert'), ('Bombos Tablet Ladder (Top)', 'Light World'), ('Bombos Tablet Ladder (Bottom)', 'Bombos Tablet Ledge'), - ('Desert Palace Stairs Mirror Spot', 'Dark Desert'), - ('Desert Palace North Mirror Spot', 'Dark Desert'), - ('Maze Race Mirror Spot', 'South Dark World'), - ('Lake Hylia Central Island Mirror Spot', 'Dark Lake Hylia Central Island'), - ('Hammer Peg Area Mirror Spot', 'Hammer Peg Area'), - ('Mountain Exit Ledge Mirror Spot', 'Bumper Cave Ledge'), - ('Bumper Cave Entrance Mirror Spot', 'Bumper Cave Entrance'), - ('Death Mountain Mirror Spot', 'Dark Death Mountain (West Bottom)'), - ('East Death Mountain Mirror Spot (Top)', 'Dark Death Mountain (Top)'), - ('East Death Mountain Mirror Spot (Bottom)', 'Dark Death Mountain (East Bottom)'), + + # portals + ('Dark Death Mountain Teleporter (West)', 'West Death Mountain (Bottom)'), + ('East Dark Death Mountain Teleporter (Bottom)', 'East Death Mountain (Bottom)'), + ('East Dark Death Mountain Teleporter (Top)', 'East Death Mountain (Top)'), + ('West Dark World Teleporter', 'Light World'), + ('Post Aga Teleporter', 'Light World'), + ('East Dark World Teleporter', 'Light World'), + ('South Dark World Teleporter', 'Light World'), + ('Dark Desert Teleporter', 'Light World'), + ('Dark Lake Hylia Teleporter', 'Lake Hylia Central Island'), + + # mirror + ('Skull Woods Mirror Spot', 'Skull Woods Forest (West)'), + ('Death Mountain Mirror Spot', 'West Dark Death Mountain (Bottom)'), ('Death Mountain (Top) Mirror Spot', 'Dark Death Mountain (Top)'), + ('East Death Mountain Mirror Spot (Top)', 'Dark Death Mountain (Top)'), + ('Floating Island Mirror Spot', 'Dark Death Mountain Floating Island'), ('Dark Death Mountain Ledge Mirror Spot (East)', 'Dark Death Mountain Ledge'), ('Dark Death Mountain Ledge Mirror Spot (West)', 'Dark Death Mountain Ledge'), - ('Floating Island Mirror Spot', 'Death Mountain Floating Island (Dark World)'), ('Laser Bridge Mirror Spot', 'Dark Death Mountain Isolated Ledge'), + ('East Death Mountain Mirror Spot (Bottom)', 'East Dark Death Mountain (Bottom)'), + ('Mountain Exit Ledge Mirror Spot', 'Bumper Cave Ledge'), + ('Mountain Entrance Mirror Spot', 'Bumper Cave Entrance'), + ('Catfish Mirror Spot', 'Catfish Area'), + ('Graveyard Cave Mirror Spot', 'West Dark World'), + ('Potion Shop Mirror Spot', 'Northeast Dark World'), + ('Bush Covered Lawn Mirror Spot', 'Dark Grassy Lawn'), + ('Bomb Hut Mirror Spot', 'West Dark World'), + ('Pyramid Uncle Mirror Spot', 'East Dark World'), + ('Hammer Peg Area Mirror Spot', 'Hammer Peg Area'), + ('Maze Race Mirror Spot', 'South Dark World'), + ('South Dark World Mirror Spot', 'South Dark World'), + ('Mire Mirror Spot', 'Dark Desert'), + ('Desert Palace Stairs Mirror Spot', 'Dark Desert'), + ('Desert Palace North Mirror Spot', 'Dark Desert'), + ('Lake Hylia Central Island Mirror Spot', 'Dark Lake Hylia Central Island'), ('East Dark World Mirror Spot', 'East Dark World'), ('West Dark World Mirror Spot', 'West Dark World'), - ('South Dark World Mirror Spot', 'South Dark World'), - ('Potion Shop Mirror Spot', 'Northeast Dark World'), - ('Catfish Mirror Spot', 'Catfish Area'), - ('Shopping Mall Mirror Spot', 'Southeast Dark World'), - ('Skull Woods Mirror Spot', 'Skull Woods Forest (West)'), - ('Bomb Hut Mirror Spot', 'West Dark World') + ('Shopping Mall Mirror Spot', 'Southeast Dark World') ] # non-shuffled entrance links -default_connections = {'Waterfall of Wishing': 'Waterfall of Wishing', - 'Blinds Hideout': 'Blinds Hideout', - 'Dam': 'Dam', - 'Lumberjack House': 'Lumberjack House', - 'Hyrule Castle Secret Entrance Drop': 'Hyrule Castle Secret Entrance', - 'Hyrule Castle Secret Entrance Stairs': 'Hyrule Castle Secret Entrance', - 'Hyrule Castle Secret Entrance Exit': 'Hyrule Castle Secret Entrance Area', - 'Bonk Fairy (Light)': 'Bonk Fairy (Light)', - 'Lake Hylia Fairy': 'Lake Hylia Healer Fairy', - 'Lake Hylia Fortune Teller': 'Lake Hylia Fortune Teller', - 'Light Hype Fairy': 'Swamp Healer Fairy', - 'Desert Fairy': 'Desert Healer Fairy', - 'Kings Grave': 'Kings Grave', - 'Tavern North': 'Tavern', - 'Chicken House': 'Chicken House', - 'Aginahs Cave': 'Aginahs Cave', - 'Sahasrahlas Hut': 'Sahasrahlas Hut', - 'Cave Shop (Lake Hylia)': 'Cave Shop (Lake Hylia)', - 'Capacity Upgrade': 'Capacity Upgrade', - 'Kakariko Well Drop': 'Kakariko Well (top)', - 'Kakariko Well Cave': 'Kakariko Well (bottom)', - 'Kakariko Well Exit': 'Light World', - 'Blacksmiths Hut': 'Blacksmiths Hut', - 'Bat Cave Drop': 'Bat Cave (right)', - 'Bat Cave Cave': 'Bat Cave (left)', - 'Bat Cave Exit': 'Light World', - 'Sick Kids House': 'Sick Kids House', - 'Elder House (East)': 'Elder House', - 'Elder House (West)': 'Elder House', - 'Elder House Exit (East)': 'Light World', - 'Elder House Exit (West)': 'Light World', - 'North Fairy Cave Drop': 'North Fairy Cave', - 'North Fairy Cave': 'North Fairy Cave', - 'North Fairy Cave Exit': 'Light World', - 'Lost Woods Gamble': 'Lost Woods Gamble', - 'Fortune Teller (Light)': 'Fortune Teller (Light)', - 'Snitch Lady (East)': 'Snitch Lady (East)', - 'Snitch Lady (West)': 'Snitch Lady (West)', - 'Bush Covered House': 'Bush Covered House', - 'Tavern (Front)': 'Tavern (Front)', - 'Light World Bomb Hut': 'Light World Bomb Hut', - 'Kakariko Shop': 'Kakariko Shop', +default_connections = {'Lost Woods Gamble': 'Lost Woods Gamble', 'Lost Woods Hideout Drop': 'Lost Woods Hideout (top)', 'Lost Woods Hideout Stump': 'Lost Woods Hideout (bottom)', 'Lost Woods Hideout Exit': 'Light World', + 'Lumberjack House': 'Lumberjack House', 'Lumberjack Tree Tree': 'Lumberjack Tree (top)', 'Lumberjack Tree Cave': 'Lumberjack Tree (bottom)', 'Lumberjack Tree Exit': 'Light World', - 'Cave 45': 'Cave 45', - 'Graveyard Cave': 'Graveyard Cave', - 'Checkerboard Cave': 'Checkerboard Cave', - 'Mini Moldorm Cave': 'Mini Moldorm Cave', - 'Long Fairy Cave': 'Long Fairy Cave', - 'Good Bee Cave': 'Good Bee Cave', - '20 Rupee Cave': '20 Rupee Cave', - '50 Rupee Cave': '50 Rupee Cave', - 'Ice Rod Cave': 'Ice Rod Cave', - 'Bonk Rock Cave': 'Bonk Rock Cave', - 'Library': 'Library', - 'Kakariko Gamble Game': 'Kakariko Gamble Game', - 'Potion Shop': 'Potion Shop', - 'Two Brothers House (East)': 'Two Brothers House', - 'Two Brothers House (West)': 'Two Brothers House', - 'Two Brothers House Exit (East)': 'Light World', - 'Two Brothers House Exit (West)': 'Maze Race Ledge', - 'Sanctuary': 'Sanctuary Portal', - 'Sanctuary Grave': 'Sewer Drop', - 'Sanctuary Exit': 'Light World', - 'Old Man House (Bottom)': 'Old Man House', - 'Old Man House Exit (Bottom)': 'Death Mountain (West Bottom)', - 'Old Man House (Top)': 'Old Man House Back', - 'Old Man House Exit (Top)': 'Death Mountain (West Bottom)', 'Death Mountain Return Cave (East)': 'Death Mountain Return Cave (right)', - 'Death Mountain Return Cave Exit (East)': 'Death Mountain (West Bottom)', + 'Death Mountain Return Cave Exit (East)': 'West Death Mountain (Bottom)', 'Spectacle Rock Cave Peak': 'Spectacle Rock Cave (Peak)', 'Spectacle Rock Cave (Bottom)': 'Spectacle Rock Cave (Bottom)', 'Spectacle Rock Cave': 'Spectacle Rock Cave (Top)', - 'Spectacle Rock Cave Exit': 'Death Mountain (West Bottom)', - 'Spectacle Rock Cave Exit (Top)': 'Death Mountain (West Bottom)', - 'Spectacle Rock Cave Exit (Peak)': 'Death Mountain (West Bottom)', + 'Spectacle Rock Cave Exit': 'West Death Mountain (Bottom)', + 'Spectacle Rock Cave Exit (Top)': 'West Death Mountain (Bottom)', + 'Spectacle Rock Cave Exit (Peak)': 'West Death Mountain (Bottom)', + 'Old Man House (Bottom)': 'Old Man House', + 'Old Man House Exit (Bottom)': 'West Death Mountain (Bottom)', + 'Old Man House (Top)': 'Old Man House Back', + 'Old Man House Exit (Top)': 'West Death Mountain (Bottom)', + 'Spiral Cave': 'Spiral Cave (Top)', + 'Spiral Cave (Bottom)': 'Spiral Cave (Bottom)', + 'Spiral Cave Exit': 'East Death Mountain (Bottom)', + 'Spiral Cave Exit (Top)': 'Spiral Cave Ledge', + 'Mimic Cave': 'Mimic Cave', + 'Fairy Ascension Cave (Bottom)': 'Fairy Ascension Cave (Bottom)', + 'Fairy Ascension Cave (Top)': 'Fairy Ascension Cave (Top)', + 'Fairy Ascension Cave Exit (Bottom)': 'Fairy Ascension Plateau', + 'Fairy Ascension Cave Exit (Top)': 'Fairy Ascension Ledge', + 'Hookshot Fairy': 'Hookshot Fairy', 'Paradox Cave (Bottom)': 'Paradox Cave Front', 'Paradox Cave (Middle)': 'Paradox Cave', 'Paradox Cave (Top)': 'Paradox Cave', 'Paradox Cave Exit (Bottom)': 'East Death Mountain (Bottom)', 'Paradox Cave Exit (Middle)': 'East Death Mountain (Bottom)', 'Paradox Cave Exit (Top)': 'East Death Mountain (Top)', - 'Hookshot Fairy': 'Hookshot Fairy', - 'Fairy Ascension Cave (Bottom)': 'Fairy Ascension Cave (Bottom)', - 'Fairy Ascension Cave (Top)': 'Fairy Ascension Cave (Top)', - 'Fairy Ascension Cave Exit (Bottom)': 'Fairy Ascension Plateau', - 'Fairy Ascension Cave Exit (Top)': 'Fairy Ascension Ledge', - 'Spiral Cave': 'Spiral Cave (Top)', - 'Spiral Cave (Bottom)': 'Spiral Cave (Bottom)', - 'Spiral Cave Exit': 'East Death Mountain (Bottom)', - 'Spiral Cave Exit (Top)': 'Spiral Cave Ledge', - 'Pyramid Fairy': 'Pyramid Fairy', - 'East Dark World Hint': 'East Dark World Hint', - 'Palace of Darkness Hint': 'Palace of Darkness Hint', - 'Dark Lake Hylia Shop': 'Dark Lake Hylia Shop', - 'Dark Lake Hylia Fairy': 'Dark Lake Hylia Healer Fairy', - 'Dark Lake Hylia Ledge Fairy': 'Dark Lake Hylia Ledge Healer Fairy', - 'Dark Lake Hylia Ledge Spike Cave': 'Dark Lake Hylia Ledge Spike Cave', - 'Dark Lake Hylia Ledge Hint': 'Dark Lake Hylia Ledge Hint', - 'Hype Cave': 'Hype Cave', - 'Bonk Fairy (Dark)': 'Bonk Fairy (Dark)', - 'Brewery': 'Brewery', - 'C-Shaped House': 'C-Shaped House', - 'Chest Game': 'Chest Game', - 'Dark World Hammer Peg Cave': 'Dark World Hammer Peg Cave', - 'Red Shield Shop': 'Red Shield Shop', - 'Dark Sanctuary Hint': 'Dark Sanctuary Hint', - 'Fortune Teller (Dark)': 'Fortune Teller (Dark)', - 'Dark World Shop': 'Village of Outcasts Shop', - 'Dark World Lumberjack Shop': 'Dark World Lumberjack Shop', - 'Dark World Potion Shop': 'Dark World Potion Shop', - 'Archery Game': 'Archery Game', - 'Mire Shed': 'Mire Shed', - 'Dark Desert Hint': 'Dark Desert Hint', - 'Dark Desert Fairy': 'Dark Desert Healer Fairy', + 'Waterfall of Wishing': 'Waterfall of Wishing', + 'Fortune Teller (Light)': 'Fortune Teller (Light)', + 'Bonk Rock Cave': 'Bonk Rock Cave', + 'Sanctuary': 'Sanctuary Portal', + 'Sanctuary Exit': 'Light World', + 'Sanctuary Grave': 'Sewer Drop', + 'Graveyard Cave': 'Graveyard Cave', + 'Kings Grave': 'Kings Grave', + 'North Fairy Cave Drop': 'North Fairy Cave', + 'North Fairy Cave': 'North Fairy Cave', + 'North Fairy Cave Exit': 'Light World', + 'Potion Shop': 'Potion Shop', + 'Kakariko Well Drop': 'Kakariko Well (top)', + 'Kakariko Well Cave': 'Kakariko Well (bottom)', + 'Kakariko Well Exit': 'Light World', + 'Blinds Hideout': 'Blinds Hideout', + 'Elder House (East)': 'Elder House', + 'Elder House (West)': 'Elder House', + 'Elder House Exit (East)': 'Light World', + 'Elder House Exit (West)': 'Light World', + 'Snitch Lady (West)': 'Snitch Lady (West)', + 'Snitch Lady (East)': 'Snitch Lady (East)', + 'Bush Covered House': 'Bush Covered House', + 'Chicken House': 'Chicken House', + 'Sick Kids House': 'Sick Kids House', + 'Light World Bomb Hut': 'Light World Bomb Hut', + 'Kakariko Shop': 'Kakariko Shop', + 'Tavern North': 'Tavern', + 'Tavern (Front)': 'Tavern (Front)', + 'Hyrule Castle Secret Entrance Drop': 'Hyrule Castle Secret Entrance', + 'Hyrule Castle Secret Entrance Stairs': 'Hyrule Castle Secret Entrance', + 'Hyrule Castle Secret Entrance Exit': 'Hyrule Castle Secret Entrance Area', + 'Sahasrahlas Hut': 'Sahasrahlas Hut', + 'Blacksmiths Hut': 'Blacksmiths Hut', + 'Bat Cave Drop': 'Bat Cave (right)', + 'Bat Cave Cave': 'Bat Cave (left)', + 'Bat Cave Exit': 'Light World', + 'Two Brothers House (West)': 'Two Brothers House', + 'Two Brothers House Exit (West)': 'Maze Race Ledge', + 'Two Brothers House (East)': 'Two Brothers House', + 'Two Brothers House Exit (East)': 'Light World', + 'Library': 'Library', + 'Kakariko Gamble Game': 'Kakariko Gamble Game', + 'Bonk Fairy (Light)': 'Bonk Fairy (Light)', + 'Lake Hylia Fairy': 'Lake Hylia Healer Fairy', + 'Long Fairy Cave': 'Long Fairy Cave', + 'Checkerboard Cave': 'Checkerboard Cave', + 'Aginahs Cave': 'Aginahs Cave', + 'Cave 45': 'Cave 45', + 'Light Hype Fairy': 'Light Hype Fairy', + 'Lake Hylia Fortune Teller': 'Lake Hylia Fortune Teller', + 'Lake Hylia Shop': 'Lake Hylia Shop', + 'Capacity Upgrade': 'Capacity Upgrade', + 'Mini Moldorm Cave': 'Mini Moldorm Cave', + 'Ice Rod Cave': 'Ice Rod Cave', + 'Good Bee Cave': 'Good Bee Cave', + '20 Rupee Cave': '20 Rupee Cave', + 'Desert Fairy': 'Desert Healer Fairy', + '50 Rupee Cave': '50 Rupee Cave', + 'Dam': 'Dam', + + 'Dark Lumberjack Shop': 'Dark Lumberjack Shop', 'Spike Cave': 'Spike Cave', + 'Hookshot Cave Back Exit': 'Dark Death Mountain Floating Island', + 'Hookshot Cave Back Entrance': 'Hookshot Cave (Back)', 'Hookshot Cave': 'Hookshot Cave (Front)', 'Hookshot Cave Front Exit': 'Dark Death Mountain (Top)', 'Superbunny Cave (Top)': 'Superbunny Cave (Top)', 'Superbunny Cave Exit (Top)': 'Dark Death Mountain (Top)', - 'Cave Shop (Dark Death Mountain)': 'Cave Shop (Dark Death Mountain)', 'Superbunny Cave (Bottom)': 'Superbunny Cave (Bottom)', - 'Superbunny Cave Exit (Bottom)': 'Dark Death Mountain (East Bottom)', - 'Hookshot Cave Back Exit': 'Death Mountain Floating Island (Dark World)', - 'Hookshot Cave Back Entrance': 'Hookshot Cave (Back)', - 'Mimic Cave': 'Mimic Cave' + 'Superbunny Cave Exit (Bottom)': 'East Dark Death Mountain (Bottom)', + 'Dark Death Mountain Shop': 'Dark Death Mountain Shop', + 'Fortune Teller (Dark)': 'Fortune Teller (Dark)', + 'Dark Sanctuary Hint': 'Dark Sanctuary Hint', + 'Dark Potion Shop': 'Dark Potion Shop', + 'Chest Game': 'Chest Game', + 'C-Shaped House': 'C-Shaped House', + 'Brewery': 'Brewery', + 'Dark World Shop': 'Village of Outcasts Shop', + 'Hammer Peg Cave': 'Hammer Peg Cave', + 'Red Shield Shop': 'Red Shield Shop', + 'Pyramid Fairy': 'Pyramid Fairy', + 'Palace of Darkness Hint': 'Palace of Darkness Hint', + 'Archery Game': 'Archery Game', + 'Bonk Fairy (Dark)': 'Bonk Fairy (Dark)', + 'Dark Lake Hylia Fairy': 'Dark Lake Hylia Healer Fairy', + 'East Dark World Hint': 'East Dark World Hint', + 'Mire Shed': 'Mire Shed', + 'Dark Desert Fairy': 'Dark Desert Healer Fairy', + 'Dark Desert Hint': 'Dark Desert Hint', + 'Hype Cave': 'Hype Cave', + 'Dark Lake Hylia Shop': 'Dark Lake Hylia Shop', + 'Dark Lake Hylia Ledge Fairy': 'Dark Lake Hylia Ledge Healer Fairy', + 'Dark Lake Hylia Ledge Hint': 'Dark Lake Hylia Ledge Hint', + 'Dark Lake Hylia Ledge Spike Cave': 'Dark Lake Hylia Ledge Spike Cave' } open_default_connections = {'Links House': 'Links House', 'Links House Exit': 'Light World', + 'Big Bomb Shop': 'Big Bomb Shop', 'Old Man Cave (West)': 'Old Man Cave Ledge', 'Old Man Cave (East)': 'Old Man Cave', 'Old Man Cave Exit (West)': 'Light World', - 'Old Man Cave Exit (East)': 'Death Mountain (West Bottom)', + 'Old Man Cave Exit (East)': 'West Death Mountain (Bottom)', 'Death Mountain Return Cave (West)': 'Death Mountain Return Cave (left)', 'Death Mountain Return Cave Exit (West)': 'Death Mountain Return Ledge', - 'Big Bomb Shop': 'Big Bomb Shop', 'Bumper Cave (Bottom)': 'Bumper Cave (bottom)', 'Bumper Cave (Top)': 'Bumper Cave (top)', 'Bumper Cave Exit (Top)': 'Bumper Cave Ledge', 'Bumper Cave Exit (Bottom)': 'West Dark World', 'Dark Death Mountain Fairy': 'Dark Death Mountain Healer Fairy', 'Pyramid Hole': 'Pyramid', - 'Pyramid Exit': 'Pyramid Ledge', - 'Pyramid Entrance': 'Bottom of Pyramid' + 'Pyramid Entrance': 'Bottom of Pyramid', + 'Pyramid Exit': 'Pyramid Exit Ledge' } inverted_default_connections = {'Links House': 'Big Bomb Shop', 'Links House Exit': 'South Dark World', + 'Big Bomb Shop': 'Links House', + 'Dark Sanctuary Hint Exit': 'West Dark World', 'Old Man Cave (West)': 'Bumper Cave (bottom)', 'Old Man Cave (East)': 'Death Mountain Return Cave (left)', 'Old Man Cave Exit (West)': 'West Dark World', - 'Old Man Cave Exit (East)': 'Dark Death Mountain (West Bottom)', + 'Old Man Cave Exit (East)': 'West Dark Death Mountain (Bottom)', 'Death Mountain Return Cave (West)': 'Bumper Cave (top)', - 'Death Mountain Return Cave Exit (West)': 'Death Mountain (West Bottom)', - 'Big Bomb Shop': 'Links House', + 'Death Mountain Return Cave Exit (West)': 'West Death Mountain (Bottom)', 'Bumper Cave (Bottom)': 'Old Man Cave Ledge', 'Bumper Cave (Top)': 'Dark Death Mountain Healer Fairy', 'Bumper Cave Exit (Top)': 'Death Mountain Return Ledge', 'Bumper Cave Exit (Bottom)': 'Light World', 'Dark Death Mountain Fairy': 'Old Man Cave', - 'Dark Sanctuary Hint Exit': 'West Dark World', 'Inverted Pyramid Hole': 'Pyramid', - 'Pyramid Exit': 'Hyrule Castle Courtyard', - 'Inverted Pyramid Entrance': 'Bottom of Pyramid' + 'Inverted Pyramid Entrance': 'Bottom of Pyramid', + 'Pyramid Exit': 'Hyrule Castle Courtyard' } # non shuffled dungeons -default_dungeon_connections = [('Desert Palace Entrance (South)', 'Desert South Portal'), - ('Desert Palace Entrance (West)', 'Desert West Portal'), - ('Desert Palace Entrance (North)', 'Desert Back Portal'), - ('Desert Palace Entrance (East)', 'Desert East Portal'), - ('Desert Palace Exit (South)', 'Desert Palace Stairs'), - ('Desert Palace Exit (West)', 'Desert Ledge'), - ('Desert Palace Exit (East)', 'Desert Palace Lone Stairs'), - ('Desert Palace Exit (North)', 'Desert Palace Entrance (North) Spot'), - ('Eastern Palace', 'Eastern Portal'), - ('Eastern Palace Exit', 'Light World'), - ('Tower of Hera', 'Hera Portal'), - ('Tower of Hera Exit', 'Death Mountain (Top)'), - - ('Hyrule Castle Entrance (South)', 'Hyrule Castle South Portal'), +default_dungeon_connections = [('Hyrule Castle Entrance (South)', 'Hyrule Castle South Portal'), ('Hyrule Castle Entrance (West)', 'Hyrule Castle West Portal'), ('Hyrule Castle Entrance (East)', 'Hyrule Castle East Portal'), ('Hyrule Castle Exit (South)', 'Hyrule Castle Courtyard'), ('Hyrule Castle Exit (West)', 'Hyrule Castle Ledge'), ('Hyrule Castle Exit (East)', 'Hyrule Castle Ledge'), - - ('Thieves Town', 'Thieves Town Portal'), - ('Thieves Town Exit', 'West Dark World'), + ('Desert Palace Entrance (South)', 'Desert South Portal'), + ('Desert Palace Entrance (West)', 'Desert West Portal'), + ('Desert Palace Entrance (North)', 'Desert Back Portal'), + ('Desert Palace Entrance (East)', 'Desert East Portal'), + ('Desert Palace Exit (South)', 'Desert Palace Stairs'), + ('Desert Palace Exit (West)', 'Desert Ledge'), + ('Desert Palace Exit (East)', 'Desert Palace Mouth'), + ('Desert Palace Exit (North)', 'Desert Palace Entrance (North) Spot'), + ('Eastern Palace', 'Eastern Portal'), + ('Eastern Palace Exit', 'Light World'), + ('Tower of Hera', 'Hera Portal'), + ('Tower of Hera Exit', 'West Death Mountain (Top)'), + + ('Palace of Darkness', 'Palace of Darkness Portal'), + ('Palace of Darkness Exit', 'East Dark World'), + ('Swamp Palace', 'Swamp Portal'), # requires additional patch for flooding moat if moved + ('Swamp Palace Exit', 'South Dark World'), ('Skull Woods First Section Hole (East)', 'Skull Pinball'), ('Skull Woods First Section Hole (West)', 'Skull Left Drop'), ('Skull Woods First Section Hole (North)', 'Skull Pot Circle'), @@ -2304,35 +2336,30 @@ default_dungeon_connections = [('Desert Palace Entrance (South)', 'Desert South ('Skull Woods Second Section Exit (West)', 'Skull Woods Forest (West)'), ('Skull Woods Final Section', 'Skull 3 Portal'), ('Skull Woods Final Section Exit', 'Skull Woods Forest (West)'), + ('Thieves Town', 'Thieves Town Portal'), + ('Thieves Town Exit', 'West Dark World'), ('Ice Palace', 'Ice Portal'), + ('Ice Palace Exit', 'Dark Lake Hylia Central Island'), ('Misery Mire', 'Mire Portal'), ('Misery Mire Exit', 'Dark Desert'), - ('Palace of Darkness', 'Palace of Darkness Portal'), - ('Palace of Darkness Exit', 'East Dark World'), - ('Swamp Palace', 'Swamp Portal'), # requires additional patch for flooding moat if moved - ('Swamp Palace Exit', 'South Dark World'), - ('Turtle Rock', 'Turtle Rock Main Portal'), - ('Turtle Rock Ledge Exit (West)', 'Dark Death Mountain Ledge'), - ('Turtle Rock Ledge Exit (East)', 'Dark Death Mountain Ledge'), + ('Turtle Rock Exit (Front)', 'Dark Death Mountain (Top)'), ('Dark Death Mountain Ledge (West)', 'Turtle Rock Lazy Eyes Portal'), ('Dark Death Mountain Ledge (East)', 'Turtle Rock Chest Portal'), - ('Turtle Rock Isolated Ledge Exit', 'Dark Death Mountain Isolated Ledge'), - ('Turtle Rock Isolated Ledge Entrance', 'Turtle Rock Eye Bridge Portal') + ('Turtle Rock Ledge Exit (West)', 'Dark Death Mountain Ledge'), + ('Turtle Rock Ledge Exit (East)', 'Dark Death Mountain Ledge'), + ('Turtle Rock Isolated Ledge Entrance', 'Turtle Rock Eye Bridge Portal'), + ('Turtle Rock Isolated Ledge Exit', 'Dark Death Mountain Isolated Ledge') ] open_default_dungeon_connections = [('Agahnims Tower', 'Agahnims Tower Portal'), ('Agahnims Tower Exit', 'Hyrule Castle Ledge'), - ('Ice Palace Exit', 'Dark Lake Hylia Central Island'), - ('Turtle Rock Exit (Front)', 'Dark Death Mountain (Top)'), ('Ganons Tower', 'Ganons Tower Portal'), ('Ganons Tower Exit', 'Dark Death Mountain (Top)') ] inverted_default_dungeon_connections = [('Agahnims Tower', 'Ganons Tower Portal'), ('Agahnims Tower Exit', 'Dark Death Mountain'), - ('Ice Palace Exit', 'Dark Lake Hylia Water'), - ('Turtle Rock Exit (Front)', 'Dark Death Mountain'), ('Ganons Tower', 'Agahnims Tower Portal'), ('Ganons Tower Exit', 'Hyrule Castle Ledge') ] @@ -2433,7 +2460,7 @@ door_addresses = {'Links House': (0x00, (0x0104, 0x2c, 0x0506, 0x0a9a, 0x0832, 0 'Chicken House': (0x4A, (0x0108, 0x18, 0x1120, 0x0837, 0x0106, 0x0888, 0x0188, 0x08a4, 0x0193, 0x07, 0xf9, 0x1530, 0x0000)), 'Aginahs Cave': (0x70, (0x010a, 0x30, 0x0656, 0x0cc6, 0x02aa, 0x0d18, 0x0328, 0x0d33, 0x032f, 0x08, 0xf8, 0x0000, 0x0000)), 'Sahasrahlas Hut': (0x44, (0x0105, 0x1e, 0x0610, 0x06d4, 0x0c76, 0x0727, 0x0cf0, 0x0743, 0x0cfb, 0x0a, 0xf6, 0x0000, 0x0000)), - 'Cave Shop (Lake Hylia)': (0x57, (0x0112, 0x35, 0x0022, 0x0c00, 0x0b1a, 0x0c26, 0x0b98, 0x0c6d, 0x0b9f, 0x00, 0x00, 0x0000, 0x0000)), + 'Lake Hylia Shop': (0x57, (0x0112, 0x35, 0x0022, 0x0c00, 0x0b1a, 0x0c26, 0x0b98, 0x0c6d, 0x0b9f, 0x00, 0x00, 0x0000, 0x0000)), 'Capacity Upgrade': (0x5C, (0x0115, 0x35, 0x0a46, 0x0d36, 0x0c2a, 0x0d88, 0x0ca8, 0x0da3, 0x0caf, 0x0a, 0xf6, 0x0000, 0x0000)), 'Kakariko Well Drop': ([0xDB85C, 0xDB85D], None), 'Blacksmiths Hut': (0x63, (0x0121, 0x22, 0x010c, 0x081a, 0x0466, 0x0868, 0x04d8, 0x0887, 0x04e3, 0x06, 0xfa, 0x041A, 0x0000)), @@ -2476,19 +2503,19 @@ door_addresses = {'Links House': (0x00, (0x0104, 0x2c, 0x0506, 0x0a9a, 0x0832, 0 'Brewery': (0x47, (0x0106, 0x58, 0x16a8, 0x08e4, 0x013e, 0x0938, 0x01b8, 0x0953, 0x01c3, 0x0a, 0xf6, 0x1AB6, 0x0000)), 'C-Shaped House': (0x53, (0x011c, 0x58, 0x09d8, 0x0744, 0x02ce, 0x0797, 0x0348, 0x07b3, 0x0353, 0x0a, 0xf6, 0x0DE8, 0x0000)), 'Chest Game': (0x46, (0x0106, 0x58, 0x078a, 0x0705, 0x004e, 0x0758, 0x00c8, 0x0774, 0x00d3, 0x09, 0xf7, 0x0B98, 0x0000)), - 'Dark World Hammer Peg Cave': (0x7E, (0x0127, 0x62, 0x0894, 0x091e, 0x0492, 0x09a6, 0x0508, 0x098b, 0x050f, 0x00, 0x00, 0x0000, 0x0000)), + 'Hammer Peg Cave': (0x7E, (0x0127, 0x62, 0x0894, 0x091e, 0x0492, 0x09a6, 0x0508, 0x098b, 0x050f, 0x00, 0x00, 0x0000, 0x0000)), 'Red Shield Shop': (0x74, (0x0110, 0x5a, 0x079a, 0x06e8, 0x04d6, 0x0738, 0x0548, 0x0755, 0x0553, 0x08, 0xf8, 0x0AA8, 0x0000)), 'Dark Sanctuary Hint': (0x59, (0x0112, 0x53, 0x001e, 0x0400, 0x06e2, 0x0446, 0x0758, 0x046d, 0x075f, 0x00, 0x00, 0x0000, 0x0000)), 'Fortune Teller (Dark)': (0x65, (0x0122, 0x51, 0x0610, 0x04b4, 0x027e, 0x0507, 0x02f8, 0x0523, 0x0303, 0x0a, 0xf6, 0x091E, 0x0000)), 'Dark World Shop': (0x5F, (0x010f, 0x58, 0x1058, 0x0814, 0x02be, 0x0868, 0x0338, 0x0883, 0x0343, 0x0a, 0xf6, 0x0000, 0x0000)), - 'Dark World Lumberjack Shop': (0x56, (0x010f, 0x42, 0x041c, 0x0074, 0x04e2, 0x00c7, 0x0558, 0x00e3, 0x055f, 0x0a, 0xf6, 0x0000, 0x0000)), - 'Dark World Potion Shop': (0x6E, (0x010f, 0x56, 0x080e, 0x04f4, 0x0c66, 0x0548, 0x0cd8, 0x0563, 0x0ce3, 0x0a, 0xf6, 0x0000, 0x0000)), + 'Dark Lumberjack Shop': (0x56, (0x010f, 0x42, 0x041c, 0x0074, 0x04e2, 0x00c7, 0x0558, 0x00e3, 0x055f, 0x0a, 0xf6, 0x0000, 0x0000)), + 'Dark Potion Shop': (0x6E, (0x010f, 0x56, 0x080e, 0x04f4, 0x0c66, 0x0548, 0x0cd8, 0x0563, 0x0ce3, 0x0a, 0xf6, 0x0000, 0x0000)), 'Archery Game': (0x58, (0x0111, 0x69, 0x069e, 0x0ac4, 0x02ea, 0x0b18, 0x0368, 0x0b33, 0x036f, 0x0a, 0xf6, 0x09AC, 0x0000)), 'Mire Shed': (0x5E, (0x010d, 0x70, 0x0384, 0x0c69, 0x001e, 0x0cb6, 0x0098, 0x0cd6, 0x00a3, 0x07, 0xf9, 0x0000, 0x0000)), 'Dark Desert Hint': (0x61, (0x0114, 0x70, 0x0654, 0x0cc5, 0x02aa, 0x0d16, 0x0328, 0x0d32, 0x032f, 0x09, 0xf7, 0x0000, 0x0000)), 'Dark Desert Fairy': (0x55, (0x0115, 0x70, 0x03a8, 0x0c6a, 0x013a, 0x0cb7, 0x01b8, 0x0cd7, 0x01bf, 0x06, 0xfa, 0x0000, 0x0000)), 'Spike Cave': (0x40, (0x0117, 0x43, 0x0ed4, 0x01e4, 0x08aa, 0x0236, 0x0928, 0x0253, 0x092f, 0x0a, 0xf6, 0x0000, 0x0000)), - 'Cave Shop (Dark Death Mountain)': (0x6D, (0x0112, 0x45, 0x0ee0, 0x01e3, 0x0d00, 0x0236, 0x0daa, 0x0252, 0x0d7d, 0x0b, 0xf5, 0x0000, 0x0000)), + 'Dark Death Mountain Shop': (0x6D, (0x0112, 0x45, 0x0ee0, 0x01e3, 0x0d00, 0x0236, 0x0daa, 0x0252, 0x0d7d, 0x0b, 0xf5, 0x0000, 0x0000)), 'Dark Death Mountain Fairy': (0x6F, (0x0115, 0x43, 0x1400, 0x0294, 0x0600, 0x02e8, 0x0678, 0x0303, 0x0685, 0x0a, 0xf6, 0x0000, 0x0000)), 'Mimic Cave': (0x4E, (0x010c, 0x05, 0x07e0, 0x0103, 0x0d00, 0x0156, 0x0d78, 0x0172, 0x0d7d, 0x0b, 0xf5, 0x0000, 0x0000)), 'Big Bomb Shop': (0x52, (0x011c, 0x6c, 0x0506, 0x0a9a, 0x0832, 0x0ae7, 0x08b8, 0x0b07, 0x08bf, 0x06, 0xfa, 0x0816, 0x0000)), @@ -2568,7 +2595,7 @@ exit_ids = {'Links House Exit': (0x01, 0x00), 'Bonk Fairy (Light)': 0x71, 'Bonk Fairy (Dark)': 0x71, 'Lake Hylia Healer Fairy': 0x5E, - 'Swamp Healer Fairy': 0x5E, + 'Light Hype Fairy': 0x5E, 'Desert Healer Fairy': 0x5E, 'Dark Lake Hylia Healer Fairy': 0x5E, 'Dark Lake Hylia Ledge Healer Fairy': 0x5E, @@ -2581,8 +2608,8 @@ exit_ids = {'Links House Exit': (0x01, 0x00), 'Chicken House': 0x4B, 'Aginahs Cave': 0x4D, 'Sahasrahlas Hut': 0x45, - 'Cave Shop (Lake Hylia)': 0x58, - 'Cave Shop (Dark Death Mountain)': 0x58, + 'Lake Hylia Shop': 0x58, + 'Dark Death Mountain Shop': 0x58, 'Capacity Upgrade': 0x5D, 'Blacksmiths Hut': 0x64, 'Sick Kids House': 0x40, @@ -2613,15 +2640,15 @@ exit_ids = {'Links House Exit': (0x01, 0x00), 'Big Bomb Shop': 0x53, 'Village of Outcasts Shop': 0x60, 'Dark Lake Hylia Shop': 0x60, - 'Dark World Lumberjack Shop': 0x60, - 'Dark World Potion Shop': 0x60, + 'Dark Lumberjack Shop': 0x60, + 'Dark Potion Shop': 0x60, 'Dark Lake Hylia Ledge Spike Cave': 0x70, 'Dark Lake Hylia Ledge Hint': 0x6A, 'Hype Cave': 0x3D, 'Brewery': 0x48, 'C-Shaped House': 0x54, 'Chest Game': 0x47, - 'Dark World Hammer Peg Cave': 0x83, + 'Hammer Peg Cave': 0x83, 'Red Shield Shop': 0x57, 'Dark Sanctuary Hint': 0x5A, 'Fortune Teller (Dark)': 0x66, @@ -2714,7 +2741,7 @@ ow_prize_table = {'Links House': (0x8b1, 0xb2d), 'Chicken House': (0x120, 0x880), 'Aginahs Cave': (0x2e0, 0xd00), 'Sahasrahlas Hut': (0xcf0, 0x6c0), - 'Cave Shop (Lake Hylia)': (0xbc0, 0xc00), + 'Lake Hylia Shop': (0xbc0, 0xc00), 'Capacity Upgrade': (0xca0, 0xda0), 'Kakariko Well Drop': None, 'Blacksmiths Hut': (0x4a0, 0x880), @@ -2754,19 +2781,19 @@ ow_prize_table = {'Links House': (0x8b1, 0xb2d), 'Hype Cave': (0x940, 0xc80), 'Bonk Fairy (Dark)': (0x740, 0xa80), 'Brewery': (0x170, 0x980), 'C-Shaped House': (0x310, 0x7a0), 'Chest Game': (0x800, 0x7a0), - 'Dark World Hammer Peg Cave': (0x4c0, 0x940), + 'Hammer Peg Cave': (0x4c0, 0x940), 'Red Shield Shop': (0x500, 0x680), 'Dark Sanctuary Hint': (0x720, 0x4a0), 'Fortune Teller (Dark)': (0x2c0, 0x4c0), 'Dark World Shop': (0x2e0, 0x880), - 'Dark World Lumberjack Shop': (0x4e0, 0x0d0), - 'Dark World Potion Shop': (0xc80, 0x4c0), + 'Dark Lumberjack Shop': (0x4e0, 0x0d0), + 'Dark Potion Shop': (0xc80, 0x4c0), 'Archery Game': (0x2f0, 0xaf0), 'Mire Shed': (0x060, 0xc90), 'Dark Desert Hint': (0x2e0, 0xd00), 'Dark Desert Fairy': (0x1c0, 0xc90), 'Spike Cave': (0x860, 0x180), - 'Cave Shop (Dark Death Mountain)': (0xd80, 0x180), + 'Dark Death Mountain Shop': (0xd80, 0x180), 'Dark Death Mountain Fairy': (0x620, 0x2c0), 'Mimic Cave': (0xc80, 0x180), 'Big Bomb Shop': (0x8b1, 0xb2d),