Merging Regions and Rulesets
This commit is contained in:
@@ -134,26 +134,26 @@ def get_boots_clip_exits_lw(inverted = False):
|
||||
Special Light World region exits that require boots clips.
|
||||
"""
|
||||
|
||||
yield ('Bat Cave River Clip Spot', 'Light World', 'Bat Cave Drop Ledge')
|
||||
yield ('Light World DMA Clip Spot', 'Light World', 'Death Mountain')
|
||||
yield ('Hera Ascent', 'Death Mountain', 'Death Mountain (Top)')
|
||||
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 ('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', 'East Death Mountain (Top)')
|
||||
yield ('Zora Descent Clip Spot', 'East Death Mountain (Top)', 'Zoras River')
|
||||
yield ('Death Mountain Glitched Bridge', 'Death Mountain (West 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', 'Light World')
|
||||
yield ('Kings Grave Clip Spot', 'Death Mountain', 'Kings Grave Area')
|
||||
yield ('Death Mountain Descent', 'Death Mountain (West Bottom)', 'Light World')
|
||||
yield ('Kings Grave Clip Spot', 'Death Mountain (West Bottom)', 'Kings Grave Area')
|
||||
|
||||
if not inverted:
|
||||
yield ('Graveyard Ledge Clip Spot', 'Death Mountain', 'Graveyard Ledge')
|
||||
yield ('Desert Ledge (Northeast) Dropdown', 'Desert Northern Cliffs', 'Desert Ledge (Northeast)')
|
||||
yield ('Graveyard Ledge Clip Spot', 'Death Mountain (West 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 ('Bombos Tablet Clip Spot', 'Light World', 'Bombos Tablet Ledge')
|
||||
yield ('Floating Island Clip Spot', 'East Death Mountain (Top)', 'Death Mountain Floating Island (Light World)')
|
||||
yield ('Floating Island Clip Spot', 'East Death Mountain (Top)', 'Death Mountain Floating Island')
|
||||
yield ('Cave 45 Clip Spot', 'Light World', 'Cave 45 Ledge')
|
||||
|
||||
|
||||
@@ -162,12 +162,12 @@ 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', inverted and 'Dark Death Mountain' or 'Dark Death Mountain (West Bottom)')
|
||||
yield ('Dark World DMA Clip Spot', 'West Dark World', 'Dark Death Mountain (West 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', inverted and 'Dark Death Mountain' or 'Dark Death Mountain (Top)', 'Catfish')
|
||||
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', 'Dark Lake Hylia Ledge')
|
||||
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)')
|
||||
|
||||
@@ -184,17 +184,16 @@ def get_glitched_speed_drops_dw(inverted = False):
|
||||
"""
|
||||
Dark World drop-down ledges that require glitched speed.
|
||||
"""
|
||||
yield ('Dark Death Mountain Ledge Clip Spot', inverted and 'Dark Death Mountain' or 'Dark Death Mountain (Top)', 'Dark Death Mountain Ledge')
|
||||
yield ('Dark Death Mountain Ledge Clip Spot', 'Dark Death Mountain (Top)', 'Dark Death Mountain Ledge')
|
||||
|
||||
|
||||
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)', 'Dark Death Mountain Bunny Descent Area')
|
||||
yield ('West Dark World Bunny Descent', 'Dark Death Mountain Bunny Descent Area', 'West Dark World')
|
||||
yield ('Dark Death Mountain (East Bottom) Jump', 'Dark Death Mountain Bunny Descent Area', 'Dark Death Mountain (East Bottom)')
|
||||
yield ('Desert East Mirror Clip', 'Dark Desert', 'Desert Palace Lone Stairs')
|
||||
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 ('Desert East Mirror Clip', 'Dark Desert', 'Desert Palace Mouth')
|
||||
|
||||
|
||||
def get_mirror_offset_spots_dw():
|
||||
@@ -208,8 +207,8 @@ def get_mirror_offset_spots_lw(player):
|
||||
"""
|
||||
Mirror shenanigans placing a mirror portal with a broken camera
|
||||
"""
|
||||
yield ('Death Mountain Offset Mirror', 'Death Mountain', 'Light World')
|
||||
yield ('Death Mountain Offset Mirror (Houlihan Exit)', 'Death Mountain', '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', '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))
|
||||
|
||||
|
||||
def create_owg_connections(world, player):
|
||||
@@ -251,16 +250,14 @@ def overworld_glitches_rules(world, player):
|
||||
# Regions that require the boots and some other stuff.
|
||||
if world.mode[player] != 'inverted':
|
||||
world.get_entrance('Turtle Rock Teleporter', player).access_rule = lambda state: (state.can_boots_clip_lw(player) or state.can_lift_heavy_rocks(player)) and state.has('Hammer', player)
|
||||
add_alternate_rule(world.get_entrance('Waterfall of Wishing', player), lambda state: state.has('Moon Pearl', player) or state.has_Boots(player))
|
||||
add_alternate_rule(world.get_entrance('Waterfall Fairy Access', player), lambda state: state.has_Pearl(player) or state.has_Boots(player)) # assumes access to Waterwalk ability (boots case)
|
||||
else:
|
||||
add_alternate_rule(world.get_entrance('Waterfall of Wishing Cave', player), lambda state: state.has('Moon Pearl', player))
|
||||
add_alternate_rule(world.get_entrance('Waterfall Fairy Access', player), lambda state: state.has_Pearl(player))
|
||||
|
||||
world.get_entrance('Dark Desert Teleporter', player).access_rule = lambda state: (state.can_flute(player) or state.has_Boots(player)) and state.can_lift_heavy_rocks(player)
|
||||
add_alternate_rule(world.get_entrance('Catfish Exit Rock', player), lambda state: state.can_boots_clip_dw(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))
|
||||
|
||||
# Zora's Ledge via waterwalk setup.
|
||||
add_alternate_rule(world.get_location('Zora\'s Ledge', player), lambda state: state.has_Boots(player))
|
||||
add_alternate_rule(world.get_location('Zora\'s Ledge', player), lambda state: state.can_boots_clip_lw(player)) # assumes access to Waterwalk ability
|
||||
|
||||
|
||||
def add_alternate_rule(entrance, rule):
|
||||
|
||||
Reference in New Issue
Block a user