Replaced some old region references to OW shuffle names
This commit is contained in:
@@ -709,7 +709,7 @@ class CollectionState(object):
|
||||
return self.has('Fire Rod', player) or self.has('Lamp', player)
|
||||
|
||||
def can_flute(self, player):
|
||||
lw = self.world.get_region('Light World', player)
|
||||
lw = self.world.get_region('Kakariko Area', player)
|
||||
return self.has('Ocarina', player) and lw.can_reach(self) and self.is_not_bunny(lw, player)
|
||||
|
||||
def can_melt_things(self, player):
|
||||
@@ -1443,7 +1443,7 @@ class Sector(object):
|
||||
self.branch_factor -= cnt_dead - 1
|
||||
for region in self.regions:
|
||||
for ent in region.entrances:
|
||||
if (ent.parent_region.type in [RegionType.LightWorld, RegionType.DarkWorld] and ent.parent_region.name != 'Menu') or ent.parent_region.name == 'Sewer Drop':
|
||||
if (ent.parent_region.type in [RegionType.LightWorld, RegionType.DarkWorld] and ent.parent_region.name != 'Menu' and ent.parent_region.name != 'Flute Sky') or ent.parent_region.name == 'Sewer Drop':
|
||||
self.branch_factor += 1
|
||||
break # you only ever get one allowance for an entrance region, multiple entrances don't help
|
||||
return self.branch_factor
|
||||
|
||||
@@ -738,7 +738,7 @@ def determine_entrance_list_vanilla(world, player):
|
||||
region = world.get_region(region_name, player)
|
||||
for ent in region.entrances:
|
||||
parent = ent.parent_region
|
||||
if (parent.type != RegionType.Dungeon and parent.name != 'Menu') or parent.name == 'Sewer Drop':
|
||||
if (parent.type != RegionType.Dungeon and parent.name != 'Menu' and parent.name != 'Flute Sky') or parent.name == 'Sewer Drop':
|
||||
if parent.name not in world.inaccessible_regions[player]:
|
||||
entrance_map[key].append(region_name)
|
||||
else:
|
||||
@@ -769,7 +769,7 @@ def determine_entrance_list(world, player):
|
||||
region = world.get_region(region_name, player)
|
||||
for ent in region.entrances:
|
||||
parent = ent.parent_region
|
||||
if (parent.type != RegionType.Dungeon and parent.name != 'Menu') or parent.name == 'Sewer Drop':
|
||||
if (parent.type != RegionType.Dungeon and parent.name != 'Menu' and parent.name != 'Flute Sky') or parent.name == 'Sewer Drop':
|
||||
std_inaccessible = is_standard_inaccessible(key, portal, world, player)
|
||||
if parent.name not in world.inaccessible_regions[player] and not std_inaccessible:
|
||||
entrance_map[key].append(region_name)
|
||||
|
||||
@@ -3186,7 +3186,7 @@ mandatory_connections = [('Links House S&Q', 'Links House'),
|
||||
('Octoballoon WC', 'Lake Hylia Water'),
|
||||
('Octoballoon NW', 'Ice Rod Cave Area'),
|
||||
('Ice Rod Cave SE', 'Octoballoon Area'),
|
||||
('Ice Rod Cave SW', 'Octoballoon Water Ledge'),#
|
||||
('Ice Rod Cave SW', 'Octoballoon Water Ledge'),
|
||||
|
||||
('West Death Mountain ES', 'East Death Mountain (Bottom Left)'),
|
||||
('West Death Mountain EN', 'East Death Mountain (Top West)'),
|
||||
@@ -3324,7 +3324,7 @@ mandatory_connections = [('Links House S&Q', 'Links House'),
|
||||
('Southeast DW WC', 'Dark Lake Hylia Water'),
|
||||
('Southeast DW NW', 'Dark Shopping Mall Area'),
|
||||
('Dark Shopping Mall SE', 'Southeast DW Area'),
|
||||
('Dark Shopping Mall SW', 'Southeast DW Water Ledge'),#
|
||||
('Dark Shopping Mall SW', 'Southeast DW Water Ledge'),
|
||||
|
||||
('Dark Death Mountain EN', 'Dark Death Mountain (Top East)'),
|
||||
('East Dark Death Mountain WN', 'Dark Death Mountain (Top West)'),
|
||||
@@ -3528,19 +3528,19 @@ default_connections = [('Waterfall of Wishing', 'Waterfall of Wishing'),
|
||||
('Capacity Upgrade', 'Capacity Upgrade'),
|
||||
('Kakariko Well Drop', 'Kakariko Well (top)'),
|
||||
('Kakariko Well Cave', 'Kakariko Well (bottom)'),
|
||||
('Kakariko Well Exit', 'Light World'),
|
||||
('Kakariko Well Exit', 'Kakariko Area'),
|
||||
('Blacksmiths Hut', 'Blacksmiths Hut'),
|
||||
('Bat Cave Drop', 'Bat Cave (right)'),
|
||||
('Bat Cave Cave', 'Bat Cave (left)'),
|
||||
('Bat Cave Exit', 'Light World'),
|
||||
('Bat Cave Exit', 'Blacksmith Area'),
|
||||
('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'),
|
||||
('Elder House Exit (East)', 'Kakariko Area'),
|
||||
('Elder House Exit (West)', 'Kakariko Area'),
|
||||
('North Fairy Cave Drop', 'North Fairy Cave'),
|
||||
('North Fairy Cave', 'North Fairy Cave'),
|
||||
('North Fairy Cave Exit', 'Light World'),
|
||||
('North Fairy Cave Exit', 'Useless Fairy Area'),
|
||||
('Lost Woods Gamble', 'Lost Woods Gamble'),
|
||||
('Fortune Teller (Light)', 'Fortune Teller (Light)'),
|
||||
('Snitch Lady (East)', 'Snitch Lady (East)'),
|
||||
@@ -3551,10 +3551,10 @@ default_connections = [('Waterfall of Wishing', 'Waterfall of Wishing'),
|
||||
('Kakariko Shop', 'Kakariko Shop'),
|
||||
('Lost Woods Hideout Drop', 'Lost Woods Hideout (top)'),
|
||||
('Lost Woods Hideout Stump', 'Lost Woods Hideout (bottom)'),
|
||||
('Lost Woods Hideout Exit', 'Light World'),
|
||||
('Lost Woods Hideout Exit', 'Lost Woods Area'),
|
||||
('Lumberjack Tree Tree', 'Lumberjack Tree (top)'),
|
||||
('Lumberjack Tree Cave', 'Lumberjack Tree (bottom)'),
|
||||
('Lumberjack Tree Exit', 'Light World'),
|
||||
('Lumberjack Tree Exit', 'Lumberjack Area'),
|
||||
('Cave 45', 'Cave 45'),
|
||||
('Graveyard Cave', 'Graveyard Cave'),
|
||||
('Checkerboard Cave', 'Checkerboard Cave'),
|
||||
@@ -3570,37 +3570,37 @@ default_connections = [('Waterfall of Wishing', 'Waterfall of Wishing'),
|
||||
('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 (East)', 'Kakariko Suburb Area'),
|
||||
('Two Brothers House Exit (West)', 'Maze Race Ledge'),
|
||||
|
||||
('Sanctuary', 'Sanctuary Portal'),
|
||||
('Sanctuary Grave', 'Sewer Drop'),
|
||||
('Sanctuary Exit', 'Light World'),
|
||||
('Sanctuary Exit', 'Sanctuary Area'),
|
||||
|
||||
('Old Man Cave (West)', 'Old Man Cave'),
|
||||
('Old Man Cave (East)', 'Old Man Cave'),
|
||||
('Old Man Cave Exit (West)', 'Light World'),
|
||||
('Old Man Cave Exit (East)', 'Death Mountain'),
|
||||
('Old Man Cave Exit (West)', 'Death Mountain Entrance'),
|
||||
('Old Man Cave Exit (East)', 'West Death Mountain (Bottom)'),
|
||||
('Old Man House (Bottom)', 'Old Man House'),
|
||||
('Old Man House Exit (Bottom)', 'Death Mountain'),
|
||||
('Old Man House Exit (Bottom)', 'West Death Mountain (Bottom)'),
|
||||
('Old Man House (Top)', 'Old Man House Back'),
|
||||
('Old Man House Exit (Top)', 'Death Mountain'),
|
||||
('Old Man House Exit (Top)', 'West Death Mountain (Bottom)'),
|
||||
('Death Mountain Return Cave (East)', 'Death Mountain Return Cave'),
|
||||
('Death Mountain Return Cave (West)', 'Death Mountain Return Cave'),
|
||||
('Death Mountain Return Cave Exit (West)', 'Death Mountain Return Ledge'),
|
||||
('Death Mountain Return Cave Exit (East)', 'Death Mountain'),
|
||||
('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'),
|
||||
('Spectacle Rock Cave Exit (Top)', 'Death Mountain'),
|
||||
('Spectacle Rock Cave Exit (Peak)', 'Death Mountain'),
|
||||
('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)'),
|
||||
('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)'),
|
||||
('Paradox Cave Exit (Top)', 'East Death Mountain (Top East)'),
|
||||
('Hookshot Fairy', 'Hookshot Fairy'),
|
||||
('Fairy Ascension Cave (Bottom)', 'Fairy Ascension Cave (Bottom)'),
|
||||
('Fairy Ascension Cave (Top)', 'Fairy Ascension Cave (Top)'),
|
||||
@@ -3636,7 +3636,7 @@ default_connections = [('Waterfall of Wishing', 'Waterfall of Wishing'),
|
||||
('Dark World Potion Shop', 'Dark World Potion Shop'),
|
||||
('Archery Game', 'Archery Game'),
|
||||
('Bumper Cave Exit (Top)', 'Bumper Cave Ledge'),
|
||||
('Bumper Cave Exit (Bottom)', 'West Dark World'),
|
||||
('Bumper Cave Exit (Bottom)', 'Bumper Cave Entrance'),
|
||||
('Mire Shed', 'Mire Shed'),
|
||||
('Dark Desert Hint', 'Dark Desert Hint'),
|
||||
('Dark Desert Fairy', 'Dark Desert Healer Fairy'),
|
||||
@@ -3646,15 +3646,15 @@ default_connections = [('Waterfall of Wishing', 'Waterfall of Wishing'),
|
||||
('Cave Shop (Dark Death Mountain)', 'Cave Shop (Dark Death Mountain)'),
|
||||
('Dark Death Mountain Fairy', 'Dark Death Mountain Healer Fairy'),
|
||||
('Superbunny Cave (Bottom)', 'Superbunny Cave'),
|
||||
('Superbunny Cave Exit (Top)', 'Dark Death Mountain (Top)'),
|
||||
('Superbunny Cave Exit (Top)', 'Dark Death Mountain (Top East)'),
|
||||
('Superbunny Cave Exit (Bottom)', 'Dark Death Mountain (East Bottom)'),
|
||||
('Hookshot Cave Exit (South)', 'Dark Death Mountain (Top)'),
|
||||
('Hookshot Cave Exit (North)', 'Death Mountain Floating Island (Dark World)'),
|
||||
('Hookshot Cave Exit (South)', 'Dark Death Mountain (Top East)'),
|
||||
('Hookshot Cave Exit (North)', 'Dark Death Mountain Floating Island'),
|
||||
('Hookshot Cave Back Entrance', 'Hookshot Cave'),
|
||||
('Mimic Cave', 'Mimic Cave'),
|
||||
|
||||
('Pyramid Hole', 'Pyramid'),
|
||||
('Pyramid Exit', 'Pyramid Ledge'),
|
||||
('Pyramid Exit', 'Pyramid Exit Ledge'),
|
||||
('Pyramid Entrance', 'Bottom of Pyramid')
|
||||
]
|
||||
|
||||
@@ -3814,13 +3814,13 @@ default_dungeon_connections = [('Desert Palace Entrance (South)', 'Desert South
|
||||
('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 (East)', 'Desert Palace Mouth'),
|
||||
('Desert Palace Exit (North)', 'Desert Palace Entrance (North) Spot'),
|
||||
|
||||
('Eastern Palace', 'Eastern Portal'),
|
||||
('Eastern Palace Exit', 'Light World'),
|
||||
('Eastern Palace Exit', 'Eastern Palace Area'),
|
||||
('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'),
|
||||
@@ -3832,7 +3832,7 @@ default_dungeon_connections = [('Desert Palace Entrance (South)', 'Desert South
|
||||
('Agahnims Tower Exit', 'Hyrule Castle Ledge'),
|
||||
|
||||
('Thieves Town', 'Thieves Town Portal'),
|
||||
('Thieves Town Exit', 'West Dark World'),
|
||||
('Thieves Town Exit', 'Village of Outcasts Area'),
|
||||
('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'),
|
||||
@@ -3846,16 +3846,16 @@ default_dungeon_connections = [('Desert Palace Entrance (South)', 'Desert South
|
||||
('Skull Woods Final Section', 'Skull 3 Portal'),
|
||||
('Skull Woods Final Section Exit', 'Skull Woods Forest (West)'),
|
||||
('Ice Palace', 'Ice Portal'),
|
||||
('Ice Palace Exit', 'Dark Lake Hylia Central Island'),
|
||||
('Ice Palace Exit', 'Ice Palace Area'),
|
||||
('Misery Mire', 'Mire Portal'),
|
||||
('Misery Mire Exit', 'Dark Desert'),
|
||||
('Misery Mire Exit', 'Misery Mire Area'),
|
||||
('Palace of Darkness', 'Palace of Darkness Portal'),
|
||||
('Palace of Darkness Exit', 'East Dark World'),
|
||||
('Palace of Darkness Exit', 'Palace of Darkness Area'),
|
||||
('Swamp Palace', 'Swamp Portal'), # requires additional patch for flooding moat if moved
|
||||
('Swamp Palace Exit', 'South Dark World'),
|
||||
('Swamp Palace Exit', 'Swamp Palace Area'),
|
||||
|
||||
('Turtle Rock', 'Turtle Rock Main Portal'),
|
||||
('Turtle Rock Exit (Front)', 'Dark Death Mountain (Top)'),
|
||||
('Turtle Rock Exit (Front)', 'Turtle Rock Area'),
|
||||
('Turtle Rock Ledge Exit (West)', 'Dark Death Mountain Ledge'),
|
||||
('Turtle Rock Ledge Exit (East)', 'Dark Death Mountain Ledge'),
|
||||
('Dark Death Mountain Ledge (West)', 'Turtle Rock Lazy Eyes Portal'),
|
||||
@@ -3864,7 +3864,7 @@ default_dungeon_connections = [('Desert Palace Entrance (South)', 'Desert South
|
||||
('Turtle Rock Isolated Ledge Entrance', 'Turtle Rock Eye Bridge Portal'),
|
||||
|
||||
('Ganons Tower', 'Ganons Tower Portal'),
|
||||
('Ganons Tower Exit', 'Dark Death Mountain (Top)')
|
||||
('Ganons Tower Exit', 'Dark Death Mountain (Top West)')
|
||||
]
|
||||
|
||||
inverted_default_dungeon_connections = [('Desert Palace Entrance (South)', 'Desert South Portal'),
|
||||
@@ -3922,7 +3922,8 @@ inverted_default_dungeon_connections = [('Desert Palace Entrance (South)', 'Dese
|
||||
]
|
||||
|
||||
indirect_connections = {
|
||||
'Turtle Rock (Top)': 'Turtle Rock',
|
||||
'Turtle Rock Ledge': 'Turtle Rock',
|
||||
'Pyramid Area': 'Pyramid Fairy',
|
||||
'East Dark World': 'Pyramid Fairy',
|
||||
'Big Bomb Shop': 'Pyramid Fairy',
|
||||
'Dark Desert': 'Pyramid Fairy',
|
||||
|
||||
@@ -193,7 +193,7 @@ def generate_itempool(world, player):
|
||||
world.push_item(world.get_location('Ganon', player), ItemFactory('Triforce', player), False)
|
||||
|
||||
if world.goal[player] in ['triforcehunt']:
|
||||
region = world.get_region('Light World',player)
|
||||
region = world.get_region('Hyrule Castle Courtyard',player)
|
||||
|
||||
loc = Location(player, "Murahdahla", parent=region)
|
||||
loc.access_rule = lambda state: state.item_count('Triforce Piece', player) + state.item_count('Power Star', player) >= state.world.treasure_hunt_count[player]
|
||||
|
||||
@@ -236,7 +236,7 @@ def create_regions(world, player):
|
||||
create_dw_region(player, 'Palace of Darkness Area', None, ['Palace of Darkness Hint', 'Palace of Darkness', 'Eastern Palace Mirror Spot', 'Palace of Darkness SW', 'Palace of Darkness SE']),
|
||||
create_dw_region(player, 'Palace of Darkness Nook Area', None, ['East Dark World Hint', 'Eastern Nook Mirror Spot', 'Palace of Darkness Nook NE']),
|
||||
create_dw_region(player, 'Dig Game Area', ['Digging Game'], ['Dig Game Drop To Ledge', 'Maze Race Mirror Spot', 'Dig Game ES']),
|
||||
create_dw_region(player, 'Dig Game Ledge', None, ['Maze Race Mirror Spot', 'Dig Game Ledge Drop', 'Dig Game EC'])
|
||||
create_dw_region(player, 'Dig Game Ledge', None, ['Maze Race Mirror Spot', 'Dig Game Ledge Drop', 'Dig Game EC']),
|
||||
create_dw_region(player, 'Frog Area', ['Frog'], ['Frog Ledge Drop', 'Kakariko Suburb Mirror Spot', 'Frog NE']),
|
||||
create_dw_region(player, 'Archery Game Area', None, ['Archery Game', 'Archery Game Rock', 'Kakariko Suburb Mirror Spot', 'Frog WC', 'Frog WS', 'Frog ES']),
|
||||
create_dw_region(player, 'Stumpy Area', ['Stumpy'], ['Flute Boy Mirror Spot', 'Stumpy SC']),
|
||||
|
||||
31
Rules.py
31
Rules.py
@@ -460,13 +460,9 @@ def default_rules(world, player):
|
||||
set_rule(world.get_entrance('HC Ledge Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
set_rule(world.get_entrance('Hyrule Castle Main Gate (South)', 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('Dark Lake Hylia Drop (East)', player), lambda state: (state.has_Pearl(player) and state.has('Flippers', player) or state.has_Mirror(player))) # Overworld Bunny Revival
|
||||
set_rule(world.get_location('Bombos Tablet', player), lambda state: state.has('Book of Mudora', player) and state.has_beam_sword(player) and state.has_Mirror(player))
|
||||
set_rule(world.get_entrance('Dark Lake Hylia Drop (South)', player), lambda state: state.has_Pearl(player) and state.has('Flippers', player)) # ToDo any fake flipper set up?
|
||||
set_rule(world.get_entrance('Dark Lake Hylia Ledge Fairy', player), lambda state: state.has_Pearl(player)) # bomb required
|
||||
set_rule(world.get_entrance('Dark Lake Hylia Ledge Spike Cave', player), lambda state: state.can_lift_rocks(player) and state.has_Pearl(player))
|
||||
set_rule(world.get_entrance('Dark Lake Hylia Teleporter', player), lambda state: state.has_Pearl(player) and (state.has('Hammer', player) or state.can_lift_rocks(player))) # Fake Flippers
|
||||
set_rule(world.get_entrance('Village of Outcasts Heavy Rock', player), lambda state: state.has_Pearl(player) and state.can_lift_heavy_rocks(player))
|
||||
set_rule(world.get_entrance('Hype Cave', player), lambda state: state.has_Pearl(player)) # bomb required
|
||||
set_rule(world.get_entrance('Brewery', player), lambda state: state.has_Pearl(player)) # bomb required
|
||||
set_rule(world.get_entrance('Thieves Town', player), lambda state: state.has_Pearl(player)) # bunny cannot pull
|
||||
@@ -482,7 +478,6 @@ def default_rules(world, player):
|
||||
set_rule(world.get_entrance('DM Ascent Ledge Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
set_rule(world.get_entrance('Bat Cave Ledge Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
set_rule(world.get_entrance('Dark World Hammer Peg Cave', player), lambda state: state.has_Pearl(player) and state.has('Hammer', player))
|
||||
set_rule(world.get_entrance('Village of Outcasts Eastern Rocks', player), lambda state: state.has_Pearl(player) and state.can_lift_heavy_rocks(player))
|
||||
set_rule(world.get_entrance('Peg Area Rocks (West)', player), lambda state: state.has_Pearl(player) and state.can_lift_heavy_rocks(player))
|
||||
set_rule(world.get_entrance('Peg Area Rocks (East)', player), lambda state: state.has_Pearl(player) and state.can_lift_heavy_rocks(player))
|
||||
set_rule(world.get_entrance('Village of Outcasts Pegs', player), lambda state: state.has_Pearl(player) and state.has('Hammer', player))
|
||||
@@ -508,9 +503,9 @@ def default_rules(world, player):
|
||||
set_rule(world.get_entrance('Isolated Ledge Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
set_rule(world.get_entrance('Superbunny Cave Exit (Bottom)', player), lambda state: False) # Cannot get to bottom exit from top. Just exists for shuffling
|
||||
set_rule(world.get_entrance('Floating Island Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
set_rule(world.get_entrance('Turtle Rock', player), lambda state: state.has_Pearl(player) and 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 (!)
|
||||
set_rule(world.get_entrance('Turtle Rock', player), lambda state: state.has_Pearl(player) and state.has_sword(player) and state.has_turtle_rock_medallion(player) and state.can_reach('Turtle Rock Ledge', 'Region', player)) # sword required to cast magic (!)
|
||||
|
||||
#
|
||||
# New OW Shuffle Rules
|
||||
set_rule(world.get_entrance('Lost Woods Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
set_rule(world.get_entrance('Lumberjack Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
set_rule(world.get_entrance('DM Ascent Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
@@ -584,19 +579,18 @@ def default_rules(world, player):
|
||||
set_rule(world.get_entrance('Dark C Whirlpool Rock (Top)', player), lambda state: state.has_Pearl(player) and state.can_lift_rocks(player))
|
||||
|
||||
set_rule(world.get_entrance('Useless Fairy 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))
|
||||
set_rule(world.get_entrance('Zora Warning Water Drop', player), lambda state: state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Wooden Bridge Water Drop', player), lambda state: state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Lake Hylia Water Drop', player), lambda state: state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Octoballoon Water Drop', player), lambda state: state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Qirn Jump Water Drop', player), lambda state: state.has_Pearl(player) and state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Dark Witch Water Drop', player), lambda state: state.has_Pearl(player) and state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Catfish Approach Water Drop', player), lambda state: state.has_Pearl(player) and state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Broken Bridge Water Drop', player), lambda state: state.has_Pearl(player) and state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Hammer Bridge Water Drop', player), lambda state: state.has_Pearl(player) and state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Dark Lake Hylia Water Drop', player), lambda state: state.has_Pearl(player) and state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Southeast DW Water Drop', player), lambda state: state.has_Pearl(player) and state.has('Flippers', player))
|
||||
|
||||
set_rule(world.get_entrance('Ice Rod Cave SW', player), lambda state: state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Dark Shopping Mall SW', player), lambda state: state.has_Pearl(player) and state.has('Flippers', player))
|
||||
|
||||
set_rule(world.get_entrance('C Whirlpool', player), lambda state: state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Useless Fairy Whirlpool', player), lambda state: state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Lake Hylia Whirlpool', player), lambda state: state.has('Flippers', player))
|
||||
@@ -614,6 +608,7 @@ def default_rules(world, player):
|
||||
set_rule(world.get_entrance('Flute Spot 6', player), lambda state: state.can_flute(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))
|
||||
# End of New OW Shuffle Rules
|
||||
|
||||
set_rule(world.get_entrance('Pyramid Hole', player), lambda state: state.has('Beat Agahnim 2', player) or world.open_pyramid[player])
|
||||
set_rule(world.get_entrance('Ganons Tower', player), lambda state: False) # This is a safety for the TR function below to not require GT entrance in its key logic.
|
||||
@@ -775,13 +770,11 @@ def inverted_rules(world, player):
|
||||
|
||||
def no_glitches_rules(world, player):
|
||||
if world.mode[player] != 'inverted':
|
||||
add_rule(world.get_entrance('Zoras River', player), lambda state: state.has('Flippers', player) or state.can_lift_rocks(player))
|
||||
add_rule(world.get_entrance('Lake Hylia Central Island Pier', player), lambda state: state.has('Flippers', player)) # can be fake flippered to
|
||||
add_rule(world.get_entrance('Hobo Bridge', player), lambda state: state.has('Flippers', player))
|
||||
add_rule(world.get_entrance('Dark Lake Hylia Drop (East)', player), lambda state: state.has_Pearl(player) and state.has('Flippers', player))
|
||||
add_rule(world.get_entrance('Dark Lake Hylia Teleporter', player), lambda state: state.has_Pearl(player) and state.has('Flippers', player) and (state.has('Hammer', player) or state.can_lift_rocks(player)))
|
||||
add_rule(world.get_entrance('Dark Lake Hylia Ledge Drop', player), lambda state: state.has_Pearl(player) and state.has('Flippers', player))
|
||||
add_rule(world.get_entrance('East Dark World River Pier', player), lambda state: state.has('Flippers', player))
|
||||
# TODO: move some OW fake flipper situations here, new Water Drop Exits will need to be created
|
||||
add_rule(world.get_entrance('Potion Shop Water Drop', player), lambda state: state.has('Flippers', player))
|
||||
add_rule(world.get_entrance('Zora Warning Water Drop', player), lambda state: state.has('Flippers', player))
|
||||
add_rule(world.get_entrance('Dark Witch Water Drop', player), lambda state: state.has_Pearl(player) and state.has('Flippers', player))
|
||||
add_rule(world.get_entrance('Catfish Approach Water Drop', player), lambda state: state.has_Pearl(player) and state.has('Flippers', player))
|
||||
else:
|
||||
add_rule(world.get_entrance('Zoras River', player), lambda state: state.has_Pearl(player) and (state.has('Flippers', player) or state.can_lift_rocks(player)))
|
||||
add_rule(world.get_entrance('Lake Hylia Central Island Pier', player), lambda state: state.has_Pearl(player) and state.has('Flippers', player)) # can be fake flippered to
|
||||
@@ -901,7 +894,7 @@ def swordless_rules(world, player):
|
||||
|
||||
if world.mode[player] != 'inverted':
|
||||
set_rule(world.get_entrance('Agahnims Tower', player), lambda state: state.has('Cape', player) or state.has('Hammer', player) or state.has('Beat Agahnim 1', player)) # barrier gets removed after killing agahnim, relevant for entrance shuffle
|
||||
set_rule(world.get_entrance('Turtle Rock', player), lambda state: state.has_Pearl(player) and state.has_turtle_rock_medallion(player) and state.can_reach('Turtle Rock (Top)', 'Region', player)) # sword not required to use medallion for opening in swordless (!)
|
||||
set_rule(world.get_entrance('Turtle Rock', player), lambda state: state.has_Pearl(player) and state.has_turtle_rock_medallion(player) and state.can_reach('Turtle Rock Ledge', 'Region', player)) # sword not required to use medallion for opening in swordless (!)
|
||||
set_rule(world.get_entrance('Misery Mire', player), lambda state: state.has_Pearl(player) and state.has_misery_mire_medallion(player)) # sword not required to use medallion for opening in swordless (!)
|
||||
set_rule(world.get_location('Bombos Tablet', player), lambda state: state.has('Book of Mudora', player) and state.has('Hammer', player) and state.has_Mirror(player))
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user