self._addEntranceRequirementExit("prairie_madbatter_connector_entrance",AND(OR(FEATHER,ROOSTER),r.bush))# if exiting, you can pick up the bushes by normal means
Location().add(GoldLeaf(0x05A)).connect(castle_courtyard,OR(SWORD,BOW,MAGIC_ROD))# mad bomber, enemy hiding in the 6 holes
crow_gold_leaf=Location().add(GoldLeaf(0x058)).connect(castle_courtyard,AND(POWER_BRACELET,r.attack_hookshot_no_bomb))# bird on tree, can't kill with bomb cause it flies off. immune to magic_powder
Location().add(GoldLeaf(0x2D2)).connect(castle_inside,r.attack_hookshot_powder)# in the castle, kill enemies
Location().add(GoldLeaf(0x2C5)).connect(castle_inside,AND(BOMB,r.attack_hookshot_powder))# in the castle, bomb wall to show enemy
kanalet_chain_trooper=Location().add(GoldLeaf(0x2C6))# in the castle, spinning spikeball enemy
self._addEntrance("prairie_to_animal_connector",ukuku_prairie,animal_village_connector_left,OR(BOMB,BOOMERANG,MAGIC_POWDER,MAGIC_ROD,SWORD))# passage under river blocked by bush
self._addEntranceRequirementExit("animal_cave",None)# if exiting, you do not need bombs
animal_village_bombcave_heartpiece=Location().add(HeartPiece(0x2E6)).connect(animal_village_bombcave,OR(AND(BOMB,FEATHER,HOOKSHOT),ROOSTER))# cave in the upper right of animal town
obstacle_cave_inside.connect(obstacle_cave_entrance,FEATHER,one_way=True)# can get past the rock room from right to left pushing blocks and jumping over the pit
obstacle_cave_inside_chest=Location().add(Chest(0x2BB)).connect(obstacle_cave_inside,OR(HOOKSHOT,ROOSTER))# chest at obstacles
bridge_seashell=Location().add(Seashell(0x00C)).connect(outside_rooster_house,AND(OR(FEATHER,ROOSTER),POWER_BRACELET))# seashell right of rooster house, there is a hole in the bridge
left_right_connector_cave_entrance.connect(left_right_connector_cave_exit,OR(HOOKSHOT,ROOSTER),one_way=True)# pass through the underground passage to left side
mountain_heartpiece=Location().add(HeartPiece(0x2BA))# heartpiece in connecting cave
left_right_connector_cave_entrance.connect(mountain_heartpiece,BOMB,one_way=True)# in the connecting cave from right to left. one_way to prevent access to left_side_mountain via glitched logic
taltal_boulder_zone.add(Chest(0x004))# top of falling rocks hill
self._addEntranceRequirement("mamu",AND(FEATHER,POWER_BRACELET))# can clear the gaps at the start with just feather, can reach bottom left sign with a well timed jump while wall clipped
self._addEntranceRequirement("prairie_madbatter_connector_entrance",AND(OR(FEATHER,ROOSTER),OR(MAGIC_POWDER,BOMB)))# use bombs or powder to get rid of a bush on the other side by jumping across and placing the bomb/powder before you fall into the pit
fisher_under_bridge.connect(bay_water,AND(TRADING_ITEM_FISHING_HOOK,FLIPPERS))# can talk to the fisherman from the water when the boat is low (requires swimming up out of the water a bit)
crow_gold_leaf.connect(castle_courtyard,POWER_BRACELET)# bird on tree at left side kanalet, can use both rocks to kill the crow removing the kill requirement
castle_inside.connect(kanalet_chain_trooper,BOOMERANG,one_way=True)# kill the ball and chain trooper from the left side, then use boomerang to grab the dropped item
animal_village_bombcave_heartpiece.connect(animal_village_bombcave,AND(PEGASUS_BOOTS,FEATHER))# jump across horizontal 4 gap to heart piece
desert_lanmola.connect(desert,BOMB)# use bombs to kill lanmola
d6_connector_left.connect(d6_connector_right,AND(OR(FLIPPERS,PEGASUS_BOOTS),FEATHER))# jump the gap in underground passage to d6 left side to skip hookshot
graveyard_cave_left.connect(graveyard_heartpiece,BOMB,one_way=True)# bomb trigger the heartpiece from the left side
graveyard_heartpiece.connect(graveyard_cave_right,None)# sideways block push from the right staircase.
prairie_island_seashell.connect(ukuku_prairie,AND(FEATHER,r.bush))# jesus jump from right side, screen transition on top of the water to reach the island
self._addEntranceRequirement("castle_jump_cave",FEATHER)# 1 pit buffer to clip bottom wall and jump across.
left_bay_area.connect(ghost_hut_outside,FEATHER)# 1 pit buffer to get across
tiny_island.connect(left_bay_area,AND(FEATHER,r.bush))# jesus jump around
bay_madbatter_connector_exit.connect(bay_madbatter_connector_entrance,FEATHER,one_way=True)# jesus jump (3 screen) through the underground passage leading to martha's bay mad batter
self._addEntranceRequirement("prairie_madbatter_connector_entrance",AND(FEATHER,POWER_BRACELET))# villa buffer into the top side of the bush, then pick it up
ukuku_prairie.connect(richard_maze,OR(BOMB,BOOMERANG,MAGIC_POWDER,MAGIC_ROD,SWORD),one_way=True)# break bushes on north side of the maze, and 1 pit buffer into the maze
animal_village.connect(ukuku_prairie,FEATHER)# jesus jump
below_right_taltal.connect(next_to_castle,FEATHER)# jesus jump (north of kanalet castle phonebooth)
animal_village_connector_right.connect(animal_village_connector_left,FEATHER)# text clip past the obstacles (can go both ways), feather to wall clip the obstacle without triggering text or shaq jump in bottom right corner if text is off
animal_village_bombcave_heartpiece.connect(animal_village_bombcave,AND(BOMB,OR(HOOKSHOT,FEATHER,PEGASUS_BOOTS)))# bomb trigger from right side, corner walking top right pit is stupid so hookshot or boots added
animal_village_bombcave_heartpiece.connect(animal_village_bombcave,FEATHER)# villa buffer across the pits
d6_entrance.connect(ukuku_prairie,FEATHER,one_way=True)# jesus jump (2 screen) from d6 entrance bottom ledge to ukuku prairie
d6_entrance.connect(armos_fairy_entrance,FEATHER,one_way=True)# jesus jump (2 screen) from d6 entrance top ledge to armos fairy entrance
armos_fairy_entrance.connect(d6_armos_island,FEATHER,one_way=True)# jesus jump from top (fairy bomb cave) to armos island
armos_fairy_entrance.connect(raft_exit,FEATHER)# jesus jump (2-ish screen) from fairy cave to lower raft connector
self._addEntranceRequirementEnter("obstacle_cave_entrance",HOOKSHOT)# clip past the rocks in front of obstacle cave entrance
obstacle_cave_inside_chest.connect(obstacle_cave_inside,FEATHER)# jump to the rightmost pits + 1 pit buffer to jump across
obstacle_cave_exit.connect(obstacle_cave_inside,FEATHER)# 1 pit buffer above boots crystals to get past
lower_right_taltal.connect(hibiscus_item,AND(TRADING_ITEM_PINEAPPLE,BOMB),one_way=True)# bomb trigger papahl from below ledge, requires pineapple
self._addEntranceRequirement("heartpiece_swim_cave",FEATHER)# jesus jump into the cave entrance after jumping down the ledge, can jesus jump back to the ladder 1 screen below
self._addEntranceRequirement("mambo",FEATHER)# jesus jump from (unlocked) d4 entrance to mambo's cave entrance
outside_raft_house.connect(below_right_taltal,FEATHER,one_way=True)# jesus jump from the ledge at raft to the staircase 1 screen south
outside_rooster_house.connect(lower_right_taltal,FEATHER)# jesus jump (1 or 2 screen depending if angler key is used) to staircase leading up the mountain
d7_platau.connect(water_cave_hole,None,one_way=True)# use save and quit menu to gain control while falling to dodge the water cave hole
mountain_bridge_staircase.connect(outside_rooster_house,AND(PEGASUS_BOOTS,FEATHER))# cross bridge to staircase with pit buffer to clip bottom wall and jump across
bird_key.connect(bird_cave,AND(FEATHER,HOOKSHOT))# hookshot jump across the big pits room
right_taltal_connector2.connect(right_taltal_connector3,None,one_way=True)# 2 seperate pit buffers so not obnoxious to get past the two pit rooms before d7 area. 2nd pits can pit buffer on top right screen, bottom wall to scroll on top of the wall on bottom screen
left_right_connector_cave_exit.connect(left_right_connector_cave_entrance,AND(HOOKSHOT,FEATHER),one_way=True)# pass through the passage in reverse using a superjump to get out of the dead end
obstacle_cave_inside.connect(mountain_heartpiece,BOMB,one_way=True)# bomb trigger from boots crystal cave
self._addEntranceRequirement("d8",OR(BOMB,AND(OCARINA,SONG3)))# bomb trigger the head and walk trough, or play the ocarina song 3 and walk through
ifoptions.logic=='hell':
dream_hut_right.connect(dream_hut,None)# alternate diagonal movement with orthogonal movement to control the mimics. Get them clipped into the walls to walk past
swamp.connect(forest_toadstool,None)# damage boost from toadstool area across the pit
swamp.connect(forest,AND(r.bush,OR(PEGASUS_BOOTS,HOOKSHOT)))# boots bonk / hookshot spam over the pits right of forest_rear_chest
forest.connect(forest_heartpiece,PEGASUS_BOOTS,one_way=True)# boots bonk across the pits
log_cave_heartpiece.connect(forest_cave,BOOMERANG)# clip the boomerang through the corner gaps on top right to grab the item
log_cave_heartpiece.connect(forest_cave,AND(ROOSTER,OR(PEGASUS_BOOTS,SWORD,BOW,MAGIC_ROD)))# boots rooster hop in bottom left corner to "superjump" into the area. use buffers after picking up rooster to gain height / time to throw rooster again facing up
writes_hut_outside.connect(swamp,None)# damage boost with moblin arrow next to telephone booth
writes_cave_left_chest.connect(writes_cave,None)# damage boost off the zol to get across the pit.
graveyard.connect(crazy_tracy_hut,HOOKSHOT,one_way=True)# use hookshot spam to clip the rock on the right with the crow
graveyard.connect(forest,OR(PEGASUS_BOOTS,HOOKSHOT))# boots bonk witches hut, or hookshot spam across the pit
graveyard_cave_left.connect(graveyard_cave_right,HOOKSHOT)# hookshot spam over the pit
graveyard_cave_right.connect(graveyard_cave_left,PEGASUS_BOOTS,one_way=True)# boots bonk off the cracked block
self._addEntranceRequirementEnter("mamu",AND(PEGASUS_BOOTS,POWER_BRACELET))# can clear the gaps at the start with multiple pit buffers, can reach bottom left sign with bonking along the bottom wall
self._addEntranceRequirement("castle_jump_cave",PEGASUS_BOOTS)# pit buffer to clip bottom wall and boots bonk across
prairie_cave_secret_exit.connect(prairie_cave,AND(BOMB,OR(PEGASUS_BOOTS,HOOKSHOT)))# hookshot spam or boots bonk across pits can go from left to right by pit buffering on top of the bottom wall then boots bonk across
richard_cave_chest.connect(richard_cave,None)# use the zol on the other side of the pit to damage boost across (requires damage from pit + zol)
castle_secret_entrance_right.connect(castle_secret_entrance_left,AND(PEGASUS_BOOTS,"MEDICINE2"))# medicine iframe abuse to get across spikes with a boots bonk
left_bay_area.connect(ghost_hut_outside,PEGASUS_BOOTS)# multiple pit buffers to bonk across the bottom wall
tiny_island.connect(left_bay_area,AND(PEGASUS_BOOTS,r.bush))# jesus jump around with boots bonks, then one final bonk off the bottom wall to get on the staircase (needs to be centered correctly)
self._addEntranceRequirement("prairie_madbatter_connector_entrance",AND(PEGASUS_BOOTS,OR(MAGIC_POWDER,BOMB,SWORD,MAGIC_ROD,BOOMERANG)))# Boots bonk across the bottom wall, then remove one of the bushes to get on land
self._addEntranceRequirementExit("prairie_madbatter_connector_entrance",AND(PEGASUS_BOOTS,r.bush))# if exiting, you can pick up the bushes by normal means and boots bonk across the bottom wall
# bay_water connectors, only left_bay_area, ukuku_prairie and animal_village have to be connected with jesus jumps. below_right_taltal, d6_armos_island and armos_fairy_entrance are accounted for via ukuku prairie in glitch logic
left_bay_area.connect(bay_water,FEATHER)# jesus jump (can always reach bay_water with jesus jumping from every way to enter bay_water, so no one_way)
animal_village.connect(bay_water,FEATHER)# jesus jump (can always reach bay_water with jesus jumping from every way to enter bay_water, so no one_way)
ukuku_prairie.connect(bay_water,FEATHER,one_way=True)# jesus jump
bay_water.connect(d5_entrance,FEATHER)# jesus jump into d5 entrance (wall clip), wall clip + jesus jump to get out
crow_gold_leaf.connect(castle_courtyard,BOMB)# bird on tree at left side kanalet, place a bomb against the tree and the crow flies off. With well placed second bomb the crow can be killed
mermaid_statue.connect(animal_village,AND(TRADING_ITEM_SCALE,FEATHER))# early mermaid statue by buffering on top of the right ledge, then superjumping to the left (horizontal pixel perfect)
animal_village_bombcave_heartpiece.connect(animal_village_bombcave,PEGASUS_BOOTS)# boots bonk across bottom wall (both at entrance and in item room)
d6_armos_island.connect(ukuku_prairie,FEATHER)# jesus jump (3 screen) from seashell mansion to armos island
obstacle_cave_entrance.connect(obstacle_cave_inside,OR(HOOKSHOT,AND(FEATHER,PEGASUS_BOOTS,OR(SWORD,MAGIC_ROD,BOW))))# get past crystal rocks by hookshotting into top pushable block, or boots dashing into top wall where the pushable block is to superjump down
obstacle_cave_entrance.connect(obstacle_cave_inside,AND(PEGASUS_BOOTS,ROOSTER))# get past crystal rocks pushing the top pushable block, then boots dashing up picking up the rooster before bonking. Pause buffer until rooster is fully picked up then throw it down before bonking into wall
d4_entrance.connect(below_right_taltal,FEATHER)# jesus jump a long way
ifoptions.entranceshufflein("default","simple"):# connector cave from armos d6 area to raft shop may not be randomized to add a flippers path since flippers stop you from jesus jumping
below_right_taltal.connect(raft_game,AND(FEATHER,r.attack_hookshot_powder),one_way=True)# jesus jump from heartpiece water cave, around the island and clip past the diagonal gap in the rock, then jesus jump all the way down the waterfall to the chests (attack req for hardlock flippers+feather scenario)
outside_raft_house.connect(below_right_taltal,AND(FEATHER,PEGASUS_BOOTS))#superjump from ledge left to right, can buffer to land on ledge instead of water, then superjump right which is pixel perfect
bird_key.connect(bird_cave,AND(FEATHER,PEGASUS_BOOTS))# boots jump above wall, use multiple pit buffers to get across
mountain_bridge_staircase.connect(outside_rooster_house,OR(PEGASUS_BOOTS,FEATHER))# cross bridge to staircase with pit buffer to clip bottom wall and jump or boots bonk across
left_right_connector_cave_entrance.connect(left_right_connector_cave_exit,AND(PEGASUS_BOOTS,FEATHER),one_way=True)# boots jump to bottom left corner of pits, pit buffer and jump to left
left_right_connector_cave_exit.connect(left_right_connector_cave_entrance,AND(ROOSTER,OR(PEGASUS_BOOTS,SWORD,BOW,MAGIC_ROD)),one_way=True)# pass through the passage in reverse using a boots rooster hop or rooster superjump in the one way passage area