From be03fc214d57b2b6e04246dbb1e341a759613edd Mon Sep 17 00:00:00 2001 From: aerinon Date: Tue, 22 Oct 2019 23:00:07 -0600 Subject: [PATCH 1/2] Adding some more interior doors to HC and Eastern --- DoorShuffle.py | 31 ++- Doors.py | 738 ++++++++++++++++++++++++++----------------------- Dungeons.py | 17 +- Regions.py | 79 +++--- Rules.py | 1 + 5 files changed, 469 insertions(+), 397 deletions(-) diff --git a/DoorShuffle.py b/DoorShuffle.py index 41bb2423..bcddc3fc 100644 --- a/DoorShuffle.py +++ b/DoorShuffle.py @@ -190,7 +190,7 @@ def fix_big_key_doors_with_ugly_smalls(world, player): def remove_ugly_small_key_doors(world, player): - for d in ['Eastern Compass Area SW', 'Eastern Darkness S']: + for d in ['Eastern Hint Tile Blocked Path SE', 'Eastern Darkness S']: door = world.get_door(d, player) room = world.get_room(door.roomIndex, player) room.change(door.doorListPos, DoorKind.Normal) @@ -1631,7 +1631,7 @@ def check_for_pinball_fix(state, bad_region, world, player): logical_connections = [ ('Hyrule Dungeon North Abyss Catwalk Dropdown', 'Hyrule Dungeon North Abyss'), ('Sewers Secret Room Push Block', 'Sewers Secret Room Blocked Path'), - ('Eastern Hint Tile Push Block', 'Eastern Compass Area'), + ('Eastern Hint Tile Push Block', 'Eastern Hint Tile'), ('Hera Big Chest Landing Exit', 'Hera 4F'), ('PoD Arena Main Crystal Path', 'PoD Arena Crystal'), ('PoD Arena Crystal Path', 'PoD Arena Main'), @@ -1674,6 +1674,8 @@ logical_connections = [ ('Skull Pot Circle Star Path', 'Skull Map Room'), ('Skull Big Chest Hookpath', 'Skull 1 Lobby'), ('Skull Back Drop Star Path', 'Skull Small Hall'), + ('Eastern Map Balcony Hook Path', 'Eastern Map Room'), + ('Eastern Map Room Drop Down', 'Eastern Map Balcony'), # ('', ''), ] @@ -1770,7 +1772,21 @@ ladders = [ interior_doors = [ ('Hyrule Dungeon Armory Interior Key Door S', 'Hyrule Dungeon Armory Interior Key Door N'), + ('Hyrule Dungeon Armory ES', 'Hyrule Dungeon Armory Boomerang WS'), ('Hyrule Dungeon Map Room Key Door S', 'Hyrule Dungeon North Abyss Key Door N'), + ('Sewers Rat Path WS', 'Sewers Secret Room ES'), + ('Sewers Rat Path WN', 'Sewers Secret Room EN'), + ('Sewers Yet More Rats S', 'Sewers Pull Switch N'), + ('Eastern Lobby N', 'Eastern Lobby Bridge S'), + ('Eastern Lobby NW', 'Eastern Lobby Left Ledge SW'), + ('Eastern Lobby NE', 'Eastern Lobby Right Ledge SE'), + ('Eastern East Wing EN', 'Eastern Pot Switch WN'), + ('Eastern East Wing ES', 'Eastern Map Balcony WS'), + ('Eastern Pot Switch SE', 'Eastern Map Room NE'), + ('Eastern West Wing WS', 'Eastern Stalfos Spawn ES'), + ('Eastern Stalfos Spawn NW', 'Eastern Compass Room SW'), + ('Eastern Compass Room EN', 'Eastern Hint Tile WN'), + # ('', ''), ('Desert East Lobby WS', 'Desert East Wing ES'), ('Desert East Wing Key Door EN', 'Desert Compass Key Door WN'), ('Desert North Hall NW', 'Desert Map SW'), @@ -1846,7 +1862,7 @@ key_doors = [ ('Sewers Dark Cross Key Door N', 'Sewers Dark Cross Key Door S'), ('Eastern Dark Square Key Door WN', 'Eastern Cannonball Ledge Key Door EN'), ('Eastern Darkness Up Stairs', 'Eastern Attic Start Down Stairs'), - ('Eastern Big Key NE', 'Eastern Compass Area SW'), + ('Eastern Big Key NE', 'Eastern Hint Tile Blocked Path SE'), ('Eastern Darkness S', 'Eastern Courtyard N'), ('Desert East Wing Key Door EN', 'Desert Compass Key Door WN'), ('Desert Tiles 1 Up Stairs', 'Desert Bridge Down Stairs'), @@ -1874,13 +1890,14 @@ default_door_connections = [ ('Sewers Dark Cross Key Door N', 'Sewers Dark Cross Key Door S'), ('Sewers Water W', 'Sewers Key Rat E'), ('Sewers Key Rat Key Door N', 'Sewers Secret Room Key Door S'), - ('Eastern Lobby N', 'Eastern Cannonball S'), + ('Eastern Lobby Bridge N', 'Eastern Cannonball S'), ('Eastern Cannonball N', 'Eastern Courtyard Ledge S'), ('Eastern Cannonball Ledge WN', 'Eastern Big Key EN'), ('Eastern Cannonball Ledge Key Door EN', 'Eastern Dark Square Key Door WN'), - ('Eastern Courtyard Ledge W', 'Eastern Compass Area E'), - ('Eastern Courtyard Ledge E', 'Eastern Map Area W'), - ('Eastern Compass Area EN', 'Eastern Courtyard WN'), + ('Eastern Courtyard Ledge W', 'Eastern West Wing E'), + ('Eastern Courtyard Ledge E', 'Eastern East Wing W'), + ('Eastern Hint Tile EN', 'Eastern Courtyard WN'), + ('Eastern Big Key NE', 'Eastern Hint Tile Blocked Path SW'), ('Eastern Courtyard EN', 'Eastern Map Valley WN'), ('Eastern Courtyard N', 'Eastern Darkness S'), ('Eastern Map Valley SW', 'Eastern Dark Square NW'), diff --git a/Doors.py b/Doors.py index 8a75b4d4..fccecef8 100644 --- a/Doors.py +++ b/Doors.py @@ -3,6 +3,12 @@ from BaseClasses import Door, DoorType, Direction, CrystalBarrier from RoomData import PairedDoor # constants +We = Direction.West +Ea = Direction.East +So = Direction.South +No = Direction.North +Up = Direction.Up +Dn = Direction.Down # door offsets Top = 0 Left = 0 @@ -37,452 +43,480 @@ Intr = DoorType.Interior def create_doors(world, player): world.doors += [ # hyrule castle - create_door(player, 'Hyrule Castle Lobby W', Nrml).dir(Direction.West, 0x61, Mid, High).toggler().pos(0), - create_door(player, 'Hyrule Castle Lobby E', Nrml).dir(Direction.East, 0x61, Mid, High).toggler().pos(2), - create_door(player, 'Hyrule Castle Lobby WN', Nrml).dir(Direction.West, 0x61, Top, High).pos(1), - create_door(player, 'Hyrule Castle Lobby North Stairs', StrS).dir(Direction.North, 0x61, Mid, High), - create_door(player, 'Hyrule Castle West Lobby E', Nrml).dir(Direction.East, 0x60, Mid, Low).toggler().pos(1), - create_door(player, 'Hyrule Castle West Lobby N', Nrml).dir(Direction.North, 0x60, Right, Low).pos(0), - create_door(player, 'Hyrule Castle West Lobby EN', Nrml).dir(Direction.East, 0x60, Top, High).pos(3), - create_door(player, 'Hyrule Castle East Lobby W', Nrml).dir(Direction.West, 0x62, Mid, Low).toggler().pos(0), - create_door(player, 'Hyrule Castle East Lobby N', Nrml).dir(Direction.North, 0x62, Mid, High).pos(3), - create_door(player, 'Hyrule Castle East Lobby NW', Nrml).dir(Direction.North, 0x62, Left, Low).pos(2), - create_door(player, 'Hyrule Castle East Hall W', Nrml).dir(Direction.West, 0x52, Top, Low).pos(0), - create_door(player, 'Hyrule Castle East Hall S', Nrml).dir(Direction.South, 0x52, Mid, High).pos(2), - create_door(player, 'Hyrule Castle East Hall SW', Nrml).dir(Direction.South, 0x52, Left, Low).pos(1), - create_door(player, 'Hyrule Castle West Hall E', Nrml).dir(Direction.East, 0x50, Top, Low).pos(0), - create_door(player, 'Hyrule Castle West Hall S', Nrml).dir(Direction.South, 0x50, Right, Low).pos(1), - create_door(player, 'Hyrule Castle Back Hall W', Nrml).dir(Direction.West, 0x01, Top, Low).pos(0), - create_door(player, 'Hyrule Castle Back Hall E', Nrml).dir(Direction.East, 0x01, Top, Low).pos(1), - create_door(player, 'Hyrule Castle Back Hall Down Stairs', Sprl).dir(Direction.Down, 0x01, 0, HTL).ss(A, 0x2a, 0x00), - create_door(player, 'Hyrule Castle Throne Room N', Nrml).dir(Direction.North, 0x51, Mid, High).pos(1), - create_door(player, 'Hyrule Castle Throne Room South Stairs', StrS).dir(Direction.South, 0x51, Mid, Low), + create_door(player, 'Hyrule Castle Lobby W', Nrml).dir(We, 0x61, Mid, High).toggler().pos(0), + create_door(player, 'Hyrule Castle Lobby E', Nrml).dir(Ea, 0x61, Mid, High).toggler().pos(2), + create_door(player, 'Hyrule Castle Lobby WN', Nrml).dir(We, 0x61, Top, High).pos(1), + create_door(player, 'Hyrule Castle Lobby North Stairs', StrS).dir(No, 0x61, Mid, High), + create_door(player, 'Hyrule Castle West Lobby E', Nrml).dir(Ea, 0x60, Mid, Low).toggler().pos(1), + create_door(player, 'Hyrule Castle West Lobby N', Nrml).dir(No, 0x60, Right, Low).pos(0), + create_door(player, 'Hyrule Castle West Lobby EN', Nrml).dir(Ea, 0x60, Top, High).pos(3), + create_door(player, 'Hyrule Castle East Lobby W', Nrml).dir(We, 0x62, Mid, Low).toggler().pos(0), + create_door(player, 'Hyrule Castle East Lobby N', Nrml).dir(No, 0x62, Mid, High).pos(3), + create_door(player, 'Hyrule Castle East Lobby NW', Nrml).dir(No, 0x62, Left, Low).pos(2), + create_door(player, 'Hyrule Castle East Hall W', Nrml).dir(We, 0x52, Top, Low).pos(0), + create_door(player, 'Hyrule Castle East Hall S', Nrml).dir(So, 0x52, Mid, High).pos(2), + create_door(player, 'Hyrule Castle East Hall SW', Nrml).dir(So, 0x52, Left, Low).pos(1), + create_door(player, 'Hyrule Castle West Hall E', Nrml).dir(Ea, 0x50, Top, Low).pos(0), + create_door(player, 'Hyrule Castle West Hall S', Nrml).dir(So, 0x50, Right, Low).pos(1), + create_door(player, 'Hyrule Castle Back Hall W', Nrml).dir(We, 0x01, Top, Low).pos(0), + create_door(player, 'Hyrule Castle Back Hall E', Nrml).dir(Ea, 0x01, Top, Low).pos(1), + create_door(player, 'Hyrule Castle Back Hall Down Stairs', Sprl).dir(Dn, 0x01, 0, HTL).ss(A, 0x2a, 0x00), + create_door(player, 'Hyrule Castle Throne Room N', Nrml).dir(No, 0x51, Mid, High).pos(1), + create_door(player, 'Hyrule Castle Throne Room South Stairs', StrS).dir(So, 0x51, Mid, Low), # hyrule dungeon level - create_door(player, 'Hyrule Dungeon Map Room Up Stairs', Sprl).dir(Direction.Up, 0x72, 0, LTH).ss(A, 0x4b, 0xec), - create_door(player, 'Hyrule Dungeon Map Room Key Door S', Intr).dir(Direction.South, 0x72, Mid, High).small_key().pos(0), - create_door(player, 'Hyrule Dungeon North Abyss Key Door N', Intr).dir(Direction.North, 0x72, Mid, High).small_key().pos(0), - create_door(player, 'Hyrule Dungeon North Abyss South Edge', Open).dir(Direction.South, 0x72, None, Low), - create_door(player, 'Hyrule Dungeon North Abyss Catwalk Edge', Open).dir(Direction.South, 0x72, None, High), + create_door(player, 'Hyrule Dungeon Map Room Up Stairs', Sprl).dir(Up, 0x72, 0, LTH).ss(A, 0x4b, 0xec), + create_door(player, 'Hyrule Dungeon Map Room Key Door S', Intr).dir(So, 0x72, Mid, High).small_key().pos(0), + create_door(player, 'Hyrule Dungeon North Abyss Key Door N', Intr).dir(No, 0x72, Mid, High).small_key().pos(0), + create_door(player, 'Hyrule Dungeon North Abyss South Edge', Open).dir(So, 0x72, None, Low), + create_door(player, 'Hyrule Dungeon North Abyss Catwalk Edge', Open).dir(So, 0x72, None, High), create_door(player, 'Hyrule Dungeon North Abyss Catwalk Dropdown', Lgcl), - create_door(player, 'Hyrule Dungeon South Abyss North Edge', Open).dir(Direction.North, 0x82, None, Low), - create_door(player, 'Hyrule Dungeon South Abyss West Edge', Open).dir(Direction.West, 0x82, None, Low), - create_door(player, 'Hyrule Dungeon South Abyss Catwalk North Edge', Open).dir(Direction.North, 0x82, None, High), - create_door(player, 'Hyrule Dungeon South Abyss Catwalk West Edge', Open).dir(Direction.West, 0x82, None, High), - create_door(player, 'Hyrule Dungeon Guardroom Catwalk Edge', Open).dir(Direction.East, 0x81, None, High), - create_door(player, 'Hyrule Dungeon Guardroom Abyss Edge', Open).dir(Direction.West, 0x81, None, High), - create_door(player, 'Hyrule Dungeon Guardroom N', Nrml).dir(Direction.North, 0x81, Left, Low).pos(0), - create_door(player, 'Hyrule Dungeon Armory S', Nrml).dir(Direction.South, 0x71, Left, Low).trap(0x2).pos(1), - create_door(player, 'Hyrule Dungeon Armory Interior Key Door N', Intr).dir(Direction.North, 0x71, Left, High).small_key().pos(0), - create_door(player, 'Hyrule Dungeon Armory Interior Key Door S', Intr).dir(Direction.South, 0x71, Left, High).small_key().pos(0), - create_door(player, 'Hyrule Dungeon Armory Down Stairs', Sprl).dir(Direction.Down, 0x71, 0, HTL).ss(A, 0x11, 0xa8, True), - create_door(player, 'Hyrule Dungeon Staircase Up Stairs', Sprl).dir(Direction.Up, 0x70, 2, LTH).ss(A, 0x32, 0x94, True), - create_door(player, 'Hyrule Dungeon Staircase Down Stairs', Sprl).dir(Direction.Down, 0x70, 1, HTH).ss(A, 0x11, 0x58), - create_door(player, 'Hyrule Dungeon Cellblock Up Stairs', Sprl).dir(Direction.Up, 0x80, 0, HTH).ss(A, 0x1a, 0x44), + create_door(player, 'Hyrule Dungeon South Abyss North Edge', Open).dir(No, 0x82, None, Low), + create_door(player, 'Hyrule Dungeon South Abyss West Edge', Open).dir(We, 0x82, None, Low), + create_door(player, 'Hyrule Dungeon South Abyss Catwalk North Edge', Open).dir(No, 0x82, None, High), + create_door(player, 'Hyrule Dungeon South Abyss Catwalk West Edge', Open).dir(We, 0x82, None, High), + create_door(player, 'Hyrule Dungeon Guardroom Catwalk Edge', Open).dir(Ea, 0x81, None, High), + create_door(player, 'Hyrule Dungeon Guardroom Abyss Edge', Open).dir(We, 0x81, None, High), + create_door(player, 'Hyrule Dungeon Guardroom N', Nrml).dir(No, 0x81, Left, Low).pos(0), + create_door(player, 'Hyrule Dungeon Armory S', Nrml).dir(So, 0x71, Left, Low).trap(0x2).pos(1), + create_door(player, 'Hyrule Dungeon Armory ES', Intr).dir(Ea, 0x71, Left, Low).pos(2), + create_door(player, 'Hyrule Dungeon Armory Boomerang WS', Intr).dir(We, 0x71, Left, Low).pos(2), + create_door(player, 'Hyrule Dungeon Armory Interior Key Door N', Intr).dir(No, 0x71, Left, High).small_key().pos(0), + create_door(player, 'Hyrule Dungeon Armory Interior Key Door S', Intr).dir(So, 0x71, Left, High).small_key().pos(0), + create_door(player, 'Hyrule Dungeon Armory Down Stairs', Sprl).dir(Dn, 0x71, 0, HTL).ss(A, 0x11, 0xa8, True), + create_door(player, 'Hyrule Dungeon Staircase Up Stairs', Sprl).dir(Up, 0x70, 2, LTH).ss(A, 0x32, 0x94, True), + create_door(player, 'Hyrule Dungeon Staircase Down Stairs', Sprl).dir(Dn, 0x70, 1, HTH).ss(A, 0x11, 0x58), + create_door(player, 'Hyrule Dungeon Cellblock Up Stairs', Sprl).dir(Up, 0x80, 0, HTH).ss(A, 0x1a, 0x44), # sewers - create_door(player, 'Sewers Behind Tapestry S', Nrml).dir(Direction.South, 0x41, Mid, High).no_exit().trap(0x4).pos(0), - create_door(player, 'Sewers Behind Tapestry Down Stairs', Sprl).dir(Direction.Down, 0x41, 0, HTH).ss(S, 0x12, 0xb0), - create_door(player, 'Sewers Rope Room Up Stairs', Sprl).dir(Direction.Up, 0x42, 0, HTH).ss(S, 0x1b, 0x9c), - create_door(player, 'Sewers Rope Room North Stairs', StrS).dir(Direction.North, 0x42, Mid, High), - create_door(player, 'Sewers Dark Cross South Stairs', StrS).dir(Direction.South, 0x32, Mid, High), - create_door(player, 'Sewers Dark Cross Key Door N', Nrml).dir(Direction.North, 0x32, Mid, High).small_key().pos(0), - create_door(player, 'Sewers Dark Cross Key Door S', Nrml).dir(Direction.South, 0x22, Mid, High).small_key().pos(0), - create_door(player, 'Sewers Water W', Nrml).dir(Direction.West, 0x22, Bot, High).pos(1), - create_door(player, 'Sewers Key Rat E', Nrml).dir(Direction.East, 0x21, Bot, High).pos(1), - create_door(player, 'Sewers Key Rat Key Door N', Nrml).dir(Direction.North, 0x21, Right, High).small_key().pos(0), - create_door(player, 'Sewers Secret Room Key Door S', Nrml).dir(Direction.South, 0x11, Right, High).small_key().pos(2), + create_door(player, 'Sewers Behind Tapestry S', Nrml).dir(So, 0x41, Mid, High).no_exit().trap(0x4).pos(0), + create_door(player, 'Sewers Behind Tapestry Down Stairs', Sprl).dir(Dn, 0x41, 0, HTH).ss(S, 0x12, 0xb0), + create_door(player, 'Sewers Rope Room Up Stairs', Sprl).dir(Up, 0x42, 0, HTH).ss(S, 0x1b, 0x9c), + create_door(player, 'Sewers Rope Room North Stairs', StrS).dir(No, 0x42, Mid, High), + create_door(player, 'Sewers Dark Cross South Stairs', StrS).dir(So, 0x32, Mid, High), + create_door(player, 'Sewers Dark Cross Key Door N', Nrml).dir(No, 0x32, Mid, High).small_key().pos(0), + create_door(player, 'Sewers Dark Cross Key Door S', Nrml).dir(So, 0x22, Mid, High).small_key().pos(0), + create_door(player, 'Sewers Water W', Nrml).dir(We, 0x22, Bot, High).pos(1), + create_door(player, 'Sewers Key Rat E', Nrml).dir(Ea, 0x21, Bot, High).pos(1), + create_door(player, 'Sewers Key Rat Key Door N', Nrml).dir(No, 0x21, Right, High).small_key().pos(0), + create_door(player, 'Sewers Secret Room Key Door S', Nrml).dir(So, 0x11, Right, High).small_key().pos(2), + create_door(player, 'Sewers Rat Path WS', Intr).dir(We, 0x11, Bot, High).pos(1), + create_door(player, 'Sewers Rat Path WN', Intr).dir(We, 0x11, Top, High).pos(0), + create_door(player, 'Sewers Secret Room ES', Intr).dir(Ea, 0x11, Bot, High).pos(1), + create_door(player, 'Sewers Secret Room EN', Intr).dir(Ea, 0x11, Top, High).pos(0), create_door(player, 'Sewers Secret Room Push Block', Lgcl), - create_door(player, 'Sewers Secret Room Up Stairs', Sprl).dir(Direction.Up, 0x11, 0, LTH).ss(S, 0x33, 0x6c, True), - create_door(player, 'Sewers Pull Switch Down Stairs', Sprl).dir(Direction.Down, 0x02, 0, HTL).ss(S, 0x12, 0x80), - create_door(player, 'Sewers Pull Switch S', Nrml).dir(Direction.South, 0x02, Mid, Low).trap(0x4).toggler().pos(0), + create_door(player, 'Sewers Secret Room Up Stairs', Sprl).dir(Up, 0x11, 0, LTH).ss(S, 0x33, 0x6c, True), + create_door(player, 'Sewers Pull Switch Down Stairs', Sprl).dir(Dn, 0x02, 0, HTL).ss(S, 0x12, 0x80), + create_door(player, 'Sewers Yet More Rats S', Intr).dir(So, 0x02, Mid, Low).pos(1), + create_door(player, 'Sewers Pull Switch N', Intr).dir(No, 0x02, Mid, Low).pos(1), + create_door(player, 'Sewers Pull Switch S', Nrml).dir(So, 0x02, Mid, Low).trap(0x4).toggler().pos(0), # logically one way the sanc, but should be linked - also toggle - create_door(player, 'Sanctuary N', Nrml).dir(Direction.North, 0x12, Mid, High).no_exit().toggler().pos(0), + create_door(player, 'Sanctuary N', Nrml).dir(No, 0x12, Mid, High).no_exit().toggler().pos(0), # Eastern Palace - create_door(player, 'Eastern Lobby N', Nrml).dir(Direction.North, 0xc9, Mid, High).pos(1), - create_door(player, 'Eastern Cannonball S', Nrml).dir(Direction.South, 0xb9, Mid, High).pos(2), - create_door(player, 'Eastern Cannonball N', Nrml).dir(Direction.North, 0xb9, Mid, High).pos(1), - create_door(player, 'Eastern Cannonball Ledge WN', Nrml).dir(Direction.West, 0xb9, Top, High).pos(3), - create_door(player, 'Eastern Cannonball Ledge Key Door EN', Nrml).dir(Direction.East, 0xb9, Top, High).small_key().pos(0), - create_door(player, 'Eastern Courtyard Ledge S', Nrml).dir(Direction.South, 0xa9, Mid, High).pos(5), - create_door(player, 'Eastern Courtyard Ledge W', Nrml).dir(Direction.West, 0xa9, Mid, High).trap(0x4).pos(0), - create_door(player, 'Eastern Courtyard Ledge E', Nrml).dir(Direction.East, 0xa9, Mid, High).trap(0x2).pos(1), - create_door(player, 'Eastern Map Area W', Nrml).dir(Direction.West, 0xaa, Mid, High).pos(4), - create_door(player, 'Eastern Compass Area E', Nrml).dir(Direction.East, 0xa8, Mid, High).pos(5), - create_door(player, 'Eastern Compass Area EN', Nrml).dir(Direction.East, 0xa8, Top, Low).pos(4), - ugly_door(create_door(player, 'Eastern Compass Area SW', Nrml).dir(Direction.South, 0xa8, Right, High)).small_key().pos(2), + create_door(player, 'Eastern Lobby N', Intr).dir(No, 0xc9, Mid, High).pos(0), + create_door(player, 'Eastern Lobby Bridge S', Intr).dir(So, 0xc9, Mid, High).pos(0), + create_door(player, 'Eastern Lobby NW', Intr).dir(No, 0xc9, Left, High).pos(2), + create_door(player, 'Eastern Lobby Left Ledge SW', Intr).dir(So, 0xc9, Left, High).pos(2), + create_door(player, 'Eastern Lobby NE', Intr).dir(No, 0xc9, Right, High).pos(3), + create_door(player, 'Eastern Lobby Right Ledge SE', Intr).dir(So, 0xc9, Right, High).pos(3), + create_door(player, 'Eastern Lobby Bridge N', Nrml).dir(No, 0xc9, Mid, High).pos(1), + create_door(player, 'Eastern Cannonball S', Nrml).dir(So, 0xb9, Mid, High).pos(2), + create_door(player, 'Eastern Cannonball N', Nrml).dir(No, 0xb9, Mid, High).pos(1), + create_door(player, 'Eastern Cannonball Ledge WN', Nrml).dir(We, 0xb9, Top, High).pos(3), + create_door(player, 'Eastern Cannonball Ledge Key Door EN', Nrml).dir(Ea, 0xb9, Top, High).small_key().pos(0), + create_door(player, 'Eastern Courtyard Ledge S', Nrml).dir(So, 0xa9, Mid, High).pos(5), + create_door(player, 'Eastern Courtyard Ledge W', Nrml).dir(We, 0xa9, Mid, High).trap(0x4).pos(0), + create_door(player, 'Eastern Courtyard Ledge E', Nrml).dir(Ea, 0xa9, Mid, High).trap(0x2).pos(1), + create_door(player, 'Eastern East Wing W', Nrml).dir(We, 0xaa, Mid, High).pos(4), + create_door(player, 'Eastern East Wing EN', Intr).dir(Ea, 0xaa, Top, High).pos(2), + create_door(player, 'Eastern Pot Switch WN', Intr).dir(We, 0xaa, Top, High).pos(2), + create_door(player, 'Eastern East Wing ES', Intr).dir(Ea, 0xaa, Bot, High).pos(3), + create_door(player, 'Eastern Map Balcony WS', Intr).dir(We, 0xaa, Bot, High).pos(3), + create_door(player, 'Eastern Pot Switch SE', Intr).dir(So, 0xaa, Right, High).pos(0), + create_door(player, 'Eastern Map Room NE', Intr).dir(No, 0xaa, Right, High).pos(0), + create_door(player, 'Eastern Map Balcony Hook Path', Lgcl), + create_door(player, 'Eastern Map Room Drop Down', Lgcl), + create_door(player, 'Eastern West Wing E', Nrml).dir(Ea, 0xa8, Mid, High).pos(5), + create_door(player, 'Eastern West Wing WS', Intr).dir(We, 0xa8, Bot, High).pos(0), + create_door(player, 'Eastern Stalfos Spawn ES', Intr).dir(Ea, 0xa8, Bot, High).pos(0), + create_door(player, 'Eastern Stalfos Spawn NW', Intr).dir(No, 0xa8, Left, High).pos(1), + create_door(player, 'Eastern Compass Room SW', Intr).dir(So, 0xa8, Left, High).pos(1), + create_door(player, 'Eastern Compass Room EN', Intr).dir(Ea, 0xa8, Top, High).pos(3), + create_door(player, 'Eastern Hint Tile WN', Intr).dir(We, 0xa8, Top, High).pos(3), + create_door(player, 'Eastern Hint Tile EN', Nrml).dir(Ea, 0xa8, Top, Low).pos(4), + create_door(player, 'Eastern Hint Tile Blocked Path SE', Nrml).dir(So, 0xa8, Right, High).small_key().pos(2), create_door(player, 'Eastern Hint Tile Push Block', Lgcl), - create_door(player, 'Eastern Courtyard WN', Nrml).dir(Direction.West, 0xa9, Top, Low).pos(3), - create_door(player, 'Eastern Courtyard EN', Nrml).dir(Direction.East, 0xa9, Top, Low).pos(4), - create_door(player, 'Eastern Courtyard N', Nrml).dir(Direction.North, 0xa9, Mid, High).big_key().pos(2), + create_door(player, 'Eastern Courtyard WN', Nrml).dir(We, 0xa9, Top, Low).pos(3), + create_door(player, 'Eastern Courtyard EN', Nrml).dir(Ea, 0xa9, Top, Low).pos(4), + create_door(player, 'Eastern Courtyard N', Nrml).dir(No, 0xa9, Mid, High).big_key().pos(2), create_door(player, 'Eastern Courtyard Potholes', Hole), create_door(player, 'Eastern Fairies\' Warp', Warp), - create_door(player, 'Eastern Map Valley WN', Nrml).dir(Direction.West, 0xaa, Top, Low).pos(1), - create_door(player, 'Eastern Map Valley SW', Nrml).dir(Direction.South, 0xaa, Left, High).pos(5), - create_door(player, 'Eastern Dark Square NW', Nrml).dir(Direction.North, 0xba, Left, High).pos(1), - create_door(player, 'Eastern Dark Square Key Door WN', Nrml).dir(Direction.West, 0xba, Top, High).small_key().pos(0), - create_door(player, 'Eastern Big Key EN', Nrml).dir(Direction.East, 0xb8, Top, High).pos(1), - create_door(player, 'Eastern Big Key NE', Nrml).dir(Direction.North, 0xb8, Right, High).big_key().pos(0), - ugly_door(create_door(player, 'Eastern Darkness S', Nrml).dir(Direction.South, 0x99, Mid, High)).small_key().pos(1), + create_door(player, 'Eastern Map Valley WN', Nrml).dir(We, 0xaa, Top, Low).pos(1), + create_door(player, 'Eastern Map Valley SW', Nrml).dir(So, 0xaa, Left, High).pos(5), + create_door(player, 'Eastern Dark Square NW', Nrml).dir(No, 0xba, Left, High).pos(1), + create_door(player, 'Eastern Dark Square Key Door WN', Nrml).dir(We, 0xba, Top, High).small_key().pos(0), + create_door(player, 'Eastern Big Key EN', Nrml).dir(Ea, 0xb8, Top, High).pos(1), + create_door(player, 'Eastern Big Key NE', Nrml).dir(No, 0xb8, Right, High).big_key().pos(0), + ugly_door(create_door(player, 'Eastern Darkness S', Nrml).dir(So, 0x99, Mid, High)).small_key().pos(1), # Up is a keydoor and down is not. Only the up stairs should be considered a key door for now. - create_door(player, 'Eastern Darkness Up Stairs', Sprl).dir(Direction.Up, 0x99, 0, HTH).ss(Z, 0x1a, 0x6c, False, True).small_key().pos(0), - ugly_door(create_door(player, 'Eastern Attic Start Down Stairs', Sprl).dir(Direction.Down, 0xda, 0, HTH).ss(Z, 0x11, 0x80, True, True)), - create_door(player, 'Eastern Attic Start WS', Nrml).dir(Direction.West, 0xda, Bot, High).trap(0x4).pos(0), - create_door(player, 'Eastern Attic Switches ES', Nrml).dir(Direction.East, 0xd9, Bot, High).trap(0x1).pos(2), - create_door(player, 'Eastern Attic Switches WS', Nrml).dir(Direction.West, 0xd9, Bot, High).trap(0x4).pos(0), - create_door(player, 'Eastern Eyegores ES', Nrml).dir(Direction.East, 0xd8, Bot, High).pos(2), - create_door(player, 'Eastern Eyegores NE', Nrml).dir(Direction.North, 0xd8, Right, High).trap(0x4).pos(0), - create_door(player, 'Eastern Boss SE', Nrml).dir(Direction.South, 0xc8, Right, High).no_exit().trap(0x4).pos(0), + create_door(player, 'Eastern Darkness Up Stairs', Sprl).dir(Up, 0x99, 0, HTH).ss(Z, 0x1a, 0x6c, False, True).small_key().pos(0), + create_door(player, 'Eastern Attic Start Down Stairs', Sprl).dir(Dn, 0xda, 0, HTH).ss(Z, 0x11, 0x80, True, True), + create_door(player, 'Eastern Attic Start WS', Nrml).dir(We, 0xda, Bot, High).trap(0x4).pos(0), + create_door(player, 'Eastern Attic Switches ES', Nrml).dir(Ea, 0xd9, Bot, High).trap(0x1).pos(2), + create_door(player, 'Eastern Attic Switches WS', Nrml).dir(We, 0xd9, Bot, High).trap(0x4).pos(0), + create_door(player, 'Eastern Eyegores ES', Nrml).dir(Ea, 0xd8, Bot, High).pos(2), + create_door(player, 'Eastern Eyegores NE', Nrml).dir(No, 0xd8, Right, High).trap(0x4).pos(0), + create_door(player, 'Eastern Boss SE', Nrml).dir(So, 0xc8, Right, High).no_exit().trap(0x4).pos(0), # Desert Palace - create_door(player, 'Desert Main Lobby NW Edge', Open).dir(Direction.North, 0x84, None, High), - create_door(player, 'Desert Main Lobby N Edge', Open).dir(Direction.North, 0x84, None, High), - create_door(player, 'Desert Main Lobby NE Edge', Open).dir(Direction.North, 0x84, None, High), - create_door(player, 'Desert Main Lobby E Edge', Open).dir(Direction.East, 0x84, None, High), - create_door(player, 'Desert Dead End Edge', Open).dir(Direction.South, 0x74, None, High), - create_door(player, 'Desert East Wing W Edge', Open).dir(Direction.West, 0x85, None, High), - create_door(player, 'Desert East Wing N Edge', Open).dir(Direction.North, 0x85, None, High), - create_door(player, 'Desert East Lobby WS', Intr).dir(Direction.West, 0x85, Bot, High).pos(3), - create_door(player, 'Desert East Wing ES', Intr).dir(Direction.East, 0x85, Bot, High).pos(3), - create_door(player, 'Desert East Wing Key Door EN', Intr).dir(Direction.East, 0x85, Top, High).small_key().pos(1), - create_door(player, 'Desert Compass Key Door WN', Intr).dir(Direction.West, 0x85, Top, High).small_key().pos(1), - create_door(player, 'Desert Compass NW', Nrml).dir(Direction.North, 0x85, Right, High).trap(0x4).pos(0), - create_door(player, 'Desert Cannonball S', Nrml).dir(Direction.South, 0x75, Right, High).pos(1), - create_door(player, 'Desert Arrow Pot Corner S Edge', Open).dir(Direction.South, 0x75, None, High), - create_door(player, 'Desert Arrow Pot Corner W Edge', Open).dir(Direction.West, 0x75, None, High), - create_door(player, 'Desert North Hall SE Edge', Open).dir(Direction.South, 0x74, None, High), - create_door(player, 'Desert North Hall SW Edge', Open).dir(Direction.South, 0x74, None, High), - create_door(player, 'Desert North Hall W Edge', Open).dir(Direction.West, 0x74, None, High), - create_door(player, 'Desert North Hall E Edge', Open).dir(Direction.East, 0x74, None, High), - create_door(player, 'Desert North Hall NW', Intr).dir(Direction.North, 0x74, Left, High).pos(1), - create_door(player, 'Desert Map SW', Intr).dir(Direction.South, 0x74, Left, High).pos(1), - create_door(player, 'Desert North Hall NE', Intr).dir(Direction.North, 0x74, Right, High).pos(0), - create_door(player, 'Desert Map SE', Intr).dir(Direction.South, 0x74, Right, High).pos(0), - create_door(player, 'Desert Sandworm Corner S Edge', Open).dir(Direction.South, 0x73, None, High), - create_door(player, 'Desert Sandworm Corner E Edge', Open).dir(Direction.East, 0x73, None, High), - create_door(player, 'Desert Sandworm Corner NE', Intr).dir(Direction.North, 0x73, Right, High).pos(2), - create_door(player, 'Desert Bonk Torch SE', Intr).dir(Direction.South, 0x73, Right, High).pos(2), - create_door(player, 'Desert Sandworm Corner WS', Intr).dir(Direction.West, 0x73, Bot, High).pos(1), + create_door(player, 'Desert Main Lobby NW Edge', Open).dir(No, 0x84, None, High), + create_door(player, 'Desert Main Lobby N Edge', Open).dir(No, 0x84, None, High), + create_door(player, 'Desert Main Lobby NE Edge', Open).dir(No, 0x84, None, High), + create_door(player, 'Desert Main Lobby E Edge', Open).dir(Ea, 0x84, None, High), + create_door(player, 'Desert Dead End Edge', Open).dir(So, 0x74, None, High), + create_door(player, 'Desert East Wing W Edge', Open).dir(We, 0x85, None, High), + create_door(player, 'Desert East Wing N Edge', Open).dir(No, 0x85, None, High), + create_door(player, 'Desert East Lobby WS', Intr).dir(We, 0x85, Bot, High).pos(3), + create_door(player, 'Desert East Wing ES', Intr).dir(Ea, 0x85, Bot, High).pos(3), + create_door(player, 'Desert East Wing Key Door EN', Intr).dir(Ea, 0x85, Top, High).small_key().pos(1), + create_door(player, 'Desert Compass Key Door WN', Intr).dir(We, 0x85, Top, High).small_key().pos(1), + create_door(player, 'Desert Compass NW', Nrml).dir(No, 0x85, Right, High).trap(0x4).pos(0), + create_door(player, 'Desert Cannonball S', Nrml).dir(So, 0x75, Right, High).pos(1), + create_door(player, 'Desert Arrow Pot Corner S Edge', Open).dir(So, 0x75, None, High), + create_door(player, 'Desert Arrow Pot Corner W Edge', Open).dir(We, 0x75, None, High), + create_door(player, 'Desert North Hall SE Edge', Open).dir(So, 0x74, None, High), + create_door(player, 'Desert North Hall SW Edge', Open).dir(So, 0x74, None, High), + create_door(player, 'Desert North Hall W Edge', Open).dir(We, 0x74, None, High), + create_door(player, 'Desert North Hall E Edge', Open).dir(Ea, 0x74, None, High), + create_door(player, 'Desert North Hall NW', Intr).dir(No, 0x74, Left, High).pos(1), + create_door(player, 'Desert Map SW', Intr).dir(So, 0x74, Left, High).pos(1), + create_door(player, 'Desert North Hall NE', Intr).dir(No, 0x74, Right, High).pos(0), + create_door(player, 'Desert Map SE', Intr).dir(So, 0x74, Right, High).pos(0), + create_door(player, 'Desert Sandworm Corner S Edge', Open).dir(So, 0x73, None, High), + create_door(player, 'Desert Sandworm Corner E Edge', Open).dir(Ea, 0x73, None, High), + create_door(player, 'Desert Sandworm Corner NE', Intr).dir(No, 0x73, Right, High).pos(2), + create_door(player, 'Desert Bonk Torch SE', Intr).dir(So, 0x73, Right, High).pos(2), + create_door(player, 'Desert Sandworm Corner WS', Intr).dir(We, 0x73, Bot, High).pos(1), # I don't know if I have to mark trap on interior doors yet - haven't mucked them up much - create_door(player, 'Desert Circle of Pots ES', Intr).dir(Direction.East, 0x73, Bot, High).pos(1), - create_door(player, 'Desert Circle of Pots NW', Intr).dir(Direction.North, 0x73, Left, High).pos(0), - create_door(player, 'Desert Big Chest SW', Intr).dir(Direction.South, 0x73, Left, High).pos(0), - create_door(player, 'Desert West Wing N Edge', Open).dir(Direction.North, 0x83, None, High), - create_door(player, 'Desert West Wing WS', Intr).dir(Direction.West, 0x83, Bot, High).pos(2), - create_door(player, 'Desert West Lobby ES', Intr).dir(Direction.East, 0x83, Bot, High).pos(2), + create_door(player, 'Desert Circle of Pots ES', Intr).dir(Ea, 0x73, Bot, High).pos(1), + create_door(player, 'Desert Circle of Pots NW', Intr).dir(No, 0x73, Left, High).pos(0), + create_door(player, 'Desert Big Chest SW', Intr).dir(So, 0x73, Left, High).pos(0), + create_door(player, 'Desert West Wing N Edge', Open).dir(No, 0x83, None, High), + create_door(player, 'Desert West Wing WS', Intr).dir(We, 0x83, Bot, High).pos(2), + create_door(player, 'Desert West Lobby ES', Intr).dir(Ea, 0x83, Bot, High).pos(2), # Desert Back - create_door(player, 'Desert Back Lobby NW', Intr).dir(Direction.North, 0x63, Left, High).pos(1), - create_door(player, 'Desert Tiles 1 SW', Intr).dir(Direction.South, 0x63, Left, High).pos(1), - create_door(player, 'Desert Tiles 1 Up Stairs', Sprl).dir(Direction.Up, 0x63, 0, HTH).ss(A, 0x1b, 0x6c, True).small_key().pos(0), - create_door(player, 'Desert Bridge Down Stairs', Sprl).dir(Direction.Down, 0x53, 0, HTH).ss(A, 0x0f, 0x80, True), - create_door(player, 'Desert Bridge SW', Intr).dir(Direction.South, 0x53, Left, High).pos(0), - create_door(player, 'Desert Four Statues NW', Intr).dir(Direction.North, 0x53, Left, High).pos(0), - create_door(player, 'Desert Four Statues ES', Intr).dir(Direction.East, 0x53, Bot, High).pos(1), - create_door(player, 'Desert Beamos Hall WS', Intr).dir(Direction.West, 0x53, Bot, High).pos(1), - create_door(player, 'Desert Beamos Hall NE', Nrml).dir(Direction.North, 0x53, Right, High).small_key().pos(2), - create_door(player, 'Desert Tiles 2 SE', Nrml).dir(Direction.South, 0x43, Right, High).small_key().pos(2), - create_door(player, 'Desert Tiles 2 NE', Intr).dir(Direction.North, 0x43, Right, High).small_key().pos(1), - create_door(player, 'Desert Wall Slide SE', Intr).dir(Direction.South, 0x43, Right, High).small_key().pos(1), + create_door(player, 'Desert Back Lobby NW', Intr).dir(No, 0x63, Left, High).pos(1), + create_door(player, 'Desert Tiles 1 SW', Intr).dir(So, 0x63, Left, High).pos(1), + create_door(player, 'Desert Tiles 1 Up Stairs', Sprl).dir(Up, 0x63, 0, HTH).ss(A, 0x1b, 0x6c, True).small_key().pos(0), + create_door(player, 'Desert Bridge Down Stairs', Sprl).dir(Dn, 0x53, 0, HTH).ss(A, 0x0f, 0x80, True), + create_door(player, 'Desert Bridge SW', Intr).dir(So, 0x53, Left, High).pos(0), + create_door(player, 'Desert Four Statues NW', Intr).dir(No, 0x53, Left, High).pos(0), + create_door(player, 'Desert Four Statues ES', Intr).dir(Ea, 0x53, Bot, High).pos(1), + create_door(player, 'Desert Beamos Hall WS', Intr).dir(We, 0x53, Bot, High).pos(1), + create_door(player, 'Desert Beamos Hall NE', Nrml).dir(No, 0x53, Right, High).small_key().pos(2), + create_door(player, 'Desert Tiles 2 SE', Nrml).dir(So, 0x43, Right, High).small_key().pos(2), + create_door(player, 'Desert Tiles 2 NE', Intr).dir(No, 0x43, Right, High).small_key().pos(1), + create_door(player, 'Desert Wall Slide SE', Intr).dir(So, 0x43, Right, High).small_key().pos(1), # todo: we need a new flag for a door that has a wall on it - you have to traverse it one particular way first # the above is not a problem until we get to crossed mode - create_door(player, 'Desert Wall Slide NW', Nrml).dir(Direction.North, 0x43, Left, High).big_key().pos(0), - create_door(player, 'Desert Boss SW', Nrml).dir(Direction.South, 0x33, Left, High).no_exit().trap(0x4).pos(0), + create_door(player, 'Desert Wall Slide NW', Nrml).dir(No, 0x43, Left, High).big_key().pos(0), + create_door(player, 'Desert Boss SW', Nrml).dir(So, 0x33, Left, High).no_exit().trap(0x4).pos(0), # Hera - create_door(player, 'Hera Lobby Down Stairs', Sprl).dir(Direction.Down, 0x77, 3, HTL).ss(Z, 0x21, 0x90, False, True), - create_door(player, 'Hera Lobby Key Stairs', Sprl).dir(Direction.Down, 0x77, 1, HTL).ss(A, 0x12, 0x80).small_key().pos(0), - create_door(player, 'Hera Lobby Up Stairs', Sprl).dir(Direction.Up, 0x77, 2, HTL).ss(X, 0x2b, 0x5c, False, True), - create_door(player, 'Hera Basement Cage Up Stairs', Sprl).dir(Direction.Up, 0x87, 3, LTH).ss(Z, 0x42, 0x7c, True, True), - create_door(player, 'Hera Tile Room Up Stairs', Sprl).dir(Direction.Up, 0x87, 1, LTH).ss(A, 0x32, 0x6c, True, True), - create_door(player, 'Hera Tile Room EN', Intr).dir(Direction.East, 0x87, Top, High).pos(0), - create_door(player, 'Hera Tridorm WN', Intr).dir(Direction.West, 0x87, Top, High).pos(0), - create_door(player, 'Hera Tridorm SE', Intr).dir(Direction.South, 0x87, Right, High).pos(1), - create_door(player, 'Hera Torches NE', Intr).dir(Direction.North, 0x87, Right, High).pos(1), - create_door(player, 'Hera Beetles Down Stairs', Sprl).dir(Direction.Down, 0x31, 2, LTH).ss(X, 0x3a, 0x70, True, True), - create_door(player, 'Hera Beetles WS', Intr).dir(Direction.West, 0x31, Bot, High).pos(1), + create_door(player, 'Hera Lobby Down Stairs', Sprl).dir(Dn, 0x77, 3, HTL).ss(Z, 0x21, 0x90, False, True), + create_door(player, 'Hera Lobby Key Stairs', Sprl).dir(Dn, 0x77, 1, HTL).ss(A, 0x12, 0x80).small_key().pos(0), + create_door(player, 'Hera Lobby Up Stairs', Sprl).dir(Up, 0x77, 2, HTL).ss(X, 0x2b, 0x5c, False, True), + create_door(player, 'Hera Basement Cage Up Stairs', Sprl).dir(Up, 0x87, 3, LTH).ss(Z, 0x42, 0x7c, True, True), + create_door(player, 'Hera Tile Room Up Stairs', Sprl).dir(Up, 0x87, 1, LTH).ss(A, 0x32, 0x6c, True, True), + create_door(player, 'Hera Tile Room EN', Intr).dir(Ea, 0x87, Top, High).pos(0), + create_door(player, 'Hera Tridorm WN', Intr).dir(We, 0x87, Top, High).pos(0), + create_door(player, 'Hera Tridorm SE', Intr).dir(So, 0x87, Right, High).pos(1), + create_door(player, 'Hera Torches NE', Intr).dir(No, 0x87, Right, High).pos(1), + create_door(player, 'Hera Beetles Down Stairs', Sprl).dir(Dn, 0x31, 2, LTH).ss(X, 0x3a, 0x70, True, True), + create_door(player, 'Hera Beetles WS', Intr).dir(We, 0x31, Bot, High).pos(1), create_door(player, 'Hera Beetles Holes', Hole), - create_door(player, 'Hera Startile Corner ES', Intr).dir(Direction.East, 0x31, Bot, High).pos(1), - create_door(player, 'Hera Startile Corner NW', Intr).dir(Direction.North, 0x31, Left, High).big_key().pos(0), + create_door(player, 'Hera Startile Corner ES', Intr).dir(Ea, 0x31, Bot, High).pos(1), + create_door(player, 'Hera Startile Corner NW', Intr).dir(No, 0x31, Left, High).big_key().pos(0), create_door(player, 'Hera Startile Corner Holes', Hole), # technically ugly but causes lots of failures in basic - create_door(player, 'Hera Startile Wide SW', Intr).dir(Direction.South, 0x31, Left, High).pos(0), - create_door(player, 'Hera Startile Wide Up Stairs', Sprl).dir(Direction.Up, 0x31, 0, HTH).ss(S, 0x6b, 0xac, False, True), + create_door(player, 'Hera Startile Wide SW', Intr).dir(So, 0x31, Left, High).pos(0), + create_door(player, 'Hera Startile Wide Up Stairs', Sprl).dir(Up, 0x31, 0, HTH).ss(S, 0x6b, 0xac, False, True), create_door(player, 'Hera Startile Wide Holes', Hole), - create_door(player, 'Hera 4F Down Stairs', Sprl).dir(Direction.Down, 0x27, 0, HTH).ss(S, 0x62, 0xc0), - create_door(player, 'Hera 4F Up Stairs', Sprl).dir(Direction.Up, 0x27, 1, HTH).ss(A, 0x6b, 0x2c), + create_door(player, 'Hera 4F Down Stairs', Sprl).dir(Dn, 0x27, 0, HTH).ss(S, 0x62, 0xc0), + create_door(player, 'Hera 4F Up Stairs', Sprl).dir(Up, 0x27, 1, HTH).ss(A, 0x6b, 0x2c), create_door(player, 'Hera 4F Holes', Hole), create_door(player, 'Hera Big Chest Landing Exit', Lgcl), create_door(player, 'Hera Big Chest Landing Holes', Hole), - create_door(player, 'Hera 5F Down Stairs', Sprl).dir(Direction.Down, 0x17, 1, HTH).ss(A, 0x62, 0x40), - create_door(player, 'Hera 5F Up Stairs', Sprl).dir(Direction.Up, 0x17, 0, HTH).ss(S, 0x6a, 0x9c), + create_door(player, 'Hera 5F Down Stairs', Sprl).dir(Dn, 0x17, 1, HTH).ss(A, 0x62, 0x40), + create_door(player, 'Hera 5F Up Stairs', Sprl).dir(Up, 0x17, 0, HTH).ss(S, 0x6a, 0x9c), create_door(player, 'Hera 5F Star Hole', Hole), create_door(player, 'Hera 5F Pothole Chain', Hole), create_door(player, 'Hera 5F Normal Holes', Hole), create_door(player, 'Hera Fairies\' Warp', Warp), - create_door(player, 'Hera Boss Down Stairs', Sprl).dir(Direction.Down, 0x07, 0, HTH).ss(S, 0x61, 0xb0), + create_door(player, 'Hera Boss Down Stairs', Sprl).dir(Dn, 0x07, 0, HTH).ss(S, 0x61, 0xb0), create_door(player, 'Hera Boss Outer Hole', Hole), create_door(player, 'Hera Boss Inner Hole', Hole), # Castle Tower - create_door(player, 'Tower Lobby NW', Intr).dir(Direction.North, 0xe0, Left, High).pos(1), - create_door(player, 'Tower Gold Knights SW', Intr).dir(Direction.South, 0xe0, Left, High).pos(1), - create_door(player, 'Tower Gold Knights EN', Intr).dir(Direction.East, 0xe0, Top, High).pos(0), - create_door(player, 'Tower Room 03 WN', Intr).dir(Direction.West, 0xe0, Bot, High).pos(0), - create_door(player, 'Tower Room 03 Up Stairs', Sprl).dir(Direction.Up, 0xe0, 0, HTH).ss(S, 0x1a, 0x6c, True, True).small_key().pos(2), - create_door(player, 'Tower Lone Statue Down Stairs', Sprl).dir(Direction.Down, 0xd0, 0, HTH).ss(S, 0x11, 0x80, True, True), - create_door(player, 'Tower Lone Statue WN', Intr).dir(Direction.West, 0xd0, Top, High).pos(1), - create_door(player, 'Tower Dark Maze EN', Intr).dir(Direction.East, 0xd0, Top, High).pos(1), - create_door(player, 'Tower Dark Maze ES', Intr).dir(Direction.East, 0xd0, Bot, High).small_key().pos(0), - create_door(player, 'Tower Dark Chargers WS', Intr).dir(Direction.West, 0xd0, Bot, High).small_key().pos(0), - create_door(player, 'Tower Dark Chargers Up Stairs', Sprl).dir(Direction.Up, 0xd0, 2, HTH).ss(X, 0x1b, 0x8c, True, True), - create_door(player, 'Tower Dual Statues Down Stairs', Sprl).dir(Direction.Down, 0xc0, 2, HTH).ss(X, 0x12, 0xa0, True, True), - create_door(player, 'Tower Dual Statues WS', Intr).dir(Direction.West, 0xc0, Bot, High).pos(1), - create_door(player, 'Tower Dark Pits ES', Intr).dir(Direction.East, 0xc0, Bot, High).pos(1), - create_door(player, 'Tower Dark Pits EN', Intr).dir(Direction.East, 0xc0, Top, High).pos(0), - create_door(player, 'Tower Dark Archers WN', Intr).dir(Direction.West, 0xc0, Top, High).pos(0), - create_door(player, 'Tower Dark Archers Up Stairs', Sprl).dir(Direction.Up, 0xc0, 0, HTH).ss(S, 0x1b, 0x6c, True, True).small_key().pos(2), - create_door(player, 'Tower Red Spears Down Stairs', Sprl).dir(Direction.Down, 0xb0, 0, HTH).ss(S, 0x12, 0x80, True, True), - create_door(player, 'Tower Red Spears WN', Intr).dir(Direction.West, 0xb0, Top, High).pos(1), - create_door(player, 'Tower Red Guards EN', Intr).dir(Direction.East, 0xb0, Top, High).pos(1), - create_door(player, 'Tower Red Guards SW', Intr).dir(Direction.South, 0xb0, Left, High).pos(0), - create_door(player, 'Tower Circle of Pots NW', Intr).dir(Direction.North, 0xb0, Left, High).pos(0), - create_door(player, 'Tower Circle of Pots WS', Intr).dir(Direction.West, 0xb0, Bot, High).small_key().pos(2), - create_door(player, 'Tower Pacifist Run ES', Intr).dir(Direction.East, 0xb0, Bot, High).small_key().pos(2), - create_door(player, 'Tower Pacifist Run Up Stairs', Sprl).dir(Direction.Up, 0xb0, 2, LTH).ss(X, 0x33, 0x8c, True, True), - create_door(player, 'Tower Push Statue Down Stairs', Sprl).dir(Direction.Down, 0x40, 0, HTL).ss(X, 0x12, 0xa0, True, True), - create_door(player, 'Tower Push Statue WS', Intr).dir(Direction.West, 0x40, Bot, Low).pos(0), - create_door(player, 'Tower Catwalk ES', Intr).dir(Direction.East, 0x40, Bot, Low).pos(0), - create_door(player, 'Tower Catwalk North Stairs', StrS).dir(Direction.North, 0x40, Left, High), - create_door(player, 'Tower Antechamber South Stairs', StrS).dir(Direction.South, 0x30, Left, High), - create_door(player, 'Tower Antechamber NW', Intr).dir(Direction.North, 0x30, Left, High).pos(1), - create_door(player, 'Tower Altar SW', Intr).dir(Direction.South, 0x30, Left, High).pos(1), - create_door(player, 'Tower Altar NW', Nrml).dir(Direction.North, 0x30, Left, High).pos(0), - create_door(player, 'Tower Agahnim 1 SW', Nrml).dir(Direction.South, 0x20, Left, High).no_exit().trap(0x4).pos(0), + create_door(player, 'Tower Lobby NW', Intr).dir(No, 0xe0, Left, High).pos(1), + create_door(player, 'Tower Gold Knights SW', Intr).dir(So, 0xe0, Left, High).pos(1), + create_door(player, 'Tower Gold Knights EN', Intr).dir(Ea, 0xe0, Top, High).pos(0), + create_door(player, 'Tower Room 03 WN', Intr).dir(We, 0xe0, Bot, High).pos(0), + create_door(player, 'Tower Room 03 Up Stairs', Sprl).dir(Up, 0xe0, 0, HTH).ss(S, 0x1a, 0x6c, True, True).small_key().pos(2), + create_door(player, 'Tower Lone Statue Down Stairs', Sprl).dir(Dn, 0xd0, 0, HTH).ss(S, 0x11, 0x80, True, True), + create_door(player, 'Tower Lone Statue WN', Intr).dir(We, 0xd0, Top, High).pos(1), + create_door(player, 'Tower Dark Maze EN', Intr).dir(Ea, 0xd0, Top, High).pos(1), + create_door(player, 'Tower Dark Maze ES', Intr).dir(Ea, 0xd0, Bot, High).small_key().pos(0), + create_door(player, 'Tower Dark Chargers WS', Intr).dir(We, 0xd0, Bot, High).small_key().pos(0), + create_door(player, 'Tower Dark Chargers Up Stairs', Sprl).dir(Up, 0xd0, 2, HTH).ss(X, 0x1b, 0x8c, True, True), + create_door(player, 'Tower Dual Statues Down Stairs', Sprl).dir(Dn, 0xc0, 2, HTH).ss(X, 0x12, 0xa0, True, True), + create_door(player, 'Tower Dual Statues WS', Intr).dir(We, 0xc0, Bot, High).pos(1), + create_door(player, 'Tower Dark Pits ES', Intr).dir(Ea, 0xc0, Bot, High).pos(1), + create_door(player, 'Tower Dark Pits EN', Intr).dir(Ea, 0xc0, Top, High).pos(0), + create_door(player, 'Tower Dark Archers WN', Intr).dir(We, 0xc0, Top, High).pos(0), + create_door(player, 'Tower Dark Archers Up Stairs', Sprl).dir(Up, 0xc0, 0, HTH).ss(S, 0x1b, 0x6c, True, True).small_key().pos(2), + create_door(player, 'Tower Red Spears Down Stairs', Sprl).dir(Dn, 0xb0, 0, HTH).ss(S, 0x12, 0x80, True, True), + create_door(player, 'Tower Red Spears WN', Intr).dir(We, 0xb0, Top, High).pos(1), + create_door(player, 'Tower Red Guards EN', Intr).dir(Ea, 0xb0, Top, High).pos(1), + create_door(player, 'Tower Red Guards SW', Intr).dir(So, 0xb0, Left, High).pos(0), + create_door(player, 'Tower Circle of Pots NW', Intr).dir(No, 0xb0, Left, High).pos(0), + create_door(player, 'Tower Circle of Pots WS', Intr).dir(We, 0xb0, Bot, High).small_key().pos(2), + create_door(player, 'Tower Pacifist Run ES', Intr).dir(Ea, 0xb0, Bot, High).small_key().pos(2), + create_door(player, 'Tower Pacifist Run Up Stairs', Sprl).dir(Up, 0xb0, 2, LTH).ss(X, 0x33, 0x8c, True, True), + create_door(player, 'Tower Push Statue Down Stairs', Sprl).dir(Dn, 0x40, 0, HTL).ss(X, 0x12, 0xa0, True, True), + create_door(player, 'Tower Push Statue WS', Intr).dir(We, 0x40, Bot, Low).pos(0), + create_door(player, 'Tower Catwalk ES', Intr).dir(Ea, 0x40, Bot, Low).pos(0), + create_door(player, 'Tower Catwalk North Stairs', StrS).dir(No, 0x40, Left, High), + create_door(player, 'Tower Antechamber South Stairs', StrS).dir(So, 0x30, Left, High), + create_door(player, 'Tower Antechamber NW', Intr).dir(No, 0x30, Left, High).pos(1), + create_door(player, 'Tower Altar SW', Intr).dir(So, 0x30, Left, High).pos(1), + create_door(player, 'Tower Altar NW', Nrml).dir(No, 0x30, Left, High).pos(0), + create_door(player, 'Tower Agahnim 1 SW', Nrml).dir(So, 0x20, Left, High).no_exit().trap(0x4).pos(0), # Palace of Darkness - create_door(player, 'PoD Lobby N', Intr).dir(Direction.North, 0x4a, Mid, High).pos(2), - create_door(player, 'PoD Lobby NW', Intr).dir(Direction.North, 0x4a, Left, High).pos(0), - create_door(player, 'PoD Lobby NE', Intr).dir(Direction.North, 0x4a, Right, High).pos(1), - create_door(player, 'PoD Left Cage SW', Intr).dir(Direction.North, 0x4a, Left, High).pos(0), - create_door(player, 'PoD Middle Cage S', Intr).dir(Direction.North, 0x4a, Mid, High).pos(2), - create_door(player, 'PoD Middle Cage SE', Intr).dir(Direction.North, 0x4a, Right, High).pos(1), - create_door(player, 'PoD Left Cage Down Stairs', Sprl).dir(Direction.Down, 0x4a, 1, HTH).ss(A, 0x12, 0x80, False, True), - create_door(player, 'PoD Middle Cage Down Stairs', Sprl).dir(Direction.Down, 0x4a, 0, HTH).ss(S, 0x12, 0x80, False, True), - create_door(player, 'PoD Middle Cage N', Nrml).dir(Direction.North, 0x4a, Mid, High).small_key().pos(2), - create_door(player, 'PoD Shooter Room Up Stairs', Sprl).dir(Direction.Up, 0x09, 1, HTH).ss(A, 0x1b, 0x6c, True, True), - create_door(player, 'PoD Warp Room Up Stairs', Sprl).dir(Direction.Up, 0x09, 0, HTH).ss(S, 0x1a, 0x6c, True, True), + create_door(player, 'PoD Lobby N', Intr).dir(No, 0x4a, Mid, High).pos(2), + create_door(player, 'PoD Lobby NW', Intr).dir(No, 0x4a, Left, High).pos(0), + create_door(player, 'PoD Lobby NE', Intr).dir(No, 0x4a, Right, High).pos(1), + create_door(player, 'PoD Left Cage SW', Intr).dir(No, 0x4a, Left, High).pos(0), + create_door(player, 'PoD Middle Cage S', Intr).dir(No, 0x4a, Mid, High).pos(2), + create_door(player, 'PoD Middle Cage SE', Intr).dir(No, 0x4a, Right, High).pos(1), + create_door(player, 'PoD Left Cage Down Stairs', Sprl).dir(Dn, 0x4a, 1, HTH).ss(A, 0x12, 0x80, False, True), + create_door(player, 'PoD Middle Cage Down Stairs', Sprl).dir(Dn, 0x4a, 0, HTH).ss(S, 0x12, 0x80, False, True), + create_door(player, 'PoD Middle Cage N', Nrml).dir(No, 0x4a, Mid, High).small_key().pos(2), + create_door(player, 'PoD Shooter Room Up Stairs', Sprl).dir(Up, 0x09, 1, HTH).ss(A, 0x1b, 0x6c, True, True), + create_door(player, 'PoD Warp Room Up Stairs', Sprl).dir(Up, 0x09, 0, HTH).ss(S, 0x1a, 0x6c, True, True), create_door(player, 'PoD Warp Room Warp', Warp), - create_door(player, 'PoD Pit Room S', Nrml).dir(Direction.South, 0x3a, Mid, High).small_key().pos(0), - create_door(player, 'PoD Pit Room NW', Nrml).dir(Direction.North, 0x3a, Left, High).pos(1), - create_door(player, 'PoD Pit Room NE', Nrml).dir(Direction.North, 0x3a, Right, High).pos(2), + create_door(player, 'PoD Pit Room S', Nrml).dir(So, 0x3a, Mid, High).small_key().pos(0), + create_door(player, 'PoD Pit Room NW', Nrml).dir(No, 0x3a, Left, High).pos(1), + create_door(player, 'PoD Pit Room NE', Nrml).dir(No, 0x3a, Right, High).pos(2), create_door(player, 'PoD Pit Room Freefall', Hole), create_door(player, 'PoD Pit Room Bomb Hole', Hole), create_door(player, 'PoD Big Key Landing Hole', Hole), - create_door(player, 'PoD Big Key Landing Down Stairs', Sprl).dir(Direction.Down, 0x3a, 0, HTH).ss(A, 0x11, 0x00), - create_door(player, 'PoD Basement Ledge Up Stairs', Sprl).dir(Direction.Up, 0x0a, 0, HTH).ss(A, 0x1a, 0xec).small_key().pos(0), + create_door(player, 'PoD Big Key Landing Down Stairs', Sprl).dir(Dn, 0x3a, 0, HTH).ss(A, 0x11, 0x00), + create_door(player, 'PoD Basement Ledge Up Stairs', Sprl).dir(Up, 0x0a, 0, HTH).ss(A, 0x1a, 0xec).small_key().pos(0), create_door(player, 'PoD Basement Ledge Drop Down', Lgcl), create_door(player, 'PoD Stalfos Basement Warp', Warp), - create_door(player, 'PoD Arena Main SW', Nrml).dir(Direction.South, 0x2a, Left, High).pos(4), - create_door(player, 'PoD Arena Bridge SE', Nrml).dir(Direction.South, 0x2a, Right, High).pos(5), - create_door(player, 'PoD Arena Main NW', Nrml).dir(Direction.North, 0x2a, Left, High).small_key().pos(1), - create_door(player, 'PoD Arena Main NE', Nrml).dir(Direction.North, 0x2a, Right, High).no_exit().trap(0x4).pos(0), + create_door(player, 'PoD Arena Main SW', Nrml).dir(So, 0x2a, Left, High).pos(4), + create_door(player, 'PoD Arena Bridge SE', Nrml).dir(So, 0x2a, Right, High).pos(5), + create_door(player, 'PoD Arena Main NW', Nrml).dir(No, 0x2a, Left, High).small_key().pos(1), + create_door(player, 'PoD Arena Main NE', Nrml).dir(No, 0x2a, Right, High).no_exit().trap(0x4).pos(0), create_door(player, 'PoD Arena Main Crystal Path', Lgcl), - create_door(player, 'PoD Arena Crystals E', Nrml).dir(Direction.East, 0x2a, Mid, High).pos(3), + create_door(player, 'PoD Arena Crystals E', Nrml).dir(Ea, 0x2a, Mid, High).pos(3), create_door(player, 'PoD Arena Crystal Path', Lgcl), create_door(player, 'PoD Arena Bridge Drop Down', Lgcl), - create_door(player, 'PoD Arena Ledge ES', Nrml).dir(Direction.East, 0x2a, Bot, High).pos(2), - create_door(player, 'PoD Sexy Statue W', Nrml).dir(Direction.West, 0x2b, Mid, High).pos(3), - create_door(player, 'PoD Sexy Statue NW', Nrml).dir(Direction.North, 0x2b, Left, High).trap(0x1).pos(2), + 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), create_door(player, 'PoD Map Balcony Drop Down', Lgcl), - create_door(player, 'PoD Map Balcony WS', Nrml).dir(Direction.West, 0x2b, Bot, High).pos(1), - create_door(player, 'PoD Map Balcony South Stairs', StrS).dir(Direction.South, 0x2b, Left, High), - create_door(player, 'PoD Conveyor North Stairs', StrS).dir(Direction.North, 0x3b, Left, High), - create_door(player, 'PoD Conveyor SW', Nrml).dir(Direction.South, 0x3b, Left, High).pos(0), - create_door(player, 'PoD Mimics 1 NW', Nrml).dir(Direction.North, 0x4b, Left, High).trap(0x4).pos(0), - create_door(player, 'PoD Mimics 1 SW', Intr).dir(Direction.South, 0x4b, Left, High).pos(1), - create_door(player, 'PoD Jelly Hall NW', Intr).dir(Direction.North, 0x4b, Left, High).pos(1), - create_door(player, 'PoD Jelly Hall NE', Intr).dir(Direction.North, 0x4b, Right, High).pos(2), - create_door(player, 'PoD Warp Hint SE', Intr).dir(Direction.South, 0x4b, Right, High).pos(2), + create_door(player, 'PoD Map Balcony WS', Nrml).dir(We, 0x2b, Bot, High).pos(1), + create_door(player, 'PoD Map Balcony South Stairs', StrS).dir(So, 0x2b, Left, High), + create_door(player, 'PoD Conveyor North Stairs', StrS).dir(No, 0x3b, Left, High), + create_door(player, 'PoD Conveyor SW', Nrml).dir(So, 0x3b, Left, High).pos(0), + create_door(player, 'PoD Mimics 1 NW', Nrml).dir(No, 0x4b, Left, High).trap(0x4).pos(0), + create_door(player, 'PoD Mimics 1 SW', Intr).dir(So, 0x4b, Left, High).pos(1), + create_door(player, 'PoD Jelly Hall NW', Intr).dir(No, 0x4b, Left, High).pos(1), + create_door(player, 'PoD Jelly Hall NE', Intr).dir(No, 0x4b, Right, High).pos(2), + create_door(player, 'PoD Warp Hint SE', Intr).dir(So, 0x4b, Right, High).pos(2), create_door(player, 'PoD Warp Hint Warp', Warp), - create_door(player, 'PoD Falling Bridge SW', Nrml).dir(Direction.South, 0x1a, Left, High).small_key().pos(3), - create_door(player, 'PoD Falling Bridge WN', Nrml).dir(Direction.West, 0x1a, Top, High).small_key().pos(1), - create_door(player, 'PoD Falling Bridge EN', Intr).dir(Direction.East, 0x1a, Top, High).pos(4), - create_door(player, 'PoD Big Chest Balcony W', Nrml).dir(Direction.West, 0x1a, Mid, High).pos(2), - create_door(player, 'PoD Dark Maze EN', Nrml).dir(Direction.East, 0x19, Top, High).small_key().pos(1), - create_door(player, 'PoD Dark Maze E', Nrml).dir(Direction.East, 0x19, Mid, High).pos(0), - create_door(player, 'PoD Compass Room WN', Intr).dir(Direction.West, 0x1a, Top, High).pos(4), - create_door(player, 'PoD Compass Room SE', Intr).dir(Direction.North, 0x1a, Mid, High).small_key().pos(0), - create_door(player, 'PoD Harmless Hellway NE', Intr).dir(Direction.North, 0x1a, Right, High).small_key().pos(0), - create_door(player, 'PoD Harmless Hellway SE', Nrml).dir(Direction.South, 0x1a, Right, High).pos(5), - create_door(player, 'PoD Compass Room W Down Stairs', Sprl).dir(Direction.Down, 0x1a, 0, HTH).ss(S, 0x12, 0x50, True, True), - create_door(player, 'PoD Compass Room E Down Stairs', Sprl).dir(Direction.Down, 0x1a, 1, HTH).ss(S, 0x11, 0xb0, True, True), - create_door(player, 'PoD Dark Basement W Up Stairs', Sprl).dir(Direction.Up, 0x6a, 0, HTH).ss(S, 0x1b, 0x3c, True), - create_door(player, 'PoD Dark Basement E Up Stairs', Sprl).dir(Direction.Up, 0x6a, 1, HTH).ss(S, 0x1b, 0x9c, True), - create_door(player, 'PoD Dark Alley NE', Nrml).dir(Direction.North, 0x6a, Right, High).big_key().pos(0), - create_door(player, 'PoD Mimics 2 SW', Nrml).dir(Direction.South, 0x1b, Left, High).pos(1), - create_door(player, 'PoD Mimics 2 NW', Intr).dir(Direction.North, 0x1b, Left, High).pos(0), - create_door(player, 'PoD Bow Statue SW', Intr).dir(Direction.South, 0x1b, Left, High).pos(0), + create_door(player, 'PoD Falling Bridge SW', Nrml).dir(So, 0x1a, Left, High).small_key().pos(3), + create_door(player, 'PoD Falling Bridge WN', Nrml).dir(We, 0x1a, Top, High).small_key().pos(1), + create_door(player, 'PoD Falling Bridge EN', Intr).dir(Ea, 0x1a, Top, High).pos(4), + create_door(player, 'PoD Big Chest Balcony W', Nrml).dir(We, 0x1a, Mid, High).pos(2), + create_door(player, 'PoD Dark Maze EN', Nrml).dir(Ea, 0x19, Top, High).small_key().pos(1), + create_door(player, 'PoD Dark Maze E', Nrml).dir(Ea, 0x19, Mid, High).pos(0), + create_door(player, 'PoD Compass Room WN', Intr).dir(We, 0x1a, Top, High).pos(4), + create_door(player, 'PoD Compass Room SE', Intr).dir(No, 0x1a, Mid, High).small_key().pos(0), + create_door(player, 'PoD Harmless Hellway NE', Intr).dir(No, 0x1a, Right, High).small_key().pos(0), + create_door(player, 'PoD Harmless Hellway SE', Nrml).dir(So, 0x1a, Right, High).pos(5), + create_door(player, 'PoD Compass Room W Down Stairs', Sprl).dir(Dn, 0x1a, 0, HTH).ss(S, 0x12, 0x50, True, True), + create_door(player, 'PoD Compass Room E Down Stairs', Sprl).dir(Dn, 0x1a, 1, HTH).ss(S, 0x11, 0xb0, True, True), + create_door(player, 'PoD Dark Basement W Up Stairs', Sprl).dir(Up, 0x6a, 0, HTH).ss(S, 0x1b, 0x3c, True), + create_door(player, 'PoD Dark Basement E Up Stairs', Sprl).dir(Up, 0x6a, 1, HTH).ss(S, 0x1b, 0x9c, True), + create_door(player, 'PoD Dark Alley NE', Nrml).dir(No, 0x6a, Right, High).big_key().pos(0), + create_door(player, 'PoD Mimics 2 SW', Nrml).dir(So, 0x1b, Left, High).pos(1), + 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), # todo: we need a new flag for a door that has a wall on it - you have to traverse it one particular way first # the above is not a problem until we get to crossed mode create_door(player, 'PoD Bow Statue Down Ladder', Lddr), create_door(player, 'PoD Dark Pegs Up Ladder', Lddr), - create_door(player, 'PoD Dark Pegs WN', Intr).dir(Direction.West, 0x0b, Mid, High).small_key().pos(2), - create_door(player, 'PoD Lonely Turtle SW', Intr).dir(Direction.South, 0x0b, Mid, High).pos(0), - create_door(player, 'PoD Lonely Turtle EN', Intr).dir(Direction.East, 0x0b, Mid, High).small_key().pos(2), - create_door(player, 'PoD Turtle Party ES', Intr).dir(Direction.East, 0x0b, Mid, High).pos(1), - create_door(player, 'PoD Turtle Party NW', Intr).dir(Direction.North, 0x0b, Mid, High).pos(0), - create_door(player, 'PoD Callback WS', Intr).dir(Direction.West, 0x0b, Mid, High).pos(1), + create_door(player, 'PoD Dark Pegs WN', Intr).dir(We, 0x0b, Mid, High).small_key().pos(2), + create_door(player, 'PoD Lonely Turtle SW', Intr).dir(So, 0x0b, Mid, High).pos(0), + create_door(player, 'PoD Lonely Turtle EN', Intr).dir(Ea, 0x0b, Mid, High).small_key().pos(2), + create_door(player, 'PoD Turtle Party ES', Intr).dir(Ea, 0x0b, Mid, High).pos(1), + create_door(player, 'PoD Turtle Party NW', Intr).dir(No, 0x0b, Mid, High).pos(0), + create_door(player, 'PoD Callback WS', Intr).dir(We, 0x0b, Mid, High).pos(1), create_door(player, 'PoD Callback Warp', Warp), - create_door(player, 'PoD Boss SE', Nrml).dir(Direction.South, 0x5a, Right, High).no_exit().trap(0x4).pos(0), + create_door(player, 'PoD Boss SE', Nrml).dir(So, 0x5a, Right, High).no_exit().trap(0x4).pos(0), create_door(player, 'Swamp Lobby Moat', Lgcl), - create_door(player, 'Swamp Entrance Down Stairs', Sprl).dir(Direction.Down, 0x28, 0, HTH).ss(A, 0x11, 0x80).small_key().pos(0), + create_door(player, 'Swamp Entrance Down Stairs', Sprl).dir(Dn, 0x28, 0, HTH).ss(A, 0x11, 0x80).small_key().pos(0), create_door(player, 'Swamp Entrance Moat', Lgcl), - create_door(player, 'Swamp Pot Row Up Stairs', Sprl).dir(Direction.Up, 0x38, 0, HTH).ss(A, 0x1a, 0x6c, True), - create_door(player, 'Swamp Pot Row WN', Nrml).dir(Direction.West, 0x38, Top, High).pos(0), - create_door(player, 'Swamp Pot Row WS', Nrml).dir(Direction.West, 0x38, Bot, High).small_key().pos(1), - create_door(player, 'Swamp Map Ledge EN', Nrml).dir(Direction.East, 0x37, Top, High).pos(1), - create_door(player, 'Swamp Trench 1 Approach ES', Nrml).dir(Direction.East, 0x37, Bot, High).small_key().pos(3), + create_door(player, 'Swamp Pot Row Up Stairs', Sprl).dir(Up, 0x38, 0, HTH).ss(A, 0x1a, 0x6c, True), + create_door(player, 'Swamp Pot Row WN', Nrml).dir(We, 0x38, Top, High).pos(0), + create_door(player, 'Swamp Pot Row WS', Nrml).dir(We, 0x38, Bot, High).small_key().pos(1), + create_door(player, 'Swamp Map Ledge EN', Nrml).dir(Ea, 0x37, Top, High).pos(1), + create_door(player, 'Swamp Trench 1 Approach ES', Nrml).dir(Ea, 0x37, Bot, High).small_key().pos(3), create_door(player, 'Swamp Trench 1 Approach Dry', Lgcl), create_door(player, 'Swamp Trench 1 Approach Key', Lgcl), create_door(player, 'Swamp Trench 1 Approach Swim Depart', Lgcl), create_door(player, 'Swamp Trench 1 Nexus Approach', Lgcl), create_door(player, 'Swamp Trench 1 Nexus Key', Lgcl), - create_door(player, 'Swamp Trench 1 Nexus N', Intr).dir(Direction.North, 0x37, Mid, Low).pos(5), - create_door(player, 'Swamp Trench 1 Alcove S', Intr).dir(Direction.South, 0x37, Mid, Low).pos(5), + create_door(player, 'Swamp Trench 1 Nexus N', Intr).dir(No, 0x37, Mid, Low).pos(5), + create_door(player, 'Swamp Trench 1 Alcove S', Intr).dir(So, 0x37, Mid, Low).pos(5), create_door(player, 'Swamp Trench 1 Key Ledge Dry', Lgcl), create_door(player, 'Swamp Trench 1 Key Approach', Lgcl), create_door(player, 'Swamp Trench 1 Key Ledge Depart', Lgcl), - create_door(player, 'Swamp Trench 1 Key Ledge NW', Intr).dir(Direction.North, 0x37, Left, High).small_key().pos(2), + create_door(player, 'Swamp Trench 1 Key Ledge NW', Intr).dir(No, 0x37, Left, High).small_key().pos(2), create_door(player, 'Swamp Trench 1 Departure Dry', Lgcl), create_door(player, 'Swamp Trench 1 Departure Approach', Lgcl), create_door(player, 'Swamp Trench 1 Departure Key', Lgcl), - create_door(player, 'Swamp Trench 1 Departure WS', Nrml).dir(Direction.West, 0x37, Bot, High).pos(4), - create_door(player, 'Swamp Hammer Switch SW', Intr).dir(Direction.South, 0x37, Left, High).small_key().pos(2), - create_door(player, 'Swamp Hammer Switch WN', Nrml).dir(Direction.West, 0x37, Top, High).pos(0), - create_door(player, 'Swamp Hub ES', Nrml).dir(Direction.East, 0x36, Bot, High).pos(4), - create_door(player, 'Swamp Hub S', Nrml).dir(Direction.South, 0x36, Mid, High).pos(5), - create_door(player, 'Swamp Hub WS', Nrml).dir(Direction.West, 0x36, Bot, High).pos(3), - create_door(player, 'Swamp Hub WN', Nrml).dir(Direction.West, 0x36, Top, High).small_key().pos(2), + create_door(player, 'Swamp Trench 1 Departure WS', Nrml).dir(We, 0x37, Bot, High).pos(4), + create_door(player, 'Swamp Hammer Switch SW', Intr).dir(So, 0x37, Left, High).small_key().pos(2), + create_door(player, 'Swamp Hammer Switch WN', Nrml).dir(We, 0x37, Top, High).pos(0), + create_door(player, 'Swamp Hub ES', Nrml).dir(Ea, 0x36, Bot, High).pos(4), + create_door(player, 'Swamp Hub S', Nrml).dir(So, 0x36, Mid, High).pos(5), + create_door(player, 'Swamp Hub WS', Nrml).dir(We, 0x36, Bot, High).pos(3), + create_door(player, 'Swamp Hub WN', Nrml).dir(We, 0x36, Top, High).small_key().pos(2), create_door(player, 'Swamp Hub Hook Path', Lgcl), - create_door(player, 'Swamp Hub Dead Ledge EN', Nrml).dir(Direction.East, 0x36, Top, High).pos(0), - create_door(player, 'Swamp Hub North Ledge N', Nrml).dir(Direction.North, 0x36, Mid, High).small_key().pos(1), + create_door(player, 'Swamp Hub Dead Ledge EN', Nrml).dir(Ea, 0x36, Top, High).pos(0), + create_door(player, 'Swamp Hub North Ledge N', Nrml).dir(No, 0x36, Mid, High).small_key().pos(1), create_door(player, 'Swamp Hub North Ledge Drop Down', Lgcl), - create_door(player, 'Swamp Donut Top N', Nrml).dir(Direction.North, 0x46, Mid, High).pos(0), - create_door(player, 'Swamp Donut Top SE', Intr).dir(Direction.South, 0x46, Right, High).pos(2), - create_door(player, 'Swamp Donut Bottom NE', Intr).dir(Direction.North, 0x46, Right, High).pos(2), - create_door(player, 'Swamp Donut Bottom NW', Intr).dir(Direction.North, 0x46, Left, High).pos(1), - create_door(player, 'Swamp Compass Donut SW', Intr).dir(Direction.South, 0x46, Left, High).pos(1), + create_door(player, 'Swamp Donut Top N', Nrml).dir(No, 0x46, Mid, High).pos(0), + create_door(player, 'Swamp Donut Top SE', Intr).dir(So, 0x46, Right, High).pos(2), + create_door(player, 'Swamp Donut Bottom NE', Intr).dir(No, 0x46, Right, High).pos(2), + create_door(player, 'Swamp Donut Bottom NW', Intr).dir(No, 0x46, Left, High).pos(1), + create_door(player, 'Swamp Compass Donut SW', Intr).dir(So, 0x46, Left, High).pos(1), create_door(player, 'Swamp Compass Donut Push Block', Lgcl), - create_door(player, 'Swamp Crystal Switch EN', Nrml).dir(Direction.East, 0x35, Top, High).small_key().pos(0), - create_door(player, 'Swamp Crystal Switch SE', Intr).dir(Direction.South, 0x35, Right, High).pos(3), - create_door(player, 'Swamp Shortcut NE', Intr).dir(Direction.North, 0x35, Right, High).pos(3), + create_door(player, 'Swamp Crystal Switch EN', Nrml).dir(Ea, 0x35, Top, High).small_key().pos(0), + create_door(player, 'Swamp Crystal Switch SE', Intr).dir(So, 0x35, Right, High).pos(3), + create_door(player, 'Swamp Shortcut NE', Intr).dir(No, 0x35, Right, High).pos(3), create_door(player, 'Swamp Shortcut Blue Barrier', Lgcl), - create_door(player, 'Swamp Trench 2 Pots ES', Nrml).dir(Direction.East, 0x35, Bot, High).pos(4), + create_door(player, 'Swamp Trench 2 Pots ES', Nrml).dir(Ea, 0x35, Bot, High).pos(4), create_door(player, 'Swamp Trench 2 Pots Blue Barrier', Lgcl), create_door(player, 'Swamp Trench 2 Pots Dry', Lgcl), create_door(player, 'Swamp Trench 2 Pots Wet', Lgcl), create_door(player, 'Swamp Trench 2 Blocks Pots', Lgcl), - create_door(player, 'Swamp Trench 2 Blocks N', Intr).dir(Direction.North, 0x35, Mid, Low).pos(5), - create_door(player, 'Swamp Trench 2 Alcove S', Intr).dir(Direction.South, 0x35, Mid, Low).pos(5), + create_door(player, 'Swamp Trench 2 Blocks N', Intr).dir(No, 0x35, Mid, Low).pos(5), + create_door(player, 'Swamp Trench 2 Alcove S', Intr).dir(So, 0x35, Mid, Low).pos(5), create_door(player, 'Swamp Trench 2 Departure Wet', Lgcl), - create_door(player, 'Swamp Trench 2 Departure WS', Nrml).dir(Direction.West, 0x35, Bot, High).pos(2), - create_door(player, 'Swamp Big Key Ledge WN', Nrml).dir(Direction.West, 0x35, Top, High).pos(1), - create_door(player, 'Swamp West Shallows ES', Nrml).dir(Direction.East, 0x34, Bot, High).pos(1), + create_door(player, 'Swamp Trench 2 Departure WS', Nrml).dir(We, 0x35, Bot, High).pos(2), + create_door(player, 'Swamp Big Key Ledge WN', Nrml).dir(We, 0x35, Top, High).pos(1), + create_door(player, 'Swamp West Shallows ES', Nrml).dir(Ea, 0x34, Bot, High).pos(1), create_door(player, 'Swamp West Shallows Push Blocks', Lgcl), - create_door(player, 'Swamp West Block Path Up Stairs', Sprl).dir(Direction.Up, 0x34, 0, HTH).ss(Z, 0x1b, 0x6c, False, True), + create_door(player, 'Swamp West Block Path Up Stairs', Sprl).dir(Up, 0x34, 0, HTH).ss(Z, 0x1b, 0x6c, False, True), create_door(player, 'Swamp West Block Path Drop Down', Lgcl), create_door(player, 'Swamp West Ledge Drop Down', Lgcl), create_door(player, 'Swamp West Ledge Hook Path', Lgcl), create_door(player, 'Swamp Barrier Ledge Drop Down', Lgcl), create_door(player, 'Swamp Barrier Ledge - Orange', Lgcl), - create_door(player, 'Swamp Barrier EN', Nrml).dir(Direction.East, 0x34, Top, High).pos(0), + create_door(player, 'Swamp Barrier EN', Nrml).dir(Ea, 0x34, Top, High).pos(0), create_door(player, 'Swamp Barrier - Orange', Lgcl), create_door(player, 'Swamp Barrier Ledge Hook Path', Lgcl), - create_door(player, 'Swamp Attic Down Stairs', Sprl).dir(Direction.Down, 0x54, 0, HTH).ss(Z, 0x12, 0x80, False, True), + create_door(player, 'Swamp Attic Down Stairs', Sprl).dir(Dn, 0x54, 0, HTH).ss(Z, 0x12, 0x80, False, True), create_door(player, 'Swamp Attic Left Pit', Hole), create_door(player, 'Swamp Attic Right Pit', Hole), - create_door(player, 'Swamp Push Statue S', Nrml).dir(Direction.South, 0x26, Mid, High).small_key().pos(0), - create_door(player, 'Swamp Push Statue NW', Intr).dir(Direction.North, 0x26, Left, High).pos(1), - create_door(player, 'Swamp Push Statue NE', Intr).dir(Direction.North, 0x26, Right, High).pos(2), - create_door(player, 'Swamp Push Statue Down Stairs', Sprl).dir(Direction.Down, 0x26, 2, HTH).ss(X, 0x12, 0xc0, False, True), - create_door(player, 'Swamp Shooters SW', Intr).dir(Direction.South, 0x26, Left, High).pos(1), - create_door(player, 'Swamp Shooters EN', Intr).dir(Direction.East, 0x26, Top, High).pos(3), - create_door(player, 'Swamp Left Elbow WN', Intr).dir(Direction.West, 0x26, Top, High).pos(3), - create_door(player, 'Swamp Left Elbow Down Stairs', Sprl).dir(Direction.Down, 0x26, 0, HTH).ss(S, 0x11, 0x40, True, True), - create_door(player, 'Swamp Right Elbow SE', Intr).dir(Direction.South, 0x26, Right, High).pos(2), - create_door(player, 'Swamp Right Elbow Down Stairs', Sprl).dir(Direction.Down, 0x26, 1, HTH).ss(S, 0x12, 0xb0, True, True), - create_door(player, 'Swamp Drain Left Up Stairs', Sprl).dir(Direction.Up, 0x76, 0, HTH).ss(S, 0x1b, 0x2c, True, True), - create_door(player, 'Swamp Drain WN', Intr).dir(Direction.West, 0x76, Top, Low).pos(0), + create_door(player, 'Swamp Push Statue S', Nrml).dir(So, 0x26, Mid, High).small_key().pos(0), + create_door(player, 'Swamp Push Statue NW', Intr).dir(No, 0x26, Left, High).pos(1), + create_door(player, 'Swamp Push Statue NE', Intr).dir(No, 0x26, Right, High).pos(2), + create_door(player, 'Swamp Push Statue Down Stairs', Sprl).dir(Dn, 0x26, 2, HTH).ss(X, 0x12, 0xc0, False, True), + create_door(player, 'Swamp Shooters SW', Intr).dir(So, 0x26, Left, High).pos(1), + create_door(player, 'Swamp Shooters EN', Intr).dir(Ea, 0x26, Top, High).pos(3), + create_door(player, 'Swamp Left Elbow WN', Intr).dir(We, 0x26, Top, High).pos(3), + create_door(player, 'Swamp Left Elbow Down Stairs', Sprl).dir(Dn, 0x26, 0, HTH).ss(S, 0x11, 0x40, True, True), + create_door(player, 'Swamp Right Elbow SE', Intr).dir(So, 0x26, Right, High).pos(2), + create_door(player, 'Swamp Right Elbow Down Stairs', Sprl).dir(Dn, 0x26, 1, HTH).ss(S, 0x12, 0xb0, True, True), + create_door(player, 'Swamp Drain Left Up Stairs', Sprl).dir(Up, 0x76, 0, HTH).ss(S, 0x1b, 0x2c, True, True), + create_door(player, 'Swamp Drain WN', Intr).dir(We, 0x76, Top, Low).pos(0), create_door(player, 'Swamp Drain Right Switch', Lgcl), - create_door(player, 'Swamp Drain Right Up Stairs', Sprl).dir(Direction.Up, 0x76, 1, HTH).ss(S, 0x1b, 0x9c, True, True), - create_door(player, 'Swamp Flooded Room Up Stairs', Sprl).dir(Direction.Up, 0x76, 2, HTH).ss(X, 0x1a, 0xac, True, True), - create_door(player, 'Swamp Flooded Room WS', Intr).dir(Direction.West, 0x76, Bot, Low).pos(1), + create_door(player, 'Swamp Drain Right Up Stairs', Sprl).dir(Up, 0x76, 1, HTH).ss(S, 0x1b, 0x9c, True, True), + create_door(player, 'Swamp Flooded Room Up Stairs', Sprl).dir(Up, 0x76, 2, HTH).ss(X, 0x1a, 0xac, True, True), + create_door(player, 'Swamp Flooded Room WS', Intr).dir(We, 0x76, Bot, Low).pos(1), create_door(player, 'Swamp Flooded Spot Ladder', Lgcl), create_door(player, 'Swamp Flooded Room Ladder', Lgcl), - create_door(player, 'Swamp Basement Shallows NW', Nrml).dir(Direction.North, 0x76, Left, High).toggler().pos(2), - create_door(player, 'Swamp Basement Shallows EN', Intr).dir(Direction.West, 0x76, Top, High).pos(0), - create_door(player, 'Swamp Basement Shallows ES', Intr).dir(Direction.East, 0x76, Bot, High).pos(1), - create_door(player, 'Swamp Waterfall Room SW', Nrml).dir(Direction.South, 0x66, Left, Low).toggler().pos(1), - create_door(player, 'Swamp Waterfall Room NW', Intr).dir(Direction.North, 0x66, Left, Low).pos(3), - create_door(player, 'Swamp Waterfall Room NE', Intr).dir(Direction.North, 0x66, Right, Low).pos(0), - create_door(player, 'Swamp Refill SW', Intr).dir(Direction.South, 0x66, Left, Low).pos(3), - create_door(player, 'Swamp Behind Waterfall SE', Intr).dir(Direction.South, 0x66, Right, Low).pos(0), - create_door(player, 'Swamp Behind Waterfall Up Stairs', Sprl).dir(Direction.Up, 0x66, 0, HTH).ss(S, 0x1a, 0x6c, True, True), - create_door(player, 'Swamp C Down Stairs', Sprl).dir(Direction.Down, 0x16, 0, HTH).ss(S, 0x11, 0x80, True, True), - create_door(player, 'Swamp C SE', Intr).dir(Direction.South, 0x16, Right, High).pos(2), - create_door(player, 'Swamp Waterway NE', Intr).dir(Direction.North, 0x16, Right, High).pos(2), - create_door(player, 'Swamp Waterway N', Intr).dir(Direction.North, 0x16, Mid, High).pos(0), - create_door(player, 'Swamp Waterway NW', Intr).dir(Direction.North, 0x16, Left, High).small_key().pos(1), - create_door(player, 'Swamp I S', Intr).dir(Direction.South, 0x16, Mid, High).pos(0), - create_door(player, 'Swamp T SW', Intr).dir(Direction.South, 0x16, Left, High).small_key().pos(1), - create_door(player, 'Swamp T NW', Nrml).dir(Direction.North, 0x16, Left, High).pos(3), - create_door(player, 'Swamp Boss SW', Nrml).dir(Direction.South, 0x06, Left, High).trap(0x4).pos(0), + create_door(player, 'Swamp Basement Shallows NW', Nrml).dir(No, 0x76, Left, High).toggler().pos(2), + create_door(player, 'Swamp Basement Shallows EN', Intr).dir(We, 0x76, Top, High).pos(0), + create_door(player, 'Swamp Basement Shallows ES', Intr).dir(Ea, 0x76, Bot, High).pos(1), + create_door(player, 'Swamp Waterfall Room SW', Nrml).dir(So, 0x66, Left, Low).toggler().pos(1), + create_door(player, 'Swamp Waterfall Room NW', Intr).dir(No, 0x66, Left, Low).pos(3), + create_door(player, 'Swamp Waterfall Room NE', Intr).dir(No, 0x66, Right, Low).pos(0), + create_door(player, 'Swamp Refill SW', Intr).dir(So, 0x66, Left, Low).pos(3), + create_door(player, 'Swamp Behind Waterfall SE', Intr).dir(So, 0x66, Right, Low).pos(0), + create_door(player, 'Swamp Behind Waterfall Up Stairs', Sprl).dir(Up, 0x66, 0, HTH).ss(S, 0x1a, 0x6c, True, True), + create_door(player, 'Swamp C Down Stairs', Sprl).dir(Dn, 0x16, 0, HTH).ss(S, 0x11, 0x80, True, True), + create_door(player, 'Swamp C SE', Intr).dir(So, 0x16, Right, High).pos(2), + create_door(player, 'Swamp Waterway NE', Intr).dir(No, 0x16, Right, High).pos(2), + create_door(player, 'Swamp Waterway N', Intr).dir(No, 0x16, Mid, High).pos(0), + create_door(player, 'Swamp Waterway NW', Intr).dir(No, 0x16, Left, High).small_key().pos(1), + create_door(player, 'Swamp I S', Intr).dir(So, 0x16, Mid, High).pos(0), + create_door(player, 'Swamp T SW', Intr).dir(So, 0x16, Left, High).small_key().pos(1), + create_door(player, 'Swamp T NW', Nrml).dir(No, 0x16, Left, High).pos(3), + create_door(player, 'Swamp Boss SW', Nrml).dir(So, 0x06, Left, High).trap(0x4).pos(0), - create_door(player, 'Skull 1 Lobby WS', Nrml).dir(Direction.West, 0x58, Bot, High).small_key().pos(1), - create_door(player, 'Skull 1 Lobby ES', Intr).dir(Direction.East, 0x58, Bot, High).pos(5), - create_door(player, 'Skull Map Room WS', Intr).dir(Direction.West, 0x58, Bot, High).pos(5), - create_door(player, 'Skull Map Room SE', Nrml).dir(Direction.South, 0x58, Right, High).small_key().pos(2), - create_door(player, 'Skull Pot Circle WN', Intr).dir(Direction.West, 0x58, Top, High).pos(3), - create_door(player, 'Skull Pull Switch EN', Intr).dir(Direction.East, 0x58, Top, High).pos(3), + create_door(player, 'Skull 1 Lobby WS', Nrml).dir(We, 0x58, Bot, High).small_key().pos(1), + create_door(player, 'Skull 1 Lobby ES', Intr).dir(Ea, 0x58, Bot, High).pos(5), + create_door(player, 'Skull Map Room WS', Intr).dir(We, 0x58, Bot, High).pos(5), + create_door(player, 'Skull Map Room SE', Nrml).dir(So, 0x58, Right, High).small_key().pos(2), + create_door(player, 'Skull Pot Circle WN', Intr).dir(We, 0x58, Top, High).pos(3), + create_door(player, 'Skull Pull Switch EN', Intr).dir(Ea, 0x58, Top, High).pos(3), create_door(player, 'Skull Pot Circle Star Path', Lgcl), - create_door(player, 'Skull Pull Switch S', Intr).dir(Direction.South, 0x58, Left, High).pos(0), - create_door(player, 'Skull Big Chest N', Intr).dir(Direction.North, 0x58, Left, High).no_exit().pos(0), + create_door(player, 'Skull Pull Switch S', Intr).dir(So, 0x58, Left, High).pos(0), + create_door(player, 'Skull Big Chest N', Intr).dir(No, 0x58, Left, High).no_exit().pos(0), create_door(player, 'Skull Big Chest Hookpath', Lgcl), - create_door(player, 'Skull Pinball NE', Nrml).dir(Direction.North, 0x68, Right, High).small_key().pos(1), - create_door(player, 'Skull Pinball WS', Nrml).dir(Direction.West, 0x68, Bot, High).no_exit().trap(0x4).pos(0), - create_door(player, 'Skull Compass Room NE', Nrml).dir(Direction.North, 0x67, Right, High).pos(0), - create_door(player, 'Skull Compass Room ES', Nrml).dir(Direction.East, 0x67, Bot, High).pos(2), - create_door(player, 'Skull Left Drop ES', Intr).dir(Direction.East, 0x67, Bot, High).pos(1), - create_door(player, 'Skull Compass Room WS', Intr).dir(Direction.West, 0x67, Bot, High).pos(1), - create_door(player, 'Skull Pot Prison ES', Nrml).dir(Direction.East, 0x57, Bot, High).small_key().pos(2), - create_door(player, 'Skull Pot Prison SE', Nrml).dir(Direction.South, 0x57, Right, High).pos(5), - create_door(player, 'Skull 2 East Lobby WS', Nrml).dir(Direction.West, 0x57, Bot, High).pos(4), - create_door(player, 'Skull 2 East Lobby NW', Intr).dir(Direction.North, 0x57, Left, High).pos(1), - create_door(player, 'Skull Big Key SW', Intr).dir(Direction.South, 0x57, Left, High).pos(1), - create_door(player, 'Skull Big Key WN', Intr).dir(Direction.West, 0x57, Top, High).pos(0), - create_door(player, 'Skull Lone Pot EN', Intr).dir(Direction.East, 0x57, Top, High).pos(0), - create_door(player, 'Skull Small Hall ES', Nrml).dir(Direction.East, 0x56, Bot, High).pos(3), - create_door(player, 'Skull Small Hall WS', Intr).dir(Direction.West, 0x56, Bot, High).pos(2), - create_door(player, 'Skull 2 West Lobby ES', Intr).dir(Direction.East, 0x56, Bot, High).pos(2), - create_door(player, 'Skull 2 West Lobby NW', Intr).dir(Direction.North, 0x56, Left, High).small_key().pos(0), - create_door(player, 'Skull X Room SW', Intr).dir(Direction.South, 0x56, Left, High).small_key().pos(0), + create_door(player, 'Skull Pinball NE', Nrml).dir(No, 0x68, Right, High).small_key().pos(1), + create_door(player, 'Skull Pinball WS', Nrml).dir(We, 0x68, Bot, High).no_exit().trap(0x4).pos(0), + create_door(player, 'Skull Compass Room NE', Nrml).dir(No, 0x67, Right, High).pos(0), + create_door(player, 'Skull Compass Room ES', Nrml).dir(Ea, 0x67, Bot, High).pos(2), + create_door(player, 'Skull Left Drop ES', Intr).dir(Ea, 0x67, Bot, High).pos(1), + create_door(player, 'Skull Compass Room WS', Intr).dir(We, 0x67, Bot, High).pos(1), + create_door(player, 'Skull Pot Prison ES', Nrml).dir(Ea, 0x57, Bot, High).small_key().pos(2), + create_door(player, 'Skull Pot Prison SE', Nrml).dir(So, 0x57, Right, High).pos(5), + create_door(player, 'Skull 2 East Lobby WS', Nrml).dir(We, 0x57, Bot, High).pos(4), + create_door(player, 'Skull 2 East Lobby NW', Intr).dir(No, 0x57, Left, High).pos(1), + create_door(player, 'Skull Big Key SW', Intr).dir(So, 0x57, Left, High).pos(1), + create_door(player, 'Skull Big Key WN', Intr).dir(We, 0x57, Top, High).pos(0), + create_door(player, 'Skull Lone Pot EN', Intr).dir(Ea, 0x57, Top, High).pos(0), + create_door(player, 'Skull Small Hall ES', Nrml).dir(Ea, 0x56, Bot, High).pos(3), + create_door(player, 'Skull Small Hall WS', Intr).dir(We, 0x56, Bot, High).pos(2), + create_door(player, 'Skull 2 West Lobby ES', Intr).dir(Ea, 0x56, Bot, High).pos(2), + create_door(player, 'Skull 2 West Lobby NW', Intr).dir(No, 0x56, Left, High).small_key().pos(0), + create_door(player, 'Skull X Room SW', Intr).dir(So, 0x56, Left, High).small_key().pos(0), create_door(player, 'Skull Back Drop Star Path', Lgcl), - create_door(player, 'Skull 3 Lobby NW', Nrml).dir(Direction.North, 0x59, Left, High).small_key().pos(0), - create_door(player, 'Skull 3 Lobby WN', Intr).dir(Direction.West, 0x59, Top, High).pos(2), - create_door(player, 'Skull East Bridge EN', Intr).dir(Direction.East, 0x59, Top, High).pos(2), - create_door(player, 'Skull East Bridge ES', Intr).dir(Direction.East, 0x59, Bot, High).pos(3), - create_door(player, 'Skull West Bridge Nook WS', Intr).dir(Direction.West, 0x59, Bot, High).pos(3), - create_door(player, 'Skull Star Pits SW', Nrml).dir(Direction.South, 0x49, Left, High).small_key().pos(2), - create_door(player, 'Skull Star Pits WS', Intr).dir(Direction.West, 0x49, Bot, High).pos(3), - create_door(player, 'Skull Torch Room ES', Intr).dir(Direction.East, 0x49, Bot, High).pos(3), - create_door(player, 'Skull Torch Room EN', Intr).dir(Direction.East, 0x49, Top, High).pos(1), - create_door(player, 'Skull Vines WN', Intr).dir(Direction.West, 0x49, Top, High).pos(1), - create_door(player, 'Skull Vines NW', Nrml).dir(Direction.North, 0x49, Left, High).pos(0), - create_door(player, 'Skull Spike Corner SW', Nrml).dir(Direction.South, 0x39, Left, High).no_exit().trap(0x4).pos(0), - create_door(player, 'Skull Spike Corner WS', Intr).dir(Direction.West, 0x39, Bot, High).small_key().pos(1), - create_door(player, 'Skull Final Drop ES', Intr).dir(Direction.East, 0x39, Bot, High).small_key().pos(1), + create_door(player, 'Skull 3 Lobby NW', Nrml).dir(No, 0x59, Left, High).small_key().pos(0), + create_door(player, 'Skull 3 Lobby WN', Intr).dir(We, 0x59, Top, High).pos(2), + create_door(player, 'Skull East Bridge EN', Intr).dir(Ea, 0x59, Top, High).pos(2), + create_door(player, 'Skull East Bridge ES', Intr).dir(Ea, 0x59, Bot, High).pos(3), + create_door(player, 'Skull West Bridge Nook WS', Intr).dir(We, 0x59, Bot, High).pos(3), + create_door(player, 'Skull Star Pits SW', Nrml).dir(So, 0x49, Left, High).small_key().pos(2), + create_door(player, 'Skull Star Pits WS', Intr).dir(We, 0x49, Bot, High).pos(3), + create_door(player, 'Skull Torch Room ES', Intr).dir(Ea, 0x49, Bot, High).pos(3), + create_door(player, 'Skull Torch Room EN', Intr).dir(Ea, 0x49, Top, High).pos(1), + create_door(player, 'Skull Vines WN', Intr).dir(We, 0x49, Top, High).pos(1), + create_door(player, 'Skull Vines NW', Nrml).dir(No, 0x49, Left, High).pos(0), + create_door(player, 'Skull Spike Corner SW', Nrml).dir(So, 0x39, Left, High).no_exit().trap(0x4).pos(0), + create_door(player, 'Skull Spike Corner WS', Intr).dir(We, 0x39, Bot, High).small_key().pos(1), + create_door(player, 'Skull Final Drop ES', Intr).dir(Ea, 0x39, Bot, High).small_key().pos(1), create_door(player, 'Skull Final Drop Hole', Hole), ] create_paired_doors(world, player) diff --git a/Dungeons.py b/Dungeons.py index 3223e718..af53a5d7 100644 --- a/Dungeons.py +++ b/Dungeons.py @@ -170,16 +170,19 @@ hyrule_castle_regions = [ 'Hyrule Castle West Hall', 'Hyrule Castle Back Hall', 'Hyrule Castle Throne Room', 'Hyrule Dungeon Map Room', 'Hyrule Dungeon North Abyss', 'Hyrule Dungeon North Abyss Catwalk', 'Hyrule Dungeon South Abyss', 'Hyrule Dungeon South Abyss Catwalk', 'Hyrule Dungeon Guardroom', 'Hyrule Dungeon Armory Main', - 'Hyrule Dungeon Armory North Branch', 'Hyrule Dungeon Staircase', 'Hyrule Dungeon Cellblock', - 'Sewers Behind Tapestry', 'Sewers Rope Room', 'Sewers Dark Cross', 'Sewers Water', 'Sewers Key Rat', - 'Sewers Secret Room Blocked Path', 'Sewers Secret Room', 'Sewers Pull Switch', 'Sanctuary' + 'Hyrule Dungeon Armory Boomerang', 'Hyrule Dungeon Armory North Branch', 'Hyrule Dungeon Staircase', + 'Hyrule Dungeon Cellblock', 'Sewers Behind Tapestry', 'Sewers Rope Room', 'Sewers Dark Cross', 'Sewers Water', + 'Sewers Key Rat', 'Sewers Rat Path', 'Sewers Secret Room Blocked Path', 'Sewers Secret Room', + 'Sewers Yet More Rats', 'Sewers Pull Switch', 'Sanctuary' ] eastern_regions = [ - 'Eastern Lobby', 'Eastern Cannonball', 'Eastern Cannonball Ledge', 'Eastern Courtyard Ledge', 'Eastern Map Area', - 'Eastern Compass Area', 'Eastern Hint Tile Blocked Path', 'Eastern Courtyard', 'Eastern Fairies', - 'Eastern Map Valley', 'Eastern Dark Square', 'Eastern Big Key', 'Eastern Darkness', 'Eastern Attic Start', - 'Eastern Attic Switches', 'Eastern Eyegores', 'Eastern Boss' + 'Eastern Lobby', 'Eastern Lobby Bridge', 'Eastern Lobby Left Ledge', 'Eastern Lobby Right Ledge', + 'Eastern Cannonball', 'Eastern Cannonball Ledge', 'Eastern Courtyard Ledge', 'Eastern East Wing', + 'Eastern Pot Switch', 'Eastern Map Balcony', 'Eastern Map Room', 'Eastern West Wing', 'Eastern Stalfos Spawn', + 'Eastern Compass Room', 'Eastern Hint Tile', 'Eastern Hint Tile Blocked Path', 'Eastern Courtyard', + 'Eastern Fairies', 'Eastern Map Valley', 'Eastern Dark Square', 'Eastern Big Key', 'Eastern Darkness', + 'Eastern Attic Start', 'Eastern Attic Switches', 'Eastern Eyegores', 'Eastern Boss' ] desert_regions = [ diff --git a/Regions.py b/Regions.py index 6d054080..4743f4a7 100644 --- a/Regions.py +++ b/Regions.py @@ -251,58 +251,75 @@ def create_regions(world, player): create_cave_region(player, 'Bottom of Pyramid', 'a drop\'s exit', None, ['Pyramid Exit']), create_dw_region(player, 'Pyramid Ledge', None, ['Pyramid Entrance', 'Pyramid Drop']), - create_dungeon_region(player, 'Hyrule Castle Lobby', 'A dungeon', None, ['Hyrule Castle Lobby W', 'Hyrule Castle Lobby E', + create_dungeon_region(player, 'Hyrule Castle Lobby', 'Hyrule Castle', None, ['Hyrule Castle Lobby W', 'Hyrule Castle Lobby E', 'Hyrule Castle Lobby WN', 'Hyrule Castle Lobby North Stairs', 'Hyrule Castle Exit (South)']), - create_dungeon_region(player, 'Hyrule Castle West Lobby', 'A dungeon', None, ['Hyrule Castle West Lobby E', 'Hyrule Castle West Lobby N', + create_dungeon_region(player, 'Hyrule Castle West Lobby', 'Hyrule Castle', None, ['Hyrule Castle West Lobby E', 'Hyrule Castle West Lobby N', 'Hyrule Castle West Lobby EN', 'Hyrule Castle Exit (West)']), - create_dungeon_region(player, 'Hyrule Castle East Lobby', 'A dungeon', None, ['Hyrule Castle East Lobby W', 'Hyrule Castle East Lobby N', + create_dungeon_region(player, 'Hyrule Castle East Lobby', 'Hyrule Castle', None, ['Hyrule Castle East Lobby W', 'Hyrule Castle East Lobby N', 'Hyrule Castle East Lobby NW', 'Hyrule Castle Exit (East)']), - create_dungeon_region(player, 'Hyrule Castle East Hall', 'A dungeon', None, ['Hyrule Castle East Hall W', 'Hyrule Castle East Hall S', + create_dungeon_region(player, 'Hyrule Castle East Hall', 'Hyrule Castle', None, ['Hyrule Castle East Hall W', 'Hyrule Castle East Hall S', 'Hyrule Castle East Hall SW']), - create_dungeon_region(player, 'Hyrule Castle West Hall', 'A dungeon', None, ['Hyrule Castle West Hall E', 'Hyrule Castle West Hall S']), - create_dungeon_region(player, 'Hyrule Castle Back Hall', 'A dungeon', None, ['Hyrule Castle Back Hall E', 'Hyrule Castle Back Hall W', 'Hyrule Castle Back Hall Down Stairs']), - create_dungeon_region(player, 'Hyrule Castle Throne Room', 'A dungeon', None, ['Hyrule Castle Throne Room N', 'Hyrule Castle Throne Room South Stairs']), + create_dungeon_region(player, 'Hyrule Castle West Hall', 'Hyrule Castle', None, ['Hyrule Castle West Hall E', 'Hyrule Castle West Hall S']), + create_dungeon_region(player, 'Hyrule Castle Back Hall', 'Hyrule Castle', None, ['Hyrule Castle Back Hall E', 'Hyrule Castle Back Hall W', 'Hyrule Castle Back Hall Down Stairs']), + create_dungeon_region(player, 'Hyrule Castle Throne Room', 'Hyrule Castle', None, ['Hyrule Castle Throne Room N', 'Hyrule Castle Throne Room South Stairs']), - create_dungeon_region(player, 'Hyrule Dungeon Map Room', 'A dungeon', ['Hyrule Castle - Map Chest', 'Hyrule Castle - Map Guard Key Drop'], ['Hyrule Dungeon Map Room Key Door S', 'Hyrule Dungeon Map Room Up Stairs']), - create_dungeon_region(player, 'Hyrule Dungeon North Abyss', 'A dungeon', None, ['Hyrule Dungeon North Abyss South Edge', 'Hyrule Dungeon North Abyss Key Door N']), - create_dungeon_region(player, 'Hyrule Dungeon North Abyss Catwalk', 'A dungeon', None, ['Hyrule Dungeon North Abyss Catwalk Edge', 'Hyrule Dungeon North Abyss Catwalk Dropdown']), - create_dungeon_region(player, 'Hyrule Dungeon South Abyss', 'A dungeon', None, ['Hyrule Dungeon South Abyss North Edge', 'Hyrule Dungeon South Abyss West Edge']), - create_dungeon_region(player, 'Hyrule Dungeon South Abyss Catwalk', 'A dungeon', None, ['Hyrule Dungeon South Abyss Catwalk North Edge', 'Hyrule Dungeon South Abyss Catwalk West Edge']), - create_dungeon_region(player, 'Hyrule Dungeon Guardroom', 'A dungeon', None, ['Hyrule Dungeon Guardroom Catwalk Edge', 'Hyrule Dungeon Guardroom Abyss Edge', 'Hyrule Dungeon Guardroom N']), - create_dungeon_region(player, 'Hyrule Dungeon Armory Main', 'A dungeon', ['Hyrule Castle - Boomerang Chest', 'Hyrule Castle - Boomerang Guard Key Drop'], ['Hyrule Dungeon Armory S', 'Hyrule Dungeon Armory Interior Key Door N']), - create_dungeon_region(player, 'Hyrule Dungeon Armory North Branch', 'A dungeon', None, ['Hyrule Dungeon Armory Interior Key Door S', 'Hyrule Dungeon Armory Down Stairs']), - create_dungeon_region(player, 'Hyrule Dungeon Staircase', 'A dungeon', None, ['Hyrule Dungeon Staircase Up Stairs', 'Hyrule Dungeon Staircase Down Stairs']), - create_dungeon_region(player, 'Hyrule Dungeon Cellblock', 'A dungeon', ['Hyrule Castle - Zelda\'s Chest'], ['Hyrule Dungeon Cellblock Up Stairs']), + create_dungeon_region(player, 'Hyrule Dungeon Map Room', 'Hyrule Castle', ['Hyrule Castle - Map Chest', 'Hyrule Castle - Map Guard Key Drop'], ['Hyrule Dungeon Map Room Key Door S', 'Hyrule Dungeon Map Room Up Stairs']), + create_dungeon_region(player, 'Hyrule Dungeon North Abyss', 'Hyrule Castle', None, ['Hyrule Dungeon North Abyss South Edge', 'Hyrule Dungeon North Abyss Key Door N']), + create_dungeon_region(player, 'Hyrule Dungeon North Abyss Catwalk', 'Hyrule Castle', None, ['Hyrule Dungeon North Abyss Catwalk Edge', 'Hyrule Dungeon North Abyss Catwalk Dropdown']), + create_dungeon_region(player, 'Hyrule Dungeon South Abyss', 'Hyrule Castle', None, ['Hyrule Dungeon South Abyss North Edge', 'Hyrule Dungeon South Abyss West Edge']), + create_dungeon_region(player, 'Hyrule Dungeon South Abyss Catwalk', 'Hyrule Castle', None, ['Hyrule Dungeon South Abyss Catwalk North Edge', 'Hyrule Dungeon South Abyss Catwalk West Edge']), + create_dungeon_region(player, 'Hyrule Dungeon Guardroom', 'Hyrule Castle', None, ['Hyrule Dungeon Guardroom Catwalk Edge', 'Hyrule Dungeon Guardroom Abyss Edge', 'Hyrule Dungeon Guardroom N']), + create_dungeon_region(player, 'Hyrule Dungeon Armory Main', 'Hyrule Castle', None, ['Hyrule Dungeon Armory S', 'Hyrule Dungeon Armory Interior Key Door N', 'Hyrule Dungeon Armory ES']), + create_dungeon_region(player, 'Hyrule Dungeon Armory Boomerang', 'Hyrule Castle', ['Hyrule Castle - Boomerang Chest', 'Hyrule Castle - Boomerang Guard Key Drop'], ['Hyrule Dungeon Armory Boomerang WS']), + create_dungeon_region(player, 'Hyrule Dungeon Armory North Branch', 'Hyrule Castle', None, ['Hyrule Dungeon Armory Interior Key Door S', 'Hyrule Dungeon Armory Down Stairs']), + create_dungeon_region(player, 'Hyrule Dungeon Staircase', 'Hyrule Castle', None, ['Hyrule Dungeon Staircase Up Stairs', 'Hyrule Dungeon Staircase Down Stairs']), + create_dungeon_region(player, 'Hyrule Dungeon Cellblock', 'Hyrule Castle', ['Hyrule Castle - Zelda\'s Chest'], ['Hyrule Dungeon Cellblock Up Stairs']), - create_dungeon_region(player, 'Sewers Behind Tapestry', 'A dungeon', None, ['Sewers Behind Tapestry S', 'Sewers Behind Tapestry Down Stairs']), - create_dungeon_region(player, 'Sewers Rope Room', 'A dungeon', None, ['Sewers Rope Room Up Stairs', 'Sewers Rope Room North Stairs']), - create_dungeon_region(player, 'Sewers Dark Cross', 'A dungeon', ['Sewers - Dark Cross'], ['Sewers Dark Cross Key Door N', 'Sewers Dark Cross South Stairs']), - create_dungeon_region(player, 'Sewers Water', 'A dungeon', None, ['Sewers Dark Cross Key Door S', 'Sewers Water W']), - create_dungeon_region(player, 'Sewers Key Rat', 'A dungeon', ['Hyrule Castle - Key Rat Key Drop'], ['Sewers Key Rat E', 'Sewers Key Rat Key Door N']), - create_dungeon_region(player, 'Sewers Secret Room Blocked Path', 'A dungeon', None, ['Sewers Secret Room Up Stairs']), - create_dungeon_region(player, 'Sewers Secret Room', 'A dungeon', ['Sewers - Secret Room - Left', 'Sewers - Secret Room - Middle', 'Sewers - Secret Room - Right'], - ['Sewers Secret Room Key Door S', 'Sewers Secret Room Push Block']), - create_dungeon_region(player, 'Sewers Pull Switch', 'A dungeon', None, ['Sewers Pull Switch Down Stairs', 'Sewers Pull Switch S']), - create_dungeon_region(player, 'Sanctuary', 'A dungeon', ['Sanctuary'], ['Sanctuary Exit', 'Sanctuary N']), + create_dungeon_region(player, 'Sewers Behind Tapestry', 'Hyrule Castle', None, ['Sewers Behind Tapestry S', 'Sewers Behind Tapestry Down Stairs']), + create_dungeon_region(player, 'Sewers Rope Room', 'Hyrule Castle', None, ['Sewers Rope Room Up Stairs', 'Sewers Rope Room North Stairs']), + create_dungeon_region(player, 'Sewers Dark Cross', 'Hyrule Castle', ['Sewers - Dark Cross'], ['Sewers Dark Cross Key Door N', 'Sewers Dark Cross South Stairs']), + create_dungeon_region(player, 'Sewers Water', 'Hyrule Castle', None, ['Sewers Dark Cross Key Door S', 'Sewers Water W']), + create_dungeon_region(player, 'Sewers Key Rat', 'Hyrule Castle', ['Hyrule Castle - Key Rat Key Drop'], ['Sewers Key Rat E', 'Sewers Key Rat Key Door N']), + create_dungeon_region(player, 'Sewers Secret Room Blocked Path', 'Hyrule Castle', None, ['Sewers Secret Room Up Stairs']), + create_dungeon_region(player, 'Sewers Rat Path', 'Hyrule Castle', None, ['Sewers Secret Room Key Door S', 'Sewers Secret Room Push Block', 'Sewers Rat Path WS', 'Sewers Rat Path WN']), + create_dungeon_region(player, 'Sewers Secret Room', 'Hyrule Castle', ['Sewers - Secret Room - Left', 'Sewers - Secret Room - Middle', 'Sewers - Secret Room - Right'], + ['Sewers Secret Room ES', 'Sewers Secret Room EN']), + create_dungeon_region(player, 'Sewers Yet More Rats', 'Hyrule Castle', None, ['Sewers Pull Switch Down Stairs', 'Sewers Yet More Rats S']), + create_dungeon_region(player, 'Sewers Pull Switch', 'Hyrule Castle', None, ['Sewers Pull Switch N', 'Sewers Pull Switch S']), + create_dungeon_region(player, 'Sanctuary', 'Hyrule Castle', ['Sanctuary'], ['Sanctuary Exit', 'Sanctuary N']), # Eastern Palace - create_dungeon_region(player, 'Eastern Lobby', 'Eastern Palace', None, ['Eastern Lobby N', 'Eastern Palace Exit']), + create_dungeon_region(player, 'Eastern Lobby', 'Eastern Palace', None, ['Eastern Lobby N', 'Eastern Palace Exit', 'Eastern Lobby NW', 'Eastern Lobby NE']), + create_dungeon_region(player, 'Eastern Lobby Bridge', 'Eastern Palace', None, ['Eastern Lobby Bridge S', 'Eastern Lobby Bridge N']), + create_dungeon_region(player, 'Eastern Lobby Left Ledge', 'Eastern Palace', None, ['Eastern Lobby Left Ledge SW']), + create_dungeon_region(player, 'Eastern Lobby Right Ledge', 'Eastern Palace', None, ['Eastern Lobby Right Ledge SE']), create_dungeon_region(player, 'Eastern Cannonball', 'Eastern Palace', ['Eastern Palace - Cannonball Chest'], ['Eastern Cannonball S', 'Eastern Cannonball N']), create_dungeon_region(player, 'Eastern Cannonball Ledge', 'Eastern Palace', None, ['Eastern Cannonball Ledge WN', 'Eastern Cannonball Ledge Key Door EN']), create_dungeon_region(player, 'Eastern Courtyard Ledge', 'Eastern Palace', None, ['Eastern Courtyard Ledge S', 'Eastern Courtyard Ledge W', 'Eastern Courtyard Ledge E']), - create_dungeon_region(player, 'Eastern Map Area', 'Eastern Palace', ['Eastern Palace - Map Chest'], ['Eastern Map Area W']), - create_dungeon_region(player, 'Eastern Compass Area', 'Eastern Palace', ['Eastern Palace - Compass Chest'], ['Eastern Compass Area E', 'Eastern Compass Area EN']), - create_dungeon_region(player, 'Eastern Hint Tile Blocked Path', 'Eastern Palace', None, ['Eastern Compass Area SW', 'Eastern Hint Tile Push Block']), + create_dungeon_region(player, 'Eastern East Wing', 'Eastern Palace', None, ['Eastern East Wing W', 'Eastern East Wing EN', 'Eastern East Wing ES']), + create_dungeon_region(player, 'Eastern Pot Switch', 'Eastern Palace', None, ['Eastern Pot Switch WN', 'Eastern Pot Switch SE']), + create_dungeon_region(player, 'Eastern Map Balcony', 'Eastern Palace', None, ['Eastern Map Balcony WS', 'Eastern Map Balcony Hook Path']), + create_dungeon_region(player, 'Eastern Map Room', 'Eastern Palace', ['Eastern Palace - Map Chest'], ['Eastern Map Room NE', 'Eastern Map Room Drop Down']), + # create_dungeon_region(player, 'Eastern Compass Area', 'Eastern Palace', ['Eastern Palace - Compass Chest'], ['Eastern Compass Area E', 'Eastern Compass Area EN']), + create_dungeon_region(player, 'Eastern West Wing', 'Eastern Palace', None, ['Eastern West Wing E', 'Eastern West Wing WS']), + create_dungeon_region(player, 'Eastern Stalfos Spawn', 'Eastern Palace', None, ['Eastern Stalfos Spawn ES', 'Eastern Stalfos Spawn NW']), + create_dungeon_region(player, 'Eastern Compass Room', 'Eastern Palace', ['Eastern Palace - Compass Chest'], ['Eastern Compass Room EN', 'Eastern Compass Room SW']), + create_dungeon_region(player, 'Eastern Hint Tile', 'Eastern Palace', None, ['Eastern Hint Tile EN', 'Eastern Hint Tile WN']), + create_dungeon_region(player, 'Eastern Hint Tile Blocked Path', 'Eastern Palace', None, ['Eastern Hint Tile Blocked Path SE', 'Eastern Hint Tile Push Block']), create_dungeon_region(player, 'Eastern Courtyard', 'Eastern Palace', ['Eastern Palace - Big Chest'], ['Eastern Courtyard WN', 'Eastern Courtyard EN', 'Eastern Courtyard N', 'Eastern Courtyard Potholes']), create_dungeon_region(player, 'Eastern Fairies', 'Eastern Palace', None, ['Eastern Fairies\' Warp']), create_dungeon_region(player, 'Eastern Map Valley', 'Eastern Palace', None, ['Eastern Map Valley WN', 'Eastern Map Valley SW']), create_dungeon_region(player, 'Eastern Dark Square', 'Eastern Palace', ['Eastern Palace - Dark Square Pot Key'], ['Eastern Dark Square NW', 'Eastern Dark Square Key Door WN']), + # todo: dark pots create_dungeon_region(player, 'Eastern Big Key', 'Eastern Palace', ['Eastern Palace - Big Key Chest'], ['Eastern Big Key EN', 'Eastern Big Key NE']), create_dungeon_region(player, 'Eastern Darkness', 'Eastern Palace', ['Eastern Palace - Dark Eyegore Key Drop'], ['Eastern Darkness S', 'Eastern Darkness Up Stairs']), + # todo: rupees create_dungeon_region(player, 'Eastern Attic Start', 'Eastern Palace', None, ['Eastern Attic Start Down Stairs', 'Eastern Attic Start WS']), create_dungeon_region(player, 'Eastern Attic Switches', 'Eastern Palace', None, ['Eastern Attic Switches ES', 'Eastern Attic Switches WS']), + # todo: cannonball create_dungeon_region(player, 'Eastern Eyegores', 'Eastern Palace', None, ['Eastern Eyegores ES', 'Eastern Eyegores NE']), + # todo: eyegores 2 create_dungeon_region(player, 'Eastern Boss', 'Eastern Palace', ['Eastern Palace - Boss', 'Eastern Palace - Prize'], ['Eastern Boss SE']), # Desert Palace diff --git a/Rules.py b/Rules.py index b586246d..04026254 100644 --- a/Rules.py +++ b/Rules.py @@ -266,6 +266,7 @@ def global_rules(world, player): # Eastern Palace # Eyegore room needs a bow set_rule(world.get_entrance('Eastern Eyegores NE', player), lambda state: state.can_shoot_arrows(player)) + set_rule(world.get_entrance('Eastern Map Balcony Hook Path', player), lambda state: state.has('Hookshot', player)) # Big key rules set_rule(world.get_location('Eastern Palace - Big Chest', player), lambda state: state.has('Big Key (Eastern Palace)', player)) if world.accessibility == 'locations': From b27dd2f64f5bfe9910b27abd15e5395b96d63ae6 Mon Sep 17 00:00:00 2001 From: aerinon Date: Thu, 24 Oct 2019 22:45:03 -0600 Subject: [PATCH 2/2] Finishing up interior doors for Eastern --- DoorShuffle.py | 11 +++++++---- Doors.py | 20 ++++++++++++++------ Dungeons.py | 5 +++-- Regions.py | 16 ++++++++-------- Rules.py | 7 ++++++- 5 files changed, 38 insertions(+), 21 deletions(-) diff --git a/DoorShuffle.py b/DoorShuffle.py index bcddc3fc..9d69a32e 100644 --- a/DoorShuffle.py +++ b/DoorShuffle.py @@ -1786,7 +1786,10 @@ interior_doors = [ ('Eastern West Wing WS', 'Eastern Stalfos Spawn ES'), ('Eastern Stalfos Spawn NW', 'Eastern Compass Room SW'), ('Eastern Compass Room EN', 'Eastern Hint Tile WN'), - # ('', ''), + ('Eastern Dark Square EN', 'Eastern Dark Pots WN'), + ('Eastern Darkness NE', 'Eastern Rupees SE'), + ('Eastern False Switches WS', 'Eastern Cannonball Hell ES'), + ('Eastern Single Eyegore NE', 'Eastern Duo Eyegores SE'), ('Desert East Lobby WS', 'Desert East Wing ES'), ('Desert East Wing Key Door EN', 'Desert Compass Key Door WN'), ('Desert North Hall NW', 'Desert Map SW'), @@ -1901,8 +1904,8 @@ default_door_connections = [ ('Eastern Courtyard EN', 'Eastern Map Valley WN'), ('Eastern Courtyard N', 'Eastern Darkness S'), ('Eastern Map Valley SW', 'Eastern Dark Square NW'), - ('Eastern Attic Start WS', 'Eastern Attic Switches ES'), - ('Eastern Attic Switches WS', 'Eastern Eyegores ES'), + ('Eastern Attic Start WS', 'Eastern False Switches ES'), + ('Eastern Cannonball Hell WS', 'Eastern Single Eyegore ES'), ('Desert Compass NW', 'Desert Cannonball S'), ('Desert Beamos Hall NE', 'Desert Tiles 2 SE'), ('PoD Middle Cage N', 'PoD Pit Room S'), @@ -1939,7 +1942,7 @@ default_door_connections = [ # ('', ''), default_one_way_connections = [ ('Sewers Pull Switch S', 'Sanctuary N'), - ('Eastern Eyegores NE', 'Eastern Boss SE'), + ('Eastern Duo Eyegores NE', 'Eastern Boss SE'), ('Desert Wall Slide NW', 'Desert Boss SW'), ('Tower Altar NW', 'Tower Agahnim 1 SW'), ('PoD Harmless Hellway SE', 'PoD Arena Main NE'), diff --git a/Doors.py b/Doors.py index fccecef8..6f6c29c6 100644 --- a/Doors.py +++ b/Doors.py @@ -154,19 +154,27 @@ def create_doors(world, player): create_door(player, 'Eastern Fairies\' Warp', Warp), create_door(player, 'Eastern Map Valley WN', Nrml).dir(We, 0xaa, Top, Low).pos(1), create_door(player, 'Eastern Map Valley SW', Nrml).dir(So, 0xaa, Left, High).pos(5), - create_door(player, 'Eastern Dark Square NW', Nrml).dir(No, 0xba, Left, High).pos(1), + create_door(player, 'Eastern Dark Square NW', Nrml).dir(No, 0xba, Left, High).trap(0x2).pos(1), create_door(player, 'Eastern Dark Square Key Door WN', Nrml).dir(We, 0xba, Top, High).small_key().pos(0), + create_door(player, 'Eastern Dark Square EN', Intr).dir(Ea, 0xba, Top, High).pos(2), + create_door(player, 'Eastern Dark Pots WN', Intr).dir(We, 0xba, Top, High).pos(2), create_door(player, 'Eastern Big Key EN', Nrml).dir(Ea, 0xb8, Top, High).pos(1), create_door(player, 'Eastern Big Key NE', Nrml).dir(No, 0xb8, Right, High).big_key().pos(0), - ugly_door(create_door(player, 'Eastern Darkness S', Nrml).dir(So, 0x99, Mid, High)).small_key().pos(1), + create_door(player, 'Eastern Darkness S', Nrml).dir(So, 0x99, Mid, High).small_key().pos(1), + create_door(player, 'Eastern Darkness NE', Intr).dir(No, 0x99, Right, High).pos(2), + create_door(player, 'Eastern Rupees SE', Intr).dir(So, 0x99, Right, High).pos(2), # Up is a keydoor and down is not. Only the up stairs should be considered a key door for now. create_door(player, 'Eastern Darkness Up Stairs', Sprl).dir(Up, 0x99, 0, HTH).ss(Z, 0x1a, 0x6c, False, True).small_key().pos(0), create_door(player, 'Eastern Attic Start Down Stairs', Sprl).dir(Dn, 0xda, 0, HTH).ss(Z, 0x11, 0x80, True, True), create_door(player, 'Eastern Attic Start WS', Nrml).dir(We, 0xda, Bot, High).trap(0x4).pos(0), - create_door(player, 'Eastern Attic Switches ES', Nrml).dir(Ea, 0xd9, Bot, High).trap(0x1).pos(2), - create_door(player, 'Eastern Attic Switches WS', Nrml).dir(We, 0xd9, Bot, High).trap(0x4).pos(0), - create_door(player, 'Eastern Eyegores ES', Nrml).dir(Ea, 0xd8, Bot, High).pos(2), - create_door(player, 'Eastern Eyegores NE', Nrml).dir(No, 0xd8, Right, High).trap(0x4).pos(0), + create_door(player, 'Eastern False Switches ES', Nrml).dir(Ea, 0xd9, Bot, High).trap(0x1).pos(2), + create_door(player, 'Eastern False Switches WS', Intr).dir(We, 0xd9, Bot, High).pos(1), + create_door(player, 'Eastern Cannonball Hell ES', Intr).dir(Ea, 0xd9, Bot, High).pos(1), + create_door(player, 'Eastern Cannonball Hell WS', Nrml).dir(We, 0xd9, Bot, High).trap(0x4).pos(0), + create_door(player, 'Eastern Single Eyegore ES', Intr).dir(Ea, 0xd8, Bot, High).pos(2), + create_door(player, 'Eastern Single Eyegore NE', Intr).dir(No, 0xd8, Right, High).pos(1), + create_door(player, 'Eastern Duo Eyegores SE', Intr).dir(So, 0xd8, Right, High).pos(1), + create_door(player, 'Eastern Duo Eyegores NE', Intr).dir(No, 0xd8, Right, High).trap(0x4).pos(0), create_door(player, 'Eastern Boss SE', Nrml).dir(So, 0xc8, Right, High).no_exit().trap(0x4).pos(0), # Desert Palace diff --git a/Dungeons.py b/Dungeons.py index af53a5d7..ac14cc26 100644 --- a/Dungeons.py +++ b/Dungeons.py @@ -181,8 +181,9 @@ eastern_regions = [ 'Eastern Cannonball', 'Eastern Cannonball Ledge', 'Eastern Courtyard Ledge', 'Eastern East Wing', 'Eastern Pot Switch', 'Eastern Map Balcony', 'Eastern Map Room', 'Eastern West Wing', 'Eastern Stalfos Spawn', 'Eastern Compass Room', 'Eastern Hint Tile', 'Eastern Hint Tile Blocked Path', 'Eastern Courtyard', - 'Eastern Fairies', 'Eastern Map Valley', 'Eastern Dark Square', 'Eastern Big Key', 'Eastern Darkness', - 'Eastern Attic Start', 'Eastern Attic Switches', 'Eastern Eyegores', 'Eastern Boss' + 'Eastern Fairies', 'Eastern Map Valley', 'Eastern Dark Square', 'Eastern Dark Pots', 'Eastern Big Key', + 'Eastern Darkness', 'Eastern Rupees', 'Eastern Attic Start', 'Eastern False Switches', 'Eastern Cannonball Hell', + 'Eastern Single Eyegore', 'Eastern Duo Eyegores', 'Eastern Boss' ] desert_regions = [ diff --git a/Regions.py b/Regions.py index 4743f4a7..d0d7d280 100644 --- a/Regions.py +++ b/Regions.py @@ -310,16 +310,16 @@ def create_regions(world, player): create_dungeon_region(player, 'Eastern Courtyard', 'Eastern Palace', ['Eastern Palace - Big Chest'], ['Eastern Courtyard WN', 'Eastern Courtyard EN', 'Eastern Courtyard N', 'Eastern Courtyard Potholes']), create_dungeon_region(player, 'Eastern Fairies', 'Eastern Palace', None, ['Eastern Fairies\' Warp']), create_dungeon_region(player, 'Eastern Map Valley', 'Eastern Palace', None, ['Eastern Map Valley WN', 'Eastern Map Valley SW']), - create_dungeon_region(player, 'Eastern Dark Square', 'Eastern Palace', ['Eastern Palace - Dark Square Pot Key'], ['Eastern Dark Square NW', 'Eastern Dark Square Key Door WN']), - # todo: dark pots + create_dungeon_region(player, 'Eastern Dark Square', 'Eastern Palace', None, ['Eastern Dark Square NW', 'Eastern Dark Square Key Door WN', 'Eastern Dark Square EN']), + create_dungeon_region(player, 'Eastern Dark Pots', 'Eastern Palace', ['Eastern Palace - Dark Square Pot Key'], ['Eastern Dark Pots WN']), create_dungeon_region(player, 'Eastern Big Key', 'Eastern Palace', ['Eastern Palace - Big Key Chest'], ['Eastern Big Key EN', 'Eastern Big Key NE']), - create_dungeon_region(player, 'Eastern Darkness', 'Eastern Palace', ['Eastern Palace - Dark Eyegore Key Drop'], ['Eastern Darkness S', 'Eastern Darkness Up Stairs']), - # todo: rupees + create_dungeon_region(player, 'Eastern Darkness', 'Eastern Palace', ['Eastern Palace - Dark Eyegore Key Drop'], ['Eastern Darkness S', 'Eastern Darkness Up Stairs', 'Eastern Darkness NE']), + create_dungeon_region(player, 'Eastern Rupees', 'Eastern Palace', None, ['Eastern Rupees SE']), create_dungeon_region(player, 'Eastern Attic Start', 'Eastern Palace', None, ['Eastern Attic Start Down Stairs', 'Eastern Attic Start WS']), - create_dungeon_region(player, 'Eastern Attic Switches', 'Eastern Palace', None, ['Eastern Attic Switches ES', 'Eastern Attic Switches WS']), - # todo: cannonball - create_dungeon_region(player, 'Eastern Eyegores', 'Eastern Palace', None, ['Eastern Eyegores ES', 'Eastern Eyegores NE']), - # todo: eyegores 2 + create_dungeon_region(player, 'Eastern False Switches', 'Eastern Palace', None, ['Eastern False Switches ES', 'Eastern False Switches WS']), + create_dungeon_region(player, 'Eastern Cannonball Hell', 'Eastern Palace', None, ['Eastern Cannonball Hell ES', 'Eastern Cannonball Hell WS']), + create_dungeon_region(player, 'Eastern Single Eyegore', 'Eastern Palace', None, ['Eastern Single Eyegore ES', 'Eastern Single Eyegore NE']), + create_dungeon_region(player, 'Eastern Duo Eyegores', 'Eastern Palace', None, ['Eastern Duo Eyegores SE', 'Eastern Duo Eyegores NE']), create_dungeon_region(player, 'Eastern Boss', 'Eastern Palace', ['Eastern Palace - Boss', 'Eastern Palace - Prize'], ['Eastern Boss SE']), # Desert Palace diff --git a/Rules.py b/Rules.py index 04026254..554b66b2 100644 --- a/Rules.py +++ b/Rules.py @@ -265,7 +265,8 @@ def global_rules(world, player): # Eastern Palace # Eyegore room needs a bow - set_rule(world.get_entrance('Eastern Eyegores NE', player), lambda state: state.can_shoot_arrows(player)) + set_rule(world.get_entrance('Eastern Duo Eyegores NE', player), lambda state: state.can_shoot_arrows(player)) + set_rule(world.get_entrance('Eastern Single Eyegore NE', player), lambda state: state.can_shoot_arrows(player)) set_rule(world.get_entrance('Eastern Map Balcony Hook Path', player), lambda state: state.has('Hookshot', player)) # Big key rules set_rule(world.get_location('Eastern Palace - Big Chest', player), lambda state: state.has('Big Key (Eastern Palace)', player)) @@ -944,8 +945,12 @@ def no_glitches_rules(world, player): add_conditional_lamp('Palace of Darkness - Dark Maze - Bottom', 'PoD Dark Maze', 'Location') add_conditional_lamp('Eastern Dark Square NW', 'Eastern Dark Square', 'Entrance') add_conditional_lamp('Eastern Dark Square Key Door WN', 'Eastern Dark Square', 'Entrance') + add_conditional_lamp('Eastern Dark Square EN', 'Eastern Dark Square', 'Entrance') + add_conditional_lamp('Eastern Dark Pots WN', 'Eastern Dark Pots', 'Entrance') add_conditional_lamp('Eastern Darkness S', 'Eastern Darkness', 'Entrance') add_conditional_lamp('Eastern Darkness Up Stairs', 'Eastern Darkness', 'Entrance') + add_conditional_lamp('Eastern Darkness NE', 'Eastern Darkness', 'Entrance') + add_conditional_lamp('Eastern Rupees SE', 'Eastern Rupees', 'Entrance') add_conditional_lamp('Eastern Palace - Dark Square Pot Key', 'Eastern Dark Square', 'Location') add_conditional_lamp('Eastern Palace - Dark Eyegore Key Drop', 'Eastern Darkness', 'Location') if world.mode != 'inverted':