area_left_key_drop=Location(dungeon=3).add(DroppedKey(0x155)).connect(area_left,r.attack_hookshot)# west key drop (no longer requires feather to get across hole), can use boomerang to knock owls into pit
dungeon3_south_key_drop=Location(dungeon=3).add(DroppedKey(0x158)).connect(area_down,r.attack_hookshot)# south keydrop, can use boomerang to knock owls into pit
area_right=Location(dungeon=3).connect(area3,AND(KEY3,FOUND(KEY3,4)))# We enter the top part of the map here.
Location(dungeon=3).add(DroppedKey(0x14D)).connect(area_right,r.attack_hookshot_powder)# key after the stairs.
dungeon3_post_dodongo_chest=Location(dungeon=3).add(DungeonChest(0x146)).connect(area_right,AND(r.attack_hookshot_powder,r.miniboss_requirements[world_setup.miniboss_mapping[2]]))# boots after the miniboss
compass_chest=Location(dungeon=3).add(DungeonChest(0x142)).connect(area_right,OR(SWORD,BOMB,AND(SHIELD,r.attack_hookshot_powder)))# bomb only activates with sword, bomb or shield
area2.connect(dungeon3_raised_blocks_east,AND(r.attack_hookshot_powder,r.super_jump_feather),one_way=True)# use superjump to get over the bottom left block
area3.connect(dungeon3_raised_blocks_north,AND(OR(PEGASUS_BOOTS,r.hookshot_clip_block),r.shaq_jump),one_way=True)# use shagjump (unclipped superjump next to movable block) from north wall to get on the blocks. Instead of boots can also get to that area with a hookshot clip past the movable block
area3.connect(dungeon3_zol_stalfos,r.hookshot_clip_block,one_way=True)# hookshot clip through the northern push block next to raised blocks chest to get to the zol
dungeon3_nightmare_key_chest.connect(area_right,AND(r.super_jump_feather,BOMB))# superjump to right side 3 gap via top wall and jump the 2 gap
dungeon3_post_dodongo_chest.connect(area_right,AND(r.super_jump_feather,FOUND(KEY3,6)))# superjump from keyblock path. use 2 keys to open enough blocks TODO: nag messages to skip a key
area2.connect(dungeon3_raised_blocks_east,r.boots_superhop,one_way=True)# use boots superhop to get over the bottom left block
area3.connect(dungeon3_raised_blocks_north,r.boots_superhop,one_way=True)# use boots superhop off top wall or left wall to get on raised blocks
area_up.connect(dungeon3_zol_stalfos,AND(r.super_jump_feather,r.attack_skeleton),one_way=True)# use superjump near top blocks chest to get to zol without boots, keep wall clip on right wall to get a clip on left wall or use obstacles
area_left_key_drop.connect(area_left,r.shield_bump)# knock everything into the pit including the teleporting owls
dungeon3_south_key_drop.connect(area_down,r.shield_bump)# knock everything into the pit including the teleporting owls
dungeon3_nightmare_key_chest.connect(area_right,AND(r.super_jump_feather,r.shield_bump))# superjump into jumping stalfos and shield bump to right ledge
dungeon3_nightmare_key_chest.connect(area_right,AND(BOMB,r.pit_buffer_boots,HOOKSHOT))# boots bonk across the pits with pit buffering and hookshot to the chest
compass_chest.connect(dungeon3_3_bombite_room,OR(BOW,MAGIC_ROD,AND(OR(FEATHER,PEGASUS_BOOTS),OR(SWORD,MAGIC_POWDER))),one_way=True)# 3 bombite room from the left side, use a bombite to blow open the wall without bombs
pre_boss.connect(towards_boss4,AND(r.attack_no_boomerang,FEATHER,POWER_BRACELET))# use bracelet super bounce glitch to pass through first part underground section
pre_boss.connect(towards_boss4,AND(r.attack_no_boomerang,r.boots_bonk_2d_spikepit))# use medicine invulnerability to pass through the 2d section with a boots bonk to reach the staircase