Merge branch 'BombSwitchDevUnstable' of https://github.com/StructuralMike/ALttPDoorRandomizer into StructuralMike-BombSwitchDevUnstable
This commit is contained in:
@@ -681,7 +681,33 @@ class CollectionState(object):
|
|||||||
or (self.has('Cane of Byrna', player) and (enemies < 6 or self.can_extend_magic(player)))
|
or (self.has('Cane of Byrna', player) and (enemies < 6 or self.can_extend_magic(player)))
|
||||||
or self.can_shoot_arrows(player)
|
or self.can_shoot_arrows(player)
|
||||||
or self.has('Fire Rod', player)
|
or self.has('Fire Rod', player)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# In the future, this can be used to check if the player starts without bombs
|
||||||
|
def can_use_bombs(self, player):
|
||||||
|
StartingBombs = True
|
||||||
|
return StartingBombs or self.has('Bomb Upgrade (+10)', player)
|
||||||
|
|
||||||
|
def can_hit_crystal(self, player):
|
||||||
|
return (self.can_use_bombs(player)
|
||||||
|
or self.can_shoot_arrows(player)
|
||||||
|
or self.has_blunt_weapon(player)
|
||||||
|
or self.has('Blue Boomerang', player)
|
||||||
|
or self.has('Red Boomerang', player)
|
||||||
|
or self.has('Hookshot', player)
|
||||||
|
or self.has('Fire Rod', player)
|
||||||
|
or self.has('Ice Rod', player)
|
||||||
|
or self.has('Cane of Somaria', player)
|
||||||
|
or self.has('Cane of Byrna', player))
|
||||||
|
|
||||||
|
def can_hit_crystal_through_barrier(self, player):
|
||||||
|
return (self.can_use_bombs(player)
|
||||||
|
or self.can_shoot_arrows(player)
|
||||||
|
or self.has('Blue Boomerang', player)
|
||||||
|
or self.has('Red Boomerang', player)
|
||||||
|
or self.has('Fire Rod', player)
|
||||||
|
or self.has('Ice Rod', player)
|
||||||
|
or self.has('Cane of Somaria', player))
|
||||||
|
|
||||||
def can_shoot_arrows(self, player):
|
def can_shoot_arrows(self, player):
|
||||||
if self.world.retro[player]:
|
if self.world.retro[player]:
|
||||||
@@ -1329,6 +1355,11 @@ class Door(object):
|
|||||||
self.edge_width = width
|
self.edge_width = width
|
||||||
return self
|
return self
|
||||||
|
|
||||||
|
def kind(self, world):
|
||||||
|
if self.roomIndex != -1 and self.doorListPos != -1:
|
||||||
|
return world.get_room(self.roomIndex, self.player).kind(self)
|
||||||
|
return None
|
||||||
|
|
||||||
def small_key(self):
|
def small_key(self):
|
||||||
self.smallKey = True
|
self.smallKey = True
|
||||||
return self
|
return self
|
||||||
|
|||||||
@@ -39,8 +39,7 @@ def MoldormDefeatRule(state, player):
|
|||||||
return state.has_blunt_weapon(player)
|
return state.has_blunt_weapon(player)
|
||||||
|
|
||||||
def HelmasaurKingDefeatRule(state, player):
|
def HelmasaurKingDefeatRule(state, player):
|
||||||
# TODO: technically possible with the hammer
|
return (state.has('Hammer', player) or state.can_use_bombs(player)) and (state.has_sword(player) or state.can_shoot_arrows(player))
|
||||||
return state.has_sword(player) or state.can_shoot_arrows(player)
|
|
||||||
|
|
||||||
def ArrghusDefeatRule(state, player):
|
def ArrghusDefeatRule(state, player):
|
||||||
if not state.has('Hookshot', player):
|
if not state.has('Hookshot', player):
|
||||||
|
|||||||
199
DoorShuffle.py
199
DoorShuffle.py
@@ -1957,6 +1957,7 @@ def determine_init_crystal(initial, state, start_regions):
|
|||||||
return CrystalBarrier.Orange
|
return CrystalBarrier.Orange
|
||||||
else:
|
else:
|
||||||
raise Exception(f'Can\'t get to {start_region.name} from initial state')
|
raise Exception(f'Can\'t get to {start_region.name} from initial state')
|
||||||
|
# raise Exception(f'Can\'t get to {start_region.name} from initial state\n{state.dungeon}\n{state.found_locations}')
|
||||||
|
|
||||||
|
|
||||||
def explore_state(state, world, player):
|
def explore_state(state, world, player):
|
||||||
@@ -2034,27 +2035,83 @@ logical_connections = [
|
|||||||
('Desert Main Lobby Right Path', 'Desert Right Alcove'),
|
('Desert Main Lobby Right Path', 'Desert Right Alcove'),
|
||||||
('Desert Left Alcove Path', 'Desert Main Lobby'),
|
('Desert Left Alcove Path', 'Desert Main Lobby'),
|
||||||
('Desert Right Alcove Path', 'Desert Main Lobby'),
|
('Desert Right Alcove Path', 'Desert Main Lobby'),
|
||||||
|
|
||||||
|
('Hera Lobby to Front Barrier - Blue', 'Hera Front'),
|
||||||
|
('Hera Front to Lobby Barrier - Blue', 'Hera Lobby'),
|
||||||
|
('Hera Lobby to Crystal', 'Hera Lobby - Crystal'),
|
||||||
|
('Hera Lobby Crystal Exit', 'Hera Lobby'),
|
||||||
|
('Hera Front to Crystal', 'Hera Front - Crystal'),
|
||||||
|
('Hera Front to Back Bypass', 'Hera Back'),
|
||||||
|
('Hera Front Crystal Exit', 'Hera Front'),
|
||||||
|
('Hera Front to Down Stairs Barrier - Blue', 'Hera Down Stairs Landing'),
|
||||||
|
('Hera Front to Up Stairs Barrier - Orange', 'Hera Up Stairs Landing'),
|
||||||
|
('Hera Front to Back Barrier - Orange', 'Hera Back'),
|
||||||
|
('Hera Down Stairs to Front Barrier - Blue', 'Hera Front'),
|
||||||
|
('Hera Down Stairs Landing to Ranged Crystal', 'Hera Down Stairs Landing - Ranged Crystal'),
|
||||||
|
('Hera Down Stairs Landing Ranged Crystal Exit', 'Hera Down Stairs Landing'),
|
||||||
|
('Hera Up Stairs to Front Barrier - Orange', 'Hera Front'),
|
||||||
|
('Hera Up Stairs Landing to Ranged Crystal', 'Hera Up Stairs Landing - Ranged Crystal'),
|
||||||
|
('Hera Up Stairs Landing Ranged Crystal Exit', 'Hera Up Stairs Landing'),
|
||||||
|
('Hera Back to Front Barrier - Orange', 'Hera Front'),
|
||||||
|
('Hera Back to Ranged Crystal', 'Hera Back - Ranged Crystal'),
|
||||||
|
('Hera Back Ranged Crystal Exit', 'Hera Back'),
|
||||||
|
('Hera Basement Cage to Crystal', 'Hera Basement Cage - Crystal'),
|
||||||
|
('Hera Basement Cage Crystal Exit', 'Hera Basement Cage'),
|
||||||
|
('Hera Tridorm to Crystal', 'Hera Tridorm - Crystal'),
|
||||||
|
('Hera Tridorm Crystal Exit', 'Hera Tridorm'),
|
||||||
|
('Hera Startile Wide to Crystal', 'Hera Startile Wide - Crystal'),
|
||||||
|
('Hera Startile Wide Crystal Exit', 'Hera Startile Wide'),
|
||||||
('Hera Big Chest Hook Path', 'Hera Big Chest Landing'),
|
('Hera Big Chest Hook Path', 'Hera Big Chest Landing'),
|
||||||
('Hera Big Chest Landing Exit', 'Hera 4F'),
|
('Hera Big Chest Landing Exit', 'Hera 4F'),
|
||||||
|
|
||||||
('PoD Pit Room Block Path N', 'PoD Pit Room Blocked'),
|
('PoD Pit Room Block Path N', 'PoD Pit Room Blocked'),
|
||||||
('PoD Pit Room Block Path S', 'PoD Pit Room'),
|
('PoD Pit Room Block Path S', 'PoD Pit Room'),
|
||||||
('PoD Arena Bonk Path', 'PoD Arena Bridge'),
|
('PoD Arena Landing Bonk Path', 'PoD Arena Bridge'),
|
||||||
('PoD Arena Main Crystal Path', 'PoD Arena Crystal'),
|
|
||||||
('PoD Arena Crystal Path', 'PoD Arena Main'),
|
|
||||||
('PoD Arena Main Orange Barrier', 'PoD Arena North'),
|
|
||||||
('PoD Arena North Drop Down', 'PoD Arena Main'),
|
('PoD Arena North Drop Down', 'PoD Arena Main'),
|
||||||
('PoD Arena Bridge Drop Down', 'PoD Arena Main'),
|
('PoD Arena Bridge Drop Down', 'PoD Arena Main'),
|
||||||
|
('PoD Arena North to Landing Barrier - Orange', 'PoD Arena Landing'),
|
||||||
|
('PoD Arena Main to Ranged Crystal', 'PoD Arena Main - Ranged Crystal'),
|
||||||
|
('PoD Arena Main to Landing Barrier - Blue', 'PoD Arena Landing'),
|
||||||
|
('PoD Arena Main to Landing Bypass', 'PoD Arena Landing'),
|
||||||
|
('PoD Arena Main to Right Bypass', 'PoD Arena Right'),
|
||||||
|
('PoD Arena Main Ranged Crystal Exit', 'PoD Arena Main'),
|
||||||
|
('PoD Arena Bridge to Ranged Crystal', 'PoD Arena Bridge - Ranged Crystal'),
|
||||||
|
('PoD Arena Bridge Ranged Crystal Exit', 'PoD Arena Bridge'),
|
||||||
|
('PoD Arena Landing to Main Barrier - Blue', 'PoD Arena Main'),
|
||||||
|
('PoD Arena Landing to Right Barrier - Blue', 'PoD Arena Right'),
|
||||||
|
('PoD Arena Landing to North Barrier - Orange', 'PoD Arena North'),
|
||||||
|
('PoD Arena Right to Landing Barrier - Blue', 'PoD Arena Landing'),
|
||||||
|
('PoD Arena Right to Ranged Crystal', 'PoD Arena Right - Ranged Crystal'),
|
||||||
|
('PoD Arena Right Ranged Crystal Exit', 'PoD Arena Right'),
|
||||||
|
('PoD Arena Ledge to Ranged Crystal', 'PoD Arena Ledge - Ranged Crystal'),
|
||||||
|
('PoD Arena Ledge Ranged Crystal Exit', 'PoD Arena Ledge'),
|
||||||
('PoD Map Balcony Drop Down', 'PoD Sexy Statue'),
|
('PoD Map Balcony Drop Down', 'PoD Sexy Statue'),
|
||||||
|
('PoD Map Balcony to Ranged Crystal', 'PoD Map Balcony - Ranged Crystal'),
|
||||||
|
('PoD Map Balcony Ranged Crystal Exit', 'PoD Map Balcony'),
|
||||||
('PoD Basement Ledge Drop Down', 'PoD Stalfos Basement'),
|
('PoD Basement Ledge Drop Down', 'PoD Stalfos Basement'),
|
||||||
('PoD Falling Bridge Path N', 'PoD Falling Bridge Ledge'),
|
('PoD Falling Bridge Path N', 'PoD Falling Bridge Ledge'),
|
||||||
('PoD Falling Bridge Path S', 'PoD Falling Bridge'),
|
('PoD Falling Bridge Path S', 'PoD Falling Bridge'),
|
||||||
('PoD Bow Statue Crystal Path', 'PoD Bow Statue Moving Wall'),
|
('PoD Bow Statue Left to Right Barrier - Orange', 'PoD Bow Statue Right'),
|
||||||
('PoD Bow Statue Moving Wall Path', 'PoD Bow Statue'),
|
('PoD Bow Statue Left to Right Bypass', 'PoD Bow Statue Right'),
|
||||||
('PoD Bow Statue Moving Wall Cane Path', 'PoD Bow Statue'),
|
('PoD Bow Statue Left to Crystal', 'PoD Bow Statue Left - Crystal'),
|
||||||
('PoD Dark Pegs Hammer Path', 'PoD Dark Pegs Ladder'),
|
('PoD Bow Statue Left Crystal Exit', 'PoD Bow Statue Left'),
|
||||||
('PoD Dark Pegs Ladder Hammer Path', 'PoD Dark Pegs'),
|
('PoD Bow Statue Right to Left Barrier - Orange', 'PoD Bow Statue Left'),
|
||||||
('PoD Dark Pegs Ladder Cane Path', 'PoD Dark Pegs Switch'),
|
('PoD Bow Statue Right to Ranged Crystal', 'PoD Bow Statue Right - Ranged Crystal'),
|
||||||
('PoD Dark Pegs Switch Path', 'PoD Dark Pegs Ladder'),
|
('PoD Bow Statue Ranged Crystal Exit', 'PoD Bow Statue Right'),
|
||||||
|
('PoD Dark Pegs Landing to Right', 'PoD Dark Pegs Right'),
|
||||||
|
('PoD Dark Pegs Landing to Ranged Crystal', 'PoD Dark Pegs Landing - Ranged Crystal'),
|
||||||
|
('PoD Dark Pegs Right to Landing', 'PoD Dark Pegs Landing'),
|
||||||
|
('PoD Dark Pegs Right to Middle Barrier - Orange', 'PoD Dark Pegs Middle'),
|
||||||
|
('PoD Dark Pegs Right to Middle Bypass', 'PoD Dark Pegs Middle'),
|
||||||
|
('PoD Dark Pegs Middle to Right Barrier - Orange', 'PoD Dark Pegs Right'),
|
||||||
|
('PoD Dark Pegs Middle to Left Barrier - Blue', 'PoD Dark Pegs Left'),
|
||||||
|
('PoD Dark Pegs Middle to Ranged Crystal', 'PoD Dark Pegs Middle - Ranged Crystal'),
|
||||||
|
('PoD Dark Pegs Left to Middle Barrier - Blue', 'PoD Dark Pegs Middle'),
|
||||||
|
('PoD Dark Pegs Left to Ranged Crystal', 'PoD Dark Pegs Left - Ranged Crystal'),
|
||||||
|
('PoD Dark Pegs Landing Ranged Crystal Exit', 'PoD Dark Pegs Landing'),
|
||||||
|
('PoD Dark Pegs Middle Ranged Crystal Exit', 'PoD Dark Pegs Middle'),
|
||||||
|
('PoD Dark Pegs Middle to Left Bypass', 'PoD Dark Pegs Left'),
|
||||||
|
('PoD Dark Pegs Left Ranged Crystal Exit', 'PoD Dark Pegs Left'),
|
||||||
('Swamp Lobby Moat', 'Swamp Entrance'),
|
('Swamp Lobby Moat', 'Swamp Entrance'),
|
||||||
('Swamp Entrance Moat', 'Swamp Lobby'),
|
('Swamp Entrance Moat', 'Swamp Lobby'),
|
||||||
('Swamp Trench 1 Approach Dry', 'Swamp Trench 1 Nexus'),
|
('Swamp Trench 1 Approach Dry', 'Swamp Trench 1 Nexus'),
|
||||||
@@ -2070,6 +2127,14 @@ logical_connections = [
|
|||||||
('Swamp Trench 1 Departure Key', 'Swamp Trench 1 Key Ledge'),
|
('Swamp Trench 1 Departure Key', 'Swamp Trench 1 Key Ledge'),
|
||||||
('Swamp Hub Hook Path', 'Swamp Hub North Ledge'),
|
('Swamp Hub Hook Path', 'Swamp Hub North Ledge'),
|
||||||
('Swamp Hub North Ledge Drop Down', 'Swamp Hub'),
|
('Swamp Hub North Ledge Drop Down', 'Swamp Hub'),
|
||||||
|
('Swamp Crystal Switch Outer to Inner Barrier - Blue', 'Swamp Crystal Switch Inner'),
|
||||||
|
('Swamp Crystal Switch Outer to Ranged Crystal', 'Swamp Crystal Switch Outer - Ranged Crystal'),
|
||||||
|
('Swamp Crystal Switch Outer to Inner Bypass', 'Swamp Crystal Switch Inner'),
|
||||||
|
('Swamp Crystal Switch Outer Ranged Crystal Exit', 'Swamp Crystal Switch Outer'),
|
||||||
|
('Swamp Crystal Switch Inner to Outer Barrier - Blue', 'Swamp Crystal Switch Outer'),
|
||||||
|
('Swamp Crystal Switch Inner to Outer Bypass', 'Swamp Crystal Switch Outer'),
|
||||||
|
('Swamp Crystal Switch Inner to Crystal', 'Swamp Crystal Switch Inner - Crystal'),
|
||||||
|
('Swamp Crystal Switch Inner Crystal Exit', 'Swamp Crystal Switch Inner'),
|
||||||
('Swamp Compass Donut Push Block', 'Swamp Donut Top'),
|
('Swamp Compass Donut Push Block', 'Swamp Donut Top'),
|
||||||
('Swamp Shortcut Blue Barrier', 'Swamp Trench 2 Pots'),
|
('Swamp Shortcut Blue Barrier', 'Swamp Trench 2 Pots'),
|
||||||
('Swamp Trench 2 Pots Blue Barrier', 'Swamp Shortcut'),
|
('Swamp Trench 2 Pots Blue Barrier', 'Swamp Shortcut'),
|
||||||
@@ -2088,6 +2153,7 @@ logical_connections = [
|
|||||||
('Swamp Drain Right Switch', 'Swamp Drain Left'),
|
('Swamp Drain Right Switch', 'Swamp Drain Left'),
|
||||||
('Swamp Flooded Spot Ladder', 'Swamp Flooded Room'),
|
('Swamp Flooded Spot Ladder', 'Swamp Flooded Room'),
|
||||||
('Swamp Flooded Room Ladder', 'Swamp Flooded Spot'),
|
('Swamp Flooded Room Ladder', 'Swamp Flooded Spot'),
|
||||||
|
|
||||||
('Skull Pot Circle Star Path', 'Skull Map Room'),
|
('Skull Pot Circle Star Path', 'Skull Map Room'),
|
||||||
('Skull Big Chest Hookpath', 'Skull 1 Lobby'),
|
('Skull Big Chest Hookpath', 'Skull 1 Lobby'),
|
||||||
('Skull Back Drop Star Path', 'Skull Small Hall'),
|
('Skull Back Drop Star Path', 'Skull Small Hall'),
|
||||||
@@ -2104,8 +2170,12 @@ logical_connections = [
|
|||||||
('Thieves Conveyor Block Path', 'Thieves Conveyor Bridge'),
|
('Thieves Conveyor Block Path', 'Thieves Conveyor Bridge'),
|
||||||
("Thieves Blind's Cell Door", "Thieves Blind's Cell Interior"),
|
("Thieves Blind's Cell Door", "Thieves Blind's Cell Interior"),
|
||||||
("Thieves Blind's Cell Exit", "Thieves Blind's Cell"),
|
("Thieves Blind's Cell Exit", "Thieves Blind's Cell"),
|
||||||
|
|
||||||
('Ice Cross Bottom Push Block Left', 'Ice Floor Switch'),
|
('Ice Cross Bottom Push Block Left', 'Ice Floor Switch'),
|
||||||
('Ice Cross Right Push Block Top', 'Ice Bomb Drop'),
|
('Ice Cross Right Push Block Top', 'Ice Bomb Drop'),
|
||||||
|
('Ice Cross Top Push Block Bottom', 'Ice Compass Room'),
|
||||||
|
('Ice Conveyor to Crystal', 'Ice Conveyor - Crystal'),
|
||||||
|
('Ice Conveyor Crystal Exit', 'Ice Conveyor'),
|
||||||
('Ice Big Key Push Block', 'Ice Dead End'),
|
('Ice Big Key Push Block', 'Ice Dead End'),
|
||||||
('Ice Bomb Jump Ledge Orange Barrier', 'Ice Bomb Jump Catwalk'),
|
('Ice Bomb Jump Ledge Orange Barrier', 'Ice Bomb Jump Catwalk'),
|
||||||
('Ice Bomb Jump Catwalk Orange Barrier', 'Ice Bomb Jump Ledge'),
|
('Ice Bomb Jump Catwalk Orange Barrier', 'Ice Bomb Jump Ledge'),
|
||||||
@@ -2116,6 +2186,9 @@ logical_connections = [
|
|||||||
('Ice Crystal Left Blue Barrier', 'Ice Crystal Block'),
|
('Ice Crystal Left Blue Barrier', 'Ice Crystal Block'),
|
||||||
('Ice Crystal Block Exit', 'Ice Crystal Left'),
|
('Ice Crystal Block Exit', 'Ice Crystal Left'),
|
||||||
('Ice Big Chest Landing Push Blocks', 'Ice Big Chest View'),
|
('Ice Big Chest Landing Push Blocks', 'Ice Big Chest View'),
|
||||||
|
('Ice Refill to Crystal', 'Ice Refill - Crystal'),
|
||||||
|
('Ice Refill Crystal Exit', 'Ice Refill'),
|
||||||
|
|
||||||
('Mire Lobby Gap', 'Mire Post-Gap'),
|
('Mire Lobby Gap', 'Mire Post-Gap'),
|
||||||
('Mire Post-Gap Gap', 'Mire Lobby'),
|
('Mire Post-Gap Gap', 'Mire Lobby'),
|
||||||
('Mire Hub Upper Blue Barrier', 'Mire Hub Switch'),
|
('Mire Hub Upper Blue Barrier', 'Mire Hub Switch'),
|
||||||
@@ -2131,7 +2204,11 @@ logical_connections = [
|
|||||||
('Mire Crystal Dead End Right Barrier', 'Mire Map Spike Side'),
|
('Mire Crystal Dead End Right Barrier', 'Mire Map Spike Side'),
|
||||||
('Mire Hidden Shooters Block Path S', 'Mire Hidden Shooters'),
|
('Mire Hidden Shooters Block Path S', 'Mire Hidden Shooters'),
|
||||||
('Mire Hidden Shooters Block Path N', 'Mire Hidden Shooters Blocked'),
|
('Mire Hidden Shooters Block Path N', 'Mire Hidden Shooters Blocked'),
|
||||||
|
('Mire Conveyor to Crystal', 'Mire Conveyor - Crystal'),
|
||||||
|
('Mire Conveyor Crystal Exit', 'Mire Conveyor Crystal'),
|
||||||
('Mire Left Bridge Hook Path', 'Mire Right Bridge'),
|
('Mire Left Bridge Hook Path', 'Mire Right Bridge'),
|
||||||
|
('Mire Tall Dark and Roomy to Ranged Crystal', 'Mire Tall Dark and Roomy - Ranged Crystal'),
|
||||||
|
('Mire Tall Dark and Roomy Ranged Crystal Exit', 'Mire Tall Dark and Roomy'),
|
||||||
('Mire Crystal Right Orange Barrier', 'Mire Crystal Mid'),
|
('Mire Crystal Right Orange Barrier', 'Mire Crystal Mid'),
|
||||||
('Mire Crystal Mid Orange Barrier', 'Mire Crystal Right'),
|
('Mire Crystal Mid Orange Barrier', 'Mire Crystal Right'),
|
||||||
('Mire Crystal Mid Blue Barrier', 'Mire Crystal Left'),
|
('Mire Crystal Mid Blue Barrier', 'Mire Crystal Left'),
|
||||||
@@ -2142,14 +2219,49 @@ logical_connections = [
|
|||||||
('Mire Compass Chest Exit', 'Mire Compass Room'),
|
('Mire Compass Chest Exit', 'Mire Compass Room'),
|
||||||
('Mire South Fish Blue Barrier', 'Mire Fishbone'),
|
('Mire South Fish Blue Barrier', 'Mire Fishbone'),
|
||||||
('Mire Fishbone Blue Barrier', 'Mire South Fish'),
|
('Mire Fishbone Blue Barrier', 'Mire South Fish'),
|
||||||
|
('Mire Fishbone Blue Barrier Bypass', 'Mire South Fish'),
|
||||||
|
|
||||||
('TR Main Lobby Gap', 'TR Lobby Ledge'),
|
('TR Main Lobby Gap', 'TR Lobby Ledge'),
|
||||||
('TR Lobby Ledge Gap', 'TR Main Lobby'),
|
('TR Lobby Ledge Gap', 'TR Main Lobby'),
|
||||||
('TR Pipe Ledge Drop Down', 'TR Pipe Pit'),
|
('TR Pipe Ledge Drop Down', 'TR Pipe Pit'),
|
||||||
('TR Big Chest Gap', 'TR Big Chest Entrance'),
|
('TR Big Chest Gap', 'TR Big Chest Entrance'),
|
||||||
('TR Big Chest Entrance Gap', 'TR Big Chest'),
|
('TR Big Chest Entrance Gap', 'TR Big Chest'),
|
||||||
('TR Crystal Maze Forwards Path', 'TR Crystal Maze End'),
|
('TR Chain Chomps Top to Bottom Barrier - Orange', 'TR Chain Chomps Bottom'),
|
||||||
('TR Crystal Maze Blue Path', 'TR Crystal Maze'),
|
('TR Chain Chomps Top to Crystal', 'TR Chain Chomps Top - Crystal'),
|
||||||
('TR Crystal Maze Cane Path', 'TR Crystal Maze'),
|
('TR Chain Chomps Top Crystal Exit', 'TR Chain Chomps Top'),
|
||||||
|
('TR Chain Chomps Bottom to Top Barrier - Orange', 'TR Chain Chomps Top'),
|
||||||
|
('TR Chain Chomps Bottom to Ranged Crystal', 'TR Chain Chomps Bottom - Ranged Crystal'),
|
||||||
|
('TR Chain Chomps Bottom Ranged Crystal Exit', 'TR Chain Chomps Bottom'),
|
||||||
|
('TR Pokey 2 Top to Bottom Barrier - Blue', 'TR Pokey 2 Bottom'),
|
||||||
|
('TR Pokey 2 Top to Crystal', 'TR Pokey 2 Top - Crystal'),
|
||||||
|
('TR Pokey 2 Top Crystal Exit', 'TR Pokey 2 Top'),
|
||||||
|
('TR Pokey 2 Bottom to Top Barrier - Blue', 'TR Pokey 2 Top'),
|
||||||
|
('TR Pokey 2 Bottom to Ranged Crystal', 'TR Pokey 2 Bottom - Ranged Crystal'),
|
||||||
|
('TR Pokey 2 Bottom Ranged Crystal Exit', 'TR Pokey 2 Bottom'),
|
||||||
|
('TR Crystaroller Bottom to Middle Barrier - Orange', 'TR Crystaroller Middle'),
|
||||||
|
('TR Crystaroller Bottom to Ranged Crystal', 'TR Crystaroller Bottom - Ranged Crystal'),
|
||||||
|
('TR Crystaroller Middle to Bottom Barrier - Orange', 'TR Crystaroller Bottom'),
|
||||||
|
('TR Crystaroller Middle to Bottom Bypass', 'TR Crystaroller Bottom'),
|
||||||
|
('TR Crystaroller Middle to Chest Barrier - Blue', 'TR Crystaroller Chest'),
|
||||||
|
('TR Crystaroller Middle to Top Barrier - Orange', 'TR Crystaroller Top'),
|
||||||
|
('TR Crystaroller Middle to Ranged Crystal', 'TR Crystaroller Middle - Ranged Crystal'),
|
||||||
|
('TR Crystaroller Top to Middle Barrier - Orange', 'TR Crystaroller Middle'),
|
||||||
|
('TR Crystaroller Top to Crystal', 'TR Crystaroller Top - Crystal'),
|
||||||
|
('TR Crystaroller Top Crystal Exit', 'TR Crystaroller Top'),
|
||||||
|
('TR Crystaroller Chest to Middle Barrier - Blue', 'TR Crystaroller Middle'),
|
||||||
|
('TR Crystaroller Middle Ranged Crystal Exit', 'TR Crystaroller Middle'),
|
||||||
|
('TR Crystaroller Bottom Ranged Crystal Exit', 'TR Crystaroller Bottom'),
|
||||||
|
('TR Crystal Maze Start to Interior Barrier - Blue', 'TR Crystal Maze Interior'),
|
||||||
|
('TR Crystal Maze Start to Crystal', 'TR Crystal Maze Start - Crystal'),
|
||||||
|
('TR Crystal Maze Start Crystal Exit', 'TR Crystal Maze Start'),
|
||||||
|
('TR Crystal Maze Interior to End Barrier - Blue', 'TR Crystal Maze End'),
|
||||||
|
('TR Crystal Maze Interior to Start Barrier - Blue', 'TR Crystal Maze Start'),
|
||||||
|
('TR Crystal Maze Interior to End Bypass', 'TR Crystal Maze End'),
|
||||||
|
('TR Crystal Maze Interior to Start Bypass', 'TR Crystal Maze Start'),
|
||||||
|
('TR Crystal Maze End to Interior Barrier - Blue', 'TR Crystal Maze Interior'),
|
||||||
|
('TR Crystal Maze End to Ranged Crystal', 'TR Crystal Maze End - Ranged Crystal'),
|
||||||
|
('TR Crystal Maze End Ranged Crystal Exit', 'TR Crystal Maze End'),
|
||||||
|
|
||||||
('GT Blocked Stairs Block Path', 'GT Big Chest'),
|
('GT Blocked Stairs Block Path', 'GT Big Chest'),
|
||||||
('GT Speed Torch South Path', 'GT Speed Torch'),
|
('GT Speed Torch South Path', 'GT Speed Torch'),
|
||||||
('GT Speed Torch North Path', 'GT Speed Torch Upper'),
|
('GT Speed Torch North Path', 'GT Speed Torch Upper'),
|
||||||
@@ -2160,21 +2272,46 @@ logical_connections = [
|
|||||||
('GT Hookshot South-East Path', 'GT Hookshot East Platform'),
|
('GT Hookshot South-East Path', 'GT Hookshot East Platform'),
|
||||||
('GT Hookshot South-North Path', 'GT Hookshot North Platform'),
|
('GT Hookshot South-North Path', 'GT Hookshot North Platform'),
|
||||||
('GT Hookshot Platform Blue Barrier', 'GT Hookshot South Entry'),
|
('GT Hookshot Platform Blue Barrier', 'GT Hookshot South Entry'),
|
||||||
|
('GT Hookshot Platform Barrier Bypass', 'GT Hookshot South Entry'),
|
||||||
('GT Hookshot Entry Blue Barrier', 'GT Hookshot South Platform'),
|
('GT Hookshot Entry Blue Barrier', 'GT Hookshot South Platform'),
|
||||||
('GT Hookshot Entry Boomerang Path', 'GT Hookshot South Platform'),
|
('GT Hookshot South Entry to Ranged Crystal', 'GT Hookshot South Entry - Ranged Crystal'),
|
||||||
('GT Double Switch Orange Barrier', 'GT Double Switch Switches'),
|
('GT HookShot South Entry Ranged Crystal Exit', 'GT Hookshot South Entry'),
|
||||||
('GT Double Switch Orange Barrier 2', 'GT Double Switch Key Spot'),
|
('GT Double Switch Entry to Pot Corners Barrier - Orange', 'GT Double Switch Pot Corners'),
|
||||||
('GT Double Switch Transition Blue', 'GT Double Switch Exit'),
|
('GT Double Switch Entry to Left Barrier - Orange', 'GT Double Switch Left'),
|
||||||
('GT Double Switch Blue Path', 'GT Double Switch Transition'),
|
('GT Double Switch Entry to Ranged Switches', 'GT Double Switch Entry - Ranged Switches'),
|
||||||
('GT Double Switch Orange Path', 'GT Double Switch Entry'),
|
('GT Double Switch Entry Ranged Switches Exit', 'GT Double Switch Entry'),
|
||||||
('GT Double Switch Key Blue Path', 'GT Double Switch Exit'),
|
('GT Double Switch Left to Entry Barrier - Orange', 'GT Double Switch Entry'),
|
||||||
('GT Double Switch Key Orange Path', 'GT Double Switch Entry'),
|
('GT Double Switch Left to Entry Bypass', 'GT Double Switch Entry'),
|
||||||
('GT Double Switch Blue Barrier', 'GT Double Switch Key Spot'),
|
('GT Double Switch Left to Pot Corners Bypass', 'GT Double Switch Pot Corners'),
|
||||||
|
('GT Double Switch Left to Exit Bypass', 'GT Double Switch Exit'),
|
||||||
|
('GT Double Switch Pot Corners to Entry Barrier - Orange', 'GT Double Switch Entry'),
|
||||||
|
('GT Double Switch Pot Corners to Exit Barrier - Blue', 'GT Double Switch Exit'),
|
||||||
|
('GT Double Switch Pot Corners to Ranged Switches', 'GT Double Switch Pot Corners - Ranged Switches'),
|
||||||
|
('GT Double Switch Pot Corners Ranged Switches Exit', 'GT Double Switch Pot Corners'),
|
||||||
|
('GT Double Switch Exit to Blue Barrier', 'GT Double Switch Pot Corners'),
|
||||||
|
('GT Spike Crystal Left to Right Barrier - Orange', 'GT Spike Crystal Right'),
|
||||||
|
('GT Spike Crystal Right to Left Barrier - Orange', 'GT Spike Crystal Left'),
|
||||||
|
('GT Spike Crystal Left to Right Bypass', 'GT Spike Crystal Right'),
|
||||||
('GT Warp Maze - Pit Section Warp Spot', 'GT Warp Maze - Pit Exit Warp Spot'),
|
('GT Warp Maze - Pit Section Warp Spot', 'GT Warp Maze - Pit Exit Warp Spot'),
|
||||||
('GT Warp Maze Exit Section Warp Spot', 'GT Warp Maze - Pit Exit Warp Spot'),
|
('GT Warp Maze Exit Section Warp Spot', 'GT Warp Maze - Pit Exit Warp Spot'),
|
||||||
('GT Firesnake Room Hook Path', 'GT Firesnake Room Ledge'),
|
('GT Firesnake Room Hook Path', 'GT Firesnake Room Ledge'),
|
||||||
|
|
||||||
|
('GT Crystal Conveyor to Corner Barrier - Blue', 'GT Crystal Conveyor Corner'),
|
||||||
|
('GT Crystal Conveyor to Ranged Crystal', 'GT Crystal Conveyor - Ranged Crystal'),
|
||||||
|
('GT Crystal Conveyor Corner to Left Bypass', 'GT Crystal Conveyor Left'),
|
||||||
|
('GT Crystal Conveyor Corner to Barrier - Blue', 'GT Crystal Conveyor Left'),
|
||||||
|
('GT Crystal Conveyor Corner to Barrier - Orange', 'GT Crystal Conveyor'),
|
||||||
|
('GT Crystal Conveyor Corner to Ranged Crystal', 'GT Crystal Conveyor Corner - Ranged Crystal'),
|
||||||
|
('GT Crystal Conveyor Left to Corner Barrier - Orange', 'GT Crystal Conveyor Corner'),
|
||||||
|
('GT Crystal Conveyor Ranged Crystal Exit', 'GT Crystal Conveyor'),
|
||||||
|
('GT Crystal Conveyor Corner Ranged Crystal Exit', 'GT Crystal Conveyor Corner'),
|
||||||
|
|
||||||
('GT Left Moldorm Ledge Drop Down', 'GT Moldorm'),
|
('GT Left Moldorm Ledge Drop Down', 'GT Moldorm'),
|
||||||
('GT Right Moldorm Ledge Drop Down', 'GT Moldorm'),
|
('GT Right Moldorm Ledge Drop Down', 'GT Moldorm'),
|
||||||
|
('GT Crystal Circles Barrier - Orange', 'GT Crystal Inner Circle'),
|
||||||
|
('GT Crystal Circles to Ranged Crystal', 'GT Crystal Circles - Ranged Crystal'),
|
||||||
|
('GT Crystal Inner Circle Barrier - Orange', 'GT Crystal Circles'),
|
||||||
|
('GT Crystal Circles Ranged Crystal Exit', 'GT Crystal Circles'),
|
||||||
('GT Moldorm Gap', 'GT Validation'),
|
('GT Moldorm Gap', 'GT Validation'),
|
||||||
('GT Validation Block Path', 'GT Validation Door')
|
('GT Validation Block Path', 'GT Validation Door')
|
||||||
]
|
]
|
||||||
@@ -2272,10 +2409,12 @@ open_edges = [
|
|||||||
|
|
||||||
falldown_pits = [
|
falldown_pits = [
|
||||||
('Eastern Courtyard Potholes', 'Eastern Fairies'),
|
('Eastern Courtyard Potholes', 'Eastern Fairies'),
|
||||||
('Hera Beetles Holes', 'Hera Lobby'),
|
('Hera Beetles Holes Front', 'Hera Front'),
|
||||||
('Hera Startile Corner Holes', 'Hera Lobby'),
|
('Hera Beetles Holes Landing', 'Hera Up Stairs Landing'),
|
||||||
('Hera Startile Wide Holes', 'Hera Lobby'),
|
('Hera Startile Corner Holes Front', 'Hera Front'),
|
||||||
('Hera 4F Holes', 'Hera Lobby'), # failed bomb jump
|
('Hera Startile Corner Holes Landing', 'Hera Down Stairs Landing'),
|
||||||
|
('Hera Startile Wide Holes', 'Hera Back'),
|
||||||
|
('Hera 4F Holes', 'Hera Back'), # failed bomb jump
|
||||||
('Hera Big Chest Landing Holes', 'Hera Startile Wide'), # the other holes near big chest
|
('Hera Big Chest Landing Holes', 'Hera Startile Wide'), # the other holes near big chest
|
||||||
('Hera 5F Star Hole', 'Hera Big Chest Landing'),
|
('Hera 5F Star Hole', 'Hera Big Chest Landing'),
|
||||||
('Hera 5F Pothole Chain', 'Hera Fairies'),
|
('Hera 5F Pothole Chain', 'Hera Fairies'),
|
||||||
@@ -2369,11 +2508,11 @@ interior_doors = [
|
|||||||
('Desert Sandworm Corner NE', 'Desert Bonk Torch SE'),
|
('Desert Sandworm Corner NE', 'Desert Bonk Torch SE'),
|
||||||
('Desert Sandworm Corner WS', 'Desert Circle of Pots ES'),
|
('Desert Sandworm Corner WS', 'Desert Circle of Pots ES'),
|
||||||
('Desert Circle of Pots NW', 'Desert Big Chest SW'),
|
('Desert Circle of Pots NW', 'Desert Big Chest SW'),
|
||||||
('Desert West Wing WS', 'Desert West Lobby ES',),
|
('Desert West Wing WS', 'Desert West Lobby ES'),
|
||||||
('Desert Fairy Fountain SW', 'Desert West Lobby NW'),
|
('Desert Fairy Fountain SW', 'Desert West Lobby NW'),
|
||||||
('Desert Back Lobby NW', 'Desert Tiles 1 SW'),
|
('Desert Back Lobby NW', 'Desert Tiles 1 SW'),
|
||||||
('Desert Bridge SW', 'Desert Four Statues NW'),
|
('Desert Bridge SW', 'Desert Four Statues NW'),
|
||||||
('Desert Four Statues ES', 'Desert Beamos Hall WS',),
|
('Desert Four Statues ES', 'Desert Beamos Hall WS'),
|
||||||
('Desert Tiles 2 NE', 'Desert Wall Slide SE'),
|
('Desert Tiles 2 NE', 'Desert Wall Slide SE'),
|
||||||
('Hera Tile Room EN', 'Hera Tridorm WN'),
|
('Hera Tile Room EN', 'Hera Tridorm WN'),
|
||||||
('Hera Tridorm SE', 'Hera Torches NE'),
|
('Hera Tridorm SE', 'Hera Torches NE'),
|
||||||
@@ -2732,8 +2871,8 @@ default_door_connections = [
|
|||||||
('TR Torches NW', 'TR Roller Room SW'),
|
('TR Torches NW', 'TR Roller Room SW'),
|
||||||
('TR Pipe Pit WN', 'TR Lava Dual Pipes EN'),
|
('TR Pipe Pit WN', 'TR Lava Dual Pipes EN'),
|
||||||
('TR Lava Island ES', 'TR Pipe Ledge WS'),
|
('TR Lava Island ES', 'TR Pipe Ledge WS'),
|
||||||
('TR Lava Dual Pipes WN', 'TR Pokey 2 EN'),
|
|
||||||
('TR Lava Dual Pipes SW', 'TR Twin Pokeys NW'),
|
('TR Lava Dual Pipes SW', 'TR Twin Pokeys NW'),
|
||||||
|
('TR Lava Dual Pipes WN', 'TR Pokey 2 EN'),
|
||||||
('TR Pokey 2 ES', 'TR Lava Island WS'),
|
('TR Pokey 2 ES', 'TR Lava Island WS'),
|
||||||
('TR Dodgers NE', 'TR Lava Escape SE'),
|
('TR Dodgers NE', 'TR Lava Escape SE'),
|
||||||
('TR Lava Escape NW', 'TR Dash Room SW'),
|
('TR Lava Escape NW', 'TR Dash Room SW'),
|
||||||
|
|||||||
359
Doors.py
359
Doors.py
@@ -252,25 +252,52 @@ def create_doors(world, player):
|
|||||||
|
|
||||||
# Hera
|
# Hera
|
||||||
create_door(player, 'Hera Lobby S', Nrml).dir(So, 0x77, Mid, Low).pos(0).portal(Z, 0x22, 1),
|
create_door(player, 'Hera Lobby S', Nrml).dir(So, 0x77, Mid, Low).pos(0).portal(Z, 0x22, 1),
|
||||||
|
create_door(player, 'Hera Lobby to Front Barrier - Blue', Lgcl),
|
||||||
|
create_door(player, 'Hera Lobby to Crystal', Lgcl),
|
||||||
|
create_door(player, 'Hera Lobby Crystal Exit', Lgcl),
|
||||||
|
create_door(player, 'Hera Front to Lobby Barrier - Blue', Lgcl),
|
||||||
|
create_door(player, 'Hera Front to Crystal', Lgcl),
|
||||||
|
create_door(player, 'Hera Front Crystal Exit', Lgcl),
|
||||||
|
create_door(player, 'Hera Front to Down Stairs Barrier - Blue', Lgcl),
|
||||||
|
create_door(player, 'Hera Down Stairs to Front Barrier - Blue', Lgcl),
|
||||||
|
create_door(player, 'Hera Down Stairs Landing to Ranged Crystal', Lgcl),
|
||||||
|
create_door(player, 'Hera Down Stairs Landing Ranged Crystal Exit', Lgcl),
|
||||||
|
create_door(player, 'Hera Front to Up Stairs Barrier - Orange', Lgcl),
|
||||||
|
create_door(player, 'Hera Up Stairs to Front Barrier - Orange', Lgcl),
|
||||||
|
create_door(player, 'Hera Up Stairs Landing to Ranged Crystal', Lgcl),
|
||||||
|
create_door(player, 'Hera Up Stairs Landing Ranged Crystal Exit', Lgcl),
|
||||||
|
create_door(player, 'Hera Front to Back Barrier - Orange', Lgcl),
|
||||||
|
create_door(player, 'Hera Front to Back Bypass', Lgcl),
|
||||||
|
create_door(player, 'Hera Back to Front Barrier - Orange', Lgcl),
|
||||||
|
create_door(player, 'Hera Back to Ranged Crystal', Lgcl),
|
||||||
|
create_door(player, 'Hera Back Ranged Crystal Exit', Lgcl),
|
||||||
create_door(player, 'Hera Lobby Down Stairs', Sprl).dir(Dn, 0x77, 3, HTL).ss(Z, 0x21, 0x90, False, True),
|
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(1),
|
create_door(player, 'Hera Lobby Key Stairs', Sprl).dir(Dn, 0x77, 1, HTL).ss(A, 0x12, 0x80).small_key().pos(1),
|
||||||
create_door(player, 'Hera Lobby Up Stairs', Sprl).dir(Up, 0x77, 2, HTL).ss(X, 0x2b, 0x5c, False, True),
|
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 Basement Cage Up Stairs', Sprl).dir(Up, 0x87, 3, LTH).ss(Z, 0x42, 0x7c, True, True),
|
||||||
|
create_door(player, 'Hera Basement Cage to Crystal', Lgcl),
|
||||||
|
create_door(player, 'Hera Basement Cage Crystal Exit', Lgcl),
|
||||||
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 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 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 WN', Intr).dir(We, 0x87, Top, High).pos(0),
|
||||||
|
create_door(player, 'Hera Tridorm to Crystal', Lgcl),
|
||||||
|
create_door(player, 'Hera Tridorm Crystal Exit', Lgcl),
|
||||||
create_door(player, 'Hera Tridorm SE', Intr).dir(So, 0x87, Right, High).pos(1),
|
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 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 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 WS', Intr).dir(We, 0x31, Bot, High).pos(1),
|
||||||
create_door(player, 'Hera Beetles Holes', Hole),
|
create_door(player, 'Hera Beetles Holes Front', Hole),
|
||||||
|
create_door(player, 'Hera Beetles Holes Landing', Hole),
|
||||||
create_door(player, 'Hera Startile Corner ES', Intr).dir(Ea, 0x31, Bot, High).pos(1),
|
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 NW', Intr).dir(No, 0x31, Left, High).big_key().pos(0),
|
||||||
create_door(player, 'Hera Startile Corner Holes', Hole),
|
create_door(player, 'Hera Startile Corner Holes Front', Hole),
|
||||||
|
create_door(player, 'Hera Startile Corner Holes Landing', Hole),
|
||||||
# technically ugly but causes lots of failures in basic
|
# technically ugly but causes lots of failures in basic
|
||||||
create_door(player, 'Hera Startile Wide SW', Intr).dir(So, 0x31, Left, High).pos(0),
|
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 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 Startile Wide Holes', Hole),
|
||||||
|
create_door(player, 'Hera Startile Wide to Crystal', Lgcl),
|
||||||
|
create_door(player, 'Hera Startile Wide Crystal Exit', Lgcl),
|
||||||
create_door(player, 'Hera 4F Down Stairs', Sprl).dir(Dn, 0x27, 0, HTH).ss(S, 0x62, 0xc0),
|
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 Up Stairs', Sprl).dir(Up, 0x27, 1, HTH).ss(A, 0x6b, 0x2c),
|
||||||
create_door(player, 'Hera 4F Holes', Hole),
|
create_door(player, 'Hera 4F Holes', Hole),
|
||||||
@@ -354,17 +381,32 @@ def create_doors(world, player):
|
|||||||
create_door(player, 'PoD Arena Bridge SE', Nrml).dir(So, 0x2a, Right, High).pos(5).portal(X, 0x22),
|
create_door(player, 'PoD Arena Bridge SE', Nrml).dir(So, 0x2a, Right, High).pos(5).portal(X, 0x22),
|
||||||
create_door(player, 'PoD Arena Main NW', Nrml).dir(No, 0x2a, Left, High).small_key().pos(1),
|
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 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 Main Orange Barrier', Lgcl),
|
|
||||||
create_door(player, 'PoD Arena North Drop Down', Lgcl),
|
|
||||||
create_door(player, 'PoD Arena Bonk Path', Lgcl),
|
|
||||||
create_door(player, 'PoD Arena Crystals E', Nrml).dir(Ea, 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 Landing Bonk Path', Lgcl),
|
||||||
|
create_door(player, 'PoD Arena North Drop Down', Lgcl),
|
||||||
create_door(player, 'PoD Arena Bridge Drop Down', Lgcl),
|
create_door(player, 'PoD Arena Bridge Drop Down', Lgcl),
|
||||||
|
create_door(player, 'PoD Arena North to Landing Barrier - Orange', Lgcl),
|
||||||
|
create_door(player, 'PoD Arena Main to Ranged Crystal', Lgcl),
|
||||||
|
create_door(player, 'PoD Arena Main to Landing Barrier - Blue', Lgcl),
|
||||||
|
create_door(player, 'PoD Arena Main to Landing Bypass', Lgcl),
|
||||||
|
create_door(player, 'PoD Arena Main to Right Bypass', Lgcl),
|
||||||
|
create_door(player, 'PoD Arena Main Ranged Crystal Exit', Lgcl),
|
||||||
|
create_door(player, 'PoD Arena Bridge to Ranged Crystal', Lgcl),
|
||||||
|
create_door(player, 'PoD Arena Bridge Ranged Crystal Exit', Lgcl),
|
||||||
|
create_door(player, 'PoD Arena Landing to Main Barrier - Blue', Lgcl),
|
||||||
|
create_door(player, 'PoD Arena Landing to Right Barrier - Blue', Lgcl),
|
||||||
|
create_door(player, 'PoD Arena Landing to North Barrier - Orange', Lgcl),
|
||||||
|
create_door(player, 'PoD Arena Right to Landing Barrier - Blue', Lgcl),
|
||||||
|
create_door(player, 'PoD Arena Right to Ranged Crystal', Lgcl),
|
||||||
|
create_door(player, 'PoD Arena Right Ranged Crystal Exit', Lgcl),
|
||||||
|
create_door(player, 'PoD Arena Ledge to Ranged Crystal', Lgcl),
|
||||||
|
create_door(player, 'PoD Arena Ledge Ranged Crystal Exit', Lgcl),
|
||||||
create_door(player, 'PoD Arena Ledge ES', Nrml).dir(Ea, 0x2a, Bot, High).pos(2),
|
create_door(player, 'PoD 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 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 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 Drop Down', Lgcl),
|
||||||
|
create_door(player, 'PoD Map Balcony to Ranged Crystal', Lgcl),
|
||||||
|
create_door(player, 'PoD Map Balcony Ranged Crystal Exit', Lgcl),
|
||||||
create_door(player, 'PoD Map Balcony WS', Nrml).dir(We, 0x2b, Bot, High).pos(1),
|
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 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 North Stairs', StrS).dir(No, 0x3b, Left, High),
|
||||||
@@ -395,15 +437,29 @@ def create_doors(world, player):
|
|||||||
create_door(player, 'PoD Mimics 2 SW', Nrml).dir(So, 0x1b, Left, High).pos(1).kill().portal(Z, 0x00),
|
create_door(player, 'PoD Mimics 2 SW', Nrml).dir(So, 0x1b, Left, High).pos(1).kill().portal(Z, 0x00),
|
||||||
create_door(player, 'PoD Mimics 2 NW', Intr).dir(No, 0x1b, Left, High).pos(0),
|
create_door(player, 'PoD Mimics 2 NW', Intr).dir(No, 0x1b, Left, High).pos(0),
|
||||||
create_door(player, 'PoD Bow Statue SW', Intr).dir(So, 0x1b, Left, High).pos(0),
|
create_door(player, 'PoD Bow Statue SW', Intr).dir(So, 0x1b, Left, High).pos(0),
|
||||||
create_door(player, 'PoD Bow Statue Crystal Path', Lgcl),
|
create_door(player, 'PoD Bow Statue Left to Right Barrier - Orange', Lgcl),
|
||||||
create_door(player, 'PoD Bow Statue Moving Wall Path', Lgcl),
|
create_door(player, 'PoD Bow Statue Left to Right Bypass', Lgcl),
|
||||||
create_door(player, 'PoD Bow Statue Moving Wall Cane Path', Lgcl),
|
create_door(player, 'PoD Bow Statue Left to Crystal', Lgcl),
|
||||||
|
create_door(player, 'PoD Bow Statue Left Crystal Exit', Lgcl),
|
||||||
|
create_door(player, 'PoD Bow Statue Right to Left Barrier - Orange', Lgcl),
|
||||||
|
create_door(player, 'PoD Bow Statue Right to Ranged Crystal', Lgcl),
|
||||||
|
create_door(player, 'PoD Bow Statue Ranged Crystal Exit', Lgcl),
|
||||||
create_door(player, 'PoD Bow Statue Down Ladder', Lddr).dir(So, 0x1b, 1, High).no_entrance(),
|
create_door(player, 'PoD Bow Statue Down Ladder', Lddr).dir(So, 0x1b, 1, High).no_entrance(),
|
||||||
create_door(player, 'PoD Dark Pegs Up Ladder', Lddr).dir(No, 0x0b, 0, High),
|
create_door(player, 'PoD Dark Pegs Up Ladder', Lddr).dir(No, 0x0b, 0, High),
|
||||||
create_door(player, 'PoD Dark Pegs Hammer Path', Lgcl),
|
create_door(player, 'PoD Dark Pegs Landing to Right', Lgcl),
|
||||||
create_door(player, 'PoD Dark Pegs Ladder Hammer Path', Lgcl),
|
create_door(player, 'PoD Dark Pegs Landing to Ranged Crystal', Lgcl),
|
||||||
create_door(player, 'PoD Dark Pegs Ladder Cane Path', Lgcl),
|
create_door(player, 'PoD Dark Pegs Right to Landing', Lgcl),
|
||||||
create_door(player, 'PoD Dark Pegs Switch Path', Lgcl),
|
create_door(player, 'PoD Dark Pegs Right to Middle Barrier - Orange', Lgcl),
|
||||||
|
create_door(player, 'PoD Dark Pegs Right to Middle Bypass', Lgcl),
|
||||||
|
create_door(player, 'PoD Dark Pegs Middle to Right Barrier - Orange', Lgcl),
|
||||||
|
create_door(player, 'PoD Dark Pegs Middle to Left Barrier - Blue', Lgcl),
|
||||||
|
create_door(player, 'PoD Dark Pegs Middle to Ranged Crystal', Lgcl),
|
||||||
|
create_door(player, 'PoD Dark Pegs Middle to Left Bypass', Lgcl),
|
||||||
|
create_door(player, 'PoD Dark Pegs Left to Middle Barrier - Blue', Lgcl),
|
||||||
|
create_door(player, 'PoD Dark Pegs Left to Ranged Crystal', Lgcl),
|
||||||
|
create_door(player, 'PoD Dark Pegs Landing Ranged Crystal Exit', Lgcl),
|
||||||
|
create_door(player, 'PoD Dark Pegs Middle Ranged Crystal Exit', Lgcl),
|
||||||
|
create_door(player, 'PoD Dark Pegs Left Ranged Crystal Exit', Lgcl),
|
||||||
create_door(player, 'PoD Dark Pegs WN', Intr).dir(We, 0x0b, Mid, High).small_key().pos(2),
|
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 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 Lonely Turtle EN', Intr).dir(Ea, 0x0b, Mid, High).small_key().pos(2),
|
||||||
@@ -455,6 +511,14 @@ def create_doors(world, player):
|
|||||||
create_door(player, 'Swamp Compass Donut Push Block', Lgcl),
|
create_door(player, 'Swamp Compass Donut Push Block', Lgcl),
|
||||||
create_door(player, 'Swamp Crystal Switch EN', Nrml).dir(Ea, 0x35, Top, High).small_key().pos(0),
|
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 Crystal Switch SE', Intr).dir(So, 0x35, Right, High).pos(3),
|
||||||
|
create_door(player, 'Swamp Crystal Switch Outer to Inner Barrier - Blue', Lgcl),
|
||||||
|
create_door(player, 'Swamp Crystal Switch Outer to Ranged Crystal', Lgcl),
|
||||||
|
create_door(player, 'Swamp Crystal Switch Outer to Inner Bypass', Lgcl),
|
||||||
|
create_door(player, 'Swamp Crystal Switch Outer Ranged Crystal Exit', Lgcl),
|
||||||
|
create_door(player, 'Swamp Crystal Switch Inner to Outer Barrier - Blue', Lgcl),
|
||||||
|
create_door(player, 'Swamp Crystal Switch Inner to Outer Bypass', Lgcl),
|
||||||
|
create_door(player, 'Swamp Crystal Switch Inner to Crystal', Lgcl),
|
||||||
|
create_door(player, 'Swamp Crystal Switch Inner Crystal Exit', Lgcl),
|
||||||
create_door(player, 'Swamp Shortcut NE', Intr).dir(No, 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 Shortcut Blue Barrier', Lgcl),
|
||||||
create_door(player, 'Swamp Trench 2 Pots ES', Nrml).dir(Ea, 0x35, Bot, High).pos(4),
|
create_door(player, 'Swamp Trench 2 Pots ES', Nrml).dir(Ea, 0x35, Bot, High).pos(4),
|
||||||
@@ -673,6 +737,8 @@ def create_doors(world, player):
|
|||||||
create_door(player, 'Ice Big Key Down Ladder', Lddr).dir(So, 0x1f, 3, High),
|
create_door(player, 'Ice Big Key Down Ladder', Lddr).dir(So, 0x1f, 3, High),
|
||||||
create_door(player, 'Ice Stalfos Hint SE', Intr).dir(So, 0x3e, Right, High).pos(0),
|
create_door(player, 'Ice Stalfos Hint SE', Intr).dir(So, 0x3e, Right, High).pos(0),
|
||||||
create_door(player, 'Ice Conveyor NE', Intr).dir(No, 0x3e, Right, High).no_exit().pos(0),
|
create_door(player, 'Ice Conveyor NE', Intr).dir(No, 0x3e, Right, High).no_exit().pos(0),
|
||||||
|
create_door(player, 'Ice Conveyor to Crystal', Lgcl),
|
||||||
|
create_door(player, 'Ice Conveyor Crystal Exit', Lgcl),
|
||||||
create_door(player, 'Ice Conveyor SW', Nrml).dir(So, 0x3e, Left, High).small_key().pos(1).portal(Z, 0x20),
|
create_door(player, 'Ice Conveyor SW', Nrml).dir(So, 0x3e, Left, High).small_key().pos(1).portal(Z, 0x20),
|
||||||
create_door(player, 'Ice Bomb Jump NW', Nrml).dir(No, 0x4e, Left, High).small_key().pos(1),
|
create_door(player, 'Ice Bomb Jump NW', Nrml).dir(No, 0x4e, Left, High).small_key().pos(1),
|
||||||
create_door(player, 'Ice Bomb Jump Ledge Orange Barrier', Lgcl),
|
create_door(player, 'Ice Bomb Jump Ledge Orange Barrier', Lgcl),
|
||||||
@@ -739,6 +805,9 @@ def create_doors(world, player):
|
|||||||
create_door(player, 'Ice Switch Room ES', Nrml).dir(Ea, 0xbe, Bot, High).small_key().pos(1),
|
create_door(player, 'Ice Switch Room ES', Nrml).dir(Ea, 0xbe, Bot, High).small_key().pos(1),
|
||||||
create_door(player, 'Ice Switch Room SE', Nrml).dir(So, 0xbe, Right, High).trap(0x4).pos(0).portal(X, 0x00),
|
create_door(player, 'Ice Switch Room SE', Nrml).dir(So, 0xbe, Right, High).trap(0x4).pos(0).portal(X, 0x00),
|
||||||
create_door(player, 'Ice Refill WS', Nrml).dir(We, 0xbf, Bot, High).small_key().pos(0),
|
create_door(player, 'Ice Refill WS', Nrml).dir(We, 0xbf, Bot, High).small_key().pos(0),
|
||||||
|
create_door(player, 'Ice Refill to Crystal', Lgcl),
|
||||||
|
create_door(player, 'Ice Refill Crystal Exit', Lgcl),
|
||||||
|
|
||||||
create_door(player, 'Ice Fairy Warp', Warp),
|
create_door(player, 'Ice Fairy Warp', Warp),
|
||||||
create_door(player, 'Ice Antechamber NE', Nrml).dir(No, 0xce, Right, High).trap(0x4).pos(0),
|
create_door(player, 'Ice Antechamber NE', Nrml).dir(No, 0xce, Right, High).trap(0x4).pos(0),
|
||||||
create_door(player, 'Ice Antechamber Hole', Hole),
|
create_door(player, 'Ice Antechamber Hole', Hole),
|
||||||
@@ -806,6 +875,7 @@ def create_doors(world, player):
|
|||||||
create_door(player, 'Mire Left Bridge Down Stairs', Sprl).dir(Dn, 0xa2, 0, HTL).ss(A, 0x12, 0x00),
|
create_door(player, 'Mire Left Bridge Down Stairs', Sprl).dir(Dn, 0xa2, 0, HTL).ss(A, 0x12, 0x00),
|
||||||
create_door(player, 'Mire Fishbone E', Nrml).dir(Ea, 0xa1, Mid, High).pos(1),
|
create_door(player, 'Mire Fishbone E', Nrml).dir(Ea, 0xa1, Mid, High).pos(1),
|
||||||
create_door(player, 'Mire Fishbone Blue Barrier', Lgcl),
|
create_door(player, 'Mire Fishbone Blue Barrier', Lgcl),
|
||||||
|
create_door(player, 'Mire Fishbone Blue Barrier Bypass', Lgcl),
|
||||||
create_door(player, 'Mire South Fish Blue Barrier', Lgcl),
|
create_door(player, 'Mire South Fish Blue Barrier', Lgcl),
|
||||||
create_door(player, 'Mire Fishbone SE', Nrml).dir(So, 0xa1, Right, High).small_key().pos(0),
|
create_door(player, 'Mire Fishbone SE', Nrml).dir(So, 0xa1, Right, High).small_key().pos(0),
|
||||||
create_door(player, 'Mire Spike Barrier NE', Nrml).dir(No, 0xb1, Right, High).small_key().pos(1),
|
create_door(player, 'Mire Spike Barrier NE', Nrml).dir(No, 0xb1, Right, High).small_key().pos(1),
|
||||||
@@ -820,6 +890,8 @@ def create_doors(world, player):
|
|||||||
create_door(player, 'Mire Conveyor Crystal ES', Nrml).dir(Ea, 0xc1, Bot, High).small_key().pos(1),
|
create_door(player, 'Mire Conveyor Crystal ES', Nrml).dir(Ea, 0xc1, Bot, High).small_key().pos(1),
|
||||||
create_door(player, 'Mire Conveyor Crystal SE', Nrml).dir(So, 0xc1, Right, High).pos(7).portal(X, 0x00),
|
create_door(player, 'Mire Conveyor Crystal SE', Nrml).dir(So, 0xc1, Right, High).pos(7).portal(X, 0x00),
|
||||||
create_door(player, 'Mire Conveyor Crystal WS', Intr).dir(We, 0xc1, Bot, High).small_key().pos(0),
|
create_door(player, 'Mire Conveyor Crystal WS', Intr).dir(We, 0xc1, Bot, High).small_key().pos(0),
|
||||||
|
create_door(player, 'Mire Conveyor to Crystal', Lgcl),
|
||||||
|
create_door(player, 'Mire Conveyor Crystal Exit', Lgcl),
|
||||||
create_door(player, 'Mire Tile Room ES', Intr).dir(Ea, 0xc1, Bot, High).small_key().pos(0),
|
create_door(player, 'Mire Tile Room ES', Intr).dir(Ea, 0xc1, Bot, High).small_key().pos(0),
|
||||||
create_door(player, 'Mire Tile Room SW', Nrml).dir(So, 0xc1, Left, High).pos(4).portal(Z, 0x00),
|
create_door(player, 'Mire Tile Room SW', Nrml).dir(So, 0xc1, Left, High).pos(4).portal(Z, 0x00),
|
||||||
create_door(player, 'Mire Tile Room NW', Intr).dir(No, 0xc1, Left, High).pos(3),
|
create_door(player, 'Mire Tile Room NW', Intr).dir(No, 0xc1, Left, High).pos(3),
|
||||||
@@ -854,6 +926,8 @@ def create_doors(world, player):
|
|||||||
create_door(player, 'Mire Tall Dark and Roomy WN', Intr).dir(We, 0x92, Top, High).pos(0),
|
create_door(player, 'Mire Tall Dark and Roomy WN', Intr).dir(We, 0x92, Top, High).pos(0),
|
||||||
create_door(player, 'Mire Shooter Rupees EN', Intr).dir(Ea, 0x92, Top, High).pos(0),
|
create_door(player, 'Mire Shooter Rupees EN', Intr).dir(Ea, 0x92, Top, High).pos(0),
|
||||||
create_door(player, 'Mire Tall Dark and Roomy WS', Intr).dir(We, 0x92, Bot, High).pos(3),
|
create_door(player, 'Mire Tall Dark and Roomy WS', Intr).dir(We, 0x92, Bot, High).pos(3),
|
||||||
|
create_door(player, 'Mire Tall Dark and Roomy to Ranged Crystal', Lgcl),
|
||||||
|
create_door(player, 'Mire Tall Dark and Roomy Ranged Crystal Exit', Lgcl),
|
||||||
create_door(player, 'Mire Crystal Right ES', Intr).dir(Ea, 0x92, Bot, High).pos(3),
|
create_door(player, 'Mire Crystal Right ES', Intr).dir(Ea, 0x92, Bot, High).pos(3),
|
||||||
create_door(player, 'Mire Crystal Mid NW', Intr).dir(No, 0x92, Left, High).pos(1),
|
create_door(player, 'Mire Crystal Mid NW', Intr).dir(No, 0x92, Left, High).pos(1),
|
||||||
create_door(player, 'Mire Crystal Top SW', Intr).dir(So, 0x92, Left, High).pos(1),
|
create_door(player, 'Mire Crystal Top SW', Intr).dir(So, 0x92, Left, High).pos(1),
|
||||||
@@ -891,6 +965,12 @@ def create_doors(world, player):
|
|||||||
create_door(player, 'TR Refill SE', Intr).dir(So, 0xb6, Right, High).pos(1),
|
create_door(player, 'TR Refill SE', Intr).dir(So, 0xb6, Right, High).pos(1),
|
||||||
create_door(player, 'TR Pokey 1 NW', Intr).dir(No, 0xb6, Left, High).small_key().pos(3),
|
create_door(player, 'TR Pokey 1 NW', Intr).dir(No, 0xb6, Left, High).small_key().pos(3),
|
||||||
create_door(player, 'TR Chain Chomps SW', Intr).dir(So, 0xb6, Left, High).small_key().pos(3),
|
create_door(player, 'TR Chain Chomps SW', Intr).dir(So, 0xb6, Left, High).small_key().pos(3),
|
||||||
|
create_door(player, 'TR Chain Chomps Top to Bottom Barrier - Orange', Lgcl),
|
||||||
|
create_door(player, 'TR Chain Chomps Top to Crystal', Lgcl),
|
||||||
|
create_door(player, 'TR Chain Chomps Top Crystal Exit', Lgcl),
|
||||||
|
create_door(player, 'TR Chain Chomps Bottom to Top Barrier - Orange', Lgcl),
|
||||||
|
create_door(player, 'TR Chain Chomps Bottom to Ranged Crystal', Lgcl),
|
||||||
|
create_door(player, 'TR Chain Chomps Bottom Ranged Crystal Exit', Lgcl),
|
||||||
create_door(player, 'TR Chain Chomps Down Stairs', Sprl).dir(Dn, 0xb6, 0, HTH).ss(A, 0x12, 0x80, True, True).small_key().pos(0),
|
create_door(player, 'TR Chain Chomps Down Stairs', Sprl).dir(Dn, 0xb6, 0, HTH).ss(A, 0x12, 0x80, True, True).small_key().pos(0),
|
||||||
create_door(player, 'TR Pipe Pit Up Stairs', Sprl).dir(Up, 0x15, 0, HTH).ss(A, 0x1b, 0x6c),
|
create_door(player, 'TR Pipe Pit Up Stairs', Sprl).dir(Up, 0x15, 0, HTH).ss(A, 0x1b, 0x6c),
|
||||||
create_door(player, 'TR Pipe Pit WN', Nrml).dir(We, 0x15, Top, High).pos(1),
|
create_door(player, 'TR Pipe Pit WN', Nrml).dir(We, 0x15, Top, High).pos(1),
|
||||||
@@ -904,6 +984,12 @@ def create_doors(world, player):
|
|||||||
create_door(player, 'TR Lava Escape SE', Nrml).dir(So, 0x14, Right, High).small_key().pos(0),
|
create_door(player, 'TR Lava Escape SE', Nrml).dir(So, 0x14, Right, High).small_key().pos(0),
|
||||||
create_door(player, 'TR Lava Escape NW', Nrml).dir(No, 0x14, Left, High).pos(2),
|
create_door(player, 'TR Lava Escape NW', Nrml).dir(No, 0x14, Left, High).pos(2),
|
||||||
create_door(player, 'TR Pokey 2 EN', Nrml).dir(Ea, 0x13, Top, High).pos(1),
|
create_door(player, 'TR Pokey 2 EN', Nrml).dir(Ea, 0x13, Top, High).pos(1),
|
||||||
|
create_door(player, 'TR Pokey 2 Top to Bottom Barrier - Blue', Lgcl),
|
||||||
|
create_door(player, 'TR Pokey 2 Top to Crystal', Lgcl),
|
||||||
|
create_door(player, 'TR Pokey 2 Top Crystal Exit', Lgcl),
|
||||||
|
create_door(player, 'TR Pokey 2 Bottom to Top Barrier - Blue', Lgcl),
|
||||||
|
create_door(player, 'TR Pokey 2 Bottom to Ranged Crystal', Lgcl),
|
||||||
|
create_door(player, 'TR Pokey 2 Bottom Ranged Crystal Exit', Lgcl),
|
||||||
create_door(player, 'TR Pokey 2 ES', Nrml).dir(Ea, 0x13, Bot, High).small_key().pos(0),
|
create_door(player, 'TR Pokey 2 ES', Nrml).dir(Ea, 0x13, Bot, High).small_key().pos(0),
|
||||||
create_door(player, 'TR Twin Pokeys NW', Nrml).dir(No, 0x24, Left, High).pos(5),
|
create_door(player, 'TR Twin Pokeys NW', Nrml).dir(No, 0x24, Left, High).pos(5),
|
||||||
create_door(player, 'TR Twin Pokeys SW', Intr).dir(So, 0x24, Left, High).pos(2),
|
create_door(player, 'TR Twin Pokeys SW', Intr).dir(So, 0x24, Left, High).pos(2),
|
||||||
@@ -928,6 +1014,19 @@ def create_doors(world, player):
|
|||||||
create_door(player, 'TR Rupees SE', Intr).dir(So, 0x04, Right, High).pos(3),
|
create_door(player, 'TR Rupees SE', Intr).dir(So, 0x04, Right, High).pos(3),
|
||||||
create_door(player, 'TR Dash Room NW', Intr).dir(No, 0x04, Left, High).pos(1),
|
create_door(player, 'TR Dash Room NW', Intr).dir(No, 0x04, Left, High).pos(1),
|
||||||
create_door(player, 'TR Crystaroller SW', Intr).dir(So, 0x04, Left, High).pos(1),
|
create_door(player, 'TR Crystaroller SW', Intr).dir(So, 0x04, Left, High).pos(1),
|
||||||
|
create_door(player, 'TR Crystaroller Bottom to Middle Barrier - Orange', Lgcl),
|
||||||
|
create_door(player, 'TR Crystaroller Bottom to Ranged Crystal', Lgcl),
|
||||||
|
create_door(player, 'TR Crystaroller Middle to Bottom Barrier - Orange', Lgcl),
|
||||||
|
create_door(player, 'TR Crystaroller Middle to Bottom Bypass', Lgcl),
|
||||||
|
create_door(player, 'TR Crystaroller Middle to Chest Barrier - Blue', Lgcl),
|
||||||
|
create_door(player, 'TR Crystaroller Middle to Top Barrier - Orange', Lgcl),
|
||||||
|
create_door(player, 'TR Crystaroller Middle to Ranged Crystal', Lgcl),
|
||||||
|
create_door(player, 'TR Crystaroller Top to Middle Barrier - Orange', Lgcl),
|
||||||
|
create_door(player, 'TR Crystaroller Top to Crystal', Lgcl),
|
||||||
|
create_door(player, 'TR Crystaroller Top Crystal Exit', Lgcl),
|
||||||
|
create_door(player, 'TR Crystaroller Chest to Middle Barrier - Blue', Lgcl),
|
||||||
|
create_door(player, 'TR Crystaroller Middle Ranged Crystal Exit', Lgcl),
|
||||||
|
create_door(player, 'TR Crystaroller Bottom Ranged Crystal Exit', Lgcl),
|
||||||
create_door(player, 'TR Crystaroller Down Stairs', Sprl).dir(Dn, 0x04, 0, HTH).ss(A, 0x12, 0x80, True, True).small_key().pos(0),
|
create_door(player, 'TR Crystaroller Down Stairs', Sprl).dir(Dn, 0x04, 0, HTH).ss(A, 0x12, 0x80, True, True).small_key().pos(0),
|
||||||
create_door(player, 'TR Dark Ride Up Stairs', Sprl).dir(Up, 0xb5, 0, HTH).ss(A, 0x1b, 0x6c),
|
create_door(player, 'TR Dark Ride Up Stairs', Sprl).dir(Up, 0xb5, 0, HTH).ss(A, 0x1b, 0x6c),
|
||||||
create_door(player, 'TR Dark Ride SW', Nrml).dir(So, 0xb5, Left, High).trap(0x4).pos(0).portal(Z, 0x22),
|
create_door(player, 'TR Dark Ride SW', Nrml).dir(So, 0xb5, Left, High).trap(0x4).pos(0).portal(Z, 0x22),
|
||||||
@@ -937,9 +1036,16 @@ def create_doors(world, player):
|
|||||||
create_door(player, 'TR Eye Bridge NW', Nrml).dir(No, 0xd5, Left, High).pos(1),
|
create_door(player, 'TR Eye Bridge NW', Nrml).dir(No, 0xd5, Left, High).pos(1),
|
||||||
create_door(player, 'TR Eye Bridge SW', Nrml).dir(So, 0xd5, Left, High).pos(0).portal(Z, 0x02),
|
create_door(player, 'TR Eye Bridge SW', Nrml).dir(So, 0xd5, Left, High).pos(0).portal(Z, 0x02),
|
||||||
create_door(player, 'TR Crystal Maze ES', Nrml).dir(Ea, 0xc4, Bot, High).small_key().pos(0),
|
create_door(player, 'TR Crystal Maze ES', Nrml).dir(Ea, 0xc4, Bot, High).small_key().pos(0),
|
||||||
create_door(player, 'TR Crystal Maze Forwards Path', Lgcl),
|
create_door(player, 'TR Crystal Maze Start to Interior Barrier - Blue', Lgcl),
|
||||||
create_door(player, 'TR Crystal Maze Blue Path', Lgcl),
|
create_door(player, 'TR Crystal Maze Start to Crystal', Lgcl),
|
||||||
create_door(player, 'TR Crystal Maze Cane Path', Lgcl),
|
create_door(player, 'TR Crystal Maze Start Crystal Exit', Lgcl),
|
||||||
|
create_door(player, 'TR Crystal Maze Interior to Start Barrier - Blue', Lgcl),
|
||||||
|
create_door(player, 'TR Crystal Maze Interior to End Barrier - Blue', Lgcl),
|
||||||
|
create_door(player, 'TR Crystal Maze Interior to End Bypass', Lgcl),
|
||||||
|
create_door(player, 'TR Crystal Maze Interior to Start Bypass', Lgcl),
|
||||||
|
create_door(player, 'TR Crystal Maze End to Interior Barrier - Blue', Lgcl),
|
||||||
|
create_door(player, 'TR Crystal Maze End to Ranged Crystal', Lgcl),
|
||||||
|
create_door(player, 'TR Crystal Maze End Ranged Crystal Exit', Lgcl),
|
||||||
create_door(player, 'TR Crystal Maze North Stairs', StrS).dir(No, 0xc4, Mid, High),
|
create_door(player, 'TR Crystal Maze North Stairs', StrS).dir(No, 0xc4, Mid, High),
|
||||||
create_door(player, 'TR Final Abyss South Stairs', StrS).dir(So, 0xb4, Mid, High),
|
create_door(player, 'TR Final Abyss South Stairs', StrS).dir(So, 0xb4, Mid, High),
|
||||||
create_door(player, 'TR Final Abyss NW', Nrml).dir(No, 0xb4, Left, High).big_key().pos(0),
|
create_door(player, 'TR Final Abyss NW', Nrml).dir(No, 0xb4, Left, High).big_key().pos(0),
|
||||||
@@ -972,6 +1078,15 @@ def create_doors(world, player):
|
|||||||
create_door(player, 'GT Pots n Blocks ES', Intr).dir(Ea, 0x8d, Bot, High).pos(4),
|
create_door(player, 'GT Pots n Blocks ES', Intr).dir(Ea, 0x8d, Bot, High).pos(4),
|
||||||
create_door(player, 'GT Speed Torch SE', Nrml).dir(So, 0x8d, Right, High).trap(0x4).pos(0).portal(X, 0x02),
|
create_door(player, 'GT Speed Torch SE', Nrml).dir(So, 0x8d, Right, High).trap(0x4).pos(0).portal(X, 0x02),
|
||||||
create_door(player, 'GT Crystal Conveyor NE', Nrml).dir(No, 0x9d, Right, High).pos(0).kill(),
|
create_door(player, 'GT Crystal Conveyor NE', Nrml).dir(No, 0x9d, Right, High).pos(0).kill(),
|
||||||
|
create_door(player, 'GT Crystal Conveyor to Corner Barrier - Blue', Lgcl),
|
||||||
|
create_door(player, 'GT Crystal Conveyor to Ranged Crystal', Lgcl),
|
||||||
|
create_door(player, 'GT Crystal Conveyor Corner to Left Bypass', Lgcl),
|
||||||
|
create_door(player, 'GT Crystal Conveyor Corner to Barrier - Blue', Lgcl),
|
||||||
|
create_door(player, 'GT Crystal Conveyor Corner to Barrier - Orange', Lgcl),
|
||||||
|
create_door(player, 'GT Crystal Conveyor Corner to Ranged Crystal', Lgcl),
|
||||||
|
create_door(player, 'GT Crystal Conveyor Left to Corner Barrier - Orange', Lgcl),
|
||||||
|
create_door(player, 'GT Crystal Conveyor Ranged Crystal Exit', Lgcl),
|
||||||
|
create_door(player, 'GT Crystal Conveyor Corner Ranged Crystal Exit', Lgcl),
|
||||||
create_door(player, 'GT Crystal Conveyor WN', Intr).dir(We, 0x9d, Top, High).pos(2),
|
create_door(player, 'GT Crystal Conveyor WN', Intr).dir(We, 0x9d, Top, High).pos(2),
|
||||||
create_door(player, 'GT Compass Room EN', Intr).dir(Ea, 0x9d, Top, High).pos(2),
|
create_door(player, 'GT Compass Room EN', Intr).dir(Ea, 0x9d, Top, High).pos(2),
|
||||||
create_door(player, 'GT Compass Room Warp', Warp),
|
create_door(player, 'GT Compass Room Warp', Warp),
|
||||||
@@ -991,22 +1106,32 @@ def create_doors(world, player):
|
|||||||
create_door(player, 'GT Hookshot South-North Path', Lgcl),
|
create_door(player, 'GT Hookshot South-North Path', Lgcl),
|
||||||
create_door(player, 'GT Hookshot Platform Blue Barrier', Lgcl),
|
create_door(player, 'GT Hookshot Platform Blue Barrier', Lgcl),
|
||||||
create_door(player, 'GT Hookshot Entry Blue Barrier', Lgcl),
|
create_door(player, 'GT Hookshot Entry Blue Barrier', Lgcl),
|
||||||
create_door(player, 'GT Hookshot Entry Boomerang Path', Lgcl),
|
create_door(player, 'GT Hookshot Platform Barrier Bypass', Lgcl),
|
||||||
|
create_door(player, 'GT Hookshot South Entry to Ranged Crystal', Lgcl),
|
||||||
|
create_door(player, 'GT HookShot South Entry Ranged Crystal Exit', Lgcl),
|
||||||
create_door(player, 'GT Hookshot NW', Nrml).dir(No, 0x8b, Left, High).pos(4),
|
create_door(player, 'GT Hookshot NW', Nrml).dir(No, 0x8b, Left, High).pos(4),
|
||||||
create_door(player, 'GT Hookshot ES', Intr).dir(Ea, 0x8b, Bot, High).small_key().pos(1),
|
create_door(player, 'GT Hookshot ES', Intr).dir(Ea, 0x8b, Bot, High).small_key().pos(1),
|
||||||
create_door(player, 'GT Map Room WS', Intr).dir(We, 0x8b, Bot, High).small_key().pos(1),
|
create_door(player, 'GT Map Room WS', Intr).dir(We, 0x8b, Bot, High).small_key().pos(1),
|
||||||
create_door(player, 'GT Hookshot SW', Nrml).dir(So, 0x8b, Left, High).pos(3).portal(Z, 0x02),
|
create_door(player, 'GT Hookshot SW', Nrml).dir(So, 0x8b, Left, High).pos(3).portal(Z, 0x02),
|
||||||
create_door(player, 'GT Double Switch NW', Nrml).dir(No, 0x9b, Left, High).pos(1).kill(),
|
create_door(player, 'GT Double Switch NW', Nrml).dir(No, 0x9b, Left, High).pos(1).kill(),
|
||||||
create_door(player, 'GT Double Switch Orange Barrier', Lgcl),
|
create_door(player, 'GT Double Switch Entry to Pot Corners Barrier - Orange', Lgcl),
|
||||||
create_door(player, 'GT Double Switch Orange Barrier 2', Lgcl),
|
create_door(player, 'GT Double Switch Entry to Left Barrier - Orange', Lgcl),
|
||||||
create_door(player, 'GT Double Switch Blue Path', Lgcl),
|
create_door(player, 'GT Double Switch Entry to Ranged Switches', Lgcl),
|
||||||
create_door(player, 'GT Double Switch Orange Path', Lgcl),
|
create_door(player, 'GT Double Switch Entry Ranged Switches Exit', Lgcl),
|
||||||
create_door(player, 'GT Double Switch Key Blue Path', Lgcl),
|
create_door(player, 'GT Double Switch Left to Entry Barrier - Orange', Lgcl),
|
||||||
create_door(player, 'GT Double Switch Key Orange Path', Lgcl),
|
create_door(player, 'GT Double Switch Left to Pot Corners Bypass', Lgcl),
|
||||||
create_door(player, 'GT Double Switch Blue Barrier', Lgcl),
|
create_door(player, 'GT Double Switch Left to Entry Bypass', Lgcl),
|
||||||
create_door(player, 'GT Double Switch Transition Blue', Lgcl),
|
create_door(player, 'GT Double Switch Left to Exit Bypass', Lgcl),
|
||||||
|
create_door(player, 'GT Double Switch Pot Corners to Entry Barrier - Orange', Lgcl),
|
||||||
|
create_door(player, 'GT Double Switch Pot Corners to Exit Barrier - Blue', Lgcl),
|
||||||
|
create_door(player, 'GT Double Switch Pot Corners to Ranged Switches', Lgcl),
|
||||||
|
create_door(player, 'GT Double Switch Pot Corners Ranged Switches Exit', Lgcl),
|
||||||
|
create_door(player, 'GT Double Switch Exit to Blue Barrier', Lgcl),
|
||||||
create_door(player, 'GT Double Switch EN', Intr).dir(Ea, 0x9b, Top, High).small_key().pos(0),
|
create_door(player, 'GT Double Switch EN', Intr).dir(Ea, 0x9b, Top, High).small_key().pos(0),
|
||||||
create_door(player, 'GT Spike Crystals WN', Intr).dir(We, 0x9b, Top, High).small_key().pos(0),
|
create_door(player, 'GT Spike Crystals WN', Intr).dir(We, 0x9b, Top, High).small_key().pos(0),
|
||||||
|
create_door(player, 'GT Spike Crystal Left to Right Barrier - Orange', Lgcl),
|
||||||
|
create_door(player, 'GT Spike Crystal Right to Left Barrier - Orange', Lgcl),
|
||||||
|
create_door(player, 'GT Spike Crystal Left to Right Bypass', Lgcl),
|
||||||
create_door(player, 'GT Spike Crystals Warp', Warp),
|
create_door(player, 'GT Spike Crystals Warp', Warp),
|
||||||
create_door(player, 'GT Warp Maze - Left Section Warp', Warp),
|
create_door(player, 'GT Warp Maze - Left Section Warp', Warp),
|
||||||
create_door(player, 'GT Warp Maze - Mid Section Left Warp', Warp),
|
create_door(player, 'GT Warp Maze - Mid Section Left Warp', Warp),
|
||||||
@@ -1094,6 +1219,10 @@ def create_doors(world, player):
|
|||||||
create_door(player, 'GT Bomb Conveyor EN', Intr).dir(Ea, 0x3d, Top, High).small_key().pos(1),
|
create_door(player, 'GT Bomb Conveyor EN', Intr).dir(Ea, 0x3d, Top, High).small_key().pos(1),
|
||||||
create_door(player, 'GT Bomb Conveyor SW', Intr).dir(So, 0x3d, Left, High).pos(3),
|
create_door(player, 'GT Bomb Conveyor SW', Intr).dir(So, 0x3d, Left, High).pos(3),
|
||||||
create_door(player, 'GT Crystal Circles NW', Intr).dir(No, 0x3d, Left, High).pos(3),
|
create_door(player, 'GT Crystal Circles NW', Intr).dir(No, 0x3d, Left, High).pos(3),
|
||||||
|
create_door(player, 'GT Crystal Circles Barrier - Orange', Lgcl),
|
||||||
|
create_door(player, 'GT Crystal Inner Circle Barrier - Orange', Lgcl),
|
||||||
|
create_door(player, 'GT Crystal Circles to Ranged Crystal', Lgcl),
|
||||||
|
create_door(player, 'GT Crystal Circles Ranged Crystal Exit', Lgcl),
|
||||||
create_door(player, 'GT Crystal Circles SW', Nrml).dir(So, 0x3d, Left, High).small_key().pos(2).portal(Z, 0x00),
|
create_door(player, 'GT Crystal Circles SW', Nrml).dir(So, 0x3d, Left, High).small_key().pos(2).portal(Z, 0x00),
|
||||||
create_door(player, 'GT Left Moldorm Ledge NW', Nrml).dir(No, 0x4d, Left, High).small_key().pos(0).kill(),
|
create_door(player, 'GT Left Moldorm Ledge NW', Nrml).dir(No, 0x4d, Left, High).small_key().pos(0).kill(),
|
||||||
create_door(player, 'GT Left Moldorm Ledge Drop Down', Lgcl),
|
create_door(player, 'GT Left Moldorm Ledge Drop Down', Lgcl),
|
||||||
@@ -1135,42 +1264,69 @@ def create_doors(world, player):
|
|||||||
world.get_door('Hyrule Castle Tapestry Backwards', player).event('Zelda Pickup')
|
world.get_door('Hyrule Castle Tapestry Backwards', player).event('Zelda Pickup')
|
||||||
|
|
||||||
# crystal switches and barriers
|
# crystal switches and barriers
|
||||||
world.get_door('Hera Lobby Down Stairs', player).c_switch()
|
world.get_door('Hera Lobby Crystal Exit', player).c_switch()
|
||||||
world.get_door('Hera Lobby Key Stairs', player).c_switch()
|
world.get_door('Hera Lobby to Front Barrier - Blue', player).barrier(CrystalBarrier.Blue)
|
||||||
world.get_door('Hera Lobby Up Stairs', player).c_switch()
|
world.get_door('Hera Front to Lobby Barrier - Blue', player).barrier(CrystalBarrier.Blue)
|
||||||
world.get_door('Hera Basement Cage Up Stairs', player).c_switch()
|
world.get_door('Hera Front Crystal Exit', player).c_switch()
|
||||||
|
world.get_door('Hera Front to Down Stairs Barrier - Blue', player).barrier(CrystalBarrier.Blue)
|
||||||
|
world.get_door('Hera Down Stairs to Front Barrier - Blue', player).barrier(CrystalBarrier.Blue)
|
||||||
|
world.get_door('Hera Down Stairs Landing Ranged Crystal Exit', player).c_switch()
|
||||||
|
world.get_door('Hera Front to Up Stairs Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||||
|
world.get_door('Hera Up Stairs to Front Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||||
|
world.get_door('Hera Up Stairs Landing Ranged Crystal Exit', player).c_switch()
|
||||||
|
world.get_door('Hera Front to Back Bypass', player).barrier(CrystalBarrier.Blue)
|
||||||
|
world.get_door('Hera Front to Back Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||||
|
world.get_door('Hera Back to Front Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||||
|
world.get_door('Hera Back Ranged Crystal Exit', player).c_switch()
|
||||||
|
world.get_door('Hera Basement Cage Crystal Exit', player).c_switch()
|
||||||
world.get_door('Hera Tile Room Up Stairs', player).c_switch()
|
world.get_door('Hera Tile Room Up Stairs', player).c_switch()
|
||||||
world.get_door('Hera Tile Room EN', player).c_switch()
|
world.get_door('Hera Tile Room EN', player).barrier(CrystalBarrier.Blue)
|
||||||
world.get_door('Hera Tridorm WN', player).c_switch()
|
world.get_door('Hera Tridorm WN', player).barrier(CrystalBarrier.Blue)
|
||||||
world.get_door('Hera Tridorm SE', player).c_switch()
|
world.get_door('Hera Tridorm Crystal Exit', player).c_switch()
|
||||||
|
world.get_door('Hera Tridorm SE', player).barrier(CrystalBarrier.Orange)
|
||||||
world.get_door('Hera Beetles Down Stairs', player).c_switch()
|
world.get_door('Hera Beetles Down Stairs', player).c_switch()
|
||||||
world.get_door('Hera Beetles WS', player).c_switch()
|
world.get_door('Hera Beetles WS', player).c_switch()
|
||||||
world.get_door('Hera Beetles Holes', player).c_switch()
|
world.get_door('Hera Beetles Holes Front', player).c_switch()
|
||||||
world.get_door('Hera Startile Wide SW', player).c_switch()
|
world.get_door('Hera Beetles Holes Landing', player).c_switch()
|
||||||
world.get_door('Hera Startile Wide Up Stairs', player).c_switch()
|
world.get_door('Hera Startile Wide Crystal Exit', player).c_switch()
|
||||||
world.get_door('Hera Startile Wide Holes', player).c_switch()
|
|
||||||
|
world.get_door('PoD Arena North to Landing Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||||
|
world.get_door('PoD Arena Main to Landing Barrier - Blue', player).barrier(CrystalBarrier.Blue)
|
||||||
|
world.get_door('PoD Arena Main to Landing Bypass', player).barrier(CrystalBarrier.Orange)
|
||||||
|
world.get_door('PoD Arena Main to Right Bypass', player).barrier(CrystalBarrier.Orange)
|
||||||
|
world.get_door('PoD Arena Main Ranged Crystal Exit', player).c_switch()
|
||||||
|
world.get_door('PoD Arena Bridge Ranged Crystal Exit', player).c_switch()
|
||||||
|
world.get_door('PoD Arena Landing to Main Barrier - Blue', player).barrier(CrystalBarrier.Blue)
|
||||||
|
world.get_door('PoD Arena Landing to Right Barrier - Blue', player).barrier(CrystalBarrier.Blue)
|
||||||
|
world.get_door('PoD Arena Landing to North Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||||
|
world.get_door('PoD Arena Right to Landing Barrier - Blue', player).barrier(CrystalBarrier.Blue)
|
||||||
|
world.get_door('PoD Arena Right Ranged Crystal Exit', player).c_switch()
|
||||||
|
world.get_door('PoD Arena Ledge Ranged Crystal Exit', player).c_switch()
|
||||||
|
|
||||||
world.get_door('PoD Arena Main SW', player).c_switch()
|
|
||||||
world.get_door('PoD Arena Bonk Path', player).c_switch()
|
|
||||||
world.get_door('PoD Arena Bridge SE', player).c_switch()
|
|
||||||
world.get_door('PoD Arena Bridge Drop Down', player).c_switch()
|
|
||||||
world.get_door('PoD Arena Main Orange Barrier', player).barrier(CrystalBarrier.Orange)
|
|
||||||
# maybe you can cross this way with blue up??
|
|
||||||
world.get_door('PoD Arena Main Crystal Path', player).barrier(CrystalBarrier.Blue)
|
|
||||||
world.get_door('PoD Arena Crystal Path', player).barrier(CrystalBarrier.Blue)
|
|
||||||
world.get_door('PoD Sexy Statue W', player).c_switch()
|
world.get_door('PoD Sexy Statue W', player).c_switch()
|
||||||
world.get_door('PoD Sexy Statue NW', player).c_switch()
|
world.get_door('PoD Sexy Statue NW', player).c_switch()
|
||||||
world.get_door('PoD Map Balcony WS', player).c_switch()
|
world.get_door('PoD Map Balcony Ranged Crystal Exit', player).c_switch()
|
||||||
world.get_door('PoD Map Balcony South Stairs', player).c_switch()
|
world.get_door('PoD Bow Statue Left Crystal Exit', player).c_switch()
|
||||||
world.get_door('PoD Bow Statue SW', player).c_switch()
|
world.get_door('PoD Bow Statue Left to Right Bypass', player).barrier(CrystalBarrier.Blue)
|
||||||
world.get_door('PoD Bow Statue Moving Wall Path', player).barrier(CrystalBarrier.Orange)
|
world.get_door('PoD Bow Statue Left to Right Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||||
world.get_door('PoD Bow Statue Crystal Path', player).c_switch()
|
world.get_door('PoD Bow Statue Right to Left Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||||
world.get_door('PoD Dark Pegs WN', player).c_switch()
|
world.get_door('PoD Bow Statue Ranged Crystal Exit', player).c_switch()
|
||||||
world.get_door('PoD Dark Pegs Switch Path', player).c_switch()
|
world.get_door('PoD Dark Pegs Right to Middle Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||||
world.get_door('PoD Dark Pegs Hammer Path', player).c_switch()
|
world.get_door('PoD Dark Pegs Right to Middle Bypass', player).barrier(CrystalBarrier.Blue)
|
||||||
|
world.get_door('PoD Dark Pegs Middle to Right Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||||
|
world.get_door('PoD Dark Pegs Middle to Left Barrier - Blue', player).barrier(CrystalBarrier.Blue)
|
||||||
|
world.get_door('PoD Dark Pegs Middle to Left Bypass', player).barrier(CrystalBarrier.Orange)
|
||||||
|
world.get_door('PoD Dark Pegs Left to Middle Barrier - Blue', player).barrier(CrystalBarrier.Blue)
|
||||||
|
world.get_door('PoD Dark Pegs Landing Ranged Crystal Exit', player).c_switch()
|
||||||
|
world.get_door('PoD Dark Pegs Middle Ranged Crystal Exit', player).c_switch()
|
||||||
|
world.get_door('PoD Dark Pegs Left Ranged Crystal Exit', player).c_switch()
|
||||||
|
|
||||||
world.get_door('Swamp Crystal Switch EN', player).c_switch()
|
world.get_door('Swamp Crystal Switch Outer to Inner Barrier - Blue', player).barrier(CrystalBarrier.Blue)
|
||||||
world.get_door('Swamp Crystal Switch SE', player).c_switch()
|
world.get_door('Swamp Crystal Switch Outer to Inner Bypass', player).barrier(CrystalBarrier.Orange)
|
||||||
|
world.get_door('Swamp Crystal Switch Inner to Outer Barrier - Blue', player).barrier(CrystalBarrier.Blue)
|
||||||
|
world.get_door('Swamp Crystal Switch Inner to Outer Bypass', player).barrier(CrystalBarrier.Orange)
|
||||||
|
world.get_door('Swamp Crystal Switch Inner Crystal Exit', player).c_switch()
|
||||||
|
world.get_door('Swamp Crystal Switch Outer Ranged Crystal Exit', player).c_switch()
|
||||||
world.get_door('Swamp Shortcut Blue Barrier', player).barrier(CrystalBarrier.Blue)
|
world.get_door('Swamp Shortcut Blue Barrier', player).barrier(CrystalBarrier.Blue)
|
||||||
world.get_door('Swamp Trench 2 Pots Blue Barrier', player).barrier(CrystalBarrier.Blue)
|
world.get_door('Swamp Trench 2 Pots Blue Barrier', player).barrier(CrystalBarrier.Blue)
|
||||||
world.get_door('Swamp Barrier Ledge - Orange', player).barrier(CrystalBarrier.Orange)
|
world.get_door('Swamp Barrier Ledge - Orange', player).barrier(CrystalBarrier.Orange)
|
||||||
@@ -1186,13 +1342,12 @@ def create_doors(world, player):
|
|||||||
world.get_door('Thieves Triple Bypass EN', player).barrier(CrystalBarrier.Blue)
|
world.get_door('Thieves Triple Bypass EN', player).barrier(CrystalBarrier.Blue)
|
||||||
world.get_door('Thieves Hellway Orange Barrier', player).barrier(CrystalBarrier.Orange)
|
world.get_door('Thieves Hellway Orange Barrier', player).barrier(CrystalBarrier.Orange)
|
||||||
world.get_door('Thieves Hellway Crystal Orange Barrier', player).barrier(CrystalBarrier.Orange)
|
world.get_door('Thieves Hellway Crystal Orange Barrier', player).barrier(CrystalBarrier.Orange)
|
||||||
world.get_door('Thieves Hellway Crystal Orange Barrier', player).barrier(CrystalBarrier.Orange)
|
|
||||||
world.get_door('Thieves Attic Orange Barrier', player).barrier(CrystalBarrier.Orange)
|
world.get_door('Thieves Attic Orange Barrier', player).barrier(CrystalBarrier.Orange)
|
||||||
world.get_door('Thieves Attic Hint Orange Barrier', player).barrier(CrystalBarrier.Orange)
|
world.get_door('Thieves Attic Hint Orange Barrier', player).barrier(CrystalBarrier.Orange)
|
||||||
|
|
||||||
world.get_door('Ice Bomb Drop SE', player).c_switch()
|
world.get_door('Ice Bomb Drop SE', player).c_switch()
|
||||||
world.get_door('Ice Conveyor SW', player).c_switch()
|
world.get_door('Ice Conveyor Crystal Exit', player).c_switch()
|
||||||
world.get_door('Ice Refill WS', player).c_switch()
|
world.get_door('Ice Refill Crystal Exit', player).c_switch()
|
||||||
world.get_door('Ice Bomb Drop Hole', player).barrier(CrystalBarrier.Orange) # not required to hit switch w/ bomb
|
world.get_door('Ice Bomb Drop Hole', player).barrier(CrystalBarrier.Orange) # not required to hit switch w/ bomb
|
||||||
world.get_door('Ice Bomb Jump Ledge Orange Barrier', player).barrier(CrystalBarrier.Orange)
|
world.get_door('Ice Bomb Jump Ledge Orange Barrier', player).barrier(CrystalBarrier.Orange)
|
||||||
world.get_door('Ice Bomb Jump Catwalk Orange Barrier', player).barrier(CrystalBarrier.Orange)
|
world.get_door('Ice Bomb Jump Catwalk Orange Barrier', player).barrier(CrystalBarrier.Orange)
|
||||||
@@ -1203,12 +1358,8 @@ def create_doors(world, player):
|
|||||||
world.get_door('Ice Backwards Room Hole', player).barrier(CrystalBarrier.Blue)
|
world.get_door('Ice Backwards Room Hole', player).barrier(CrystalBarrier.Blue)
|
||||||
|
|
||||||
world.get_door('Mire Fishbone E', player).c_switch()
|
world.get_door('Mire Fishbone E', player).c_switch()
|
||||||
world.get_door('Mire Conveyor Crystal ES', player).c_switch()
|
world.get_door('Mire Conveyor Crystal Exit', player).c_switch()
|
||||||
world.get_door('Mire Conveyor Crystal SE', player).c_switch()
|
world.get_door('Mire Tall Dark and Roomy Ranged Crystal Exit', player).c_switch()
|
||||||
world.get_door('Mire Conveyor Crystal WS', player).c_switch()
|
|
||||||
world.get_door('Mire Tall Dark and Roomy ES', player).c_switch()
|
|
||||||
world.get_door('Mire Tall Dark and Roomy WN', player).c_switch()
|
|
||||||
world.get_door('Mire Tall Dark and Roomy WS', player).c_switch()
|
|
||||||
world.get_door('Mire Crystal Top SW', player).c_switch()
|
world.get_door('Mire Crystal Top SW', player).c_switch()
|
||||||
world.get_door('Mire Falling Foes ES', player).c_switch()
|
world.get_door('Mire Falling Foes ES', player).c_switch()
|
||||||
world.get_door('Mire Falling Foes Up Stairs', player).c_switch()
|
world.get_door('Mire Falling Foes Up Stairs', player).c_switch()
|
||||||
@@ -1223,6 +1374,8 @@ def create_doors(world, player):
|
|||||||
world.get_door('Mire Crystal Dead End Left Barrier', player).barrier(CrystalBarrier.Blue)
|
world.get_door('Mire Crystal Dead End Left Barrier', player).barrier(CrystalBarrier.Blue)
|
||||||
world.get_door('Mire Crystal Dead End Right Barrier', player).barrier(CrystalBarrier.Blue)
|
world.get_door('Mire Crystal Dead End Right Barrier', player).barrier(CrystalBarrier.Blue)
|
||||||
world.get_door('Mire Fishbone Blue Barrier', player).barrier(CrystalBarrier.Blue)
|
world.get_door('Mire Fishbone Blue Barrier', player).barrier(CrystalBarrier.Blue)
|
||||||
|
world.get_door('Mire Fishbone Blue Barrier Bypass', player).barrier(CrystalBarrier.Orange)
|
||||||
|
|
||||||
world.get_door('Mire South Fish Blue Barrier', player).barrier(CrystalBarrier.Blue)
|
world.get_door('Mire South Fish Blue Barrier', player).barrier(CrystalBarrier.Blue)
|
||||||
world.get_door('Mire Compass Blue Barrier', player).barrier(CrystalBarrier.Blue)
|
world.get_door('Mire Compass Blue Barrier', player).barrier(CrystalBarrier.Blue)
|
||||||
world.get_door('Mire Crystal Mid Blue Barrier', player).barrier(CrystalBarrier.Blue)
|
world.get_door('Mire Crystal Mid Blue Barrier', player).barrier(CrystalBarrier.Blue)
|
||||||
@@ -1232,42 +1385,70 @@ def create_doors(world, player):
|
|||||||
world.get_door('Mire Firesnake Skip Orange Barrier', player).barrier(CrystalBarrier.Orange)
|
world.get_door('Mire Firesnake Skip Orange Barrier', player).barrier(CrystalBarrier.Orange)
|
||||||
world.get_door('Mire Antechamber Orange Barrier', player).barrier(CrystalBarrier.Orange)
|
world.get_door('Mire Antechamber Orange Barrier', player).barrier(CrystalBarrier.Orange)
|
||||||
|
|
||||||
world.get_door('TR Chain Chomps SW', player).c_switch()
|
world.get_door('TR Chain Chomps Top Crystal Exit', player).c_switch()
|
||||||
world.get_door('TR Chain Chomps Down Stairs', player).c_switch()
|
world.get_door('TR Chain Chomps Top to Bottom Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||||
world.get_door('TR Pokey 2 EN', player).c_switch()
|
world.get_door('TR Chain Chomps Bottom to Top Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||||
world.get_door('TR Pokey 2 ES', player).c_switch()
|
world.get_door('TR Chain Chomps Bottom Ranged Crystal Exit', player).c_switch()
|
||||||
world.get_door('TR Crystaroller SW', player).c_switch()
|
world.get_door('TR Pokey 2 Top Crystal Exit', player).c_switch()
|
||||||
world.get_door('TR Crystaroller Down Stairs', player).c_switch()
|
world.get_door('TR Pokey 2 Top to Bottom Barrier - Blue', player).barrier(CrystalBarrier.Blue)
|
||||||
world.get_door('TR Crystal Maze ES', player).c_switch()
|
world.get_door('TR Pokey 2 Bottom to Top Barrier - Blue', player).barrier(CrystalBarrier.Blue)
|
||||||
world.get_door('TR Crystal Maze Forwards Path', player).c_switch()
|
world.get_door('TR Pokey 2 Bottom Ranged Crystal Exit', player).c_switch()
|
||||||
world.get_door('TR Crystal Maze Cane Path', player).c_switch()
|
world.get_door('TR Crystaroller Bottom to Middle Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||||
world.get_door('TR Crystal Maze Blue Path', player).barrier(CrystalBarrier.Blue)
|
world.get_door('TR Crystaroller Middle to Bottom Bypass', player).barrier(CrystalBarrier.Blue)
|
||||||
|
world.get_door('TR Crystaroller Middle to Bottom Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||||
|
world.get_door('TR Crystaroller Middle to Chest Barrier - Blue', player).barrier(CrystalBarrier.Blue)
|
||||||
|
world.get_door('TR Crystaroller Chest to Middle Barrier - Blue', player).barrier(CrystalBarrier.Blue)
|
||||||
|
world.get_door('TR Crystaroller Middle to Top Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||||
|
world.get_door('TR Crystaroller Top to Middle Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||||
|
world.get_door('TR Crystaroller Middle Ranged Crystal Exit', player).c_switch()
|
||||||
|
world.get_door('TR Crystaroller Bottom Ranged Crystal Exit', player).c_switch()
|
||||||
|
world.get_door('TR Crystaroller Top Crystal Exit', player).c_switch()
|
||||||
|
world.get_door('TR Crystal Maze Start Crystal Exit', player).c_switch()
|
||||||
|
world.get_door('TR Crystal Maze Start to Interior Barrier - Blue', player).barrier(CrystalBarrier.Blue)
|
||||||
|
world.get_door('TR Crystal Maze Interior to Start Barrier - Blue', player).barrier(CrystalBarrier.Blue)
|
||||||
|
world.get_door('TR Crystal Maze Interior to End Barrier - Blue', player).barrier(CrystalBarrier.Blue)
|
||||||
|
world.get_door('TR Crystal Maze Interior to End Bypass', player).barrier(CrystalBarrier.Orange)
|
||||||
|
world.get_door('TR Crystal Maze Interior to Start Bypass', player).barrier(CrystalBarrier.Orange)
|
||||||
|
world.get_door('TR Crystal Maze End to Interior Barrier - Blue', player).barrier(CrystalBarrier.Blue)
|
||||||
|
world.get_door('TR Crystal Maze End Ranged Crystal Exit', player).c_switch()
|
||||||
|
|
||||||
world.get_door('GT Crystal Conveyor NE', player).c_switch()
|
world.get_door('GT Crystal Conveyor to Corner Barrier - Blue', player).barrier(CrystalBarrier.Blue)
|
||||||
world.get_door('GT Crystal Conveyor WN', player).c_switch()
|
world.get_door('GT Crystal Conveyor Corner to Barrier - Blue', player).barrier(CrystalBarrier.Blue)
|
||||||
|
world.get_door('GT Crystal Conveyor Corner to Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||||
|
world.get_door('GT Crystal Conveyor Left to Corner Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||||
|
world.get_door('GT Crystal Conveyor Ranged Crystal Exit', player).c_switch()
|
||||||
|
world.get_door('GT Crystal Conveyor Corner Ranged Crystal Exit', player).c_switch()
|
||||||
|
world.get_door('GT Crystal Conveyor Corner to Left Bypass', player).barrier(CrystalBarrier.Blue)
|
||||||
world.get_door('GT Hookshot South-North Path', player).c_switch()
|
world.get_door('GT Hookshot South-North Path', player).c_switch()
|
||||||
world.get_door('GT Hookshot South-East Path', player).c_switch()
|
world.get_door('GT Hookshot South-East Path', player).c_switch()
|
||||||
world.get_door('GT Hookshot ES', player).c_switch()
|
world.get_door('GT Hookshot ES', player).c_switch()
|
||||||
world.get_door('GT Hookshot Platform Blue Barrier', player).c_switch()
|
world.get_door('GT Hookshot Platform Barrier Bypass', player).barrier(CrystalBarrier.Orange)
|
||||||
world.get_door('GT Hookshot Entry Boomerang Path', player).c_switch()
|
world.get_door('GT Hookshot Platform Blue Barrier', player).barrier(CrystalBarrier.Blue)
|
||||||
world.get_door('GT Double Switch Orange Path', player).c_switch()
|
world.get_door('GT HookShot South Entry Ranged Crystal Exit', player).c_switch()
|
||||||
world.get_door('GT Double Switch Blue Path', player).c_switch()
|
|
||||||
world.get_door('GT Spike Crystals WN', player).c_switch()
|
world.get_door('GT Spike Crystals WN', player).c_switch()
|
||||||
world.get_door('GT Spike Crystals Warp', player).c_switch()
|
world.get_door('GT Spike Crystals Warp', player).c_switch()
|
||||||
world.get_door('GT Crystal Paths Down Stairs', player).c_switch()
|
world.get_door('GT Crystal Paths Down Stairs', player).c_switch()
|
||||||
world.get_door('GT Crystal Paths SW', player).c_switch()
|
world.get_door('GT Crystal Paths SW', player).c_switch()
|
||||||
world.get_door('GT Hidden Spikes SE', player).c_switch()
|
world.get_door('GT Hidden Spikes SE', player).c_switch()
|
||||||
world.get_door('GT Hidden Spikes EN', player).c_switch()
|
world.get_door('GT Hidden Spikes EN', player).c_switch()
|
||||||
world.get_door('GT Crystal Circles NW', player).c_switch()
|
world.get_door('GT Crystal Circles Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||||
world.get_door('GT Crystal Circles SW', player).c_switch()
|
world.get_door('GT Crystal Inner Circle Barrier - Orange', player).c_switch()
|
||||||
|
world.get_door('GT Crystal Circles Ranged Crystal Exit', player).c_switch()
|
||||||
world.get_door('GT Hookshot Entry Blue Barrier', player).barrier(CrystalBarrier.Blue)
|
world.get_door('GT Hookshot Entry Blue Barrier', player).barrier(CrystalBarrier.Blue)
|
||||||
world.get_door('GT Double Switch Orange Barrier', player).barrier(CrystalBarrier.Orange)
|
world.get_door('GT Double Switch Entry to Pot Corners Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||||
world.get_door('GT Double Switch Orange Barrier 2', player).barrier(CrystalBarrier.Orange)
|
world.get_door('GT Double Switch Entry to Left Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||||
world.get_door('GT Double Switch Orange Path', player).barrier(CrystalBarrier.Orange)
|
world.get_door('GT Double Switch Entry Ranged Switches Exit', player).c_switch()
|
||||||
world.get_door('GT Double Switch Key Orange Path', player).barrier(CrystalBarrier.Orange)
|
world.get_door('GT Double Switch Left to Entry Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||||
world.get_door('GT Double Switch Key Blue Path', player).barrier(CrystalBarrier.Blue)
|
world.get_door('GT Double Switch Left to Entry Bypass', player).barrier(CrystalBarrier.Blue)
|
||||||
world.get_door('GT Double Switch Blue Barrier', player).barrier(CrystalBarrier.Blue)
|
world.get_door('GT Double Switch Left to Pot Corners Bypass', player).barrier(CrystalBarrier.Blue)
|
||||||
world.get_door('GT Double Switch Transition Blue', player).barrier(CrystalBarrier.Blue)
|
world.get_door('GT Double Switch Left to Exit Bypass', player).barrier(CrystalBarrier.Orange)
|
||||||
|
world.get_door('GT Double Switch Pot Corners to Entry Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||||
|
world.get_door('GT Double Switch Pot Corners to Exit Barrier - Blue', player).barrier(CrystalBarrier.Blue)
|
||||||
|
world.get_door('GT Double Switch Pot Corners Ranged Switches Exit', player).c_switch()
|
||||||
|
world.get_door('GT Double Switch Exit to Blue Barrier', player).barrier(CrystalBarrier.Blue)
|
||||||
|
world.get_door('GT Spike Crystal Left to Right Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||||
|
world.get_door('GT Spike Crystal Right to Left Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||||
|
world.get_door('GT Spike Crystal Left to Right Bypass', player).barrier(CrystalBarrier.Blue)
|
||||||
|
|
||||||
# nifty dynamic logical doors:
|
# nifty dynamic logical doors:
|
||||||
south_controller = world.get_door('Ice Cross Bottom SE', player)
|
south_controller = world.get_door('Ice Cross Bottom SE', player)
|
||||||
|
|||||||
62
Dungeons.py
62
Dungeons.py
@@ -195,8 +195,11 @@ desert_regions = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
hera_regions = [
|
hera_regions = [
|
||||||
'Hera Lobby', 'Hera Basement Cage', 'Hera Tile Room', 'Hera Tridorm', 'Hera Torches', 'Hera Beetles',
|
'Hera Lobby', 'Hera Lobby - Crystal', 'Hera Front', 'Hera Back', 'Hera Front - Crystal', 'Hera Down Stairs Landing',
|
||||||
'Hera Startile Corner', 'Hera Startile Wide', 'Hera 4F', 'Hera Big Chest Landing', 'Hera 5F',
|
'Hera Down Stairs Landing - Ranged Crystal', 'Hera Up Stairs Landing', 'Hera Up Stairs Landing - Ranged Crystal',
|
||||||
|
'Hera Back - Ranged Crystal', 'Hera Basement Cage', 'Hera Basement Cage - Crystal', 'Hera Tile Room',
|
||||||
|
'Hera Tridorm', 'Hera Tridorm - Crystal', 'Hera Torches', 'Hera Beetles', 'Hera Startile Corner',
|
||||||
|
'Hera Startile Wide', 'Hera Startile Wide - Crystal', 'Hera 4F', 'Hera Big Chest Landing', 'Hera 5F',
|
||||||
'Hera Fairies', 'Hera Boss', 'Hera Portal'
|
'Hera Fairies', 'Hera Boss', 'Hera Portal'
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -209,19 +212,23 @@ tower_regions = [
|
|||||||
|
|
||||||
pod_regions = [
|
pod_regions = [
|
||||||
'PoD Lobby', 'PoD Left Cage', 'PoD Middle Cage', 'PoD Shooter Room', 'PoD Pit Room', 'PoD Pit Room Blocked',
|
'PoD Lobby', 'PoD Left Cage', 'PoD Middle Cage', 'PoD Shooter Room', 'PoD Pit Room', 'PoD Pit Room Blocked',
|
||||||
'PoD Arena Main', 'PoD Arena North', 'PoD Arena Crystal', 'PoD Arena Bridge', 'PoD Arena Ledge', 'PoD Sexy Statue',
|
'PoD Arena Main', 'PoD Arena Main - Ranged Crystal', 'PoD Arena North', 'PoD Arena Bridge', 'PoD Arena Bridge - Ranged Crystal',
|
||||||
'PoD Map Balcony', 'PoD Conveyor', 'PoD Mimics 1', 'PoD Jelly Hall', 'PoD Warp Hint', 'PoD Warp Room',
|
'PoD Arena Landing', 'PoD Arena Right', 'PoD Arena Right - Ranged Crystal', 'PoD Arena Ledge', 'PoD Arena Ledge - Ranged Crystal', 'PoD Sexy Statue',
|
||||||
|
'PoD Map Balcony', 'PoD Map Balcony - Ranged Crystal', 'PoD Conveyor', 'PoD Mimics 1', 'PoD Jelly Hall', 'PoD Warp Hint', 'PoD Warp Room',
|
||||||
'PoD Stalfos Basement', 'PoD Basement Ledge', 'PoD Big Key Landing', 'PoD Falling Bridge',
|
'PoD Stalfos Basement', 'PoD Basement Ledge', 'PoD Big Key Landing', 'PoD Falling Bridge',
|
||||||
'PoD Falling Bridge Ledge', 'PoD Dark Maze', 'PoD Big Chest Balcony', 'PoD Compass Room', 'PoD Dark Basement',
|
'PoD Falling Bridge Ledge', 'PoD Dark Maze', 'PoD Big Chest Balcony', 'PoD Compass Room', 'PoD Dark Basement',
|
||||||
'PoD Harmless Hellway', 'PoD Mimics 2', 'PoD Bow Statue', 'PoD Bow Statue Moving Wall', 'PoD Dark Pegs', 'PoD Dark Pegs Ladder', 'PoD Dark Pegs Switch',
|
'PoD Harmless Hellway', 'PoD Mimics 2', 'PoD Bow Statue Left', 'PoD Bow Statue Left - Crystal', 'PoD Bow Statue Right', 'PoD Bow Statue Right - Ranged Crystal',
|
||||||
'PoD Lonely Turtle', 'PoD Turtle Party', 'PoD Dark Alley', 'PoD Callback', 'PoD Boss', 'Palace of Darkness Portal'
|
'PoD Dark Pegs Landing', 'PoD Dark Pegs Right', 'PoD Dark Pegs Middle', 'PoD Dark Pegs Left', 'PoD Dark Pegs Landing - Ranged Crystal',
|
||||||
|
'PoD Dark Pegs Middle - Ranged Crystal', 'PoD Dark Pegs Left - Ranged Crystal', 'PoD Lonely Turtle', 'PoD Turtle Party',
|
||||||
|
'PoD Dark Alley', 'PoD Callback', 'PoD Boss', 'Palace of Darkness Portal'
|
||||||
]
|
]
|
||||||
|
|
||||||
swamp_regions = [
|
swamp_regions = [
|
||||||
'Swamp Lobby', 'Swamp Entrance', 'Swamp Pot Row', 'Swamp Map Ledge', 'Swamp Trench 1 Approach',
|
'Swamp Lobby', 'Swamp Entrance', 'Swamp Pot Row', 'Swamp Map Ledge', 'Swamp Trench 1 Approach',
|
||||||
'Swamp Trench 1 Nexus', 'Swamp Trench 1 Alcove', 'Swamp Trench 1 Key Ledge', 'Swamp Trench 1 Departure',
|
'Swamp Trench 1 Nexus', 'Swamp Trench 1 Alcove', 'Swamp Trench 1 Key Ledge', 'Swamp Trench 1 Departure',
|
||||||
'Swamp Hammer Switch', 'Swamp Hub', 'Swamp Hub Dead Ledge', 'Swamp Hub North Ledge', 'Swamp Donut Top',
|
'Swamp Hammer Switch', 'Swamp Hub', 'Swamp Hub Dead Ledge', 'Swamp Hub North Ledge', 'Swamp Donut Top',
|
||||||
'Swamp Donut Bottom', 'Swamp Compass Donut', 'Swamp Crystal Switch', 'Swamp Shortcut', 'Swamp Trench 2 Pots',
|
'Swamp Donut Bottom', 'Swamp Compass Donut', 'Swamp Crystal Switch Outer', 'Swamp Crystal Switch Outer - Ranged Crystal',
|
||||||
|
'Swamp Crystal Switch Inner', 'Swamp Crystal Switch Inner - Crystal', 'Swamp Shortcut', 'Swamp Trench 2 Pots',
|
||||||
'Swamp Trench 2 Blocks', 'Swamp Trench 2 Alcove', 'Swamp Trench 2 Departure', 'Swamp Big Key Ledge',
|
'Swamp Trench 2 Blocks', 'Swamp Trench 2 Alcove', 'Swamp Trench 2 Departure', 'Swamp Big Key Ledge',
|
||||||
'Swamp West Shallows', 'Swamp West Block Path', 'Swamp West Ledge', 'Swamp Barrier Ledge', 'Swamp Barrier',
|
'Swamp West Shallows', 'Swamp West Block Path', 'Swamp West Ledge', 'Swamp Barrier Ledge', 'Swamp Barrier',
|
||||||
'Swamp Attic', 'Swamp Push Statue', 'Swamp Shooters', 'Swamp Left Elbow', 'Swamp Right Elbow', 'Swamp Drain Left',
|
'Swamp Attic', 'Swamp Push Statue', 'Swamp Shooters', 'Swamp Left Elbow', 'Swamp Right Elbow', 'Swamp Drain Left',
|
||||||
@@ -253,13 +260,13 @@ thieves_regions = [
|
|||||||
ice_regions = [
|
ice_regions = [
|
||||||
'Ice Lobby', 'Ice Jelly Key', 'Ice Floor Switch', 'Ice Cross Left', 'Ice Cross Bottom', 'Ice Cross Right',
|
'Ice Lobby', 'Ice Jelly Key', 'Ice Floor Switch', 'Ice Cross Left', 'Ice Cross Bottom', 'Ice Cross Right',
|
||||||
'Ice Cross Top', 'Ice Compass Room', 'Ice Pengator Switch', 'Ice Dead End', 'Ice Big Key', 'Ice Bomb Drop',
|
'Ice Cross Top', 'Ice Compass Room', 'Ice Pengator Switch', 'Ice Dead End', 'Ice Big Key', 'Ice Bomb Drop',
|
||||||
'Ice Stalfos Hint', 'Ice Conveyor', 'Ice Bomb Jump Ledge', 'Ice Bomb Jump Catwalk', 'Ice Narrow Corridor',
|
'Ice Stalfos Hint', 'Ice Conveyor', 'Ice Conveyor - Crystal', 'Ice Bomb Jump Ledge', 'Ice Bomb Jump Catwalk', 'Ice Narrow Corridor',
|
||||||
'Ice Pengator Trap', 'Ice Spike Cross', 'Ice Firebar', 'Ice Falling Square', 'Ice Spike Room', 'Ice Hammer Block',
|
'Ice Pengator Trap', 'Ice Spike Cross', 'Ice Firebar', 'Ice Falling Square', 'Ice Spike Room', 'Ice Hammer Block',
|
||||||
'Ice Tongue Pull', 'Ice Freezors', 'Ice Freezors Ledge', 'Ice Tall Hint', 'Ice Hookshot Ledge',
|
'Ice Tongue Pull', 'Ice Freezors', 'Ice Freezors Ledge', 'Ice Tall Hint', 'Ice Hookshot Ledge',
|
||||||
'Ice Hookshot Balcony', 'Ice Spikeball', 'Ice Lonely Freezor', 'Iced T', 'Ice Catwalk', 'Ice Many Pots',
|
'Ice Hookshot Balcony', 'Ice Spikeball', 'Ice Lonely Freezor', 'Iced T', 'Ice Catwalk', 'Ice Many Pots',
|
||||||
'Ice Crystal Right', 'Ice Crystal Left', 'Ice Crystal Block', 'Ice Big Chest View', 'Ice Big Chest Landing',
|
'Ice Crystal Right', 'Ice Crystal Left', 'Ice Crystal Block', 'Ice Big Chest View', 'Ice Big Chest Landing',
|
||||||
'Ice Backwards Room', 'Ice Anti-Fairy', 'Ice Switch Room', 'Ice Refill', 'Ice Fairy', 'Ice Antechamber', 'Ice Boss',
|
'Ice Backwards Room', 'Ice Anti-Fairy', 'Ice Switch Room', 'Ice Refill', 'Ice Refill - Crystal',
|
||||||
'Ice Portal'
|
'Ice Fairy', 'Ice Antechamber', 'Ice Boss', 'Ice Portal'
|
||||||
]
|
]
|
||||||
|
|
||||||
mire_regions = [
|
mire_regions = [
|
||||||
@@ -268,31 +275,38 @@ mire_regions = [
|
|||||||
'Mire Crystal Dead End', 'Mire Hidden Shooters', 'Mire Hidden Shooters Blocked', 'Mire Cross', 'Mire Minibridge',
|
'Mire Crystal Dead End', 'Mire Hidden Shooters', 'Mire Hidden Shooters Blocked', 'Mire Cross', 'Mire Minibridge',
|
||||||
'Mire BK Door Room', 'Mire Spikes', 'Mire Ledgehop', 'Mire Bent Bridge', 'Mire Over Bridge', 'Mire Right Bridge',
|
'Mire BK Door Room', 'Mire Spikes', 'Mire Ledgehop', 'Mire Bent Bridge', 'Mire Over Bridge', 'Mire Right Bridge',
|
||||||
'Mire Left Bridge', 'Mire Fishbone', 'Mire South Fish', 'Mire Spike Barrier', 'Mire Square Rail', 'Mire Lone Warp',
|
'Mire Left Bridge', 'Mire Fishbone', 'Mire South Fish', 'Mire Spike Barrier', 'Mire Square Rail', 'Mire Lone Warp',
|
||||||
'Mire Wizzrobe Bypass', 'Mire Conveyor Crystal', 'Mire Tile Room', 'Mire Compass Room', 'Mire Compass Chest',
|
'Mire Wizzrobe Bypass', 'Mire Conveyor Crystal', 'Mire Conveyor - Crystal', 'Mire Tile Room', 'Mire Compass Room', 'Mire Compass Chest',
|
||||||
'Mire Neglected Room', 'Mire Chest View', 'Mire Conveyor Barrier', 'Mire BK Chest Ledge', 'Mire Warping Pool',
|
'Mire Neglected Room', 'Mire Chest View', 'Mire Conveyor Barrier', 'Mire BK Chest Ledge', 'Mire Warping Pool',
|
||||||
'Mire Torches Top', 'Mire Torches Bottom', 'Mire Attic Hint', 'Mire Dark Shooters', 'Mire Key Rupees',
|
'Mire Torches Top', 'Mire Torches Bottom', 'Mire Attic Hint', 'Mire Dark Shooters', 'Mire Key Rupees',
|
||||||
'Mire Block X', 'Mire Tall Dark and Roomy', 'Mire Crystal Right', 'Mire Crystal Mid', 'Mire Crystal Left',
|
'Mire Block X', 'Mire Tall Dark and Roomy', 'Mire Tall Dark and Roomy - Ranged Crystal', 'Mire Crystal Right', 'Mire Crystal Mid', 'Mire Crystal Left',
|
||||||
'Mire Crystal Top', 'Mire Shooter Rupees', 'Mire Falling Foes', 'Mire Firesnake Skip', 'Mire Antechamber',
|
'Mire Crystal Top', 'Mire Shooter Rupees', 'Mire Falling Foes', 'Mire Firesnake Skip', 'Mire Antechamber',
|
||||||
'Mire Boss', 'Mire Portal'
|
'Mire Boss', 'Mire Portal'
|
||||||
]
|
]
|
||||||
|
|
||||||
tr_regions = [
|
tr_regions = [
|
||||||
'TR Main Lobby', 'TR Lobby Ledge', 'TR Compass Room', 'TR Hub', 'TR Torches Ledge', 'TR Torches', 'TR Roller Room',
|
'TR Main Lobby', 'TR Lobby Ledge', 'TR Compass Room', 'TR Hub', 'TR Torches Ledge', 'TR Torches', 'TR Roller Room',
|
||||||
'TR Tile Room', 'TR Refill', 'TR Pokey 1', 'TR Chain Chomps', 'TR Pipe Pit', 'TR Pipe Ledge', 'TR Lava Dual Pipes',
|
'TR Tile Room', 'TR Refill', 'TR Pokey 1', 'TR Chain Chomps Top', 'TR Chain Chomps Top - Crystal',
|
||||||
'TR Lava Island', 'TR Lava Escape', 'TR Pokey 2', 'TR Twin Pokeys', 'TR Hallway', 'TR Dodgers', 'TR Big View',
|
'TR Chain Chomps Bottom', 'TR Chain Chomps Bottom - Ranged Crystal', 'TR Pipe Pit', 'TR Pipe Ledge', 'TR Lava Dual Pipes',
|
||||||
'TR Big Chest', 'TR Big Chest Entrance', 'TR Lazy Eyes', 'TR Dash Room', 'TR Tongue Pull', 'TR Rupees',
|
'TR Lava Island', 'TR Lava Escape', 'TR Pokey 2 Top', 'TR Pokey 2 Top - Crystal', 'TR Pokey 2 Bottom', 'TR Pokey 2 Bottom - Ranged Crystal',
|
||||||
'TR Crystaroller', 'TR Dark Ride', 'TR Dash Bridge', 'TR Eye Bridge', 'TR Crystal Maze', 'TR Crystal Maze End',
|
'TR Twin Pokeys', 'TR Hallway', 'TR Dodgers', 'TR Big View','TR Big Chest', 'TR Big Chest Entrance',
|
||||||
'TR Final Abyss', 'TR Boss', 'Turtle Rock Main Portal', 'Turtle Rock Lazy Eyes Portal', 'Turtle Rock Chest Portal',
|
'TR Lazy Eyes', 'TR Dash Room', 'TR Tongue Pull', 'TR Rupees', 'TR Crystaroller Bottom',
|
||||||
'Turtle Rock Eye Bridge Portal'
|
'TR Crystaroller Middle', 'TR Crystaroller Top', 'TR Crystaroller Top - Crystal', 'TR Crystaroller Chest',
|
||||||
|
'TR Crystaroller Middle - Ranged Crystal', 'TR Crystaroller Bottom - Ranged Crystal', 'TR Dark Ride', 'TR Dash Bridge', 'TR Eye Bridge',
|
||||||
|
'TR Crystal Maze Start', 'TR Crystal Maze Start - Crystal', 'TR Crystal Maze Interior', 'TR Crystal Maze End',
|
||||||
|
'TR Crystal Maze End - Ranged Crystal', 'TR Final Abyss', 'TR Boss', 'Turtle Rock Main Portal',
|
||||||
|
'Turtle Rock Lazy Eyes Portal', 'Turtle Rock Chest Portal', 'Turtle Rock Eye Bridge Portal'
|
||||||
]
|
]
|
||||||
|
|
||||||
gt_regions = [
|
gt_regions = [
|
||||||
'GT Lobby', 'GT Bob\'s Torch', 'GT Hope Room', 'GT Big Chest', 'GT Blocked Stairs', 'GT Bob\'s Room',
|
'GT Lobby', 'GT Bob\'s Torch', 'GT Hope Room', 'GT Big Chest', 'GT Blocked Stairs', 'GT Bob\'s Room',
|
||||||
'GT Tile Room', 'GT Speed Torch', 'GT Speed Torch Upper', 'GT Pots n Blocks', 'GT Crystal Conveyor',
|
'GT Tile Room', 'GT Speed Torch', 'GT Speed Torch Upper', 'GT Pots n Blocks', 'GT Crystal Conveyor',
|
||||||
|
'GT Crystal Conveyor Corner', 'GT Crystal Conveyor Left', 'GT Crystal Conveyor - Ranged Crystal',
|
||||||
|
'GT Crystal Conveyor Corner - Ranged Crystal',
|
||||||
'GT Compass Room', 'GT Invisible Bridges', 'GT Invisible Catwalk', 'GT Conveyor Cross', 'GT Hookshot East Platform',
|
'GT Compass Room', 'GT Invisible Bridges', 'GT Invisible Catwalk', 'GT Conveyor Cross', 'GT Hookshot East Platform',
|
||||||
'GT Hookshot North Platform', 'GT Hookshot South Platform', 'GT Hookshot South Entry', 'GT Map Room',
|
'GT Hookshot North Platform', 'GT Hookshot South Platform', 'GT Hookshot South Entry', 'GT Hookshot South Entry - Ranged Crystal', 'GT Map Room',
|
||||||
'GT Double Switch Entry', 'GT Double Switch Switches', 'GT Double Switch Transition', 'GT Double Switch Key Spot',
|
'GT Double Switch Entry', 'GT Double Switch Pot Corners - Ranged Switches', 'GT Double Switch Pot Corners', 'GT Double Switch Left',
|
||||||
'GT Double Switch Exit', 'GT Spike Crystals', 'GT Warp Maze - Left Section', 'GT Warp Maze - Mid Section',
|
'GT Double Switch Entry - Ranged Switches', 'GT Double Switch Exit', 'GT Spike Crystal Left',
|
||||||
|
'GT Spike Crystal Right', 'GT Warp Maze - Left Section', 'GT Warp Maze - Mid Section',
|
||||||
'GT Warp Maze - Right Section', 'GT Warp Maze - Pit Section', 'GT Warp Maze - Pit Exit Warp Spot',
|
'GT Warp Maze - Right Section', 'GT Warp Maze - Pit Section', 'GT Warp Maze - Pit Exit Warp Spot',
|
||||||
'GT Warp Maze Exit Section', 'GT Firesnake Room', 'GT Firesnake Room Ledge', 'GT Warp Maze - Rail Choice',
|
'GT Warp Maze Exit Section', 'GT Firesnake Room', 'GT Firesnake Room Ledge', 'GT Warp Maze - Rail Choice',
|
||||||
'GT Warp Maze - Rando Rail', 'GT Warp Maze - Main Rails', 'GT Warp Maze - Pot Rail', 'GT Petting Zoo',
|
'GT Warp Maze - Rando Rail', 'GT Warp Maze - Main Rails', 'GT Warp Maze - Pot Rail', 'GT Petting Zoo',
|
||||||
@@ -301,9 +315,9 @@ gt_regions = [
|
|||||||
'GT Dash Hall', 'GT Hidden Spikes', 'GT Cannonball Bridge', 'GT Refill', 'GT Gauntlet 1', 'GT Gauntlet 2',
|
'GT Dash Hall', 'GT Hidden Spikes', 'GT Cannonball Bridge', 'GT Refill', 'GT Gauntlet 1', 'GT Gauntlet 2',
|
||||||
'GT Gauntlet 3', 'GT Gauntlet 4', 'GT Gauntlet 5', 'GT Beam Dash', 'GT Lanmolas 2', 'GT Quad Pot', 'GT Wizzrobes 1',
|
'GT Gauntlet 3', 'GT Gauntlet 4', 'GT Gauntlet 5', 'GT Beam Dash', 'GT Lanmolas 2', 'GT Quad Pot', 'GT Wizzrobes 1',
|
||||||
'GT Dashing Bridge', 'GT Wizzrobes 2', 'GT Conveyor Bridge', 'GT Torch Cross', 'GT Staredown', 'GT Falling Torches',
|
'GT Dashing Bridge', 'GT Wizzrobes 2', 'GT Conveyor Bridge', 'GT Torch Cross', 'GT Staredown', 'GT Falling Torches',
|
||||||
'GT Mini Helmasaur Room', 'GT Bomb Conveyor', 'GT Crystal Circles', 'GT Left Moldorm Ledge',
|
'GT Mini Helmasaur Room', 'GT Bomb Conveyor', 'GT Crystal Circles', 'GT Crystal Inner Circle', 'GT Crystal Circles - Ranged Crystal',
|
||||||
'GT Right Moldorm Ledge', 'GT Moldorm', 'GT Moldorm Pit', 'GT Validation', 'GT Validation Door', 'GT Frozen Over',
|
'GT Left Moldorm Ledge', 'GT Right Moldorm Ledge', 'GT Moldorm', 'GT Moldorm Pit', 'GT Validation', 'GT Validation Door',
|
||||||
'GT Brightly Lit Hall', 'GT Agahnim 2', 'Ganons Tower Portal'
|
'GT Frozen Over', 'GT Brightly Lit Hall', 'GT Agahnim 2', 'Ganons Tower Portal'
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ vanilla_pots = {
|
|||||||
9: [Pot(12, 4, PotItem.OneRupee, 'PoD Shooter Room'), Pot(48, 4, PotItem.Heart, 'PoD Shooter Room'), Pot(12, 12, PotItem.Switch, 'PoD Shooter Room')],
|
9: [Pot(12, 4, PotItem.OneRupee, 'PoD Shooter Room'), Pot(48, 4, PotItem.Heart, 'PoD Shooter Room'), Pot(12, 12, PotItem.Switch, 'PoD Shooter Room')],
|
||||||
10: [Pot(96, 8, PotItem.Heart, 'PoD Stalfos Basement'), Pot(104, 8, PotItem.Heart, 'PoD Stalfos Basement'), Pot(204, 11, PotItem.Switch, 'PoD Stalfos Basement'), Pot(100, 9, PotItem.Nothing, 'PoD Stalfos Basement'),
|
10: [Pot(96, 8, PotItem.Heart, 'PoD Stalfos Basement'), Pot(104, 8, PotItem.Heart, 'PoD Stalfos Basement'), Pot(204, 11, PotItem.Switch, 'PoD Stalfos Basement'), Pot(100, 9, PotItem.Nothing, 'PoD Stalfos Basement'),
|
||||||
Pot(156, 17, PotItem.Bomb, 'PoD Basement Ledge', PotFlags.SwitchLogicChange), Pot(160, 17, PotItem.FiveArrows, 'PoD Basement Ledge', PotFlags.SwitchLogicChange)],
|
Pot(156, 17, PotItem.Bomb, 'PoD Basement Ledge', PotFlags.SwitchLogicChange), Pot(160, 17, PotItem.FiveArrows, 'PoD Basement Ledge', PotFlags.SwitchLogicChange)],
|
||||||
11: [Pot(202, 3, PotItem.Bomb, 'PoD Dark Pegs'), Pot(202, 12, PotItem.Bomb, 'PoD Dark Pegs')],
|
11: [Pot(202, 3, PotItem.Bomb, 'PoD Dark Pegs Left'), Pot(202, 12, PotItem.Bomb, 'PoD Dark Pegs Left')],
|
||||||
17: [Pot(152, 19, PotItem.Nothing, 'Sewers Secret Room'), Pot(152, 15, PotItem.Nothing, 'Sewers Secret Room'), Pot(144, 15, PotItem.Heart, 'Sewers Secret Room'), Pot(160, 15, PotItem.Heart, 'Sewers Secret Room'),
|
17: [Pot(152, 19, PotItem.Nothing, 'Sewers Secret Room'), Pot(152, 15, PotItem.Nothing, 'Sewers Secret Room'), Pot(144, 15, PotItem.Heart, 'Sewers Secret Room'), Pot(160, 15, PotItem.Heart, 'Sewers Secret Room'),
|
||||||
Pot(144, 19, PotItem.Heart, 'Sewers Secret Room'), Pot(160, 19, PotItem.Heart, 'Sewers Secret Room')],
|
Pot(144, 19, PotItem.Heart, 'Sewers Secret Room'), Pot(160, 19, PotItem.Heart, 'Sewers Secret Room')],
|
||||||
21: [Pot(96, 4, PotItem.Bomb, 'TR Pipe Pit'), Pot(100, 4, PotItem.SmallMagic, 'TR Pipe Pit'), Pot(104, 4, PotItem.Heart, 'TR Pipe Pit'), Pot(108, 4, PotItem.SmallMagic, 'TR Pipe Pit'), Pot(112, 4, PotItem.FiveArrows, 'TR Pipe Pit'),
|
21: [Pot(96, 4, PotItem.Bomb, 'TR Pipe Pit'), Pot(100, 4, PotItem.SmallMagic, 'TR Pipe Pit'), Pot(104, 4, PotItem.Heart, 'TR Pipe Pit'), Pot(108, 4, PotItem.SmallMagic, 'TR Pipe Pit'), Pot(112, 4, PotItem.FiveArrows, 'TR Pipe Pit'),
|
||||||
@@ -68,8 +68,8 @@ vanilla_pots = {
|
|||||||
57: [Pot(12, 20, PotItem.Heart, 'Skull Spike Corner'), Pot(48, 28, PotItem.FiveArrows, 'Skull Spike Corner'), Pot(100, 22, PotItem.SmallMagic, 'Skull Final Drop'), Pot(100, 26, PotItem.FiveArrows, 'Skull Final Drop')],
|
57: [Pot(12, 20, PotItem.Heart, 'Skull Spike Corner'), Pot(48, 28, PotItem.FiveArrows, 'Skull Spike Corner'), Pot(100, 22, PotItem.SmallMagic, 'Skull Final Drop'), Pot(100, 26, PotItem.FiveArrows, 'Skull Final Drop')],
|
||||||
60: [Pot(24, 8, PotItem.SmallMagic, 'Hookshot Cave'), Pot(64, 12, PotItem.FiveRupees, 'Hookshot Cave'), Pot(20, 14, PotItem.OneRupee, 'Hookshot Cave'), Pot(20, 19, PotItem.Nothing, 'Hookshot Cave'),
|
60: [Pot(24, 8, PotItem.SmallMagic, 'Hookshot Cave'), Pot(64, 12, PotItem.FiveRupees, 'Hookshot Cave'), Pot(20, 14, PotItem.OneRupee, 'Hookshot Cave'), Pot(20, 19, PotItem.Nothing, 'Hookshot Cave'),
|
||||||
Pot(68, 18, PotItem.FiveRupees, 'Hookshot Cave'), Pot(96, 19, PotItem.Heart, 'Hookshot Cave'), Pot(64, 20, PotItem.FiveRupees, 'Hookshot Cave'), Pot(64, 26, PotItem.FiveRupees, 'Hookshot Cave')],
|
Pot(68, 18, PotItem.FiveRupees, 'Hookshot Cave'), Pot(96, 19, PotItem.Heart, 'Hookshot Cave'), Pot(64, 20, PotItem.FiveRupees, 'Hookshot Cave'), Pot(64, 26, PotItem.FiveRupees, 'Hookshot Cave')],
|
||||||
61: [Pot(76, 12, PotItem.Bomb, 'GT Mini Helmasaur Room'), Pot(112, 12, PotItem.Bomb, 'GT Mini Helmasaur Room'), Pot(24, 22, PotItem.Heart, 'GT Crystal Circles'), Pot(40, 22, PotItem.FiveArrows, 'GT Crystal Circles'),
|
61: [Pot(76, 12, PotItem.Bomb, 'GT Mini Helmasaur Room'), Pot(112, 12, PotItem.Bomb, 'GT Mini Helmasaur Room'), Pot(24, 22, PotItem.Heart, 'GT Crystal Inner Circle'), Pot(40, 22, PotItem.FiveArrows, 'GT Crystal Inner Circle'),
|
||||||
Pot(32, 24, PotItem.Heart, 'GT Crystal Circles'), Pot(20, 26, PotItem.FiveRupees, 'GT Crystal Circles'), Pot(36, 26, PotItem.BigMagic, 'GT Crystal Circles')],
|
Pot(32, 24, PotItem.Heart, 'GT Crystal Inner Circle'), Pot(20, 26, PotItem.FiveRupees, 'GT Crystal Inner Circle'), Pot(36, 26, PotItem.BigMagic, 'GT Crystal Inner Circle')],
|
||||||
62: [Pot(96, 6, PotItem.Bomb, 'Ice Stalfos Hint'), Pot(100, 6, PotItem.SmallMagic, 'Ice Stalfos Hint'), Pot(88, 10, PotItem.Heart, 'Ice Stalfos Hint'), Pot(92, 10, PotItem.SmallMagic, 'Ice Stalfos Hint')],
|
62: [Pot(96, 6, PotItem.Bomb, 'Ice Stalfos Hint'), Pot(100, 6, PotItem.SmallMagic, 'Ice Stalfos Hint'), Pot(88, 10, PotItem.Heart, 'Ice Stalfos Hint'), Pot(92, 10, PotItem.SmallMagic, 'Ice Stalfos Hint')],
|
||||||
63: [Pot(12, 25, PotItem.OneRupee, 'Ice Hammer Block'), Pot(20, 25, PotItem.OneRupee, 'Ice Hammer Block'), Pot(12, 26, PotItem.Bomb, 'Ice Hammer Block'), Pot(20, 26, PotItem.Bomb, 'Ice Hammer Block'),
|
63: [Pot(12, 25, PotItem.OneRupee, 'Ice Hammer Block'), Pot(20, 25, PotItem.OneRupee, 'Ice Hammer Block'), Pot(12, 26, PotItem.Bomb, 'Ice Hammer Block'), Pot(20, 26, PotItem.Bomb, 'Ice Hammer Block'),
|
||||||
Pot(12, 27, PotItem.Switch, 'Ice Hammer Block'), Pot(20, 27, PotItem.Heart, 'Ice Hammer Block'), Pot(28, 23, PotItem.Key, 'Ice Hammer Block')],
|
Pot(12, 27, PotItem.Switch, 'Ice Hammer Block'), Pot(20, 27, PotItem.Heart, 'Ice Hammer Block'), Pot(28, 23, PotItem.Key, 'Ice Hammer Block')],
|
||||||
@@ -166,9 +166,9 @@ vanilla_pots = {
|
|||||||
150: [Pot(14, 18, PotItem.Nothing, 'GT Torch Cross'), Pot(32, 5, PotItem.Nothing, 'GT Torch Cross'), Pot(32, 17, PotItem.SmallMagic, 'GT Torch Cross'), Pot(32, 24, PotItem.SmallMagic, 'GT Torch Cross'),
|
150: [Pot(14, 18, PotItem.Nothing, 'GT Torch Cross'), Pot(32, 5, PotItem.Nothing, 'GT Torch Cross'), Pot(32, 17, PotItem.SmallMagic, 'GT Torch Cross'), Pot(32, 24, PotItem.SmallMagic, 'GT Torch Cross'),
|
||||||
Pot(14, 24, PotItem.Nothing, 'GT Torch Cross'), Pot(76, 21, PotItem.Heart, 'GT Staredown'), Pot(112, 21, PotItem.BigMagic, 'GT Staredown')],
|
Pot(14, 24, PotItem.Nothing, 'GT Torch Cross'), Pot(76, 21, PotItem.Heart, 'GT Staredown'), Pot(112, 21, PotItem.BigMagic, 'GT Staredown')],
|
||||||
153: [Pot(40, 20, PotItem.SmallMagic, 'Eastern Darkness'), Pot(84, 20, PotItem.Heart, 'Eastern Darkness')],
|
153: [Pot(40, 20, PotItem.SmallMagic, 'Eastern Darkness'), Pot(84, 20, PotItem.Heart, 'Eastern Darkness')],
|
||||||
155: [Pot(48, 4, PotItem.SmallMagic, 'GT Double Switch Key Spot'), Pot(48, 12, PotItem.Key, 'GT Double Switch Key Spot'), Pot(28, 24, PotItem.Nothing, 'GT Warp Maze - Mid Section'), Pot(32, 24, PotItem.Nothing, 'GT Warp Maze - Mid Section')],
|
155: [Pot(48, 4, PotItem.SmallMagic, 'GT Double Switch Pot Corners'), Pot(48, 12, PotItem.Key, 'GT Double Switch Pot Corners'), Pot(28, 24, PotItem.Nothing, 'GT Warp Maze - Mid Section'), Pot(32, 24, PotItem.Nothing, 'GT Warp Maze - Mid Section')],
|
||||||
156: [Pot(56, 8, PotItem.SmallMagic, 'GT Invisible Catwalk'), Pot(56, 9, PotItem.FiveArrows, 'GT Invisible Catwalk')],
|
156: [Pot(56, 8, PotItem.SmallMagic, 'GT Invisible Catwalk'), Pot(56, 9, PotItem.FiveArrows, 'GT Invisible Catwalk')],
|
||||||
157: [Pot(76, 4, PotItem.Bomb, 'GT Crystal Conveyor'), Pot(84, 4, PotItem.SmallMagic, 'GT Crystal Conveyor'), Pot(32, 7, PotItem.Nothing, 'GT Compass Room'), Pot(40, 9, PotItem.Nothing, 'GT Compass Room')],
|
157: [Pot(76, 4, PotItem.Bomb, 'GT Crystal Conveyor Left'), Pot(84, 4, PotItem.SmallMagic, 'GT Crystal Conveyor Left'), Pot(32, 7, PotItem.Nothing, 'GT Compass Room'), Pot(40, 9, PotItem.Nothing, 'GT Compass Room')],
|
||||||
159: [Pot(138, 20, PotItem.Nothing, 'Ice Many Pots'), Pot(138, 19, PotItem.Heart, 'Ice Many Pots'), Pot(178, 19, PotItem.Heart, 'Ice Many Pots'), Pot(40, 21, PotItem.Switch, 'Ice Many Pots'), Pot(138, 21, PotItem.Key, 'Ice Many Pots'),
|
159: [Pot(138, 20, PotItem.Nothing, 'Ice Many Pots'), Pot(138, 19, PotItem.Heart, 'Ice Many Pots'), Pot(178, 19, PotItem.Heart, 'Ice Many Pots'), Pot(40, 21, PotItem.Switch, 'Ice Many Pots'), Pot(138, 21, PotItem.Key, 'Ice Many Pots'),
|
||||||
Pot(20, 27, PotItem.Heart, 'Ice Many Pots'), Pot(138, 27, PotItem.Heart, 'Ice Many Pots'), Pot(178, 28, PotItem.Heart, 'Ice Many Pots'), Pot(178, 21, PotItem.Nothing, 'Ice Many Pots'), Pot(178, 20, PotItem.Nothing, 'Ice Many Pots'),
|
Pot(20, 27, PotItem.Heart, 'Ice Many Pots'), Pot(138, 27, PotItem.Heart, 'Ice Many Pots'), Pot(178, 28, PotItem.Heart, 'Ice Many Pots'), Pot(178, 21, PotItem.Nothing, 'Ice Many Pots'), Pot(178, 20, PotItem.Nothing, 'Ice Many Pots'),
|
||||||
Pot(40, 27, PotItem.Nothing, 'Ice Many Pots'), Pot(178, 27, PotItem.Nothing, 'Ice Many Pots'), Pot(178, 26, PotItem.Nothing, 'Ice Many Pots'), Pot(138, 28, PotItem.Nothing, 'Ice Many Pots'), Pot(138, 26, PotItem.Nothing, 'Ice Many Pots'),
|
Pot(40, 27, PotItem.Nothing, 'Ice Many Pots'), Pot(178, 27, PotItem.Nothing, 'Ice Many Pots'), Pot(178, 26, PotItem.Nothing, 'Ice Many Pots'), Pot(138, 28, PotItem.Nothing, 'Ice Many Pots'), Pot(138, 26, PotItem.Nothing, 'Ice Many Pots'),
|
||||||
@@ -211,8 +211,8 @@ vanilla_pots = {
|
|||||||
Pot(48, 28, PotItem.SmallMagic, 'Ice Refill')],
|
Pot(48, 28, PotItem.SmallMagic, 'Ice Refill')],
|
||||||
192: [Pot(48, 10, PotItem.Bomb, 'Tower Dark Pits'), Pot(12, 14, PotItem.FiveRupees, 'Tower Dark Pits'), Pot(12, 26, PotItem.Heart, 'Tower Dark Pits'), Pot(28, 27, PotItem.OneRupee, 'Tower Dark Pits')],
|
192: [Pot(48, 10, PotItem.Bomb, 'Tower Dark Pits'), Pot(12, 14, PotItem.FiveRupees, 'Tower Dark Pits'), Pot(12, 26, PotItem.Heart, 'Tower Dark Pits'), Pot(28, 27, PotItem.OneRupee, 'Tower Dark Pits')],
|
||||||
194: [Pot(180, 7, PotItem.Switch, 'Mire Hub Switch'), Pot(100, 46, PotItem.SmallMagic, 'Mire Hub Right'), Pot(68, 48, PotItem.OneRupee, 'Mire Hub'), Pot(64, 52, PotItem.FiveArrows, 'Mire Hub')],
|
194: [Pot(180, 7, PotItem.Switch, 'Mire Hub Switch'), Pot(100, 46, PotItem.SmallMagic, 'Mire Hub Right'), Pot(68, 48, PotItem.OneRupee, 'Mire Hub'), Pot(64, 52, PotItem.FiveArrows, 'Mire Hub')],
|
||||||
196: [Pot(84, 9, PotItem.Bomb, 'TR Crystal Maze'), Pot(24, 14, PotItem.Heart, 'TR Crystal Maze'), Pot(56, 17, PotItem.FiveRupees, 'TR Crystal Maze'), Pot(84, 17, PotItem.Bomb, 'TR Crystal Maze'),
|
196: [Pot(84, 9, PotItem.Bomb, 'TR Crystal Maze Interior'), Pot(24, 14, PotItem.Heart, 'TR Crystal Maze Interior'), Pot(56, 17, PotItem.FiveRupees, 'TR Crystal Maze Interior'), Pot(84, 17, PotItem.Bomb, 'TR Crystal Maze Interior'),
|
||||||
Pot(12, 21, PotItem.FiveArrows, 'TR Crystal Maze'), Pot(76, 23, PotItem.OneRupee, 'TR Crystal Maze'), Pot(48, 25, PotItem.SmallMagic, 'TR Crystal Maze'), Pot(12, 26, PotItem.Heart, 'TR Crystal Maze')],
|
Pot(12, 21, PotItem.FiveArrows, 'TR Crystal Maze Interior'), Pot(76, 23, PotItem.OneRupee, 'TR Crystal Maze Interior'), Pot(48, 25, PotItem.SmallMagic, 'TR Crystal Maze Interior'), Pot(12, 26, PotItem.Heart, 'TR Crystal Maze Interior')],
|
||||||
198: [Pot(12, 7, PotItem.BigMagic, 'TR Hub'), Pot(12, 25, PotItem.Heart, 'TR Hub')],
|
198: [Pot(12, 7, PotItem.BigMagic, 'TR Hub'), Pot(12, 25, PotItem.Heart, 'TR Hub')],
|
||||||
199: [Pot(12, 10, PotItem.Heart, 'TR Torches'), Pot(12, 11, PotItem.BigMagic, 'TR Torches'), Pot(12, 22, PotItem.SmallMagic, 'TR Torches Ledge'), Pot(12, 28, PotItem.FiveArrows, 'TR Torches Ledge')],
|
199: [Pot(12, 10, PotItem.Heart, 'TR Torches'), Pot(12, 11, PotItem.BigMagic, 'TR Torches'), Pot(12, 22, PotItem.SmallMagic, 'TR Torches Ledge'), Pot(12, 28, PotItem.FiveArrows, 'TR Torches Ledge')],
|
||||||
201: [Pot(30, 22, PotItem.OneRupee, 'Eastern Lobby'), Pot(94, 22, PotItem.OneRupee, 'Eastern Lobby'), Pot(60, 22, PotItem.Switch, 'Eastern Lobby')],
|
201: [Pot(30, 22, PotItem.OneRupee, 'Eastern Lobby'), Pot(94, 22, PotItem.OneRupee, 'Eastern Lobby'), Pot(60, 22, PotItem.Switch, 'Eastern Lobby')],
|
||||||
|
|||||||
209
Regions.py
209
Regions.py
@@ -338,14 +338,26 @@ def create_dungeon_regions(world, player):
|
|||||||
create_dungeon_region(player, 'Desert Boss', 'Desert Palace', ['Desert Palace - Boss', 'Desert Palace - Prize'], ['Desert Boss SW']),
|
create_dungeon_region(player, 'Desert Boss', 'Desert Palace', ['Desert Palace - Boss', 'Desert Palace - Prize'], ['Desert Boss SW']),
|
||||||
|
|
||||||
# Hera
|
# Hera
|
||||||
create_dungeon_region(player, 'Hera Lobby', 'Tower of Hera', ['Tower of Hera - Map Chest'], ['Hera Lobby Down Stairs', 'Hera Lobby Key Stairs', 'Hera Lobby Up Stairs', 'Hera Lobby S']),
|
create_dungeon_region(player, 'Hera Lobby', 'Tower of Hera', None, ['Hera Lobby S', 'Hera Lobby to Crystal', 'Hera Lobby to Front Barrier - Blue']),
|
||||||
create_dungeon_region(player, 'Hera Basement Cage', 'Tower of Hera', ['Tower of Hera - Basement Cage'], ['Hera Basement Cage Up Stairs']),
|
create_dungeon_region(player, 'Hera Lobby - Crystal', 'Tower of Hera', None, ['Hera Lobby Crystal Exit']),
|
||||||
|
create_dungeon_region(player, 'Hera Front', 'Tower of Hera', None, ['Hera Front to Crystal', 'Hera Front to Lobby Barrier - Blue', 'Hera Front to Down Stairs Barrier - Blue', 'Hera Front to Up Stairs Barrier - Orange', 'Hera Front to Back Barrier - Orange', 'Hera Front to Back Bypass']),
|
||||||
|
create_dungeon_region(player, 'Hera Front - Crystal', 'Tower of Hera', None, ['Hera Front Crystal Exit']),
|
||||||
|
create_dungeon_region(player, 'Hera Down Stairs Landing', 'Tower of Hera', None, ['Hera Lobby Down Stairs', 'Hera Down Stairs to Front Barrier - Blue', 'Hera Down Stairs Landing to Ranged Crystal']),
|
||||||
|
create_dungeon_region(player, 'Hera Down Stairs Landing - Ranged Crystal', 'Tower of Hera', None, ['Hera Down Stairs Landing Ranged Crystal Exit']),
|
||||||
|
create_dungeon_region(player, 'Hera Up Stairs Landing', 'Tower of Hera', None, ['Hera Up Stairs to Front Barrier - Orange', 'Hera Lobby Up Stairs', 'Hera Up Stairs Landing to Ranged Crystal']),
|
||||||
|
create_dungeon_region(player, 'Hera Up Stairs Landing - Ranged Crystal', 'Tower of Hera', None, ['Hera Up Stairs Landing Ranged Crystal Exit']),
|
||||||
|
create_dungeon_region(player, 'Hera Back', 'Tower of Hera', ['Tower of Hera - Map Chest'], ['Hera Back to Front Barrier - Orange', 'Hera Lobby Key Stairs', 'Hera Back to Ranged Crystal']),
|
||||||
|
create_dungeon_region(player, 'Hera Back - Ranged Crystal', 'Tower of Hera', None, ['Hera Back Ranged Crystal Exit']),
|
||||||
|
create_dungeon_region(player, 'Hera Basement Cage', 'Tower of Hera', ['Tower of Hera - Basement Cage'], ['Hera Basement Cage to Crystal', 'Hera Basement Cage Up Stairs']),
|
||||||
|
create_dungeon_region(player, 'Hera Basement Cage - Crystal', 'Tower of Hera', None, ['Hera Basement Cage Crystal Exit']),
|
||||||
create_dungeon_region(player, 'Hera Tile Room', 'Tower of Hera', None, ['Hera Tile Room Up Stairs', 'Hera Tile Room EN']),
|
create_dungeon_region(player, 'Hera Tile Room', 'Tower of Hera', None, ['Hera Tile Room Up Stairs', 'Hera Tile Room EN']),
|
||||||
create_dungeon_region(player, 'Hera Tridorm', 'Tower of Hera', None, ['Hera Tridorm WN', 'Hera Tridorm SE']),
|
create_dungeon_region(player, 'Hera Tridorm', 'Tower of Hera', None, ['Hera Tridorm WN', 'Hera Tridorm SE', 'Hera Tridorm to Crystal']),
|
||||||
|
create_dungeon_region(player, 'Hera Tridorm - Crystal', 'Tower of Hera', None, ['Hera Tridorm Crystal Exit']),
|
||||||
create_dungeon_region(player, 'Hera Torches', 'Tower of Hera', ['Tower of Hera - Big Key Chest'], ['Hera Torches NE']),
|
create_dungeon_region(player, 'Hera Torches', 'Tower of Hera', ['Tower of Hera - Big Key Chest'], ['Hera Torches NE']),
|
||||||
create_dungeon_region(player, 'Hera Beetles', 'Tower of Hera', None, ['Hera Beetles Down Stairs', 'Hera Beetles WS', 'Hera Beetles Holes']),
|
create_dungeon_region(player, 'Hera Beetles', 'Tower of Hera', None, ['Hera Beetles Down Stairs', 'Hera Beetles WS', 'Hera Beetles Holes Front', 'Hera Beetles Holes Landing']),
|
||||||
create_dungeon_region(player, 'Hera Startile Corner', 'Tower of Hera', None, ['Hera Startile Corner ES', 'Hera Startile Corner NW', 'Hera Startile Corner Holes']),
|
create_dungeon_region(player, 'Hera Startile Corner', 'Tower of Hera', None, ['Hera Startile Corner ES', 'Hera Startile Corner NW', 'Hera Startile Corner Holes Front', 'Hera Startile Corner Holes Landing']),
|
||||||
create_dungeon_region(player, 'Hera Startile Wide', 'Tower of Hera', None, ['Hera Startile Wide SW', 'Hera Startile Wide Up Stairs', 'Hera Startile Wide Holes']),
|
create_dungeon_region(player, 'Hera Startile Wide', 'Tower of Hera', None, ['Hera Startile Wide SW', 'Hera Startile Wide Up Stairs', 'Hera Startile Wide Holes', 'Hera Startile Wide to Crystal']),
|
||||||
|
create_dungeon_region(player, 'Hera Startile Wide - Crystal', 'Tower of Hera', None, ['Hera Startile Wide Crystal Exit']),
|
||||||
create_dungeon_region(player, 'Hera 4F', 'Tower of Hera', ['Tower of Hera - Compass Chest'], ['Hera 4F Down Stairs', 'Hera 4F Up Stairs', 'Hera Big Chest Hook Path', 'Hera 4F Holes']),
|
create_dungeon_region(player, 'Hera 4F', 'Tower of Hera', ['Tower of Hera - Compass Chest'], ['Hera 4F Down Stairs', 'Hera 4F Up Stairs', 'Hera Big Chest Hook Path', 'Hera 4F Holes']),
|
||||||
create_dungeon_region(player, 'Hera Big Chest Landing', 'Tower of Hera', ['Tower of Hera - Big Chest'], ['Hera Big Chest Landing Exit', 'Hera Big Chest Landing Holes']),
|
create_dungeon_region(player, 'Hera Big Chest Landing', 'Tower of Hera', ['Tower of Hera - Big Chest'], ['Hera Big Chest Landing Exit', 'Hera Big Chest Landing Holes']),
|
||||||
create_dungeon_region(player, 'Hera 5F', 'Tower of Hera', None, ['Hera 5F Down Stairs', 'Hera 5F Up Stairs', 'Hera 5F Star Hole', 'Hera 5F Pothole Chain', 'Hera 5F Normal Holes']),
|
create_dungeon_region(player, 'Hera 5F', 'Tower of Hera', None, ['Hera 5F Down Stairs', 'Hera 5F Up Stairs', 'Hera 5F Star Hole', 'Hera 5F Pothole Chain', 'Hera 5F Normal Holes']),
|
||||||
@@ -379,13 +391,19 @@ def create_dungeon_regions(world, player):
|
|||||||
create_dungeon_region(player, 'PoD Shooter Room', 'Palace of Darkness', ['Palace of Darkness - Shooter Room'], ['PoD Shooter Room Up Stairs']),
|
create_dungeon_region(player, 'PoD Shooter Room', 'Palace of Darkness', ['Palace of Darkness - Shooter Room'], ['PoD Shooter Room Up Stairs']),
|
||||||
create_dungeon_region(player, 'PoD Pit Room', 'Palace of Darkness', None, ['PoD Pit Room S', 'PoD Pit Room NW', 'PoD Pit Room Bomb Hole', 'PoD Pit Room Block Path N']),
|
create_dungeon_region(player, 'PoD Pit Room', 'Palace of Darkness', None, ['PoD Pit Room S', 'PoD Pit Room NW', 'PoD Pit Room Bomb Hole', 'PoD Pit Room Block Path N']),
|
||||||
create_dungeon_region(player, 'PoD Pit Room Blocked', 'Palace of Darkness', None, ['PoD Pit Room NE', 'PoD Pit Room Freefall', 'PoD Pit Room Block Path S']),
|
create_dungeon_region(player, 'PoD Pit Room Blocked', 'Palace of Darkness', None, ['PoD Pit Room NE', 'PoD Pit Room Freefall', 'PoD Pit Room Block Path S']),
|
||||||
create_dungeon_region(player, 'PoD Arena Main', 'Palace of Darkness', None, ['PoD Arena Main SW', 'PoD Arena Main Crystal Path', 'PoD Arena Main Orange Barrier', 'PoD Arena Bonk Path']),
|
create_dungeon_region(player, 'PoD Arena Main', 'Palace of Darkness', None, ['PoD Arena Main SW', 'PoD Arena Main to Ranged Crystal', 'PoD Arena Main to Landing Barrier - Blue', 'PoD Arena Main to Landing Bypass', 'PoD Arena Main to Right Bypass']),
|
||||||
create_dungeon_region(player, 'PoD Arena North', 'Palace of Darkness', None, ['PoD Arena Main NW', 'PoD Arena Main NE', 'PoD Arena North Drop Down']),
|
create_dungeon_region(player, 'PoD Arena Main - Ranged Crystal', 'Palace of Darkness', None, ['PoD Arena Main Ranged Crystal Exit']),
|
||||||
create_dungeon_region(player, 'PoD Arena Crystal', 'Palace of Darkness', None, ['PoD Arena Crystals E', 'PoD Arena Crystal Path']),
|
create_dungeon_region(player, 'PoD Arena North', 'Palace of Darkness', None, ['PoD Arena Main NW', 'PoD Arena Main NE', 'PoD Arena North Drop Down', 'PoD Arena North to Landing Barrier - Orange']),
|
||||||
create_dungeon_region(player, 'PoD Arena Bridge', 'Palace of Darkness', ['Palace of Darkness - The Arena - Bridge'], ['PoD Arena Bridge SE', 'PoD Arena Bridge Drop Down']),
|
create_dungeon_region(player, 'PoD Arena Bridge', 'Palace of Darkness', ['Palace of Darkness - The Arena - Bridge'], ['PoD Arena Bridge SE', 'PoD Arena Bridge Drop Down', 'PoD Arena Bridge to Ranged Crystal']),
|
||||||
create_dungeon_region(player, 'PoD Arena Ledge', 'Palace of Darkness', ['Palace of Darkness - The Arena - Ledge'], ['PoD Arena Ledge ES']),
|
create_dungeon_region(player, 'PoD Arena Bridge - Ranged Crystal', 'Palace of Darkness', None, ['PoD Arena Bridge Ranged Crystal Exit']),
|
||||||
|
create_dungeon_region(player, 'PoD Arena Landing', 'Palace of Darkness', None, ['PoD Arena Landing to Main Barrier - Blue', 'PoD Arena Landing to Right Barrier - Blue', 'PoD Arena Landing to North Barrier - Orange', 'PoD Arena Landing Bonk Path']),
|
||||||
|
create_dungeon_region(player, 'PoD Arena Right', 'Palace of Darkness', None, ['PoD Arena Crystals E', 'PoD Arena Right to Landing Barrier - Blue', 'PoD Arena Right to Ranged Crystal']),
|
||||||
|
create_dungeon_region(player, 'PoD Arena Right - Ranged Crystal', 'Palace of Darkness', None, ['PoD Arena Right Ranged Crystal Exit']),
|
||||||
|
create_dungeon_region(player, 'PoD Arena Ledge', 'Palace of Darkness', ['Palace of Darkness - The Arena - Ledge'], ['PoD Arena Ledge ES', 'PoD Arena Ledge to Ranged Crystal']),
|
||||||
|
create_dungeon_region(player, 'PoD Arena Ledge - Ranged Crystal', 'Palace of Darkness', None, ['PoD Arena Ledge Ranged Crystal Exit']),
|
||||||
create_dungeon_region(player, 'PoD Sexy Statue', 'Palace of Darkness', None, ['PoD Sexy Statue W', 'PoD Sexy Statue NW']),
|
create_dungeon_region(player, 'PoD Sexy Statue', 'Palace of Darkness', None, ['PoD Sexy Statue W', 'PoD Sexy Statue NW']),
|
||||||
create_dungeon_region(player, 'PoD Map Balcony', 'Palace of Darkness', ['Palace of Darkness - Map Chest'], ['PoD Map Balcony WS', 'PoD Map Balcony South Stairs', 'PoD Map Balcony Drop Down']),
|
create_dungeon_region(player, 'PoD Map Balcony', 'Palace of Darkness', ['Palace of Darkness - Map Chest'], ['PoD Map Balcony to Ranged Crystal', 'PoD Map Balcony WS', 'PoD Map Balcony South Stairs', 'PoD Map Balcony Drop Down']),
|
||||||
|
create_dungeon_region(player, 'PoD Map Balcony - Ranged Crystal', 'Palace of Darkness', None, ['PoD Map Balcony Ranged Crystal Exit']),
|
||||||
create_dungeon_region(player, 'PoD Conveyor', 'Palace of Darkness', None, ['PoD Conveyor North Stairs', 'PoD Conveyor SW']),
|
create_dungeon_region(player, 'PoD Conveyor', 'Palace of Darkness', None, ['PoD Conveyor North Stairs', 'PoD Conveyor SW']),
|
||||||
create_dungeon_region(player, 'PoD Mimics 1', 'Palace of Darkness', None, ['PoD Mimics 1 NW', 'PoD Mimics 1 SW']),
|
create_dungeon_region(player, 'PoD Mimics 1', 'Palace of Darkness', None, ['PoD Mimics 1 NW', 'PoD Mimics 1 SW']),
|
||||||
create_dungeon_region(player, 'PoD Jelly Hall', 'Palace of Darkness', None, ['PoD Jelly Hall NW', 'PoD Jelly Hall NE']),
|
create_dungeon_region(player, 'PoD Jelly Hall', 'Palace of Darkness', None, ['PoD Jelly Hall NW', 'PoD Jelly Hall NE']),
|
||||||
@@ -402,11 +420,17 @@ def create_dungeon_regions(world, player):
|
|||||||
create_dungeon_region(player, 'PoD Dark Basement', 'Palace of Darkness', ['Palace of Darkness - Dark Basement - Left', 'Palace of Darkness - Dark Basement - Right'], ['PoD Dark Basement W Up Stairs', 'PoD Dark Basement E Up Stairs']),
|
create_dungeon_region(player, 'PoD Dark Basement', 'Palace of Darkness', ['Palace of Darkness - Dark Basement - Left', 'Palace of Darkness - Dark Basement - Right'], ['PoD Dark Basement W Up Stairs', 'PoD Dark Basement E Up Stairs']),
|
||||||
create_dungeon_region(player, 'PoD Harmless Hellway', 'Palace of Darkness', ['Palace of Darkness - Harmless Hellway'], ['PoD Harmless Hellway NE', 'PoD Harmless Hellway SE']),
|
create_dungeon_region(player, 'PoD Harmless Hellway', 'Palace of Darkness', ['Palace of Darkness - Harmless Hellway'], ['PoD Harmless Hellway NE', 'PoD Harmless Hellway SE']),
|
||||||
create_dungeon_region(player, 'PoD Mimics 2', 'Palace of Darkness', None, ['PoD Mimics 2 SW', 'PoD Mimics 2 NW']),
|
create_dungeon_region(player, 'PoD Mimics 2', 'Palace of Darkness', None, ['PoD Mimics 2 SW', 'PoD Mimics 2 NW']),
|
||||||
create_dungeon_region(player, 'PoD Bow Statue', 'Palace of Darkness', None, ['PoD Bow Statue SW', 'PoD Bow Statue Crystal Path']),
|
create_dungeon_region(player, 'PoD Bow Statue Left', 'Palace of Darkness', None, ['PoD Bow Statue SW', 'PoD Bow Statue Left to Right Barrier - Orange', 'PoD Bow Statue Left to Right Bypass', 'PoD Bow Statue Left to Crystal']),
|
||||||
create_dungeon_region(player, 'PoD Bow Statue Moving Wall', 'Palace of Darkness', None, ['PoD Bow Statue Moving Wall Path', 'PoD Bow Statue Down Ladder', 'PoD Bow Statue Moving Wall Cane Path']),
|
create_dungeon_region(player, 'PoD Bow Statue Left - Crystal', 'Palace of Darkness', None, ['PoD Bow Statue Left Crystal Exit']),
|
||||||
create_dungeon_region(player, 'PoD Dark Pegs', 'Palace of Darkness', None, ['PoD Dark Pegs Hammer Path', 'PoD Dark Pegs WN']),
|
create_dungeon_region(player, 'PoD Bow Statue Right', 'Palace of Darkness', None, ['PoD Bow Statue Right to Left Barrier - Orange', 'PoD Bow Statue Right to Ranged Crystal', 'PoD Bow Statue Down Ladder']),
|
||||||
create_dungeon_region(player, 'PoD Dark Pegs Ladder', 'Palace of Darkness', None, ['PoD Dark Pegs Up Ladder', 'PoD Dark Pegs Ladder Hammer Path', 'PoD Dark Pegs Ladder Cane Path']),
|
create_dungeon_region(player, 'PoD Bow Statue Right - Ranged Crystal', 'Palace of Darkness', None, ['PoD Bow Statue Ranged Crystal Exit']),
|
||||||
create_dungeon_region(player, 'PoD Dark Pegs Switch', 'Palace of Darkness', None, ['PoD Dark Pegs Switch Path']),
|
create_dungeon_region(player, 'PoD Dark Pegs Landing', 'Palace of Darkness', None, ['PoD Dark Pegs Up Ladder', 'PoD Dark Pegs Landing to Right', 'PoD Dark Pegs Landing to Ranged Crystal']),
|
||||||
|
create_dungeon_region(player, 'PoD Dark Pegs Right', 'Palace of Darkness', None, ['PoD Dark Pegs Right to Landing', 'PoD Dark Pegs Right to Middle Barrier - Orange', 'PoD Dark Pegs Right to Middle Bypass']),
|
||||||
|
create_dungeon_region(player, 'PoD Dark Pegs Middle', 'Palace of Darkness', None, ['PoD Dark Pegs Middle to Right Barrier - Orange', 'PoD Dark Pegs Middle to Left Barrier - Blue', 'PoD Dark Pegs Middle to Ranged Crystal', 'PoD Dark Pegs Middle to Left Bypass']),
|
||||||
|
create_dungeon_region(player, 'PoD Dark Pegs Left', 'Palace of Darkness', None, ['PoD Dark Pegs WN', 'PoD Dark Pegs Left to Middle Barrier - Blue', 'PoD Dark Pegs Left to Ranged Crystal']),
|
||||||
|
create_dungeon_region(player, 'PoD Dark Pegs Landing - Ranged Crystal', 'Palace of Darkness', None, ['PoD Dark Pegs Landing Ranged Crystal Exit']),
|
||||||
|
create_dungeon_region(player, 'PoD Dark Pegs Middle - Ranged Crystal', 'Palace of Darkness', None, ['PoD Dark Pegs Middle Ranged Crystal Exit']),
|
||||||
|
create_dungeon_region(player, 'PoD Dark Pegs Left - Ranged Crystal', 'Palace of Darkness', None, ['PoD Dark Pegs Left Ranged Crystal Exit']),
|
||||||
create_dungeon_region(player, 'PoD Lonely Turtle', 'Palace of Darkness', None, ['PoD Lonely Turtle SW', 'PoD Lonely Turtle EN']),
|
create_dungeon_region(player, 'PoD Lonely Turtle', 'Palace of Darkness', None, ['PoD Lonely Turtle SW', 'PoD Lonely Turtle EN']),
|
||||||
create_dungeon_region(player, 'PoD Turtle Party', 'Palace of Darkness', None, ['PoD Turtle Party ES', 'PoD Turtle Party NW']),
|
create_dungeon_region(player, 'PoD Turtle Party', 'Palace of Darkness', None, ['PoD Turtle Party ES', 'PoD Turtle Party NW']),
|
||||||
create_dungeon_region(player, 'PoD Dark Alley', 'Palace of Darkness', None, ['PoD Dark Alley NE']),
|
create_dungeon_region(player, 'PoD Dark Alley', 'Palace of Darkness', None, ['PoD Dark Alley NE']),
|
||||||
@@ -430,7 +454,10 @@ def create_dungeon_regions(world, player):
|
|||||||
create_dungeon_region(player, 'Swamp Donut Top', 'Swamp Palace', None, ['Swamp Donut Top N', 'Swamp Donut Top SE']),
|
create_dungeon_region(player, 'Swamp Donut Top', 'Swamp Palace', None, ['Swamp Donut Top N', 'Swamp Donut Top SE']),
|
||||||
create_dungeon_region(player, 'Swamp Donut Bottom', 'Swamp Palace', None, ['Swamp Donut Bottom NE', 'Swamp Donut Bottom NW']),
|
create_dungeon_region(player, 'Swamp Donut Bottom', 'Swamp Palace', None, ['Swamp Donut Bottom NE', 'Swamp Donut Bottom NW']),
|
||||||
create_dungeon_region(player, 'Swamp Compass Donut', 'Swamp Palace', ['Swamp Palace - Compass Chest'], ['Swamp Compass Donut SW', 'Swamp Compass Donut Push Block']),
|
create_dungeon_region(player, 'Swamp Compass Donut', 'Swamp Palace', ['Swamp Palace - Compass Chest'], ['Swamp Compass Donut SW', 'Swamp Compass Donut Push Block']),
|
||||||
create_dungeon_region(player, 'Swamp Crystal Switch', 'Swamp Palace', ['Trench 2 Switch'], ['Swamp Crystal Switch EN', 'Swamp Crystal Switch SE']),
|
create_dungeon_region(player, 'Swamp Crystal Switch Outer', 'Swamp Palace', None, ['Swamp Crystal Switch EN', 'Swamp Crystal Switch SE', 'Swamp Crystal Switch Outer to Inner Barrier - Blue', 'Swamp Crystal Switch Outer to Ranged Crystal', 'Swamp Crystal Switch Outer to Inner Bypass']),
|
||||||
|
create_dungeon_region(player, 'Swamp Crystal Switch Outer - Ranged Crystal', 'Swamp Palace', None, ['Swamp Crystal Switch Outer Ranged Crystal Exit']),
|
||||||
|
create_dungeon_region(player, 'Swamp Crystal Switch Inner', 'Swamp Palace', ['Trench 2 Switch'], ['Swamp Crystal Switch Inner to Crystal', 'Swamp Crystal Switch Inner to Outer Bypass', 'Swamp Crystal Switch Inner to Outer Barrier - Blue']),
|
||||||
|
create_dungeon_region(player, 'Swamp Crystal Switch Inner - Crystal', 'Swamp Palace', None, ['Swamp Crystal Switch Inner Crystal Exit']),
|
||||||
create_dungeon_region(player, 'Swamp Shortcut', 'Swamp Palace', None, ['Swamp Shortcut NE', 'Swamp Shortcut Blue Barrier']),
|
create_dungeon_region(player, 'Swamp Shortcut', 'Swamp Palace', None, ['Swamp Shortcut NE', 'Swamp Shortcut Blue Barrier']),
|
||||||
create_dungeon_region(player, 'Swamp Trench 2 Pots', 'Swamp Palace', None, ['Swamp Trench 2 Pots ES', 'Swamp Trench 2 Pots Blue Barrier', 'Swamp Trench 2 Pots Dry', 'Swamp Trench 2 Pots Wet']),
|
create_dungeon_region(player, 'Swamp Trench 2 Pots', 'Swamp Palace', None, ['Swamp Trench 2 Pots ES', 'Swamp Trench 2 Pots Blue Barrier', 'Swamp Trench 2 Pots Dry', 'Swamp Trench 2 Pots Wet']),
|
||||||
create_dungeon_region(player, 'Swamp Trench 2 Blocks', 'Swamp Palace', None, ['Swamp Trench 2 Blocks Pots', 'Swamp Trench 2 Blocks N']),
|
create_dungeon_region(player, 'Swamp Trench 2 Blocks', 'Swamp Palace', None, ['Swamp Trench 2 Blocks Pots', 'Swamp Trench 2 Blocks N']),
|
||||||
@@ -476,7 +503,7 @@ def create_dungeon_regions(world, player):
|
|||||||
create_dungeon_region(player, 'Skull Big Key', 'Skull Woods', ['Skull Woods - Big Key Chest'], ['Skull Big Key SW', 'Skull Big Key EN']),
|
create_dungeon_region(player, 'Skull Big Key', 'Skull Woods', ['Skull Woods - Big Key Chest'], ['Skull Big Key SW', 'Skull Big Key EN']),
|
||||||
create_dungeon_region(player, 'Skull Lone Pot', 'Skull Woods', None, ['Skull Lone Pot WN']),
|
create_dungeon_region(player, 'Skull Lone Pot', 'Skull Woods', None, ['Skull Lone Pot WN']),
|
||||||
create_dungeon_region(player, 'Skull Small Hall', 'Skull Woods', None, ['Skull Small Hall ES', 'Skull Small Hall WS']),
|
create_dungeon_region(player, 'Skull Small Hall', 'Skull Woods', None, ['Skull Small Hall ES', 'Skull Small Hall WS']),
|
||||||
create_dungeon_region(player, 'Skull Back Drop', 'Skull Woods', None, ['Skull Back Drop Star Path', ]),
|
create_dungeon_region(player, 'Skull Back Drop', 'Skull Woods', None, ['Skull Back Drop Star Path']),
|
||||||
create_dungeon_region(player, 'Skull 2 West Lobby', 'Skull Woods', ['Skull Woods - West Lobby Pot Key'], ['Skull 2 West Lobby ES', 'Skull 2 West Lobby NW', 'Skull 2 West Lobby S']),
|
create_dungeon_region(player, 'Skull 2 West Lobby', 'Skull Woods', ['Skull Woods - West Lobby Pot Key'], ['Skull 2 West Lobby ES', 'Skull 2 West Lobby NW', 'Skull 2 West Lobby S']),
|
||||||
create_dungeon_region(player, 'Skull X Room', 'Skull Woods', None, ['Skull X Room SW']),
|
create_dungeon_region(player, 'Skull X Room', 'Skull Woods', None, ['Skull X Room SW']),
|
||||||
create_dungeon_region(player, 'Skull 3 Lobby', 'Skull Woods', None, ['Skull 3 Lobby NW', 'Skull 3 Lobby EN', 'Skull 3 Lobby SW']),
|
create_dungeon_region(player, 'Skull 3 Lobby', 'Skull Woods', None, ['Skull 3 Lobby NW', 'Skull 3 Lobby EN', 'Skull 3 Lobby SW']),
|
||||||
@@ -537,7 +564,8 @@ def create_dungeon_regions(world, player):
|
|||||||
create_dungeon_region(player, 'Ice Big Key', 'Ice Palace', ['Ice Palace - Big Key Chest'], ['Ice Big Key Push Block', 'Ice Big Key Down Ladder']),
|
create_dungeon_region(player, 'Ice Big Key', 'Ice Palace', ['Ice Palace - Big Key Chest'], ['Ice Big Key Push Block', 'Ice Big Key Down Ladder']),
|
||||||
create_dungeon_region(player, 'Ice Bomb Drop', 'Ice Palace', None, ['Ice Bomb Drop SE', 'Ice Bomb Drop Hole']),
|
create_dungeon_region(player, 'Ice Bomb Drop', 'Ice Palace', None, ['Ice Bomb Drop SE', 'Ice Bomb Drop Hole']),
|
||||||
create_dungeon_region(player, 'Ice Stalfos Hint', 'Ice Palace', None, ['Ice Stalfos Hint SE']),
|
create_dungeon_region(player, 'Ice Stalfos Hint', 'Ice Palace', None, ['Ice Stalfos Hint SE']),
|
||||||
create_dungeon_region(player, 'Ice Conveyor', 'Ice Palace', ['Ice Palace - Conveyor Key Drop'], ['Ice Conveyor NE', 'Ice Conveyor SW']),
|
create_dungeon_region(player, 'Ice Conveyor', 'Ice Palace', ['Ice Palace - Conveyor Key Drop'], ['Ice Conveyor NE', 'Ice Conveyor to Crystal', 'Ice Conveyor SW']),
|
||||||
|
create_dungeon_region(player, 'Ice Conveyor - Crystal', 'Ice Palace', None, ['Ice Conveyor Crystal Exit']),
|
||||||
create_dungeon_region(player, 'Ice Bomb Jump Ledge', 'Ice Palace', None, ['Ice Bomb Jump NW', 'Ice Bomb Jump Ledge Orange Barrier']),
|
create_dungeon_region(player, 'Ice Bomb Jump Ledge', 'Ice Palace', None, ['Ice Bomb Jump NW', 'Ice Bomb Jump Ledge Orange Barrier']),
|
||||||
create_dungeon_region(player, 'Ice Bomb Jump Catwalk', 'Ice Palace', None, ['Ice Bomb Jump Catwalk Orange Barrier', 'Ice Bomb Jump EN']),
|
create_dungeon_region(player, 'Ice Bomb Jump Catwalk', 'Ice Palace', None, ['Ice Bomb Jump Catwalk Orange Barrier', 'Ice Bomb Jump EN']),
|
||||||
create_dungeon_region(player, 'Ice Narrow Corridor', 'Ice Palace', None, ['Ice Narrow Corridor WN', 'Ice Narrow Corridor Down Stairs']),
|
create_dungeon_region(player, 'Ice Narrow Corridor', 'Ice Palace', None, ['Ice Narrow Corridor WN', 'Ice Narrow Corridor Down Stairs']),
|
||||||
@@ -566,7 +594,8 @@ def create_dungeon_regions(world, player):
|
|||||||
create_dungeon_region(player, 'Ice Backwards Room', 'Ice Palace', None, ['Ice Backwards Room SE', 'Ice Backwards Room Down Stairs', 'Ice Backwards Room Hole']),
|
create_dungeon_region(player, 'Ice Backwards Room', 'Ice Palace', None, ['Ice Backwards Room SE', 'Ice Backwards Room Down Stairs', 'Ice Backwards Room Hole']),
|
||||||
create_dungeon_region(player, 'Ice Anti-Fairy', 'Ice Palace', None, ['Ice Anti-Fairy Up Stairs', 'Ice Anti-Fairy SE']),
|
create_dungeon_region(player, 'Ice Anti-Fairy', 'Ice Palace', None, ['Ice Anti-Fairy Up Stairs', 'Ice Anti-Fairy SE']),
|
||||||
create_dungeon_region(player, 'Ice Switch Room', 'Ice Palace', None, ['Ice Switch Room NE', 'Ice Switch Room ES', 'Ice Switch Room SE']),
|
create_dungeon_region(player, 'Ice Switch Room', 'Ice Palace', None, ['Ice Switch Room NE', 'Ice Switch Room ES', 'Ice Switch Room SE']),
|
||||||
create_dungeon_region(player, 'Ice Refill', 'Ice Palace', None, ['Ice Refill WS']),
|
create_dungeon_region(player, 'Ice Refill', 'Ice Palace', None, ['Ice Refill WS', 'Ice Refill to Crystal']),
|
||||||
|
create_dungeon_region(player, 'Ice Refill - Crystal', 'Ice Palace', None, ['Ice Refill Crystal Exit']),
|
||||||
create_dungeon_region(player, 'Ice Fairy', 'Ice Palace', None, ['Ice Fairy Warp']),
|
create_dungeon_region(player, 'Ice Fairy', 'Ice Palace', None, ['Ice Fairy Warp']),
|
||||||
create_dungeon_region(player, 'Ice Antechamber', 'Ice Palace', None, ['Ice Antechamber NE', 'Ice Antechamber Hole']),
|
create_dungeon_region(player, 'Ice Antechamber', 'Ice Palace', None, ['Ice Antechamber NE', 'Ice Antechamber Hole']),
|
||||||
create_dungeon_region(player, 'Ice Boss', 'Ice Palace', ['Ice Palace - Boss', 'Ice Palace - Prize']),
|
create_dungeon_region(player, 'Ice Boss', 'Ice Palace', ['Ice Palace - Boss', 'Ice Palace - Prize']),
|
||||||
@@ -596,13 +625,14 @@ def create_dungeon_regions(world, player):
|
|||||||
create_dungeon_region(player, 'Mire Over Bridge', 'Misery Mire', None, ['Mire Over Bridge E', 'Mire Over Bridge W']),
|
create_dungeon_region(player, 'Mire Over Bridge', 'Misery Mire', None, ['Mire Over Bridge E', 'Mire Over Bridge W']),
|
||||||
create_dungeon_region(player, 'Mire Right Bridge', 'Misery Mire', ['Misery Mire - Bridge Chest'], ['Mire Right Bridge SE']),
|
create_dungeon_region(player, 'Mire Right Bridge', 'Misery Mire', ['Misery Mire - Bridge Chest'], ['Mire Right Bridge SE']),
|
||||||
create_dungeon_region(player, 'Mire Left Bridge', 'Misery Mire', None, ['Mire Left Bridge S', 'Mire Left Bridge Down Stairs', 'Mire Left Bridge Hook Path']),
|
create_dungeon_region(player, 'Mire Left Bridge', 'Misery Mire', None, ['Mire Left Bridge S', 'Mire Left Bridge Down Stairs', 'Mire Left Bridge Hook Path']),
|
||||||
create_dungeon_region(player, 'Mire Fishbone', 'Misery Mire', ['Misery Mire - Fishbone Pot Key'], ['Mire Fishbone E', 'Mire Fishbone Blue Barrier']),
|
create_dungeon_region(player, 'Mire Fishbone', 'Misery Mire', ['Misery Mire - Fishbone Pot Key'], ['Mire Fishbone E', 'Mire Fishbone Blue Barrier', 'Mire Fishbone Blue Barrier Bypass']),
|
||||||
create_dungeon_region(player, 'Mire South Fish', 'Misery Mire', None, ['Mire South Fish Blue Barrier', 'Mire Fishbone SE']),
|
create_dungeon_region(player, 'Mire South Fish', 'Misery Mire', None, ['Mire South Fish Blue Barrier', 'Mire Fishbone SE']),
|
||||||
create_dungeon_region(player, 'Mire Spike Barrier', 'Misery Mire', None, ['Mire Spike Barrier NE', 'Mire Spike Barrier SE', 'Mire Spike Barrier ES']),
|
create_dungeon_region(player, 'Mire Spike Barrier', 'Misery Mire', None, ['Mire Spike Barrier NE', 'Mire Spike Barrier SE', 'Mire Spike Barrier ES']),
|
||||||
create_dungeon_region(player, 'Mire Square Rail', 'Misery Mire', None, ['Mire Square Rail WS', 'Mire Square Rail NW']),
|
create_dungeon_region(player, 'Mire Square Rail', 'Misery Mire', None, ['Mire Square Rail WS', 'Mire Square Rail NW']),
|
||||||
create_dungeon_region(player, 'Mire Lone Warp', 'Misery Mire', None, ['Mire Lone Warp SW', 'Mire Lone Warp Warp']),
|
create_dungeon_region(player, 'Mire Lone Warp', 'Misery Mire', None, ['Mire Lone Warp SW', 'Mire Lone Warp Warp']),
|
||||||
create_dungeon_region(player, 'Mire Wizzrobe Bypass', 'Misery Mire', None, ['Mire Wizzrobe Bypass WN', 'Mire Wizzrobe Bypass EN', 'Mire Wizzrobe Bypass NE']),
|
create_dungeon_region(player, 'Mire Wizzrobe Bypass', 'Misery Mire', None, ['Mire Wizzrobe Bypass WN', 'Mire Wizzrobe Bypass EN', 'Mire Wizzrobe Bypass NE']),
|
||||||
create_dungeon_region(player, 'Mire Conveyor Crystal', 'Misery Mire', ['Misery Mire - Conveyor Crystal Key Drop'], ['Mire Conveyor Crystal WS', 'Mire Conveyor Crystal ES', 'Mire Conveyor Crystal SE']),
|
create_dungeon_region(player, 'Mire Conveyor Crystal', 'Misery Mire', ['Misery Mire - Conveyor Crystal Key Drop'], ['Mire Conveyor to Crystal', 'Mire Conveyor Crystal WS', 'Mire Conveyor Crystal ES', 'Mire Conveyor Crystal SE']),
|
||||||
|
create_dungeon_region(player, 'Mire Conveyor - Crystal', 'Misery Mire', None, ['Mire Conveyor Crystal Exit']),
|
||||||
create_dungeon_region(player, 'Mire Tile Room', 'Misery Mire', None, ['Mire Tile Room ES', 'Mire Tile Room NW', 'Mire Tile Room SW']),
|
create_dungeon_region(player, 'Mire Tile Room', 'Misery Mire', None, ['Mire Tile Room ES', 'Mire Tile Room NW', 'Mire Tile Room SW']),
|
||||||
create_dungeon_region(player, 'Mire Compass Room', 'Misery Mire', None, ['Mire Compass Room SW', 'Mire Compass Room EN', 'Mire Compass Blue Barrier']),
|
create_dungeon_region(player, 'Mire Compass Room', 'Misery Mire', None, ['Mire Compass Room SW', 'Mire Compass Room EN', 'Mire Compass Blue Barrier']),
|
||||||
create_dungeon_region(player, 'Mire Compass Chest', 'Misery Mire', ['Misery Mire - Compass Chest'], ['Mire Compass Chest Exit']),
|
create_dungeon_region(player, 'Mire Compass Chest', 'Misery Mire', ['Misery Mire - Compass Chest'], ['Mire Compass Chest Exit']),
|
||||||
@@ -617,7 +647,8 @@ def create_dungeon_regions(world, player):
|
|||||||
create_dungeon_region(player, 'Mire Dark Shooters', 'Misery Mire', None, ['Mire Dark Shooters Up Stairs', 'Mire Dark Shooters SW', 'Mire Dark Shooters SE']),
|
create_dungeon_region(player, 'Mire Dark Shooters', 'Misery Mire', None, ['Mire Dark Shooters Up Stairs', 'Mire Dark Shooters SW', 'Mire Dark Shooters SE']),
|
||||||
create_dungeon_region(player, 'Mire Key Rupees', 'Misery Mire', None, ['Mire Key Rupees NE']),
|
create_dungeon_region(player, 'Mire Key Rupees', 'Misery Mire', None, ['Mire Key Rupees NE']),
|
||||||
create_dungeon_region(player, 'Mire Block X', 'Misery Mire', None, ['Mire Block X NW', 'Mire Block X WS']),
|
create_dungeon_region(player, 'Mire Block X', 'Misery Mire', None, ['Mire Block X NW', 'Mire Block X WS']),
|
||||||
create_dungeon_region(player, 'Mire Tall Dark and Roomy', 'Misery Mire', None, ['Mire Tall Dark and Roomy ES', 'Mire Tall Dark and Roomy WS', 'Mire Tall Dark and Roomy WN']),
|
create_dungeon_region(player, 'Mire Tall Dark and Roomy', 'Misery Mire', None, ['Mire Tall Dark and Roomy ES', 'Mire Tall Dark and Roomy WS', 'Mire Tall Dark and Roomy WN', 'Mire Tall Dark and Roomy to Ranged Crystal']),
|
||||||
|
create_dungeon_region(player, 'Mire Tall Dark and Roomy - Ranged Crystal', 'Misery Mire', None, ['Mire Tall Dark and Roomy Ranged Crystal Exit']),
|
||||||
create_dungeon_region(player, 'Mire Crystal Right', 'Misery Mire', None, ['Mire Crystal Right ES', 'Mire Crystal Right Orange Barrier']),
|
create_dungeon_region(player, 'Mire Crystal Right', 'Misery Mire', None, ['Mire Crystal Right ES', 'Mire Crystal Right Orange Barrier']),
|
||||||
create_dungeon_region(player, 'Mire Crystal Mid', 'Misery Mire', None, ['Mire Crystal Mid Orange Barrier', 'Mire Crystal Mid Blue Barrier', 'Mire Crystal Mid NW']),
|
create_dungeon_region(player, 'Mire Crystal Mid', 'Misery Mire', None, ['Mire Crystal Mid Orange Barrier', 'Mire Crystal Mid Blue Barrier', 'Mire Crystal Mid NW']),
|
||||||
create_dungeon_region(player, 'Mire Crystal Left', 'Misery Mire', None, ['Mire Crystal Left Blue Barrier', 'Mire Crystal Left WS']),
|
create_dungeon_region(player, 'Mire Crystal Left', 'Misery Mire', None, ['Mire Crystal Left Blue Barrier', 'Mire Crystal Left WS']),
|
||||||
@@ -639,13 +670,19 @@ def create_dungeon_regions(world, player):
|
|||||||
create_dungeon_region(player, 'TR Tile Room', 'Turtle Rock', None, ['TR Tile Room SE', 'TR Tile Room NE']),
|
create_dungeon_region(player, 'TR Tile Room', 'Turtle Rock', None, ['TR Tile Room SE', 'TR Tile Room NE']),
|
||||||
create_dungeon_region(player, 'TR Refill', 'Turtle Rock', None, ['TR Refill SE']),
|
create_dungeon_region(player, 'TR Refill', 'Turtle Rock', None, ['TR Refill SE']),
|
||||||
create_dungeon_region(player, 'TR Pokey 1', 'Turtle Rock', ['Turtle Rock - Pokey 1 Key Drop'], ['TR Pokey 1 SW', 'TR Pokey 1 NW']),
|
create_dungeon_region(player, 'TR Pokey 1', 'Turtle Rock', ['Turtle Rock - Pokey 1 Key Drop'], ['TR Pokey 1 SW', 'TR Pokey 1 NW']),
|
||||||
create_dungeon_region(player, 'TR Chain Chomps', 'Turtle Rock', ['Turtle Rock - Chain Chomps'], ['TR Chain Chomps SW', 'TR Chain Chomps Down Stairs']),
|
create_dungeon_region(player, 'TR Chain Chomps Top', 'Turtle Rock', ['Turtle Rock - Chain Chomps'], ['TR Chain Chomps Top to Crystal', 'TR Chain Chomps Down Stairs', 'TR Chain Chomps Top to Bottom Barrier - Orange']),
|
||||||
|
create_dungeon_region(player, 'TR Chain Chomps Top - Crystal', 'Turtle Rock', None, ['TR Chain Chomps Top Crystal Exit']),
|
||||||
|
create_dungeon_region(player, 'TR Chain Chomps Bottom', 'Turtle Rock', None, ['TR Chain Chomps SW', 'TR Chain Chomps Bottom to Top Barrier - Orange', 'TR Chain Chomps Bottom to Ranged Crystal']),
|
||||||
|
create_dungeon_region(player, 'TR Chain Chomps Bottom - Ranged Crystal', 'Turtle Rock', None, ['TR Chain Chomps Bottom Ranged Crystal Exit']),
|
||||||
create_dungeon_region(player, 'TR Pipe Pit', 'Turtle Rock', None, ['TR Pipe Pit Up Stairs', 'TR Pipe Pit WN']),
|
create_dungeon_region(player, 'TR Pipe Pit', 'Turtle Rock', None, ['TR Pipe Pit Up Stairs', 'TR Pipe Pit WN']),
|
||||||
create_dungeon_region(player, 'TR Pipe Ledge', 'Turtle Rock', None, ['TR Pipe Ledge WS', 'TR Pipe Ledge Drop Down']),
|
create_dungeon_region(player, 'TR Pipe Ledge', 'Turtle Rock', None, ['TR Pipe Ledge WS', 'TR Pipe Ledge Drop Down']),
|
||||||
create_dungeon_region(player, 'TR Lava Dual Pipes', 'Turtle Rock', None, ['TR Lava Dual Pipes EN', 'TR Lava Dual Pipes WN', 'TR Lava Dual Pipes SW']),
|
create_dungeon_region(player, 'TR Lava Dual Pipes', 'Turtle Rock', None, ['TR Lava Dual Pipes EN', 'TR Lava Dual Pipes WN', 'TR Lava Dual Pipes SW']),
|
||||||
create_dungeon_region(player, 'TR Lava Island', 'Turtle Rock', ['Turtle Rock - Big Key Chest'], ['TR Lava Island WS', 'TR Lava Island ES']),
|
create_dungeon_region(player, 'TR Lava Island', 'Turtle Rock', ['Turtle Rock - Big Key Chest'], ['TR Lava Island WS', 'TR Lava Island ES']),
|
||||||
create_dungeon_region(player, 'TR Lava Escape', 'Turtle Rock', None, ['TR Lava Escape SE', 'TR Lava Escape NW']),
|
create_dungeon_region(player, 'TR Lava Escape', 'Turtle Rock', None, ['TR Lava Escape SE', 'TR Lava Escape NW']),
|
||||||
create_dungeon_region(player, 'TR Pokey 2', 'Turtle Rock', ['Turtle Rock - Pokey 2 Key Drop'], ['TR Pokey 2 EN', 'TR Pokey 2 ES']),
|
create_dungeon_region(player, 'TR Pokey 2 Top', 'Turtle Rock', None, ['TR Pokey 2 EN', 'TR Pokey 2 Top to Bottom Barrier - Blue', 'TR Pokey 2 Top to Crystal']),
|
||||||
|
create_dungeon_region(player, 'TR Pokey 2 Top - Crystal', 'Turtle Rock', None, ['TR Pokey 2 Top Crystal Exit']),
|
||||||
|
create_dungeon_region(player, 'TR Pokey 2 Bottom', 'Turtle Rock', ['Turtle Rock - Pokey 2 Key Drop'], ['TR Pokey 2 ES', 'TR Pokey 2 Bottom to Top Barrier - Blue', 'TR Pokey 2 Bottom to Ranged Crystal']),
|
||||||
|
create_dungeon_region(player, 'TR Pokey 2 Bottom - Ranged Crystal', 'Turtle Rock', None, ['TR Pokey 2 Bottom Ranged Crystal Exit']),
|
||||||
create_dungeon_region(player, 'TR Twin Pokeys', 'Turtle Rock', None, ['TR Twin Pokeys NW', 'TR Twin Pokeys EN', 'TR Twin Pokeys SW']),
|
create_dungeon_region(player, 'TR Twin Pokeys', 'Turtle Rock', None, ['TR Twin Pokeys NW', 'TR Twin Pokeys EN', 'TR Twin Pokeys SW']),
|
||||||
create_dungeon_region(player, 'TR Hallway', 'Turtle Rock', None, ['TR Hallway NW', 'TR Hallway ES', 'TR Hallway WS']),
|
create_dungeon_region(player, 'TR Hallway', 'Turtle Rock', None, ['TR Hallway NW', 'TR Hallway ES', 'TR Hallway WS']),
|
||||||
create_dungeon_region(player, 'TR Dodgers', 'Turtle Rock', None, ['TR Dodgers WN', 'TR Dodgers SE', 'TR Dodgers NE']),
|
create_dungeon_region(player, 'TR Dodgers', 'Turtle Rock', None, ['TR Dodgers WN', 'TR Dodgers SE', 'TR Dodgers NE']),
|
||||||
@@ -656,14 +693,23 @@ def create_dungeon_regions(world, player):
|
|||||||
create_dungeon_region(player, 'TR Dash Room', 'Turtle Rock', None, ['TR Dash Room SW', 'TR Dash Room ES', 'TR Dash Room NW']),
|
create_dungeon_region(player, 'TR Dash Room', 'Turtle Rock', None, ['TR Dash Room SW', 'TR Dash Room ES', 'TR Dash Room NW']),
|
||||||
create_dungeon_region(player, 'TR Tongue Pull', 'Turtle Rock', None, ['TR Tongue Pull WS', 'TR Tongue Pull NE']),
|
create_dungeon_region(player, 'TR Tongue Pull', 'Turtle Rock', None, ['TR Tongue Pull WS', 'TR Tongue Pull NE']),
|
||||||
create_dungeon_region(player, 'TR Rupees', 'Turtle Rock', None, ['TR Rupees SE']),
|
create_dungeon_region(player, 'TR Rupees', 'Turtle Rock', None, ['TR Rupees SE']),
|
||||||
create_dungeon_region(player, 'TR Crystaroller', 'Turtle Rock', ['Turtle Rock - Crystaroller Room'], ['TR Crystaroller SW', 'TR Crystaroller Down Stairs']),
|
create_dungeon_region(player, 'TR Crystaroller Bottom' , 'Turtle Rock', None, ['TR Crystaroller Bottom to Middle Barrier - Orange', 'TR Crystaroller Bottom to Ranged Crystal', 'TR Crystaroller SW']),
|
||||||
|
create_dungeon_region(player, 'TR Crystaroller Middle', 'Turtle Rock', None, ['TR Crystaroller Middle to Bottom Barrier - Orange', 'TR Crystaroller Middle to Chest Barrier - Blue', 'TR Crystaroller Middle to Top Barrier - Orange', 'TR Crystaroller Middle to Ranged Crystal', 'TR Crystaroller Middle to Bottom Bypass']),
|
||||||
|
create_dungeon_region(player, 'TR Crystaroller Top', 'Turtle Rock', None, ['TR Crystaroller Top to Middle Barrier - Orange', 'TR Crystaroller Down Stairs', 'TR Crystaroller Top to Crystal']),
|
||||||
|
create_dungeon_region(player, 'TR Crystaroller Top - Crystal', 'Turtle Rock', None, ['TR Crystaroller Top Crystal Exit']),
|
||||||
|
create_dungeon_region(player, 'TR Crystaroller Chest', 'Turtle Rock', ['Turtle Rock - Crystaroller Room'], ['TR Crystaroller Chest to Middle Barrier - Blue']),
|
||||||
|
create_dungeon_region(player, 'TR Crystaroller Middle - Ranged Crystal', 'Turtle Rock', None, ['TR Crystaroller Middle Ranged Crystal Exit']),
|
||||||
|
create_dungeon_region(player, 'TR Crystaroller Bottom - Ranged Crystal', 'Turtle Rock', None, ['TR Crystaroller Bottom Ranged Crystal Exit']),
|
||||||
create_dungeon_region(player, 'TR Dark Ride', 'Turtle Rock', None, ['TR Dark Ride Up Stairs', 'TR Dark Ride SW']),
|
create_dungeon_region(player, 'TR Dark Ride', 'Turtle Rock', None, ['TR Dark Ride Up Stairs', 'TR Dark Ride SW']),
|
||||||
create_dungeon_region(player, 'TR Dash Bridge', 'Turtle Rock', None, ['TR Dash Bridge NW', 'TR Dash Bridge SW', 'TR Dash Bridge WS']),
|
create_dungeon_region(player, 'TR Dash Bridge', 'Turtle Rock', None, ['TR Dash Bridge NW', 'TR Dash Bridge SW', 'TR Dash Bridge WS']),
|
||||||
create_dungeon_region(player, 'TR Eye Bridge', 'Turtle Rock', ['Turtle Rock - Eye Bridge - Bottom Left', 'Turtle Rock - Eye Bridge - Bottom Right',
|
create_dungeon_region(player, 'TR Eye Bridge', 'Turtle Rock', ['Turtle Rock - Eye Bridge - Bottom Left', 'Turtle Rock - Eye Bridge - Bottom Right',
|
||||||
'Turtle Rock - Eye Bridge - Top Left', 'Turtle Rock - Eye Bridge - Top Right'],
|
'Turtle Rock - Eye Bridge - Top Left', 'Turtle Rock - Eye Bridge - Top Right'],
|
||||||
['TR Eye Bridge SW', 'TR Eye Bridge NW']),
|
['TR Eye Bridge SW', 'TR Eye Bridge NW']),
|
||||||
create_dungeon_region(player, 'TR Crystal Maze', 'Turtle Rock', None, ['TR Crystal Maze ES', 'TR Crystal Maze Forwards Path']),
|
create_dungeon_region(player, 'TR Crystal Maze Start', 'Turtle Rock', None, ['TR Crystal Maze ES', 'TR Crystal Maze Start to Interior Barrier - Blue', 'TR Crystal Maze Start to Crystal']),
|
||||||
create_dungeon_region(player, 'TR Crystal Maze End', 'Turtle Rock', None, ['TR Crystal Maze Blue Path', 'TR Crystal Maze Cane Path', 'TR Crystal Maze North Stairs']),
|
create_dungeon_region(player, 'TR Crystal Maze Start - Crystal', 'Turtle Rock', None, ['TR Crystal Maze Start Crystal Exit']),
|
||||||
|
create_dungeon_region(player, 'TR Crystal Maze Interior', 'Turtle Rock', None, ['TR Crystal Maze Interior to End Barrier - Blue', 'TR Crystal Maze Interior to Start Barrier - Blue', 'TR Crystal Maze Interior to Start Bypass', 'TR Crystal Maze Interior to End Bypass']),
|
||||||
|
create_dungeon_region(player, 'TR Crystal Maze End', 'Turtle Rock', None, ['TR Crystal Maze North Stairs', 'TR Crystal Maze End to Interior Barrier - Blue', 'TR Crystal Maze End to Ranged Crystal']),
|
||||||
|
create_dungeon_region(player, 'TR Crystal Maze End - Ranged Crystal', 'Turtle Rock', None, ['TR Crystal Maze End Ranged Crystal Exit']),
|
||||||
create_dungeon_region(player, 'TR Final Abyss', 'Turtle Rock', None, ['TR Final Abyss South Stairs', 'TR Final Abyss NW']),
|
create_dungeon_region(player, 'TR Final Abyss', 'Turtle Rock', None, ['TR Final Abyss South Stairs', 'TR Final Abyss NW']),
|
||||||
create_dungeon_region(player, 'TR Boss', 'Turtle Rock', ['Turtle Rock - Boss', 'Turtle Rock - Prize'], ['TR Boss SW']),
|
create_dungeon_region(player, 'TR Boss', 'Turtle Rock', ['Turtle Rock - Boss', 'Turtle Rock - Prize'], ['TR Boss SW']),
|
||||||
|
|
||||||
@@ -678,7 +724,12 @@ def create_dungeon_regions(world, player):
|
|||||||
create_dungeon_region(player, 'GT Speed Torch', 'Ganon\'s Tower', None, ['GT Speed Torch WS', 'GT Speed Torch SE', 'GT Speed Torch North Path']),
|
create_dungeon_region(player, 'GT Speed Torch', 'Ganon\'s Tower', None, ['GT Speed Torch WS', 'GT Speed Torch SE', 'GT Speed Torch North Path']),
|
||||||
create_dungeon_region(player, 'GT Speed Torch Upper', 'Ganon\'s Tower', None, ['GT Speed Torch WN', 'GT Speed Torch NE', 'GT Speed Torch South Path']),
|
create_dungeon_region(player, 'GT Speed Torch Upper', 'Ganon\'s Tower', None, ['GT Speed Torch WN', 'GT Speed Torch NE', 'GT Speed Torch South Path']),
|
||||||
create_dungeon_region(player, 'GT Pots n Blocks', 'Ganon\'s Tower', None, ['GT Pots n Blocks ES']),
|
create_dungeon_region(player, 'GT Pots n Blocks', 'Ganon\'s Tower', None, ['GT Pots n Blocks ES']),
|
||||||
create_dungeon_region(player, 'GT Crystal Conveyor', 'Ganon\'s Tower', None, ['GT Crystal Conveyor NE', 'GT Crystal Conveyor WN']),
|
create_dungeon_region(player, 'GT Crystal Conveyor', 'Ganon\'s Tower', None, ['GT Crystal Conveyor NE', 'GT Crystal Conveyor to Corner Barrier - Blue', 'GT Crystal Conveyor to Ranged Crystal']),
|
||||||
|
create_dungeon_region(player, 'GT Crystal Conveyor Corner', 'Ganon\'s Tower', None, ['GT Crystal Conveyor Corner to Barrier - Blue', 'GT Crystal Conveyor Corner to Barrier - Orange', 'GT Crystal Conveyor Corner to Ranged Crystal', 'GT Crystal Conveyor Corner to Left Bypass']),
|
||||||
|
create_dungeon_region(player, 'GT Crystal Conveyor Left', 'Ganon\'s Tower', None, ['GT Crystal Conveyor WN', 'GT Crystal Conveyor Left to Corner Barrier - Orange']),
|
||||||
|
create_dungeon_region(player, 'GT Crystal Conveyor - Ranged Crystal', 'Ganon\'s Tower', None, ['GT Crystal Conveyor Ranged Crystal Exit']),
|
||||||
|
create_dungeon_region(player, 'GT Crystal Conveyor Corner - Ranged Crystal', 'Ganon\'s Tower', None, ['GT Crystal Conveyor Corner Ranged Crystal Exit']),
|
||||||
|
|
||||||
create_dungeon_region(player, 'GT Compass Room', 'Ganon\'s Tower', ['Ganons Tower - Compass Room - Top Left', 'Ganons Tower - Compass Room - Top Right', 'Ganons Tower - Compass Room - Bottom Left', 'Ganons Tower - Compass Room - Bottom Right'],
|
create_dungeon_region(player, 'GT Compass Room', 'Ganon\'s Tower', ['Ganons Tower - Compass Room - Top Left', 'Ganons Tower - Compass Room - Top Right', 'Ganons Tower - Compass Room - Bottom Left', 'Ganons Tower - Compass Room - Bottom Right'],
|
||||||
['GT Compass Room EN', 'GT Compass Room Warp']),
|
['GT Compass Room EN', 'GT Compass Room Warp']),
|
||||||
create_dungeon_region(player, 'GT Invisible Bridges', 'Ganon\'s Tower', None, ['GT Invisible Bridges WS']),
|
create_dungeon_region(player, 'GT Invisible Bridges', 'Ganon\'s Tower', None, ['GT Invisible Bridges WS']),
|
||||||
@@ -686,15 +737,20 @@ def create_dungeon_regions(world, player):
|
|||||||
create_dungeon_region(player, 'GT Conveyor Cross', 'Ganon\'s Tower', ['Ganons Tower - Conveyor Cross Pot Key'], ['GT Conveyor Cross EN', 'GT Conveyor Cross WN']),
|
create_dungeon_region(player, 'GT Conveyor Cross', 'Ganon\'s Tower', ['Ganons Tower - Conveyor Cross Pot Key'], ['GT Conveyor Cross EN', 'GT Conveyor Cross WN']),
|
||||||
create_dungeon_region(player, 'GT Hookshot East Platform', 'Ganon\'s Tower', None, ['GT Hookshot EN', 'GT Hookshot East-North Path', 'GT Hookshot East-South Path']),
|
create_dungeon_region(player, 'GT Hookshot East Platform', 'Ganon\'s Tower', None, ['GT Hookshot EN', 'GT Hookshot East-North Path', 'GT Hookshot East-South Path']),
|
||||||
create_dungeon_region(player, 'GT Hookshot North Platform', 'Ganon\'s Tower', None, ['GT Hookshot NW', 'GT Hookshot North-East Path', 'GT Hookshot North-South Path']),
|
create_dungeon_region(player, 'GT Hookshot North Platform', 'Ganon\'s Tower', None, ['GT Hookshot NW', 'GT Hookshot North-East Path', 'GT Hookshot North-South Path']),
|
||||||
create_dungeon_region(player, 'GT Hookshot South Platform', 'Ganon\'s Tower', None, ['GT Hookshot ES', 'GT Hookshot South-East Path', 'GT Hookshot South-North Path', 'GT Hookshot Platform Blue Barrier']),
|
create_dungeon_region(player, 'GT Hookshot South Platform', 'Ganon\'s Tower', None, ['GT Hookshot ES', 'GT Hookshot South-East Path', 'GT Hookshot South-North Path', 'GT Hookshot Platform Blue Barrier', 'GT Hookshot Platform Barrier Bypass']),
|
||||||
create_dungeon_region(player, 'GT Hookshot South Entry', 'Ganon\'s Tower', None, ['GT Hookshot SW', 'GT Hookshot Entry Blue Barrier', 'GT Hookshot Entry Boomerang Path']),
|
create_dungeon_region(player, 'GT Hookshot South Entry', 'Ganon\'s Tower', None, ['GT Hookshot SW', 'GT Hookshot Entry Blue Barrier', 'GT Hookshot South Entry to Ranged Crystal']),
|
||||||
|
create_dungeon_region(player, 'GT Hookshot South Entry - Ranged Crystal', 'Ganon\'s Tower', None, ['GT HookShot South Entry Ranged Crystal Exit']),
|
||||||
create_dungeon_region(player, 'GT Map Room', 'Ganon\'s Tower', ['Ganons Tower - Map Chest'], ['GT Map Room WS']),
|
create_dungeon_region(player, 'GT Map Room', 'Ganon\'s Tower', ['Ganons Tower - Map Chest'], ['GT Map Room WS']),
|
||||||
create_dungeon_region(player, 'GT Double Switch Entry', 'Ganon\'s Tower', None, ['GT Double Switch NW', 'GT Double Switch Orange Barrier', 'GT Double Switch Orange Barrier 2']),
|
|
||||||
create_dungeon_region(player, 'GT Double Switch Switches', 'Ganon\'s Tower', None, ['GT Double Switch Blue Path', 'GT Double Switch Orange Path']),
|
create_dungeon_region(player, 'GT Double Switch Entry', 'Ganon\'s Tower', None, ['GT Double Switch NW', 'GT Double Switch Entry to Left Barrier - Orange', 'GT Double Switch Entry to Pot Corners Barrier - Orange', 'GT Double Switch Entry to Ranged Switches']),
|
||||||
create_dungeon_region(player, 'GT Double Switch Transition', 'Ganon\'s Tower', None, ['GT Double Switch Transition Blue']),
|
create_dungeon_region(player, 'GT Double Switch Entry - Ranged Switches', 'Ganon\'s Tower', None, ['GT Double Switch Entry Ranged Switches Exit']),
|
||||||
create_dungeon_region(player, 'GT Double Switch Key Spot', 'Ganon\'s Tower', ['Ganons Tower - Double Switch Pot Key'], ['GT Double Switch Key Blue Path', 'GT Double Switch Key Orange Path']),
|
create_dungeon_region(player, 'GT Double Switch Left', 'Ganon\'s Tower', None, ['GT Double Switch Left to Entry Barrier - Orange', 'GT Double Switch Left to Entry Bypass', 'GT Double Switch Left to Pot Corners Bypass', 'GT Double Switch Left to Exit Bypass']),
|
||||||
create_dungeon_region(player, 'GT Double Switch Exit', 'Ganon\'s Tower', None, ['GT Double Switch EN', 'GT Double Switch Blue Barrier']),
|
create_dungeon_region(player, 'GT Double Switch Pot Corners', 'Ganon\'s Tower', ['Ganons Tower - Double Switch Pot Key'], ['GT Double Switch Pot Corners to Entry Barrier - Orange', 'GT Double Switch Pot Corners to Exit Barrier - Blue', 'GT Double Switch Pot Corners to Ranged Switches']),
|
||||||
create_dungeon_region(player, 'GT Spike Crystals', 'Ganon\'s Tower', None, ['GT Spike Crystals WN', 'GT Spike Crystals Warp']),
|
create_dungeon_region(player, 'GT Double Switch Pot Corners - Ranged Switches', 'Ganon\'s Tower', None, ['GT Double Switch Pot Corners Ranged Switches Exit']),
|
||||||
|
create_dungeon_region(player, 'GT Double Switch Exit', 'Ganon\'s Tower', None, ['GT Double Switch EN', 'GT Double Switch Exit to Blue Barrier']),
|
||||||
|
|
||||||
|
create_dungeon_region(player, 'GT Spike Crystal Left', 'Ganon\'s Tower', None, ['GT Spike Crystals WN', 'GT Spike Crystal Left to Right Barrier - Orange', 'GT Spike Crystal Left to Right Bypass']),
|
||||||
|
create_dungeon_region(player, 'GT Spike Crystal Right', 'Ganon\'s Tower', None, ['GT Spike Crystals Warp', 'GT Spike Crystal Right to Left Barrier - Orange']),
|
||||||
create_dungeon_region(player, 'GT Warp Maze - Left Section', 'Ganon\'s Tower', None, ['GT Warp Maze - Left Section Warp']),
|
create_dungeon_region(player, 'GT Warp Maze - Left Section', 'Ganon\'s Tower', None, ['GT Warp Maze - Left Section Warp']),
|
||||||
create_dungeon_region(player, 'GT Warp Maze - Mid Section', 'Ganon\'s Tower', None, ['GT Warp Maze - Mid Section Left Warp', 'GT Warp Maze - Mid Section Right Warp']),
|
create_dungeon_region(player, 'GT Warp Maze - Mid Section', 'Ganon\'s Tower', None, ['GT Warp Maze - Mid Section Left Warp', 'GT Warp Maze - Mid Section Right Warp']),
|
||||||
create_dungeon_region(player, 'GT Warp Maze - Right Section', 'Ganon\'s Tower', None, ['GT Warp Maze - Right Section Warp']),
|
create_dungeon_region(player, 'GT Warp Maze - Right Section', 'Ganon\'s Tower', None, ['GT Warp Maze - Right Section Warp']),
|
||||||
@@ -745,7 +801,11 @@ def create_dungeon_regions(world, player):
|
|||||||
create_dungeon_region(player, 'GT Mini Helmasaur Room', 'Ganon\'s Tower', ['Ganons Tower - Mini Helmasaur Room - Left',
|
create_dungeon_region(player, 'GT Mini Helmasaur Room', 'Ganon\'s Tower', ['Ganons Tower - Mini Helmasaur Room - Left',
|
||||||
'Ganons Tower - Mini Helmasaur Room - Right', 'Ganons Tower - Mini Helmasaur Key Drop'], ['GT Mini Helmasaur Room SE', 'GT Mini Helmasaur Room WN']),
|
'Ganons Tower - Mini Helmasaur Room - Right', 'Ganons Tower - Mini Helmasaur Key Drop'], ['GT Mini Helmasaur Room SE', 'GT Mini Helmasaur Room WN']),
|
||||||
create_dungeon_region(player, 'GT Bomb Conveyor', 'Ganon\'s Tower', None, ['GT Bomb Conveyor EN', 'GT Bomb Conveyor SW']),
|
create_dungeon_region(player, 'GT Bomb Conveyor', 'Ganon\'s Tower', None, ['GT Bomb Conveyor EN', 'GT Bomb Conveyor SW']),
|
||||||
create_dungeon_region(player, 'GT Crystal Circles', 'Ganon\'s Tower', ['Ganons Tower - Pre-Moldorm Chest'], ['GT Crystal Circles NW', 'GT Crystal Circles SW']),
|
|
||||||
|
create_dungeon_region(player, 'GT Crystal Circles', 'Ganon\'s Tower', None, ['GT Crystal Circles NW', 'GT Crystal Circles SW', 'GT Crystal Circles Barrier - Orange', 'GT Crystal Circles to Ranged Crystal']),
|
||||||
|
create_dungeon_region(player, 'GT Crystal Inner Circle', 'Ganon\'s Tower', ['Ganons Tower - Pre-Moldorm Chest'], ['GT Crystal Inner Circle Barrier - Orange']),
|
||||||
|
create_dungeon_region(player, 'GT Crystal Circles - Ranged Crystal', 'Ganon\'s Tower', None, ['GT Crystal Circles Ranged Crystal Exit']),
|
||||||
|
|
||||||
create_dungeon_region(player, 'GT Left Moldorm Ledge', 'Ganon\'s Tower', None, ['GT Left Moldorm Ledge Drop Down', 'GT Left Moldorm Ledge NW']),
|
create_dungeon_region(player, 'GT Left Moldorm Ledge', 'Ganon\'s Tower', None, ['GT Left Moldorm Ledge Drop Down', 'GT Left Moldorm Ledge NW']),
|
||||||
create_dungeon_region(player, 'GT Right Moldorm Ledge', 'Ganon\'s Tower', None, ['GT Right Moldorm Ledge Down Stairs', 'GT Right Moldorm Ledge Drop Down']),
|
create_dungeon_region(player, 'GT Right Moldorm Ledge', 'Ganon\'s Tower', None, ['GT Right Moldorm Ledge Down Stairs', 'GT Right Moldorm Ledge Drop Down']),
|
||||||
create_dungeon_region(player, 'GT Moldorm', 'Ganon\'s Tower', None, ['GT Moldorm Hole', 'GT Moldorm Gap']),
|
create_dungeon_region(player, 'GT Moldorm', 'Ganon\'s Tower', None, ['GT Moldorm Hole', 'GT Moldorm Gap']),
|
||||||
@@ -758,40 +818,61 @@ def create_dungeon_regions(world, player):
|
|||||||
]
|
]
|
||||||
|
|
||||||
world.initialize_regions()
|
world.initialize_regions()
|
||||||
world.get_region('Hera Lobby', player).crystal_switch = True
|
world.get_region('Hera Lobby - Crystal', player).crystal_switch = True
|
||||||
world.get_region('Hera Basement Cage', player).crystal_switch = True
|
world.get_region('Hera Front - Crystal', player).crystal_switch = True
|
||||||
|
world.get_region('Hera Down Stairs Landing - Ranged Crystal', player).crystal_switch = True
|
||||||
|
world.get_region('Hera Up Stairs Landing - Ranged Crystal', player).crystal_switch = True
|
||||||
|
world.get_region('Hera Back - Ranged Crystal', player).crystal_switch = True
|
||||||
|
world.get_region('Hera Basement Cage - Crystal', player).crystal_switch = True
|
||||||
world.get_region('Hera Tile Room', player).crystal_switch = True # INTERIOR not accessible (maybe with cane)
|
world.get_region('Hera Tile Room', player).crystal_switch = True # INTERIOR not accessible (maybe with cane)
|
||||||
world.get_region('Hera Tridorm', player).crystal_switch = True
|
world.get_region('Hera Beetles', player).crystal_switch = True
|
||||||
world.get_region('Hera Startile Wide', player).crystal_switch = True
|
world.get_region('Hera Tridorm - Crystal', player).crystal_switch = True
|
||||||
world.get_region('PoD Arena Main', player).crystal_switch = True
|
world.get_region('Hera Startile Wide - Crystal', player).crystal_switch = True
|
||||||
world.get_region('PoD Arena Bridge', player).crystal_switch = True # RANGED Weapon Required
|
world.get_region('PoD Arena Main - Ranged Crystal', player).crystal_switch = True
|
||||||
|
world.get_region('PoD Arena Bridge - Ranged Crystal', player).crystal_switch = True
|
||||||
|
world.get_region('PoD Arena Right - Ranged Crystal', player).crystal_switch = True
|
||||||
|
world.get_region('PoD Arena Ledge - Ranged Crystal', player).crystal_switch = True
|
||||||
|
world.get_region('PoD Map Balcony - Ranged Crystal', player).crystal_switch = True
|
||||||
world.get_region('PoD Sexy Statue', player).crystal_switch = True
|
world.get_region('PoD Sexy Statue', player).crystal_switch = True
|
||||||
world.get_region('PoD Bow Statue', player).crystal_switch = True
|
world.get_region('PoD Bow Statue Left - Crystal', player).crystal_switch = True
|
||||||
world.get_region('PoD Dark Pegs Switch', player).crystal_switch = True
|
world.get_region('PoD Bow Statue Right - Ranged Crystal', player).crystal_switch = True
|
||||||
world.get_region('PoD Dark Pegs', player).crystal_switch = True
|
world.get_region('PoD Dark Pegs Landing - Ranged Crystal', player).crystal_switch = True
|
||||||
world.get_region('Swamp Crystal Switch', player).crystal_switch = True
|
world.get_region('PoD Dark Pegs Right', player).crystal_switch = True
|
||||||
|
world.get_region('PoD Dark Pegs Middle - Ranged Crystal', player).crystal_switch = True
|
||||||
|
world.get_region('PoD Dark Pegs Left - Ranged Crystal', player).crystal_switch = True
|
||||||
|
world.get_region('Swamp Crystal Switch Inner - Crystal', player).crystal_switch = True
|
||||||
|
world.get_region('Swamp Crystal Switch Outer - Ranged Crystal', player).crystal_switch = True
|
||||||
world.get_region('Thieves Spike Switch', player).crystal_switch = True
|
world.get_region('Thieves Spike Switch', player).crystal_switch = True
|
||||||
world.get_region('Ice Bomb Drop', player).crystal_switch = True
|
world.get_region('Ice Bomb Drop', player).crystal_switch = True
|
||||||
world.get_region('Ice Conveyor', player).crystal_switch = True
|
world.get_region('Ice Conveyor - Crystal', player).crystal_switch = True
|
||||||
world.get_region('Ice Refill', player).crystal_switch = True
|
world.get_region('Ice Refill - Crystal', player).crystal_switch = True
|
||||||
world.get_region('Mire Fishbone', player).crystal_switch = True
|
world.get_region('Mire Fishbone', player).crystal_switch = True
|
||||||
world.get_region('Mire Conveyor Crystal', player).crystal_switch = True
|
world.get_region('Mire Conveyor - Crystal', player).crystal_switch = True
|
||||||
world.get_region('Mire Tall Dark and Roomy', player).crystal_switch = True
|
world.get_region('Mire Tall Dark and Roomy - Ranged Crystal', player).crystal_switch = True
|
||||||
world.get_region('Mire Crystal Top', player).crystal_switch = True
|
world.get_region('Mire Crystal Top', player).crystal_switch = True
|
||||||
world.get_region('Mire Falling Foes', player).crystal_switch = True
|
world.get_region('Mire Falling Foes', player).crystal_switch = True
|
||||||
world.get_region('TR Chain Chomps', player).crystal_switch = True
|
world.get_region('TR Chain Chomps Top - Crystal', player).crystal_switch = True
|
||||||
world.get_region('TR Pokey 2', player).crystal_switch = True
|
world.get_region('TR Chain Chomps Bottom - Ranged Crystal', player).crystal_switch = True
|
||||||
world.get_region('TR Crystaroller', player).crystal_switch = True
|
world.get_region('TR Pokey 2 Top - Crystal', player).crystal_switch = True
|
||||||
world.get_region('TR Crystal Maze', player).crystal_switch = True
|
world.get_region('TR Pokey 2 Bottom - Ranged Crystal', player).crystal_switch = True
|
||||||
world.get_region('GT Crystal Conveyor', player).crystal_switch = True # INTERIOR not accessible
|
world.get_region('TR Crystaroller Top - Crystal', player).crystal_switch = True
|
||||||
|
world.get_region('TR Crystaroller Bottom - Ranged Crystal', player).crystal_switch = True
|
||||||
|
world.get_region('TR Crystaroller Middle - Ranged Crystal', player).crystal_switch = True
|
||||||
|
world.get_region('TR Crystal Maze Start - Crystal', player).crystal_switch = True
|
||||||
|
world.get_region('TR Crystal Maze Interior', player).crystal_switch = True
|
||||||
|
world.get_region('TR Crystal Maze End - Ranged Crystal', player).crystal_switch = True
|
||||||
|
world.get_region('GT Crystal Conveyor - Ranged Crystal', player).crystal_switch = True
|
||||||
|
world.get_region('GT Crystal Conveyor Corner - Ranged Crystal', player).crystal_switch = True
|
||||||
world.get_region('GT Hookshot South Platform', player).crystal_switch = True
|
world.get_region('GT Hookshot South Platform', player).crystal_switch = True
|
||||||
# Relevant to indicate north door can access c_switch
|
world.get_region('GT Hookshot South Entry - Ranged Crystal', player).crystal_switch = True
|
||||||
world.get_region('GT Double Switch Switches', player).crystal_switch = True
|
world.get_region('GT Double Switch Left', player).crystal_switch = True
|
||||||
world.get_region('GT Spike Crystals', player).crystal_switch = True
|
world.get_region('GT Double Switch Entry - Ranged Switches', player).crystal_switch = True
|
||||||
|
world.get_region('GT Double Switch Pot Corners - Ranged Switches', player).crystal_switch = True
|
||||||
|
world.get_region('GT Spike Crystal Left', player).crystal_switch = True
|
||||||
world.get_region('GT Crystal Paths', player).crystal_switch = True
|
world.get_region('GT Crystal Paths', player).crystal_switch = True
|
||||||
world.get_region('GT Hidden Spikes', player).crystal_switch = True
|
world.get_region('GT Hidden Spikes', player).crystal_switch = True
|
||||||
world.get_region('GT Crystal Circles', player).crystal_switch = True
|
world.get_region('GT Crystal Inner Circle', player).crystal_switch = True
|
||||||
|
world.get_region('GT Crystal Circles - Ranged Crystal', player).crystal_switch = True
|
||||||
|
|
||||||
def create_menu_region(player, name, locations=None, exits=None):
|
def create_menu_region(player, name, locations=None, exits=None):
|
||||||
return _create_region(player, name, RegionType.Menu, 'Menu', locations, exits)
|
return _create_region(player, name, RegionType.Menu, 'Menu', locations, exits)
|
||||||
|
|||||||
4
Rom.py
4
Rom.py
@@ -1138,8 +1138,8 @@ def patch_rom(world, rom, player, team, enemized, is_mystery=False):
|
|||||||
rom.write_byte(0x180171, 0x01 if world.ganon_at_pyramid[player] else 0x00) # Enable respawning on pyramid after ganon death
|
rom.write_byte(0x180171, 0x01 if world.ganon_at_pyramid[player] else 0x00) # Enable respawning on pyramid after ganon death
|
||||||
rom.write_byte(0x180173, 0x01) # Bob is enabled
|
rom.write_byte(0x180173, 0x01) # Bob is enabled
|
||||||
rom.write_byte(0x180168, 0x08) # Spike Cave Damage
|
rom.write_byte(0x180168, 0x08) # Spike Cave Damage
|
||||||
rom.write_bytes(0x18016B, [0x04, 0x02, 0x01]) #Set spike cave and MM spike room Cape usage
|
rom.write_bytes(0x18016B, [0x04, 0x02, 0x01]) # Set spike cave and MM spike room Byrna usage
|
||||||
rom.write_bytes(0x18016E, [0x04, 0x08, 0x10]) #Set spike cave and MM spike room Cape usage
|
rom.write_bytes(0x18016E, [0x04, 0x08, 0x10]) # Set spike cave and MM spike room Cape usage
|
||||||
rom.write_bytes(0x50563, [0x3F, 0x14]) # disable below ganon chest
|
rom.write_bytes(0x50563, [0x3F, 0x14]) # disable below ganon chest
|
||||||
rom.write_byte(0x50599, 0x00) # disable below ganon chest
|
rom.write_byte(0x50599, 0x00) # disable below ganon chest
|
||||||
rom.write_bytes(0xE9A5, [0x7E, 0x00, 0x24]) # disable below ganon chest
|
rom.write_bytes(0xE9A5, [0x7E, 0x00, 0x24]) # disable below ganon chest
|
||||||
|
|||||||
398
Rules.py
398
Rules.py
@@ -28,6 +28,8 @@ def set_rules(world, player):
|
|||||||
else:
|
else:
|
||||||
raise NotImplementedError('Not implemented yet')
|
raise NotImplementedError('Not implemented yet')
|
||||||
|
|
||||||
|
bomb_rules(world, player)
|
||||||
|
|
||||||
if world.logic[player] == 'noglitches':
|
if world.logic[player] == 'noglitches':
|
||||||
no_glitches_rules(world, player)
|
no_glitches_rules(world, player)
|
||||||
elif world.logic[player] == 'minorglitches':
|
elif world.logic[player] == 'minorglitches':
|
||||||
@@ -177,15 +179,16 @@ def global_rules(world, player):
|
|||||||
set_rule(world.get_entrance('Tower Altar NW', player), lambda state: state.has_sword(player))
|
set_rule(world.get_entrance('Tower Altar NW', player), lambda state: state.has_sword(player))
|
||||||
set_defeat_dungeon_boss_rule(world.get_location('Agahnim 1', player))
|
set_defeat_dungeon_boss_rule(world.get_location('Agahnim 1', player))
|
||||||
|
|
||||||
set_rule(world.get_entrance('PoD Arena Bonk Path', player), lambda state: state.has_Boots(player))
|
|
||||||
|
set_rule(world.get_entrance('PoD Arena Landing Bonk Path', player), lambda state: state.has_Boots(player))
|
||||||
set_rule(world.get_entrance('PoD Mimics 1 NW', player), lambda state: state.can_shoot_arrows(player))
|
set_rule(world.get_entrance('PoD Mimics 1 NW', player), lambda state: state.can_shoot_arrows(player))
|
||||||
set_rule(world.get_entrance('PoD Mimics 2 NW', player), lambda state: state.can_shoot_arrows(player))
|
set_rule(world.get_entrance('PoD Mimics 2 NW', player), lambda state: state.can_shoot_arrows(player))
|
||||||
set_rule(world.get_entrance('PoD Bow Statue Down Ladder', player), lambda state: state.can_shoot_arrows(player))
|
set_rule(world.get_entrance('PoD Bow Statue Down Ladder', player), lambda state: state.can_shoot_arrows(player))
|
||||||
set_rule(world.get_entrance('PoD Map Balcony Drop Down', player), lambda state: state.has('Hammer', player))
|
set_rule(world.get_entrance('PoD Map Balcony Drop Down', player), lambda state: state.has('Hammer', player))
|
||||||
set_rule(world.get_entrance('PoD Dark Pegs Hammer Path', player), lambda state: state.has('Hammer', player))
|
set_rule(world.get_entrance('PoD Dark Pegs Landing to Right', player), lambda state: state.has('Hammer', player))
|
||||||
set_rule(world.get_entrance('PoD Dark Pegs Ladder Hammer Path', player), lambda state: state.has('Hammer', player))
|
set_rule(world.get_entrance('PoD Dark Pegs Right to Landing', player), lambda state: state.has('Hammer', player))
|
||||||
set_rule(world.get_entrance('PoD Dark Pegs Ladder Cane Path', player), lambda state: state.has('Cane of Somaria', player))
|
set_rule(world.get_entrance('PoD Turtle Party NW', player), lambda state: state.has('Hammer', player))
|
||||||
set_rule(world.get_entrance('PoD Bow Statue Moving Wall Cane Path', player), lambda state: state.has('Cane of Somaria', player))
|
set_rule(world.get_entrance('PoD Turtle Party ES', player), lambda state: state.has('Hammer', player))
|
||||||
set_defeat_dungeon_boss_rule(world.get_location('Palace of Darkness - Boss', player))
|
set_defeat_dungeon_boss_rule(world.get_location('Palace of Darkness - Boss', player))
|
||||||
set_defeat_dungeon_boss_rule(world.get_location('Palace of Darkness - Prize', player))
|
set_defeat_dungeon_boss_rule(world.get_location('Palace of Darkness - Prize', player))
|
||||||
|
|
||||||
@@ -232,6 +235,7 @@ def global_rules(world, player):
|
|||||||
set_defeat_dungeon_boss_rule(world.get_location('Skull Woods - Prize', player))
|
set_defeat_dungeon_boss_rule(world.get_location('Skull Woods - Prize', player))
|
||||||
|
|
||||||
# blind can't have the small key? - not necessarily true anymore - but likely still
|
# blind can't have the small key? - not necessarily true anymore - but likely still
|
||||||
|
|
||||||
set_rule(world.get_location('Thieves\' Town - Big Chest', player), lambda state: state.has('Hammer', player))
|
set_rule(world.get_location('Thieves\' Town - Big Chest', player), lambda state: state.has('Hammer', player))
|
||||||
for entrance in ['Thieves Basement Block Path', 'Thieves Blocked Entry Path', 'Thieves Conveyor Block Path', 'Thieves Conveyor Bridge Block Path']:
|
for entrance in ['Thieves Basement Block Path', 'Thieves Blocked Entry Path', 'Thieves Conveyor Block Path', 'Thieves Conveyor Bridge Block Path']:
|
||||||
set_rule(world.get_entrance(entrance, player), lambda state: state.can_lift_rocks(player))
|
set_rule(world.get_entrance(entrance, player), lambda state: state.can_lift_rocks(player))
|
||||||
@@ -271,6 +275,7 @@ def global_rules(world, player):
|
|||||||
set_rule(world.get_entrance('Mire Tile Room NW', player), lambda state: state.has_fire_source(player))
|
set_rule(world.get_entrance('Mire Tile Room NW', player), lambda state: state.has_fire_source(player))
|
||||||
set_rule(world.get_entrance('Mire Attic Hint Hole', player), lambda state: state.has_fire_source(player))
|
set_rule(world.get_entrance('Mire Attic Hint Hole', player), lambda state: state.has_fire_source(player))
|
||||||
set_rule(world.get_entrance('Mire Dark Shooters SW', player), lambda state: state.has('Cane of Somaria', player))
|
set_rule(world.get_entrance('Mire Dark Shooters SW', player), lambda state: state.has('Cane of Somaria', player))
|
||||||
|
|
||||||
set_defeat_dungeon_boss_rule(world.get_location('Misery Mire - Boss', player))
|
set_defeat_dungeon_boss_rule(world.get_location('Misery Mire - Boss', player))
|
||||||
set_defeat_dungeon_boss_rule(world.get_location('Misery Mire - Prize', player))
|
set_defeat_dungeon_boss_rule(world.get_location('Misery Mire - Prize', player))
|
||||||
|
|
||||||
@@ -287,7 +292,6 @@ def global_rules(world, player):
|
|||||||
set_rule(world.get_entrance('TR Big Chest Gap', player), lambda state: state.has('Cane of Somaria', player) or state.has_Boots(player))
|
set_rule(world.get_entrance('TR Big Chest Gap', player), lambda state: state.has('Cane of Somaria', player) or state.has_Boots(player))
|
||||||
set_rule(world.get_entrance('TR Dark Ride Up Stairs', player), lambda state: state.has('Cane of Somaria', player))
|
set_rule(world.get_entrance('TR Dark Ride Up Stairs', player), lambda state: state.has('Cane of Somaria', player))
|
||||||
set_rule(world.get_entrance('TR Dark Ride SW', player), lambda state: state.has('Cane of Somaria', player))
|
set_rule(world.get_entrance('TR Dark Ride SW', player), lambda state: state.has('Cane of Somaria', player))
|
||||||
set_rule(world.get_entrance('TR Crystal Maze Cane Path', player), lambda state: state.has('Cane of Somaria', player))
|
|
||||||
set_rule(world.get_entrance('TR Final Abyss South Stairs', player), lambda state: state.has('Cane of Somaria', player))
|
set_rule(world.get_entrance('TR Final Abyss South Stairs', player), lambda state: state.has('Cane of Somaria', player))
|
||||||
set_rule(world.get_entrance('TR Final Abyss NW', player), lambda state: state.has('Cane of Somaria', player))
|
set_rule(world.get_entrance('TR Final Abyss NW', player), lambda state: state.has('Cane of Somaria', player))
|
||||||
set_rule(world.get_location('Turtle Rock - Eye Bridge - Bottom Left', player), lambda state: state.has('Cane of Byrna', player) or state.has('Cape', player) or state.has('Mirror Shield', player))
|
set_rule(world.get_location('Turtle Rock - Eye Bridge - Bottom Left', player), lambda state: state.has('Cane of Byrna', player) or state.has('Cape', player) or state.has('Mirror Shield', player))
|
||||||
@@ -309,8 +313,8 @@ def global_rules(world, player):
|
|||||||
set_rule(world.get_entrance('GT Hookshot East-South Path', player), lambda state: state.has('Hookshot', player) or state.has_Boots(player))
|
set_rule(world.get_entrance('GT Hookshot East-South Path', player), lambda state: state.has('Hookshot', player) or state.has_Boots(player))
|
||||||
set_rule(world.get_entrance('GT Hookshot North-East Path', player), lambda state: state.has('Hookshot', player) or state.has_Boots(player))
|
set_rule(world.get_entrance('GT Hookshot North-East Path', player), lambda state: state.has('Hookshot', player) or state.has_Boots(player))
|
||||||
set_rule(world.get_entrance('GT Hookshot North-South Path', player), lambda state: state.has('Hookshot', player) or state.has_Boots(player))
|
set_rule(world.get_entrance('GT Hookshot North-South Path', player), lambda state: state.has('Hookshot', player) or state.has_Boots(player))
|
||||||
set_rule(world.get_entrance('GT Hookshot Entry Boomerang Path', player), lambda state: state.has('Blue Boomerang', player) or state.has('Red Boomerang', player))
|
|
||||||
set_rule(world.get_entrance('GT Firesnake Room Hook Path', player), lambda state: state.has('Hookshot', player))
|
set_rule(world.get_entrance('GT Firesnake Room Hook Path', player), lambda state: state.has('Hookshot', player))
|
||||||
|
|
||||||
# I am tempted to stick an invincibility rule for getting across falling bridge
|
# I am tempted to stick an invincibility rule for getting across falling bridge
|
||||||
set_rule(world.get_entrance('GT Ice Armos NE', player), lambda state: world.get_region('GT Ice Armos', player).dungeon.bosses['bottom'].can_defeat(state))
|
set_rule(world.get_entrance('GT Ice Armos NE', player), lambda state: world.get_region('GT Ice Armos', player).dungeon.bosses['bottom'].can_defeat(state))
|
||||||
set_rule(world.get_entrance('GT Ice Armos WS', player), lambda state: world.get_region('GT Ice Armos', player).dungeon.bosses['bottom'].can_defeat(state))
|
set_rule(world.get_entrance('GT Ice Armos WS', player), lambda state: world.get_region('GT Ice Armos', player).dungeon.bosses['bottom'].can_defeat(state))
|
||||||
@@ -346,17 +350,93 @@ def global_rules(world, player):
|
|||||||
else:
|
else:
|
||||||
set_rule(world.get_entrance('Thieves Attic ES', player), lambda state: state.can_reach_orange(world.get_region('Thieves Attic', player), player))
|
set_rule(world.get_entrance('Thieves Attic ES', player), lambda state: state.can_reach_orange(world.get_region('Thieves Attic', player), player))
|
||||||
|
|
||||||
set_rule(world.get_entrance('PoD Arena Crystal Path', player), lambda state: state.can_reach_blue(world.get_region('PoD Arena Crystal', player), player))
|
set_rule(world.get_entrance('Hera Lobby to Front Barrier - Blue', player), lambda state: state.can_reach_blue(world.get_region('Hera Lobby', player), player))
|
||||||
|
set_rule(world.get_entrance('Hera Front to Lobby Barrier - Blue', player), lambda state: state.can_reach_blue(world.get_region('Hera Front', player), player))
|
||||||
|
set_rule(world.get_entrance('Hera Front to Down Stairs Barrier - Blue', player), lambda state: state.can_reach_blue(world.get_region('Hera Front', player), player))
|
||||||
|
set_rule(world.get_entrance('Hera Down Stairs to Front Barrier - Blue', player), lambda state: state.can_reach_blue(world.get_region('Hera Down Stairs Landing', player), player))
|
||||||
|
set_rule(world.get_entrance('Hera Front to Up Stairs Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('Hera Front', player), player))
|
||||||
|
set_rule(world.get_entrance('Hera Up Stairs to Front Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('Hera Up Stairs Landing', player), player))
|
||||||
|
set_rule(world.get_entrance('Hera Front to Back Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('Hera Front', player), player))
|
||||||
|
set_rule(world.get_entrance('Hera Back to Front Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('Hera Back', player), player))
|
||||||
|
set_rule(world.get_location('Tower of Hera - Basement Cage', player), lambda state: state.can_reach_orange(world.get_region('Hera Basement Cage', player), player))
|
||||||
|
set_rule(world.get_entrance('Hera Tridorm WN', player), lambda state: state.can_reach_blue(world.get_region('Hera Tridorm', player), player))
|
||||||
|
set_rule(world.get_entrance('Hera Tridorm SE', player), lambda state: state.can_reach_orange(world.get_region('Hera Tridorm', player), player))
|
||||||
|
set_rule(world.get_entrance('Hera Tile Room EN', player), lambda state: state.can_reach_blue(world.get_region('Hera Tile Room', player), player))
|
||||||
|
|
||||||
|
set_rule(world.get_entrance('Hera Lobby to Crystal', player), lambda state: state.can_hit_crystal(player))
|
||||||
|
set_rule(world.get_entrance('Hera Front to Crystal', player), lambda state: state.can_hit_crystal(player))
|
||||||
|
set_rule(world.get_entrance('Hera Down Stairs Landing to Ranged Crystal', player), lambda state: state.can_hit_crystal_through_barrier(player) or (state.has('Hookshot', player) and state.can_reach_blue(world.get_region('Hera Down Stairs Landing', player), player))) # or state.has_beam_sword(player)
|
||||||
|
set_rule(world.get_entrance('Hera Up Stairs Landing to Ranged Crystal', player), lambda state: state.can_hit_crystal_through_barrier(player) or (state.has('Hookshot', player) and state.can_reach_orange(world.get_region('Hera Up Stairs Landing', player), player))) # or state.has_beam_sword(player)
|
||||||
|
set_rule(world.get_entrance('Hera Back to Ranged Crystal', player), lambda state: False) # state.can_shoot_arrows(player) or state.has('Fire Rod', player) or state.has('Ice Rod', player) or state.has('Cane of Somaria', player) or state.has_beam_sword(player) or (state.has('Hookshot', player) and state.has('Red Boomerang', player))
|
||||||
|
set_rule(world.get_entrance('Hera Front to Back Bypass', player), lambda state: state.can_use_bombs(player) or state.can_shoot_arrows(player) or state.has('Red Boomerang', player) or state.has('Blue Boomerang', player) or state.has('Cane of Somaria', player) or state.has('Fire Rod', player) or state.has('Ice Rod', player)) # or state.has_beam_sword(player)
|
||||||
|
set_rule(world.get_entrance('Hera Basement Cage to Crystal', player), lambda state: state.can_hit_crystal(player))
|
||||||
|
set_rule(world.get_entrance('Hera Tridorm to Crystal', player), lambda state: state.can_hit_crystal(player))
|
||||||
|
set_rule(world.get_entrance('Hera Startile Wide to Crystal', player), lambda state: state.can_hit_crystal(player))
|
||||||
|
|
||||||
|
set_rule(world.get_entrance('PoD Arena North to Landing Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('PoD Arena North', player), player))
|
||||||
|
set_rule(world.get_entrance('PoD Arena Landing to North Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('PoD Arena Landing', player), player))
|
||||||
|
set_rule(world.get_entrance('PoD Arena Main to Landing Barrier - Blue', player), lambda state: state.can_reach_blue(world.get_region('PoD Arena Main', player), player))
|
||||||
|
set_rule(world.get_entrance('PoD Arena Landing to Main Barrier - Blue', player), lambda state: state.can_reach_blue(world.get_region('PoD Arena Landing', player), player))
|
||||||
|
set_rule(world.get_entrance('PoD Arena Landing to Right Barrier - Blue', player), lambda state: state.can_reach_blue(world.get_region('PoD Arena Landing', player), player))
|
||||||
|
set_rule(world.get_entrance('PoD Arena Right to Landing Barrier - Blue', player), lambda state: state.can_reach_blue(world.get_region('PoD Arena Right', player), player))
|
||||||
|
set_rule(world.get_entrance('PoD Bow Statue Left to Right Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('PoD Bow Statue Left', player), player))
|
||||||
|
set_rule(world.get_entrance('PoD Bow Statue Right to Left Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('PoD Bow Statue Right', player), player))
|
||||||
|
set_rule(world.get_entrance('PoD Dark Pegs Right to Middle Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('PoD Dark Pegs Right', player), player))
|
||||||
|
set_rule(world.get_entrance('PoD Dark Pegs Middle to Right Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('PoD Dark Pegs Middle', player), player))
|
||||||
|
set_rule(world.get_entrance('PoD Dark Pegs Middle to Left Barrier - Blue', player), lambda state: state.can_reach_blue(world.get_region('PoD Dark Pegs Middle', player), player))
|
||||||
|
set_rule(world.get_entrance('PoD Dark Pegs Left to Middle Barrier - Blue', player), lambda state: state.can_reach_blue(world.get_region('PoD Dark Pegs Left', player), player))
|
||||||
|
|
||||||
|
set_rule(world.get_entrance('PoD Arena Main to Ranged Crystal', player), lambda state: True) # Can always throw pots here
|
||||||
|
set_rule(world.get_entrance('PoD Arena Main to Landing Bypass', player), lambda state: state.can_use_bombs(player) or state.has('Cane of Somaria', player))
|
||||||
|
set_rule(world.get_entrance('PoD Arena Main to Right Bypass', player), lambda state: state.can_use_bombs(player) or state.has('Cane of Somaria', player))
|
||||||
|
set_rule(world.get_entrance('PoD Arena Bridge to Ranged Crystal', player), lambda state: state.can_shoot_arrows(player) or state.has('Red Boomerang', player) or state.has('Fire Rod', player) or state.has('Ice Rod', player) or state.has('Cane of Somaria', player)) # or state.has_beam_sword(player)
|
||||||
|
set_rule(world.get_entrance('PoD Arena Right to Ranged Crystal', player), lambda state: False) # (state.has('Cane of Somaria', player) and state.has_Boots(player))
|
||||||
|
set_rule(world.get_entrance('PoD Arena Ledge to Ranged Crystal', player), lambda state: False) # state.has('Cane of Somaria', player) or state.has_beam_sword(player)
|
||||||
|
set_rule(world.get_entrance('PoD Map Balcony to Ranged Crystal', player), lambda state: state.can_use_bombs(player) or state.has('Cane of Somaria', player)) # or state.has('Red Boomerang', player)
|
||||||
|
set_rule(world.get_entrance('PoD Bow Statue Left to Crystal', player), lambda state: state.can_hit_crystal(player))
|
||||||
|
set_rule(world.get_entrance('PoD Bow Statue Right to Ranged Crystal', player), lambda state: state.has('Cane of Somaria', player))
|
||||||
|
set_rule(world.get_entrance('PoD Bow Statue Left to Right Bypass', player), lambda state: state.has('Cane of Somaria', player)) # or state.can_use_bombs(player) or state.can_shoot_arrows(player) or state.has_beam_sword(player) or state.has('Red Boomrang', player) or state.has('Ice Rod', player) or state.has('Fire Rod', player)
|
||||||
|
set_rule(world.get_entrance('PoD Dark Pegs Landing to Ranged Crystal', player), lambda state: state.has('Cane of Somaria', player)) # or state.can_use_bombs(player) or state.has('Blue boomerang', player) or state.has('Red boomerang', player)
|
||||||
|
set_rule(world.get_entrance('PoD Dark Pegs Middle to Ranged Crystal', player), lambda state: state.can_shoot_arrows(player) or state.can_use_bombs(player) or state.has('Red Boomerang', player) or state.has('Fire Rod', player) or state.has('Ice Rod', player) or state.has('Cane of Somaria', player) or (state.has('Hookshot', player) and state.can_reach_orange(world.get_region('PoD Dark Pegs Middle', player), player))) # or state.has_beam_sword(player)
|
||||||
|
set_rule(world.get_entrance('PoD Dark Pegs Left to Ranged Crystal', player), lambda state: state.can_shoot_arrows(player) or state.has('Red Boomerang', player) or state.has('Fire Rod', player) or state.has('Ice Rod', player) or state.has('Cane of Somaria', player)) # or state.has_beam_sword(player)
|
||||||
|
set_rule(world.get_entrance('PoD Dark Pegs Right to Middle Bypass', player), lambda state: state.has('Blue Boomerang', player))
|
||||||
|
set_rule(world.get_entrance('PoD Dark Pegs Middle to Left Bypass', player), lambda state: state.can_use_bombs(player))
|
||||||
|
|
||||||
|
set_rule(world.get_entrance('Swamp Crystal Switch Outer to Inner Barrier - Blue', player), lambda state: state.can_reach_blue(world.get_region('Swamp Trench 2 Pots', player), player))
|
||||||
|
set_rule(world.get_entrance('Swamp Crystal Switch Inner to Outer Barrier - Blue', player), lambda state: state.can_reach_blue(world.get_region('Swamp Trench 2 Pots', player), player))
|
||||||
set_rule(world.get_entrance('Swamp Trench 2 Pots Blue Barrier', player), lambda state: state.can_reach_blue(world.get_region('Swamp Trench 2 Pots', player), player))
|
set_rule(world.get_entrance('Swamp Trench 2 Pots Blue Barrier', player), lambda state: state.can_reach_blue(world.get_region('Swamp Trench 2 Pots', player), player))
|
||||||
set_rule(world.get_entrance('Swamp Shortcut Blue Barrier', player), lambda state: state.can_reach_blue(world.get_region('Swamp Shortcut', player), player))
|
set_rule(world.get_entrance('Swamp Shortcut Blue Barrier', player), lambda state: state.can_reach_blue(world.get_region('Swamp Shortcut', player), player))
|
||||||
|
set_rule(world.get_entrance('Swamp Barrier Ledge - Orange', player), lambda state: state.can_reach_orange(world.get_region('Swamp Barrier Ledge', player), player))
|
||||||
|
set_rule(world.get_entrance('Swamp Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('Swamp Barrier', player), player))
|
||||||
|
|
||||||
|
set_rule(world.get_entrance('Swamp Crystal Switch Inner to Crystal', player), lambda state: state.can_hit_crystal(player))
|
||||||
|
set_rule(world.get_entrance('Swamp Crystal Switch Outer to Ranged Crystal', player), lambda state: state.can_hit_crystal_through_barrier(player) or state.has_beam_sword(player) or (state.has('Hookshot', player) and state.can_reach_blue(world.get_region('Swamp Crystal Switch Outer', player), player))) # It is the length of the sword, not the beam itself that allows this
|
||||||
|
set_rule(world.get_entrance('Swamp Crystal Switch Outer to Inner Bypass', player), lambda state: state.world.can_take_damage or state.has('Cape', player) or state.has('Cane of Byrna', player))
|
||||||
|
set_rule(world.get_entrance('Swamp Crystal Switch Inner to Outer Bypass', player), lambda state: state.world.can_take_damage or state.has('Cape', player) or state.has('Cane of Byrna', player))
|
||||||
|
|
||||||
set_rule(world.get_entrance('Thieves Hellway Blue Barrier', player), lambda state: state.can_reach_blue(world.get_region('Thieves Hellway', player), player))
|
set_rule(world.get_entrance('Thieves Hellway Blue Barrier', player), lambda state: state.can_reach_blue(world.get_region('Thieves Hellway', player), player))
|
||||||
|
set_rule(world.get_entrance('Thieves Hellway Orange Barrier', player), lambda state: state.can_reach_orange(world.get_region('Thieves Hellway', player), player))
|
||||||
set_rule(world.get_entrance('Thieves Hellway Crystal Blue Barrier', player), lambda state: state.can_reach_blue(world.get_region('Thieves Hellway N Crystal', player), player))
|
set_rule(world.get_entrance('Thieves Hellway Crystal Blue Barrier', player), lambda state: state.can_reach_blue(world.get_region('Thieves Hellway N Crystal', player), player))
|
||||||
|
set_rule(world.get_entrance('Thieves Hellway Crystal Orange Barrier', player), lambda state: state.can_reach_orange(world.get_region('Thieves Hellway S Crystal', player), player))
|
||||||
set_rule(world.get_entrance('Thieves Triple Bypass SE', player), lambda state: state.can_reach_blue(world.get_region('Thieves Triple Bypass', player), player))
|
set_rule(world.get_entrance('Thieves Triple Bypass SE', player), lambda state: state.can_reach_blue(world.get_region('Thieves Triple Bypass', player), player))
|
||||||
set_rule(world.get_entrance('Thieves Triple Bypass WN', player), lambda state: state.can_reach_blue(world.get_region('Thieves Triple Bypass', player), player))
|
set_rule(world.get_entrance('Thieves Triple Bypass WN', player), lambda state: state.can_reach_blue(world.get_region('Thieves Triple Bypass', player), player))
|
||||||
set_rule(world.get_entrance('Thieves Triple Bypass EN', player), lambda state: state.can_reach_blue(world.get_region('Thieves Triple Bypass', player), player))
|
set_rule(world.get_entrance('Thieves Triple Bypass EN', player), lambda state: state.can_reach_blue(world.get_region('Thieves Triple Bypass', player), player))
|
||||||
|
|
||||||
set_rule(world.get_entrance('Ice Crystal Right Blue Hole', player), lambda state: state.can_reach_blue(world.get_region('Ice Crystal Right', player), player))
|
set_rule(world.get_entrance('Ice Crystal Right Blue Hole', player), lambda state: state.can_reach_blue(world.get_region('Ice Crystal Right', player), player))
|
||||||
|
set_rule(world.get_entrance('Ice Crystal Right Orange Barrier', player), lambda state: state.can_reach_orange(world.get_region('Ice Crystal Right', player), player))
|
||||||
set_rule(world.get_entrance('Ice Crystal Left Blue Barrier', player), lambda state: state.can_reach_blue(world.get_region('Ice Crystal Left', player), player))
|
set_rule(world.get_entrance('Ice Crystal Left Blue Barrier', player), lambda state: state.can_reach_blue(world.get_region('Ice Crystal Left', player), player))
|
||||||
|
set_rule(world.get_entrance('Ice Crystal Left Orange Barrier', player), lambda state: state.can_reach_orange(world.get_region('Ice Crystal Left', player), player))
|
||||||
set_rule(world.get_entrance('Ice Backwards Room Hole', player), lambda state: state.can_reach_blue(world.get_region('Ice Backwards Room', player), player))
|
set_rule(world.get_entrance('Ice Backwards Room Hole', player), lambda state: state.can_reach_blue(world.get_region('Ice Backwards Room', player), player))
|
||||||
|
set_rule(world.get_entrance('Ice Bomb Jump Ledge Orange Barrier', player), lambda state: state.can_reach_orange(world.get_region('Ice Bomb Jump Ledge', player), player))
|
||||||
|
set_rule(world.get_entrance('Ice Bomb Jump Catwalk Orange Barrier', player), lambda state: state.can_reach_orange(world.get_region('Ice Bomb Jump Catwalk', player), player))
|
||||||
|
|
||||||
|
set_rule(world.get_entrance('Ice Conveyor to Crystal', player), lambda state: state.can_hit_crystal(player))
|
||||||
|
set_rule(world.get_entrance('Ice Refill to Crystal', player), lambda state: state.can_hit_crystal(player) or state.can_reach_blue(world.get_region('Ice Refill', player), player))
|
||||||
|
|
||||||
|
set_rule(world.get_entrance('Mire Crystal Right Orange Barrier', player), lambda state: state.can_reach_orange(world.get_region('Mire Crystal Right', player), player))
|
||||||
|
set_rule(world.get_entrance('Mire Crystal Mid Orange Barrier', player), lambda state: state.can_reach_orange(world.get_region('Mire Crystal Mid', player), player))
|
||||||
|
set_rule(world.get_entrance('Mire Firesnake Skip Orange Barrier', player), lambda state: state.can_reach_orange(world.get_region('Mire Firesnake Skip', player), player))
|
||||||
|
set_rule(world.get_entrance('Mire Antechamber Orange Barrier', player), lambda state: state.can_reach_orange(world.get_region('Mire Antechamber', player), player))
|
||||||
set_rule(world.get_entrance('Mire Hub Upper Blue Barrier', player), lambda state: state.can_reach_blue(world.get_region('Mire Hub', player), player))
|
set_rule(world.get_entrance('Mire Hub Upper Blue Barrier', player), lambda state: state.can_reach_blue(world.get_region('Mire Hub', player), player))
|
||||||
set_rule(world.get_entrance('Mire Hub Lower Blue Barrier', player), lambda state: state.can_reach_blue(world.get_region('Mire Hub', player), player))
|
set_rule(world.get_entrance('Mire Hub Lower Blue Barrier', player), lambda state: state.can_reach_blue(world.get_region('Mire Hub', player), player))
|
||||||
set_rule(world.get_entrance('Mire Hub Right Blue Barrier', player), lambda state: state.can_reach_blue(world.get_region('Mire Hub Right', player), player))
|
set_rule(world.get_entrance('Mire Hub Right Blue Barrier', player), lambda state: state.can_reach_blue(world.get_region('Mire Hub Right', player), player))
|
||||||
@@ -371,31 +451,70 @@ def global_rules(world, player):
|
|||||||
set_rule(world.get_entrance('Mire Compass Blue Barrier', player), lambda state: state.can_reach_blue(world.get_region('Mire Compass Room', player), player))
|
set_rule(world.get_entrance('Mire Compass Blue Barrier', player), lambda state: state.can_reach_blue(world.get_region('Mire Compass Room', player), player))
|
||||||
set_rule(world.get_entrance('Mire Crystal Mid Blue Barrier', player), lambda state: state.can_reach_blue(world.get_region('Mire Crystal Mid', player), player))
|
set_rule(world.get_entrance('Mire Crystal Mid Blue Barrier', player), lambda state: state.can_reach_blue(world.get_region('Mire Crystal Mid', player), player))
|
||||||
set_rule(world.get_entrance('Mire Crystal Left Blue Barrier', player), lambda state: state.can_reach_blue(world.get_region('Mire Crystal Left', player), player))
|
set_rule(world.get_entrance('Mire Crystal Left Blue Barrier', player), lambda state: state.can_reach_blue(world.get_region('Mire Crystal Left', player), player))
|
||||||
set_rule(world.get_entrance('TR Crystal Maze Blue Path', player), lambda state: state.can_reach_blue(world.get_region('TR Crystal Maze End', player), player))
|
|
||||||
set_rule(world.get_entrance('GT Hookshot Entry Blue Barrier', player), lambda state: state.can_reach_blue(world.get_region('GT Hookshot South Entry', player), player))
|
|
||||||
set_rule(world.get_entrance('GT Double Switch Key Blue Path', player), lambda state: state.can_reach_blue(world.get_region('GT Double Switch Key Spot', player), player))
|
|
||||||
set_rule(world.get_entrance('GT Double Switch Blue Barrier', player), lambda state: state.can_reach_blue(world.get_region('GT Double Switch Switches', player), player))
|
|
||||||
set_rule(world.get_entrance('GT Double Switch Transition Blue', player), lambda state: state.can_reach_blue(world.get_region('GT Double Switch Transition', player), player))
|
|
||||||
|
|
||||||
set_rule(world.get_entrance('Swamp Barrier Ledge - Orange', player), lambda state: state.can_reach_orange(world.get_region('Swamp Barrier Ledge', player), player))
|
set_rule(world.get_entrance('Mire Conveyor to Crystal', player), lambda state: state.can_hit_crystal(player))
|
||||||
set_rule(world.get_entrance('Swamp Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('Swamp Barrier', player), player))
|
set_rule(world.get_entrance('Mire Tall Dark and Roomy to Ranged Crystal', player), lambda state: True) # Can always throw pots
|
||||||
set_rule(world.get_entrance('Thieves Hellway Orange Barrier', player), lambda state: state.can_reach_orange(world.get_region('Thieves Hellway', player), player))
|
set_rule(world.get_entrance('Mire Fishbone Blue Barrier Bypass', player), lambda state: False) # (state.world.can_take_damage or state.has('Cape', player) or state.has('Cane of Byrna', player)) and state.can_tastate.can_use_bombs(player) // Easy to do but obscure. Should it be in logic?
|
||||||
set_rule(world.get_entrance('Thieves Hellway Crystal Orange Barrier', player), lambda state: state.can_reach_orange(world.get_region('Thieves Hellway S Crystal', player), player))
|
|
||||||
set_rule(world.get_entrance('Ice Bomb Jump Ledge Orange Barrier', player), lambda state: state.can_reach_orange(world.get_region('Ice Bomb Jump Ledge', player), player))
|
set_rule(world.get_location('Turtle Rock - Chain Chomps', player), lambda state: state.can_reach('TR Chain Chomps Top', 'Region', player) and state.can_hit_crystal_through_barrier(player))
|
||||||
set_rule(world.get_entrance('Ice Bomb Jump Catwalk Orange Barrier', player), lambda state: state.can_reach_orange(world.get_region('Ice Bomb Jump Catwalk', player), player))
|
set_rule(world.get_entrance('TR Chain Chomps Top to Bottom Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('TR Chain Chomps Top', player), player))
|
||||||
set_rule(world.get_entrance('Ice Crystal Right Orange Barrier', player), lambda state: state.can_reach_orange(world.get_region('Ice Crystal Right', player), player))
|
set_rule(world.get_entrance('TR Chain Chomps Bottom to Top Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('TR Chain Chomps Bottom', player), player))
|
||||||
set_rule(world.get_entrance('Ice Crystal Left Orange Barrier', player), lambda state: state.can_reach_orange(world.get_region('Ice Crystal Left', player), player))
|
set_rule(world.get_entrance('TR Pokey 2 Top to Bottom Barrier - Blue', player), lambda state: state.can_reach_blue(world.get_region('TR Pokey 2 Top', player), player))
|
||||||
set_rule(world.get_entrance('Mire Crystal Right Orange Barrier', player), lambda state: state.can_reach_orange(world.get_region('Mire Crystal Right', player), player))
|
set_rule(world.get_entrance('TR Pokey 2 Bottom to Top Barrier - Blue', player), lambda state: state.can_reach_blue(world.get_region('TR Pokey 2 Bottom', player), player))
|
||||||
set_rule(world.get_entrance('Mire Crystal Mid Orange Barrier', player), lambda state: state.can_reach_orange(world.get_region('Mire Crystal Mid', player), player))
|
set_rule(world.get_entrance('TR Crystaroller Bottom to Middle Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('TR Crystaroller Bottom', player), player))
|
||||||
set_rule(world.get_entrance('Mire Firesnake Skip Orange Barrier', player), lambda state: state.can_reach_orange(world.get_region('Mire Firesnake Skip', player), player))
|
set_rule(world.get_entrance('TR Crystaroller Middle to Bottom Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('TR Crystaroller Middle', player), player))
|
||||||
set_rule(world.get_entrance('Mire Antechamber Orange Barrier', player), lambda state: state.can_reach_orange(world.get_region('Mire Antechamber', player), player))
|
set_rule(world.get_entrance('TR Crystaroller Middle to Chest Barrier - Blue', player), lambda state: state.can_reach_blue(world.get_region('TR Crystaroller Middle', player), player))
|
||||||
set_rule(world.get_entrance('GT Double Switch Orange Barrier', player), lambda state: state.can_reach_orange(world.get_region('GT Double Switch Entry', player), player))
|
set_rule(world.get_entrance('TR Crystaroller Middle to Top Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('TR Crystaroller Middle', player), player))
|
||||||
set_rule(world.get_entrance('GT Double Switch Orange Barrier 2', player), lambda state: state.can_reach_orange(world.get_region('GT Double Switch Entry', player), player))
|
set_rule(world.get_entrance('TR Crystaroller Top to Middle Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('TR Crystaroller Top', player), player))
|
||||||
set_rule(world.get_entrance('GT Double Switch Orange Path', player), lambda state: state.can_reach_orange(world.get_region('GT Double Switch Switches', player), player))
|
set_rule(world.get_entrance('TR Crystaroller Chest to Middle Barrier - Blue', player), lambda state: state.can_reach_blue(world.get_region('TR Crystaroller Chest', player), player))
|
||||||
set_rule(world.get_entrance('GT Double Switch Key Orange Path', player), lambda state: state.can_reach_orange(world.get_region('GT Double Switch Key Spot', player), player))
|
set_rule(world.get_entrance('TR Crystal Maze Start to Interior Barrier - Blue', player), lambda state: state.can_reach_blue(world.get_region('TR Crystal Maze Start', player), player))
|
||||||
|
set_rule(world.get_entrance('TR Crystal Maze Interior to End Barrier - Blue', player), lambda state: state.can_reach_blue(world.get_region('TR Crystal Maze Interior', player), player))
|
||||||
|
set_rule(world.get_entrance('TR Crystal Maze Interior to Start Barrier - Blue', player), lambda state: state.can_reach_blue(world.get_region('TR Crystal Maze Interior', player), player))
|
||||||
|
set_rule(world.get_entrance('TR Crystal Maze End to Interior Barrier - Blue', player), lambda state: state.can_reach_blue(world.get_region('TR Crystal Maze End', player), player))
|
||||||
|
|
||||||
|
set_rule(world.get_entrance('TR Chain Chomps Top to Crystal', player), lambda state: state.can_hit_crystal(player))
|
||||||
|
set_rule(world.get_entrance('TR Pokey 2 Top to Crystal', player), lambda state: state.can_hit_crystal(player))
|
||||||
|
set_rule(world.get_entrance('TR Crystaroller Top to Crystal', player), lambda state: state.can_hit_crystal(player))
|
||||||
|
set_rule(world.get_entrance('TR Crystal Maze Start to Crystal', player), lambda state: state.can_hit_crystal(player))
|
||||||
|
set_rule(world.get_entrance('TR Chain Chomps Bottom to Ranged Crystal', player), lambda state: state.can_hit_crystal_through_barrier(player) or (state.has('Hookshot', player) and state.can_reach_orange(world.get_region('TR Chain Chomps Bottom', player), player))) # or state.has_beam_sword(player)
|
||||||
|
set_rule(world.get_entrance('TR Pokey 2 Bottom to Ranged Crystal', player), lambda state: state.can_hit_crystal_through_barrier(player) or (state.has('Hookshot', player) and state.can_reach_blue(world.get_region('TR Pokey 2 Bottom', player), player))) # or state.has_beam_sword(player)
|
||||||
|
set_rule(world.get_entrance('TR Crystaroller Bottom to Ranged Crystal', player), lambda state: state.can_shoot_arrows(player) or state.has('Fire Rod', player) or state.has('Ice Rod', player) or state.has('Cane of Somaria', player) or (state.has('Hookshot', player) and state.can_reach_orange(world.get_region('TR Crystaroller Bottom', player), player))) # or state.has_beam_sword(player)
|
||||||
|
set_rule(world.get_entrance('TR Crystaroller Middle to Ranged Crystal', player), lambda state: state.can_hit_crystal_through_barrier(player) or (state.has('Hookshot', player) and state.can_reach_orange(world.get_region('TR Crystaroller Middle', player), player))) # or state.has_beam_sword(player)
|
||||||
|
set_rule(world.get_entrance('TR Crystaroller Middle to Bottom Bypass', player), lambda state: state.can_use_bombs(player) or state.has('Blue Boomerang', player))
|
||||||
|
set_rule(world.get_entrance('TR Crystal Maze End to Ranged Crystal', player), lambda state: state.has('Cane of Somaria', player)) # or state.has('Blue Boomerang', player) or state.has('Red Boomerang', player) // These work by clipping the rang through the two stone blocks, which works sometimes.
|
||||||
|
set_rule(world.get_entrance('TR Crystal Maze Interior to End Bypass', player), lambda state: state.can_use_bombs(player) or state.can_shoot_arrows(player) or state.has('Red Boomerang', player) or state.has('Blue Boomerang', player) or state.has('Fire Rod', player) or state.has('Ice Rod', player) or state.has('Cane of Somaria', player)) # Beam sword does NOT work
|
||||||
|
set_rule(world.get_entrance('TR Crystal Maze Interior to Start Bypass', player), lambda state: True) # Can always grab a pot from the interior and walk it to the start region and throw it there
|
||||||
|
|
||||||
|
set_rule(world.get_entrance('GT Hookshot Platform Blue Barrier', player), lambda state: state.can_reach_blue(world.get_region('GT Hookshot South Platform', player), player))
|
||||||
|
set_rule(world.get_entrance('GT Hookshot Entry Blue Barrier', player), lambda state: state.can_reach_blue(world.get_region('GT Hookshot South Entry', player), player))
|
||||||
|
set_rule(world.get_entrance('GT Double Switch Entry to Pot Corners Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('GT Double Switch Entry', player), player))
|
||||||
|
set_rule(world.get_entrance('GT Double Switch Entry to Left Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('GT Double Switch Entry', player), player))
|
||||||
|
set_rule(world.get_entrance('GT Double Switch Left to Entry Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('GT Double Switch Left', player), player))
|
||||||
|
set_rule(world.get_entrance('GT Double Switch Pot Corners to Entry Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('GT Double Switch Pot Corners', player), player))
|
||||||
|
set_rule(world.get_entrance('GT Double Switch Pot Corners to Exit Barrier - Blue', player), lambda state: state.can_reach_blue(world.get_region('GT Double Switch Pot Corners', player), player))
|
||||||
|
set_rule(world.get_entrance('GT Double Switch Exit to Blue Barrier', player), lambda state: state.can_reach_blue(world.get_region('GT Double Switch Exit', player), player))
|
||||||
|
set_rule(world.get_entrance('GT Spike Crystal Left to Right Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('GT Spike Crystal Left', player), player))
|
||||||
|
set_rule(world.get_entrance('GT Spike Crystal Right to Left Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('GT Spike Crystal Right', player), player))
|
||||||
|
set_rule(world.get_entrance('GT Crystal Conveyor to Corner Barrier - Blue', player), lambda state: state.can_reach_blue(world.get_region('GT Crystal Conveyor', player), player))
|
||||||
|
set_rule(world.get_entrance('GT Crystal Conveyor Corner to Barrier - Blue', player), lambda state: state.can_reach_blue(world.get_region('GT Crystal Conveyor Corner', player), player))
|
||||||
|
set_rule(world.get_entrance('GT Crystal Conveyor Corner to Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('GT Crystal Conveyor Corner', player), player))
|
||||||
|
set_rule(world.get_entrance('GT Crystal Conveyor Left to Corner Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('GT Crystal Conveyor Left', player), player))
|
||||||
|
set_rule(world.get_entrance('GT Crystal Circles Barrier - Orange', player), lambda state: state.can_reach_orange(world.get_region('GT Crystal Circles', player), player))
|
||||||
|
|
||||||
|
set_rule(world.get_entrance('GT Hookshot Platform Barrier Bypass', player), lambda state: state.can_use_bombs(player) or state.has('Blue Boomerang', player) or state.has('Red Boomerang', player) or state.has('Cane of Somaria', player)) # or state.has_Boots(player) /// There is a super precise trick where you can throw a pot and climp into the blue barrier, then sprint out of them.
|
||||||
|
set_rule(world.get_entrance('GT Hookshot South Entry to Ranged Crystal', player), lambda state: state.can_use_bombs(player) or state.has('Blue Boomerang', player) or state.has('Red Boomerang', player) or state.has('Cane of Somaria', player))
|
||||||
|
set_rule(world.get_entrance('GT Double Switch Entry to Ranged Switches', player), lambda state: False) # state.has('Cane of Somaria', player)
|
||||||
|
set_rule(world.get_entrance('GT Double Switch Left to Entry Bypass', player), lambda state: True) # Can always use pots
|
||||||
|
set_rule(world.get_entrance('GT Double Switch Left to Pot Corners Bypass', player), lambda state: state.can_use_bombs(player) or state.has('Cane of Somaria', player) or state.has('Red Boomerang', player)) # or (state.has('Blue Boomerang', player) and state.has('Hookshot', player)) or (state.has('Ice Rod', player) and state.has('Hookshot', player)) or state.has('Hookshot', player) /// You can do this with just a pot and a hookshot
|
||||||
|
set_rule(world.get_entrance('GT Double Switch Left to Exit Bypass', player), lambda state: False) # state.can_use_bombs(player) or (state.has('Cane of Somaria', player) and (state.has('Red Boomerang', player) or (state.has('Hookshot', player) and state.has('Blue Boomerang', player)) or (state.has('Hookshot', player) and state.has('Ice Rod', player))))
|
||||||
|
set_rule(world.get_entrance('GT Double Switch Pot Corners to Ranged Switches', player), lambda state: False) # state.can_use_bombs(player) or state.has('Cane of Somaria', player) or (state.has('Cane of Somaria', player) and state.has_Boots(player)) /// There's two ways to interact with the switch. Somaria bounce at the top corner, or timed throws at the bottom corner.
|
||||||
|
set_rule(world.get_entrance('GT Spike Crystal Left to Right Bypass', player), lambda state: state.can_use_bombs(player) or state.has('Cane of Somaria', player) or state.has('Red Boomerang', player) or state.has('Blue Boomerang', player)) # or state.has('Fire Rod', player) or state.has('Ice Rod', player) or state.can_use_beam_sword(player)
|
||||||
|
set_rule(world.get_entrance('GT Crystal Conveyor to Ranged Crystal', player), lambda state: state.can_use_bombs(player) or state.has('Cane of Somaria', player))
|
||||||
|
set_rule(world.get_entrance('GT Crystal Conveyor Corner to Ranged Crystal', player), lambda state: state.can_use_bombs(player) or state.has('Cane of Somaria', player))
|
||||||
|
set_rule(world.get_entrance('GT Crystal Conveyor Corner to Left Bypass', player), lambda state: state.can_use_bombs(player) or state.has('Cane of Somaria', player))
|
||||||
|
set_rule(world.get_entrance('GT Crystal Circles to Ranged Crystal', player), lambda state: state.can_hit_crystal_through_barrier(player) or state.has_blunt_weapon(player) or state.has('Cane of Byrna', player)) # or state.has_beam_sword(player)
|
||||||
|
|
||||||
add_key_logic_rules(world, player)
|
add_key_logic_rules(world, player)
|
||||||
|
|
||||||
# End of door rando rules.
|
# End of door rando rules.
|
||||||
|
|
||||||
add_rule(world.get_location('Sunken Treasure', player), lambda state: state.has('Open Floodgate', player))
|
add_rule(world.get_location('Sunken Treasure', player), lambda state: state.has('Open Floodgate', player))
|
||||||
@@ -403,6 +522,113 @@ def global_rules(world, player):
|
|||||||
and (state.has('Tempered Sword', player) or state.has('Golden Sword', player) or (state.has('Silver Arrows', player) and state.can_shoot_arrows(player)) or state.has('Lamp', player) or state.can_extend_magic(player, 12))) # need to light torch a sufficient amount of times
|
and (state.has('Tempered Sword', player) or state.has('Golden Sword', player) or (state.has('Silver Arrows', player) and state.can_shoot_arrows(player)) or state.has('Lamp', player) or state.can_extend_magic(player, 12))) # need to light torch a sufficient amount of times
|
||||||
set_rule(world.get_entrance('Ganon Drop', player), lambda state: state.has_beam_sword(player)) # need to damage ganon to get tiles to drop
|
set_rule(world.get_entrance('Ganon Drop', player), lambda state: state.has_beam_sword(player)) # need to damage ganon to get tiles to drop
|
||||||
|
|
||||||
|
def bomb_rules(world, player):
|
||||||
|
bonkable_doors = ['Two Brothers House Exit (West)', 'Two Brothers House Exit (East)'] # Technically this is incorrectly defined, but functionally the same as what is intended.
|
||||||
|
bombable_doors = ['Ice Rod Cave', 'Light World Bomb Hut', 'Light World Death Mountain Shop', 'Mini Moldorm Cave',
|
||||||
|
'Hookshot Cave Exit (South)', 'Hookshot Cave Exit (North)', 'Dark Lake Hylia Ledge Fairy', 'Hype Cave', 'Brewery']
|
||||||
|
for entrance in bonkable_doors:
|
||||||
|
add_rule(world.get_entrance(entrance, player), lambda state: state.can_use_bombs(player) or state.has_Boots(player))
|
||||||
|
for entrance in bombable_doors:
|
||||||
|
add_rule(world.get_entrance(entrance, player), lambda state: state.can_use_bombs(player))
|
||||||
|
|
||||||
|
bonkable_items = ['Sahasrahla\'s Hut - Left', 'Sahasrahla\'s Hut - Middle', 'Sahasrahla\'s Hut - Right']
|
||||||
|
bombable_items = ['Blind\'s Hideout - Top', 'Kakariko Well - Top', 'Chicken House', 'Aginah\'s Cave', 'Graveyard Cave',
|
||||||
|
'Paradox Cave Upper - Left', 'Paradox Cave Upper - Right',
|
||||||
|
'Hype Cave - Top', 'Hype Cave - Middle Right', 'Hype Cave - Middle Left', 'Hype Cave - Bottom']
|
||||||
|
for location in bonkable_items:
|
||||||
|
add_rule(world.get_location(location, player), lambda state: state.can_use_bombs(player) or state.has_Boots(player))
|
||||||
|
for location in bombable_items:
|
||||||
|
add_rule(world.get_location(location, player), lambda state: state.can_use_bombs(player))
|
||||||
|
|
||||||
|
cave_kill_locations = ['Mini Moldorm Cave - Far Left', 'Mini Moldorm Cave - Far Right', 'Mini Moldorm Cave - Left', 'Mini Moldorm Cave - Right', 'Mini Moldorm Cave - Generous Guy']
|
||||||
|
for location in cave_kill_locations:
|
||||||
|
add_rule(world.get_location(location, player), lambda state: state.can_kill_most_things(player) or state.can_use_bombs(player))
|
||||||
|
|
||||||
|
paradox_switch_chests = ['Paradox Cave Lower - Far Left', 'Paradox Cave Lower - Left', 'Paradox Cave Lower - Right', 'Paradox Cave Lower - Far Right', 'Paradox Cave Lower - Middle']
|
||||||
|
for location in paradox_switch_chests:
|
||||||
|
add_rule(world.get_location(location, player), lambda state: state.can_hit_crystal_through_barrier(player))
|
||||||
|
|
||||||
|
# Dungeon bomb logic
|
||||||
|
easy_kill_rooms = [ # Door, bool-bombable
|
||||||
|
('Hyrule Dungeon Armory S', True), # One green guard
|
||||||
|
('Hyrule Dungeon Armory ES', True), # One green guard
|
||||||
|
('Hyrule Dungeon Armory Boomerang WS', True), # One blue guard
|
||||||
|
('Desert Compass NW', True), # Three popos
|
||||||
|
('Desert Four Statues NW', True), # Four popos
|
||||||
|
('Desert Four Statues ES', True), # Four popos
|
||||||
|
('Hera Beetles WS', False), # Three blue beetles and only two pots, and bombs don't work.
|
||||||
|
('Thieves Basement Block WN', True), # One blue and one red zazak and one Stalfos. Two pots. Need to kill the third enemy somehow.
|
||||||
|
('Ice Pengator Trap NE', False), # Five pengators. Bomb-doable?
|
||||||
|
('TR Twin Pokeys EN', False), # Two pokeys
|
||||||
|
('TR Twin Pokeys SW', False), # Two pokeys
|
||||||
|
('GT Petting Zoo SE', False), # Dont make anyone do this room with bombs and/or pots.
|
||||||
|
('GT DMs Room SW', False) # Four red stalfos
|
||||||
|
]
|
||||||
|
for killdoor,bombable in easy_kill_rooms:
|
||||||
|
if bombable:
|
||||||
|
add_rule(world.get_entrance(killdoor, player), lambda state: (state.can_use_bombs(player) or state.can_kill_most_things(player)))
|
||||||
|
else:
|
||||||
|
add_rule(world.get_entrance(killdoor, player), lambda state: state.can_kill_most_things(player))
|
||||||
|
add_rule(world.get_entrance('Ice Stalfos Hint SE', player), lambda state: state.can_use_bombs(player)) # Need bombs for big stalfos knights
|
||||||
|
add_rule(world.get_entrance('Mire Cross ES', player), lambda state: state.can_kill_most_things(player)) # 4 Sluggulas. Bombs don't work // or (state.can_use_bombs(player) and state.has('Magic Powder'), player)
|
||||||
|
|
||||||
|
enemy_kill_drops = [ # Location, bool-bombable
|
||||||
|
('Hyrule Castle - Map Guard Key Drop', True),
|
||||||
|
('Hyrule Castle - Boomerang Guard Key Drop', True),
|
||||||
|
('Hyrule Castle - Key Rat Key Drop', True),
|
||||||
|
# ('Hyrule Castle - Big Key Drop', True), # Pots are available
|
||||||
|
# ('Eastern Palace - Dark Eyegore Key Drop', True), # Pots are available
|
||||||
|
('Castle Tower - Dark Archer Key Drop', True),
|
||||||
|
# ('Castle Tower - Circle of Pots Key Drop', True), # Pots are available
|
||||||
|
# ('Skull Woods - Spike Corner Key Drop', True), # Pots are available
|
||||||
|
('Ice Palace - Jelly Key Drop', True),
|
||||||
|
('Ice Palace - Conveyor Key Drop', True),
|
||||||
|
('Misery Mire - Conveyor Crystal Key Drop', True),
|
||||||
|
('Turtle Rock - Pokey 1 Key Drop', True),
|
||||||
|
('Turtle Rock - Pokey 2 Key Drop', True),
|
||||||
|
# ('Ganons Tower - Mini Helmasaur Key Drop', True) # Pots are available
|
||||||
|
('Castle Tower - Room 03', True), # Two spring soliders
|
||||||
|
('Ice Palace - Compass Chest', True) # Pengators
|
||||||
|
]
|
||||||
|
for location,bombable in enemy_kill_drops:
|
||||||
|
if bombable:
|
||||||
|
add_rule(world.get_location(location, player), lambda state: state.can_use_bombs(player) or state.can_kill_most_things(player))
|
||||||
|
else:
|
||||||
|
add_rule(world.get_location(location, player), lambda state: state.can_kill_most_things(player))
|
||||||
|
|
||||||
|
add_rule(world.get_location('Attic Cracked Floor', player), lambda state: state.can_use_bombs(player))
|
||||||
|
bombable_floors = ['PoD Pit Room Bomb Hole', 'Ice Bomb Drop Hole', 'Ice Freezors Bomb Hole', 'GT Bob\'s Room Hole']
|
||||||
|
for entrance in bombable_floors:
|
||||||
|
add_rule(world.get_entrance(entrance, player), lambda state: state.can_use_bombs(player))
|
||||||
|
|
||||||
|
if world.doorShuffle[player] == 'vanilla':
|
||||||
|
add_rule(world.get_entrance('TR Lazy Eyes SE', player), lambda state: state.can_use_bombs(player)) # ToDo: Add always true for inverted, cross-entrance, and door-variants and so on.
|
||||||
|
add_rule(world.get_entrance('Turtle Rock Ledge Exit (West)', player), lambda state: state.can_use_bombs(player)) # Is this the same as above?
|
||||||
|
|
||||||
|
dungeon_bonkable = ['PoD Warp Hint SE', 'PoD Jelly Hall NW', 'PoD Jelly Hall NE', 'PoD Mimics 1 SW',
|
||||||
|
'Thieves Ambush E', 'Thieves Rail Ledge W',
|
||||||
|
'TR Dash Room NW', 'TR Crystaroller SW', 'TR Dash Room ES',
|
||||||
|
'GT Four Torches NW','GT Fairy Abyss SW'
|
||||||
|
]
|
||||||
|
dungeon_bombable = ['PoD Map Balcony WS', 'PoD Arena Ledge ES', 'PoD Dark Maze E', 'PoD Big Chest Balcony W',
|
||||||
|
'Swamp Pot Row WN','Swamp Map Ledge EN', 'Swamp Hammer Switch WN', 'Swamp Hub Dead Ledge EN', 'Swamp Waterway N', 'Swamp I S',
|
||||||
|
'Skull Pot Circle WN', 'Skull Pull Switch EN', 'Skull Big Key EN', 'Skull Lone Pot WN',
|
||||||
|
'Thieves Rail Ledge NW', 'Thieves Pot Alcove Bottom SW',
|
||||||
|
'Ice Bomb Drop Hole', 'Ice Freezors Bomb Hole',
|
||||||
|
'Mire Crystal Mid NW', 'Mire Tall Dark and Roomy WN', 'Mire Shooter Rupees EN', 'Mire Crystal Top SW',
|
||||||
|
'GT Warp Maze (Rails) WS', 'GT Bob\'s Room Hole', 'GT Randomizer Room ES', 'GT Bomb Conveyor SW', 'GT Crystal Circles NW', 'GT Cannonball Bridge SE', 'GT Refill NE'
|
||||||
|
]
|
||||||
|
for entrance in dungeon_bonkable:
|
||||||
|
add_rule(world.get_entrance(entrance, player), lambda state: state.can_use_bombs(player) or state.has_Boots(player))
|
||||||
|
for entrance in dungeon_bombable:
|
||||||
|
add_rule(world.get_entrance(entrance, player), lambda state: state.can_use_bombs(player))
|
||||||
|
else:
|
||||||
|
doors_to_bomb_check = [x for x in world.doors if x.player == player and x.type in [DoorType.Normal, DoorType.Interior]]
|
||||||
|
for door in doors_to_bomb_check:
|
||||||
|
if door.kind(world) in [DoorKind.Dashable]:
|
||||||
|
add_rule(door.entrance, lambda state: state.can_use_bombs(player) or state.has_Boots(player))
|
||||||
|
elif door.kind(world) in [DoorKind.Bombable]:
|
||||||
|
add_rule(door.entrance, lambda state: state.can_use_bombs(player))
|
||||||
|
|
||||||
def default_rules(world, player):
|
def default_rules(world, player):
|
||||||
# overworld requirements
|
# overworld requirements
|
||||||
@@ -720,7 +946,7 @@ def no_glitches_rules(world, player):
|
|||||||
'Mire Dark Shooters': {'sewer': False, 'entrances': ['Mire Dark Shooters Up Stairs', 'Mire Dark Shooters SW', 'Mire Dark Shooters SE'], 'locations': []},
|
'Mire Dark Shooters': {'sewer': False, 'entrances': ['Mire Dark Shooters Up Stairs', 'Mire Dark Shooters SW', 'Mire Dark Shooters SE'], 'locations': []},
|
||||||
'Mire Key Rupees': {'sewer': False, 'entrances': ['Mire Key Rupees NE'], 'locations': []},
|
'Mire Key Rupees': {'sewer': False, 'entrances': ['Mire Key Rupees NE'], 'locations': []},
|
||||||
'Mire Block X': {'sewer': False, 'entrances': ['Mire Block X NW', 'Mire Block X WS'], 'locations': []},
|
'Mire Block X': {'sewer': False, 'entrances': ['Mire Block X NW', 'Mire Block X WS'], 'locations': []},
|
||||||
'Mire Tall Dark and Roomy': {'sewer': False, 'entrances': ['Mire Tall Dark and Roomy ES', 'Mire Tall Dark and Roomy WS', 'Mire Tall Dark and Roomy WN'], 'locations': []},
|
'Mire Tall Dark and Roomy': {'sewer': False, 'entrances': ['Mire Tall Dark and Roomy ES', 'Mire Tall Dark and Roomy WS', 'Mire Tall Dark and Roomy WN', 'Mire Tall Dark and Roomy to Ranged Crystal'], 'locations': []},
|
||||||
'Mire Crystal Right': {'sewer': False, 'entrances': ['Mire Crystal Right ES'], 'locations': []},
|
'Mire Crystal Right': {'sewer': False, 'entrances': ['Mire Crystal Right ES'], 'locations': []},
|
||||||
'Mire Crystal Mid': {'sewer': False, 'entrances': ['Mire Crystal Mid NW'], 'locations': []},
|
'Mire Crystal Mid': {'sewer': False, 'entrances': ['Mire Crystal Mid NW'], 'locations': []},
|
||||||
'Mire Crystal Left': {'sewer': False, 'entrances': ['Mire Crystal Left WS'], 'locations': []},
|
'Mire Crystal Left': {'sewer': False, 'entrances': ['Mire Crystal Left WS'], 'locations': []},
|
||||||
@@ -730,9 +956,8 @@ def no_glitches_rules(world, player):
|
|||||||
'PoD Callback': {'sewer': False, 'entrances': ['PoD Callback WS', 'PoD Callback Warp'], 'locations': []},
|
'PoD Callback': {'sewer': False, 'entrances': ['PoD Callback WS', 'PoD Callback Warp'], 'locations': []},
|
||||||
'PoD Turtle Party': {'sewer': False, 'entrances': ['PoD Turtle Party ES', 'PoD Turtle Party NW'], 'locations': []},
|
'PoD Turtle Party': {'sewer': False, 'entrances': ['PoD Turtle Party ES', 'PoD Turtle Party NW'], 'locations': []},
|
||||||
'PoD Lonely Turtle': {'sewer': False, 'entrances': ['PoD Lonely Turtle SW', 'PoD Lonely Turtle EN'], 'locations': []},
|
'PoD Lonely Turtle': {'sewer': False, 'entrances': ['PoD Lonely Turtle SW', 'PoD Lonely Turtle EN'], 'locations': []},
|
||||||
'PoD Dark Pegs': {'sewer': False, 'entrances': ['PoD Dark Pegs Hammer Path', 'PoD Dark Pegs WN'], 'locations': []},
|
'PoD Dark Pegs Landing': {'sewer': False, 'entrances': ['PoD Dark Pegs Up Ladder', 'PoD Dark Pegs Landing to Right', 'PoD Dark Pegs Landing to Ranged Crystal'], 'locations': []},
|
||||||
'PoD Dark Pegs Ladder': {'sewer': False, 'entrances': ['PoD Dark Pegs Up Ladder', 'PoD Dark Pegs Ladder Hammer Path', 'PoD Dark Pegs Ladder Cane Path'], 'locations': []},
|
'PoD Dark Pegs Left': {'sewer': False, 'entrances': ['PoD Dark Pegs WN', 'PoD Dark Pegs Left to Middle Barrier - Blue', 'PoD Dark Pegs Left to Ranged Crystal'], 'locations': []},
|
||||||
'PoD Dark Pegs Switch': {'sewer': False, 'entrances': ['PoD Dark Pegs Switch Path'], 'locations': []},
|
|
||||||
'PoD Dark Basement': {'sewer': False, 'entrances': ['PoD Dark Basement W Up Stairs', 'PoD Dark Basement E Up Stairs'], 'locations': ['Palace of Darkness - Dark Basement - Left', 'Palace of Darkness - Dark Basement - Right']},
|
'PoD Dark Basement': {'sewer': False, 'entrances': ['PoD Dark Basement W Up Stairs', 'PoD Dark Basement E Up Stairs'], 'locations': ['Palace of Darkness - Dark Basement - Left', 'Palace of Darkness - Dark Basement - Right']},
|
||||||
'PoD Dark Maze': {'sewer': False, 'entrances': ['PoD Dark Maze EN', 'PoD Dark Maze E'], 'locations': ['Palace of Darkness - Dark Maze - Top', 'Palace of Darkness - Dark Maze - Bottom']},
|
'PoD Dark Maze': {'sewer': False, 'entrances': ['PoD Dark Maze EN', 'PoD Dark Maze E'], 'locations': ['Palace of Darkness - Dark Maze - Top', 'Palace of Darkness - Dark Maze - Bottom']},
|
||||||
'Eastern Dark Square': {'sewer': False, 'entrances': ['Eastern Dark Square NW', 'Eastern Dark Square Key Door WN', 'Eastern Dark Square EN'], 'locations': []},
|
'Eastern Dark Square': {'sewer': False, 'entrances': ['Eastern Dark Square NW', 'Eastern Dark Square Key Door WN', 'Eastern Dark Square EN'], 'locations': []},
|
||||||
@@ -808,36 +1033,35 @@ def swordless_rules(world, player):
|
|||||||
|
|
||||||
|
|
||||||
std_kill_rooms = {
|
std_kill_rooms = {
|
||||||
'Hyrule Dungeon Armory Main': ['Hyrule Dungeon Armory S'],
|
'Hyrule Dungeon Armory Main': ['Hyrule Dungeon Armory S', 'Hyrule Dungeon Armory ES'], # One green guard
|
||||||
'Hyrule Dungeon Armory Boomerang': ['Hyrule Dungeon Armory Boomerang WS'],
|
'Hyrule Dungeon Armory Boomerang': ['Hyrule Dungeon Armory Boomerang WS'], # One blue guard
|
||||||
'Eastern Stalfos Spawn': ['Eastern Stalfos Spawn ES', 'Eastern Stalfos Spawn NW'],
|
'Eastern Stalfos Spawn': ['Eastern Stalfos Spawn ES', 'Eastern Stalfos Spawn NW'], # Can use pots
|
||||||
'Desert Compass Room': ['Desert Compass NW'],
|
'Desert Compass Room': ['Desert Compass NW'], # Three popos
|
||||||
'Desert Four Statues': ['Desert Four Statues NW', 'Desert Four Statues ES'],
|
'Desert Four Statues': ['Desert Four Statues NW', 'Desert Four Statues ES'], # Four popos
|
||||||
'Hera Beetles': ['Hera Beetles WS'],
|
'Hera Beetles': ['Hera Beetles WS'], # Three blue beetles and only two pots, and bombs don't work.
|
||||||
'Tower Gold Knights': ['Tower Gold Knights SW', 'Tower Gold Knights EN'],
|
'Tower Gold Knights': ['Tower Gold Knights SW', 'Tower Gold Knights EN'], # Two ball and chain
|
||||||
'Tower Dark Archers': ['Tower Dark Archers WN'],
|
'Tower Dark Archers': ['Tower Dark Archers WN'], # Not a kill room
|
||||||
'Tower Red Spears': ['Tower Red Spears WN'],
|
'Tower Red Spears': ['Tower Red Spears WN'], # Two spear soldiers
|
||||||
'Tower Red Guards': ['Tower Red Guards EN', 'Tower Red Guards SW'],
|
'Tower Red Guards': ['Tower Red Guards EN', 'Tower Red Guards SW'], # Two usain bolts
|
||||||
'Tower Circle of Pots': ['Tower Circle of Pots NW'],
|
'Tower Circle of Pots': ['Tower Circle of Pots NW'], # Two spear soldiers. Plenty of pots.
|
||||||
'PoD Turtle Party': ['PoD Turtle Party ES', 'PoD Turtle Party NW'], # todo: hammer req. in main rules
|
'PoD Turtle Party': ['PoD Turtle Party ES', 'PoD Turtle Party NW'], # Lots of turtles.
|
||||||
'Thieves Basement Block': ['Thieves Basement Block WN'],
|
'Thieves Basement Block': ['Thieves Basement Block WN'], # One blue and one red zazak and one Stalfos. Two pots. Need weapon.
|
||||||
'Ice Stalfos Hint': ['Ice Stalfos Hint SE'],
|
'Ice Stalfos Hint': ['Ice Stalfos Hint SE'], # Need bombs for big stalfos knights
|
||||||
'Ice Pengator Trap': ['Ice Pengator Trap NE'],
|
'Ice Pengator Trap': ['Ice Pengator Trap NE'], # Five pengators. Bomb-doable?
|
||||||
'Mire 2': ['Mire 2 NE'],
|
'Mire 2': ['Mire 2 NE'], # Wizzrobes. Bombs dont work.
|
||||||
'Mire Cross': ['Mire Cross ES'],
|
'Mire Cross': ['Mire Cross ES'], # 4 Sluggulas. Bombs don't work
|
||||||
'TR Twin Pokeys': ['TR Twin Pokeys EN', 'TR Twin Pokeys SW'],
|
'TR Twin Pokeys': ['TR Twin Pokeys EN', 'TR Twin Pokeys SW'], # Two pokeys
|
||||||
'GT Petting Zoo': ['GT Petting Zoo SE'],
|
'GT Petting Zoo': ['GT Petting Zoo SE'], # Dont make anyone do this room with bombs.
|
||||||
'GT DMs Room': ['GT DMs Room SW'],
|
'GT DMs Room': ['GT DMs Room SW'], # Four red stalfos
|
||||||
'GT Gauntlet 1': ['GT Gauntlet 1 WN'],
|
'GT Gauntlet 1': ['GT Gauntlet 1 WN'], # Stalfos/zazaks
|
||||||
'GT Gauntlet 2': ['GT Gauntlet 2 EN', 'GT Gauntlet 2 SW'],
|
'GT Gauntlet 2': ['GT Gauntlet 2 EN', 'GT Gauntlet 2 SW'], # Red stalfos
|
||||||
'GT Gauntlet 3': ['GT Gauntlet 3 NW', 'GT Gauntlet 3 SW'],
|
'GT Gauntlet 3': ['GT Gauntlet 3 NW', 'GT Gauntlet 3 SW'], # Blue zazaks
|
||||||
'GT Gauntlet 4': ['GT Gauntlet 4 NW', 'GT Gauntlet 4 SW'],
|
'GT Gauntlet 4': ['GT Gauntlet 4 NW', 'GT Gauntlet 4 SW'], # Red zazaks
|
||||||
'GT Gauntlet 5': ['GT Gauntlet 5 NW', 'GT Gauntlet 5 WS'],
|
'GT Gauntlet 5': ['GT Gauntlet 5 NW', 'GT Gauntlet 5 WS'], # Stalfos and zazak
|
||||||
'GT Wizzrobes 1': ['GT Wizzrobes 1 SW'],
|
'GT Wizzrobes 1': ['GT Wizzrobes 1 SW'], # Wizzrobes. Bombs don't work
|
||||||
'GT Wizzrobes 2': ['GT Wizzrobes 2 SE', 'GT Wizzrobes 2 NE']
|
'GT Wizzrobes 2': ['GT Wizzrobes 2 SE', 'GT Wizzrobes 2 NE'] # Wizzrobes. Bombs don't work
|
||||||
} # all trap rooms?
|
} # all trap rooms?
|
||||||
|
|
||||||
|
|
||||||
def add_connection(parent_name, target_name, entrance_name, world, player):
|
def add_connection(parent_name, target_name, entrance_name, world, player):
|
||||||
parent = world.get_region(parent_name, player)
|
parent = world.get_region(parent_name, player)
|
||||||
target = world.get_region(target_name, player)
|
target = world.get_region(target_name, player)
|
||||||
@@ -873,7 +1097,7 @@ def standard_rules(world, player):
|
|||||||
return loc.item and loc.item.name == 'Bombs (10)'
|
return loc.item and loc.item.name == 'Bombs (10)'
|
||||||
|
|
||||||
def standard_escape_rule(state):
|
def standard_escape_rule(state):
|
||||||
return state.can_kill_most_things(player) or bomb_escape_rule()
|
return state.can_kill_most_things(player) or bomb_escape_rule()
|
||||||
|
|
||||||
add_item_rule(world.get_location('Link\'s Uncle', player), uncle_item_rule)
|
add_item_rule(world.get_location('Link\'s Uncle', player), uncle_item_rule)
|
||||||
|
|
||||||
@@ -1551,30 +1775,32 @@ def set_inverted_bunny_rules(world, player):
|
|||||||
|
|
||||||
|
|
||||||
bunny_impassible_doors = {
|
bunny_impassible_doors = {
|
||||||
'Hyrule Dungeon Armory S', 'Hyrule Dungeon Armory ES', 'Sewers Secret Room Push Block', 'Sewers Pull Switch S',
|
'Hyrule Dungeon Armory S', 'Hyrule Dungeon Armory ES', 'Sewers Pull Switch S',
|
||||||
'Eastern Lobby N', 'Eastern Courtyard Ledge W', 'Eastern Courtyard Ledge E', 'Eastern Pot Switch SE',
|
'Eastern Lobby N', 'Eastern Courtyard Ledge W', 'Eastern Courtyard Ledge E', 'Eastern Pot Switch SE',
|
||||||
'Eastern Map Balcony Hook Path', 'Eastern Stalfos Spawn ES', 'Eastern Stalfos Spawn NW',
|
'Eastern Map Balcony Hook Path', 'Eastern Stalfos Spawn ES', 'Eastern Stalfos Spawn NW',
|
||||||
'Eastern Hint Tile Push Block', 'Eastern Darkness S', 'Eastern Darkness NE', 'Eastern Darkness Up Stairs',
|
'Eastern Darkness S', 'Eastern Darkness NE', 'Eastern Darkness Up Stairs',
|
||||||
'Eastern Attic Start WS', 'Eastern Single Eyegore NE', 'Eastern Duo Eyegores NE', 'Desert Main Lobby Left Path',
|
'Eastern Attic Start WS', 'Eastern Single Eyegore NE', 'Eastern Duo Eyegores NE', 'Desert Main Lobby Left Path',
|
||||||
'Desert Main Lobby Right Path', 'Desert Left Alcove Path', 'Desert Right Alcove Path', 'Desert Compass NW',
|
'Desert Main Lobby Right Path', 'Desert Left Alcove Path', 'Desert Right Alcove Path', 'Desert Compass NW',
|
||||||
'Desert West Lobby NW', 'Desert Back Lobby NW', 'Desert Four Statues NW', 'Desert Four Statues ES',
|
'Desert West Lobby NW', 'Desert Back Lobby NW', 'Desert Four Statues NW', 'Desert Four Statues ES',
|
||||||
'Desert Beamos Hall WS', 'Desert Beamos Hall NE', 'Desert Wall Slide NW', 'Hera Lobby Down Stairs',
|
'Desert Beamos Hall WS', 'Desert Beamos Hall NE', 'Desert Wall Slide NW',
|
||||||
'Hera Lobby Key Stairs', 'Hera Lobby Up Stairs', 'Hera Tile Room EN', 'Hera Tridorm SE', 'Hera Beetles WS',
|
'Hera Lobby to Front Barrier - Blue', 'Hera Front to Lobby Barrier - Blue', 'Hera Front to Down Stairs Barrier - Blue',
|
||||||
|
'Hera Down Stairs to Front Barrier - Blue', 'Hera Tile Room EN', 'Hera Tridorm SE', 'Hera Beetles WS',
|
||||||
'Hera 4F Down Stairs', 'Tower Gold Knights SW', 'Tower Dark Maze EN', 'Tower Dark Pits ES', 'Tower Dark Archers WN',
|
'Hera 4F Down Stairs', 'Tower Gold Knights SW', 'Tower Dark Maze EN', 'Tower Dark Pits ES', 'Tower Dark Archers WN',
|
||||||
'Tower Red Spears WN', 'Tower Red Guards EN', 'Tower Red Guards SW', 'Tower Circle of Pots NW', 'Tower Altar NW',
|
'Tower Red Spears WN', 'Tower Red Guards EN', 'Tower Red Guards SW', 'Tower Circle of Pots NW', 'Tower Altar NW',
|
||||||
'PoD Left Cage SW', 'PoD Middle Cage SE', 'PoD Pit Room Bomb Hole', 'PoD Pit Room Block Path N',
|
'PoD Left Cage SW', 'PoD Middle Cage SE', 'PoD Pit Room Bomb Hole', 'PoD Stalfos Basement Warp',
|
||||||
'PoD Pit Room Block Path S', 'PoD Stalfos Basement Warp', 'PoD Arena Main SW', 'PoD Arena Main Crystal Path',
|
'PoD Arena Main to Landing Barrier - Blue', 'PoD Arena Landing to Right Barrier - Blue',
|
||||||
'PoD Arena Bonk Path', 'PoD Arena Crystal Path', 'PoD Sexy Statue NW', 'PoD Map Balcony Drop Down',
|
'PoD Arena Right to Landing Barrier - Blue', 'PoD Arena Main to Landing Barrier - Blue',
|
||||||
'PoD Mimics 1 NW', 'PoD Warp Hint Warp', 'PoD Falling Bridge Path N', 'PoD Falling Bridge Path S',
|
'PoD Arena Landing Bonk Path', 'PoD Sexy Statue NW', 'PoD Map Balcony Drop Down',
|
||||||
'PoD Mimics 2 NW', 'PoD Bow Statue Down Ladder', 'PoD Dark Pegs Up Ladder', 'PoD Dark Pegs WN',
|
'PoD Mimics 1 NW', 'PoD Falling Bridge Path N', 'PoD Falling Bridge Path S',
|
||||||
|
'PoD Mimics 2 NW', 'PoD Bow Statue Down Ladder', 'PoD Dark Pegs Landing to Right',
|
||||||
|
'PoD Dark Pegs Left to Middle Barrier - Blue', 'PoD Dark Pegs Left to Ranged Crystal',
|
||||||
'PoD Turtle Party ES', 'PoD Turtle Party NW', 'PoD Callback Warp', 'Swamp Lobby Moat', 'Swamp Entrance Moat',
|
'PoD Turtle Party ES', 'PoD Turtle Party NW', 'PoD Callback Warp', 'Swamp Lobby Moat', 'Swamp Entrance Moat',
|
||||||
'Swamp Trench 1 Approach Swim Depart', 'Swamp Trench 1 Approach Key', 'Swamp Trench 1 Key Approach',
|
'Swamp Trench 1 Approach Swim Depart', 'Swamp Trench 1 Approach Key', 'Swamp Trench 1 Key Approach',
|
||||||
'Swamp Trench 1 Key Ledge Depart', 'Swamp Trench 1 Departure Approach', 'Swamp Trench 1 Departure Key',
|
'Swamp Trench 1 Key Ledge Depart', 'Swamp Trench 1 Departure Approach', 'Swamp Trench 1 Departure Key',
|
||||||
'Swamp Hub Hook Path', 'Swamp Compass Donut Push Block',
|
'Swamp Hub Hook Path', 'Swamp Shortcut Blue Barrier', 'Swamp Trench 2 Pots Blue Barrier',
|
||||||
'Swamp Shortcut Blue Barrier', 'Swamp Trench 2 Pots Blue Barrier', 'Swamp Trench 2 Pots Wet',
|
'Swamp Trench 2 Pots Wet', 'Swamp Trench 2 Departure Wet', 'Swamp West Ledge Hook Path', 'Swamp Barrier Ledge Hook Path',
|
||||||
'Swamp Trench 2 Departure Wet', 'Swamp West Shallows Push Blocks', 'Swamp West Ledge Hook Path',
|
'Swamp Attic Left Pit', 'Swamp Attic Right Pit', 'Swamp Push Statue NW', 'Swamp Push Statue NE',
|
||||||
'Swamp Barrier Ledge Hook Path', 'Swamp Attic Left Pit', 'Swamp Attic Right Pit', 'Swamp Push Statue NW',
|
'Swamp Drain Right Switch', 'Swamp Waterway NE', 'Swamp Waterway N', 'Swamp Waterway NW',
|
||||||
'Swamp Push Statue NE', 'Swamp Drain Right Switch', 'Swamp Waterway NE', 'Swamp Waterway N', 'Swamp Waterway NW',
|
|
||||||
'Skull Pot Circle WN', 'Skull Pot Circle Star Path', 'Skull Pull Switch S', 'Skull Big Chest N',
|
'Skull Pot Circle WN', 'Skull Pot Circle Star Path', 'Skull Pull Switch S', 'Skull Big Chest N',
|
||||||
'Skull Big Chest Hookpath', 'Skull 2 East Lobby NW', 'Skull Back Drop Star Path', 'Skull 2 West Lobby NW',
|
'Skull Big Chest Hookpath', 'Skull 2 East Lobby NW', 'Skull Back Drop Star Path', 'Skull 2 West Lobby NW',
|
||||||
'Skull 3 Lobby EN', 'Skull Star Pits SW', 'Skull Star Pits ES', 'Skull Torch Room WN', 'Skull Vines NW',
|
'Skull 3 Lobby EN', 'Skull Star Pits SW', 'Skull Star Pits ES', 'Skull Torch Room WN', 'Skull Vines NW',
|
||||||
@@ -1582,9 +1808,7 @@ bunny_impassible_doors = {
|
|||||||
'Thieves Hellway Blue Barrier', 'Thieves Hellway Crystal Blue Barrier', 'Thieves Attic ES',
|
'Thieves Hellway Blue Barrier', 'Thieves Hellway Crystal Blue Barrier', 'Thieves Attic ES',
|
||||||
'Thieves Basement Block Path', 'Thieves Blocked Entry Path', 'Thieves Conveyor Bridge Block Path',
|
'Thieves Basement Block Path', 'Thieves Blocked Entry Path', 'Thieves Conveyor Bridge Block Path',
|
||||||
'Thieves Conveyor Block Path', 'Ice Lobby WS', 'Ice Cross Left Push Block', 'Ice Cross Bottom Push Block Left',
|
'Thieves Conveyor Block Path', 'Ice Lobby WS', 'Ice Cross Left Push Block', 'Ice Cross Bottom Push Block Left',
|
||||||
'Ice Cross Bottom Push Block Right', 'Ice Cross Right Push Block Top', 'Ice Cross Right Push Block Bottom',
|
'Ice Bomb Drop Hole', 'Ice Pengator Switch WS', 'Ice Pengator Switch ES', 'Ice Big Key Push Block', 'Ice Stalfos Hint SE', 'Ice Bomb Jump EN',
|
||||||
'Ice Cross Top Push Block Bottom', 'Ice Cross Top Push Block Right', 'Ice Bomb Drop Hole', 'Ice Pengator Switch WS',
|
|
||||||
'Ice Pengator Switch ES', 'Ice Big Key Push Block', 'Ice Stalfos Hint SE', 'Ice Bomb Jump EN',
|
|
||||||
'Ice Pengator Trap NE', 'Ice Hammer Block ES', 'Ice Tongue Pull WS', 'Ice Freezors Bomb Hole', 'Ice Tall Hint WS',
|
'Ice Pengator Trap NE', 'Ice Hammer Block ES', 'Ice Tongue Pull WS', 'Ice Freezors Bomb Hole', 'Ice Tall Hint WS',
|
||||||
'Ice Hookshot Ledge Path', 'Ice Hookshot Balcony Path', 'Ice Many Pots SW', 'Ice Many Pots WS',
|
'Ice Hookshot Ledge Path', 'Ice Hookshot Balcony Path', 'Ice Many Pots SW', 'Ice Many Pots WS',
|
||||||
'Ice Crystal Right Blue Hole', 'Ice Crystal Left Blue Barrier', 'Ice Big Chest Landing Push Blocks',
|
'Ice Crystal Right Blue Hole', 'Ice Crystal Left Blue Barrier', 'Ice Big Chest Landing Push Blocks',
|
||||||
@@ -1593,22 +1817,20 @@ bunny_impassible_doors = {
|
|||||||
'Mire Hub Right Blue Barrier', 'Mire Hub Top Blue Barrier', 'Mire Hub Switch Blue Barrier N',
|
'Mire Hub Right Blue Barrier', 'Mire Hub Top Blue Barrier', 'Mire Hub Switch Blue Barrier N',
|
||||||
'Mire Hub Switch Blue Barrier S', 'Mire Falling Bridge WN', 'Mire Map Spike Side Blue Barrier',
|
'Mire Hub Switch Blue Barrier S', 'Mire Falling Bridge WN', 'Mire Map Spike Side Blue Barrier',
|
||||||
'Mire Map Spot Blue Barrier', 'Mire Crystal Dead End Left Barrier', 'Mire Crystal Dead End Right Barrier',
|
'Mire Map Spot Blue Barrier', 'Mire Crystal Dead End Left Barrier', 'Mire Crystal Dead End Right Barrier',
|
||||||
'Mire Cross ES', 'Mire Hidden Shooters Block Path S', 'Mire Hidden Shooters Block Path N',
|
'Mire Cross ES', 'Mire Left Bridge Hook Path', 'Mire Fishbone Blue Barrier',
|
||||||
'Mire Left Bridge Hook Path', 'Mire Fishbone Blue Barrier',
|
|
||||||
'Mire South Fish Blue Barrier', 'Mire Tile Room NW', 'Mire Compass Blue Barrier', 'Mire Attic Hint Hole',
|
'Mire South Fish Blue Barrier', 'Mire Tile Room NW', 'Mire Compass Blue Barrier', 'Mire Attic Hint Hole',
|
||||||
'Mire Dark Shooters SW', 'Mire Crystal Mid Blue Barrier', 'Mire Crystal Left Blue Barrier', 'TR Main Lobby Gap',
|
'Mire Dark Shooters SW', 'Mire Crystal Mid Blue Barrier', 'Mire Crystal Left Blue Barrier', 'TR Main Lobby Gap',
|
||||||
'TR Lobby Ledge Gap', 'TR Hub SW', 'TR Hub SE', 'TR Hub ES', 'TR Hub EN', 'TR Hub NW', 'TR Hub NE', 'TR Torches NW',
|
'TR Lobby Ledge Gap', 'TR Hub SW', 'TR Hub SE', 'TR Hub ES', 'TR Hub EN', 'TR Hub NW', 'TR Hub NE', 'TR Torches NW',
|
||||||
'TR Pokey 2 EN', 'TR Pokey 2 ES', 'TR Twin Pokeys SW', 'TR Twin Pokeys EN', 'TR Big Chest Gap',
|
'TR Pokey 2 Bottom to Top Barrier - Blue', 'TR Pokey 2 Top to Bottom Barrier - Blue', 'TR Twin Pokeys SW', 'TR Twin Pokeys EN', 'TR Big Chest Gap',
|
||||||
'TR Big Chest Entrance Gap', 'TR Lazy Eyes ES', 'TR Tongue Pull WS', 'TR Tongue Pull NE', 'TR Dark Ride Up Stairs',
|
'TR Big Chest Entrance Gap', 'TR Lazy Eyes ES', 'TR Tongue Pull WS', 'TR Tongue Pull NE', 'TR Dark Ride Up Stairs',
|
||||||
'TR Dark Ride SW', 'TR Crystal Maze Forwards Path', 'TR Crystal Maze Blue Path', 'TR Crystal Maze Cane Path',
|
'TR Dark Ride SW', 'TR Crystal Maze Start to Interior Barrier - Blue', 'TR Crystal Maze End to Interior Barrier - Blue',
|
||||||
'TR Final Abyss South Stairs', 'TR Final Abyss NW', 'GT Hope Room EN', 'GT Blocked Stairs Block Path',
|
'TR Final Abyss South Stairs', 'TR Final Abyss NW', 'GT Hope Room EN', 'GT Blocked Stairs Block Path',
|
||||||
'GT Bob\'s Room Hole', 'GT Speed Torch SE', 'GT Speed Torch South Path', 'GT Speed Torch North Path',
|
'GT Bob\'s Room Hole', 'GT Speed Torch SE', 'GT Speed Torch South Path', 'GT Speed Torch North Path',
|
||||||
'GT Crystal Conveyor NE', 'GT Crystal Conveyor WN', 'GT Conveyor Cross EN', 'GT Conveyor Cross WN',
|
'GT Crystal Conveyor NE', 'GT Crystal Conveyor WN', 'GT Conveyor Cross EN', 'GT Conveyor Cross WN',
|
||||||
'GT Hookshot East-North Path', 'GT Hookshot East-South Path', 'GT Hookshot North-East Path',
|
'GT Hookshot East-North Path', 'GT Hookshot East-South Path', 'GT Hookshot North-East Path',
|
||||||
'GT Hookshot North-South Path', 'GT Hookshot South-East Path', 'GT Hookshot South-North Path',
|
'GT Hookshot North-South Path', 'GT Hookshot South-East Path', 'GT Hookshot South-North Path',
|
||||||
'GT Hookshot Platform Blue Barrier', 'GT Hookshot Entry Blue Barrier', 'GT Hookshot Entry Boomerang Path',
|
'GT Hookshot Platform Blue Barrier', 'GT Hookshot Entry Blue Barrier', 'GT Double Switch Pot Corners to Exit Barrier - Blue',
|
||||||
'GT Double Switch Blue Path', 'GT Double Switch Key Blue Path', 'GT Double Switch Blue Barrier',
|
'GT Double Switch Exit to Blue Barrier', 'GT Firesnake Room Hook Path', 'GT Falling Bridge WN', 'GT Falling Bridge WS',
|
||||||
'GT Double Switch Transition Blue', 'GT Firesnake Room Hook Path', 'GT Falling Bridge WN', 'GT Falling Bridge WS',
|
|
||||||
'GT Ice Armos NE', 'GT Ice Armos WS', 'GT Crystal Paths SW', 'GT Mimics 1 NW', 'GT Mimics 1 ES', 'GT Mimics 2 WS',
|
'GT Ice Armos NE', 'GT Ice Armos WS', 'GT Crystal Paths SW', 'GT Mimics 1 NW', 'GT Mimics 1 ES', 'GT Mimics 2 WS',
|
||||||
'GT Mimics 2 NE', 'GT Hidden Spikes EN', 'GT Cannonball Bridge SE', 'GT Gauntlet 1 WN', 'GT Gauntlet 2 EN',
|
'GT Mimics 2 NE', 'GT Hidden Spikes EN', 'GT Cannonball Bridge SE', 'GT Gauntlet 1 WN', 'GT Gauntlet 2 EN',
|
||||||
'GT Gauntlet 2 SW', 'GT Gauntlet 3 NW', 'GT Gauntlet 3 SW', 'GT Gauntlet 4 NW', 'GT Gauntlet 4 SW',
|
'GT Gauntlet 2 SW', 'GT Gauntlet 3 NW', 'GT Gauntlet 3 SW', 'GT Gauntlet 4 NW', 'GT Gauntlet 4 SW',
|
||||||
|
|||||||
199
TestSuite.py
199
TestSuite.py
@@ -4,11 +4,50 @@ import multiprocessing
|
|||||||
import concurrent.futures
|
import concurrent.futures
|
||||||
import argparse
|
import argparse
|
||||||
from collections import OrderedDict
|
from collections import OrderedDict
|
||||||
|
import csv
|
||||||
|
|
||||||
cpu_threads = multiprocessing.cpu_count()
|
cpu_threads = multiprocessing.cpu_count()
|
||||||
py_version = f"{sys.version_info.major}.{sys.version_info.minor}"
|
py_version = f"{sys.version_info.major}.{sys.version_info.minor}"
|
||||||
|
|
||||||
|
|
||||||
|
SETTINGS = {
|
||||||
|
'mode': ['open'],
|
||||||
|
'goal': ['ganon', 'pedestal', 'triforcehunt', 'crystals', 'dungeons'],
|
||||||
|
'swords': ['random', 'swordless', 'assured'],
|
||||||
|
'shuffle': ['vanilla','simple','restricted','full','dungeonssimple','dungeonsfull', 'crossed','insanity'],
|
||||||
|
'accessibility': [True, False],
|
||||||
|
'difficulty': [True, False],
|
||||||
|
'shufflepots': [True, False],
|
||||||
|
'keydropshuffle': [True, False],
|
||||||
|
'keysanity': [True, False],
|
||||||
|
'retro': [True, False],
|
||||||
|
'shopsanity': [True, False]
|
||||||
|
}
|
||||||
|
|
||||||
|
SETTINGS = {
|
||||||
|
'mode': ['open', 'inverted'],
|
||||||
|
'goal': ['ganon'],
|
||||||
|
'swords': ['random'],
|
||||||
|
'shuffle': ['vanilla'],
|
||||||
|
'accessibility': [True],
|
||||||
|
'difficulty': [False],
|
||||||
|
'shufflepots': [False],
|
||||||
|
'keydropshuffle': [True, False],
|
||||||
|
'keysanity': [True, False],
|
||||||
|
'retro': [False],
|
||||||
|
'shopsanity': [False]
|
||||||
|
}
|
||||||
|
|
||||||
|
optionsList = []
|
||||||
|
for sett,options in SETTINGS.items():
|
||||||
|
for option in options:
|
||||||
|
if isinstance(option, str):
|
||||||
|
optionsList.append(f'{option}')
|
||||||
|
else:
|
||||||
|
optionsList.append('{}-{}'.format(sett,str(option)))
|
||||||
|
|
||||||
|
headerList = list(SETTINGS.keys())
|
||||||
|
|
||||||
def main(args=None):
|
def main(args=None):
|
||||||
successes = []
|
successes = []
|
||||||
errors = []
|
errors = []
|
||||||
@@ -23,34 +62,88 @@ def main(args=None):
|
|||||||
dead_or_alive = 0
|
dead_or_alive = 0
|
||||||
alive = 0
|
alive = 0
|
||||||
|
|
||||||
def test(testname: str, command: str):
|
def test(testname: list, command: str):
|
||||||
tests[testname] = [command]
|
tests[' '.join(testname)] = [command]
|
||||||
for mode in [['Open', ''],
|
basecommand = f"py -3.8 DungeonRandomizer.py --door_shuffle {args.dr} --intensity {args.tense} --suppress_rom --suppress_spoiler"
|
||||||
['Std ', ' --mode standard'],
|
|
||||||
['Inv ', ' --mode inverted']]:
|
|
||||||
|
|
||||||
basecommand = f"python3.8 DungeonRandomizer.py --door_shuffle {args.dr} --intensity {args.tense} --suppress_rom --suppress_spoiler"
|
def gen_seed():
|
||||||
|
taskcommand = basecommand + ' ' + command
|
||||||
|
return subprocess.run(taskcommand, capture_output=True, shell=True, text=True)
|
||||||
|
|
||||||
def gen_seed():
|
for _ in range(1, max_attempts + 1):
|
||||||
taskcommand = basecommand + " " + command + mode[1]
|
task = pool.submit(gen_seed)
|
||||||
return subprocess.run(taskcommand, capture_output=True, shell=True, text=True)
|
task.success = False
|
||||||
|
task.name = ' '.join(testname)
|
||||||
|
task.settings = testname
|
||||||
|
task.cmd = basecommand + ' ' + command
|
||||||
|
task_mapping.append(task)
|
||||||
|
|
||||||
for x in range(1, max_attempts + 1):
|
for mode in SETTINGS['mode']:
|
||||||
task = pool.submit(gen_seed)
|
for goal in SETTINGS['goal']:
|
||||||
task.success = False
|
for swords in SETTINGS['swords']:
|
||||||
task.name = testname
|
for shuffle in SETTINGS['shuffle']:
|
||||||
task.mode = mode[0]
|
for difficulty in SETTINGS['difficulty']:
|
||||||
task.cmd = basecommand + " " + command + mode[1]
|
for shufflepots in SETTINGS['shufflepots']:
|
||||||
task_mapping.append(task)
|
for accessibility in SETTINGS['accessibility']:
|
||||||
|
for keydropshuffle in SETTINGS['keydropshuffle']:
|
||||||
|
for keysanity in SETTINGS['keysanity']:
|
||||||
|
for retro in SETTINGS['retro']:
|
||||||
|
for shopsanity in SETTINGS['shopsanity']:
|
||||||
|
commands = ''
|
||||||
|
name = []
|
||||||
|
commands = commands + f' --mode {mode}'
|
||||||
|
name.append(mode)
|
||||||
|
commands = commands + f' --goal {goal}'
|
||||||
|
name.append(goal)
|
||||||
|
commands = commands + f' --swords {swords}'
|
||||||
|
name.append(swords)
|
||||||
|
commands = commands + f' --shuffle {shuffle}'
|
||||||
|
name.append(shuffle)
|
||||||
|
if difficulty:
|
||||||
|
commands = commands + f' --difficulty expert'
|
||||||
|
commands = commands + f' --item_functionality expert'
|
||||||
|
name.append('difficulty-True')
|
||||||
|
else:
|
||||||
|
name.append('difficulty-False')
|
||||||
|
if shufflepots:
|
||||||
|
commands = commands + f' --shufflepots'
|
||||||
|
name.append('shufflepots-True')
|
||||||
|
else:
|
||||||
|
name.append('shufflepots-False')
|
||||||
|
if not accessibility:
|
||||||
|
commands = commands + f' --accessibility none'
|
||||||
|
name.append('accessibility-False')
|
||||||
|
else:
|
||||||
|
name.append('accessibility-True')
|
||||||
|
if keydropshuffle:
|
||||||
|
commands = commands + f' --keydropshuffle'
|
||||||
|
name.append('keydropshuffle-True')
|
||||||
|
else:
|
||||||
|
name.append('keydropshuffle-False')
|
||||||
|
if keysanity:
|
||||||
|
commands = commands + f' --keysanity'
|
||||||
|
name.append('keysanity-True')
|
||||||
|
else:
|
||||||
|
name.append('keysanity-False')
|
||||||
|
if retro:
|
||||||
|
commands = commands + f' --retro'
|
||||||
|
name.append('retro-True')
|
||||||
|
else:
|
||||||
|
name.append('retro-False')
|
||||||
|
if shopsanity:
|
||||||
|
commands = commands + f' --shopsanity'
|
||||||
|
name.append('shopsanity-True')
|
||||||
|
else:
|
||||||
|
name.append('shopsanity-False')
|
||||||
|
test(name, commands)
|
||||||
|
|
||||||
test("Vanilla ", "--shuffle vanilla")
|
# test("Vanilla ", "--futuro --shuffle vanilla")
|
||||||
test("Retro ", "--retro --shuffle vanilla")
|
# test("Basic ", "--futuro --retro --shuffle vanilla")
|
||||||
test("Keysanity ", "--shuffle vanilla --keydropshuffle --keysanity")
|
# test("Keysanity ", "--futuro --shuffle vanilla --keydropshuffle --keysanity")
|
||||||
test("Shopsanity", "--shuffle vanilla --shopsanity")
|
# test("Simple ", "--futuro --shuffle simple")
|
||||||
test("Simple ", "--shuffle simple")
|
# test("Crossed ", "--futuro --shuffle crossed")
|
||||||
test("Full ", "--shuffle full")
|
# test("Insanity ", "--futuro --shuffle insanity")
|
||||||
test("Crossed ", "--shuffle crossed")
|
# test("CrossKeys ", "--futuro --shuffle crossed --keydropshuffle --keysanity")
|
||||||
test("Insanity ", "--shuffle insanity")
|
|
||||||
|
|
||||||
from tqdm import tqdm
|
from tqdm import tqdm
|
||||||
with tqdm(concurrent.futures.as_completed(task_mapping),
|
with tqdm(concurrent.futures.as_completed(task_mapping),
|
||||||
@@ -61,34 +154,53 @@ def main(args=None):
|
|||||||
try:
|
try:
|
||||||
result = task.result()
|
result = task.result()
|
||||||
if result.returncode:
|
if result.returncode:
|
||||||
errors.append([task.name + task.mode, task.cmd, result.stderr])
|
errors.append([task.name, task.cmd, result.stderr])
|
||||||
else:
|
else:
|
||||||
alive += 1
|
alive += 1
|
||||||
task.success = True
|
task.success = True
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
raise e
|
raise e
|
||||||
|
|
||||||
progressbar.set_description(f"Success rate: {(alive/dead_or_alive)*100:.2f}% - {task.name}{task.mode}")
|
progressbar.set_description(f"Success rate: {(alive/dead_or_alive)*100:.2f}% - {task.name}")
|
||||||
|
|
||||||
def get_results(testname: str):
|
def get_results(option: str):
|
||||||
result = ""
|
result = ""
|
||||||
for mode in ['Open', 'Std ', 'Inv ']:
|
dead_or_alive = [task.success for task in task_mapping if option in task.settings]
|
||||||
dead_or_alive = [task.success for task in task_mapping if task.name == testname and task.mode == mode]
|
alive = [x for x in dead_or_alive if x]
|
||||||
alive = [x for x in dead_or_alive if x]
|
success = f"{option} Rate: {(len(alive) / len(dead_or_alive)) * 100:.1f}%"
|
||||||
success = f"{testname}{mode} Rate: {(len(alive) / len(dead_or_alive)) * 100:.2f}%"
|
successes.append(success)
|
||||||
successes.append(success)
|
print(success)
|
||||||
print(success)
|
result += f"{(len(alive)/len(dead_or_alive))*100:.2f}%\t"
|
||||||
result += f"{(len(alive)/len(dead_or_alive))*100:.2f}%\t"
|
|
||||||
return result.strip()
|
return result.strip()
|
||||||
|
|
||||||
results = []
|
results = []
|
||||||
for t in tests.keys():
|
for option in optionsList:
|
||||||
results.append(get_results(t))
|
results.append(get_results(option))
|
||||||
|
|
||||||
for result in results:
|
for result in results:
|
||||||
print(result)
|
|
||||||
successes.append(result)
|
successes.append(result)
|
||||||
|
|
||||||
|
tabresultsfile = './output/' + args.dr + '.tsv'
|
||||||
|
with open(tabresultsfile, 'w+', newline='') as f:
|
||||||
|
writer = csv.writer(f, delimiter='\t')
|
||||||
|
header = headerList.copy()
|
||||||
|
header.append('Success')
|
||||||
|
writer.writerow(header)
|
||||||
|
for task in task_mapping:
|
||||||
|
settings = []
|
||||||
|
for option in headerList:
|
||||||
|
if option in task.settings:
|
||||||
|
settings.append(1)
|
||||||
|
elif str(option + '-True') in task.settings:
|
||||||
|
settings.append(1)
|
||||||
|
else:
|
||||||
|
settings.append(0)
|
||||||
|
if task.success:
|
||||||
|
settings.append(1)
|
||||||
|
else:
|
||||||
|
settings.append(0)
|
||||||
|
writer.writerow(settings)
|
||||||
|
|
||||||
return successes, errors
|
return successes, errors
|
||||||
|
|
||||||
|
|
||||||
@@ -108,9 +220,10 @@ if __name__ == "__main__":
|
|||||||
|
|
||||||
cpu_threads = args.cpu_threads
|
cpu_threads = args.cpu_threads
|
||||||
|
|
||||||
for dr in [['vanilla', args.count if args.count else 2, 1],
|
# for dr in [['vanilla', args.count if args.count else 2, 1],
|
||||||
['basic', args.count if args.count else 5, 3],
|
# ['basic', args.count if args.count else 5, 1],
|
||||||
['crossed', args.count if args.count else 10, 3]]:
|
# ['crossed', args.count if args.count else 10, 1]]:
|
||||||
|
for dr in [['crossed', args.count if args.count else 2, 1]]:
|
||||||
|
|
||||||
for tense in range(1, dr[2] + 1):
|
for tense in range(1, dr[2] + 1):
|
||||||
args = argparse.Namespace()
|
args = argparse.Namespace()
|
||||||
@@ -124,13 +237,13 @@ if __name__ == "__main__":
|
|||||||
print()
|
print()
|
||||||
|
|
||||||
if errors:
|
if errors:
|
||||||
with open(f"{dr[0]}{(f'-{tense}' if dr[0] in ['basic', 'crossed'] else '')}-errors.txt", 'w') as stream:
|
with open(f"./output/{dr[0]}{(f'-{tense}' if dr[0] in ['basic', 'crossed'] else '')}-errors.txt", 'w') as stream:
|
||||||
for error in errors:
|
for error in errors:
|
||||||
stream.write(error[0] + "\n")
|
stream.write(error[0] + "\n")
|
||||||
stream.write(error[1] + "\n")
|
stream.write(error[1] + "\n")
|
||||||
stream.write(error[2] + "\n\n")
|
stream.write(error[2] + "\n\n")
|
||||||
|
|
||||||
with open("success.txt", "w") as stream:
|
with open("./output/success.txt", "w") as stream:
|
||||||
stream.write(str.join("\n", successes))
|
stream.write(str.join("\n", successes))
|
||||||
|
|
||||||
input("Press enter to continue")
|
input("Press enter to continue")
|
||||||
|
|||||||
Reference in New Issue
Block a user