247 lines
17 KiB
Python
247 lines
17 KiB
Python
def link_entrances(world):
|
|
# setup mandatory connections
|
|
for exitname, regionname in mandatory_connections:
|
|
connect(world, exitname, regionname)
|
|
|
|
# if we do not shuffle, set default connections
|
|
if world.shuffle == 'Default':
|
|
for exitname, regionname in default_connections:
|
|
connect(world, exitname, regionname)
|
|
return
|
|
|
|
raise NotImplementedError('Shuffling not supported yet')
|
|
|
|
|
|
def connect(world, exitname, regionname):
|
|
world.get_entrance(exitname).connect(world.get_region(regionname))
|
|
|
|
# these are connections that cannot be shuffled and always exist. They link together separate parts of the world we need to divide into regions
|
|
mandatory_connections = [('Zoras River', 'Zoras River'),
|
|
('Kakariko Well (top to bottom)', 'Kakariko Well (bottom)'),
|
|
('Dam', 'Dam'),
|
|
('Hobo Bridge', 'Hobo Bridge'),
|
|
('Desert Palace East Wing', 'Desert Palace East'),
|
|
('Bat Cave Drop Ledge', 'Bat Cave Drop Ledge'),
|
|
('Bat Cave Door', 'Bat Cave (left)'),
|
|
('Thieves Forest Hideout (top to bottom)', 'Thieves Forest Hideout (bottom)'),
|
|
('Lumberjack Tree (top to bottom)', 'Lumberjack Tree (bottom)'),
|
|
('Desert Palace Stairs', 'Desert Palace Stairs'),
|
|
('Desert Palace Entrance (North) Rocks', 'Desert Palace Entrance (North) Spot'),
|
|
('Throne Room', 'Sewers (Dark)'),
|
|
('Sewers Door', 'Sewers'),
|
|
('Sanctuary Push Door', 'Sanctuary'),
|
|
('Sewer Drop', 'Sewers'),
|
|
('Sewers Back Door', 'Sewers (Dark)'),
|
|
('Aghanim 1', 'Aghanim 1'),
|
|
('Flute Spot 1', 'Death Mountain'),
|
|
('Spectacle Rock Cave Drop', 'Spectacle Rock Cave (Bottom)'),
|
|
('Spectacle Rock Cave Peak Drop', 'Spectacle Rock Cave (Bottom)'),
|
|
('Broken Bridge (West)', 'East Death Mountain (Bottom)'),
|
|
('Broken Bridge (East)', 'Death Mountain'),
|
|
('East Death Mountain Drop', 'East Death Mountain (Bottom)'),
|
|
('Spiral Cave (top to bottom)', 'Spiral Cave (Bottom)'),
|
|
('East Death Mountain (Top)', 'East Death Mountain (Top)'),
|
|
('Death Mountain (Top)', 'Death Mountain (Top)'),
|
|
('Death Mountain Drop', 'Death Mountain'),
|
|
('Spectacle Rock Drop', 'Death Mountain (Top)'),
|
|
|
|
('Top of Pyramid', 'East Dark World'),
|
|
('Dark Lake Hylia Drop (East)', 'Dark Lake Hylia'),
|
|
('Dark Lake Hylia Drop (South)', 'Dark Lake Hylia'),
|
|
('East Dark World Pier', 'East Dark World'),
|
|
('Lake Hylia Island Mirror Spot', 'Lake Hylia Island'),
|
|
('Hyrule Castle Ledge Mirror Spot', 'Hyrule Castle Ledge'),
|
|
('South Dark World Bridge', 'South Dark World'),
|
|
('Big Bomb Shop', 'Big Bomb Shop'),
|
|
('East Dark World Bridge', 'East Dark World'),
|
|
('Maze Race Mirror Spot', 'Maze Race Ledge'),
|
|
('Village of Outcasts Heavy Rock', 'West Dark World'),
|
|
('Village of Outcasts Drop', 'South Dark World'),
|
|
('Bat Cave Drop Ledge Mirror Spot', 'Bat Cave Drop Ledge'),
|
|
('East Dark World River Pier', 'East Dark World'),
|
|
('West Dark World Gap', 'West Dark World'),
|
|
('Bumper Cave Ledge Drop', 'West Dark World'),
|
|
('Skull Woods Forest', 'Skull Woods Forest'),
|
|
('Desert Ledge Mirror Spot', 'Desert Ledge'),
|
|
('Desert Ledge (West) Mirror Spot', 'Desert Ledge (West)'),
|
|
('Desert Palace Entrance (North) Mirror Spot', 'Desert Palace Entrance (North) Spot'),
|
|
('Dark Desert Teleporter', 'Dark Desert'),
|
|
('Desert Palace Stairs Mirror Spot', 'Desert Palace Stairs'),
|
|
('East Hyrule Teleporter', 'East Dark World'),
|
|
('South Hyrule Teleporter', 'South Dark World'),
|
|
('Kakariko Teleporter', 'West Dark World'),
|
|
('Death Mountain Teleporter', 'Dark Death Mountain (West Bottom)'),
|
|
('Spectacle Rock Mirror Spot', 'Spectacle Rock'),
|
|
('Dark Death Mountain Drop (East)', 'Dark Death Mountain (East Bottom)'),
|
|
('Dark Death Mountain Drop (West)', 'Dark Death Mountain (West Bottom)'),
|
|
('East Death Mountain (Top) Mirror Spot', 'East Death Mountain (Top)'),
|
|
('Turtle Rock Teleporter', 'Turtle Rock (Top)'),
|
|
('Turtle Rock Drop', 'Dark Death Mountain (Top)'),
|
|
('Floating Island Drop', 'Dark Death Mountain (Top)'),
|
|
('East Death Mountain Teleporter', 'Dark Death Mountain (East Bottom)'),
|
|
('Isolated Ledge Mirror Spot', 'East Death Mountain (Bottom)'),
|
|
|
|
('Swamp Palace', 'Swamp Palace (Entrance)'),
|
|
('Swamp Palace Moat', 'Swamp Palace (First Room)'),
|
|
('Swamp Palace Small Key Door', 'Swamp Palace (Starting Area)'),
|
|
('Swamp Palace (Center)', 'Swamp Palace (Center)'),
|
|
('Swamp Palace (North)', 'Swamp Palace (North)'),
|
|
('Thieves Town Big Key Door', 'Thieves Town (Deep)'),
|
|
('Blind Fight', 'Blind Fight'),
|
|
('Ice Palace Entrance Room', 'Ice Palace (Main)'),
|
|
('Ice Palace (East)', 'Ice Palace (East)'),
|
|
('Ice Palace (East Top)', 'Ice Palace (East Top)'),
|
|
('Ice Palace (Kholdstare)', 'Ice Palace (Kholdstare)'),
|
|
('Misery Mire Entrance Gap', 'Misery Mire (Main)'),
|
|
('Misery Mire (West)', 'Misery Mire (West)'),
|
|
('Misery Mire Big Key Door', 'Misery Mire (Final Area)'),
|
|
('Misery Mire (Vitreous)', 'Misery Mire (Vitreous)'),
|
|
('Turtle Rock Entrance Gap', 'Turtle Rock (First Section)'),
|
|
('Turtle Rock Pokey Room', 'Turtle Rock (Chain Chomp Room)'),
|
|
('Turtle Rock (Chain Chomp Room) (North)', 'Turtle Rock (Second Section)'),
|
|
('Turtle Rock (Chain Chomp Room) (South)', 'Turtle Rock (First Section)'),
|
|
('Turtle Rock Chain Chomp Staircase', 'Turtle Rock (Chain Chomp Room)'),
|
|
('Turtle Rock (Big Chest) (North)', 'Turtle Rock (Second Section)'),
|
|
('Turtle Rock Big Key Door', 'Turtle Rock (Roller Switch Room)'),
|
|
('Turtle Rock Dark Room Staircase', 'Turtle Rock (Dark Room)'),
|
|
('Turtle Rock (Dark Room) (North)', 'Turtle Rock (Roller Switch Room)'),
|
|
('Turtle Rock (Dark Room) (South)', 'Turtle Rock (Eye Bridge)'),
|
|
('Turtle Rock Dark Room (South)', 'Turtle Rock (Dark Room)'),
|
|
('Turtle Rock (Trinexx)', 'Turtle Rock (Trinexx)'),
|
|
('Dark Palace Bridge Room', 'Dark Palace (Center)'),
|
|
('Dark Palace Bonk Wall', 'Dark Palace (Bonk Section)'),
|
|
('Dark Palace Big Key Chest Staircase', 'Dark Palace (Big Key Chest)'),
|
|
('Dark Palace (North)', 'Dark Palace (North)'),
|
|
('Dark Palace Big Key Door', 'Dark Palace (Final Section)'),
|
|
('Dark Palace Hammer Peg Drop', 'Dark Palace (Center)'),
|
|
('Dark Palace Spike Statue Room Door', 'Dark Palace (Spike Statue Room)'),
|
|
('Dark Palace Maze Door', 'Dark Palace (Maze)'),
|
|
('Ganons Tower', 'Ganons Tower (Entrance)'),
|
|
('Ganons Tower (Tile Room)', 'Ganons Tower (Tile Room)'),
|
|
('Ganons Tower (Tile Room) Key Door', 'Ganons Tower (Compass Room)'),
|
|
('Ganons Tower (Bottom) (East)', 'Ganons Tower (Bottom)'),
|
|
('Ganons Tower (Hookshot Room)', 'Ganons Tower (Hookshot Room)'),
|
|
('Ganons Tower (Map Room)', 'Ganons Tower (Map Room)'),
|
|
('Ganons Tower (Double Switch Room)', 'Ganons Tower (Firesnake Room)'),
|
|
('Ganons Tower (Firesnake Room)', 'Ganons Tower (Teleport Room)'),
|
|
('Ganons Tower (Bottom) (West)', 'Ganons Tower (Bottom)'),
|
|
('Ganons Tower Big Key Door', 'Ganons Tower (Top)'),
|
|
('Ganons Tower Torch Rooms', 'Ganons Tower (Before Moldorm)'),
|
|
('Ganons Tower Moldorm Door', 'Ganons Tower (Moldorm)'),
|
|
('Ganons Tower Moldorm Gap', 'Aghanim 2'),
|
|
('Pyramid Hole', 'Pyramid')
|
|
]
|
|
|
|
# non-shuffled entrance links
|
|
default_connections = [("Thiefs Hut", "Thiefs Hut"),
|
|
("Hyrule Castle Secret Entrance Drop", "Hyrule Castle Secret Entrance"),
|
|
("Hyrule Castle Secret Entrance Stairs", "Hyrule Castle Secret Entrance"),
|
|
('Kings Grave', 'Kings Grave'),
|
|
('Links House', 'Links House'),
|
|
('Tavern North', 'Tavern'),
|
|
('Chicken House', 'Chicken House'),
|
|
('Aginahs Cave', 'Aginahs Cave'),
|
|
('Sahasrahlas Hut', 'Sahasrahlas Hut'),
|
|
('Kakariko Well Drop', 'Kakariko Well (top)'),
|
|
('Kakariko Well Cave', 'Kakariko Well (bottom)'),
|
|
('Blacksmiths Hut', 'Blacksmiths Hut'),
|
|
('Bat Cave Drop', 'Bat Cave (right)'),
|
|
('Bat Cave Cave', 'Bat Cave (left)'),
|
|
('Sick Kids House', 'Sick Kids House'),
|
|
('Thieves Forest Hideout Drop', 'Thieves Forest Hideout (top)'),
|
|
('Thieves Forest Hideout Stump', 'Thieves Forest Hideout (bottom)'),
|
|
('Lumberjack Tree Tree', 'Lumberjack Tree (top)'),
|
|
('Lumberjack Tree Cave', 'Lumberjack Tree (bottom)'),
|
|
('Cave South of Haunted Grove', 'Cave South of Haunted Grove'),
|
|
('Graveyard Cave', 'Graveyard Cave'),
|
|
('Desert Cave', 'Desert Cave'),
|
|
('Lake Hylia Cave', 'Lake Hylia Cave'),
|
|
('Ice Cave', 'Ice Cave'),
|
|
('Bonk Rock Cave', 'Bonk Rock Cave'),
|
|
('Library', 'Library'),
|
|
('Witch Hut', 'Witch Hut'),
|
|
('Two Brothers House', 'Two Brothers House'),
|
|
('Two Brothers House (left)', 'Maze Race Ledge'),
|
|
('Master Sword Meadow', 'Master Sword Meadow'),
|
|
|
|
('Desert Palace Entrance (South)', 'Desert Palace Main'),
|
|
('Desert Palace Entrance (West)', 'Desert Palace Main'),
|
|
('Desert Palace Entrance (North)', 'Desert Palace North'),
|
|
('Desert Palace Exit (South)', 'Light World'),
|
|
('Desert Palace Exit (West)', 'Desert Ledge'),
|
|
('Desert Palace Exit (East)', 'Light World'),
|
|
('Eastern Palace', 'Eastern Palace'),
|
|
|
|
('Hyrule Castle Entrance (South)', 'Hyrule Castle'),
|
|
('Hyrule Castle Entrance (West)', 'Hyrule Castle'),
|
|
('Hyrule Castle Entrance (East)', 'Hyrule Castle'),
|
|
('Hyrule Castle Exit (South)', 'Light World'),
|
|
('Hyrule Castle Exit (West)', 'Hyrule Castle Ledge'),
|
|
('Hyrule Castle Exit (East)', 'Hyrule Castle Ledge'),
|
|
('Aghanims Tower', 'Aghanims Tower'),
|
|
('Sanctuary', 'Sanctuary'),
|
|
('Sanctuary Grave', 'Sewer Drop'),
|
|
('Sanctuary Exit', 'Light World'),
|
|
|
|
('Old Man Cave (West)', 'Old Man Cave'),
|
|
('Old Man Cave (East)', 'Old Man Cave'),
|
|
('Old Man Cave Exit', 'Death Mountain'),
|
|
('Death Mountain Return Cave', 'Death Mountain Return Cave'),
|
|
('Death Mountain Return Cave Exit (West)', 'Light World'),
|
|
('Death Mountain Return Cave Exit (East)', 'Death Mountain'),
|
|
('Spectacle Rock Cave Peak', 'Spectacle Rock Cave (Peak)'),
|
|
('Spectacle Rock Cave', 'Spectacle Rock Cave (Top)'),
|
|
('Spectacle Rock Cave Exit', 'Death Mountain'),
|
|
('Death Mountain Climb', 'Death Mountain Climb Cave'),
|
|
('Death Mountain Climb (Top)', 'Death Mountain Climb Cave'),
|
|
('Death Mountain Climb Exit (Bottom)', 'East Death Mountain (Bottom)'),
|
|
('Death Mountain Climb Exit (Top)', 'East Death Mountain (Top)'),
|
|
('Spiral Cave', 'Spiral Cave (Top)'),
|
|
('Spiral Cave Exit', 'East Death Mountain (Bottom)'),
|
|
('Tower of Hera', 'Tower of Hera (Bottom)'),
|
|
('Tower of Hera Small Key Door', 'Tower of Hera (Basement)'),
|
|
('Tower of Hera Big Key Door', 'Tower of Hera (Top)'),
|
|
|
|
('Pyramid Fairy', 'Pyramid Fairy'),
|
|
('Dark Swamp Cave', 'Dark Swamp Cave'),
|
|
('Doorless Hut', 'Doorless Hut'),
|
|
('C-Shaped House', 'C-Shaped House'),
|
|
('Chest Game', 'Chest Game'),
|
|
('Dark World Hammer Peg Cave', 'Dark World Hammer Peg Cave'),
|
|
('Bumper Cave', 'Bumper Cave'),
|
|
('Bumper Cave (Top)', 'Bumper Cave Ledge'),
|
|
('Bumper Cave (Bottom)', 'West Dark World'),
|
|
('Dark Desert Cave', 'Dark Desert Cave'),
|
|
('Spike Cave', 'Spike Cave'),
|
|
('Hookshot Cave', 'Hookshot Cave'),
|
|
('Dark Death Mountain Climb (Top)', 'Dark Death Mountain Climb'),
|
|
('Dark Death Mountain Climb (Bottom)', 'Dark Death Mountain Climb'),
|
|
('Dark Death Mountain Climb Exit (Top)', 'Dark Death Mountain (Top)'),
|
|
('Dark Death Mountain Climb Exit (Bottom)', 'Dark Death Mountain (East Bottom)'),
|
|
('Hookshot Cave Exit (South)', 'Dark Death Mountain (Top)'),
|
|
('Hookshot Cave Exit (North)', 'Death Mountain Floating Island'),
|
|
('Mimic Cave Mirror Spot', 'Mimic Cave'),
|
|
|
|
('Thieves Town', 'Thieves Town (Entrance)'),
|
|
('Skull Woods First Section Hole (East)', 'Skull Woods First Section'),
|
|
('Skull Woods First Section Hole (West)', 'Skull Woods First Section'),
|
|
('Skull Woods First Section Hole (North)', 'Skull Woods First Section'),
|
|
('Skull Woods First Section Door', 'Skull Woods First Section'),
|
|
('Skull Woods First Section Exit', 'Skull Woods Forest'),
|
|
('Skull Woods Second Section Hole', 'Skull Woods Second Section'),
|
|
('Skull Woods Second Section Door (East)', 'Skull Woods Second Section'),
|
|
('Skull Woods Second Section Door (West)', 'Skull Woods Second Section'),
|
|
('Skull Woods Second Section Exit (East)', 'Skull Woods Forest'),
|
|
('Skull Woods Second Section Exit (West)', 'Skull Woods Forest'),
|
|
('Skull Woods Final Section', 'Skull Woods Final Section (Entrance)'),
|
|
('Skull Woods Torch Room', 'Skull Woods Final Section (Mothula)'),
|
|
('Ice Palace', 'Ice Palace (Entrance)'),
|
|
('Misery Mire', 'Misery Mire (Entrance)'),
|
|
('Turtle Rock', 'Turtle Rock (Entrance)'),
|
|
('Turtle Rock Ledge Exit (West)', 'Dark Death Mountain Ledge'),
|
|
('Dark Death Mountain Ledge (West)', 'Turtle Rock (Second Section)'),
|
|
('Dark Death Mountain Ledge (East)', 'Turtle Rock (Big Chest)'),
|
|
('Turtle Rock Isolated Ledge Exit', 'Dark Death Mountain Isolated Ledge'),
|
|
('Palace of Darkness', 'Dark Palace (Entrance)')
|
|
]
|