Final fixes and reorganization to Inverted Region merging
This commit is contained in:
@@ -3229,7 +3229,7 @@ def find_accessible_entrances(world, player, builder):
|
||||
hc_std = True
|
||||
start_regions = ['Hyrule Castle Courtyard']
|
||||
elif world.mode[player] != 'inverted':
|
||||
start_regions = ['Links House', 'Sanctuary', 'West Dark World']
|
||||
start_regions = ['Links House', 'Sanctuary', 'East Dark World']
|
||||
else:
|
||||
start_regions = ['Links House', 'Dark Sanctuary Hint', 'Hyrule Castle Ledge']
|
||||
regs = convert_regions(start_regions, world, player)
|
||||
|
||||
@@ -2104,31 +2104,31 @@ mandatory_connections = [('Links House S&Q', 'Links House'),
|
||||
('Ganon Drop', 'Bottom of Pyramid'),
|
||||
|
||||
# water entry
|
||||
('Waterfall Fairy Access', 'Zora Waterfall Entryway'),
|
||||
('Zora Waterfall Water Drop', 'Lake Hylia Water'),
|
||||
('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'),
|
||||
('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'),
|
||||
('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'),
|
||||
('Hobo Pier', 'Hobo Bridge'),
|
||||
('Lake Hylia Central Island Pier', 'Lake Hylia Central Island'),
|
||||
('Lake Hylia Whirlpool', 'Northeast Light World'),
|
||||
('Waterfall Fairy Access', 'Zora Waterfall Entryway'),
|
||||
|
||||
('Northeast Dark World Pier', 'Northeast Dark World'),
|
||||
('East Dark World Pier', 'East Dark World'),
|
||||
('Southeast Dark World Pier', 'Southeast Dark World'),
|
||||
('Northeast Dark World Pier', 'Northeast Dark World'),
|
||||
|
||||
# terrain
|
||||
('Master Sword Meadow', 'Master Sword Meadow'),
|
||||
@@ -2143,14 +2143,14 @@ mandatory_connections = [('Links House S&Q', 'Links House'),
|
||||
('Kings Grave Rocks (Inner)', 'Light World'),
|
||||
('Potion Shop Rock (South)', 'Northeast Light World'),
|
||||
('Potion Shop Rock (North)', 'Potion Shop Area'),
|
||||
('Kakariko Southwest Bush (North)', 'Bomb Hut Area'),
|
||||
('Kakariko Southwest Bush (South)', 'Light World'),
|
||||
('Kakariko Yard Bush (North)', 'Light World'),
|
||||
('Kakariko Yard Bush (South)', 'Bush Covered Lawn'),
|
||||
('Kakariko Southwest Bush (South)', 'Light World'),
|
||||
('Kakariko Southwest Bush (North)', 'Bomb Hut Area'),
|
||||
('Hyrule Castle Main Gate', 'Hyrule Castle Courtyard'),
|
||||
('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'),
|
||||
('Hyrule Castle Main Gate', 'Hyrule Castle Courtyard'),
|
||||
('Hyrule Castle Main Gate (North)', 'Light World'),
|
||||
('Wooden Bridge Bush (North)', 'Light World'),
|
||||
('Wooden Bridge Bush (South)', 'Potion Shop Area'),
|
||||
('Bat Cave Ledge Peg', 'Bat Cave Ledge'),
|
||||
@@ -2163,8 +2163,8 @@ mandatory_connections = [('Links House S&Q', 'Links House'),
|
||||
('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'),
|
||||
('Grassy Lawn Pegs (Bottom)', 'Dark Grassy Lawn'),
|
||||
('West Dark World Gap', 'West Dark World'),
|
||||
('Broken Bridge Pass (Top)', 'East Dark World'),
|
||||
('Broken Bridge Pass (Bottom)', 'Northeast Dark World'),
|
||||
@@ -2173,6 +2173,7 @@ mandatory_connections = [('Links House S&Q', 'Links House'),
|
||||
('Village of Outcasts Heavy Rock', 'West Dark World'),
|
||||
('Hammer Bridge Pegs (North)', 'South Dark World'),
|
||||
('Hammer Bridge Pegs (South)', 'East Dark World'),
|
||||
('Ice Island To East Pier', 'East Dark World'),
|
||||
|
||||
# ledge drops
|
||||
('Spectacle Rock Drop', 'West Death Mountain (Top)'),
|
||||
@@ -2238,14 +2239,15 @@ open_mandatory_connections = [('Sanctuary S&Q', 'Sanctuary'),
|
||||
|
||||
# mirror
|
||||
('Spectacle Rock Mirror Spot', 'Spectacle Rock'),
|
||||
('Fairy Ascension Mirror Spot', 'Fairy Ascension Plateau'),
|
||||
('East Death Mountain (Top) Mirror Spot', 'East Death Mountain (Top)'),
|
||||
('Dark Floating Island Mirror Spot', 'Death Mountain Floating Island'),
|
||||
('Spiral Cave Mirror Spot', 'Spiral Cave Ledge'),
|
||||
('Mimic Cave Mirror Spot', 'Mimic Cave Ledge'),
|
||||
('Isolated Ledge Mirror Spot', 'Fairy Ascension Ledge'),
|
||||
('Fairy Ascension Mirror Spot', 'Fairy Ascension Plateau'),
|
||||
('Bumper Cave Ledge Mirror Spot', 'Death Mountain Return Ledge'),
|
||||
('Bumper Cave Entrance Mirror Spot', 'Death Mountain Entrance'),
|
||||
('Graveyard Ledge Mirror Spot', 'Graveyard Ledge'),
|
||||
('Kings Grave Mirror Spot', 'Kings Grave Area'),
|
||||
('Dark Grassy Lawn Mirror Spot', 'Bush Covered Lawn'),
|
||||
('Hyrule Castle Ledge Mirror Spot', 'Hyrule Castle Ledge'),
|
||||
@@ -2258,8 +2260,7 @@ open_mandatory_connections = [('Sanctuary S&Q', 'Sanctuary'),
|
||||
('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')
|
||||
('Lake Hylia Central Island Mirror Spot', 'Lake Hylia Central Island')
|
||||
]
|
||||
|
||||
inverted_mandatory_connections = [('Sanctuary S&Q', 'Dark Sanctuary Hint'),
|
||||
@@ -2287,25 +2288,25 @@ inverted_mandatory_connections = [('Sanctuary S&Q', 'Dark Sanctuary Hint'),
|
||||
('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)', 'West Dark Death Mountain (Bottom)'),
|
||||
('Ice Palace Approach', 'Dark Lake Hylia Central Island'),
|
||||
('Floating Island Bridge (East)', 'Death Mountain Floating Island'),
|
||||
('Spectacle Rock Leave', 'West Death Mountain (Top)'),
|
||||
('Floating Island Bridge (West)', 'East Death Mountain (Top)'),
|
||||
('Floating Island Bridge (East)', 'Death Mountain Floating Island'),
|
||||
('Graveyard Ladder (Top)', 'Light World'),
|
||||
('Graveyard Ladder (Bottom)', 'Graveyard Ledge'),
|
||||
('Mimic Cave Ledge Access', 'Mimic Cave Ledge'),
|
||||
('Mimic Cave Ledge Drop', 'East Death Mountain (Bottom)'),
|
||||
('Turtle Rock Tail Drop', 'Turtle Rock (Top)'),
|
||||
('Checkerboard Ledge Approach', 'Desert Checkerboard Ledge'),
|
||||
('Checkerboard Ledge Leave', 'Light World'),
|
||||
('Cave 45 Approach', 'Cave 45 Ledge'),
|
||||
('Cave 45 Leave', 'Light World'),
|
||||
('Lake Hylia Island Pier', 'Lake Hylia Island'),
|
||||
('Bombos Tablet Ladder (Top)', 'Light World'),
|
||||
('Bombos Tablet Ladder (Bottom)', 'Bombos Tablet Ledge'),
|
||||
('Dark Death Mountain Ladder (Top)', 'West Dark Death Mountain (Bottom)'),
|
||||
('Dark Death Mountain Ladder (Bottom)', 'Dark Death Mountain (Top)'),
|
||||
('Turtle Rock Tail Drop', 'Turtle Rock (Top)'),
|
||||
('Ice Palace Approach', 'Dark Lake Hylia Central Island'),
|
||||
|
||||
# portals
|
||||
('Dark Death Mountain Teleporter (West)', 'West Death Mountain (Bottom)'),
|
||||
@@ -2320,8 +2321,9 @@ inverted_mandatory_connections = [('Sanctuary S&Q', 'Dark Sanctuary Hint'),
|
||||
|
||||
# mirror
|
||||
('Skull Woods Mirror Spot', 'Skull Woods Forest (West)'),
|
||||
('Death Mountain Mirror Spot', 'West Dark Death Mountain (Bottom)'),
|
||||
('West Dark World Mirror Spot', 'West Dark World'),
|
||||
('Death Mountain (Top) Mirror Spot', 'Dark Death Mountain (Top)'),
|
||||
('Death Mountain Mirror Spot', 'West Dark Death Mountain (Bottom)'),
|
||||
('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'),
|
||||
@@ -2336,15 +2338,15 @@ inverted_mandatory_connections = [('Sanctuary S&Q', 'Dark Sanctuary Hint'),
|
||||
('Bush Covered Lawn Mirror Spot', 'Dark Grassy Lawn'),
|
||||
('Bomb Hut Mirror Spot', 'West Dark World'),
|
||||
('Pyramid Uncle Mirror Spot', 'East Dark World'),
|
||||
('East Dark World 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'),
|
||||
('Dark Desert Ledge 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'),
|
||||
('Ice Lake Central Island Mirror Spot', 'Lake Hylia Central Island'),
|
||||
('Shopping Mall Mirror Spot', 'Southeast Dark World')
|
||||
]
|
||||
|
||||
@@ -2401,10 +2403,10 @@ default_connections = [('Lost Woods Gamble', 'Lost Woods Gamble'),
|
||||
('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 (East)', 'Elder House'),
|
||||
('Elder House Exit (West)', 'Light World'),
|
||||
('Elder House Exit (East)', 'Light World'),
|
||||
('Snitch Lady (West)', 'Snitch Lady (West)'),
|
||||
('Snitch Lady (East)', 'Snitch Lady (East)'),
|
||||
('Bush Covered House', 'Bush Covered House'),
|
||||
|
||||
14
Regions.py
14
Regions.py
@@ -10,8 +10,8 @@ def create_regions(world, player):
|
||||
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'],
|
||||
['Lost Woods Hideout Drop', 'Lost Woods Hideout Stump', 'Lost Woods Gamble', 'Lumberjack Tree Tree', 'Lumberjack Tree Cave', 'Lumberjack House',
|
||||
'Fortune Teller (Light)', 'Bonk Rock Cave', 'Sanctuary', 'Sanctuary Grave', 'North Fairy Cave', 'North Fairy Cave Drop',
|
||||
['Lost Woods Gamble', 'Lost Woods Hideout Drop', 'Lost Woods Hideout Stump', 'Lumberjack Tree Tree', 'Lumberjack Tree Cave', 'Lumberjack House',
|
||||
'Fortune Teller (Light)', 'Bonk Rock Cave', 'Sanctuary', 'Sanctuary Grave', 'North Fairy Cave Drop', 'North Fairy Cave',
|
||||
'Kakariko Well Drop', 'Kakariko Well Cave', 'Blinds Hideout', 'Elder House (West)', 'Elder House (East)',
|
||||
'Snitch Lady (West)', 'Snitch Lady (East)', 'Chicken House', 'Sick Kids House', 'Kakariko Shop', 'Tavern North', 'Tavern (Front)',
|
||||
'Hyrule Castle Secret Entrance Drop', 'Sahasrahlas Hut', 'Eastern Palace', 'Blacksmiths Hut', 'Bat Cave Cave',
|
||||
@@ -31,7 +31,7 @@ def create_regions(world, player):
|
||||
'DM Hammer Bridge (West)', '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 Teleporter' 'DM Flute', 'Death Mountain Mirror Spot']),
|
||||
'DM Broken Bridge (West)', 'Death Mountain Teleporter', 'DM Flute', 'Death Mountain Mirror Spot']),
|
||||
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', 'Fairy Ascension Ledge Access', 'Mimic Cave Ledge Access', 'East Death Mountain Drop',
|
||||
@@ -60,7 +60,7 @@ def create_regions(world, player):
|
||||
create_lw_region(player, 'Maze Race Ledge', ['Maze Race'], ['Two Brothers House (West)', 'Maze Race Ledge Drop', 'Maze Race Mirror Spot'], '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 Entrance (East)', 'Desert Palace Mouth Drop'], 'a sandy vista'),
|
||||
create_lw_region(player, 'Desert Ledge', ['Desert Ledge'], ['Desert Palace Entrance (West)', 'Desert Ledge Rocks (Outer)', 'Desert Ledge Drop'], 'the desert ledge'),
|
||||
create_lw_region(player, 'Desert Ledge', ['Desert Ledge'], ['Desert Palace Entrance (West)', 'Desert Ledge Rocks (Outer)', 'Desert Ledge Drop', 'Dark Desert Ledge Mirror Spot'], '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']),
|
||||
@@ -69,7 +69,7 @@ def create_regions(world, player):
|
||||
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, ['Light World Pier', 'Potion Shop Pier', 'Hobo Pier', 'Lake Hylia Island Pier', 'Lake Hylia Central 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, 'Lake Hylia Central Island', None, ['Capacity Upgrade', 'Lake Hylia Central Island Water Drop', 'Lake Hylia Teleporter', 'Ice Lake Central Island Mirror Spot']),
|
||||
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']),
|
||||
@@ -167,7 +167,7 @@ def create_regions(world, player):
|
||||
create_dw_region(player, 'East Dark Death Mountain (Bottom)', None, ['Superbunny Cave (Bottom)', 'Dark Death Mountain Shop',
|
||||
'East Dark Death Mountain Teleporter (Bottom)', 'EDDM Flute', 'Fairy Ascension Mirror Spot']),
|
||||
create_dw_region(player, 'Turtle Rock (Top)', None, ['Turtle Rock Drop', 'East Dark Death Mountain Teleporter (Top)']),
|
||||
create_dw_region(player, 'West Dark World', ['Frog'], ['Dark Lumberjack Shop', 'Dark Sanctuary Hint', 'Fortune Teller (Dark)', 'Chest Game', 'Thieves Town',
|
||||
create_dw_region(player, 'West Dark World', ['Frog'], ['Dark Lumberjack Shop', 'Fortune Teller (Dark)', 'Dark Sanctuary Hint', 'Chest Game', 'Thieves Town',
|
||||
'C-Shaped House', 'Brewery', 'Red Shield Shop', 'Skull Woods Forest', 'Bumper Cave Entrance Rock',
|
||||
'West Dark World Water Drop', 'Grassy Lawn Pegs (Bottom)', 'Peg Area Rocks (Left)', 'Village of Outcasts Drop',
|
||||
'West Dark World Teleporter', 'WDW Flute', 'Graveyard Ledge Mirror Spot', 'Kings Grave Mirror Spot']),
|
||||
@@ -190,7 +190,7 @@ def create_regions(world, player):
|
||||
create_dw_region(player, 'Dark Desert Ledge', None, ['Dark Desert Drop', 'Dark Desert Teleporter']),
|
||||
create_dw_region(player, 'South Dark World', ['Stumpy', 'Digging Game'], ['Archery Game', 'Bonk Fairy (Dark)', 'Big Bomb Shop', 'Hype Cave', 'Dark Lake Hylia Shop', 'Swamp Palace',
|
||||
'Village of Outcasts Heavy Rock', 'Hammer Bridge Pegs (South)', 'South Dark World Water Drop', 'Post Aga Teleporter',
|
||||
'South Dark World Teleporter', 'SDW Flute',, 'Dig Game Mirror Spot', 'Cave 45 Mirror Spot', 'Bombos Tablet Mirror Spot']),
|
||||
'South Dark World Teleporter', 'SDW Flute', 'Dig Game Mirror Spot', 'Cave 45 Mirror Spot', 'Bombos Tablet Mirror Spot']),
|
||||
create_dw_region(player, 'Dark Lake Hylia Water', None, ['Northeast Dark World Pier', 'East Dark World Pier', 'Southeast Dark World Pier',
|
||||
'Ice Palace Approach', 'Lake Hylia Island Mirror Spot']),
|
||||
create_dw_region(player, 'Dark Lake Hylia Central Island', None, ['Ice Palace', 'Ice Palace Leave Water Drop', 'Ice Island To East Pier',
|
||||
|
||||
81
Rules.py
81
Rules.py
@@ -200,10 +200,6 @@ def global_rules(world, player):
|
||||
(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))
|
||||
@@ -215,9 +211,9 @@ def global_rules(world, 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))
|
||||
set_rule(world.get_entrance('Death Mountain Entrance Rock', player), lambda state: state.can_lift_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))
|
||||
@@ -231,11 +227,11 @@ def global_rules(world, 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('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('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))
|
||||
@@ -869,15 +865,15 @@ def ow_inverted_rules(world, player):
|
||||
set_rule(world.get_entrance('Hyrule Castle 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('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('Mire To Desert Stairs 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('Cave 45 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('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
|
||||
@@ -893,8 +889,9 @@ def ow_inverted_rules(world, 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('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('West Dark World 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('Death Mountain 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))
|
||||
@@ -903,21 +900,21 @@ def ow_inverted_rules(world, 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('Catfish 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('East Dark World 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('Maze Race 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('Mire Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
set_rule(world.get_entrance('Dark Desert Ledge 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('Ice Lake Central Island 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('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
|
||||
@@ -942,6 +939,31 @@ def ow_bunny_rules(world, player):
|
||||
add_bunny_rule(world.get_location('Maze Race', player), player)
|
||||
add_bunny_rule(world.get_location('Flute Spot', 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('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('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('Thieves Town', player), player) # bunny cannot pull
|
||||
add_bunny_rule(world.get_entrance('Turtle Rock', 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)
|
||||
|
||||
# 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)
|
||||
@@ -983,31 +1005,6 @@ def ow_bunny_rules(world, 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('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('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('Thieves Town', player), player) # bunny cannot pull
|
||||
add_bunny_rule(world.get_entrance('Turtle Rock', 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)
|
||||
|
||||
|
||||
@@ -644,7 +644,8 @@ def do_fixed_shuffle(avail, entrance_list):
|
||||
elif rules.fixed:
|
||||
choice = choices[i]
|
||||
elif rules.must_exit_to_lw:
|
||||
lw_exits = default_lw + ['Big Bomb Shop', 'Ganons Tower Exit'] if avail.inverted else ['Links House Exit', 'Agahnims Tower Exit']
|
||||
lw_exits = set(default_lw)
|
||||
lw_exits.update({'Big Bomb Shop', 'Ganons Tower Exit'} if avail.inverted else {'Links House Exit', 'Agahnims Tower Exit'})
|
||||
filtered_choices = {i: opt for i, opt in choices.items() if all(t in lw_exits for t in opt[2])}
|
||||
index, choice = random.choice(list(filtered_choices.items()))
|
||||
else:
|
||||
@@ -774,7 +775,7 @@ def do_vanilla_connect(pool_def, avail):
|
||||
elif pool_def['condition'] == 'pottery': # this condition involves whether caves with pots are shuffled or not
|
||||
if avail.world.pottery[avail.player] not in ['none', 'keys', 'dungeon']:
|
||||
return
|
||||
defaults = default_connections + (inverted_default_connections if avail.inverted else open_default_connections)
|
||||
defaults = {**default_connections, **(inverted_default_connections if avail.inverted else open_default_connections)}
|
||||
for entrance in pool_def['entrances']:
|
||||
if entrance in avail.entrances:
|
||||
target = defaults[entrance]
|
||||
@@ -1883,31 +1884,31 @@ mandatory_connections = [('Links House S&Q', 'Links House'),
|
||||
('Ganon Drop', 'Bottom of Pyramid'),
|
||||
|
||||
# water entry
|
||||
('Waterfall Fairy Access', 'Zora Waterfall Entryway'),
|
||||
('Zora Waterfall Water Drop', 'Lake Hylia Water'),
|
||||
('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'),
|
||||
('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'),
|
||||
('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'),
|
||||
('Hobo Pier', 'Hobo Bridge'),
|
||||
('Lake Hylia Central Island Pier', 'Lake Hylia Central Island'),
|
||||
('Lake Hylia Whirlpool', 'Northeast Light World'),
|
||||
('Waterfall Fairy Access', 'Zora Waterfall Entryway'),
|
||||
|
||||
('Northeast Dark World Pier', 'Northeast Dark World'),
|
||||
('East Dark World Pier', 'East Dark World'),
|
||||
('Southeast Dark World Pier', 'Southeast Dark World'),
|
||||
('Northeast Dark World Pier', 'Northeast Dark World'),
|
||||
|
||||
# terrain
|
||||
('Master Sword Meadow', 'Master Sword Meadow'),
|
||||
@@ -1922,14 +1923,14 @@ mandatory_connections = [('Links House S&Q', 'Links House'),
|
||||
('Kings Grave Rocks (Inner)', 'Light World'),
|
||||
('Potion Shop Rock (South)', 'Northeast Light World'),
|
||||
('Potion Shop Rock (North)', 'Potion Shop Area'),
|
||||
('Kakariko Southwest Bush (North)', 'Bomb Hut Area'),
|
||||
('Kakariko Southwest Bush (South)', 'Light World'),
|
||||
('Kakariko Yard Bush (North)', 'Light World'),
|
||||
('Kakariko Yard Bush (South)', 'Bush Covered Lawn'),
|
||||
('Kakariko Southwest Bush (South)', 'Light World'),
|
||||
('Kakariko Southwest Bush (North)', 'Bomb Hut Area'),
|
||||
('Hyrule Castle Main Gate', 'Hyrule Castle Courtyard'),
|
||||
('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'),
|
||||
('Hyrule Castle Main Gate', 'Hyrule Castle Courtyard'),
|
||||
('Hyrule Castle Main Gate (North)', 'Light World'),
|
||||
('Wooden Bridge Bush (North)', 'Light World'),
|
||||
('Wooden Bridge Bush (South)', 'Potion Shop Area'),
|
||||
('Bat Cave Ledge Peg', 'Bat Cave Ledge'),
|
||||
@@ -1942,8 +1943,8 @@ mandatory_connections = [('Links House S&Q', 'Links House'),
|
||||
('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'),
|
||||
('Grassy Lawn Pegs (Bottom)', 'Dark Grassy Lawn'),
|
||||
('West Dark World Gap', 'West Dark World'),
|
||||
('Broken Bridge Pass (Top)', 'East Dark World'),
|
||||
('Broken Bridge Pass (Bottom)', 'Northeast Dark World'),
|
||||
@@ -1952,6 +1953,7 @@ mandatory_connections = [('Links House S&Q', 'Links House'),
|
||||
('Village of Outcasts Heavy Rock', 'West Dark World'),
|
||||
('Hammer Bridge Pegs (North)', 'South Dark World'),
|
||||
('Hammer Bridge Pegs (South)', 'East Dark World'),
|
||||
('Ice Island To East Pier', 'East Dark World'),
|
||||
|
||||
# ledge drops
|
||||
('Spectacle Rock Drop', 'West Death Mountain (Top)'),
|
||||
@@ -2017,14 +2019,15 @@ open_mandatory_connections = [('Sanctuary S&Q', 'Sanctuary'),
|
||||
|
||||
# mirror
|
||||
('Spectacle Rock Mirror Spot', 'Spectacle Rock'),
|
||||
('Fairy Ascension Mirror Spot', 'Fairy Ascension Plateau'),
|
||||
('East Death Mountain (Top) Mirror Spot', 'East Death Mountain (Top)'),
|
||||
('Dark Floating Island Mirror Spot', 'Death Mountain Floating Island'),
|
||||
('Spiral Cave Mirror Spot', 'Spiral Cave Ledge'),
|
||||
('Mimic Cave Mirror Spot', 'Mimic Cave Ledge'),
|
||||
('Isolated Ledge Mirror Spot', 'Fairy Ascension Ledge'),
|
||||
('Fairy Ascension Mirror Spot', 'Fairy Ascension Plateau'),
|
||||
('Bumper Cave Ledge Mirror Spot', 'Death Mountain Return Ledge'),
|
||||
('Bumper Cave Entrance Mirror Spot', 'Death Mountain Entrance'),
|
||||
('Graveyard Ledge Mirror Spot', 'Graveyard Ledge'),
|
||||
('Kings Grave Mirror Spot', 'Kings Grave Area'),
|
||||
('Dark Grassy Lawn Mirror Spot', 'Bush Covered Lawn'),
|
||||
('Hyrule Castle Ledge Mirror Spot', 'Hyrule Castle Ledge'),
|
||||
@@ -2037,8 +2040,7 @@ open_mandatory_connections = [('Sanctuary S&Q', 'Sanctuary'),
|
||||
('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')
|
||||
('Lake Hylia Central Island Mirror Spot', 'Lake Hylia Central Island')
|
||||
]
|
||||
|
||||
inverted_mandatory_connections = [('Sanctuary S&Q', 'Dark Sanctuary Hint'),
|
||||
@@ -2066,25 +2068,25 @@ inverted_mandatory_connections = [('Sanctuary S&Q', 'Dark Sanctuary Hint'),
|
||||
('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)', 'West Dark Death Mountain (Bottom)'),
|
||||
('Ice Palace Approach', 'Dark Lake Hylia Central Island'),
|
||||
('Floating Island Bridge (East)', 'Death Mountain Floating Island'),
|
||||
('Spectacle Rock Leave', 'West Death Mountain (Top)'),
|
||||
('Floating Island Bridge (West)', 'East Death Mountain (Top)'),
|
||||
('Floating Island Bridge (East)', 'Death Mountain Floating Island'),
|
||||
('Graveyard Ladder (Top)', 'Light World'),
|
||||
('Graveyard Ladder (Bottom)', 'Graveyard Ledge'),
|
||||
('Mimic Cave Ledge Access', 'Mimic Cave Ledge'),
|
||||
('Mimic Cave Ledge Drop', 'East Death Mountain (Bottom)'),
|
||||
('Turtle Rock Tail Drop', 'Turtle Rock (Top)'),
|
||||
('Checkerboard Ledge Approach', 'Desert Checkerboard Ledge'),
|
||||
('Checkerboard Ledge Leave', 'Light World'),
|
||||
('Cave 45 Approach', 'Cave 45 Ledge'),
|
||||
('Cave 45 Leave', 'Light World'),
|
||||
('Lake Hylia Island Pier', 'Lake Hylia Island'),
|
||||
('Bombos Tablet Ladder (Top)', 'Light World'),
|
||||
('Bombos Tablet Ladder (Bottom)', 'Bombos Tablet Ledge'),
|
||||
('Dark Death Mountain Ladder (Top)', 'West Dark Death Mountain (Bottom)'),
|
||||
('Dark Death Mountain Ladder (Bottom)', 'Dark Death Mountain (Top)'),
|
||||
('Turtle Rock Tail Drop', 'Turtle Rock (Top)'),
|
||||
('Ice Palace Approach', 'Dark Lake Hylia Central Island'),
|
||||
|
||||
# portals
|
||||
('Dark Death Mountain Teleporter (West)', 'West Death Mountain (Bottom)'),
|
||||
@@ -2099,8 +2101,9 @@ inverted_mandatory_connections = [('Sanctuary S&Q', 'Dark Sanctuary Hint'),
|
||||
|
||||
# mirror
|
||||
('Skull Woods Mirror Spot', 'Skull Woods Forest (West)'),
|
||||
('Death Mountain Mirror Spot', 'West Dark Death Mountain (Bottom)'),
|
||||
('West Dark World Mirror Spot', 'West Dark World'),
|
||||
('Death Mountain (Top) Mirror Spot', 'Dark Death Mountain (Top)'),
|
||||
('Death Mountain Mirror Spot', 'West Dark Death Mountain (Bottom)'),
|
||||
('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'),
|
||||
@@ -2115,15 +2118,15 @@ inverted_mandatory_connections = [('Sanctuary S&Q', 'Dark Sanctuary Hint'),
|
||||
('Bush Covered Lawn Mirror Spot', 'Dark Grassy Lawn'),
|
||||
('Bomb Hut Mirror Spot', 'West Dark World'),
|
||||
('Pyramid Uncle Mirror Spot', 'East Dark World'),
|
||||
('East Dark World 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'),
|
||||
('Dark Desert Ledge 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'),
|
||||
('Ice Lake Central Island Mirror Spot', 'Lake Hylia Central Island'),
|
||||
('Shopping Mall Mirror Spot', 'Southeast Dark World')
|
||||
]
|
||||
|
||||
@@ -2180,10 +2183,10 @@ default_connections = {'Lost Woods Gamble': 'Lost Woods Gamble',
|
||||
'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 (East)': 'Elder House',
|
||||
'Elder House Exit (West)': 'Light World',
|
||||
'Elder House Exit (East)': 'Light World',
|
||||
'Snitch Lady (West)': 'Snitch Lady (West)',
|
||||
'Snitch Lady (East)': 'Snitch Lady (East)',
|
||||
'Bush Covered House': 'Bush Covered House',
|
||||
@@ -2359,7 +2362,7 @@ open_default_dungeon_connections = [('Agahnims Tower', 'Agahnims Tower Portal'),
|
||||
]
|
||||
|
||||
inverted_default_dungeon_connections = [('Agahnims Tower', 'Ganons Tower Portal'),
|
||||
('Agahnims Tower Exit', 'Dark Death Mountain'),
|
||||
('Agahnims Tower Exit', 'Dark Death Mountain (Top)'),
|
||||
('Ganons Tower', 'Agahnims Tower Portal'),
|
||||
('Ganons Tower Exit', 'Hyrule Castle Ledge')
|
||||
]
|
||||
|
||||
@@ -99,7 +99,7 @@ def test_loop(tests, entrance_set, exit_set, ctr, shuffle_mode, main_mode, links
|
||||
# seed = 635441530
|
||||
random.seed(seed)
|
||||
world = World(1, {1: shuffle_mode}, {1: 'vanilla'}, {1: 'noglitches'}, {1: main_mode}, {}, {}, {},
|
||||
{}, {}, {}, {}, {}, True, {}, {}, [], {})
|
||||
{}, {}, {}, {}, {}, True, {}, [], {})
|
||||
world.customizer = False
|
||||
world.shufflelinks = {1: links}
|
||||
world.shuffletavern = {1: False}
|
||||
|
||||
Reference in New Issue
Block a user