Mainly double switch room logic
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -39,3 +39,4 @@ test
|
||||
data/base2current.json
|
||||
TestSuite.py
|
||||
|
||||
crystal_regions.py
|
||||
|
||||
@@ -1993,6 +1993,7 @@ logical_connections = [
|
||||
('Hera Lobby to Crystal', 'Hera Lobby Crystal'),
|
||||
('Hera Lobby Crystal Exit', 'Hera Lobby'),
|
||||
('Hera Front to Crystal', 'Hera Front Crystal'),
|
||||
('Hera Front to Back Bypass', 'Hera Back'),
|
||||
('Hera Front Crystal Exit', 'Hera Front'),
|
||||
('Hera Front to Down Stairs Barrier - Blue', 'Hera Down Stairs Landing'),
|
||||
('Hera Front to Up Stairs Barrier - Orange', 'Hera Up Stairs Landing'),
|
||||
@@ -2017,7 +2018,8 @@ logical_connections = [
|
||||
('PoD Arena North to Landing Barrier - Orange', 'PoD Arena Landing'),
|
||||
('PoD Arena Main to Ranged Crystal', 'PoD Arena Main - Ranged Crystal'),
|
||||
('PoD Arena Main to Landing Barrier - Blue', 'PoD Arena Landing'),
|
||||
('PoD Arena Main to North Ranged Barrier - Orange', 'PoD Arena North'),
|
||||
('PoD Arena Main to Landing Bypass', 'PoD Arena Landing'),
|
||||
('PoD Arena Main to Right Bypass', 'PoD Arena Right'),
|
||||
('PoD Arena Main Ranged Crystal Exit', 'PoD Arena Main'),
|
||||
('PoD Arena Bridge to Ranged Crystal', 'PoD Arena Bridge - Ranged Crystal'),
|
||||
('PoD Arena Bridge Ranged Crystal Exit', 'PoD Arena Bridge'),
|
||||
@@ -2025,6 +2027,10 @@ logical_connections = [
|
||||
('PoD Arena Landing to Right Barrier - Blue', 'PoD Arena Right'),
|
||||
('PoD Arena Landing to North Barrier - Orange', 'PoD Arena North'),
|
||||
('PoD Arena Right to Landing Barrier - Blue', 'PoD Arena Landing'),
|
||||
('PoD Arena Right to Ranged Crystal', 'PoD Arena Right - Ranged Crystal'),
|
||||
('PoD Arena Right Ranged Crystal Exit', 'PoD Arena Right'),
|
||||
('PoD Arena Ledge to Ranged Crystal', 'PoD Arena Ledge - Ranged Crystal'),
|
||||
('PoD Arena Ledge Ranged Crystal Exit', 'PoD Arena Ledge'),
|
||||
|
||||
('PoD Map Balcony Drop Down', 'PoD Sexy Statue'),
|
||||
('PoD Map Balcony to Ranged Crystal', 'PoD Map Balcony - Ranged Crystal'),
|
||||
@@ -2033,6 +2039,7 @@ logical_connections = [
|
||||
('PoD Falling Bridge Path N', 'PoD Falling Bridge Ledge'),
|
||||
('PoD Falling Bridge Path S', 'PoD Falling Bridge'),
|
||||
('PoD Bow Statue Left to Right Barrier - Orange', 'PoD Bow Statue Right'),
|
||||
('PoD Bow Statue Left to Right Bypass', 'PoD Bow Statue Right'),
|
||||
('PoD Bow Statue Right to Left Barrier - Orange', 'PoD Bow Statue Left'),
|
||||
('PoD Bow Statue Right to Ranged Crystal', 'PoD Bow Statue Right - Ranged Crystal'),
|
||||
('PoD Bow Statue Ranged Crystal Exit', 'PoD Bow Statue Right'),
|
||||
@@ -2177,12 +2184,19 @@ logical_connections = [
|
||||
('GT Hookshot South-East Path', 'GT Hookshot East Platform'),
|
||||
('GT Hookshot South-North Path', 'GT Hookshot North Platform'),
|
||||
('GT Hookshot Platform Blue Barrier', 'GT Hookshot South Entry'),
|
||||
('GT Hookshot Platform Barrier Bypass', 'GT Hookshot South Entry'),
|
||||
('GT Hookshot Entry Blue Barrier', 'GT Hookshot South Platform'),
|
||||
('GT Hookshot South Entry to Ranged Crystal', 'GT Hookshot South Entry - Ranged Crystal'),
|
||||
('GT HookShot South Entry Ranged Crystal Exit', 'GT Hookshot South Entry'),
|
||||
('GT Double Switch to Pot Corners Barrier - Orange', 'GT Double Switch Pot Corners'),
|
||||
('GT Double Switch Pot Corners to Barrier - Orange', 'GT Double Switch Entry'),
|
||||
('GT Double Switch Pot Corners to Barrier - Blue', 'GT Double Switch Exit'),
|
||||
('GT Double Switch Entry to Pot Corners Barrier - Orange', 'GT Double Switch Pot Corners'),
|
||||
('GT Double Switch Entry to Left Barrier - Orange', 'GT Double Switch Left'),
|
||||
('GT Double Switch Entry to Ranged Switches', 'GT Double Switch Entry - Ranged Switches'),
|
||||
('GT Double Switch Entry Ranged Switches Exit', 'GT Double Switch Entry'),
|
||||
('GT Double Switch Left to Entry Barrier - Orange', 'GT Double Switch Entry'),
|
||||
('GT Double Switch Left to Entry Bypass', 'GT Double Switch Entry'),
|
||||
('GT Double Switch Left to Pot Corners Bypass', 'GT Double Switch Pot Corners'),
|
||||
('GT Double Switch Pot Corners to Entry Barrier - Orange', 'GT Double Switch Entry'),
|
||||
('GT Double Switch Pot Corners to Exit Barrier - Blue', 'GT Double Switch Exit'),
|
||||
('GT Double Switch Pot Corners to Ranged Switches', 'GT Double Switch Pot Corners - Ranged Switches'),
|
||||
('GT Double Switch Pot Corners Ranged Switches Exit', 'GT Double Switch Pot Corners'),
|
||||
('GT Double Switch Exit to Blue Barrier', 'GT Double Switch Pot Corners'),
|
||||
|
||||
41
Doors.py
41
Doors.py
@@ -267,6 +267,7 @@ def create_doors(world, player):
|
||||
create_door(player, 'Hera Up Stairs Landing to Ranged Crystal', Lgcl),
|
||||
create_door(player, 'Hera Up Stairs Landing Ranged Crystal Exit', Lgcl),
|
||||
create_door(player, 'Hera Front to Back Barrier - Orange', Lgcl),
|
||||
create_door(player, 'Hera Front to Back Bypass', Lgcl),
|
||||
create_door(player, 'Hera Back to Front Barrier - Orange', Lgcl),
|
||||
create_door(player, 'Hera Back to Ranged Crystal', Lgcl),
|
||||
create_door(player, 'Hera Back Ranged Crystal Exit', Lgcl),
|
||||
@@ -381,7 +382,8 @@ def create_doors(world, player):
|
||||
create_door(player, 'PoD Arena North to Landing Barrier - Orange', Lgcl),
|
||||
create_door(player, 'PoD Arena Main to Ranged Crystal', Lgcl),
|
||||
create_door(player, 'PoD Arena Main to Landing Barrier - Blue', Lgcl),
|
||||
create_door(player, 'PoD Arena Main to North Ranged Barrier - Orange', Lgcl),
|
||||
create_door(player, 'PoD Arena Main to Landing Bypass', Lgcl),
|
||||
create_door(player, 'PoD Arena Main to Right Bypass', Lgcl),
|
||||
create_door(player, 'PoD Arena Main Ranged Crystal Exit', Lgcl),
|
||||
create_door(player, 'PoD Arena Bridge to Ranged Crystal', Lgcl),
|
||||
create_door(player, 'PoD Arena Bridge Ranged Crystal Exit', Lgcl),
|
||||
@@ -389,6 +391,10 @@ def create_doors(world, player):
|
||||
create_door(player, 'PoD Arena Landing to Right Barrier - Blue', Lgcl),
|
||||
create_door(player, 'PoD Arena Landing to North Barrier - Orange', Lgcl),
|
||||
create_door(player, 'PoD Arena Right to Landing Barrier - Blue', Lgcl),
|
||||
create_door(player, 'PoD Arena Right to Ranged Crystal', Lgcl),
|
||||
create_door(player, 'PoD Arena Right Ranged Crystal Exit', Lgcl),
|
||||
create_door(player, 'PoD Arena Ledge to Ranged Crystal', Lgcl),
|
||||
create_door(player, 'PoD Arena Ledge Ranged Crystal Exit', Lgcl),
|
||||
create_door(player, 'PoD Arena Ledge ES', Nrml).dir(Ea, 0x2a, Bot, High).pos(2),
|
||||
create_door(player, 'PoD Sexy Statue W', Nrml).dir(We, 0x2b, Mid, High).pos(3),
|
||||
create_door(player, 'PoD Sexy Statue NW', Nrml).dir(No, 0x2b, Left, High).trap(0x1).pos(2),
|
||||
@@ -426,6 +432,7 @@ def create_doors(world, player):
|
||||
create_door(player, 'PoD Mimics 2 NW', Intr).dir(No, 0x1b, Left, High).pos(0),
|
||||
create_door(player, 'PoD Bow Statue SW', Intr).dir(So, 0x1b, Left, High).pos(0),
|
||||
create_door(player, 'PoD Bow Statue Left to Right Barrier - Orange', Lgcl),
|
||||
create_door(player, 'PoD Bow Statue Left to Right Bypass', Lgcl),
|
||||
create_door(player, 'PoD Bow Statue Right to Left Barrier - Orange', Lgcl),
|
||||
create_door(player, 'PoD Bow Statue Right to Ranged Crystal', Lgcl),
|
||||
create_door(player, 'PoD Bow Statue Ranged Crystal Exit', Lgcl),
|
||||
@@ -1064,6 +1071,7 @@ def create_doors(world, player):
|
||||
create_door(player, 'GT Hookshot South-North Path', Lgcl),
|
||||
create_door(player, 'GT Hookshot Platform Blue Barrier', Lgcl),
|
||||
create_door(player, 'GT Hookshot Entry Blue Barrier', Lgcl),
|
||||
create_door(player, 'GT Hookshot Platform Barrier Bypass', Lgcl),
|
||||
create_door(player, 'GT Hookshot South Entry to Ranged Crystal', Lgcl),
|
||||
create_door(player, 'GT HookShot South Entry Ranged Crystal Exit', Lgcl),
|
||||
create_door(player, 'GT Hookshot NW', Nrml).dir(No, 0x8b, Left, High).pos(4),
|
||||
@@ -1071,9 +1079,15 @@ def create_doors(world, player):
|
||||
create_door(player, 'GT Map Room WS', Intr).dir(We, 0x8b, Bot, High).small_key().pos(1),
|
||||
create_door(player, 'GT Hookshot SW', Nrml).dir(So, 0x8b, Left, High).pos(3).portal(Z, 0x02),
|
||||
create_door(player, 'GT Double Switch NW', Nrml).dir(No, 0x9b, Left, High).pos(1).kill(),
|
||||
create_door(player, 'GT Double Switch to Pot Corners Barrier - Orange', Lgcl),
|
||||
create_door(player, 'GT Double Switch Pot Corners to Barrier - Orange', Lgcl),
|
||||
create_door(player, 'GT Double Switch Pot Corners to Barrier - Blue', Lgcl),
|
||||
create_door(player, 'GT Double Switch Entry to Pot Corners Barrier - Orange', Lgcl),
|
||||
create_door(player, 'GT Double Switch Entry to Left Barrier - Orange', Lgcl),
|
||||
create_door(player, 'GT Double Switch Entry to Ranged Switches', Lgcl),
|
||||
create_door(player, 'GT Double Switch Entry Ranged Switches Exit', Lgcl),
|
||||
create_door(player, 'GT Double Switch Left to Entry Barrier - Orange', Lgcl),
|
||||
create_door(player, 'GT Double Switch Left to Pot Corners Bypass', Lgcl),
|
||||
create_door(player, 'GT Double Switch Left to Entry Bypass', Lgcl),
|
||||
create_door(player, 'GT Double Switch Pot Corners to Entry Barrier - Orange', Lgcl),
|
||||
create_door(player, 'GT Double Switch Pot Corners to Exit Barrier - Blue', Lgcl),
|
||||
create_door(player, 'GT Double Switch Pot Corners to Ranged Switches', Lgcl),
|
||||
create_door(player, 'GT Double Switch Pot Corners Ranged Switches Exit', Lgcl),
|
||||
create_door(player, 'GT Double Switch Exit to Blue Barrier', Lgcl),
|
||||
@@ -1221,6 +1235,7 @@ def create_doors(world, player):
|
||||
world.get_door('Hera Front to Up Stairs Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||
world.get_door('Hera Up Stairs to Front Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||
world.get_door('Hera Up Stairs Landing Ranged Crystal Exit', player).c_switch()
|
||||
world.get_door('Hera Front to Back Bypass', player).barrier(CrystalBarrier.Blue)
|
||||
world.get_door('Hera Front to Back Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||
world.get_door('Hera Back to Front Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||
world.get_door('Hera Back Ranged Crystal Exit', player).c_switch()
|
||||
@@ -1239,18 +1254,22 @@ def create_doors(world, player):
|
||||
|
||||
world.get_door('PoD Arena North to Landing Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||
world.get_door('PoD Arena Main to Landing Barrier - Blue', player).barrier(CrystalBarrier.Blue)
|
||||
world.get_door('PoD Arena Main to North Ranged Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||
world.get_door('PoD Arena Main to Landing Bypass', player).barrier(CrystalBarrier.Orange)
|
||||
world.get_door('PoD Arena Main to Right Bypass', player).barrier(CrystalBarrier.Orange)
|
||||
world.get_door('PoD Arena Main Ranged Crystal Exit', player).c_switch()
|
||||
world.get_door('PoD Arena Bridge Ranged Crystal Exit', player).c_switch()
|
||||
world.get_door('PoD Arena Landing to Main Barrier - Blue', player).barrier(CrystalBarrier.Blue)
|
||||
world.get_door('PoD Arena Landing to Right Barrier - Blue', player).barrier(CrystalBarrier.Blue)
|
||||
world.get_door('PoD Arena Landing to North Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||
world.get_door('PoD Arena Right to Landing Barrier - Blue', player).barrier(CrystalBarrier.Blue)
|
||||
world.get_door('PoD Arena Right Ranged Crystal Exit', player).c_switch()
|
||||
world.get_door('PoD Arena Ledge Ranged Crystal Exit', player).c_switch()
|
||||
|
||||
world.get_door('PoD Sexy Statue W', player).c_switch()
|
||||
world.get_door('PoD Sexy Statue NW', player).c_switch()
|
||||
world.get_door('PoD Map Balcony Ranged Crystal Exit', player).c_switch()
|
||||
world.get_door('PoD Bow Statue SW', player).c_switch()
|
||||
world.get_door('PoD Bow Statue Left to Right Bypass', player).barrier(CrystalBarrier.Blue)
|
||||
world.get_door('PoD Bow Statue Left to Right Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||
world.get_door('PoD Bow Statue Right to Left Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||
world.get_door('PoD Bow Statue Ranged Crystal Exit', player).c_switch()
|
||||
@@ -1356,6 +1375,7 @@ def create_doors(world, player):
|
||||
world.get_door('GT Hookshot South-North Path', player).c_switch()
|
||||
world.get_door('GT Hookshot South-East Path', player).c_switch()
|
||||
world.get_door('GT Hookshot ES', player).c_switch()
|
||||
world.get_door('GT Hookshot Platform Barrier Bypass', player).barrier(CrystalBarrier.Orange)
|
||||
world.get_door('GT Hookshot Platform Blue Barrier', player).barrier(CrystalBarrier.Blue)
|
||||
world.get_door('GT HookShot South Entry Ranged Crystal Exit', player).c_switch()
|
||||
world.get_door('GT Spike Crystals WN', player).c_switch()
|
||||
@@ -1369,9 +1389,14 @@ def create_doors(world, player):
|
||||
world.get_door('GT Crystal Inner Circle Barrier - Orange', player).c_switch()
|
||||
world.get_door('GT Crystal Circles Ranged Crystal Exit', player).c_switch()
|
||||
world.get_door('GT Hookshot Entry Blue Barrier', player).barrier(CrystalBarrier.Blue)
|
||||
world.get_door('GT Double Switch to Pot Corners Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||
world.get_door('GT Double Switch Pot Corners to Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||
world.get_door('GT Double Switch Pot Corners to Barrier - Blue', player).barrier(CrystalBarrier.Blue)
|
||||
world.get_door('GT Double Switch Entry to Pot Corners Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||
world.get_door('GT Double Switch Entry to Left Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||
world.get_door('GT Double Switch Entry Ranged Switches Exit', player).c_switch()
|
||||
world.get_door('GT Double Switch Left to Entry Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||
world.get_door('GT Double Switch Left to Entry Bypass', player).barrier(CrystalBarrier.Blue)
|
||||
world.get_door('GT Double Switch Left to Pot Corners Bypass', player).barrier(CrystalBarrier.Blue)
|
||||
world.get_door('GT Double Switch Pot Corners to Entry Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||
world.get_door('GT Double Switch Pot Corners to Exit Barrier - Blue', player).barrier(CrystalBarrier.Blue)
|
||||
world.get_door('GT Double Switch Pot Corners Ranged Switches Exit', player).c_switch()
|
||||
world.get_door('GT Double Switch Exit to Blue Barrier', player).barrier(CrystalBarrier.Blue)
|
||||
|
||||
|
||||
@@ -212,7 +212,7 @@ tower_regions = [
|
||||
pod_regions = [
|
||||
'PoD Lobby', 'PoD Left Cage', 'PoD Middle Cage', 'PoD Shooter Room', 'PoD Pit Room', 'PoD Pit Room Blocked',
|
||||
'PoD Arena Main', 'PoD Arena Main - Ranged Crystal', 'PoD Arena North', 'PoD Arena Bridge', 'PoD Arena Bridge - Ranged Crystal',
|
||||
'PoD Arena Landing', 'PoD Arena Right', 'PoD Arena Ledge', 'PoD Sexy Statue',
|
||||
'PoD Arena Landing', 'PoD Arena Right', 'PoD Arena Right - Ranged Crystal', 'PoD Arena Ledge', 'PoD Arena Ledge - Ranged Crystal', 'PoD Sexy Statue',
|
||||
'PoD Map Balcony', 'PoD Map Balcony - Ranged Crystal', 'PoD Conveyor', 'PoD Mimics 1', 'PoD Jelly Hall', 'PoD Warp Hint', 'PoD Warp Room',
|
||||
'PoD Stalfos Basement', 'PoD Basement Ledge', 'PoD Big Key Landing', 'PoD Falling Bridge',
|
||||
'PoD Falling Bridge Ledge', 'PoD Dark Maze', 'PoD Big Chest Balcony', 'PoD Compass Room', 'PoD Dark Basement',
|
||||
@@ -299,7 +299,8 @@ gt_regions = [
|
||||
'GT Crystal Conveyor Corner - Ranged Crystal',
|
||||
'GT Compass Room', 'GT Invisible Bridges', 'GT Invisible Catwalk', 'GT Conveyor Cross', 'GT Hookshot East Platform',
|
||||
'GT Hookshot North Platform', 'GT Hookshot South Platform', 'GT Hookshot South Entry', 'GT Hookshot South Entry - Ranged Crystal', 'GT Map Room',
|
||||
'GT Double Switch Entry', 'GT Double Switch Pot Corners - Ranged Switches', 'GT Double Switch Pot Corners',
|
||||
'GT Double Switch Entry', 'GT Double Switch Pot Corners - Ranged Switches', 'GT Double Switch Pot Corners', 'GT Double Switch Left',
|
||||
'GT Double Switch Entry - Ranged Switches',
|
||||
'GT Double Switch Exit', 'GT Spike Crystals', 'GT Warp Maze - Left Section', 'GT Warp Maze - Mid Section',
|
||||
'GT Warp Maze - Right Section', 'GT Warp Maze - Pit Section', 'GT Warp Maze - Pit Exit Warp Spot',
|
||||
'GT Warp Maze Exit Section', 'GT Firesnake Room', 'GT Firesnake Room Ledge', 'GT Warp Maze - Rail Choice',
|
||||
|
||||
25
Regions.py
25
Regions.py
@@ -339,7 +339,7 @@ def create_dungeon_regions(world, player):
|
||||
# Hera
|
||||
create_dungeon_region(player, 'Hera Lobby', 'Tower of Hera', None, ['Hera Lobby S', 'Hera Lobby to Crystal', 'Hera Lobby to Front Barrier - Blue']),
|
||||
create_dungeon_region(player, 'Hera Lobby Crystal', 'Tower of Hera', None, ['Hera Lobby Crystal Exit']),
|
||||
create_dungeon_region(player, 'Hera Front', 'Tower of Hera', None, ['Hera Front to Crystal', 'Hera Front to Lobby Barrier - Blue', 'Hera Front to Down Stairs Barrier - Blue', 'Hera Front to Up Stairs Barrier - Orange', 'Hera Front to Back Barrier - Orange']),
|
||||
create_dungeon_region(player, 'Hera Front', 'Tower of Hera', None, ['Hera Front to Crystal', 'Hera Front to Lobby Barrier - Blue', 'Hera Front to Down Stairs Barrier - Blue', 'Hera Front to Up Stairs Barrier - Orange', 'Hera Front to Back Barrier - Orange', 'Hera Front to Back Bypass']),
|
||||
create_dungeon_region(player, 'Hera Front Crystal', 'Tower of Hera', None, ['Hera Front Crystal Exit']),
|
||||
create_dungeon_region(player, 'Hera Down Stairs Landing', 'Tower of Hera', None, ['Hera Lobby Down Stairs', 'Hera Down Stairs to Front Barrier - Blue', 'Hera Down Stairs Landing to Ranged Crystal']),
|
||||
create_dungeon_region(player, 'Hera Down Stairs Landing - Ranged Crystal', 'Tower of Hera', None, ['Hera Down Stairs Landing Ranged Crystal Exit']),
|
||||
@@ -388,15 +388,17 @@ def create_dungeon_regions(world, player):
|
||||
create_dungeon_region(player, 'PoD Pit Room', 'Palace of Darkness', None, ['PoD Pit Room S', 'PoD Pit Room NW', 'PoD Pit Room Bomb Hole', 'PoD Pit Room Block Path N']),
|
||||
create_dungeon_region(player, 'PoD Pit Room Blocked', 'Palace of Darkness', None, ['PoD Pit Room NE', 'PoD Pit Room Freefall', 'PoD Pit Room Block Path S']),
|
||||
|
||||
create_dungeon_region(player, 'PoD Arena Main', 'Palace of Darkness', None, ['PoD Arena Main SW', 'PoD Arena Main to Ranged Crystal', 'PoD Arena Main to Landing Barrier - Blue', 'PoD Arena Main to North Ranged Barrier - Orange']),
|
||||
create_dungeon_region(player, 'PoD Arena Main', 'Palace of Darkness', None, ['PoD Arena Main SW', 'PoD Arena Main to Ranged Crystal', 'PoD Arena Main to Landing Barrier - Blue', 'PoD Arena Main to Landing Bypass', 'PoD Arena Main to Right Bypass']),
|
||||
create_dungeon_region(player, 'PoD Arena Main - Ranged Crystal', 'Palace of Darkness', None, ['PoD Arena Main Ranged Crystal Exit']),
|
||||
create_dungeon_region(player, 'PoD Arena North', 'Palace of Darkness', None, ['PoD Arena Main NW', 'PoD Arena Main NE', 'PoD Arena North Drop Down', 'PoD Arena North to Landing Barrier - Orange']),
|
||||
create_dungeon_region(player, 'PoD Arena Bridge', 'Palace of Darkness', ['Palace of Darkness - The Arena - Bridge'], ['PoD Arena Bridge SE', 'PoD Arena Bridge Drop Down', 'PoD Arena Bridge to Ranged Crystal']),
|
||||
create_dungeon_region(player, 'PoD Arena Bridge - Ranged Crystal', 'Palace of Darkness', None, ['PoD Arena Bridge Ranged Crystal Exit']),
|
||||
create_dungeon_region(player, 'PoD Arena Landing', 'Palace of Darkness', None, ['PoD Arena Landing to Main Barrier - Blue', 'PoD Arena Landing to Right Barrier - Blue', 'PoD Arena Landing to North Barrier - Orange', 'PoD Arena Landing Bonk Path']),
|
||||
create_dungeon_region(player, 'PoD Arena Right', 'Palace of Darkness', None, ['PoD Arena Crystals E', 'PoD Arena Right to Landing Barrier - Blue']),
|
||||
create_dungeon_region(player, 'PoD Arena Right', 'Palace of Darkness', None, ['PoD Arena Crystals E', 'PoD Arena Right to Landing Barrier - Blue', 'PoD Arena Right to Ranged Crystal']),
|
||||
create_dungeon_region(player, 'PoD Arena Right - Ranged Crystal', 'Palace of Darkness', None, ['PoD Arena Right Ranged Crystal Exit']),
|
||||
create_dungeon_region(player, 'PoD Arena Ledge', 'Palace of Darkness', ['Palace of Darkness - The Arena - Ledge'], ['PoD Arena Ledge ES', 'PoD Arena Ledge to Ranged Crystal']),
|
||||
create_dungeon_region(player, 'PoD Arena Ledge - Ranged Crystal', 'Palace of Darkness', None, ['PoD Arena Ledge Ranged Crystal Exit']),
|
||||
|
||||
create_dungeon_region(player, 'PoD Arena Ledge', 'Palace of Darkness', ['Palace of Darkness - The Arena - Ledge'], ['PoD Arena Ledge ES']),
|
||||
create_dungeon_region(player, 'PoD Sexy Statue', 'Palace of Darkness', None, ['PoD Sexy Statue W', 'PoD Sexy Statue NW']),
|
||||
create_dungeon_region(player, 'PoD Map Balcony', 'Palace of Darkness', ['Palace of Darkness - Map Chest'], ['PoD Map Balcony to Ranged Crystal', 'PoD Map Balcony WS', 'PoD Map Balcony South Stairs', 'PoD Map Balcony Drop Down']),
|
||||
create_dungeon_region(player, 'PoD Map Balcony - Ranged Crystal', 'Palace of Darkness', None, ['PoD Map Balcony Ranged Crystal Exit']),
|
||||
@@ -418,7 +420,7 @@ def create_dungeon_regions(world, player):
|
||||
create_dungeon_region(player, 'PoD Mimics 2', 'Palace of Darkness', None, ['PoD Mimics 2 SW', 'PoD Mimics 2 NW']),
|
||||
create_dungeon_region(player, 'PoD Bow Statue', 'Palace of Darkness', None, ['PoD Bow Statue SW', 'PoD Bow Statue Down Ladder']),
|
||||
|
||||
create_dungeon_region(player, 'PoD Bow Statue Left', 'Palace of Darkness', None, ['PoD Bow Statue SW', 'PoD Bow Statue Left to Right Barrier - Orange']),
|
||||
create_dungeon_region(player, 'PoD Bow Statue Left', 'Palace of Darkness', None, ['PoD Bow Statue SW', 'PoD Bow Statue Left to Right Barrier - Orange', 'PoD Bow Statue Left to Right Bypass']),
|
||||
create_dungeon_region(player, 'PoD Bow Statue Right', 'Palace of Darkness', None, ['PoD Bow Statue Right to Left Barrier - Orange', 'PoD Bow Statue Right to Ranged Crystal', 'PoD Bow Statue Down Ladder']),
|
||||
create_dungeon_region(player, 'PoD Bow Statue Right - Ranged Crystal', 'Palace of Darkness', None, ['PoD Bow Statue Ranged Crystal Exit']),
|
||||
|
||||
@@ -732,15 +734,18 @@ def create_dungeon_regions(world, player):
|
||||
create_dungeon_region(player, 'GT Conveyor Cross', 'Ganon\'s Tower', ['Ganons Tower - Conveyor Cross Pot Key'], ['GT Conveyor Cross EN', 'GT Conveyor Cross WN']),
|
||||
create_dungeon_region(player, 'GT Hookshot East Platform', 'Ganon\'s Tower', None, ['GT Hookshot EN', 'GT Hookshot East-North Path', 'GT Hookshot East-South Path']),
|
||||
create_dungeon_region(player, 'GT Hookshot North Platform', 'Ganon\'s Tower', None, ['GT Hookshot NW', 'GT Hookshot North-East Path', 'GT Hookshot North-South Path']),
|
||||
create_dungeon_region(player, 'GT Hookshot South Platform', 'Ganon\'s Tower', None, ['GT Hookshot ES', 'GT Hookshot South-East Path', 'GT Hookshot South-North Path', 'GT Hookshot Platform Blue Barrier']),
|
||||
create_dungeon_region(player, 'GT Hookshot South Platform', 'Ganon\'s Tower', None, ['GT Hookshot ES', 'GT Hookshot South-East Path', 'GT Hookshot South-North Path', 'GT Hookshot Platform Blue Barrier', 'GT Hookshot Platform Barrier Bypass']),
|
||||
create_dungeon_region(player, 'GT Hookshot South Entry', 'Ganon\'s Tower', None, ['GT Hookshot SW', 'GT Hookshot Entry Blue Barrier', 'GT Hookshot South Entry to Ranged Crystal']),
|
||||
create_dungeon_region(player, 'GT Hookshot South Entry - Ranged Crystal', 'Ganon\'s Tower', None, ['GT HookShot South Entry Ranged Crystal Exit']),
|
||||
create_dungeon_region(player, 'GT Map Room', 'Ganon\'s Tower', ['Ganons Tower - Map Chest'], ['GT Map Room WS']),
|
||||
|
||||
create_dungeon_region(player, 'GT Double Switch Entry', 'Ganon\'s Tower', None, ['GT Double Switch NW', 'GT Double Switch to Pot Corners Barrier - Orange']),
|
||||
create_dungeon_region(player, 'GT Double Switch Pot Corners', 'Ganon\'s Tower', ['Ganons Tower - Double Switch Pot Key'], ['GT Double Switch Pot Corners to Barrier - Orange', 'GT Double Switch Pot Corners to Barrier - Blue', 'GT Double Switch Pot Corners to Ranged Switches']),
|
||||
create_dungeon_region(player, 'GT Double Switch Entry', 'Ganon\'s Tower', None, ['GT Double Switch NW', 'GT Double Switch Entry to Left Barrier - Orange', 'GT Double Switch Entry to Pot Corners Barrier - Orange', 'GT Double Switch Entry to Ranged Switches']),
|
||||
create_dungeon_region(player, 'GT Double Switch Entry - Ranged Switches', 'Ganon\'s Tower', None, ['GT Double Switch Entry Ranged Switches Exit']),
|
||||
create_dungeon_region(player, 'GT Double Switch Left', 'Ganon\'s Tower', None, ['GT Double Switch Left to Entry Barrier - Orange', 'GT Double Switch Left to Entry Bypass', 'GT Double Switch Left to Pot Corners Bypass']),
|
||||
create_dungeon_region(player, 'GT Double Switch Pot Corners', 'Ganon\'s Tower', ['Ganons Tower - Double Switch Pot Key'], ['GT Double Switch Pot Corners to Entry Barrier - Orange', 'GT Double Switch Pot Corners to Exit Barrier - Blue', 'GT Double Switch Pot Corners to Ranged Switches']),
|
||||
create_dungeon_region(player, 'GT Double Switch Pot Corners - Ranged Switches', 'Ganon\'s Tower', None, ['GT Double Switch Pot Corners Ranged Switches Exit']),
|
||||
create_dungeon_region(player, 'GT Double Switch Exit', 'Ganon\'s Tower', None, ['GT Double Switch EN', 'GT Double Switch Exit to Blue Barrier']),
|
||||
|
||||
create_dungeon_region(player, 'GT Spike Crystals', 'Ganon\'s Tower', None, ['GT Spike Crystals WN', 'GT Spike Crystals Warp']),
|
||||
create_dungeon_region(player, 'GT Warp Maze - Left Section', 'Ganon\'s Tower', None, ['GT Warp Maze - Left Section Warp']),
|
||||
create_dungeon_region(player, 'GT Warp Maze - Mid Section', 'Ganon\'s Tower', None, ['GT Warp Maze - Mid Section Left Warp', 'GT Warp Maze - Mid Section Right Warp']),
|
||||
@@ -820,6 +825,8 @@ def create_dungeon_regions(world, player):
|
||||
world.get_region('Hera Startile Wide', player).crystal_switch = True
|
||||
world.get_region('PoD Arena Main - Ranged Crystal', player).crystal_switch = True
|
||||
world.get_region('PoD Arena Bridge - Ranged Crystal', player).crystal_switch = True
|
||||
world.get_region('PoD Arena Right - Ranged Crystal', player).crystal_switch = True
|
||||
world.get_region('PoD Arena Ledge - Ranged Crystal', player).crystal_switch = True
|
||||
world.get_region('PoD Map Balcony - Ranged Crystal', player).crystal_switch = True
|
||||
world.get_region('PoD Sexy Statue', player).crystal_switch = True
|
||||
world.get_region('PoD Bow Statue Left', player).crystal_switch = True
|
||||
@@ -854,6 +861,8 @@ def create_dungeon_regions(world, player):
|
||||
world.get_region('GT Hookshot South Platform', player).crystal_switch = True
|
||||
world.get_region('GT Hookshot South Entry - Ranged Crystal', player).crystal_switch = True
|
||||
# Relevant to indicate north door can access c_switch
|
||||
world.get_region('GT Double Switch Left', player).crystal_switch = True
|
||||
world.get_region('GT Double Switch Entry - Ranged Switches', player).crystal_switch = True
|
||||
world.get_region('GT Double Switch Pot Corners - Ranged Switches', player).crystal_switch = True
|
||||
world.get_region('GT Spike Crystals', player).crystal_switch = True
|
||||
world.get_region('GT Crystal Paths', player).crystal_switch = True
|
||||
|
||||
30
Rules.py
30
Rules.py
@@ -355,22 +355,28 @@ def global_rules(world, player):
|
||||
set_rule(world.get_entrance('Hera Up Stairs to Front Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('Hera Up Stairs Landing', player), player))
|
||||
set_rule(world.get_entrance('Hera Up Stairs Landing to Ranged Crystal', player), lambda state: state.can_hit_crystal_through_barrier(player))
|
||||
set_rule(world.get_entrance('Hera Front to Back Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('Hera Front', player), player))
|
||||
set_rule(world.get_entrance('Hera Front to Back Bypass', player), lambda state: state.can_use_bombs(player) or state.can_use_arrows(player) or state.has('Red Boomerang', player) or state.has('Blue Boomerang', player) or state.has('Cane of Somaria', player) or state.has('Fire Rod', player) or state.has('Ice Rod', player)) # or state.has_beam_sword(player)
|
||||
set_rule(world.get_entrance('Hera Back to Front Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('Hera Back', player), player))
|
||||
set_rule(world.get_entrance('Hera Back to Ranged Crystal', player), lambda state:state.can_shoot_arrows(player) or state.has('Fire Rod', player) or state.has('Ice Rod', player))
|
||||
set_rule(world.get_entrance('Hera Back to Ranged Crystal', player), lambda state: False) # state.can_shoot_arrows(player) or state.has('Fire Rod', player) or state.has('Ice Rod', player) or state.has('Cane of Somaria', player) or state.has_beam_sword(player) or (state.has('Hookshot', player) and state.has('Red Boomerang', player))
|
||||
|
||||
set_rule(world.get_entrance('PoD Arena Main to Ranged Crystal', player), lambda state: True) # Can always throw pots here
|
||||
set_rule(world.get_entrance('PoD Arena Bridge to Ranged Crystal', player), lambda state: state.can_shoot_arrows(player) or state.has('Red Boomerang', player) or state.has('Fire Rod', player) or state.has('Ice Rod', player) or state.has('Cane of Somaria', player))
|
||||
set_rule(world.get_entrance('PoD Arena Main to North Ranged Barrier - Orange', player), lambda state: state.can_use_bombs(player) or state.has('Cane of Somaria', player))
|
||||
set_rule(world.get_entrance('PoD Arena Main to Landing Bypass', player), lambda state: state.can_use_bombs(player) or state.has('Cane of Somaria', player))
|
||||
set_rule(world.get_entrance('PoD Arena Main to Right Bypass', player), lambda state: state.can_use_bombs(player) or state.has('Cane of Somaria', player))
|
||||
set_rule(world.get_entrance('PoD Arena North to Landing Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('PoD Arena North', player), player))
|
||||
set_rule(world.get_entrance('PoD Arena Landing to North Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('PoD Arena Landing', player), player))
|
||||
set_rule(world.get_entrance('PoD Arena Main to Landing Barrier - Blue', player), lambda state: state.can_reach_blue(world.get_region('PoD Arena Main', player), player))
|
||||
set_rule(world.get_entrance('PoD Arena Landing to Main Barrier - Blue', player), lambda state: state.can_reach_blue(world.get_region('PoD Arena Landing', player), player))
|
||||
set_rule(world.get_entrance('PoD Arena Landing to Right Barrier - Blue', player), lambda state: state.can_reach_blue(world.get_region('PoD Arena Landing', player), player))
|
||||
set_rule(world.get_entrance('PoD Arena Right to Landing Barrier - Blue', player), lambda state: state.can_reach_blue(world.get_region('PoD Arena Right', player), player))
|
||||
set_rule(world.get_entrance('PoD Map Balcony to Ranged Crystal', player), lambda state: state.has('Cane of Somaria', player) or state.can_use_bombs(player))
|
||||
set_rule(world.get_entrance('PoD Arena Right to Ranged Crystal', player), lambda state: False) # (state.has('Cane of Somaria', player) and state.has_Boots(player))
|
||||
set_rule(world.get_entrance('PoD Arena Ledge to Ranged Crystal', player), lambda state: False) # state.has('Cane of Somaria', player)
|
||||
set_rule(world.get_entrance('PoD Map Balcony to Ranged Crystal', player), lambda state: state.can_use_bombs(player) or state.has('Cane of Somaria', player))
|
||||
set_rule(world.get_entrance('PoD Bow Statue Left to Right Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('PoD Bow Statue Left', player), player))
|
||||
set_rule(world.get_entrance('PoD Bow Statue Left to Right Bypass', player), lambda state: state.has('Cane of Somaria', player)) # state.can_use_bombs(player) or state.can_shoot_arrows(player) or state.has_beam_sword(player) or state.has('Red Boomrang', player) or state.has('Ice Rod', player) or state.has('Fire Rod', player)
|
||||
set_rule(world.get_entrance('PoD Bow Statue Right to Left Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('PoD Bow Statue Right', player), player))
|
||||
set_rule(world.get_entrance('PoD Bow Statue Right to Ranged Crystal', player), lambda state: state.has('Cane of Somaria', player))
|
||||
|
||||
set_rule(world.get_entrance('PoD Dark Pegs Landing to Ranged Crystal', player), lambda state: state.has('Cane of Somaria', player))
|
||||
set_rule(world.get_entrance('PoD Dark Pegs Right to Middle Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('PoD Dark Pegs Right', player), player))
|
||||
set_rule(world.get_entrance('PoD Dark Pegs Middle to Right Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('PoD Dark Pegs Middle', player), player))
|
||||
@@ -431,12 +437,19 @@ def global_rules(world, player):
|
||||
set_rule(world.get_entrance('TR Crystal Maze End to Ranged Crystal', player), lambda state: state.has('Cane of Somaria', player))
|
||||
|
||||
set_rule(world.get_entrance('GT Hookshot Platform Blue Barrier', player), lambda state: state.can_reach_blue(world.get_region('GT Hookshot South Platform', player), player))
|
||||
set_rule(world.get_entrance('GT Hookshot Platform Barrier Bypass', player), lambda state: state.can_use_bombs(player) or state.has('Blue Boomerang', player) or state.has('Red Boomerang', player) or state.has('Cane of Somaria', player))
|
||||
set_rule(world.get_entrance('GT Hookshot South Entry to Ranged Crystal', player), lambda state: state.can_use_bombs(player) or state.has('Blue Boomerang', player) or state.has('Red Boomerang', player) or state.has('Cane of Somaria', player))
|
||||
set_rule(world.get_entrance('GT Hookshot Entry Blue Barrier', player), lambda state: state.can_reach_blue(world.get_region('GT Hookshot South Entry', player), player))
|
||||
set_rule(world.get_entrance('GT Double Switch to Pot Corners Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('GT Double Switch Entry', player), player))
|
||||
set_rule(world.get_entrance('GT Double Switch Pot Corners to Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('GT Double Switch Pot Corners', player), player))
|
||||
set_rule(world.get_entrance('GT Double Switch Pot Corners to Barrier - Blue', player), lambda state: state.can_reach_blue(world.get_region('GT Double Switch Pot Corners', player), player))
|
||||
set_rule(world.get_entrance('GT Double Switch Pot Corners to Ranged Switches', player), lambda state: (state.has('Blue Boomerang', player) and state.has('Hookshot', player)) or state.has('Red Boomerang', player) or state.has('Cane of Somaria', player) or state.can_use_bombs(player))
|
||||
|
||||
set_rule(world.get_entrance('GT Double Switch Entry to Pot Corners Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('GT Double Switch Entry', player), player))
|
||||
set_rule(world.get_entrance('GT Double Switch Entry to Left Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('GT Double Switch Entry', player), player))
|
||||
set_rule(world.get_entrance('GT Double Switch Entry to Ranged Switches', player), lambda state: False) # state.has('Cane of Somaria', player)
|
||||
set_rule(world.get_entrance('GT Double Switch Left to Entry Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('GT Double Switch Left', player), player))
|
||||
set_rule(world.get_entrance('GT Double Switch Left to Entry Bypass', player), lambda state: state.can_use_bombs(player) or state.has('Cane of Somaria') or state.has('Red Boomerang', player) or state.has('Blue Boomerang', player))
|
||||
set_rule(world.get_entrance('GT Double Switch Left to Pot Corners Bypass', player), lambda state: state.can_use_bombs(player) or state.has('Cane of Somaria') or state.has('Red Boomerang', player) or (state.has('Blue Boomerang', player) and state.has('Hookshot', player)))
|
||||
set_rule(world.get_entrance('GT Double Switch Pot Corners to Entry Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('GT Double Switch Pot Corners', player), player))
|
||||
set_rule(world.get_entrance('GT Double Switch Pot Corners to Exit Barrier - Blue', player), lambda state: state.can_reach_blue(world.get_region('GT Double Switch Pot Corners', player), player))
|
||||
set_rule(world.get_entrance('GT Double Switch Pot Corners to Ranged Switches', player), lambda state: False) # state.has('Cane of Somaria', player) and state.has_Boots(player)
|
||||
set_rule(world.get_entrance('GT Double Switch Exit to Blue Barrier', player), lambda state: state.can_reach_blue(world.get_region('GT Double Switch Exit', player), player))
|
||||
|
||||
set_rule(world.get_entrance('GT Crystal Conveyor to Corner Barrier - Blue', player), lambda state: state.can_reach_blue(world.get_region('GT Crystal Conveyor', player), player))
|
||||
@@ -1663,7 +1676,6 @@ bunny_impassible_doors = {
|
||||
'PoD Left Cage SW', 'PoD Middle Cage SE', 'PoD Pit Room Bomb Hole', 'PoD Stalfos Basement Warp',
|
||||
'PoD Arena Main to Landing Barrier - Blue', 'PoD Arena Landing to Right Barrier - Blue',
|
||||
'PoD Arena Right to Landing Barrier - Blue', 'PoD Arena Main to Landing Barrier - Blue',
|
||||
'PoD Arena Main to North Ranged Barrier - Orange',
|
||||
'PoD Arena Landing Bonk Path', 'PoD Sexy Statue NW', 'PoD Map Balcony Drop Down',
|
||||
'PoD Mimics 1 NW', 'PoD Falling Bridge Path N', 'PoD Falling Bridge Path S',
|
||||
'PoD Mimics 2 NW', 'PoD Bow Statue Down Ladder', 'PoD Dark Pegs Landing to Right',
|
||||
@@ -1703,7 +1715,7 @@ bunny_impassible_doors = {
|
||||
'GT Crystal Conveyor NE', 'GT Crystal Conveyor WN', 'GT Conveyor Cross EN', 'GT Conveyor Cross WN',
|
||||
'GT Hookshot East-North Path', 'GT Hookshot East-South Path', 'GT Hookshot North-East Path',
|
||||
'GT Hookshot North-South Path', 'GT Hookshot South-East Path', 'GT Hookshot South-North Path',
|
||||
'GT Hookshot Platform Blue Barrier', 'GT Hookshot Entry Blue Barrier', 'GT Double Switch Pot Corners to Barrier - Blue',
|
||||
'GT Hookshot Platform Blue Barrier', 'GT Hookshot Entry Blue Barrier', 'GT Double Switch Pot Corners to Exit Barrier - Blue',
|
||||
'GT Double Switch Exit to Blue Barrier', 'GT Firesnake Room Hook Path', 'GT Falling Bridge WN', 'GT Falling Bridge WS',
|
||||
'GT Ice Armos NE', 'GT Ice Armos WS', 'GT Crystal Paths SW', 'GT Mimics 1 NW', 'GT Mimics 1 ES', 'GT Mimics 2 WS',
|
||||
'GT Mimics 2 NE', 'GT Hidden Spikes EN', 'GT Cannonball Bridge SE', 'GT Gauntlet 1 WN', 'GT Gauntlet 2 EN',
|
||||
|
||||
Reference in New Issue
Block a user