Fix incorrect rules for death mountain entrance cave
also some related fixes to super bomb logic
This commit is contained in:
parent
8be73a8c86
commit
39f177dfa3
|
@ -1473,6 +1473,8 @@ mandatory_connections = [('Links House', 'Links House'), # unshuffled. For now
|
||||||
('Sewers Back Door', 'Sewers (Dark)'),
|
('Sewers Back Door', 'Sewers (Dark)'),
|
||||||
('Agahnim 1', 'Agahnim 1'),
|
('Agahnim 1', 'Agahnim 1'),
|
||||||
('Flute Spot 1', 'Death Mountain'),
|
('Flute Spot 1', 'Death Mountain'),
|
||||||
|
('Death Mountain Entrance Rock', 'Death Mountain Entrance'),
|
||||||
|
('Death Mountain Entrance Drop', 'Light World'),
|
||||||
('Spectacle Rock Cave Drop', 'Spectacle Rock Cave (Bottom)'),
|
('Spectacle Rock Cave Drop', 'Spectacle Rock Cave (Bottom)'),
|
||||||
('Spectacle Rock Cave Peak Drop', 'Spectacle Rock Cave (Bottom)'),
|
('Spectacle Rock Cave Peak Drop', 'Spectacle Rock Cave (Bottom)'),
|
||||||
('Death Mountain Return Ledge Drop', 'Light World'),
|
('Death Mountain Return Ledge Drop', 'Light World'),
|
||||||
|
@ -1509,6 +1511,9 @@ mandatory_connections = [('Links House', 'Links House'), # unshuffled. For now
|
||||||
('Bat Cave Drop Ledge Mirror Spot', 'Bat Cave Drop Ledge'),
|
('Bat Cave Drop Ledge Mirror Spot', 'Bat Cave Drop Ledge'),
|
||||||
('East Dark World River Pier', 'East Dark World'),
|
('East Dark World River Pier', 'East Dark World'),
|
||||||
('West Dark World Gap', 'West Dark World'),
|
('West Dark World Gap', 'West Dark World'),
|
||||||
|
('Bumper Cave Entrance Rock', 'Bumper Cave Entrance'),
|
||||||
|
('Bumper Cave Entrance Drop', 'West Dark World'),
|
||||||
|
('Bumper Cave Entrance Mirror Spot', 'Death Mountain Entrance'),
|
||||||
('Bumper Cave Ledge Drop', 'West Dark World'),
|
('Bumper Cave Ledge Drop', 'West Dark World'),
|
||||||
('Bumper Cave Ledge Mirror Spot', 'Death Mountain Return Ledge'),
|
('Bumper Cave Ledge Mirror Spot', 'Death Mountain Return Ledge'),
|
||||||
('Skull Woods Forest', 'Skull Woods Forest'),
|
('Skull Woods Forest', 'Skull Woods Forest'),
|
||||||
|
|
|
@ -11,10 +11,11 @@ def create_regions(world):
|
||||||
'Blacksmiths Hut', 'Bat Cave Drop Ledge', 'Bat Cave Cave', 'Sick Kids House', 'Hobo Bridge', 'Lost Woods Hideout Drop', 'Lost Woods Hideout Stump',
|
'Blacksmiths Hut', 'Bat Cave Drop Ledge', 'Bat Cave Cave', 'Sick Kids House', 'Hobo Bridge', 'Lost Woods Hideout Drop', 'Lost Woods Hideout Stump',
|
||||||
'Lumberjack Tree Tree', 'Lumberjack Tree Cave', 'Mini Moldorm Cave', 'Ice Rod Cave', 'Lake Hylia Central Island Pier',
|
'Lumberjack Tree Tree', 'Lumberjack Tree Cave', 'Mini Moldorm Cave', 'Ice Rod Cave', 'Lake Hylia Central Island Pier',
|
||||||
'Bonk Rock Cave', 'Library', 'Potion Shop', 'Two Brothers House (East)', 'Desert Palace Stairs', 'Eastern Palace', 'Master Sword Meadow',
|
'Bonk Rock Cave', 'Library', 'Potion Shop', 'Two Brothers House (East)', 'Desert Palace Stairs', 'Eastern Palace', 'Master Sword Meadow',
|
||||||
'Sanctuary', 'Sanctuary Grave', 'Old Man Cave (West)', 'Flute Spot 1', 'Dark Desert Teleporter', 'East Hyrule Teleporter', 'South Hyrule Teleporter', 'Kakariko Teleporter',
|
'Sanctuary', 'Sanctuary Grave', 'Death Mountain Entrance Rock', 'Flute Spot 1', 'Dark Desert Teleporter', '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)',
|
'Elder House (East)', 'Elder House (West)', 'North Fairy Cave', 'North Fairy Cave Drop', 'Lost Woods Gamble', 'Snitch Lady (East)', 'Snitch Lady (West)', 'Tavern (Front)',
|
||||||
'Bush Covered House', 'Light World Bomb Hut', 'Kakariko Shop', 'Long Fairy Cave', 'Good Bee Cave', '20 Rupee Cave', 'Cave Shop (Lake Hylia)', 'Waterfall of Wishing', 'Hyrule Castle Main Gate',
|
'Bush Covered House', 'Light World Bomb Hut', 'Kakariko Shop', 'Long Fairy Cave', 'Good Bee Cave', '20 Rupee Cave', 'Cave Shop (Lake Hylia)', 'Waterfall of Wishing', 'Hyrule Castle Main Gate',
|
||||||
'Bonk Fairy (Light)', '50 Rupee Cave', 'Fortune Teller (Light)', 'Lake Hylia Fairy', 'Swamp Fairy', 'Desert Fairy', 'Lumberjack House', 'Lake Hylia Fortune Teller', 'Kakariko Gamble Game', 'Top of Pyramid']),
|
'Bonk Fairy (Light)', '50 Rupee Cave', 'Fortune Teller (Light)', 'Lake Hylia Fairy', 'Swamp Fairy', 'Desert Fairy', 'Lumberjack House', 'Lake Hylia Fortune Teller', 'Kakariko Gamble Game', 'Top of Pyramid']),
|
||||||
|
create_lw_region('Death Mountain Entrance', None, ['Old Man Cave (West)', 'Death Mountain Entrance Drop']),
|
||||||
create_lw_region('Lake Hylia Central Island', None, ['Capacity Upgrade', 'Lake Hylia Central Island Teleporter']),
|
create_lw_region('Lake Hylia Central Island', None, ['Capacity Upgrade', 'Lake Hylia Central Island Teleporter']),
|
||||||
create_cave_region('Blinds Hideout', ["Blind\'s Hideout - Top",
|
create_cave_region('Blinds Hideout', ["Blind\'s Hideout - Top",
|
||||||
"Blind\'s Hideout - Left",
|
"Blind\'s Hideout - Left",
|
||||||
|
@ -150,8 +151,9 @@ def create_regions(world):
|
||||||
create_cave_region('Dark Lake Hylia Ledge Spike Cave'),
|
create_cave_region('Dark Lake Hylia Ledge Spike Cave'),
|
||||||
create_cave_region('Hype Cave', ['Hype Cave - Top', 'Hype Cave - Middle Right', 'Hype Cave - Middle Left',
|
create_cave_region('Hype Cave', ['Hype Cave - Top', 'Hype Cave - Middle Right', 'Hype Cave - Middle Left',
|
||||||
'Hype Cave - Bottom', 'Hype Cave - Generous Guy']),
|
'Hype Cave - Bottom', 'Hype Cave - Generous Guy']),
|
||||||
create_dw_region('West Dark World', None, ['Village of Outcasts Drop', 'East Dark World River Pier', 'Brewery', 'C-Shaped House', 'Chest Game', 'Thieves Town', 'Graveyard Ledge Mirror Spot', 'Bumper Cave (Bottom)', 'Skull Woods Forest',
|
create_dw_region('West Dark World', None, ['Village of Outcasts Drop', 'East Dark World River Pier', 'Brewery', 'C-Shaped House', 'Chest Game', 'Thieves Town', 'Graveyard Ledge Mirror Spot', 'Bumper Cave Entrance Rock', 'Skull Woods Forest',
|
||||||
'Bat Cave Drop Ledge Mirror Spot', 'Dark World Hammer Peg Cave', 'Red Shield Shop', 'Dark Sanctuary Hint', 'Fortune Teller (Dark)', 'Dark World Shop', 'Dark World Lumberjack Shop']),
|
'Bat Cave Drop Ledge Mirror Spot', 'Dark World Hammer Peg Cave', 'Red Shield Shop', 'Dark Sanctuary Hint', 'Fortune Teller (Dark)', 'Dark World Shop', 'Dark World Lumberjack Shop']),
|
||||||
|
create_dw_region('Bumper Cave Entrance', None, ['Bumper Cave (Bottom)', 'Bumper Cave Entrance Mirror Spot', 'Bumper Cave Entrance Drop']),
|
||||||
create_cave_region('Fortune Teller (Dark)'),
|
create_cave_region('Fortune Teller (Dark)'),
|
||||||
create_cave_region('Dark World Shop'),
|
create_cave_region('Dark World Shop'),
|
||||||
create_cave_region('Dark World Hammer Peg Cave', ['Peg Cave']),
|
create_cave_region('Dark World Hammer Peg Cave', ['Peg Cave']),
|
||||||
|
|
30
Rules.py
30
Rules.py
|
@ -98,7 +98,8 @@ def global_rules(world):
|
||||||
set_rule(world.get_entrance('Sanctuary Grave'), lambda state: state.can_lift_rocks())
|
set_rule(world.get_entrance('Sanctuary Grave'), lambda state: state.can_lift_rocks())
|
||||||
set_rule(world.get_entrance('20 Rupee Cave'), lambda state: state.can_lift_rocks())
|
set_rule(world.get_entrance('20 Rupee Cave'), lambda state: state.can_lift_rocks())
|
||||||
set_rule(world.get_entrance('50 Rupee Cave'), lambda state: state.can_lift_rocks())
|
set_rule(world.get_entrance('50 Rupee Cave'), lambda state: state.can_lift_rocks())
|
||||||
set_rule(world.get_entrance('Old Man Cave (West)'), lambda state: state.can_lift_rocks() or (state.has_Mirror() and state.can_reach('West Dark World', 'Region')))
|
set_rule(world.get_entrance('Death Mountain Entrance Rock'), lambda state: state.can_lift_rocks())
|
||||||
|
set_rule(world.get_entrance('Bumper Cave Entrance Mirror Spot'), lambda state: state.has_Mirror())
|
||||||
set_rule(world.get_entrance('Flute Spot 1'), lambda state: state.has('Ocarina'))
|
set_rule(world.get_entrance('Flute Spot 1'), lambda state: state.has('Ocarina'))
|
||||||
set_rule(world.get_entrance('Lake Hylia Central Island Teleporter'), lambda state: state.can_lift_heavy_rocks())
|
set_rule(world.get_entrance('Lake Hylia Central Island Teleporter'), lambda state: state.can_lift_heavy_rocks())
|
||||||
set_rule(world.get_entrance('Dark Desert Teleporter'), lambda state: state.has('Ocarina') and state.can_lift_heavy_rocks())
|
set_rule(world.get_entrance('Dark Desert Teleporter'), lambda state: state.has('Ocarina') and state.can_lift_heavy_rocks())
|
||||||
|
@ -161,7 +162,7 @@ def global_rules(world):
|
||||||
set_rule(world.get_entrance('Lake Hylia Central Island Mirror Spot'), lambda state: state.has_Mirror())
|
set_rule(world.get_entrance('Lake Hylia Central Island Mirror Spot'), lambda state: state.has_Mirror())
|
||||||
set_rule(world.get_entrance('East Dark World River Pier'), lambda state: state.has_Pearl() and state.has('Flippers')) # ToDo any fake flipper set up?
|
set_rule(world.get_entrance('East Dark World River Pier'), lambda state: state.has_Pearl() and state.has('Flippers')) # ToDo any fake flipper set up?
|
||||||
set_rule(world.get_entrance('Graveyard Ledge Mirror Spot'), lambda state: state.has_Pearl() and state.has_Mirror())
|
set_rule(world.get_entrance('Graveyard Ledge Mirror Spot'), lambda state: state.has_Pearl() and state.has_Mirror())
|
||||||
set_rule(world.get_entrance('Bumper Cave (Bottom)'), lambda state: state.has_Pearl() and state.can_lift_rocks())
|
set_rule(world.get_entrance('Bumper Cave Entrance Rock'), lambda state: state.has_Pearl() and state.can_lift_rocks())
|
||||||
set_rule(world.get_entrance('Bumper Cave Ledge Mirror Spot'), lambda state: state.has_Mirror())
|
set_rule(world.get_entrance('Bumper Cave Ledge Mirror Spot'), lambda state: state.has_Mirror())
|
||||||
set_rule(world.get_entrance('Bat Cave Drop Ledge Mirror Spot'), lambda state: state.has_Pearl() and state.can_lift_heavy_rocks() and state.has_Mirror())
|
set_rule(world.get_entrance('Bat Cave Drop Ledge Mirror Spot'), lambda state: state.has_Pearl() and state.can_lift_heavy_rocks() and state.has_Mirror())
|
||||||
set_rule(world.get_entrance('Dark World Hammer Peg Cave'), lambda state: state.has_Pearl() and state.can_lift_heavy_rocks() and state.has('Hammer'))
|
set_rule(world.get_entrance('Dark World Hammer Peg Cave'), lambda state: state.has_Pearl() and state.can_lift_heavy_rocks() and state.has('Hammer'))
|
||||||
|
@ -599,8 +600,7 @@ def set_big_bomb_rules(world):
|
||||||
'Dark World Lumberjack Shop',
|
'Dark World Lumberjack Shop',
|
||||||
'Thieves Town',
|
'Thieves Town',
|
||||||
'Skull Woods First Section Door',
|
'Skull Woods First Section Door',
|
||||||
'Skull Woods Second Section Door (East)',
|
'Skull Woods Second Section Door (East)']
|
||||||
'Bumper Cave (Bottom)']
|
|
||||||
Southern_DW_entrances = ['Hype Cave',
|
Southern_DW_entrances = ['Hype Cave',
|
||||||
'Bonk Fairy (Dark)',
|
'Bonk Fairy (Dark)',
|
||||||
'Archery Game',
|
'Archery Game',
|
||||||
|
@ -685,8 +685,14 @@ def set_big_bomb_rules(world):
|
||||||
elif bombshop_entrance.name in Northern_DW_entrances:
|
elif bombshop_entrance.name in Northern_DW_entrances:
|
||||||
#1. Mirror and basic routes
|
#1. Mirror and basic routes
|
||||||
#2. Go to south DW and then cross peg bridge: Need Mitts and hammer and moon pearl
|
#2. Go to south DW and then cross peg bridge: Need Mitts and hammer and moon pearl
|
||||||
# -> (Mitts and P and H) or BR)
|
# -> (Mitts and CPB) or (M and BR)
|
||||||
add_rule(world.get_entrance('Pyramid Fairy'), lambda state: (state.can_lift_heavy_rocks() and state.has_Pearl() and state.has('Hammer')) or basic_routes(state))
|
add_rule(world.get_entrance('Pyramid Fairy'), lambda state: (state.can_lift_heavy_rocks() and cross_peg_bridge(state)) or (state.has_Mirror() and basic_routes(state)))
|
||||||
|
elif bombshop_entrance.name == 'Bumper Cave (Bottom)':
|
||||||
|
#1. Mirror and Lift rock and basic_routes
|
||||||
|
#2. Mirror and Flute and basic routes (can make difference if accessed via insanity or w/ mirror from connector, and then via hyrule castle gate, because no gloves are needed in that case)
|
||||||
|
#3. Go to south DW and then cross peg bridge: Need Mitts and hammer and moon pearl
|
||||||
|
# -> (Mitts and CPB) or (((G or Flute) and M) and BR))
|
||||||
|
add_rule(world.get_entrance('Pyramid Fairy'), lambda state: (state.can_lift_heavy_rocks() and cross_peg_bridge(state)) or (((state.can_lift_rocks() or state.has('Ocarina')) and state.has_Mirror()) and basic_routes(state)))
|
||||||
elif bombshop_entrance.name in Southern_DW_entrances:
|
elif bombshop_entrance.name in Southern_DW_entrances:
|
||||||
#1. Mirror and enter via gate: Need mirror and Aga1
|
#1. Mirror and enter via gate: Need mirror and Aga1
|
||||||
#2. cross peg bridge: Need hammer and moon pearl
|
#2. cross peg bridge: Need hammer and moon pearl
|
||||||
|
@ -714,14 +720,14 @@ def set_big_bomb_rules(world):
|
||||||
add_rule(world.get_entrance('Pyramid Fairy'), lambda state: ((state.can_reach('Dark Desert', 'Region') and state.has_Mirror()) or state.has('Ocarina')) and basic_routes(state))
|
add_rule(world.get_entrance('Pyramid Fairy'), lambda state: ((state.can_reach('Dark Desert', 'Region') and state.has_Mirror()) or state.has('Ocarina')) and basic_routes(state))
|
||||||
elif bombshop_entrance.name == 'Old Man Cave (West)':
|
elif bombshop_entrance.name == 'Old Man Cave (West)':
|
||||||
# 1. Lift rock then basic_routes
|
# 1. Lift rock then basic_routes
|
||||||
# 2. use existing mirror spot, mirror again past rocks then basic routes (makes a difference for aga1 defeated basic route, as it avoids gloves requirement)
|
# 2. flute then basic_routes
|
||||||
# -> (G or (M and West Dark World access)) and BR
|
# -> (Flute or G) and BR
|
||||||
add_rule(world.get_entrance('Pyramid Fairy'), lambda state: (state.can_lift_rocks() or (state.can_reach('West Dark World', 'Region') and state.has_Mirror())) and basic_routes(state))
|
add_rule(world.get_entrance('Pyramid Fairy'), lambda state: (state.has('Ocarina') or state.can_lift_rocks()) and basic_routes(state))
|
||||||
elif bombshop_entrance.name == 'Graveyard Cave':
|
elif bombshop_entrance.name == 'Graveyard Cave':
|
||||||
# 1. flute then basic routes
|
# 1. flute then basic routes
|
||||||
# 2. (has west dark world access) use existing mirror spot, mirror again off ledge
|
# 2. (has west dark world access) use existing mirror spot (required Pearl), mirror again off ledge
|
||||||
# -> (Flute or (M and West Dark World access) and BR
|
# -> (Flute or (M and P and West Dark World access) and BR
|
||||||
add_rule(world.get_entrance('Pyramid Fairy'), lambda state: (state.has('Ocarina') or (state.can_reach('West Dark World', 'Region') and state.has_Mirror())) and basic_routes(state))
|
add_rule(world.get_entrance('Pyramid Fairy'), lambda state: (state.has('Ocarina') or (state.can_reach('West Dark World', 'Region') and state.has_Pearl() and state.has_Mirror())) and basic_routes(state))
|
||||||
elif bombshop_entrance.name in Mirror_from_SDW_entrances:
|
elif bombshop_entrance.name in Mirror_from_SDW_entrances:
|
||||||
# 1. flute then basic routes
|
# 1. flute then basic routes
|
||||||
# 2. (has South dark world access) use existing mirror spot, mirror again off ledge
|
# 2. (has South dark world access) use existing mirror spot, mirror again off ledge
|
||||||
|
|
Loading…
Reference in New Issue