mark sections in logic

This commit is contained in:
Demur Rumed 2025-07-21 04:16:16 +00:00
commit b762b3d972
36 changed files with 1357 additions and 2 deletions

View file

@ -150,10 +150,12 @@ void RegionTable_Init_Generated() {
elif f != "//":
if len(ast) != 1:
print("expected atom, got tree", ast)
assert false
elif f.isupper() or f.isdigit() or f in ("true", "false"):
output(f)
else:
print("invalid atom", f)
assert false
return "".join(result)
class RR:
@ -202,7 +204,6 @@ LOGIC = {
"IsAdult",
"AtDay",
"AtNight",
"LoweredWaterInBotw",
"BigPoes",
}
@ -317,6 +318,7 @@ def main():
if line.startswith("def "):
if pcount != 0:
print("error parsing", line)
assert false
defline = line.split()
active_rr = RR(*defline[1:])
RRs.append(active_rr)
@ -339,6 +341,7 @@ def main():
thing, code = buf.split(None, 1)
except:
print("failed to parse line", repr(buf))
assert false
continue
if thing.startswith("RR_"):
active_rr.exits.append((thing, parse(code)))

View file

@ -2287,7 +2287,6 @@ void Logic::Reset(bool resetSaveContext /*= true*/) {
// Adult logic
FreedEpona = false;
// BigPoe = false;
// Trade Quest Events
WakeUpAdultTalon = false;

View file

@ -1,5 +1,6 @@
def RR_BOTTOM_OF_THE_WELL_ENTRYWAY SCENE_BOTTOM_OF_THE_WELL false RA_BOTTOM_OF_THE_WELL
Bottom of the Well Entryway
//Exits
RR_BOTTOM_OF_THE_WELL_PERIMETER (and (IsDungeonVanilla BOTTOM_OF_THE_WELL) (and IsChild (CanPassEnemy RE_BIG_SKULLTULA)))
RR_BOTTOM_OF_THE_WELL_MQ_PERIMETER (and (IsDungeonMQ BOTTOM_OF_THE_WELL) IsChild)
RR_KAK_WELL true
@ -7,15 +8,18 @@ RR_KAK_WELL true
//Technically involves an fake wall, but passing it lensless is intended in vanilla and it is well telegraphed
def RR_BOTTOM_OF_THE_WELL_PERIMETER SCENE_BOTTOM_OF_THE_WELL false RA_BOTTOM_OF_THE_WELL
Bottom of the Well Perimeter
//Events
StickPot true
NutPot true
LoweredWaterInsideBotw (CanUse RG_ZELDAS_LULLABY)
//Checks
RC_BOTTOM_OF_THE_WELL_FRONT_CENTER_BOMBABLE_CHEST HasExplosives
RC_BOTTOM_OF_THE_WELL_UNDERWATER_FRONT_CHEST (or LoweredWaterInsideBotw CanOpenUnderwaterChest)
RC_BOTTOM_OF_THE_WELL_UNDERWATER_LEFT_CHEST (or LoweredWaterInsideBotw CanOpenUnderwaterChest)
RC_BOTTOM_OF_THE_WELL_NEAR_ENTRANCE_POT_1 CanBreakPots
RC_BOTTOM_OF_THE_WELL_NEAR_ENTRANCE_POT_2 CanBreakPots
RC_BOTTOM_OF_THE_WELL_UNDERWATER_POT (or (and CanBreakPots LoweredWaterInsideBotw) (CanUse RG_BOOMERANG))
//Exits
RR_BOTTOM_OF_THE_WELL_ENTRYWAY (and IsChild (CanPassEnemy RE_BIG_SKULLTULA))
RR_BOTTOM_OF_THE_WELL_BEHIND_FAKE_WALLS (or RT_LENS_BOTW (CanUse RG_LENS_OF_TRUTH))
RR_BOTTOM_OF_THE_WELL_SOUTHWEST_ROOM (or RT_LENS_BOTW (CanUse RG_LENS_OF_TRUTH))
@ -29,6 +33,7 @@ RR_BOTTOM_OF_THE_WELL_BASEMENT true
//This region combines the Middle with the perimeter's hidden areas. If a warp puts link into the middle without crossing the perimeter or using lens, it will need it's own region
def RR_BOTTOM_OF_THE_WELL_BEHIND_FAKE_WALLS SCENE_BOTTOM_OF_THE_WELL false RA_BOTTOM_OF_THE_WELL
Bottom of the Well Behind Fake Walls
//Checks
RC_BOTTOM_OF_THE_WELL_FRONT_LEFT_FAKE_WALL_CHEST true
RC_BOTTOM_OF_THE_WELL_RIGHT_BOTTOM_FAKE_WALL_CHEST true
RC_BOTTOM_OF_THE_WELL_COMPASS_CHEST true
@ -36,6 +41,7 @@ RC_BOTTOM_OF_THE_WELL_COMPASS_CHEST true
RC_BOTTOM_OF_THE_WELL_CENTER_SKULLTULA_CHEST (or (CanPassEnemy RE_BIG_SKULLTULA) TakeDamage)
//Not technically behind a wall, but still logically needs lens due to pits
RC_BOTTOM_OF_THE_WELL_BACK_LEFT_BOMBABLE_CHEST HasExplosives
//Exits
RR_BOTTOM_OF_THE_WELL_PERIMETER (or RT_LENS_BOTW (CanUse RG_LENS_OF_TRUTH))
RR_BOTTOM_OF_THE_WELL_INNER_ROOMS (SmallKeys SCENE_BOTTOM_OF_THE_WELL 3)
RR_BOTTOM_OF_THE_WELL_BASEMENT true
@ -44,16 +50,20 @@ RR_BOTTOM_OF_THE_WELL_BASEMENT_PLATFORM (or RT_LENS_BOTW (CanUse RG_LENS_OF_TRUT
//This area can be reached without lens in logic from basement, but that could require silver rupees if they are shuffled.
def RR_BOTTOM_OF_THE_WELL_SOUTHWEST_ROOM SCENE_BOTTOM_OF_THE_WELL false RA_BOTTOM_OF_THE_WELL
Bottom of the Well Southwest Room
//Checks
RC_BOTTOM_OF_THE_WELL_LEFT_SIDE_POT_1 CanBreakPots
RC_BOTTOM_OF_THE_WELL_LEFT_SIDE_POT_2 CanBreakPots
RC_BOTTOM_OF_THE_WELL_LEFT_SIDE_POT_3 CanBreakPots
//Exits
RR_BOTTOM_OF_THE_WELL_PERIMETER (or RT_LENS_BOTW (CanUse RG_LENS_OF_TRUTH))
//Passing through this area needs lens, but entering doesn't, so that the fire keese can be killed without crossing the pits if enemy drops are ever shuffled
def RR_BOTTOM_OF_THE_WELL_KEESE_BEAMOS_ROOM SCENE_BOTTOM_OF_THE_WELL false RA_BOTTOM_OF_THE_WELL
Bottom of the Well Keese-Beamos Room
//Checks
RC_BOTTOM_OF_THE_WELL_FIRE_KEESE_CHEST (or RT_LENS_BOTW (CanUse RG_LENS_OF_TRUTH))
RC_BOTTOM_OF_THE_WELL_FIRE_KEESE_POT_1 (and CanBreakPots (or RT_LENS_BOTW (CanUse RG_LENS_OF_TRUTH)))
//Exits
RR_BOTTOM_OF_THE_WELL_PERIMETER (and IsChild (and (SmallKeys SCENE_BOTTOM_OF_THE_WELL 3) (or RT_LENS_BOTW (CanUse RG_LENS_OF_TRUTH))))
RR_BOTTOM_OF_THE_WELL_LIKE_LIKE_CAGE (or RT_LENS_BOTW (CanUse RG_LENS_OF_TRUTH))
//not sure if this lens check is needed, these holes are a bit too easy to find, but it matches existing logic
@ -61,35 +71,45 @@ RR_BOTTOM_OF_THE_WELL_BASEMENT_USEFUL_BOMB_FLOWERS (or RT_LENS_BOTW (CanUse RG_L
def RR_BOTTOM_OF_THE_WELL_LIKE_LIKE_CAGE SCENE_BOTTOM_OF_THE_WELL false RA_BOTTOM_OF_THE_WELL
Bottom of the Well Like-Like Cage
//Checks
RC_BOTTOM_OF_THE_WELL_LIKE_LIKE_CHEST true
RC_BOTTOM_OF_THE_WELL_GS_LIKE_LIKE_CAGE (CanGetEnemyDrop RE_GOLD_SKULLTULA ED_BOOMERANG)
//Exits
RR_BOTTOM_OF_THE_WELL_KEESE_BEAMOS_ROOM true
//If the player can voidwarp into one of these rooms they will need splitting up, and Fake walls will need specifying into middle and the rest moved to perimeter
def RR_BOTTOM_OF_THE_WELL_INNER_ROOMS SCENE_BOTTOM_OF_THE_WELL false RA_BOTTOM_OF_THE_WELL
Bottom of the Well Inner Rooms
//Events
DekuBabaSticks CanGetDekuBabaSticks
DekuBabaNuts CanGetDekuBabaNuts
//Checks
RC_BOTTOM_OF_THE_WELL_GS_WEST_INNER_ROOM (CanGetEnemyDrop RE_GOLD_SKULLTULA ED_BOOMERANG)
RC_BOTTOM_OF_THE_WELL_GS_EAST_INNER_ROOM (CanGetEnemyDrop RE_GOLD_SKULLTULA ED_BOOMERANG)
//Exits
RR_BOTTOM_OF_THE_WELL_BEHIND_FAKE_WALLS (SmallKeys SCENE_BOTTOM_OF_THE_WELL 3)
def RR_BOTTOM_OF_THE_WELL_COFFIN_ROOM SCENE_BOTTOM_OF_THE_WELL false RA_BOTTOM_OF_THE_WELL
Bottom of the Well Coffin Room
//Checks
RC_BOTTOM_OF_THE_WELL_FREESTANDING_KEY (or HasFireSourceWithTorch (CanUse RG_FAIRY_BOW))
RC_BOTTOM_OF_THE_WELL_COFFIN_ROOM_FRONT_LEFT_HEART true
RC_BOTTOM_OF_THE_WELL_COFFIN_ROOM_MIDDLE_RIGHT_HEART (or HasFireSourceWithTorch (CanUse RG_FAIRY_BOW))
//Exits
RR_BOTTOM_OF_THE_WELL_PERIMETER (or LoweredWaterInsideBotw (HasItem RG_BRONZE_SCALE))
def RR_BOTTOM_OF_THE_WELL_DEAD_HAND_ROOM SCENE_BOTTOM_OF_THE_WELL false RA_BOTTOM_OF_THE_WELL
Bottom of the Well Dead Hand Room
//Checks
RC_BOTTOM_OF_THE_WELL_LENS_OF_TRUTH_CHEST (CanKillEnemy RE_DEAD_HAND)
RC_BOTTOM_OF_THE_WELL_INVISIBLE_CHEST (or RT_LENS_BOTW (CanUse RG_LENS_OF_TRUTH))
//This assumes we spawned in dead hand's room, if whatever trick made this relevant instead puts us in the previous room, remove the kill Dead Hand check.
//Exits
RR_BOTTOM_OF_THE_WELL_PERIMETER (and IsChild (CanKillEnemy RE_DEAD_HAND))
def RR_BOTTOM_OF_THE_WELL_BASEMENT SCENE_BOTTOM_OF_THE_WELL false RA_BOTTOM_OF_THE_WELL
Bottom of the Well Basement
//Checks
RC_BOTTOM_OF_THE_WELL_MAP_CHEST BlastOrSmash
RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_1 CanBreakPots
RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_2 CanBreakPots
@ -116,6 +136,7 @@ RC_BOTTOM_OF_THE_WELL_BASEMENT_BEHIND_ROCKS_GRASS_6 (and CanCutShrubs BlastOrSma
RC_BOTTOM_OF_THE_WELL_BASEMENT_BEHIND_ROCKS_GRASS_7 (and CanCutShrubs BlastOrSmash)
RC_BOTTOM_OF_THE_WELL_BASEMENT_BEHIND_ROCKS_GRASS_8 (and CanCutShrubs BlastOrSmash)
RC_BOTTOM_OF_THE_WELL_BASEMENT_BEHIND_ROCKS_GRASS_9 (and CanCutShrubs BlastOrSmash)
//Exits
RR_BOTTOM_OF_THE_WELL_SOUTHWEST_ROOM (and IsChild (CanPassEnemy RE_BIG_SKULLTULA))
//It's possible to abuse boulder's limited range of collision detection to detonate the flowers through the boulder with bow, but this is a glitch
//the exact range is just past the furthest away plank in the green goo section
@ -124,30 +145,37 @@ RR_BOTTOM_OF_THE_WELL_BASEMENT_USEFUL_BOMB_FLOWERS (Here (or BlastOrSmash (or (C
def RR_BOTTOM_OF_THE_WELL_BASEMENT_USEFUL_BOMB_FLOWERS SCENE_BOTTOM_OF_THE_WELL false RA_BOTTOM_OF_THE_WELL
Bottom of the Well Basement Useful Bomb Flowers
//Assumes RR_BOTTOM_OF_THE_WELL_BASEMENT access
//Checks
RC_BOTTOM_OF_THE_WELL_MAP_CHEST (HasItem RG_GORONS_BRACELET)
//Exits
RR_BOTTOM_OF_THE_WELL_BASEMENT CanDetonateUprightBombFlower
def RR_BOTTOM_OF_THE_WELL_BASEMENT_PLATFORM SCENE_BOTTOM_OF_THE_WELL false RA_BOTTOM_OF_THE_WELL
Bottom of the Well Basement Platform
//Checks
RC_BOTTOM_OF_THE_WELL_BASEMENT_PLATFORM_LEFT_RUPEE true
RC_BOTTOM_OF_THE_WELL_BASEMENT_PLATFORM_BACK_LEFT_RUPEE true
RC_BOTTOM_OF_THE_WELL_BASEMENT_PLATFORM_MIDDLE_RUPEE true
RC_BOTTOM_OF_THE_WELL_BASEMENT_PLATFORM_BACK_RIGHT_RUPEE true
RC_BOTTOM_OF_THE_WELL_BASEMENT_PLATFORM_RIGHT_RUPEE true
//Exits
RR_BOTTOM_OF_THE_WELL_BASEMENT true
def RR_BOTTOM_OF_THE_WELL_MQ_PERIMETER SCENE_BOTTOM_OF_THE_WELL false RA_BOTTOM_OF_THE_WELL
Bottom of the Well MQ Perimeter
//technically obsolete due to a wonder item fairy which only needs a projectile, but we don't have an event var for it yet
//Events
FairyPot (and (Here BlastOrSmash) CanHitEyeTargets)
//It is possible to hit the water switch with a pot from RR_BOTTOM_OF_THE_WELL_MQ_MIDDLE, however the hitbox for making it activate is very unintuitive
//You have to throw the pot from further back to hit the switch from the front instead of the top, trying to hit the "fingers" directly
//This unintuitiveness means it should be a trick. ZL is needed to get a clear path to carry the pot
LoweredWaterInsideBotw (or CanJumpslash CanUseProjectile)
//Implies CanBreakPots()
//Checks
RC_BOTTOM_OF_THE_WELL_MQ_OUTER_LOBBY_POT (and (Here BlastOrSmash) CanHitEyeTargets)
RC_BOTTOM_OF_THE_WELL_MQ_BOMB_LEFT_HEART HasExplosives
RC_BOTTOM_OF_THE_WELL_MQ_BOMB_RIGHT_HEART HasExplosives
//Exits
RR_BOTTOM_OF_THE_WELL_ENTRYWAY IsChild
RR_BOTTOM_OF_THE_WELL_MQ_WEST_ROOM_SWITCH (and (Here BlastOrSmash) (CanPassEnemy RE_BIG_SKULLTULA))
RR_BOTTOM_OF_THE_WELL_MQ_COFFIN_ROOM (and (or LoweredWaterInsideBotw (HasItem RG_BRONZE_SCALE)) (SmallKeys SCENE_BOTTOM_OF_THE_WELL 2))
@ -158,25 +186,32 @@ RR_BOTTOM_OF_THE_WELL_MQ_BASEMENT true
def RR_BOTTOM_OF_THE_WELL_MQ_WEST_ROOM_SWITCH SCENE_BOTTOM_OF_THE_WELL false RA_BOTTOM_OF_THE_WELL
Bottom of the Well MQ West Room Switch
//Events
OpenedWestRoomMQBotw true
//Exits
RR_BOTTOM_OF_THE_WELL_MQ_PERIMETER (and BlastOrSmash (or (CanPassEnemy RE_BIG_SKULLTULA) RT_BOTW_MQ_PITS))
RR_BOTTOM_OF_THE_WELL_MQ_MIDDLE RT_BOTW_MQ_PITS
RR_BOTTOM_OF_THE_WELL_MQ_BASEMENT true
def RR_BOTTOM_OF_THE_WELL_MQ_COFFIN_ROOM SCENE_BOTTOM_OF_THE_WELL false RA_BOTTOM_OF_THE_WELL
Bottom of the Well MQ Coffin Room
//Checks
RC_BOTTOM_OF_THE_WELL_MQ_GS_COFFIN_ROOM (CanGetEnemyDrop RE_GOLD_SKULLTULA)
RC_BOTTOM_OF_THE_WELL_MQ_COFFIN_ROOM_FRONT_RIGHT_HEART (or HasFireSourceWithTorch (CanUse RG_FAIRY_BOW))
RC_BOTTOM_OF_THE_WELL_MQ_COFFIN_ROOM_MIDDLE_LEFT_HEART (or HasFireSourceWithTorch (CanUse RG_FAIRY_BOW))
//Exits
RR_BOTTOM_OF_THE_WELL_MQ_PERIMETER (and (or LoweredWaterInsideBotw (HasItem RG_BRONZE_SCALE)) (SmallKeys SCENE_BOTTOM_OF_THE_WELL 2))
def RR_BOTTOM_OF_THE_WELL_MQ_LOCKED_CAGE SCENE_BOTTOM_OF_THE_WELL false RA_BOTTOM_OF_THE_WELL
Bottom of the Well MQ Locked Cage
//Events
OpenedMiddleHoleMQBotw HasExplosives
//Exits
RR_BOTTOM_OF_THE_WELL_MQ_PERIMETER (and IsChild (SmallKeys SCENE_BOTTOM_OF_THE_WELL 2))
def RR_BOTTOM_OF_THE_WELL_MQ_DEAD_HAND_ROOM SCENE_BOTTOM_OF_THE_WELL false RA_BOTTOM_OF_THE_WELL
Bottom of the Well MQ Dead Hand Room
//Checks
RC_BOTTOM_OF_THE_WELL_MQ_COMPASS_CHEST (CanKillEnemy RE_DEAD_HAND)
RC_BOTTOM_OF_THE_WELL_MQ_DEAD_HAND_FREESTANDING_KEY (or HasExplosives (and RT_BOTW_MQ_DEADHAND_KEY (CanUse RG_BOOMERANG)))
RC_BOTTOM_OF_THE_WELL_MQ_DEAD_HAND_GRASS_1 CanCutShrubs
@ -184,10 +219,12 @@ RC_BOTTOM_OF_THE_WELL_MQ_DEAD_HAND_GRASS_2 CanCutShrubs
RC_BOTTOM_OF_THE_WELL_MQ_DEAD_HAND_GRASS_3 CanCutShrubs
RC_BOTTOM_OF_THE_WELL_MQ_DEAD_HAND_GRASS_4 CanCutShrubs
//This assumes we spawned in dead hand's room, if whatever trick made this relevant instead puts us in the previous room, remove the kill Dead Hand check.
//Exits
RR_BOTTOM_OF_THE_WELL_MQ_PERIMETER (and IsChild (CanKillEnemy RE_DEAD_HAND))
def RR_BOTTOM_OF_THE_WELL_MQ_MIDDLE SCENE_BOTTOM_OF_THE_WELL false RA_BOTTOM_OF_THE_WELL
Bottom of the Well MQ Middle
//Checks
RC_BOTTOM_OF_THE_WELL_MQ_MAP_CHEST true
//This location technically involves an invisible platform, but it's intended to do lensless in vanilla and is clearly signposted by pots.
RC_BOTTOM_OF_THE_WELL_MQ_EAST_INNER_ROOM_FREESTANDING_KEY true
@ -207,17 +244,20 @@ RC_BOTTOM_OF_THE_WELL_MQ_EAST_INNER_ROOM_POT_2 CanBreakPots
RC_BOTTOM_OF_THE_WELL_MQ_EAST_INNER_ROOM_POT_3 CanBreakPots
RC_BOTTOM_OF_THE_WELL_MQ_CELL_SUN_FAIRY (CanUse RG_SUNS_SONG)
//If a relevant trick causes you to be able to warp into here without going through PERIMETER, a new eventAccess will be needed for lowering the gates with ZL
//Exits
RR_BOTTOM_OF_THE_WELL_MQ_BASEMENT_SWITCH_PLATFORM OpenedMiddleHoleMQBotw
RR_BOTTOM_OF_THE_WELL_MQ_BASEMENT true
def RR_BOTTOM_OF_THE_WELL_MQ_BASEMENT SCENE_BOTTOM_OF_THE_WELL false RA_BOTTOM_OF_THE_WELL
Bottom of the Well MQ Basement
//behind invisible big skulltulas, but with navi spotting it's easy to avoid them, or at worst, tank your way through as they do not block the path
//Checks
RC_BOTTOM_OF_THE_WELL_MQ_GS_BASEMENT (CanGetEnemyDrop RE_GOLD_SKULLTULA)
RC_BOTTOM_OF_THE_WELL_MQ_BASEMENT_HALLWAY_FRONT_HEART true
RC_BOTTOM_OF_THE_WELL_MQ_BASEMENT_HALLWAY_LEFT_HEART true
RC_BOTTOM_OF_THE_WELL_MQ_BASEMENT_HALLWAY_RIGHT_HEART true
RC_BOTTOM_OF_THE_WELL_MQ_BASEMENT_SUN_FAIRY (CanUse RG_SUNS_SONG)
//Exits
RR_BOTTOM_OF_THE_WELL_MQ_PERIMETER true
def RR_BOTTOM_OF_THE_WELL_MQ_BASEMENT_SWITCH_PLATFORM SCENE_BOTTOM_OF_THE_WELL false RA_BOTTOM_OF_THE_WELL
@ -226,5 +266,7 @@ Bottom of the Well MQ Basement Switch Platform
//it is technically possible to get the chest before you get screamed at without rolling, but hard enough to be a trick if that is the requirement for something to be logical
//With some kind of movement tech it's much easier, easy enough to be default logic, as the redeads don't lock on immediately in addition to the extra speed
//leaving with no requirements for now but up for discussion.
//Checks
RC_BOTTOM_OF_THE_WELL_MQ_LENS_OF_TRUTH_CHEST true
//Exits
RR_BOTTOM_OF_THE_WELL_MQ_BASEMENT true

View file

@ -1,13 +1,16 @@
def RR_DEKU_TREE_ENTRYWAY SCENE_DEKU_TREE false RA_DEKU_TREE
Deku Tree Entryway
//Exits
RR_DEKU_TREE_LOBBY (IsDungeonVanilla DEKU_TREE)
RR_DEKU_TREE_MQ_1F (IsDungeonMQ DEKU_TREE)
RR_KF_OUTSIDE_DEKU_TREE true
def RR_DEKU_TREE_LOBBY SCENE_DEKU_TREE false RA_DEKU_TREE
Deku Tree Lobby
//Events
DekuBabaSticks CanGetDekuBabaSticks
DekuBabaNuts CanGetDekuBabaNuts
//Checks
RC_DEKU_TREE_MAP_CHEST true
RC_DEKU_TREE_LOBBY_LOWER_HEART true
RC_DEKU_TREE_LOBBY_UPPER_HEART (CanPassEnemy RE_BIG_SKULLTULA)
@ -16,6 +19,7 @@ RC_DEKU_TREE_LOBBY_GRASS_2 CanCutShrubs
RC_DEKU_TREE_LOBBY_GRASS_3 CanCutShrubs
RC_DEKU_TREE_LOBBY_GRASS_4 CanCutShrubs
RC_DEKU_TREE_LOBBY_GRASS_5 CanCutShrubs
//Exits
RR_DEKU_TREE_ENTRYWAY true
RR_DEKU_TREE_2F_MIDDLE_ROOM true
RR_DEKU_TREE_COMPASS_ROOM true
@ -25,40 +29,49 @@ RR_DEKU_TREE_BOSS_ENTRYWAY false
def RR_DEKU_TREE_2F_MIDDLE_ROOM SCENE_DEKU_TREE false RA_DEKU_TREE
Deku Tree 2F Middle Room
//Exits
RR_DEKU_TREE_LOBBY (Here (or CanReflectNuts (CanUse RG_MEGATON_HAMMER)))
RR_DEKU_TREE_SLINGSHOT_ROOM (Here (or CanReflectNuts (CanUse RG_MEGATON_HAMMER)))
def RR_DEKU_TREE_SLINGSHOT_ROOM SCENE_DEKU_TREE false RA_DEKU_TREE
Deku Tree Slingshot Room
//Checks
RC_DEKU_TREE_SLINGSHOT_CHEST true
RC_DEKU_TREE_SLINGSHOT_ROOM_SIDE_CHEST true
RC_DEKU_TREE_SLINGSHOT_GRASS_1 (and CanCutShrubs CanReflectNuts)
RC_DEKU_TREE_SLINGSHOT_GRASS_2 (and CanCutShrubs CanReflectNuts)
RC_DEKU_TREE_SLINGSHOT_GRASS_3 (and CanCutShrubs CanReflectNuts)
RC_DEKU_TREE_SLINGSHOT_GRASS_4 (and CanCutShrubs CanReflectNuts)
//Exits
RR_DEKU_TREE_2F_MIDDLE_ROOM (or (CanUse RG_FAIRY_SLINGSHOT) (CanUse RG_HOVER_BOOTS))
def RR_DEKU_TREE_COMPASS_ROOM SCENE_DEKU_TREE false RA_DEKU_TREE
Deku Tree Compass Room
//Events
DekuBabaSticks CanGetDekuBabaSticks
DekuBabaNuts CanGetDekuBabaNuts
//Checks
RC_DEKU_TREE_COMPASS_CHEST true
RC_DEKU_TREE_COMPASS_ROOM_SIDE_CHEST true
RC_DEKU_TREE_GS_COMPASS_ROOM CanAttack
RC_DEKU_TREE_COMPASS_GRASS_1 CanCutShrubs
RC_DEKU_TREE_COMPASS_GRASS_2 CanCutShrubs
//Exits
RR_DEKU_TREE_LOBBY (or HasFireSourceWithTorch (CanUse RG_FAIRY_BOW))
RR_DEKU_TREE_BOSS_ENTRYWAY false
def RR_DEKU_TREE_BASEMENT_LOWER SCENE_DEKU_TREE false RA_DEKU_TREE
Deku Tree Basement Lower
//Events
DekuBabaSticks CanGetDekuBabaSticks
DekuBabaNuts CanGetDekuBabaNuts
//Checks
RC_DEKU_TREE_BASEMENT_CHEST true
RC_DEKU_TREE_GS_BASEMENT_GATE (CanKillEnemy RE_GOLD_SKULLTULA ED_SHORT_JUMPSLASH)
RC_DEKU_TREE_GS_BASEMENT_VINES (CanKillEnemy RE_GOLD_SKULLTULA (if RT_DEKU_MQ_COMPASS_GS ED_SHORT_JUMPSLASH ED_BOMB_THROW))
RC_DEKU_TREE_BASEMENT_GRASS_1 CanCutShrubs
RC_DEKU_TREE_BASEMENT_GRASS_2 CanCutShrubs
//Exits
RR_DEKU_TREE_LOBBY true
RR_DEKU_TREE_BASEMENT_SCRUB_ROOM (Here (or HasFireSourceWithTorch (CanUse RG_FAIRY_BOW)))
//Only adult can get the token without assistance
@ -68,77 +81,97 @@ RR_DEKU_TREE_OUTSIDE_BOSS_ROOM false
def RR_DEKU_TREE_BASEMENT_SCRUB_ROOM SCENE_DEKU_TREE false RA_DEKU_TREE
Deku Tree Basement Scrub Room
//Checks
RC_DEKU_TREE_BASEMENT_SCRUB_ROOM_GRASS_1 CanCutShrubs
RC_DEKU_TREE_BASEMENT_SCRUB_ROOM_GRASS_2 CanCutShrubs
RC_DEKU_TREE_BASEMENT_SCRUB_ROOM_GRASS_3 CanCutShrubs
RC_DEKU_TREE_BASEMENT_SCRUB_ROOM_GRASS_4 CanCutShrubs
//Exits
RR_DEKU_TREE_BASEMENT_LOWER true
RR_DEKU_TREE_BASEMENT_WATER_ROOM_FRONT (Here CanHitEyeTargets)
def RR_DEKU_TREE_BASEMENT_WATER_ROOM_FRONT SCENE_DEKU_TREE false RA_DEKU_TREE
Deku Tree Basement Water Room Front
//Exits
RR_DEKU_TREE_BASEMENT_SCRUB_ROOM true
RR_DEKU_TREE_BASEMENT_WATER_ROOM_BACK (or (HasItem RG_BRONZE_SCALE) RT_DEKU_B1_BACKFLIP_OVER_SPIKED_LOG)
def RR_DEKU_TREE_BASEMENT_WATER_ROOM_BACK SCENE_DEKU_TREE false RA_DEKU_TREE
Deku Tree Basement Water Room Back
//Checks
RC_DEKU_TREE_BASEMENT_SPIKE_ROLLER_GRASS_1 CanCutShrubs
RC_DEKU_TREE_BASEMENT_SPIKE_ROLLER_GRASS_2 CanCutShrubs
//Exits
RR_DEKU_TREE_BASEMENT_WATER_ROOM_FRONT (or (HasItem RG_BRONZE_SCALE) RT_DEKU_B1_BACKFLIP_OVER_SPIKED_LOG)
RR_DEKU_TREE_BASEMENT_TORCH_ROOM true
def RR_DEKU_TREE_BASEMENT_TORCH_ROOM SCENE_DEKU_TREE false RA_DEKU_TREE
Deku Tree Basement Torch Room
//Events
DekuBabaSticks CanGetDekuBabaSticks
DekuBabaNuts CanGetDekuBabaNuts
//Checks
RC_DEKU_TREE_BASEMENT_TORCHES_GRASS_1 CanCutShrubs
RC_DEKU_TREE_BASEMENT_TORCHES_GRASS_2 CanCutShrubs
//Exits
RR_DEKU_TREE_BASEMENT_WATER_ROOM_BACK true
RR_DEKU_TREE_BASEMENT_BACK_LOBBY (Here (or HasFireSourceWithTorch (CanUse RG_FAIRY_BOW)))
def RR_DEKU_TREE_BASEMENT_BACK_LOBBY SCENE_DEKU_TREE false RA_DEKU_TREE
Deku Tree Basement Back Lobby
//Events
DekuBabaSticks CanGetDekuBabaSticks
DekuBabaNuts CanGetDekuBabaNuts
//Checks
RC_DEKU_TREE_BASEMENT_LARVAE_GRASS_1 CanCutShrubs
RC_DEKU_TREE_BASEMENT_LARVAE_GRASS_2 CanCutShrubs
//Exits
RR_DEKU_TREE_BASEMENT_TORCH_ROOM true
RR_DEKU_TREE_BASEMENT_BACK_ROOM (and (Here (or HasFireSourceWithTorch (CanUse RG_FAIRY_BOW))) (Here BlastOrSmash))
RR_DEKU_TREE_BASEMENT_UPPER (and (Here (or HasFireSourceWithTorch (CanUse RG_FAIRY_BOW))) IsChild)
def RR_DEKU_TREE_BASEMENT_BACK_ROOM SCENE_DEKU_TREE false RA_DEKU_TREE
Deku Tree Basement Back Room
//Checks
RC_DEKU_TREE_GS_BASEMENT_BACK_ROOM HookshotOrBoomerang
//Exits
RR_DEKU_TREE_BASEMENT_BACK_LOBBY true
def RR_DEKU_TREE_BASEMENT_UPPER SCENE_DEKU_TREE false RA_DEKU_TREE
Deku Tree Basement Upper
//Events
DekuBabaSticks CanGetDekuBabaSticks
DekuBabaNuts CanGetDekuBabaNuts
//Exits
RR_DEKU_TREE_BASEMENT_LOWER true
RR_DEKU_TREE_BASEMENT_BACK_LOBBY IsChild
RR_DEKU_TREE_OUTSIDE_BOSS_ROOM (Here (or HasFireSourceWithTorch (and RT_DEKU_B1_BOW_WEBS (and IsAdult (CanUse RG_FAIRY_BOW)))))
def RR_DEKU_TREE_OUTSIDE_BOSS_ROOM SCENE_DEKU_TREE false RA_DEKU_TREE
Deku Tree Outside Boss Room
//Checks
RC_DEKU_TREE_BEFORE_BOSS_LEFT_HEART (or (HasItem RG_BRONZE_SCALE) (or (CanUse RG_IRON_BOOTS) (CanUse RG_BOOMERANG)))
RC_DEKU_TREE_BEFORE_BOSS_MIDDLE_HEART (or (HasItem RG_BRONZE_SCALE) (or (CanUse RG_IRON_BOOTS) (CanUse RG_BOOMERANG)))
RC_DEKU_TREE_BEFORE_BOSS_RIGHT_HEART (or (HasItem RG_BRONZE_SCALE) (or (CanUse RG_IRON_BOOTS) (CanUse RG_BOOMERANG)))
RC_DEKU_TREE_BEFORE_BOSS_GRASS_1 (and CanCutShrubs HasFireSourceWithTorch)
RC_DEKU_TREE_BEFORE_BOSS_GRASS_2 (and CanCutShrubs HasFireSourceWithTorch)
RC_DEKU_TREE_BEFORE_BOSS_GRASS_3 (and CanCutShrubs HasFireSourceWithTorch)
//Exits
RR_DEKU_TREE_BASEMENT_UPPER true
RR_DEKU_TREE_BOSS_ENTRYWAY (and (or (HasItem RG_BRONZE_SCALE) (Here (CanUse RG_IRON_BOOTS))) (Here CanReflectNuts))
def RR_DEKU_TREE_MQ_1F SCENE_DEKU_TREE false RA_DEKU_TREE
Deku Tree MQ 1F
//Events
DekuBabaSticks (CanKillEnemy RE_WITHERED_DEKU_BABA)
BrokeDeku1FWeb HasFireSource
//Checks
RC_DEKU_TREE_MQ_LOBBY_GRASS_1 CanCutShrubs
RC_DEKU_TREE_MQ_LOBBY_GRASS_2 CanCutShrubs
RC_DEKU_TREE_MQ_LOBBY_GRASS_3 CanCutShrubs
RC_DEKU_TREE_MQ_LOBBY_GRASS_4 CanCutShrubs
RC_DEKU_TREE_MQ_LOBBY_GRASS_5 CanCutShrubs
//Exits
RR_DEKU_TREE_ENTRYWAY true
//may need canAvoid logic with enemy shuffle
RR_DEKU_TREE_MQ_2F true
@ -150,12 +183,14 @@ RR_DEKU_TREE_MQ_BASEMENT BrokeDeku1FWeb
def RR_DEKU_TREE_MQ_2F SCENE_DEKU_TREE false RA_DEKU_TREE
Deku Tree MQ 2F
//Checks
RC_DEKU_TREE_MQ_MAP_CHEST true
RC_DEKU_TREE_MQ_GS_LOBBY (CanGetEnemyDrop RE_GOLD_SKULLTULA)
RC_DEKU_TREE_MQ_LOBBY_HEART true
RC_DEKU_TREE_MQ_LOBBY_GRASS_6 CanCutShrubs
RC_DEKU_TREE_MQ_LOBBY_GRASS_7 CanCutShrubs
RC_DEKU_TREE_MQ_LOBBY_CRATE CanBreakCrates
//Exits
RR_DEKU_TREE_MQ_1F true
//Will need canAvoid logic with enemy shuffle
RR_DEKU_TREE_MQ_3F true
@ -163,10 +198,12 @@ RR_DEKU_TREE_MQ_EYE_TARGET_ROOM (Here HasFireSource)
def RR_DEKU_TREE_MQ_3F SCENE_DEKU_TREE false RA_DEKU_TREE
Deku Tree MQ 3F
//Events
DekuBabaSticks CanGetDekuBabaSticks
DekuBabaNuts CanGetDekuBabaNuts
BrokeDeku1FWeb true
//Implies CanKillEnemy(RE_GOHMA_LARVA)
//Checks
RC_DEKU_TREE_MQ_SLINGSHOT_CHEST (CanKillEnemy RE_DEKU_BABA)
RC_DEKU_TREE_MQ_SLINGSHOT_ROOM_BACK_CHEST (or HasFireSourceWithTorch (and IsAdult (CanUse RG_FAIRY_BOW)))
RC_DEKU_TREE_MQ_SLINGSHOT_ROOM_HEART true
@ -177,12 +214,14 @@ RC_DEKU_TREE_MQ_SLINGSHOT_GRASS_4 CanCutShrubs
RC_DEKU_TREE_MQ_SLINGSHOT_ROOM_CRATE_1 CanBreakCrates
RC_DEKU_TREE_MQ_SLINGSHOT_ROOM_CRATE_2 CanBreakCrates
//Assumes RR_DEKU_TREE_MQ_2F access
//Exits
RR_DEKU_TREE_MQ_2F true
RR_DEKU_TREE_MQ_EYE_TARGET_ROOM (Here (or (CanUse RG_STICKS) (CanUse RG_FAIRY_BOW)))
RR_DEKU_TREE_MQ_BASEMENT true
def RR_DEKU_TREE_MQ_EYE_TARGET_ROOM SCENE_DEKU_TREE false RA_DEKU_TREE
Deku Tree MQ Eye Target Room
//Checks
RC_DEKU_TREE_MQ_DEKU_BABA_HEART true
RC_DEKU_TREE_MQ_BEFORE_COMPASS_GRASS_1 CanCutShrubs
RC_DEKU_TREE_MQ_BEFORE_COMPASS_GRASS_2 CanCutShrubs
@ -191,34 +230,42 @@ RC_DEKU_TREE_MQ_BEFORE_COMPASS_GRASS_4 CanCutShrubs
RC_DEKU_TREE_MQ_BEFORE_COMPASS_GRASS_5 CanCutShrubs
RC_DEKU_TREE_MQ_BEFORE_COMPASS_GRASS_6 CanCutShrubs
RC_DEKU_TREE_MQ_BEFORE_COMPASS_GRASS_7 CanCutShrubs
//Exits
RR_DEKU_TREE_MQ_COMPASS_ROOM (Here CanHitEyeTargets)
RR_DEKU_TREE_MQ_2F true
def RR_DEKU_TREE_MQ_COMPASS_ROOM SCENE_DEKU_TREE false RA_DEKU_TREE
Deku Tree MQ Compass Room
//Checks
RC_DEKU_TREE_MQ_COMPASS_CHEST true
RC_DEKU_TREE_MQ_COMPASS_GRASS_1 CanCutShrubs
RC_DEKU_TREE_MQ_COMPASS_GRASS_2 CanCutShrubs
RC_DEKU_TREE_MQ_COMPASS_GRASS_3 CanCutShrubs
RC_DEKU_TREE_MQ_COMPASS_GRASS_4 CanCutShrubs
//Exits
RR_DEKU_TREE_MQ_EYE_TARGET_ROOM (or (CanUse RG_FAIRY_SLINGSHOT) (CanUse RG_HOVER_BOOTS))
RR_DEKU_TREE_MQ_PAST_BOULDER_VINES (Here (or (CanUse RG_BOMBCHU_5) (or (and (CanUse RG_BOMB_BAG) (or (CanUse RG_SONG_OF_TIME) (or IsAdult (CanUse RG_HOVER_BOOTS)))) (and (CanUse RG_MEGATON_HAMMER) (or (CanUse RG_SONG_OF_TIME) RT_DEKU_MQ_COMPASS_GS)))))
def RR_DEKU_TREE_MQ_PAST_BOULDER_VINES SCENE_DEKU_TREE false RA_DEKU_TREE
Deku Tree MQ Past Boulder Vines
//Checks
RC_DEKU_TREE_MQ_GS_PAST_BOULDER_VINES (CanGetEnemyDrop RE_GOLD_SKULLTULA ED_BOOMERANG)
RC_DEKU_TREE_MQ_COMPASS_ROOM_HEART true
//Exits
RR_DEKU_TREE_MQ_COMPASS_ROOM BlastOrSmash
def RR_DEKU_TREE_MQ_BASEMENT SCENE_DEKU_TREE false RA_DEKU_TREE
Deku Tree MQ Basement
//Events
DekuBabaSticks CanGetDekuBabaSticks
DekuBabaNuts CanGetDekuBabaNuts
//Checks
RC_DEKU_TREE_MQ_BASEMENT_CHEST (or HasFireSourceWithTorch (CanUse RG_FAIRY_BOW))
RC_DEKU_TREE_MQ_BASEMENT_LOWER_GRASS_1 CanCutShrubs
RC_DEKU_TREE_MQ_BASEMENT_LOWER_GRASS_2 CanCutShrubs
RC_DEKU_TREE_MQ_BASEMENT_LOWER_GRASS_3 CanCutShrubs
RC_DEKU_TREE_MQ_BASEMENT_LOWER_GRASS_4 CanCutShrubs
//Exits
RR_DEKU_TREE_MQ_1F true
RR_DEKU_TREE_MQ_BASEMENT_SOUTHEAST_ROOM (Here CanHitEyeTargets)
//includes RR_DEKU_TREE_MQ_BASEMENT_SOUTHEAST_ROOM Access, other fire sources clear directly from there
@ -228,54 +275,68 @@ RR_DEKU_TREE_MQ_BASEMENT_LEDGE (or RT_DEKU_B1_SKIP (or PushedDekuBasementBlock (
def RR_DEKU_TREE_MQ_BASEMENT_SOUTHEAST_ROOM SCENE_DEKU_TREE false RA_DEKU_TREE
Deku Tree MQ Southeast Room
//Implies CanKillEnemy(RE_GOHMA_LARVA)
//Events
ClearedMQDekuSERoom (CanKillEnemy RE_MAD_SCRUB)
//Checks
RC_DEKU_TREE_MQ_BASEMENT_TORCHES_GRASS_1 CanCutShrubs
RC_DEKU_TREE_MQ_BASEMENT_TORCHES_GRASS_2 CanCutShrubs
RC_DEKU_TREE_MQ_BASEMENT_TORCHES_GRASS_3 CanCutShrubs
RC_DEKU_TREE_MQ_BASEMENT_TORCHES_GRASS_4 CanCutShrubs
//Exits
RR_DEKU_TREE_MQ_BASEMENT_WATER_ROOM_FRONT HasFireSource
RR_DEKU_TREE_MQ_BASEMENT ClearedMQDekuSERoom
def RR_DEKU_TREE_MQ_BASEMENT_WATER_ROOM_FRONT SCENE_DEKU_TREE false RA_DEKU_TREE
Deku Tree MQ Basement Water Room Front
//It's possible to get this with bow if you have move while in first person and one-point skips on, noticeably harder and jankier as child, but that's a trick
//Events
MQDekuWaterRoomTorches (or (CanUse RG_FIRE_ARROWS) (and (CanUse RG_STICKS) (or RT_DEKU_MQ_LOG (and IsChild CanShield))))
//Checks
RC_DEKU_TREE_MQ_BEFORE_SPINNING_LOG_CHEST true
RC_DEKU_TREE_MQ_BASEMENT_SPIKE_ROLLER_FRONT_GRASS_1 CanCutShrubs
RC_DEKU_TREE_MQ_BASEMENT_SPIKE_ROLLER_FRONT_GRASS_2 CanCutShrubs
RC_DEKU_TREE_MQ_BASEMENT_SPIKE_ROLLER_FRONT_GRASS_3 CanCutShrubs
//Exits
RR_DEKU_TREE_MQ_BASEMENT_WATER_ROOM_BACK (or RT_DEKU_MQ_LOG (or (and IsChild CanShield) (or (CanUse RG_LONGSHOT) (and (CanUse RG_HOOKSHOT) (CanUse RG_IRON_BOOTS)))))
RR_DEKU_TREE_MQ_BASEMENT_SOUTHEAST_ROOM true
def RR_DEKU_TREE_MQ_BASEMENT_WATER_ROOM_BACK SCENE_DEKU_TREE false RA_DEKU_TREE
Deku Tree MQ Basement Water Room Back
//Events
DekuBabaSticks (CanKillEnemy RE_WITHERED_DEKU_BABA)
MQDekuWaterRoomTorches HasFireSource
//it blocks the chest while stunned unless you stun it from afar while it's slightly off the ground
//Checks
RC_DEKU_TREE_MQ_AFTER_SPINNING_LOG_CHEST (and (CanUse RG_SONG_OF_TIME) (CanPassEnemy RE_BIG_SKULLTULA))
RC_DEKU_TREE_MQ_BASEMENT_SPIKE_ROLLER_BACK_GRASS_1 CanCutShrubs
RC_DEKU_TREE_MQ_BASEMENT_SPIKE_ROLLER_BACK_GRASS_2 CanCutShrubs
//Exits
RR_DEKU_TREE_MQ_BASEMENT_SOUTHWEST_ROOM (and MQDekuWaterRoomTorches (CanPassEnemy RE_BIG_SKULLTULA (if (CanUse RG_SONG_OF_TIME) ED_CLOSE ED_SHORT_JUMPSLASH)))
RR_DEKU_TREE_MQ_BASEMENT_WATER_ROOM_FRONT (or RT_DEKU_MQ_LOG (or (and IsChild CanShield) (or (CanUse RG_LONGSHOT) (or (HasItem RG_BRONZE_SCALE) (and (CanUse RG_IRON_BOOTS) (or IsAdult (CanUse RG_HOOKSHOT)))))))
def RR_DEKU_TREE_MQ_BASEMENT_SOUTHWEST_ROOM SCENE_DEKU_TREE false RA_DEKU_TREE
Deku Tree MQ Basement Southwest Room
//Checks
RC_DEKU_TREE_MQ_BASEMENT_LARVAE_GRASS_1 CanCutShrubs
RC_DEKU_TREE_MQ_BASEMENT_LARVAE_GRASS_2 CanCutShrubs
//both imply CanKillEnemy(RE_GOHMA_LARVA)
//Exits
RR_DEKU_TREE_MQ_BASEMENT_GRAVE_ROOM (Here (and (CanKillEnemy RE_MAD_SCRUB) (CanKillEnemy RE_KEESE)))
RR_DEKU_TREE_MQ_BASEMENT_WATER_ROOM_BACK (Here (and (CanKillEnemy RE_MAD_SCRUB) (CanKillEnemy RE_KEESE)))
def RR_DEKU_TREE_MQ_BASEMENT_GRAVE_ROOM SCENE_DEKU_TREE false RA_DEKU_TREE
Deku Tree MQ Basement Grave Room
//Events
DekuBabaSticks CanGetDekuBabaSticks
DekuBabaNuts CanGetDekuBabaNuts
//Checks
RC_DEKU_TREE_MQ_GS_BASEMENT_GRAVES_ROOM (or (CanUse RG_LONGSHOT) (and (CanUse RG_SONG_OF_TIME) (CanGetEnemyDrop RE_GOLD_SKULLTULA ED_BOOMERANG)))
RC_DEKU_TREE_MQ_BASEMENT_GRAVES_GRASS_1 CanCutShrubs
RC_DEKU_TREE_MQ_BASEMENT_GRAVES_GRASS_2 CanCutShrubs
RC_DEKU_TREE_MQ_BASEMENT_GRAVES_GRASS_3 CanCutShrubs
RC_DEKU_TREE_MQ_BASEMENT_GRAVES_GRASS_4 CanCutShrubs
RC_DEKU_TREE_MQ_BASEMENT_GRAVES_GRASS_5 CanCutShrubs
//Exits
RR_DEKU_TREE_MQ_BASEMENT_LEDGE (and IsChild (Here (or HasFireSourceWithTorch (CanUse RG_FAIRY_BOW))))
RR_DEKU_TREE_MQ_BASEMENT_SOUTHWEST_ROOM true
//Using a bow to get past here as adult is a bit precise on standing position but simple, doing as as child requires a side-hop with the bow out to shoot through the torch and may be trick worthy
@ -283,19 +344,24 @@ RR_DEKU_TREE_MQ_BASEMENT_BACK_ROOM (Here (or HasFireSourceWithTorch (CanUse RG_F
def RR_DEKU_TREE_MQ_BASEMENT_BACK_ROOM SCENE_DEKU_TREE false RA_DEKU_TREE
Deku Tree MQ Basement Back Room
//Checks
RC_DEKU_TREE_MQ_GS_BASEMENT_BACK_ROOM (CanGetEnemyDrop RE_GOLD_SKULLTULA ED_BOOMERANG)
RC_DEKU_TREE_MQ_BASEMENT_BACK_GRASS_1 CanCutShrubs
RC_DEKU_TREE_MQ_BASEMENT_BACK_GRASS_2 CanCutShrubs
RC_DEKU_TREE_MQ_BASEMENT_BACK_GRASS_3 CanCutShrubs
//Exits
RR_DEKU_TREE_MQ_BASEMENT_GRAVE_ROOM true
def RR_DEKU_TREE_MQ_BASEMENT_LEDGE SCENE_DEKU_TREE false RA_DEKU_TREE
Deku Tree MQ Basement Ledge
//Events
PushedDekuBasementBlock true
//Checks
RC_DEKU_TREE_MQ_DEKU_SCRUB CanStunDeku
RC_DEKU_TREE_MQ_BASEMENT_UPPER_GRASS_1 CanCutShrubs
RC_DEKU_TREE_MQ_BASEMENT_UPPER_GRASS_2 CanCutShrubs
RC_DEKU_TREE_MQ_BASEMENT_UPPER_GRASS_3 CanCutShrubs
//Exits
RR_DEKU_TREE_MQ_BASEMENT_GRAVE_ROOM IsChild
RR_DEKU_TREE_MQ_BASEMENT true
//If strength 0 is shuffled, add hovers or block push to the stick check
@ -304,27 +370,33 @@ RR_DEKU_TREE_MQ_OUTSIDE_BOSS_ROOM (and (Here (or HasFireSource (CanUse RG_STICKS
def RR_DEKU_TREE_MQ_OUTSIDE_BOSS_ROOM SCENE_DEKU_TREE false RA_DEKU_TREE
Deku Tree MQ Outside Boss Room
//Checks
RC_DEKU_TREE_MQ_BEFORE_BOSS_LEFT_HEART (or (HasItem RG_BRONZE_SCALE) (or (CanUse RG_IRON_BOOTS) (CanUse RG_BOOMERANG)))
RC_DEKU_TREE_MQ_BEFORE_BOSS_MIDDLE_HEART (or (HasItem RG_BRONZE_SCALE) (or (CanUse RG_IRON_BOOTS) (CanUse RG_BOOMERANG)))
RC_DEKU_TREE_MQ_BEFORE_BOSS_RIGHT_HEART (or (HasItem RG_BRONZE_SCALE) (or (CanUse RG_IRON_BOOTS) (CanUse RG_BOOMERANG)))
RC_DEKU_TREE_MQ_BEFORE_BOSS_GRASS_1 CanCutShrubs
RC_DEKU_TREE_MQ_BEFORE_BOSS_GRASS_2 CanCutShrubs
RC_DEKU_TREE_MQ_BEFORE_BOSS_GRASS_3 CanCutShrubs
//Exits
RR_DEKU_TREE_MQ_BASEMENT_LEDGE (or (HasItem RG_BRONZE_SCALE) (CanUse RG_HOOKSHOT))
RR_DEKU_TREE_BOSS_ENTRYWAY (Here CanReflectNuts)
def RR_DEKU_TREE_BOSS_ENTRYWAY SCENE_DEKU_TREE false RA_DEKU_TREE
Deku Tree Boss Entryway
//Exits
RR_DEKU_TREE_BOSS_ROOM true
def RR_DEKU_TREE_BOSS_EXIT SCENE_DEKU_TREE false RA_DEKU_TREE
Deku Tree Boss Exit
//Exits
RR_DEKU_TREE_OUTSIDE_BOSS_ROOM (IsDungeonVanilla DEKU_TREE)
RR_DEKU_TREE_MQ_OUTSIDE_BOSS_ROOM (IsDungeonMQ DEKU_TREE)
def RR_DEKU_TREE_BOSS_ROOM SCENE_DEKU_TREE_BOSS false
Deku Tree Boss Room
//Events
DekuTreeClear (CanKillEnemy RE_GOHMA)
//Checks
RC_QUEEN_GOHMA DekuTreeClear
RC_DEKU_TREE_QUEEN_GOHMA_HEART DekuTreeClear
RC_DEKU_TREE_QUEEN_GOHMA_GRASS_1 CanCutShrubs
@ -335,5 +407,6 @@ RC_DEKU_TREE_QUEEN_GOHMA_GRASS_5 CanCutShrubs
RC_DEKU_TREE_QUEEN_GOHMA_GRASS_6 CanCutShrubs
RC_DEKU_TREE_QUEEN_GOHMA_GRASS_7 CanCutShrubs
RC_DEKU_TREE_QUEEN_GOHMA_GRASS_8 CanCutShrubs
//Exits
RR_DEKU_TREE_BOSS_EXIT true
RR_KF_OUTSIDE_DEKU_TREE @deprioritize DekuTreeClear

View file

@ -1,22 +1,27 @@
def RR_DODONGOS_CAVERN_ENTRYWAY SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern Entryway
//Exits
RR_DODONGOS_CAVERN_BEGINNING (IsDungeonVanilla DODONGOS_CAVERN)
RR_DODONGOS_CAVERN_MQ_BEGINNING (IsDungeonMQ DODONGOS_CAVERN)
RR_DEATH_MOUNTAIN_TRAIL true
def RR_DODONGOS_CAVERN_BEGINNING SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern Beginning
//Exits
RR_DODONGOS_CAVERN_ENTRYWAY true
RR_DODONGOS_CAVERN_LOBBY (Here (or CanBreakMudWalls (HasItem RG_GORONS_BRACELET)))
def RR_DODONGOS_CAVERN_LOBBY SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern Lobby
//Events
GossipStoneFairy (and (or (Here CanBreakMudWalls) (HasItem RG_GORONS_BRACELET)) CallGossipFairy)
//Checks
RC_DODONGOS_CAVERN_MAP_CHEST (Here (or CanBreakMudWalls (HasItem RG_GORONS_BRACELET)))
RC_DODONGOS_CAVERN_DEKU_SCRUB_LOBBY (or CanStunDeku (HasItem RG_GORONS_BRACELET))
RC_DODONGOS_CAVERN_GOSSIP_STONE_FAIRY (and (Here (or CanBreakMudWalls (HasItem RG_GORONS_BRACELET))) CallGossipFairy)
RC_DODONGOS_CAVERN_GOSSIP_STONE_FAIRY_BIG (and (Here (or CanBreakMudWalls (HasItem RG_GORONS_BRACELET))) (CanUse RG_SONG_OF_STORMS))
RC_DODONGOS_CAVERN_GOSSIP_STONE (Here (or CanBreakMudWalls (HasItem RG_GORONS_BRACELET)))
//Exits
RR_DODONGOS_CAVERN_BEGINNING true
RR_DODONGOS_CAVERN_LOBBY_SWITCH IsAdult
RR_DODONGOS_CAVERN_SE_CORRIDOR (Here (or CanBreakMudWalls (HasItem RG_GORONS_BRACELET)))
@ -27,11 +32,13 @@ RR_DODONGOS_CAVERN_BOSS_ENTRYWAY false
def RR_DODONGOS_CAVERN_LOBBY_SWITCH SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern Lobby Switch
//Exits
RR_DODONGOS_CAVERN_LOBBY true
RR_DODONGOS_CAVERN_DODONGO_ROOM true
def RR_DODONGOS_CAVERN_SE_CORRIDOR SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern SE Corridor
//Checks
RC_DODONGOS_CAVERN_GS_SCARECROW (or (CanUse RG_SCARECROW) (or (and IsAdult (CanUse RG_LONGSHOT)) (and RT_DC_SCARECROW_GS CanAttack)))
RC_DODONGOS_CAVERN_SIDE_ROOM_POT_1 CanBreakPots
RC_DODONGOS_CAVERN_SIDE_ROOM_POT_2 CanBreakPots
@ -39,6 +46,7 @@ RC_DODONGOS_CAVERN_SIDE_ROOM_POT_3 CanBreakPots
RC_DODONGOS_CAVERN_SIDE_ROOM_POT_4 CanBreakPots
RC_DODONGOS_CAVERN_SIDE_ROOM_POT_5 CanBreakPots
RC_DODONGOS_CAVERN_SIDE_ROOM_POT_6 CanBreakPots
//Exits
RR_DODONGOS_CAVERN_LOBBY true
RR_DODONGOS_CAVERN_SE_ROOM (Here (or CanBreakMudWalls (or CanAttack (and TakeDamage CanShield))))
RR_DODONGOS_CAVERN_NEAR_LOWER_LIZALFOS true
@ -46,72 +54,89 @@ RR_DODONGOS_CAVERN_NEAR_LOWER_LIZALFOS true
//Shield seems to be in logic to drop a pot on their head as they hit you to blow up the wall
def RR_DODONGOS_CAVERN_SE_ROOM SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern SE Room
//Checks
RC_DODONGOS_CAVERN_GS_SIDE_ROOM_NEAR_LOWER_LIZALFOS CanAttack
//Exits
RR_DODONGOS_CAVERN_SE_CORRIDOR true
def RR_DODONGOS_CAVERN_NEAR_LOWER_LIZALFOS SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern Near Lower Lizalfos
//Exits
RR_DODONGOS_CAVERN_SE_CORRIDOR true
RR_DODONGOS_CAVERN_LOWER_LIZALFOS true
def RR_DODONGOS_CAVERN_LOWER_LIZALFOS SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern Lower Lizalfos
//Checks
RC_DODONGOS_CAVERN_LIZALFOS_POT_1 CanBreakPots
RC_DODONGOS_CAVERN_LIZALFOS_POT_2 CanBreakPots
RC_DODONGOS_CAVERN_LIZALFOS_POT_3 CanBreakPots
RC_DODONGOS_CAVERN_LIZALFOS_POT_4 CanBreakPots
RC_DODONGOS_CAVERN_LOWER_LIZALFOS_HEART true
//Exits
RR_DODONGOS_CAVERN_NEAR_LOWER_LIZALFOS (Here (CanKillEnemy RE_LIZALFOS ED_CLOSE true 2))
RR_DODONGOS_CAVERN_DODONGO_ROOM (Here (CanKillEnemy RE_LIZALFOS ED_CLOSE true 2))
def RR_DODONGOS_CAVERN_DODONGO_ROOM SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern Dodongo Room
//Checks
RC_DODONGOS_CAVERN_TORCH_ROOM_POT_1 CanBreakPots
RC_DODONGOS_CAVERN_TORCH_ROOM_POT_2 CanBreakPots
RC_DODONGOS_CAVERN_TORCH_ROOM_POT_3 CanBreakPots
RC_DODONGOS_CAVERN_TORCH_ROOM_POT_4 CanBreakPots
//Exits
RR_DODONGOS_CAVERN_LOBBY_SWITCH HasFireSourceWithTorch
RR_DODONGOS_CAVERN_LOWER_LIZALFOS true
RR_DODONGOS_CAVERN_NEAR_DODONGO_ROOM (Here (or CanBreakMudWalls (HasItem RG_GORONS_BRACELET)))
def RR_DODONGOS_CAVERN_NEAR_DODONGO_ROOM SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern Near Dodongo Room
//Checks
RC_DODONGOS_CAVERN_DEKU_SCRUB_SIDE_ROOM_NEAR_DODONGOS CanStunDeku
//Exits
RR_DODONGOS_CAVERN_DODONGO_ROOM true
def RR_DODONGOS_CAVERN_STAIRS_LOWER SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern Stairs Lower
//Exits
RR_DODONGOS_CAVERN_LOBBY true
RR_DODONGOS_CAVERN_STAIRS_UPPER (or HasExplosives (or (HasItem RG_GORONS_BRACELET) (or (CanUse RG_DINS_FIRE) (and RT_DC_STAIRS_WITH_BOW (CanUse RG_FAIRY_BOW)))))
RR_DODONGOS_CAVERN_COMPASS_ROOM (Here (or CanBreakMudWalls (HasItem RG_GORONS_BRACELET)))
def RR_DODONGOS_CAVERN_STAIRS_UPPER SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern Stairs Upper
//Checks
RC_DODONGOS_CAVERN_GS_ALCOVE_ABOVE_STAIRS (or (Here HookshotOrBoomerang) (CanUse RG_LONGSHOT))
RC_DODONGOS_CAVERN_GS_VINES_ABOVE_STAIRS (or IsAdult (or CanAttack (and (HasAccessTo RR_DODONGOS_CAVERN_STAIRS_LOWER) (and (CanUse RG_LONGSHOT) RT_DC_VINES_GS))))
RC_DODONGOS_CAVERN_STAIRCASE_POT_1 CanBreakPots
RC_DODONGOS_CAVERN_STAIRCASE_POT_2 CanBreakPots
RC_DODONGOS_CAVERN_STAIRCASE_POT_3 CanBreakPots
RC_DODONGOS_CAVERN_STAIRCASE_POT_4 CanBreakPots
//Exits
RR_DODONGOS_CAVERN_STAIRS_LOWER true
RR_DODONGOS_CAVERN_ARMOS_ROOM true
def RR_DODONGOS_CAVERN_COMPASS_ROOM SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern Compass Room
//Checks
RC_DODONGOS_CAVERN_COMPASS_CHEST true
//Exits
RR_DODONGOS_CAVERN_STAIRS_LOWER (or (CanUse RG_MASTER_SWORD) (or (CanUse RG_BIGGORON_SWORD) (or (CanUse RG_MEGATON_HAMMER) (or HasExplosives (HasItem RG_GORONS_BRACELET)))))
def RR_DODONGOS_CAVERN_ARMOS_ROOM SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern Armos Room
//Exits
RR_DODONGOS_CAVERN_STAIRS_UPPER true
RR_DODONGOS_CAVERN_BOMB_ROOM_LOWER true
def RR_DODONGOS_CAVERN_BOMB_ROOM_LOWER SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern Bomb Room Lower
//Checks
RC_DODONGOS_CAVERN_BOMB_FLOWER_PLATFORM_CHEST true
RC_DODONGOS_CAVERN_BLADE_ROOM_HEART true
RC_DODONGOS_CAVERN_FIRST_BRIDGE_GRASS CanCutShrubs
RC_DODONGOS_CAVERN_BLADE_GRASS CanCutShrubs
//Exits
RR_DODONGOS_CAVERN_ARMOS_ROOM true
RR_DODONGOS_CAVERN_2F_SIDE_ROOM (Here (or CanBreakMudWalls (and RT_DC_SCRUB_ROOM (HasItem RG_GORONS_BRACELET))))
RR_DODONGOS_CAVERN_FIRST_SLINGSHOT_ROOM (Here (or CanBreakMudWalls (HasItem RG_GORONS_BRACELET)))
@ -119,76 +144,96 @@ RR_DODONGOS_CAVERN_BOMB_ROOM_UPPER (or (and IsAdult RT_DC_JUMP) (or (CanUse RG_H
def RR_DODONGOS_CAVERN_2F_SIDE_ROOM SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern 2F Side Room
//Checks
RC_DODONGOS_CAVERN_DEKU_SCRUB_NEAR_BOMB_BAG_LEFT CanStunDeku
RC_DODONGOS_CAVERN_DEKU_SCRUB_NEAR_BOMB_BAG_RIGHT CanStunDeku
//Exits
RR_DODONGOS_CAVERN_BOMB_ROOM_LOWER true
def RR_DODONGOS_CAVERN_FIRST_SLINGSHOT_ROOM SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern First Slingshot Room
//Checks
RC_DODONGOS_CAVERN_SINGLE_EYE_POT_1 CanBreakPots
RC_DODONGOS_CAVERN_SINGLE_EYE_POT_2 CanBreakPots
RC_DODONGOS_CAVERN_SINGLE_EYE_GRASS CanCutShrubs
//Exits
RR_DODONGOS_CAVERN_BOMB_ROOM_LOWER true
RR_DODONGOS_CAVERN_UPPER_LIZALFOS (or (CanUse RG_FAIRY_SLINGSHOT) (or (CanUse RG_FAIRY_BOW) RT_DC_SLINGSHOT_SKIP))
def RR_DODONGOS_CAVERN_UPPER_LIZALFOS SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern Upper Lizalfos
//Checks
RC_DODONGOS_CAVERN_LOWER_LIZALFOS_HEART true
RC_DODONGOS_CAVERN_UPPER_LIZALFOS_LEFT_HEART true
RC_DODONGOS_CAVERN_UPPER_LIZALFOS_RIGHT_HEART true
//Exits
RR_DODONGOS_CAVERN_LOWER_LIZALFOS true
RR_DODONGOS_CAVERN_FIRST_SLINGSHOT_ROOM (Here (CanKillEnemy RE_LIZALFOS ED_CLOSE true 2))
RR_DODONGOS_CAVERN_SECOND_SLINGSHOT_ROOM (Here (CanKillEnemy RE_LIZALFOS ED_CLOSE true 2))
def RR_DODONGOS_CAVERN_SECOND_SLINGSHOT_ROOM SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern Second Slingshot Room
//Checks
RC_DODONGOS_CAVERN_DOUBLE_EYE_POT_1 CanBreakPots
RC_DODONGOS_CAVERN_DOUBLE_EYE_POT_2 CanBreakPots
//Exits
RR_DODONGOS_CAVERN_UPPER_LIZALFOS true
RR_DODONGOS_CAVERN_BOMB_ROOM_UPPER (or (CanUse RG_FAIRY_SLINGSHOT) (or (CanUse RG_FAIRY_BOW) RT_DC_SLINGSHOT_SKIP))
def RR_DODONGOS_CAVERN_BOMB_ROOM_UPPER SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern Bomb Room Upper
//Checks
RC_DODONGOS_CAVERN_BOMB_BAG_CHEST true
RC_DODONGOS_CAVERN_BLADE_POT_1 CanBreakPots
RC_DODONGOS_CAVERN_BLADE_POT_2 CanBreakPots
//Exits
RR_DODONGOS_CAVERN_BOMB_ROOM_LOWER true
RR_DODONGOS_CAVERN_SECOND_SLINGSHOT_ROOM true
RR_DODONGOS_CAVERN_FAR_BRIDGE true
def RR_DODONGOS_CAVERN_FAR_BRIDGE SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern Far Bridge
//Checks
RC_DODONGOS_CAVERN_END_OF_BRIDGE_CHEST (Here CanBreakMudWalls)
//Exits
RR_DODONGOS_CAVERN_LOBBY true
RR_DODONGOS_CAVERN_BOMB_ROOM_UPPER true
def RR_DODONGOS_CAVERN_BOSS_AREA SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern Boss Region
//Events
FairyPot true
//Checks
RC_DODONGOS_CAVERN_BEFORE_BOSS_GRASS CanCutShrubs
//Exits
RR_DODONGOS_CAVERN_LOBBY true
RR_DODONGOS_CAVERN_BACK_ROOM (Here CanBreakMudWalls)
RR_DODONGOS_CAVERN_BOSS_ENTRYWAY true
def RR_DODONGOS_CAVERN_BACK_ROOM SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern Back Room
//Checks
RC_DODONGOS_CAVERN_GS_BACK_ROOM CanAttack
RC_DODONGOS_CAVERN_BACK_ROOM_POT_1 CanBreakPots
RC_DODONGOS_CAVERN_BACK_ROOM_POT_2 CanBreakPots
RC_DODONGOS_CAVERN_BACK_ROOM_POT_3 CanBreakPots
RC_DODONGOS_CAVERN_BACK_ROOM_POT_4 CanBreakPots
//Exits
RR_DODONGOS_CAVERN_BOSS_AREA true
def RR_DODONGOS_CAVERN_MQ_BEGINNING SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern MQ Beginning
//Exits
RR_DODONGOS_CAVERN_ENTRYWAY true
RR_DODONGOS_CAVERN_MQ_LOBBY (Here (or CanBreakMudWalls (HasItem RG_GORONS_BRACELET)))
def RR_DODONGOS_CAVERN_MQ_LOBBY SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern MQ Lobby
//Checks
RC_DODONGOS_CAVERN_MQ_MAP_CHEST (or CanBreakMudWalls (HasItem RG_GORONS_BRACELET))
RC_DODONGOS_CAVERN_MQ_DEKU_SCRUB_LOBBY_REAR CanStunDeku
RC_DODONGOS_CAVERN_MQ_DEKU_SCRUB_LOBBY_FRONT CanStunDeku
//Exits
RR_DODONGOS_CAVERN_MQ_BEGINNING true
RR_DODONGOS_CAVERN_MQ_GOSSIP_STONE (Here (or CanBreakMudWalls (HasItem RG_GORONS_BRACELET)))
RR_DODONGOS_CAVERN_MQ_MOUTH_SIDE_BRIDGE (Here (or BlastOrSmash (HasItem RG_GORONS_BRACELET)))
@ -200,15 +245,20 @@ RR_DODONGOS_CAVERN_MQ_BEHIND_MOUTH (Here (or HasExplosives (and ClearMQDCUpperLo
def RR_DODONGOS_CAVERN_MQ_GOSSIP_STONE SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern MQ Gossip Stone
//Events
GossipStoneFairy CallGossipFairy
//Checks
RC_DODONGOS_CAVERN_GOSSIP_STONE true
RC_DODONGOS_CAVERN_MQ_GOSSIP_STONE_FAIRY CallGossipFairy
RC_DODONGOS_CAVERN_MQ_GOSSIP_STONE_FAIRY_BIG (CanUse RG_SONG_OF_STORMS)
//Exits
RR_DODONGOS_CAVERN_MQ_LOBBY true
def RR_DODONGOS_CAVERN_MQ_MOUTH_SIDE_BRIDGE SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern MQ Mouth Side Bridge
//Events
ClearMQDCUpperLobbyRocks (or BlastOrSmash (CanUse RG_DINS_FIRE))
//Exits
RR_DODONGOS_CAVERN_MQ_LOBBY true
RR_DODONGOS_CAVERN_MQ_TORCH_PUZZLE_UPPER ClearMQDCUpperLobbyRocks
//Bunny hood jump + jumpslash can also make it directly from the raising platform
@ -218,19 +268,24 @@ RR_DODONGOS_CAVERN_MQ_POES_ROOM (or (CanUse RG_HOVER_BOOTS) (and RT_DC_MQ_CHILD_
def RR_DODONGOS_CAVERN_MQ_STAIRS_PAST_MUD_WALL SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern MQ Stairs Past Mud Wall
//Events
DekuBabaSticks CanGetDekuBabaSticks
//Checks
RC_DODONGOS_CAVERN_MQ_GS_SONG_OF_TIME_BLOCK_ROOM (and (CanUse RG_SONG_OF_TIME) (CanGetEnemyDrop RE_GOLD_SKULLTULA))
//Exits
RR_DODONGOS_CAVERN_MQ_STAIRS_UPPER (or HasExplosives (or (and (HasItem RG_GORONS_BRACELET) (or (CanUse RG_STICKS) RT_DC_MQ_STAIRS_WITH_ONLY_STRENGTH)) (or (CanUse RG_DINS_FIRE) (and RT_DC_STAIRS_WITH_BOW (CanUse RG_FAIRY_BOW)))))
RR_DODONGOS_CAVERN_MQ_STAIRS_LOWER true
def RR_DODONGOS_CAVERN_MQ_STAIRS_LOWER SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern MQ Stairs Lower
//Checks
RC_DODONGOS_CAVERN_MQ_STAIRCASE_POT_1 CanBreakPots
RC_DODONGOS_CAVERN_MQ_STAIRCASE_POT_2 CanBreakPots
RC_DODONGOS_CAVERN_MQ_STAIRCASE_POT_3 CanBreakPots
RC_DODONGOS_CAVERN_MQ_STAIRCASE_POT_4 CanBreakPots
RC_DODONGOS_CAVERN_MQ_STAIRCASE_LOWER_CRATE_1 CanBreakCrates
RC_DODONGOS_CAVERN_MQ_STAIRCASE_LOWER_CRATE_2 CanBreakCrates
//Exits
RR_DODONGOS_CAVERN_MQ_LOBBY true
//This is possible with sticks and shield, igniting a first flower by "touch" then very quickly crouch stabbing in a way that cuts the corner to light the 3rd bomb on the other side, but that's a trick
RR_DODONGOS_CAVERN_MQ_STAIRS_UPPER (Here (or HasExplosives (or (CanUse RG_DINS_FIRE) (and RT_DC_STAIRS_WITH_BOW (CanUse RG_FAIRY_BOW)))))
@ -238,16 +293,19 @@ RR_DODONGOS_CAVERN_MQ_STAIRS_PAST_MUD_WALL (Here CanBreakMudWalls)
def RR_DODONGOS_CAVERN_MQ_STAIRS_UPPER SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern MQ Stairs Upper
//Checks
RC_DODONGOS_CAVERN_MQ_DEKU_SCRUB_STAIRCASE CanStunDeku
RC_DODONGOS_CAVERN_MQ_STAIRCASE_UPPER_CRATE_1 CanBreakCrates
RC_DODONGOS_CAVERN_MQ_STAIRCASE_UPPER_CRATE_2 CanBreakCrates
RC_DODONGOS_CAVERN_MQ_STAIRCASE_UPPER_CRATE_3 CanBreakCrates
RC_DODONGOS_CAVERN_MQ_STAIRCASE_UPPER_CRATE_4 CanBreakCrates
//Exits
RR_DODONGOS_CAVERN_MQ_STAIRS_LOWER true
RR_DODONGOS_CAVERN_MQ_STAIRS_PAST_BIG_SKULLTULAS (or (CanPassEnemy RE_BIG_SKULLTULA) (CanUse RG_HOVER_BOOTS))
def RR_DODONGOS_CAVERN_MQ_STAIRS_PAST_BIG_SKULLTULAS SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern MQ Past Big Skulltulas
//Exits
RR_DODONGOS_CAVERN_MQ_STAIRS_UPPER (or (CanPassEnemy RE_BIG_SKULLTULA) (CanUse RG_HOVER_BOOTS))
RR_DODONGOS_CAVERN_MQ_STAIRS_LOWER TakeDamage
//If some case comes up where you can directly (void?)warp here without going through Dodongo room or climbing up from below,
@ -257,19 +315,24 @@ RR_DODONGOS_CAVERN_MQ_DODONGO_ROOM true
def RR_DODONGOS_CAVERN_MQ_DODONGO_ROOM SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern MQ Dodongo Room
//Checks
RC_DODONGOS_CAVERN_MQ_COMPASS_CHEST (or (CanKillEnemy RE_DODONGO) (HasItem RG_GORONS_BRACELET))
RC_DODONGOS_CAVERN_MQ_COMPASS_GRASS_1 CanCutShrubs
RC_DODONGOS_CAVERN_MQ_COMPASS_GRASS_2 CanCutShrubs
RC_DODONGOS_CAVERN_MQ_COMPASS_GRASS_3 CanCutShrubs
RC_DODONGOS_CAVERN_MQ_COMPASS_GRASS_4 CanCutShrubs
//Exits
RR_DODONGOS_CAVERN_MQ_STAIRS_PAST_BIG_SKULLTULAS true
RR_DODONGOS_CAVERN_MQ_TORCH_PUZZLE_LOWER (Here (or (CanKillEnemy RE_DODONGO) (HasItem RG_GORONS_BRACELET)))
def RR_DODONGOS_CAVERN_MQ_TORCH_PUZZLE_LOWER SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern MQ Torch Puzzle Lower
//Events
ClearMQDCUpperLobbyRocks (and (or (and IsAdult RT_DC_JUMP) (CanUse RG_HOVER_BOOTS)) (CanUse RG_STICKS))
//Checks
RC_DODONGOS_CAVERN_MQ_TORCH_PUZZLE_MIDDLE_POT (CanUse RG_BOOMERANG)
RC_DODONGOS_CAVERN_MQ_TORCH_PUZZLE_ROOM_HEART true
//Exits
RR_DODONGOS_CAVERN_MQ_LOBBY TakeDamage
RR_DODONGOS_CAVERN_MQ_DODONGO_ROOM true
//torch checks here need strength 0 with sticks when that is implemented
@ -282,8 +345,10 @@ RR_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS (and (CanUse RG_STICKS) (HasItem RG_GORONS_
def RR_DODONGOS_CAVERN_MQ_BIG_BLOCK_ROOM SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern MQ Torch Puzzle Lower
//Checks
RC_DODONGOS_CAVERN_MQ_BIG_BLOCK_POT_1 CanBreakPots
RC_DODONGOS_CAVERN_MQ_BIG_BLOCK_POT_2 CanBreakPots
//Exits
RR_DODONGOS_CAVERN_MQ_TORCH_PUZZLE_LOWER (CanPassEnemy RE_BIG_SKULLTULA)
//Requires stregnth 0, If you can somehow warp into this room, add logic->CanPassEnemy(RE_BIG_SKULLTULA)
RR_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS (or (and HasFireSource (HasItem RG_GORONS_BRACELET)) CanBreakMudWalls)
@ -291,6 +356,7 @@ RR_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS (or (and HasFireSource (HasItem RG_GORONS_B
def RR_DODONGOS_CAVERN_MQ_LARVAE_ROOM SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern MQ Larvae Room
//implied logic->CanKillEnemy(RE_GOHMA_LARVA) based on entry reqs with a trick to kill with nuts
//Checks
RC_DODONGOS_CAVERN_MQ_LARVAE_ROOM_CHEST true
//implied logic->CanKillEnemy(RE_GOLD_SKULTULLA) based on entry reqs. Add crate logic when BONKO is added
RC_DODONGOS_CAVERN_MQ_GS_LARVAE_ROOM CanBreakCrates
@ -301,11 +367,13 @@ RC_DODONGOS_CAVERN_MQ_LARVAE_ROOM_CRATE_4 CanBreakCrates
RC_DODONGOS_CAVERN_MQ_LARVAE_ROOM_CRATE_5 CanBreakCrates
RC_DODONGOS_CAVERN_MQ_LARVAE_ROOM_CRATE_6 CanBreakCrates
//implied logic->CanKillEnemy(RE_GOHMA_LARVA) based on entry reqs with a trick to kill with nuts
//Exits
RR_DODONGOS_CAVERN_MQ_TORCH_PUZZLE_LOWER true
def RR_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern MQ Before Upper Lizalfos
//Implied CanGetEnemyDrop(RE_GOLD_SKULLTULA)
//Checks
RC_DODONGOS_CAVERN_MQ_GS_LIZALFOS_ROOM BlastOrSmash
RC_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_1 CanBreakPots
RC_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_2 CanBreakPots
@ -313,47 +381,58 @@ RC_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_3 CanBreakPots
RC_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_4 CanBreakPots
RC_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_HEART BlastOrSmash
//Falling down gets you stuck with nothing there, not a useful exit for logic
//Exits
RR_DODONGOS_CAVERN_MQ_BIG_BLOCK_ROOM (Here (CanKillEnemy RE_LIZALFOS))
RR_DODONGOS_CAVERN_MQ_TWO_FIRES_ROOM (Here (CanKillEnemy RE_LIZALFOS))
def RR_DODONGOS_CAVERN_MQ_TWO_FIRES_ROOM SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern MQ Before Upper Lizalfos
//Checks
RC_DODONGOS_CAVERN_MQ_TWO_FLAMES_POT_1 CanBreakPots
RC_DODONGOS_CAVERN_MQ_TWO_FLAMES_POT_2 CanBreakPots
RC_DODONGOS_CAVERN_MQ_TWO_FLAMES_CRATE_1 CanBreakCrates
RC_DODONGOS_CAVERN_MQ_TWO_FLAMES_CRATE_2 CanBreakCrates
//Exits
RR_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS true
RR_DODONGOS_CAVERN_MQ_TORCH_PUZZLE_UPPER (or IsAdult (Here (or BlastOrSmash (and CanAttack (HasItem RG_GORONS_BRACELET)))))
def RR_DODONGOS_CAVERN_MQ_TORCH_PUZZLE_UPPER SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern MQ Torch Puzzle Upper
//Events
ClearMQDCUpperLobbyRocks (or CanDetonateUprightBombFlower (CanUse RG_MEGATON_HAMMER))
//Checks
RC_DODONGOS_CAVERN_MQ_TORCH_PUZZLE_ROOM_CHEST true
RC_DODONGOS_CAVERN_MQ_TORCH_PUZZLE_CORNER_POT CanBreakPots
RC_DODONGOS_CAVERN_MQ_TORCH_PUZZLE_MIDDLE_POT CanBreakPots
//Exits
RR_DODONGOS_CAVERN_MQ_MOUTH_SIDE_BRIDGE ClearMQDCUpperLobbyRocks
RR_DODONGOS_CAVERN_MQ_TORCH_PUZZLE_LOWER true
RR_DODONGOS_CAVERN_MQ_TWO_FIRES_ROOM true
def RR_DODONGOS_CAVERN_MQ_LOWER_RIGHT_SIDE SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern MQ Lower Right Side
//Checks
RC_DODONGOS_CAVERN_MQ_DEKU_SCRUB_SIDE_ROOM_NEAR_LOWER_LIZALFOS (and (or CanBreakMudWalls (HasItem RG_GORONS_BRACELET)) CanStunDeku)
RC_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_1 CanBreakPots
RC_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_2 CanBreakPots
RC_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_3 CanBreakPots
RC_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_4 CanBreakPots
//Exits
RR_DODONGOS_CAVERN_MQ_LOBBY true
RR_DODONGOS_CAVERN_MQ_LOWER_LIZALFOS (and (Here (or CanDetonateBombFlowers (HasItem RG_GORONS_BRACELET))) CanHitEyeTargets)
def RR_DODONGOS_CAVERN_MQ_LOWER_LIZALFOS SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern MQ Lower Lizalfos
//Checks
RC_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_HEART true
//Exits
RR_DODONGOS_CAVERN_MQ_LOWER_RIGHT_SIDE (Here (CanKillEnemy RE_LIZALFOS))
RR_DODONGOS_CAVERN_MQ_POES_ROOM (Here (CanKillEnemy RE_LIZALFOS))
def RR_DODONGOS_CAVERN_MQ_POES_ROOM SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern MQ Poes Room
//If you can get to the locked part of POES_ROOM without a way to open it or passing the chest, this will need it's own room
//Checks
RC_DODONGOS_CAVERN_MQ_BOMB_BAG_CHEST true
RC_DODONGOS_CAVERN_MQ_GS_SCRUB_ROOM (and (Here (or CanDetonateBombFlowers (HasItem RG_GORONS_BRACELET))) (CanGetEnemyDrop RE_GOLD_SKULLTULA ED_BOOMERANG true))
RC_DODONGOS_CAVERN_MQ_POE_ROOM_POT_1 CanBreakPots
@ -368,6 +447,7 @@ RC_DODONGOS_CAVERN_MQ_POE_ROOM_CRATE_5 CanBreakCrates
RC_DODONGOS_CAVERN_MQ_POE_ROOM_CRATE_6 CanBreakCrates
RC_DODONGOS_CAVERN_MQ_POE_ROOM_CRATE_7 CanBreakCrates
RC_DODONGOS_CAVERN_MQ_POE_ROOM_CRATE_8 CanBreakCrates
//Exits
RR_DODONGOS_CAVERN_MQ_LOBBY (Here (or CanDetonateBombFlowers (HasItem RG_GORONS_BRACELET)))
RR_DODONGOS_CAVERN_MQ_LOWER_LIZALFOS true
RR_DODONGOS_CAVERN_MQ_MAD_SCRUB_ROOM (Here (or CanDetonateBombFlowers (HasItem RG_GORONS_BRACELET)))
@ -376,19 +456,23 @@ def RR_DODONGOS_CAVERN_MQ_MAD_SCRUB_ROOM SCENE_DODONGOS_CAVERN false RA_DODONGOS
Dodongos Cavern Mad Scrub Room
//Implies you can avoid/kill the enemies with what you use on the skull, if this assumption is broken, add
//&& (Here(RR_DODONGOS_CAVERN_MQ_POES_ROOM, []{return logic->CanKillEnemy(RE_FIRE_KEESE) && logic->CanKillEnemy(RE_MAD_SCRUB);}) || (logic->CanAvoidEnemy(RE_FIRE_KEESE) && logic->CanAvoidEnemy(RE_MAD_SCRUB)))
//Checks
RC_DODONGOS_CAVERN_MQ_GS_SCRUB_ROOM (CanGetEnemyDrop RE_GOLD_SKULLTULA ED_BOOMERANG true)
//Implies you can avoid/kill the enemies with what you use on the skull, if this assumption is broken, add
//&& (Here(RR_DODONGOS_CAVERN_MQ_POES_ROOM, []{return logic->CanKillEnemy(RE_FIRE_KEESE) && logic->CanKillEnemy(RE_MAD_SCRUB);}) || (logic->CanAvoidEnemy(RE_FIRE_KEESE) && logic->CanAvoidEnemy(RE_MAD_SCRUB)))
RC_DODONGOS_CAVERN_MQ_SCRUB_GRASS_1 CanCutShrubs
RC_DODONGOS_CAVERN_MQ_SCRUB_GRASS_2 CanCutShrubs
//Exits
RR_DODONGOS_CAVERN_MQ_POES_ROOM (Here (and (CanKillEnemy RE_FIRE_KEESE) (CanKillEnemy RE_MAD_SCRUB)))
def RR_DODONGOS_CAVERN_MQ_BEHIND_MOUTH SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern MQ Behind Mouth
//Checks
RC_DODONGOS_CAVERN_MQ_BEFORE_BOSS_SW_POT CanBreakPots
RC_DODONGOS_CAVERN_MQ_BEFORE_BOSS_NE_POT CanBreakPots
RC_DODONGOS_CAVERN_MQ_ARMOS_ROOM_SE_POT CanBreakPots
RC_DODONGOS_CAVERN_MQ_ARMOS_ROOM_SW_POT CanBreakPots
//Exits
RR_DODONGOS_CAVERN_MQ_LOBBY true
//using pots to get past the fire is in default logic. if stregnth 0 gets added, this will need to be:
//stregnth 0 || explosives, or projectiles if str0 isn't needed to pull graves (it's a narrow shot though, may be trick worthy)
@ -398,40 +482,50 @@ RR_DODONGOS_CAVERN_MQ_BACK_SWITCH_GRAVE IsAdult
def RR_DODONGOS_CAVERN_MQ_BACK_BEHIND_FIRE SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern MQ Back Behind Fire
//pulling the grave isn't required, as you can open the chest through it
//Checks
RC_DODONGOS_CAVERN_MQ_UNDER_GRAVE_CHEST true
RC_DODONGOS_CAVERN_MQ_BACKROOM_POT_1 CanBreakPots
RC_DODONGOS_CAVERN_MQ_BACKROOM_POT_2 CanBreakPots
RC_DODONGOS_CAVERN_MQ_BACK_POE_GRASS CanCutShrubs
//Exits
RR_DODONGOS_CAVERN_MQ_BEHIND_MOUTH CanAttack
//There's a trick N64 rolls into the child eyes trick for using armos blow up the bomb flowers when dying, which would be killing an armos
RR_DODONGOS_CAVERN_MQ_BACK_SWITCH_GRAVE (or (Here CanDetonateBombFlowers) (Here CanAttack))
def RR_DODONGOS_CAVERN_MQ_BACK_SWITCH_GRAVE SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern MQ BossArea
//Events
FairyPot true
//even if you somehow warp to BACK_BEHIND_FIRE, if you can kill the skull at range, you can get to BEHIND_MOUTH
//Checks
RC_DODONGOS_CAVERN_MQ_GS_BACK_AREA (or (CanGetEnemyDrop RE_GOLD_SKULLTULA) (or (HasItem RG_GORONS_BRACELET) (Here (or (CanGetEnemyDrop RE_GOLD_SKULLTULA ED_BOOMERANG) (and IsAdult (CanUse RG_HOVER_BOOTS))))))
RC_DODONGOS_CAVERN_MQ_ARMOS_ROOM_NW_POT CanBreakPots
RC_DODONGOS_CAVERN_MQ_ARMOS_ROOM_NE_POT CanBreakPots
RC_DODONGOS_CAVERN_MQ_ARMOS_GRASS CanCutShrubs
//Exits
RR_DODONGOS_CAVERN_MQ_BACK_BEHIND_FIRE true
//if strength 0 prevents grave pulls, add it here
RR_DODONGOS_CAVERN_BOSS_ENTRYWAY true
def RR_DODONGOS_CAVERN_BOSS_ENTRYWAY SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern Boss Entryway
//Exits
RR_DODONGOS_CAVERN_BOSS_ROOM true
def RR_DODONGOS_CAVERN_BOSS_EXIT SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern Boss Exit
//Exits
RR_DODONGOS_CAVERN_BOSS_AREA (IsDungeonVanilla DODONGOS_CAVERN)
RR_DODONGOS_CAVERN_MQ_BEHIND_MOUTH (IsDungeonMQ DODONGOS_CAVERN)
def RR_DODONGOS_CAVERN_BOSS_ROOM SCENE_DODONGOS_CAVERN_BOSS false
Dodongos Cavern Boss Room
//Events
DodongosCavernClear (and (Here (or HasExplosives (if RT_DC_HAMMER_FLOOR (or (CanUse RG_MEGATON_HAMMER) (and RT_BLUE_FIRE_MUD_WALLS BlueFire)) (and RT_BLUE_FIRE_MUD_WALLS (CanUse RG_BOTTLE_WITH_BLUE_FIRE))))) (CanKillEnemy RE_KING_DODONGO))
//Checks
RC_DODONGOS_CAVERN_BOSS_ROOM_CHEST true
RC_DODONGOS_CAVERN_KING_DODONGO_HEART DodongosCavernClear
RC_KING_DODONGO DodongosCavernClear
//Exits
RR_DODONGOS_CAVERN_BOSS_EXIT true
RR_DEATH_MOUNTAIN_TRAIL @deprioritize DodongosCavernClear

View file

@ -1,11 +1,13 @@
def RR_FIRE_TEMPLE_ENTRYWAY SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple Entryway
//Exits
RR_FIRE_TEMPLE_FIRST_ROOM (IsDungeonVanilla FIRE_TEMPLE)
RR_FIRE_TEMPLE_MQ_FIRST_ROOM_LOWER (IsDungeonMQ FIRE_TEMPLE)
RR_DMC_CENTRAL_LOCAL true
def RR_FIRE_TEMPLE_FIRST_ROOM SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple First Room
//Exits
RR_FIRE_TEMPLE_ENTRYWAY true
RR_FIRE_TEMPLE_NEAR_BOSS_ROOM (>= FireTimer 24)
RR_FIRE_TEMPLE_LOOP_ENEMIES (and (Here (CanUse RG_MEGATON_HAMMER)) (or (SmallKeys SCENE_FIRE_TEMPLE 8) (not IsFireLoopLocked)))
@ -14,54 +16,69 @@ RR_FIRE_TEMPLE_BIG_LAVA_ROOM (and (SmallKeys SCENE_FIRE_TEMPLE 2) (>= FireTimer
def RR_FIRE_TEMPLE_NEAR_BOSS_ROOM SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple Near Boss Room
//Events
FairyPot (or (CanUse RG_HOVER_BOOTS) (CanUse RG_HOOKSHOT))
//Checks
RC_FIRE_TEMPLE_NEAR_BOSS_CHEST true
RC_FIRE_TEMPLE_NEAR_BOSS_POT_1 (and CanBreakPots (or (CanUse RG_HOVER_BOOTS) (CanUse RG_HOOKSHOT)))
RC_FIRE_TEMPLE_NEAR_BOSS_POT_2 (and CanBreakPots (or (CanUse RG_HOVER_BOOTS) (CanUse RG_HOOKSHOT)))
RC_FIRE_TEMPLE_NEAR_BOSS_POT_3 (and CanBreakPots (or (CanUse RG_HOVER_BOOTS) (CanUse RG_HOOKSHOT)))
RC_FIRE_TEMPLE_NEAR_BOSS_POT_4 (and CanBreakPots (or (CanUse RG_HOVER_BOOTS) (CanUse RG_HOOKSHOT)))
//Exits
RR_FIRE_TEMPLE_FIRST_ROOM true
RR_FIRE_TEMPLE_BOSS_ENTRYWAY (and IsAdult (or RT_FIRE_BOSS_DOOR_JUMP (or (Here (CanUse RG_MEGATON_HAMMER)) (CanUse RG_HOVER_BOOTS))))
def RR_FIRE_TEMPLE_LOOP_ENEMIES SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple Loop Enemies
//Exits
RR_FIRE_TEMPLE_FIRST_ROOM (or (SmallKeys SCENE_FIRE_TEMPLE 8) (not IsFireLoopLocked))
RR_FIRE_TEMPLE_LOOP_TILES (Here (and (CanKillEnemy RE_TORCH_SLUG) (CanKillEnemy RE_FIRE_KEESE)))
def RR_FIRE_TEMPLE_LOOP_TILES SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple Loop Tiles
//Checks
RC_FIRE_TEMPLE_GS_BOSS_KEY_LOOP CanAttack
//Exits
RR_FIRE_TEMPLE_LOOP_ENEMIES true
RR_FIRE_TEMPLE_LOOP_FLARE_DANCER true
def RR_FIRE_TEMPLE_LOOP_FLARE_DANCER SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple Loop Flare Dancer
//Checks
RC_FIRE_TEMPLE_FLARE_DANCER_CHEST (and (or HasExplosives (CanUse RG_MEGATON_HAMMER)) IsAdult)
//Exits
RR_FIRE_TEMPLE_LOOP_TILES true
RR_FIRE_TEMPLE_LOOP_HAMMER_SWITCH (Here (CanKillEnemy RE_FLARE_DANCER))
def RR_FIRE_TEMPLE_LOOP_HAMMER_SWITCH SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple Loop Hammer Switch
//Events
FireLoopSwitch (CanUse RG_MEGATON_HAMMER)
//Exits
RR_FIRE_TEMPLE_LOOP_FLARE_DANCER true
RR_FIRE_TEMPLE_LOOP_GORON_ROOM FireLoopSwitch
def RR_FIRE_TEMPLE_LOOP_GORON_ROOM SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple Loop Goron Room
//Checks
RC_FIRE_TEMPLE_BOSS_KEY_CHEST true
//Exits
RR_FIRE_TEMPLE_LOOP_HAMMER_SWITCH FireLoopSwitch
RR_FIRE_TEMPLE_LOOP_EXIT FireLoopSwitch
def RR_FIRE_TEMPLE_LOOP_EXIT SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple Loop Exit
//Exits
RR_FIRE_TEMPLE_FIRST_ROOM true
RR_FIRE_TEMPLE_LOOP_GORON_ROOM FireLoopSwitch
def RR_FIRE_TEMPLE_BIG_LAVA_ROOM SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple Big Lava Room
//Checks
RC_FIRE_TEMPLE_BIG_LAVA_POT_1 CanBreakPots
RC_FIRE_TEMPLE_BIG_LAVA_POT_2 CanBreakPots
RC_FIRE_TEMPLE_BIG_LAVA_POT_3 CanBreakPots
//Exits
RR_FIRE_TEMPLE_FIRST_ROOM (SmallKeys SCENE_FIRE_TEMPLE 2)
RR_FIRE_TEMPLE_BIG_LAVA_ROOM_NORTH_GORON true
RR_FIRE_TEMPLE_BIG_LAVA_ROOM_NORTH_TILES (and IsAdult (or (CanUse RG_SONG_OF_TIME) RT_FIRE_SOT))
@ -70,44 +87,57 @@ RR_FIRE_TEMPLE_FIRE_PILLAR_ROOM (SmallKeys SCENE_FIRE_TEMPLE 3)
def RR_FIRE_TEMPLE_BIG_LAVA_ROOM_NORTH_GORON SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple Big Lava Room North Goron
//Checks
RC_FIRE_TEMPLE_BIG_LAVA_ROOM_LOWER_OPEN_DOOR_CHEST true
//Exits
RR_FIRE_TEMPLE_BIG_LAVA_ROOM true
def RR_FIRE_TEMPLE_BIG_LAVA_ROOM_NORTH_TILES SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple Big Lava Room North Tiles
//RANDOTODO check if child can reach
//Checks
RC_FIRE_TEMPLE_GS_SONG_OF_TIME_ROOM (or (and IsAdult CanAttack) HookshotOrBoomerang)
//Exits
RR_FIRE_TEMPLE_BIG_LAVA_ROOM true
def RR_FIRE_TEMPLE_BIG_LAVA_ROOM_SOUTH_GORON SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple Big Lava Room South Goron
//Checks
RC_FIRE_TEMPLE_BIG_LAVA_ROOM_BLOCKED_DOOR_CHEST true
//Exits
RR_FIRE_TEMPLE_BIG_LAVA_ROOM true
def RR_FIRE_TEMPLE_FIRE_PILLAR_ROOM SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple Fire Pillar Room
//Checks
RC_FIRE_TEMPLE_FIRE_PILLAR_LEFT_HEART (>= FireTimer 56)
RC_FIRE_TEMPLE_FIRE_PILLAR_RIGHT_HEART (>= FireTimer 56)
RC_FIRE_TEMPLE_FIRE_PILLAR_BACK_HEART (>= FireTimer 56)
//Exits
RR_FIRE_TEMPLE_BIG_LAVA_ROOM (SmallKeys SCENE_FIRE_TEMPLE 3)
RR_FIRE_TEMPLE_SHORTCUT_ROOM (and (>= FireTimer 56) (SmallKeys SCENE_FIRE_TEMPLE 4))
def RR_FIRE_TEMPLE_SHORTCUT_ROOM SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple Shortcut Room
//Checks
RC_FIRE_TEMPLE_BOULDER_MAZE_SHORTCUT_CHEST (Here true)
//Exits
RR_FIRE_TEMPLE_FIRE_PILLAR_ROOM (SmallKeys SCENE_FIRE_TEMPLE 4)
RR_FIRE_TEMPLE_SHORTCUT_CLIMB (Here true)
RR_FIRE_TEMPLE_BOULDER_MAZE_LOWER (and IsAdult (and (or (HasItem RG_GORONS_BRACELET) RT_FIRE_STRENGTH) (or HasExplosives (or (CanUse RG_FAIRY_BOW) (or (CanUse RG_HOOKSHOT) (CanUse RG_FAIRY_SLINGSHOT))))))
def RR_FIRE_TEMPLE_SHORTCUT_CLIMB SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple Shortcut Climb
//Exits
RR_FIRE_TEMPLE_SHORTCUT_ROOM true
RR_FIRE_TEMPLE_BOULDER_MAZE_UPPER true
def RR_FIRE_TEMPLE_BOULDER_MAZE_LOWER SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple Boulder Maze Lower
//Checks
RC_FIRE_TEMPLE_BOULDER_MAZE_LOWER_CHEST true
RC_FIRE_TEMPLE_GS_BOULDER_MAZE (and HasExplosives (or IsAdult HookshotOrBoomerang))
//Exits
RR_FIRE_TEMPLE_SHORTCUT_ROOM true
RR_FIRE_TEMPLE_BOULDER_MAZE_LOWER_SIDE_ROOM true
RR_FIRE_TEMPLE_EAST_CENTRAL_ROOM (SmallKeys SCENE_FIRE_TEMPLE 5)
@ -115,14 +145,18 @@ RR_FIRE_TEMPLE_BOULDER_MAZE_UPPER false
def RR_FIRE_TEMPLE_BOULDER_MAZE_LOWER_SIDE_ROOM SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple Boulder Maze Lower Side Room
//Checks
RC_FIRE_TEMPLE_BOULDER_MAZE_SIDE_ROOM_CHEST true
//Exits
RR_FIRE_TEMPLE_BOULDER_MAZE_LOWER true
def RR_FIRE_TEMPLE_EAST_CENTRAL_ROOM SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple East Central Room
//Checks
RC_FIRE_TEMPLE_EAST_CENTRAL_LEFT_HEART true
RC_FIRE_TEMPLE_EAST_CENTRAL_RIGHT_HEART true
RC_FIRE_TEMPLE_EAST_CENTRAL_MIDDLE_HEART true
//Exits
RR_FIRE_TEMPLE_BIG_LAVA_ROOM TakeDamage
RR_FIRE_TEMPLE_BOULDER_MAZE_LOWER (SmallKeys SCENE_FIRE_TEMPLE 5)
RR_FIRE_TEMPLE_FIRE_WALL_CHASE (SmallKeys SCENE_FIRE_TEMPLE 6)
@ -130,9 +164,11 @@ RR_FIRE_TEMPLE_MAP_AREA (or (CanUse RG_FAIRY_SLINGSHOT) (CanUse RG_FAIRY_BOW))
def RR_FIRE_TEMPLE_FIRE_WALL_CHASE SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple Fire Wall Chase
//Checks
RC_FIRE_TEMPLE_FIRE_WALL_EAST_HEART (and (>= FireTimer 24) (or IsAdult (CanUse RG_BOOMERANG)))
RC_FIRE_TEMPLE_FIRE_WALL_WEST_HEART (and (>= FireTimer 24) (or IsAdult (CanUse RG_BOOMERANG)))
RC_FIRE_TEMPLE_FIRE_WALL_EXIT_HEART (>= FireTimer 24)
//Exits
RR_FIRE_TEMPLE_EAST_CENTRAL_ROOM (and (>= FireTimer 24) (SmallKeys SCENE_FIRE_TEMPLE 6))
RR_FIRE_TEMPLE_MAP_AREA IsAdult
RR_FIRE_TEMPLE_BOULDER_MAZE_UPPER (and (>= FireTimer 24) IsAdult)
@ -140,12 +176,16 @@ RR_FIRE_TEMPLE_CORRIDOR (and (>= FireTimer 24) (and IsAdult (SmallKeys SCENE_FIR
def RR_FIRE_TEMPLE_MAP_AREA SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple Map Region
//Checks
RC_FIRE_TEMPLE_MAP_CHEST true
//Exits
RR_FIRE_TEMPLE_EAST_CENTRAL_ROOM true
def RR_FIRE_TEMPLE_BOULDER_MAZE_UPPER SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple Boulder Maze Upper
//Checks
RC_FIRE_TEMPLE_BOULDER_MAZE_UPPER_CHEST true
//Exits
RR_FIRE_TEMPLE_SHORTCUT_CLIMB HasExplosives
RR_FIRE_TEMPLE_BOULDER_MAZE_LOWER true
RR_FIRE_TEMPLE_FIRE_WALL_CHASE true
@ -153,28 +193,35 @@ RR_FIRE_TEMPLE_SCARECROW_ROOM (or (CanUse RG_SCARECROW) (and RT_FIRE_SCARECROW (
def RR_FIRE_TEMPLE_SCARECROW_ROOM SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple Scarecrow Room
//Checks
RC_FIRE_TEMPLE_GS_SCARECROW_CLIMB (or CanJumpslashExceptHammer (or (CanUse RG_FAIRY_SLINGSHOT) (or (CanUse RG_BOOMERANG) (or HasExplosives (or (CanUse RG_FAIRY_BOW) (or (CanUse RG_HOOKSHOT) (CanUse RG_DINS_FIRE)))))))
//Exits
RR_FIRE_TEMPLE_BOULDER_MAZE_UPPER true
RR_FIRE_TEMPLE_EAST_PEAK true
def RR_FIRE_TEMPLE_EAST_PEAK SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple East Peak
//Checks
RC_FIRE_TEMPLE_SCARECROW_CHEST true
RC_FIRE_TEMPLE_GS_SCARECROW_TOP CanUseProjectile
//Exits
RR_FIRE_TEMPLE_SCARECROW_ROOM true
RR_FIRE_TEMPLE_EAST_CENTRAL_ROOM TakeDamage
def RR_FIRE_TEMPLE_CORRIDOR SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple Corridor
//Exits
RR_FIRE_TEMPLE_FIRE_WALL_CHASE (SmallKeys SCENE_FIRE_TEMPLE 7)
RR_FIRE_TEMPLE_FIRE_MAZE_ROOM true
def RR_FIRE_TEMPLE_FIRE_MAZE_ROOM SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple Fire Maze Room
//Checks
RC_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_1 CanBreakPots
RC_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_2 CanBreakPots
RC_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_3 CanBreakPots
RC_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_4 CanBreakPots
//Exits
RR_FIRE_TEMPLE_CORRIDOR true
RR_FIRE_TEMPLE_FIRE_MAZE_UPPER (CanUse RG_HOVER_BOOTS)
RR_FIRE_TEMPLE_FIRE_MAZE_SIDE_ROOM true
@ -183,71 +230,88 @@ RR_FIRE_TEMPLE_LATE_FIRE_MAZE (or RT_FIRE_FLAME_MAZE false)
def RR_FIRE_TEMPLE_FIRE_MAZE_UPPER SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple Fire Maze Upper
//Exits
RR_FIRE_TEMPLE_NEAR_BOSS_ROOM (CanUse RG_MEGATON_HAMMER)
RR_FIRE_TEMPLE_FIRE_MAZE_ROOM true
RR_FIRE_TEMPLE_WEST_CENTRAL_UPPER (CanUse RG_MEGATON_HAMMER)
def RR_FIRE_TEMPLE_FIRE_MAZE_SIDE_ROOM SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple Fire Maze Side Room
//Checks
RC_FIRE_TEMPLE_COMPASS_CHEST true
//Exits
RR_FIRE_TEMPLE_FIRE_MAZE_ROOM true
def RR_FIRE_TEMPLE_WEST_CENTRAL_LOWER SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple West Central Lower
//Checks
RC_FIRE_TEMPLE_HIGHEST_GORON_CHEST (Here (and (or (CanUse RG_SONG_OF_TIME) RT_RUSTED_SWITCHES) (CanUse RG_MEGATON_HAMMER)))
//Exits
RR_FIRE_TEMPLE_FIRE_MAZE_ROOM (SmallKeys SCENE_FIRE_TEMPLE 8)
RR_FIRE_TEMPLE_WEST_CENTRAL_UPPER (and IsAdult (CanUse RG_SONG_OF_TIME))
RR_FIRE_TEMPLE_LATE_FIRE_MAZE true
def RR_FIRE_TEMPLE_WEST_CENTRAL_UPPER SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple West Central Upper
//Exits
RR_FIRE_TEMPLE_BOSS_ENTRYWAY false
RR_FIRE_TEMPLE_FIRE_MAZE_UPPER true
RR_FIRE_TEMPLE_WEST_CENTRAL_LOWER true
def RR_FIRE_TEMPLE_LATE_FIRE_MAZE SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple Late Fire Maze
//Checks
RC_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_1 CanBreakPots
RC_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_2 CanBreakPots
RC_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_3 CanBreakPots
RC_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_4 CanBreakPots
//Exits
RR_FIRE_TEMPLE_FIRE_MAZE_ROOM false
RR_FIRE_TEMPLE_WEST_CENTRAL_LOWER true
RR_FIRE_TEMPLE_UPPER_FLARE_DANCER HasExplosives
def RR_FIRE_TEMPLE_UPPER_FLARE_DANCER SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple Upper Flare Dancer
//Exits
RR_FIRE_TEMPLE_LATE_FIRE_MAZE (Here (CanKillEnemy RE_FLARE_DANCER))
RR_FIRE_TEMPLE_WEST_CLIMB (Here (CanKillEnemy RE_FLARE_DANCER))
def RR_FIRE_TEMPLE_WEST_CLIMB SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple West Climb
//Exits
RR_FIRE_TEMPLE_UPPER_FLARE_DANCER true
RR_FIRE_TEMPLE_WEST_PEAK CanUseProjectile
def RR_FIRE_TEMPLE_WEST_PEAK SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple West Peak
//Checks
RC_FIRE_TEMPLE_MEGATON_HAMMER_CHEST true
//Exits
RR_FIRE_TEMPLE_WEST_CENTRAL_UPPER TakeDamage
RR_FIRE_TEMPLE_WEST_CLIMB true
RR_FIRE_TEMPLE_HAMMER_RETURN_PATH (CanUse RG_MEGATON_HAMMER)
def RR_FIRE_TEMPLE_HAMMER_RETURN_PATH SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple Hammer Return Path
//Checks
RC_FIRE_TEMPLE_AFTER_HAMMER_SMALL_CRATE_1 CanBreakSmallCrates
RC_FIRE_TEMPLE_AFTER_HAMMER_SMALL_CRATE_2 CanBreakSmallCrates
//Exits
RR_FIRE_TEMPLE_ABOVE_FIRE_MAZE (CanUse RG_MEGATON_HAMMER)
def RR_FIRE_TEMPLE_ABOVE_FIRE_MAZE SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple Above Fire Maze
//Exits
RR_FIRE_TEMPLE_HAMMER_RETURN_PATH true
RR_FIRE_TEMPLE_FIRE_MAZE_UPPER (CanUse RG_MEGATON_HAMMER)
//potentially dangerous temp flag on the first room's torches, should be made permanent if possible
def RR_FIRE_TEMPLE_MQ_FIRST_ROOM_LOWER SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple MQ First Room Lower
//Checks
RC_FIRE_TEMPLE_MQ_ENTRANCE_POT_1 CanBreakPots
RC_FIRE_TEMPLE_MQ_ENTRANCE_POT_2 CanBreakPots
//Exits
RR_FIRE_TEMPLE_ENTRYWAY true
RR_FIRE_TEMPLE_MQ_MAP_ROOM_SOUTH true
RR_FIRE_TEMPLE_MQ_FIRST_ROOM_UPPER (or IsAdult (CanUse RG_HOOKSHOT))
@ -255,25 +319,32 @@ RR_FIRE_TEMPLE_MQ_STALFOS_ROOM (SmallKeys SCENE_FIRE_TEMPLE 5)
def RR_FIRE_TEMPLE_MQ_FIRST_ROOM_UPPER SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple MQ First Room Upper
//Exits
RR_FIRE_TEMPLE_MQ_FIRST_ROOM_LOWER true
RR_FIRE_TEMPLE_MQ_NEAR_BOSS_ROOM HasFireSource
RR_FIRE_TEMPLE_MQ_BIG_LAVA_ROOM (Here (CanUse RG_MEGATON_HAMMER))
def RR_FIRE_TEMPLE_MQ_MAP_ROOM_SOUTH SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple MQ Map Room South
//Checks
RC_FIRE_TEMPLE_MQ_MAP_ROOM_SIDE_CHEST (CanKillEnemy RE_LIKE_LIKE)
//Exits
RR_FIRE_TEMPLE_MQ_FIRST_ROOM_LOWER (Here (CanKillEnemy RE_LIKE_LIKE))
RR_FIRE_TEMPLE_MQ_MAP_ROOM_CAGE OpenedLowestGoronCage
def RR_FIRE_TEMPLE_MQ_STALFOS_ROOM SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple MQ Stalfos Room
//Checks
RC_FIRE_TEMPLE_MQ_LOOP_STALFOS_SUN_FAIRY (CanUse RG_SUNS_SONG)
//Exits
RR_FIRE_TEMPLE_MQ_FIRST_ROOM_LOWER true
RR_FIRE_TEMPLE_MQ_IRON_KNUCKLE_ROOM (Here (CanKillEnemy RE_STALFOS ED_CLOSE true 2))
def RR_FIRE_TEMPLE_MQ_IRON_KNUCKLE_ROOM SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple MQ Iron Knuckle Room
//Events
FairyPot true
//Checks
RC_FIRE_TEMPLE_MQ_LOOP_KNUCKLE_SUN_FAIRY (CanUse RG_SUNS_SONG)
RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_1 CanBreakPots
RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_2 CanBreakPots
@ -283,33 +354,42 @@ RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_5 CanBreakPots
RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_6 CanBreakPots
RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_7 CanBreakPots
RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_8 CanBreakPots
//Exits
RR_FIRE_TEMPLE_MQ_STALFOS_ROOM true
RR_FIRE_TEMPLE_MQ_LOWER_FLARE_DANCER (Here (CanKillEnemy RE_IRON_KNUCKLE))
def RR_FIRE_TEMPLE_MQ_LOWER_FLARE_DANCER SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple MQ Lower Flare Dancer
//Checks
RC_FIRE_TEMPLE_MQ_MEGATON_HAMMER_CHEST (and (or IsAdult (CanUse RG_HOOKSHOT)) (Here (CanKillEnemy RE_FLARE_DANCER)))
//Exits
RR_FIRE_TEMPLE_MQ_IRON_KNUCKLE_ROOM true
RR_FIRE_TEMPLE_MQ_MAP_ROOM_NORTH (Here (CanKillEnemy RE_FLARE_DANCER))
def RR_FIRE_TEMPLE_MQ_MAP_ROOM_NORTH SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple MQ Map Room North
//Events
OpenedLowestGoronCage (CanUse RG_MEGATON_HAMMER)
//Exits
RR_FIRE_TEMPLE_MQ_LOWER_FLARE_DANCER true
RR_FIRE_TEMPLE_MQ_MAP_ROOM_CAGE OpenedLowestGoronCage
def RR_FIRE_TEMPLE_MQ_MAP_ROOM_CAGE SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple MQ Map Room Cage
//Checks
RC_FIRE_TEMPLE_MQ_MAP_CHEST true
//Exits
RR_FIRE_TEMPLE_MQ_MAP_ROOM_NORTH OpenedLowestGoronCage
RR_FIRE_TEMPLE_MQ_MAP_ROOM_SOUTH OpenedLowestGoronCage
def RR_FIRE_TEMPLE_MQ_NEAR_BOSS_ROOM SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple MQ Near Boss Room
//If we're using the south torch as the initial torch, or using FAs, we either have to cross to the north to remove the crate, or use a trick to ignore it
//Checks
RC_FIRE_TEMPLE_MQ_NEAR_BOSS_CHEST (and (> FireTimer 25) (and RT_FIRE_MQ_NEAR_BOSS (or (CanUse RG_FIRE_ARROWS) (and IsAdult (and (CanUse RG_DINS_FIRE) (CanUse RG_FAIRY_BOW))))))
RC_FIRE_TEMPLE_MQ_OUTSIDE_BOSS_CRATE_1 (and (> FireTimer 25) CanBreakCrates)
RC_FIRE_TEMPLE_MQ_OUTSIDE_BOSS_CRATE_2 (and (> FireTimer 25) CanBreakCrates)
//Exits
RR_FIRE_TEMPLE_MQ_FIRST_ROOM_UPPER true
//Child cannot make it to the north side torches without a hook without specifically bunny hood speed + hover boots
RR_FIRE_TEMPLE_MQ_NEAR_BOSS_ROOM_NORTH (and (> FireTimer 32) (or (CanUse RG_HOOKSHOT) (and IsAdult (CanUse RG_HOVER_BOOTS))))
@ -326,6 +406,7 @@ Fire Temple MQ Near Boss Room North
//Fairies cannot be used for this as it is time sensetive, and NL is only useful with sticks as it disables other magic while in use, so it's tunic or raw damage taking ability.
//testing tells me you take 3 ticks of lava damage, which is 12 internal damage or 3/4 of a heart at x1 damage multiplier, performing this run
//logic->EffectiveHealth() works in half hearts for whatever reason, meaning this needs a deeper refactor to be perfect, but it should be good enough for now
//Checks
RC_FIRE_TEMPLE_MQ_NEAR_BOSS_CHEST (or (CanUse RG_FIRE_ARROWS) (and (CanUse RG_DINS_FIRE) (or (CanUse RG_FAIRY_BOW) (or (CanUse RG_LONGSHOT) (and IsAdult (or (CanUse RG_HOVER_BOOTS) (or (CanUse RG_GORON_TUNIC) (or (>= EffectiveHealth 2) (and (CanUse RG_NAYRUS_LOVE) (CanUse RG_STICKS))))))))))
RC_FIRE_TEMPLE_MQ_OUTSIDE_BOSS_POT_1 CanBreakPots
RC_FIRE_TEMPLE_MQ_OUTSIDE_BOSS_POT_2 CanBreakPots
@ -335,17 +416,20 @@ RC_FIRE_TEMPLE_MQ_OUTSIDE_BOSS_CRATE_3 CanBreakCrates
RC_FIRE_TEMPLE_MQ_OUTSIDE_BOSS_CRATE_4 CanBreakCrates
RC_FIRE_TEMPLE_MQ_OUTSIDE_BOSS_CRATE_5 CanBreakCrates
RC_FIRE_TEMPLE_MQ_OUTSIDE_BOSS_CRATE_6 CanBreakCrates
//Exits
RR_FIRE_TEMPLE_NEAR_BOSS_ROOM true
def RR_FIRE_TEMPLE_MQ_BIG_LAVA_ROOM SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple MQ Big Lava Room
//I'm currently assuming the oversight version of RT_FIRE_MQ_BK_CHEST for the fire timer logic
//Checks
RC_FIRE_TEMPLE_MQ_BIG_LAVA_ROOM_BLOCKED_DOOR_CHEST (and (>= FireTimer 40) (and HasFireSource (and HasExplosives (or (CanUse RG_HOOKSHOT) (and IsAdult RT_FIRE_MQ_BLOCKED_CHEST)))))
//implies CanGetEnemyDrop(RE_GOLD_SKULLTULA)
RC_FIRE_TEMPLE_MQ_GS_BIG_LAVA_ROOM_OPEN_DOOR (and (>= FireTimer 20) (CanUse RG_MEGATON_HAMMER))
RC_FIRE_TEMPLE_MQ_LAVA_ROOM_NORTH_POT CanBreakPots
RC_FIRE_TEMPLE_MQ_LAVA_ROOM_HIGH_POT CanBreakPots
RC_FIRE_TEMPLE_MQ_LAVA_ROOM_SOUTH_POT (and (>= FireTimer 40) (or (CanUse RG_HOOKSHOT) (and RT_FIRE_MQ_BLOCKED_CHEST (or (and IsAdult CanBreakPots) (CanUse RG_BOOMERANG)))))
//Exits
RR_FIRE_TEMPLE_MQ_FIRST_ROOM_UPPER (>= FireTimer 20)
//This room assumes Goron Tunic until looser tunic requirements tricks are made
RR_FIRE_TEMPLE_MQ_ELEVATOR_ROOM (and (CanUse RG_GORON_TUNIC) (SmallKeys SCENE_FIRE_TEMPLE 2))
@ -353,22 +437,28 @@ RR_FIRE_TEMPLE_MQ_TORCH_FIREWALL_ROOM (and HasFireSource (and (or (and (CanUse R
def RR_FIRE_TEMPLE_MQ_TORCH_FIREWALL_ROOM SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple MQ Torch Firewall Room
//Events
FairyPot (CanUse RG_HOOKSHOT)
//Checks
RC_FIRE_TEMPLE_MQ_BOSS_KEY_CHEST (CanUse RG_HOOKSHOT)
RC_FIRE_TEMPLE_MQ_LAVA_TORCH_POT_1 HookshotOrBoomerang
RC_FIRE_TEMPLE_MQ_LAVA_TORCH_POT_2 HookshotOrBoomerang
//Exits
RR_FIRE_TEMPLE_MQ_BIG_LAVA_ROOM true
def RR_FIRE_TEMPLE_MQ_ELEVATOR_ROOM SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple MQ Elevator Room
//Checks
RC_FIRE_TEMPLE_MQ_FIRE_PILLAR_LEFT_HEART true
RC_FIRE_TEMPLE_MQ_FIRE_PILLAR_RIGHT_HEART true
RC_FIRE_TEMPLE_MQ_FIRE_PILLAR_LOWER_HEART true
//Exits
RR_FIRE_TEMPLE_MQ_BIG_LAVA_ROOM true
RR_FIRE_TEMPLE_MQ_BIG_TORCH_ROOM true
def RR_FIRE_TEMPLE_MQ_BIG_TORCH_ROOM SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple MQ Big Torch Room
//Exits
RR_FIRE_TEMPLE_MQ_LOWER_MAZE (or (and HasFireSource (CanUse RG_HOOKSHOT)) (and RT_FIRE_MQ_CLIMB (CanUse RG_HOVER_BOOTS)))
RR_FIRE_TEMPLE_MQ_ELEVATOR_ROOM (CanUse RG_GORON_TUNIC)
RR_FIRE_TEMPLE_MQ_MAZE_SHORTCUT_CAGE OpenedUpperFireShortcut
@ -376,7 +466,9 @@ RR_FIRE_TEMPLE_MQ_MAZE_SHORTCUT_CAGE OpenedUpperFireShortcut
def RR_FIRE_TEMPLE_MQ_LOWER_MAZE SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple MQ Lower Maze
//Check handled on both floors
//Checks
RC_FIRE_TEMPLE_MQ_LIZALFOS_MAZE_SIDE_ROOM_CHEST (and HasExplosives RT_FIRE_MQ_MAZE_SIDE_ROOM)
//Exits
RR_FIRE_TEMPLE_MQ_BIG_TORCH_ROOM true
//Explosives can also reach this room. Chus is relatively simple, they need to detonate on the first horizontal bar up from the floor while horizontally near the switch, but bombs are much harder
RR_FIRE_TEMPLE_MQ_LOWER_MAZE_CRATE_CAGE (Here CanJumpslash)
@ -385,16 +477,19 @@ RR_FIRE_TEMPLE_MQ_UPPER_MAZE (and HasExplosives (and (CanUse RG_MEGATON_HAMMER)
def RR_FIRE_TEMPLE_MQ_LOWER_MAZE_CRATE_CAGE SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple MQ Lower Maze Crate Cage
//Checks
RC_FIRE_TEMPLE_MQ_LIZALFOS_MAZE_LOWER_CHEST true
RC_FIRE_TEMPLE_MQ_LIZALFOS_MAZE_LOWER_CRATE_1 CanBreakCrates
RC_FIRE_TEMPLE_MQ_LIZALFOS_MAZE_LOWER_CRATE_2 CanBreakCrates
RC_FIRE_TEMPLE_MQ_LIZALFOS_MAZE_LOWER_CRATE_3 CanBreakCrates
//Exits
RR_FIRE_TEMPLE_MQ_LOWER_MAZE true
//it's possible to make the RT_FIRE_MQ_MAZE_HOVERS as child using bunny hood jumps, but not adult as adult bonks
RR_FIRE_TEMPLE_MQ_UPPER_MAZE (and IsAdult (or (and RT_FIRE_MQ_MAZE_HOVERS (CanUse RG_HOVER_BOOTS)) RT_FIRE_MQ_MAZE_JUMP))
def RR_FIRE_TEMPLE_MQ_UPPER_MAZE SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple MQ Upper Maze
//Exits
RR_FIRE_TEMPLE_MQ_LOWER_MAZE true
//this cage is much more lenient than the lower cage as the switch is close to the front. sling, rang and bow all hit the switch easily, though might be too unintuitive for default logic
//This shouldn't come up in most cases anyway as most methods to get here need either a melee weapon or explosives
@ -406,6 +501,7 @@ RR_FIRE_TEMPLE_MQ_HIGH_TORCH_ROOM (and (SmallKeys SCENE_FIRE_TEMPLE 3) (CanUse R
def RR_FIRE_TEMPLE_MQ_UPPER_MAZE_BOX_CAGE SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple MQ Upper Maze Box Cage
//Checks
RC_FIRE_TEMPLE_MQ_LIZALFOS_MAZE_UPPER_CHEST true
RC_FIRE_TEMPLE_MQ_LIZALFOS_MAZE_UPPER_CRATE_1 CanBreakCrates
RC_FIRE_TEMPLE_MQ_LIZALFOS_MAZE_UPPER_CRATE_2 CanBreakCrates
@ -414,16 +510,20 @@ RC_FIRE_TEMPLE_MQ_LIZALFOS_MAZE_UPPER_SMALL_CRATE_1 CanBreakSmallCrates
RC_FIRE_TEMPLE_MQ_LIZALFOS_MAZE_UPPER_SMALL_CRATE_2 CanBreakSmallCrates
//Assumes maze access
RC_FIRE_TEMPLE_MQ_LIZALFOS_MAZE_SIDE_ROOM_CHEST HasExplosives
//Exits
RR_FIRE_TEMPLE_MQ_UPPER_MAZE true
def RR_FIRE_TEMPLE_MQ_MAZE_SHORTCUT SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple MQ Maze Shortcut
//Events
OpenedUpperFireShortcut (CanUse RG_MEGATON_HAMMER)
//Exits
RR_FIRE_TEMPLE_MQ_UPPER_MAZE true
RR_FIRE_TEMPLE_MQ_MAZE_SHORTCUT_CAGE OpenedUpperFireShortcut
def RR_FIRE_TEMPLE_MQ_MAZE_SHORTCUT_CAGE SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple MQ Maze Shortcut Cage
//Checks
RC_FIRE_TEMPLE_MQ_COMPASS_CHEST OpenedUpperFireShortcut
RC_FIRE_TEMPLE_MQ_SHORTCUT_CRATE_1 (and OpenedUpperFireShortcut CanBreakCrates)
RC_FIRE_TEMPLE_MQ_SHORTCUT_CRATE_2 (and OpenedUpperFireShortcut CanBreakCrates)
@ -431,6 +531,7 @@ RC_FIRE_TEMPLE_MQ_SHORTCUT_CRATE_3 (and OpenedUpperFireShortcut CanBreakCrates)
RC_FIRE_TEMPLE_MQ_SHORTCUT_CRATE_4 (and OpenedUpperFireShortcut CanBreakCrates)
RC_FIRE_TEMPLE_MQ_SHORTCUT_CRATE_5 (and OpenedUpperFireShortcut CanBreakCrates)
RC_FIRE_TEMPLE_MQ_SHORTCUT_CRATE_6 (and OpenedUpperFireShortcut CanBreakCrates)
//Exits
RR_FIRE_TEMPLE_MQ_MAZE_SHORTCUT OpenedUpperFireShortcut
RR_FIRE_TEMPLE_MQ_BIG_TORCH_ROOM OpenedUpperFireShortcut
@ -438,21 +539,27 @@ def RR_FIRE_TEMPLE_MQ_BURNING_BLOCK_CLIMB SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple MQ Burning Block Climb
//WallFairy (CanUse RG_HOOKSHOT)
//There's definitely ways to do this hammerless, but with one points on it's a trick
//Checks
RC_FIRE_TEMPLE_MQ_GS_SKULL_ON_FIRE (and (CanUse RG_HOOKSHOT) (CanUse RG_MEGATON_HAMMER))
//Exits
RR_FIRE_TEMPLE_MQ_UPPER_MAZE true
RR_FIRE_TEMPLE_MQ_NARROW_PATH_ROOM TakeDamage
def RR_FIRE_TEMPLE_MQ_NARROW_PATH_ROOM SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple MQ Narrow Path Room
//Events
FairyPot true
//Checks
RC_FIRE_TEMPLE_MQ_ABOVE_LAVA_POT_1 CanBreakPots
RC_FIRE_TEMPLE_MQ_ABOVE_LAVA_POT_2 CanBreakPots
RC_FIRE_TEMPLE_MQ_ABOVE_LAVA_POT_3 CanBreakPots
//Exits
RR_FIRE_TEMPLE_MQ_LOWER_MAZE true
RR_FIRE_TEMPLE_MQ_BIG_LAVA_ROOM TakeDamage
def RR_FIRE_TEMPLE_MQ_HIGH_TORCH_ROOM SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple MQ High Torch Room
//Checks
RC_FIRE_TEMPLE_MQ_FLAME_WALL_POT_1 CanBreakPots
RC_FIRE_TEMPLE_MQ_FLAME_WALL_POT_2 CanBreakPots
RC_FIRE_TEMPLE_MQ_LAVA_TORCH_CRATE_1 CanBreakCrates
@ -465,6 +572,7 @@ RC_FIRE_TEMPLE_MQ_LAVA_TORCH_SMALL_CRATE_2 CanBreakSmallCrates
RC_FIRE_TEMPLE_MQ_LAVA_TORCH_SMALL_CRATE_3 CanBreakSmallCrates
RC_FIRE_TEMPLE_MQ_LAVA_TORCH_SMALL_CRATE_4 CanBreakSmallCrates
RC_FIRE_TEMPLE_MQ_LAVA_TORCH_SMALL_CRATE_5 CanBreakSmallCrates
//Exits
RR_FIRE_TEMPLE_MQ_UPPER_MAZE (SmallKeys SCENE_FIRE_TEMPLE 3)
RR_FIRE_TEMPLE_MQ_NARROW_PATH_ROOM true
//Child has issues navigating the higher points of this room without an equip swapped hookshot
@ -472,9 +580,11 @@ RR_FIRE_TEMPLE_MQ_SOUTH_FIRE_MAZE (and (Here (or (CanUse RG_FIRE_ARROWS) (and (C
def RR_FIRE_TEMPLE_MQ_SOUTH_FIRE_MAZE SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple MQ South Fire Maze
//Checks
RC_FIRE_TEMPLE_MQ_GS_FIRE_WALL_MAZE_CENTER HasExplosives
RC_FIRE_TEMPLE_MQ_SOUTH_FIRE_MAZE_WEST_POT CanBreakPots
RC_FIRE_TEMPLE_MQ_SOUTH_FIRE_MAZE_EAST_POT CanBreakPots
//Exits
RR_FIRE_TEMPLE_MQ_NEAR_BOSS_ROOM HitFireTemplePlatform
RR_FIRE_TEMPLE_MQ_HIGH_TORCH_ROOM true
RR_FIRE_TEMPLE_MQ_FIRE_MAZE_PLATFORMS (or IsAdult (or (CanUse RG_SONG_OF_TIME) (CanUse RG_HOVER_BOOTS)))
@ -484,37 +594,46 @@ RR_FIRE_TEMPLE_MQ_WEST_FIRE_MAZE OpenedFireMQFireMazeDoor
def RR_FIRE_TEMPLE_MQ_FIRE_MAZE_PLATFORMS SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple MQ Fire Maze Platforms
//Events
HitFireTemplePlatform (CanUse RG_MEGATON_HAMMER)
OpenedFireMQFireMazeDoor (and (CanUse RG_MEGATON_HAMMER) (CanUse RG_HOOKSHOT))
//Exits
RR_FIRE_TEMPLE_MQ_SOUTH_FIRE_MAZE true
RR_FIRE_TEMPLE_MQ_NORTH_FIRE_MAZE (or (CanUse RG_SONG_OF_TIME) (CanUse RG_HOVER_BOOTS))
//trick to get to RR_FIRE_TEMPLE_MQ_WEST_FIRE_MAZE with hovers + taking damage is plausible
def RR_FIRE_TEMPLE_MQ_NORTH_FIRE_MAZE SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple MQ North Fire Maze
//Checks
RC_FIRE_TEMPLE_MQ_GS_FIRE_WALL_MAZE_SIDE_ROOM (CanGetEnemyDrop RE_GOLD_SKULLTULA)
RC_FIRE_TEMPLE_MQ_PAST_FIRE_MAZE_SOUTH_POT (CanUse RG_BOOMERANG)
RC_FIRE_TEMPLE_MQ_FIRE_MAZE_NORTHMOST_POT CanBreakPots
RC_FIRE_TEMPLE_MQ_FIRE_MAZE_NORTHWEST_POT CanBreakPots
//Exits
RR_FIRE_TEMPLE_MQ_SOUTH_FIRE_MAZE (or IsAdult RT_FIRE_MQ_FLAME_MAZE)
RR_FIRE_TEMPLE_MQ_WEST_FIRE_MAZE RT_FIRE_MQ_FLAME_MAZE
def RR_FIRE_TEMPLE_MQ_WEST_FIRE_MAZE SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple MQ West Fire Maze
//Exits
RR_FIRE_TEMPLE_MQ_FIRE_MAZE_PAST_WALL true
RR_FIRE_TEMPLE_MQ_NORTH_FIRE_MAZE RT_FIRE_MQ_FLAME_MAZE
//this area exists for the pots in case we void warp to the top of fire somehow, because there's no way to get back the way we came
def RR_FIRE_TEMPLE_MQ_FIRE_MAZE_PAST_WALL SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple MQ Fire Maze Past Wall
//Checks
RC_FIRE_TEMPLE_MQ_PAST_FIRE_MAZE_SOUTH_POT CanBreakPots
RC_FIRE_TEMPLE_MQ_PAST_FIRE_MAZE_NORTH_POT CanBreakPots
RC_FIRE_TEMPLE_MQ_FIRE_MAZE_NORTHWEST_POT (CanUse RG_BOOMERANG)
//Exits
RR_FIRE_TEMPLE_MQ_UPPER_FLARE_DANCER true
def RR_FIRE_TEMPLE_MQ_UPPER_FLARE_DANCER SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple MQ North Fire Maze
//Checks
RC_FIRE_TEMPLE_MQ_FREESTANDING_KEY (CanKillEnemy RE_FLARE_DANCER)
//Exits
RR_FIRE_TEMPLE_MQ_FIRE_MAZE_PAST_WALL (CanKillEnemy RE_FLARE_DANCER)
RR_FIRE_TEMPLE_MQ_SCARECROW_ROOM (and (CanKillEnemy RE_FLARE_DANCER) (SmallKeys SCENE_FIRE_TEMPLE 4))
@ -522,11 +641,13 @@ def RR_FIRE_TEMPLE_MQ_SCARECROW_ROOM SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple MQ Scarecrow Room
//This requires nothing in N64 logic, but is tight enough to need rollspam with the one-point on which is stricter than I would normally consider in logic
//Child basically needs the scarecrow or a bunny hood though due to a worse ledge grab.
//Checks
RC_FIRE_TEMPLE_MQ_CHEST_ON_FIRE (or IsAdult (CanUse RG_SCARECROW))
//The dropdown here is unusual in that it hits 1 of 3 locations: RR_FIRE_TEMPLE_MQ_SOUTH_FIRE_MAZE, RR_FIRE_TEMPLE_MQ_FIRE_MAZE_PLATFORMS and the section of RR_FIRE_TEMPLE_MQ_FIRE_MAZE_PLATFORMS with the hammer switch
//Using this dropdown is in N64 logic elsewhere, but not here, probably because it requires good foreknowlege to determine where to land
//This would be a logical method to reach the hammer switch without hookshot, but it practically requires access to the area that switch unlocks already. It could also be first child access to PLATFORMS if tricks ever enable that
//If a practical use for this drop is found, it should be made a trick
//Exits
RR_FIRE_TEMPLE_MQ_UPPER_FLARE_DANCER (SmallKeys SCENE_FIRE_TEMPLE 4)
RR_FIRE_TEMPLE_MQ_COLLAPSED_STAIRS (and (Here (CanUse RG_MEGATON_HAMMER)) (SmallKeys SCENE_FIRE_TEMPLE 5))
@ -534,20 +655,26 @@ RR_FIRE_TEMPLE_MQ_COLLAPSED_STAIRS (and (Here (CanUse RG_MEGATON_HAMMER)) (Small
def RR_FIRE_TEMPLE_MQ_COLLAPSED_STAIRS SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple MQ Collapsed Stairs
//If someone manages to make a trick to get here from fire maze, this needs to be in a separate room as the door back is barred
//Checks
RC_FIRE_TEMPLE_MQ_GS_ABOVE_FIRE_MAZE (CanUse RG_HOOKSHOT)
//Exits
RR_FIRE_TEMPLE_MQ_FIRE_MAZE_PLATFORMS (and (CanUse RG_HOOKSHOT) (Here (CanUse RG_MEGATON_HAMMER)))
RR_FIRE_TEMPLE_MQ_SCARECROW_ROOM (and IsAdult (CanUse RG_HOOKSHOT))
def RR_FIRE_TEMPLE_BOSS_ENTRYWAY SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple Boss Entryway
//Exits
RR_FIRE_TEMPLE_NEAR_BOSS_ROOM (and (IsDungeonVanilla FIRE_TEMPLE) false)
RR_FIRE_TEMPLE_MQ_NEAR_BOSS_ROOM (and (IsDungeonMQ FIRE_TEMPLE) false)
RR_FIRE_TEMPLE_BOSS_ROOM (HasItem RG_FIRE_TEMPLE_BOSS_KEY)
def RR_FIRE_TEMPLE_BOSS_ROOM SCENE_FIRE_TEMPLE_BOSS false
Fire Temple Boss Room
//Events
FireTempleClear (and (>= FireTimer 64) (CanKillEnemy RE_VOLVAGIA))
//Checks
RC_FIRE_TEMPLE_VOLVAGIA_HEART FireTempleClear
RC_VOLVAGIA FireTempleClear
//Exits
RR_FIRE_TEMPLE_BOSS_ENTRYWAY false
RR_DMC_CENTRAL_LOCAL @deprioritize FireTempleClear

View file

@ -1,24 +1,30 @@
def RR_FOREST_TEMPLE_ENTRYWAY SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple Entryway
//Exits
RR_FOREST_TEMPLE_FIRST_ROOM (IsDungeonVanilla FOREST_TEMPLE)
RR_FOREST_TEMPLE_MQ_LOBBY (IsDungeonMQ FOREST_TEMPLE)
RR_SACRED_FOREST_MEADOW true
def RR_FOREST_TEMPLE_FIRST_ROOM SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple First Room
//Checks
RC_FOREST_TEMPLE_FIRST_ROOM_CHEST true
RC_FOREST_TEMPLE_GS_FIRST_ROOM (or (and IsAdult (CanUse RG_BOMB_BAG)) (or (CanUse RG_FAIRY_BOW) (or (CanUse RG_HOOKSHOT) (or (CanUse RG_BOOMERANG) (or (CanUse RG_FAIRY_SLINGSHOT) (or (CanUse RG_BOMBCHU_5) (or (CanUse RG_DINS_FIRE) (and RT_FOREST_FIRST_GS (or CanJumpslashExceptHammer (and IsChild (CanUse RG_BOMB_BAG)))))))))))
//Exits
RR_FOREST_TEMPLE_ENTRYWAY true
RR_FOREST_TEMPLE_SOUTH_CORRIDOR true
def RR_FOREST_TEMPLE_SOUTH_CORRIDOR SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple South Corridor
//Exits
RR_FOREST_TEMPLE_FIRST_ROOM true
RR_FOREST_TEMPLE_LOBBY (CanPassEnemy RE_BIG_SKULLTULA)
def RR_FOREST_TEMPLE_LOBBY SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple Lobby
//Events
ForestTempleMeg (and ForestTempleJoelle (and ForestTempleBeth (and ForestTempleAmy (CanUse RG_FAIRY_BOW))))
//Checks
RC_FOREST_TEMPLE_GS_LOBBY HookshotOrBoomerang
RC_FOREST_TEMPLE_LOBBY_POT_1 CanBreakPots
RC_FOREST_TEMPLE_LOBBY_POT_2 CanBreakPots
@ -26,6 +32,7 @@ RC_FOREST_TEMPLE_LOBBY_POT_3 CanBreakPots
RC_FOREST_TEMPLE_LOBBY_POT_4 CanBreakPots
RC_FOREST_TEMPLE_LOBBY_POT_5 CanBreakPots
RC_FOREST_TEMPLE_LOBBY_POT_6 CanBreakPots
//Exits
RR_FOREST_TEMPLE_SOUTH_CORRIDOR true
RR_FOREST_TEMPLE_NORTH_CORRIDOR true
RR_FOREST_TEMPLE_NW_OUTDOORS_LOWER (or (CanUse RG_SONG_OF_TIME) IsChild)
@ -37,24 +44,31 @@ RR_FOREST_TEMPLE_BOSS_ENTRYWAY false
def RR_FOREST_TEMPLE_NORTH_CORRIDOR SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple North Corridor
//Exits
RR_FOREST_TEMPLE_LOBBY true
RR_FOREST_TEMPLE_LOWER_STALFOS true
def RR_FOREST_TEMPLE_LOWER_STALFOS SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple Lower Stalfos
//Events
FairyPot true
//Checks
RC_FOREST_TEMPLE_FIRST_STALFOS_CHEST (CanKillEnemy RE_STALFOS ED_CLOSE true 2)
RC_FOREST_TEMPLE_LOWER_STALFOS_POT_1 CanBreakPots
RC_FOREST_TEMPLE_LOWER_STALFOS_POT_2 CanBreakPots
//Exits
RR_FOREST_TEMPLE_NORTH_CORRIDOR true
def RR_FOREST_TEMPLE_NW_OUTDOORS_LOWER SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple NW Outdoors Lower
//Events
DekuBabaSticks CanGetDekuBabaSticks
DekuBabaNuts CanGetDekuBabaNuts
//Checks
RC_FOREST_TEMPLE_GS_LEVEL_ISLAND_COURTYARD (or (CanUse RG_LONGSHOT) (Here HookshotOrBoomerang))
RC_FOREST_TEMPLE_COURTYARD_RIGHT_HEART (and (CanUse RG_BOOMERANG) RT_FOREST_OUTDOORS_HEARTS_BOOMERANG)
RC_FOREST_TEMPLE_COURTYARD_LEFT_HEART (and (CanUse RG_BOOMERANG) RT_FOREST_OUTDOORS_HEARTS_BOOMERANG)
//Exits
RR_FOREST_TEMPLE_LOBBY (CanUse RG_SONG_OF_TIME)
RR_FOREST_TEMPLE_NW_OUTDOORS_UPPER (and RT_HOVER_BOOST_SIMPLE (and RT_DAMAGE_BOOST_SIMPLE (and HasExplosives (CanUse RG_HOVER_BOOTS))))
RR_FOREST_TEMPLE_MAP_ROOM true
@ -63,10 +77,13 @@ RR_FOREST_TEMPLE_BOSS_ENTRYWAY false
def RR_FOREST_TEMPLE_NW_OUTDOORS_UPPER SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple NW Outdoors Upper
//Events
DekuBabaSticks CanGetDekuBabaSticks
DekuBabaNuts CanGetDekuBabaNuts
//Checks
RC_FOREST_TEMPLE_COURTYARD_RIGHT_HEART true
RC_FOREST_TEMPLE_COURTYARD_LEFT_HEART true
//Exits
RR_FOREST_TEMPLE_NW_OUTDOORS_LOWER true
RR_FOREST_TEMPLE_BELOW_BOSS_KEY_CHEST true
RR_FOREST_TEMPLE_FLOORMASTER_ROOM true
@ -74,10 +91,13 @@ RR_FOREST_TEMPLE_BLOCK_PUSH_ROOM true
def RR_FOREST_TEMPLE_NE_OUTDOORS_LOWER SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple NE Outdoors Lower
//Events
DekuBabaSticks CanGetDekuBabaSticks
DekuBabaNuts CanGetDekuBabaNuts
//Checks
RC_FOREST_TEMPLE_RAISED_ISLAND_COURTYARD_CHEST (or (CanUse RG_HOOKSHOT) (or (HasAccessTo RR_FOREST_TEMPLE_FALLING_ROOM) (and (HasAccessTo RR_FOREST_TEMPLE_NE_OUTDOORS_UPPER) (and IsAdult (and RT_FOREST_OUTDOORS_LEDGE (CanUse RG_HOVER_BOOTS))))))
RC_FOREST_TEMPLE_GS_RAISED_ISLAND_COURTYARD (or (CanUse RG_HOOKSHOT) (or (and RT_FOREST_OUTDOORS_EAST_GS (CanUse RG_BOOMERANG)) (Here (or (CanUse RG_FAIRY_BOW) (or (CanUse RG_FAIRY_SLINGSHOT) (or (CanUse RG_DINS_FIRE) HasExplosives))))))
//Exits
RR_FOREST_TEMPLE_LOBBY true
RR_FOREST_TEMPLE_NE_OUTDOORS_UPPER (or (CanUse RG_LONGSHOT) (and RT_FOREST_VINES (CanUse RG_HOOKSHOT)))
RR_FOREST_TEMPLE_SEWER (or (HasItem RG_GOLDEN_SCALE) (or (CanUse RG_IRON_BOOTS) (HasAccessTo RR_FOREST_TEMPLE_NE_OUTDOORS_UPPER)))
@ -85,43 +105,55 @@ RR_FOREST_TEMPLE_FALLING_ROOM false
def RR_FOREST_TEMPLE_NE_OUTDOORS_UPPER SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple NE Outdoors Upper
//Events
DekuBabaSticks CanGetDekuBabaSticks
DekuBabaNuts CanGetDekuBabaNuts
//Exits
RR_FOREST_TEMPLE_NE_OUTDOORS_LOWER true
RR_FOREST_TEMPLE_MAP_ROOM true
RR_FOREST_TEMPLE_FALLING_ROOM (and RT_FOREST_DOORFRAME (and CanJumpslashExceptHammer (and (CanUse RG_HOVER_BOOTS) (CanUse RG_SCARECROW))))
def RR_FOREST_TEMPLE_MAP_ROOM SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple Map Room
//Checks
RC_FOREST_TEMPLE_MAP_CHEST (CanKillEnemy RE_BLUE_BUBBLE)
//Exits
RR_FOREST_TEMPLE_NW_OUTDOORS_LOWER (Here (CanKillEnemy RE_BLUE_BUBBLE))
RR_FOREST_TEMPLE_NE_OUTDOORS_UPPER (Here (CanKillEnemy RE_BLUE_BUBBLE))
def RR_FOREST_TEMPLE_SEWER SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple Sewer
//Checks
RC_FOREST_TEMPLE_WELL_CHEST (or (HasAccessTo RR_FOREST_TEMPLE_NE_OUTDOORS_UPPER) (and CanOpenUnderwaterChest (>= WaterTimer 8)))
RC_FOREST_TEMPLE_WELL_WEST_HEART (or (HasAccessTo RR_FOREST_TEMPLE_NE_OUTDOORS_UPPER) (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 8)))
RC_FOREST_TEMPLE_WELL_EAST_HEART (or (HasAccessTo RR_FOREST_TEMPLE_NE_OUTDOORS_UPPER) (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 8)))
//Exits
RR_FOREST_TEMPLE_NW_OUTDOORS_LOWER true
RR_FOREST_TEMPLE_NE_OUTDOORS_LOWER true
def RR_FOREST_TEMPLE_BELOW_BOSS_KEY_CHEST SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple Below Boss Key Chest
//Exits
RR_FOREST_TEMPLE_NW_OUTDOORS_UPPER (Here (CanKillEnemy RE_BLUE_BUBBLE))
def RR_FOREST_TEMPLE_FLOORMASTER_ROOM SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple Floormaster Room
//Checks
RC_FOREST_TEMPLE_FLOORMASTER_CHEST CanDamage
//Exits
RR_FOREST_TEMPLE_NW_OUTDOORS_UPPER true
def RR_FOREST_TEMPLE_WEST_CORRIDOR SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple West Corridor
//Exits
RR_FOREST_TEMPLE_LOBBY (SmallKeys SCENE_FOREST_TEMPLE 1)
RR_FOREST_TEMPLE_BLOCK_PUSH_ROOM (or CanAttack (CanUse RG_NUTS))
def RR_FOREST_TEMPLE_BLOCK_PUSH_ROOM SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple Block Push Room
//Checks
RC_FOREST_TEMPLE_EYE_SWITCH_CHEST (and (HasItem RG_GORONS_BRACELET) (or (CanUse RG_FAIRY_BOW) (CanUse RG_FAIRY_SLINGSHOT)))
//Exits
RR_FOREST_TEMPLE_WEST_CORRIDOR true
RR_FOREST_TEMPLE_NW_OUTDOORS_UPPER (or (CanUse RG_HOVER_BOOTS) (and RT_FOREST_OUTSIDE_BACKDOOR (and CanJumpslashExceptHammer (HasItem RG_GORONS_BRACELET))))
RR_FOREST_TEMPLE_NW_CORRIDOR_TWISTED (and IsAdult (and (HasItem RG_GORONS_BRACELET) (SmallKeys SCENE_FOREST_TEMPLE 2)))
@ -129,102 +161,130 @@ RR_FOREST_TEMPLE_NW_CORRIDOR_STRAIGHTENED (and IsAdult (and (or (CanUse RG_FAIRY
def RR_FOREST_TEMPLE_NW_CORRIDOR_TWISTED SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple NW Corridor Twisted
//Exits
RR_FOREST_TEMPLE_BLOCK_PUSH_ROOM (SmallKeys SCENE_FOREST_TEMPLE 2)
RR_FOREST_TEMPLE_RED_POE_ROOM (SmallKeys SCENE_FOREST_TEMPLE 3)
def RR_FOREST_TEMPLE_NW_CORRIDOR_STRAIGHTENED SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple NW Corridor Straightened
//Checks
RC_FOREST_TEMPLE_BOSS_KEY_CHEST true
//Exits
RR_FOREST_TEMPLE_BELOW_BOSS_KEY_CHEST true
RR_FOREST_TEMPLE_BLOCK_PUSH_ROOM (SmallKeys SCENE_FOREST_TEMPLE 2)
def RR_FOREST_TEMPLE_RED_POE_ROOM SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple Red Poe Room
//Events
ForestTempleJoelle (CanUse RG_FAIRY_BOW)
//Checks
RC_FOREST_TEMPLE_RED_POE_CHEST ForestTempleJoelle
//Exits
RR_FOREST_TEMPLE_NW_CORRIDOR_TWISTED (SmallKeys SCENE_FOREST_TEMPLE 3)
RR_FOREST_TEMPLE_UPPER_STALFOS true
def RR_FOREST_TEMPLE_UPPER_STALFOS SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple Upper Stalfos
//Checks
RC_FOREST_TEMPLE_BOW_CHEST (CanKillEnemy RE_STALFOS ED_CLOSE true 3)
RC_FOREST_TEMPLE_UPPER_STALFOS_POT_1 CanBreakPots
RC_FOREST_TEMPLE_UPPER_STALFOS_POT_2 CanBreakPots
RC_FOREST_TEMPLE_UPPER_STALFOS_POT_3 CanBreakPots
RC_FOREST_TEMPLE_UPPER_STALFOS_POT_4 CanBreakPots
//Exits
RR_FOREST_TEMPLE_RED_POE_ROOM (CanKillEnemy RE_STALFOS ED_CLOSE true 3)
RR_FOREST_TEMPLE_BLUE_POE_ROOM (CanKillEnemy RE_STALFOS ED_CLOSE true 3)
def RR_FOREST_TEMPLE_BLUE_POE_ROOM SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple Blue Poe Room
//Events
ForestTempleBeth (CanUse RG_FAIRY_BOW)
//Checks
RC_FOREST_TEMPLE_BLUE_POE_CHEST ForestTempleBeth
RC_FOREST_TEMPLE_BLUE_POE_POT_1 CanBreakPots
RC_FOREST_TEMPLE_BLUE_POE_POT_2 CanBreakPots
RC_FOREST_TEMPLE_BLUE_POE_POT_3 CanBreakPots
//Exits
RR_FOREST_TEMPLE_UPPER_STALFOS true
RR_FOREST_TEMPLE_NE_CORRIDOR_STRAIGHTENED (SmallKeys SCENE_FOREST_TEMPLE 4)
def RR_FOREST_TEMPLE_NE_CORRIDOR_STRAIGHTENED SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple NE Corridor Straightened
//Exits
RR_FOREST_TEMPLE_BLUE_POE_ROOM (SmallKeys SCENE_FOREST_TEMPLE 4)
RR_FOREST_TEMPLE_FROZEN_EYE_ROOM (SmallKeys SCENE_FOREST_TEMPLE 5)
def RR_FOREST_TEMPLE_NE_CORRIDOR_TWISTED SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple NE Corridor Twisted
//Exits
RR_FOREST_TEMPLE_FROZEN_EYE_ROOM (SmallKeys SCENE_FOREST_TEMPLE 5)
RR_FOREST_TEMPLE_FALLING_ROOM true
def RR_FOREST_TEMPLE_FROZEN_EYE_ROOM SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple Frozen Eye Room
//Checks
RC_FOREST_TEMPLE_FROZEN_EYE_POT_1 CanBreakPots
RC_FOREST_TEMPLE_FROZEN_EYE_POT_2 CanBreakPots
//Exits
RR_FOREST_TEMPLE_NE_CORRIDOR_STRAIGHTENED (SmallKeys SCENE_FOREST_TEMPLE 5)
RR_FOREST_TEMPLE_NE_CORRIDOR_TWISTED (and (SmallKeys SCENE_FOREST_TEMPLE 5) (or (CanUse RG_FAIRY_BOW) (CanUse RG_DINS_FIRE)))
def RR_FOREST_TEMPLE_FALLING_ROOM SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple Falling Room
//Checks
RC_FOREST_TEMPLE_FALLING_CEILING_ROOM_CHEST true
//Exits
RR_FOREST_TEMPLE_NE_OUTDOORS_LOWER true
RR_FOREST_TEMPLE_GREEN_POE_ROOM true
def RR_FOREST_TEMPLE_GREEN_POE_ROOM SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple Green Poe Room
//Events
ForestTempleAmy (CanUse RG_FAIRY_BOW)
//Checks
RC_FOREST_TEMPLE_GREEN_POE_POT_1 CanBreakPots
RC_FOREST_TEMPLE_GREEN_POE_POT_2 CanBreakPots
//Exits
RR_FOREST_TEMPLE_FALLING_ROOM true
RR_FOREST_TEMPLE_EAST_CORRIDOR ForestTempleAmy
def RR_FOREST_TEMPLE_EAST_CORRIDOR SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple East Corridor
//Exits
RR_FOREST_TEMPLE_LOBBY (or CanAttack (CanUse RG_NUTS))
RR_FOREST_TEMPLE_GREEN_POE_ROOM (or CanAttack (CanUse RG_NUTS))
def RR_FOREST_TEMPLE_BOSS_REGION SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple Boss Region
//Checks
RC_FOREST_TEMPLE_BASEMENT_CHEST true
RC_FOREST_TEMPLE_GS_BASEMENT HookshotOrBoomerang
//Exits
RR_FOREST_TEMPLE_LOBBY true
RR_FOREST_TEMPLE_BOSS_ENTRYWAY true
def RR_FOREST_TEMPLE_MQ_LOBBY SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple MQ Lobby
//Checks
RC_FOREST_TEMPLE_MQ_FIRST_ROOM_CHEST (or (CanPassEnemy RE_BIG_SKULLTULA ED_SHORT_JUMPSLASH false) (CanUse RG_HOVER_BOOTS))
//Implies CanPassEnemy(RE_BIG_SKULLTULA)
RC_FOREST_TEMPLE_MQ_GS_FIRST_HALLWAY HookshotOrBoomerang
//Exits
RR_FOREST_TEMPLE_ENTRYWAY true
RR_FOREST_TEMPLE_MQ_CENTRAL_AREA (and (SmallKeys SCENE_FOREST_TEMPLE 1) (CanPassEnemy RE_BIG_SKULLTULA))
def RR_FOREST_TEMPLE_MQ_CENTRAL_AREA SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple MQ Central Region
//Events
ForestTempleMeg (and ForestTempleJoelle (and ForestTempleBeth (and ForestTempleAmy (CanKillEnemy RE_MEG))))
//Checks
RC_FOREST_TEMPLE_MQ_LOBBY_POT_1 CanBreakPots
RC_FOREST_TEMPLE_MQ_LOBBY_POT_2 CanBreakPots
RC_FOREST_TEMPLE_MQ_LOBBY_POT_3 CanBreakPots
RC_FOREST_TEMPLE_MQ_LOBBY_POT_4 CanBreakPots
RC_FOREST_TEMPLE_MQ_LOBBY_POT_5 CanBreakPots
RC_FOREST_TEMPLE_MQ_LOBBY_POT_6 CanBreakPots
//Exits
RR_FOREST_TEMPLE_MQ_WOLFOS_ROOM (or IsChild (CanUse RG_SONG_OF_TIME))
RR_FOREST_TEMPLE_MQ_NW_OUTDOORS CanHitEyeTargets
RR_FOREST_TEMPLE_MQ_NE_OUTDOORS CanHitEyeTargets
@ -234,20 +294,26 @@ RR_FOREST_TEMPLE_MQ_BASEMENT ForestTempleMeg
def RR_FOREST_TEMPLE_MQ_WOLFOS_ROOM SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple MQ Wolfos Room
//Events
FairyPot true
ForestClearBelowBowChest (CanKillEnemy RE_WOLFOS)
//Checks
RC_FOREST_TEMPLE_MQ_WOLFOS_CHEST ForestClearBelowBowChest
RC_FOREST_TEMPLE_MQ_WOLFOS_POT_1 CanBreakPots
RC_FOREST_TEMPLE_MQ_WOLFOS_POT_2 CanBreakPots
//Exits
RR_FOREST_TEMPLE_MQ_CENTRAL_AREA (and ForestClearBelowBowChest (or IsChild (CanUse RG_SONG_OF_TIME)))
def RR_FOREST_TEMPLE_MQ_LOWER_BLOCK_PUZZLE SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple MQ Lower Block Puzzle
//longshot is capable of hitting the switch, but some invisible collision makes the shot harder than you would think, so it may be trickworthy
//Events
MQForestBlockRoomTargets (and RT_FOREST_MQ_BLOCK_PUZZLE (CanUse RG_BOMBCHU_5))
//It is barely possible to get this as child with master + hovers, but it's tight without bunny speed
ForestCanTwistHallway (or (or (and RT_FOREST_MQ_JS_HALLWAY_SWITCH (and (CanUse RG_HOVER_BOOTS) (and IsAdult CanJumpslash))) (or (CanUse RG_STICKS) (or (CanUse RG_BIGGORON_SWORD) (and MQForestBlockRoomTargets (CanUse RG_MASTER_SWORD))))) (or (and RT_FOREST_MQ_RANG_HALLWAY_SWITCH (CanUse RG_BOOMERANG)) (and RT_FOREST_MQ_HOOKSHOT_HALLWAY_SWITCH (CanUse RG_HOOKSHOT))))
//Checks
RC_FOREST_TEMPLE_MQ_GS_BLOCK_PUSH_ROOM (CanGetEnemyDrop RE_GOLD_SKULLTULA)
//Exits
RR_FOREST_TEMPLE_MQ_CENTRAL_AREA (Here (CanKillEnemy RE_STALFOS))
RR_FOREST_TEMPLE_MQ_MIDDLE_BLOCK_PUZZLE (or (HasItem RG_GORONS_BRACELET) (and MQForestBlockRoomTargets (CanUse RG_HOOKSHOT)))
//Assumes RR_FOREST_TEMPLE_MQ_MIDDLE_BLOCK_PUZZLE access
@ -257,8 +323,10 @@ RR_FOREST_TEMPLE_MQ_OUTDOOR_LEDGE (and ForestCanTwistHallway (or (CanUse RG_HOOK
def RR_FOREST_TEMPLE_MQ_MIDDLE_BLOCK_PUZZLE SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple MQ Middle Block Puzzle
//longshot is capable of hitting the switch, but some invisible collision makes the shot more annoying than you would think, so it may be trickworthy
//Events
MQForestBlockRoomTargets (or (CanUse RG_FAIRY_BOW) (or (CanUse RG_FAIRY_SLINGSHOT) (CanUse RG_LONGSHOT)))
ForestCanTwistHallway (or (and RT_FOREST_MQ_JS_HALLWAY_SWITCH (and IsAdult CanJumpslash)) (and (CanUse RG_HOVER_BOOTS) (or (CanUse RG_STICKS) (or (CanUse RG_BIGGORON_SWORD) (CanUse RG_MASTER_SWORD)))))
//Exits
RR_FOREST_TEMPLE_MQ_LOWER_BLOCK_PUZZLE true
RR_FOREST_TEMPLE_MQ_UPPER_BLOCK_PUZZLE (or (and IsAdult (HasItem RG_GORONS_BRACELET)) (and MQForestBlockRoomTargets (CanUse RG_HOOKSHOT)))
//Hammer cannot recoil from here, but can make the jump forwards with a hammer jumpslash as adult
@ -266,7 +334,9 @@ RR_FOREST_TEMPLE_MQ_OUTDOOR_LEDGE (or (and ForestCanTwistHallway (CanUse RG_HOVE
def RR_FOREST_TEMPLE_MQ_UPPER_BLOCK_PUZZLE SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple MQ After Block Puzzle
//Checks
RC_FOREST_TEMPLE_MQ_BOSS_KEY_CHEST (SmallKeys SCENE_FOREST_TEMPLE 3)
//Exits
RR_FOREST_TEMPLE_MQ_STRAIGHT_HALLWAY (SmallKeys SCENE_FOREST_TEMPLE 3)
RR_FOREST_TEMPLE_MQ_JOELLE_ROOM (and ForestCanTwistHallway (SmallKeys SCENE_FOREST_TEMPLE 4))
//!QUANTUM LOGIC!
@ -277,24 +347,31 @@ RR_FOREST_TEMPLE_MQ_NW_OUTDOORS (and (SmallKeys SCENE_FOREST_TEMPLE 2) (Here (Ca
def RR_FOREST_TEMPLE_MQ_STRAIGHT_HALLWAY SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple MQ Straight Hallway
//Checks
RC_FOREST_TEMPLE_MQ_BOSS_KEY_CHEST (SmallKeys SCENE_FOREST_TEMPLE 3)
//Exits
RR_FOREST_TEMPLE_MQ_FLOORMASTER_ROOM true
def RR_FOREST_TEMPLE_MQ_FLOORMASTER_ROOM SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple MQ Floormaster Room
//Exits
RR_FOREST_TEMPLE_MQ_OUTDOOR_LEDGE (Here (CanKillEnemy RE_FLOORMASTER))
def RR_FOREST_TEMPLE_MQ_OUTDOOR_LEDGE SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple MQ Outdoor Ledge
//Events
ForestCanTwistHallway CanHitSwitch
//Checks
RC_FOREST_TEMPLE_MQ_REDEAD_CHEST (CanKillEnemy RE_REDEAD)
RC_FOREST_TEMPLE_MQ_COURTYARD_RIGHT_HEART true
RC_FOREST_TEMPLE_MQ_COURTYARD_MIDDLE_HEART true
RC_FOREST_TEMPLE_MQ_COURTYARD_LEFT_HEART true
//Exits
RR_FOREST_TEMPLE_MQ_NW_OUTDOORS true
def RR_FOREST_TEMPLE_MQ_NW_OUTDOORS SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple MQ NW Outdoors
//Checks
RC_FOREST_TEMPLE_MQ_GS_LEVEL_ISLAND_COURTYARD (CanGetEnemyDrop RE_GOLD_SKULLTULA)
//the well checks are considered from both areas instead of being a region because the draining is a temp flag and the skull (as well as the chest with hook glitch) has different breath timers from each side
RC_FOREST_TEMPLE_MQ_GS_WELL (and (CanUse RG_IRON_BOOTS) (and (>= WaterTimer 8) (CanUse RG_HOOKSHOT)))
@ -304,14 +381,17 @@ RC_FOREST_TEMPLE_MQ_COURTYARD_LEFT_HEART (and (CanUse RG_BOOMERANG) RT_FOREST_OU
RC_FOREST_TEMPLE_MQ_WELL_WEST_HEART (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 8))
RC_FOREST_TEMPLE_MQ_WELL_MIDDLE_HEART (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 8))
RC_FOREST_TEMPLE_MQ_WELL_EAST_HEART (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 8))
//Exits
RR_FOREST_TEMPLE_MQ_NE_OUTDOORS (and (or (and (or (CanUse RG_IRON_BOOTS) (or (CanUse RG_LONGSHOT) (and RT_FOREST_MQ_WELL_SWIM (CanUse RG_HOOKSHOT)))) (HasItem RG_BRONZE_SCALE)) (HasItem RG_GOLDEN_SCALE)) (>= WaterTimer 16))
RR_FOREST_TEMPLE_MQ_OUTDOORS_TOP_LEDGES (CanUse RG_FIRE_ARROWS)
//The well only coniders the eye target here because the eye target is a temp flag, making it unwieldy to use as an EventAccess to make it it's own room
def RR_FOREST_TEMPLE_MQ_NE_OUTDOORS SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple MQ NE Outdoors
//Events
DekuBabaSticks CanGetDekuBabaSticks
DekuBabaNuts CanGetDekuBabaNuts
//Checks
RC_FOREST_TEMPLE_MQ_WELL_CHEST (or CanHitEyeTargets (and CanOpenUnderwaterChest (>= WaterTimer 8)))
RC_FOREST_TEMPLE_MQ_GS_RAISED_ISLAND_COURTYARD (CanGetEnemyDrop RE_GOLD_SKULLTULA)
//implies logic->CanGetEnemyDrop(RE_GOLD_SKULLTULA)
@ -319,15 +399,18 @@ RC_FOREST_TEMPLE_MQ_GS_WELL (or CanHitEyeTargets (and (CanUse RG_IRON_BOOTS) (Ca
RC_FOREST_TEMPLE_MQ_WELL_WEST_HEART (or (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 8)) CanHitEyeTargets)
RC_FOREST_TEMPLE_MQ_WELL_MIDDLE_HEART (or (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 8)) CanHitEyeTargets)
RC_FOREST_TEMPLE_MQ_WELL_EAST_HEART (or (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 8)) CanHitEyeTargets)
//Exits
RR_FOREST_TEMPLE_MQ_NW_OUTDOORS (and (or (and (or (CanUse RG_IRON_BOOTS) (CanUse RG_LONGSHOT)) (HasItem RG_BRONZE_SCALE)) (HasItem RG_GOLDEN_SCALE)) (>= WaterTimer 16))
RR_FOREST_TEMPLE_MQ_OUTDOORS_TOP_LEDGES (or (CanUse RG_LONGSHOT) (and (CanUse RG_HOOKSHOT) (or (and IsAdult (CanUse RG_HOVER_BOOTS)) (CanUse RG_SONG_OF_TIME))))
RR_FOREST_TEMPLE_MQ_NE_OUTDOORS_LEDGE (CanUse RG_LONGSHOT)
def RR_FOREST_TEMPLE_MQ_OUTDOORS_TOP_LEDGES SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple MQ Outdoors Top Ledges
//Checks
RC_FOREST_TEMPLE_MQ_RAISED_ISLAND_COURTYARD_UPPER_CHEST true
//Actually killing the skull from the doorframe with melee is annoying. Hammer swing hits low enough unaided, other swords need to crouch stab but the spot is precise based on range. kokiri sword doesn't reach at all for adult.
RC_FOREST_TEMPLE_MQ_GS_RAISED_ISLAND_COURTYARD (and (or (and IsAdult (CanUse RG_SONG_OF_TIME)) (and (CanUse RG_HOVER_BOOTS) RT_FOREST_DOORFRAME)) (and CanJumpslash (or (CanUse RG_FAIRY_SLINGSHOT) (or BlastOrSmash (or (CanUse RG_DINS_FIRE) (or (CanUse RG_FAIRY_BOW) (or HookshotOrBoomerang (and CanStandingShield (or (CanUse RG_STICKS) (or (CanUse RG_BIGGORON_SWORD) (or (CanUse RG_MASTER_SWORD) (and IsChild (CanUse RG_KOKIRI_SWORD)))))))))))))
//Exits
RR_FOREST_TEMPLE_MQ_NW_OUTDOORS HasFireSourceWithTorch
RR_FOREST_TEMPLE_MQ_NE_OUTDOORS true
//N64 logic doesn't check damage but I always take some so I'm adding it
@ -335,32 +418,42 @@ RR_FOREST_TEMPLE_MQ_NE_OUTDOORS_LEDGE (and RT_FOREST_OUTDOORS_LEDGE (and (CanUse
def RR_FOREST_TEMPLE_MQ_NE_OUTDOORS_LEDGE SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple MQ NE Outdoors Ledge
//Checks
RC_FOREST_TEMPLE_MQ_RAISED_ISLAND_COURTYARD_LOWER_CHEST true
//Exits
RR_FOREST_TEMPLE_MQ_NE_OUTDOORS true
RR_FOREST_TEMPLE_MQ_FALLING_ROOM (CanUse RG_SONG_OF_TIME)
def RR_FOREST_TEMPLE_MQ_JOELLE_ROOM SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple MQ Joelle room
//Events
ForestTempleJoelle (CanUse RG_FAIRY_BOW)
//Checks
RC_FOREST_TEMPLE_MQ_MAP_CHEST ForestTempleJoelle
//Exits
RR_FOREST_TEMPLE_MQ_UPPER_BLOCK_PUZZLE (SmallKeys SCENE_FOREST_TEMPLE 4)
RR_FOREST_TEMPLE_MQ_3_STALFOS_ROOM true
def RR_FOREST_TEMPLE_MQ_3_STALFOS_ROOM SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple MQ 3 Stalfos Room
//technically happens in RR_FOREST_TEMPLE_MQ_WOLFOS_ROOM, but the way this room blocks the hole means it cannot be logical to do anything else there.
//Events
ForestClearBelowBowChest (CanKillEnemy RE_WOLFOS)
//Checks
RC_FOREST_TEMPLE_MQ_BOW_CHEST (and ForestClearBelowBowChest (CanKillEnemy RE_STALFOS ED_CLOSE true 3))
RC_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_1 CanBreakPots
RC_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_2 CanBreakPots
RC_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_3 CanBreakPots
RC_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_4 CanBreakPots
//Exits
RR_FOREST_TEMPLE_MQ_JOELLE_ROOM (and ForestClearBelowBowChest (CanKillEnemy RE_STALFOS ED_CLOSE true 3))
RR_FOREST_TEMPLE_MQ_BETH_ROOM (and ForestClearBelowBowChest (CanKillEnemy RE_STALFOS ED_CLOSE true 3))
def RR_FOREST_TEMPLE_MQ_BETH_ROOM SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple MQ Beth Room
//Events
ForestTempleBeth (CanUse RG_FAIRY_BOW)
//Checks
RC_FOREST_TEMPLE_MQ_COMPASS_CHEST ForestTempleBeth
RC_FOREST_TEMPLE_MQ_BLUE_POE_POT_1 CanBreakPots
RC_FOREST_TEMPLE_MQ_BLUE_POE_POT_2 CanBreakPots
@ -368,6 +461,7 @@ RC_FOREST_TEMPLE_MQ_BLUE_POE_POT_3 CanBreakPots
//!QUANTUM LOGIC!
//This key logic assumes that you can get to falling room either by spending the 5th key here, or by wasting a key in falling room itself.
//While being the 5th key makes this simpler in theory, if a different age can waste the key compared to reaching this room it breaks
//Exits
RR_FOREST_TEMPLE_MQ_FALLING_ROOM (and (SmallKeys SCENE_FOREST_TEMPLE 5) (Here (or (CanUse RG_FAIRY_BOW) (CanUse RG_DINS_FIRE))))
RR_FOREST_TEMPLE_MQ_TORCH_SHOT_ROOM (SmallKeys SCENE_FOREST_TEMPLE 6)
RR_FOREST_TEMPLE_MQ_3_STALFOS_ROOM true
@ -375,59 +469,76 @@ RR_FOREST_TEMPLE_MQ_3_STALFOS_ROOM true
//This room exists to show the actual map layout, and for when the crates get added to logic
def RR_FOREST_TEMPLE_MQ_TORCH_SHOT_ROOM SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple MQ Torch Shot Room
//Checks
RC_FOREST_TEMPLE_MQ_FROZEN_EYE_SWITCH_SMALL_CRATE_1 CanBreakSmallCrates
RC_FOREST_TEMPLE_MQ_FROZEN_EYE_SWITCH_SMALL_CRATE_2 CanBreakSmallCrates
RC_FOREST_TEMPLE_MQ_FROZEN_EYE_SWITCH_SMALL_CRATE_3 CanBreakSmallCrates
//Exits
RR_FOREST_TEMPLE_MQ_FALLING_ROOM (or (CanUse RG_FAIRY_BOW) (CanUse RG_DINS_FIRE))
RR_FOREST_TEMPLE_MQ_BETH_ROOM (SmallKeys SCENE_FOREST_TEMPLE 6)
def RR_FOREST_TEMPLE_MQ_FALLING_ROOM SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple MQ Falling Room
//Checks
RC_FOREST_TEMPLE_MQ_FALLING_CEILING_ROOM_CHEST true
//Skipping swim here is non-trival, needs a roll-jump. If a swim lock is added it's probably wise to copy deku baba events here
//Exits
RR_FOREST_TEMPLE_MQ_NE_OUTDOORS_LEDGE true
RR_FOREST_TEMPLE_MQ_AMY_ROOM (SmallKeys SCENE_FOREST_TEMPLE 6)
def RR_FOREST_TEMPLE_MQ_AMY_ROOM SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple MQ Amy Room
//Events
ForestTempleAmy (CanUse RG_FAIRY_BOW)
//Checks
RC_FOREST_TEMPLE_MQ_GREEN_POE_POT_1 CanBreakPots
RC_FOREST_TEMPLE_MQ_GREEN_POE_POT_2 CanBreakPots
//Exits
RR_FOREST_TEMPLE_MQ_CENTRAL_AREA ForestTempleAmy
RR_FOREST_TEMPLE_MQ_FALLING_ROOM true
def RR_FOREST_TEMPLE_MQ_BASEMENT SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple MQ Basement
//Implies CanHitSwitch()
//Events
ForestOpenBossCorridor CanHitEyeTargets
//Checks
RC_FOREST_TEMPLE_MQ_BASEMENT_CHEST true
//Exits
RR_FOREST_TEMPLE_MQ_CENTRAL_AREA ForestTempleMeg
RR_FOREST_TEMPLE_MQ_BASEMENT_POT_ROOM (or (CanPassEnemy RE_BIG_SKULLTULA) TakeDamage)
RR_FOREST_TEMPLE_MQ_BOSS_REGION ForestOpenBossCorridor
def RR_FOREST_TEMPLE_MQ_BASEMENT_POT_ROOM SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple MQ Basement Pot Room
//Checks
RC_FOREST_TEMPLE_MQ_BASEMENT_POT_1 CanBreakPots
RC_FOREST_TEMPLE_MQ_BASEMENT_POT_2 CanBreakPots
RC_FOREST_TEMPLE_MQ_BASEMENT_POT_3 CanBreakPots
RC_FOREST_TEMPLE_MQ_BASEMENT_POT_4 CanBreakPots
//Exits
RR_FOREST_TEMPLE_MQ_BASEMENT (CanPassEnemy RE_BIG_SKULLTULA)
def RR_FOREST_TEMPLE_MQ_BOSS_REGION SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple MQ Boss Region
//Exits
RR_FOREST_TEMPLE_MQ_BASEMENT ForestOpenBossCorridor
RR_FOREST_TEMPLE_BOSS_ENTRYWAY true
def RR_FOREST_TEMPLE_BOSS_ENTRYWAY SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple Boss Entryway
//Exits
RR_FOREST_TEMPLE_BOSS_REGION (and (IsDungeonVanilla FOREST_TEMPLE) false)
RR_FOREST_TEMPLE_MQ_BOSS_REGION (and (IsDungeonMQ FOREST_TEMPLE) false)
RR_FOREST_TEMPLE_BOSS_ROOM (HasItem RG_FOREST_TEMPLE_BOSS_KEY)
def RR_FOREST_TEMPLE_BOSS_ROOM SCENE_FOREST_TEMPLE_BOSS false
Forest Temple Boss Room
//Events
ForestTempleClear (CanKillEnemy RE_PHANTOM_GANON)
//Checks
RC_FOREST_TEMPLE_PHANTOM_GANON_HEART ForestTempleClear
RC_PHANTOM_GANON ForestTempleClear
//Exits
RR_FOREST_TEMPLE_BOSS_ENTRYWAY false
RR_SACRED_FOREST_MEADOW @deprioritize ForestTempleClear

View file

@ -1,12 +1,15 @@
def RR_GANONS_CASTLE_ENTRYWAY SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle Entryway
//Exits
RR_GANONS_CASTLE_LOBBY (IsDungeonVanilla GANONS_CASTLE)
RR_GANONS_CASTLE_MQ_LOBBY (IsDungeonMQ GANONS_CASTLE)
RR_CASTLE_GROUNDS_FROM_GANONS_CASTLE true
def RR_GANONS_CASTLE_LOBBY SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle Lobby
//Checks
RC_SHEIK_HINT_GC true
//Exits
RR_GANONS_CASTLE_ENTRYWAY true
RR_GANONS_CASTLE_FOREST_TRIAL true
RR_GANONS_CASTLE_FIRE_TRIAL true
@ -22,7 +25,9 @@ Invalid Region
def RR_GANONS_CASTLE_DEKU_SCRUBS SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle Deku Scrubs
//Events
FreeFairies true
//Checks
RC_GANONS_CASTLE_DEKU_SCRUB_CENTER_LEFT CanStunDeku
RC_GANONS_CASTLE_DEKU_SCRUB_CENTER_RIGHT CanStunDeku
RC_GANONS_CASTLE_DEKU_SCRUB_RIGHT CanStunDeku
@ -38,23 +43,29 @@ RC_GANONS_CASTLE_SCRUBS_FAIRY_8 true
def RR_GANONS_CASTLE_FOREST_TRIAL SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle Forest Trial
//Events
ForestTrialClear (and (CanUse RG_LIGHT_ARROWS) (or (CanUse RG_FIRE_ARROWS) (CanUse RG_DINS_FIRE)))
//Checks
RC_GANONS_CASTLE_FOREST_TRIAL_CHEST (CanKillEnemy RE_WOLFOS)
RC_GANONS_CASTLE_FOREST_TRIAL_POT_1 (and CanBreakPots (or (CanUse RG_FIRE_ARROWS) (and (CanUse RG_DINS_FIRE) (or (CanUse RG_FAIRY_BOW) (CanUse RG_HOOKSHOT)))))
RC_GANONS_CASTLE_FOREST_TRIAL_POT_2 (and CanBreakPots (or (CanUse RG_FIRE_ARROWS) (and (CanUse RG_DINS_FIRE) (or (CanUse RG_FAIRY_BOW) (CanUse RG_HOOKSHOT)))))
def RR_GANONS_CASTLE_FIRE_TRIAL SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle Fire Trial
//Events
FireTrialClear (and (CanUse RG_GORON_TUNIC) (and (CanUse RG_GOLDEN_GAUNTLETS) (and (CanUse RG_LIGHT_ARROWS) (CanUse RG_LONGSHOT))))
//Checks
RC_GANONS_CASTLE_FIRE_TRIAL_POT_1 (and CanBreakPots (and (CanUse RG_GORON_TUNIC) (and (CanUse RG_GOLDEN_GAUNTLETS) (CanUse RG_LONGSHOT))))
RC_GANONS_CASTLE_FIRE_TRIAL_POT_2 (and CanBreakPots (and (CanUse RG_GORON_TUNIC) (and (CanUse RG_GOLDEN_GAUNTLETS) (CanUse RG_LONGSHOT))))
RC_GANONS_CASTLE_FIRE_TRIAL_HEART (CanUse RG_GORON_TUNIC)
def RR_GANONS_CASTLE_WATER_TRIAL SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle Water Trial
//Events
BlueFireAccess true
FairyPot (and BlueFire (CanKillEnemy RE_FREEZARD))
WaterTrialClear (and BlueFire (and IsAdult (and (CanUse RG_MEGATON_HAMMER) (CanUse RG_LIGHT_ARROWS))))
//Checks
RC_GANONS_CASTLE_WATER_TRIAL_LEFT_CHEST true
RC_GANONS_CASTLE_WATER_TRIAL_RIGHT_CHEST true
RC_GANONS_CASTLE_WATER_TRIAL_POT_1 (and CanBreakPots (and BlueFire (and IsAdult (CanUse RG_MEGATON_HAMMER))))
@ -63,7 +74,9 @@ RC_GANONS_CASTLE_WATER_TRIAL_POT_3 (and CanBreakPots (and BlueFire (CanKillEnemy
def RR_GANONS_CASTLE_SHADOW_TRIAL SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle Shadow Trial
//Events
ShadowTrialClear (and (CanUse RG_LIGHT_ARROWS) (and (CanUse RG_MEGATON_HAMMER) (or (and (CanUse RG_FIRE_ARROWS) (or RT_LENS_GANON (CanUse RG_LENS_OF_TRUTH))) (and (CanUse RG_LONGSHOT) (or (CanUse RG_HOVER_BOOTS) (and (CanUse RG_DINS_FIRE) (or RT_LENS_GANON (CanUse RG_LENS_OF_TRUTH))))))))
//Checks
RC_GANONS_CASTLE_SHADOW_TRIAL_FRONT_CHEST (or (CanUse RG_FIRE_ARROWS) (or (CanUse RG_HOOKSHOT) (or (CanUse RG_HOVER_BOOTS) (or (CanUse RG_SONG_OF_TIME) IsChild))))
RC_GANONS_CASTLE_SHADOW_TRIAL_GOLDEN_GAUNTLETS_CHEST (or (CanUse RG_FIRE_ARROWS) (and (CanUse RG_LONGSHOT) (or (CanUse RG_HOVER_BOOTS) (CanUse RG_DINS_FIRE))))
RC_GANONS_CASTLE_SHADOW_TRIAL_POT_1 (or (CanUse RG_FIRE_ARROWS) (CanUse RG_LONGSHOT))
@ -76,8 +89,10 @@ RC_GANONS_CASTLE_SHADOW_TRIAL_HEART_3 (and (or (CanUse RG_FIRE_ARROWS) (and (Can
def RR_GANONS_CASTLE_SPIRIT_TRIAL SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle Spirit Trial
//Events
NutPot (and (or (and RT_GANON_SPIRIT_TRIAL_HOOKSHOT CanJumpslashExceptHammer) (CanUse RG_HOOKSHOT)) (and (CanUse RG_BOMBCHU_5) (and (CanUse RG_FAIRY_BOW) (or (CanUse RG_MIRROR_SHIELD) (and RSK_SUNLIGHT_ARROWS (CanUse RG_LIGHT_ARROWS))))))
SpiritTrialClear (and (CanUse RG_LIGHT_ARROWS) (and (or (CanUse RG_MIRROR_SHIELD) RSK_SUNLIGHT_ARROWS) (and (CanUse RG_BOMBCHU_5) (or (and RT_GANON_SPIRIT_TRIAL_HOOKSHOT CanJumpslashExceptHammer) (CanUse RG_HOOKSHOT)))))
//Checks
RC_GANONS_CASTLE_SPIRIT_TRIAL_CRYSTAL_SWITCH_CHEST (and (or RT_GANON_SPIRIT_TRIAL_HOOKSHOT (CanUse RG_HOOKSHOT)) (or CanJumpslashExceptHammer (CanUse RG_BOMBCHU_5)))
RC_GANONS_CASTLE_SPIRIT_TRIAL_INVISIBLE_CHEST (and (or RT_GANON_SPIRIT_TRIAL_HOOKSHOT (CanUse RG_HOOKSHOT)) (and (CanUse RG_BOMBCHU_5) (or RT_LENS_GANON (CanUse RG_LENS_OF_TRUTH))))
RC_GANONS_CASTLE_SPIRIT_TRIAL_POT_1 (and (or (and RT_GANON_SPIRIT_TRIAL_HOOKSHOT CanJumpslashExceptHammer) (CanUse RG_HOOKSHOT)) (and (CanUse RG_BOMBCHU_5) (and (CanUse RG_FAIRY_BOW) (or (CanUse RG_MIRROR_SHIELD) (and RSK_SUNLIGHT_ARROWS (CanUse RG_LIGHT_ARROWS))))))
@ -87,7 +102,9 @@ RC_GANONS_CASTLE_SPIRIT_TRIAL_HEART true
def RR_GANONS_CASTLE_LIGHT_TRIAL SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle Light Trial
//Events
LightTrialClear (and (CanUse RG_LIGHT_ARROWS) (and (CanUse RG_HOOKSHOT) (and (SmallKeys SCENE_INSIDE_GANONS_CASTLE 2) (or RT_LENS_GANON (CanUse RG_LENS_OF_TRUTH)))))
//Checks
RC_GANONS_CASTLE_LIGHT_TRIAL_FIRST_LEFT_CHEST true
RC_GANONS_CASTLE_LIGHT_TRIAL_SECOND_LEFT_CHEST true
RC_GANONS_CASTLE_LIGHT_TRIAL_THIRD_LEFT_CHEST true
@ -102,13 +119,16 @@ RC_GANONS_CASTLE_LIGHT_TRIAL_POT_2 (and CanBreakPots (and (CanUse RG_HOOKSHOT) (
def RR_GANONS_CASTLE_MQ_LOBBY SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle MQ Lobby
//Exits
RR_GANONS_CASTLE_ENTRYWAY (or (CanPassEnemy RE_GREEN_BUBBLE) (Here (and (CanKillEnemy RE_IRON_KNUCKLE) (CanKillEnemy RE_ARMOS))))
//Implies CanKillEnemy(RE_GREEN_BUBBLE)
RR_GANONS_CASTLE_MQ_MAIN (Here (and (CanKillEnemy RE_IRON_KNUCKLE) (CanKillEnemy RE_ARMOS)))
def RR_GANONS_CASTLE_MQ_MAIN SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle MQ Main
//Checks
RC_SHEIK_HINT_MQ_GC true
//Exits
RR_GANONS_CASTLE_MQ_LOBBY true
RR_GANONS_CASTLE_MQ_FOREST_TRIAL_STALFOS_ROOM true
RR_GANONS_CASTLE_MQ_FIRE_TRIAL_MAIN_ROOM true
@ -121,7 +141,9 @@ RR_GANONS_CASTLE_MQ_DEKU_SCRUBS (or RT_LENS_GANON_MQ (CanUse RG_LENS_OF_TRUTH))
def RR_GANONS_CASTLE_MQ_DEKU_SCRUBS SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle MQ Deku Scrubs
//Events
FreeFairies true
//Checks
RC_GANONS_CASTLE_MQ_DEKU_SCRUB_CENTER_LEFT CanStunDeku
RC_GANONS_CASTLE_MQ_DEKU_SCRUB_CENTER CanStunDeku
RC_GANONS_CASTLE_MQ_DEKU_SCRUB_CENTER_RIGHT CanStunDeku
@ -135,86 +157,112 @@ RC_GANONS_CASTLE_MQ_SCRUBS_FAIRY_5 true
RC_GANONS_CASTLE_MQ_SCRUBS_FAIRY_6 true
RC_GANONS_CASTLE_MQ_SCRUBS_FAIRY_7 true
RC_GANONS_CASTLE_MQ_SCRUBS_FAIRY_8 true
//Exits
RR_GANONS_CASTLE_MQ_MAIN true
def RR_GANONS_CASTLE_MQ_FOREST_TRIAL_STALFOS_ROOM SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle MQ Forest Trial Stalfos Room
//Checks
RC_GANONS_CASTLE_MQ_FOREST_TRIAL_FREESTANDING_KEY HookshotOrBoomerang
//Exits
RR_GANONS_CASTLE_MQ_MAIN true
RR_GANONS_CASTLE_MQ_FOREST_TRIAL_BEAMOS_ROOM (Here (CanKillEnemy RE_STALFOS ED_CLOSE true 2))
//If it is ever possible to warp into the RR_GANONS_CASTLE_MQ_FOREST_TRIAL_FINAL_ROOM, this needs splitting up as the requirements to reach things from the other side are more complex
def RR_GANONS_CASTLE_MQ_FOREST_TRIAL_BEAMOS_ROOM SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle MQ Forest Trial Beamos Room
//Checks
RC_GANONS_CASTLE_MQ_FOREST_TRIAL_EYE_SWITCH_CHEST CanHitEyeTargets
RC_GANONS_CASTLE_MQ_FOREST_TRIAL_FROZEN_EYE_SWITCH_CHEST HasFireSource
//Exits
RR_GANONS_CASTLE_MQ_FOREST_TRIAL_STALFOS_ROOM true
RR_GANONS_CASTLE_MQ_FOREST_TRIAL_FINAL_ROOM (and IsAdult (CanUse RG_SONG_OF_TIME))
def RR_GANONS_CASTLE_MQ_FOREST_TRIAL_FINAL_ROOM SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle MQ Forest Trial Final Room
//Events
ForestTrialClear (CanUse RG_LIGHT_ARROWS)
//Checks
RC_GANONS_CASTLE_MQ_FOREST_TRIAL_POT_1 CanBreakPots
RC_GANONS_CASTLE_MQ_FOREST_TRIAL_POT_2 CanBreakPots
//Exits
RR_GANONS_CASTLE_MQ_FOREST_TRIAL_BEAMOS_ROOM true
def RR_GANONS_CASTLE_MQ_FIRE_TRIAL_MAIN_ROOM SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle MQ Fire Trial Main Room
//Exits
RR_GANONS_CASTLE_MQ_MAIN true
//2 checks, 1 for the rupees, 1 for actually making it, as the rupees are permanent but throwing a pillar is not
RR_GANONS_CASTLE_MQ_FIRE_TRIAL_FINAL_ROOM (and (Here (and (CanUse RG_GORON_TUNIC) (CanUse RG_GOLDEN_GAUNTLETS))) (and (CanUse RG_GORON_TUNIC) (or (CanUse RG_LONGSHOT) (and (CanUse RG_GOLDEN_GAUNTLETS) (or (CanUse RG_HOVER_BOOTS) (and RT_GANON_MQ_FIRE_TRIAL (and IsAdult (CanUse RG_HOOKSHOT))))))))
def RR_GANONS_CASTLE_MQ_FIRE_TRIAL_FINAL_ROOM SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle MQ Fire Trial Final Room
//Events
FireTrialClear (CanUse RG_LIGHT_ARROWS)
//Checks
RC_GANONS_CASTLE_MQ_FIRE_TRIAL_POT_1 CanBreakPots
RC_GANONS_CASTLE_MQ_FIRE_TRIAL_POT_2 CanBreakPots
//There's no way back across the lava without glitches
def RR_GANONS_CASTLE_MQ_WATER_TRIAL_GEYSER_ROOM SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle MQ Water Trial Geyser Room
//Events
BlueFireAccess (or CanJumpslash HasExplosives)
//Checks
RC_GANONS_CASTLE_MQ_WATER_TRIAL_CHEST BlueFire
RC_GANONS_CASTLE_MQ_WATER_TRIAL_HEART BlueFire
//Exits
RR_GANONS_CASTLE_MQ_MAIN true
RR_GANONS_CASTLE_MQ_WATER_TRIAL_BLOCK_ROOM (and (SmallKeys SCENE_INSIDE_GANONS_CASTLE 3) (Here BlueFire))
def RR_GANONS_CASTLE_MQ_WATER_TRIAL_BLOCK_ROOM SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle MQ Water Trial Block Room
//Exits
RR_GANONS_CASTLE_MQ_WATER_TRIAL_GEYSER_ROOM (SmallKeys SCENE_INSIDE_GANONS_CASTLE 3)
//This assumes there's no way for child to have blue fire and not adult.
RR_GANONS_CASTLE_MQ_WATER_TRIAL_FINAL_ROOM (and IsAdult BlueFire)
def RR_GANONS_CASTLE_MQ_WATER_TRIAL_FINAL_ROOM SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle MQ Water Trial Final Room
//Events
WaterTrialClear (CanUse RG_LIGHT_ARROWS)
//Checks
RC_GANONS_CASTLE_MQ_WATER_TRIAL_POT_1 CanBreakPots
RC_GANONS_CASTLE_MQ_WATER_TRIAL_POT_2 CanBreakPots
//Exits
RR_GANONS_CASTLE_MQ_WATER_TRIAL_BLOCK_ROOM (Here BlueFire)
def RR_GANONS_CASTLE_MQ_SHADOW_TRIAL_STARTING_LEDGE SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle MQ Shadow Trial Starting Ledge
//Events
ShadowTrialFirstChest (CanUse RG_FAIRY_BOW)
//Exits
RR_GANONS_CASTLE_MQ_MAIN true
RR_GANONS_CASTLE_MQ_SHADOW_TRIAL_CHEST_PLATFORM (or (and ShadowTrialFirstChest (CanUse RG_HOOKSHOT)) (and IsAdult (CanUse RG_HOVER_BOOTS)))
def RR_GANONS_CASTLE_MQ_SHADOW_TRIAL_CHEST_PLATFORM SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle MQ Shadow Trial Chest Platform
//Events
ShadowTrialFirstChest (CanUse RG_FAIRY_BOW)
//Checks
RC_GANONS_CASTLE_MQ_SHADOW_TRIAL_BOMB_FLOWER_CHEST ShadowTrialFirstChest
//Hookshot here is possible but very tight, but it's basically never relevant
//Exits
RR_GANONS_CASTLE_MQ_SHADOW_TRIAL_STARTING_LEDGE (or (CanUse RG_LONGSHOT) (and IsAdult (CanUse RG_HOVER_BOOTS)))
RR_GANONS_CASTLE_MQ_SHADOW_TRIAL_MOVING_PLATFORM (and (or RT_LENS_GANON_MQ (CanUse RG_LENS_OF_TRUTH)) (or IsAdult (CanUse RG_HOVER_BOOTS)))
def RR_GANONS_CASTLE_MQ_SHADOW_TRIAL_MOVING_PLATFORM SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle MQ Shadow Trial Moving Platform
//A torch run from RR_GANONS_CASTLE_MQ_SHADOW_TRIAL_STARTING_LEDGE is possible but tight, so would be a trick
//Events
ShadowTrialFirstChest CanDetonateUprightBombFlower
//Exits
RR_GANONS_CASTLE_MQ_SHADOW_TRIAL_CHEST_PLATFORM (or IsAdult (or (CanUse RG_HOOKSHOT) (CanUse RG_HOVER_BOOTS)))
RR_GANONS_CASTLE_MQ_SHADOW_TRIAL_BEAMOS_TORCH true
def RR_GANONS_CASTLE_MQ_SHADOW_TRIAL_BEAMOS_TORCH SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle MQ Shadow Trial Beamos Torch
//Exits
RR_GANONS_CASTLE_MQ_SHADOW_TRIAL_MOVING_PLATFORM (or RT_LENS_GANON_MQ (CanUse RG_LENS_OF_TRUTH))
//A torch run from RR_GANONS_CASTLE_MQ_SHADOW_TRIAL_STARTING_LEDGE is possible but very tight, so would be a trick
//The bow trick assumes RR_GANONS_CASTLE_MQ_SHADOW_TRIAL_STARTING_LEDGE access, if you can somehow void warp directly here it will need handling properly
@ -223,7 +271,9 @@ RR_GANONS_CASTLE_MQ_SHADOW_TRIAL_FAR_SIDE (or HasFireSource (or (CanUse RG_HOVER
def RR_GANONS_CASTLE_MQ_SHADOW_TRIAL_FAR_SIDE SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle MQ Shadow Trial Far Side
//Checks
RC_GANONS_CASTLE_MQ_SHADOW_TRIAL_EYE_SWITCH_CHEST CanHitEyeTargets
//Exits
RR_GANONS_CASTLE_MQ_SHADOW_TRIAL_BEAMOS_TORCH (or (CanUse RG_FIRE_ARROWS) (CanUse RG_HOVER_BOOTS))
//Modelling the silver rupees properly will require a way to check temp flags in different regions.
//It may be tempting to use a Here-like command for this but it could cause sphere skipping in playthroughs
@ -234,74 +284,94 @@ RR_GANONS_CASTLE_MQ_SHADOW_TRIAL_FINAL_ROOM (or RT_LENS_GANON_MQ (CanUse RG_LENS
def RR_GANONS_CASTLE_MQ_SHADOW_TRIAL_FINAL_ROOM SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle MQ Shadow Trial Final Room
//Events
ShadowTrialClear (CanUse RG_LIGHT_ARROWS)
//Checks
RC_GANONS_CASTLE_MQ_SHADOW_TRIAL_POT_1 CanBreakPots
RC_GANONS_CASTLE_MQ_SHADOW_TRIAL_POT_2 CanBreakPots
//Exits
RR_GANONS_CASTLE_MQ_SHADOW_TRIAL_FAR_SIDE (or RT_LENS_GANON_MQ (CanUse RG_LENS_OF_TRUTH))
def RR_GANONS_CASTLE_MQ_SPIRIT_TRIAL_CHAIRS_ROOM SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle MQ Spirit Trial Chairs Room
//Exits
RR_GANONS_CASTLE_MQ_MAIN true
RR_GANONS_CASTLE_MQ_SPIRIT_TRIAL_BEFORE_SWITCH (Here (and (or CanHitEyeTargets RT_RUSTED_SWITCHES) (CanUse RG_MEGATON_HAMMER)))
def RR_GANONS_CASTLE_MQ_SPIRIT_TRIAL_BEFORE_SWITCH SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle MQ Spirit Trial Before Switch
//Checks
RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_FIRST_CHEST (CanPassEnemy RE_GREEN_BUBBLE)
//Exits
RR_GANONS_CASTLE_MQ_SPIRIT_TRIAL_CHAIRS_ROOM true
RR_GANONS_CASTLE_MQ_SPIRIT_TRIAL_AFTER_SWITCH (Here (CanUse RG_BOMBCHU_5))
def RR_GANONS_CASTLE_MQ_SPIRIT_TRIAL_AFTER_SWITCH SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle MQ Spirit Trial After Switch
//Checks
RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_INVISIBLE_CHEST (or RT_LENS_GANON_MQ (CanUse RG_LENS_OF_TRUTH))
//better names for these would be nice.
RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_SUN_FRONT_LEFT_CHEST (or (and (CanUse RG_FIRE_ARROWS) (CanUse RG_MIRROR_SHIELD)) (and RSK_SUNLIGHT_ARROWS (CanUse RG_LIGHT_ARROWS)))
RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_SUN_BACK_LEFT_CHEST (or (and (CanUse RG_FIRE_ARROWS) (CanUse RG_MIRROR_SHIELD)) (and RSK_SUNLIGHT_ARROWS (CanUse RG_LIGHT_ARROWS)))
RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_GOLDEN_GAUNTLETS_CHEST (or (and (CanUse RG_FIRE_ARROWS) (CanUse RG_MIRROR_SHIELD)) (and RSK_SUNLIGHT_ARROWS (CanUse RG_LIGHT_ARROWS)))
RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_SUN_BACK_RIGHT_CHEST (or (and (CanUse RG_FIRE_ARROWS) (CanUse RG_MIRROR_SHIELD)) (and RSK_SUNLIGHT_ARROWS (CanUse RG_LIGHT_ARROWS)))
//Exits
RR_GANONS_CASTLE_MQ_SPIRIT_TRIAL_BEFORE_SWITCH (Here (CanUse RG_BOMBCHU_5))
//Sunlight arrows are bugged, should set a perm flag like mirror shield
RR_GANONS_CASTLE_MQ_SPIRIT_TRIAL_FINAL_ROOM (or (Here (and (CanUse RG_FIRE_ARROWS) (CanUse RG_MIRROR_SHIELD))) (and RSK_SUNLIGHT_ARROWS (CanUse RG_LIGHT_ARROWS)))
def RR_GANONS_CASTLE_MQ_SPIRIT_TRIAL_FINAL_ROOM SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle MQ Spirit Trial Final Room
//Events
SpiritTrialClear (CanUse RG_LIGHT_ARROWS)
NutPot true
//Checks
RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_POT_1 CanBreakPots
RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_POT_2 CanBreakPots
//Exits
RR_GANONS_CASTLE_MQ_SPIRIT_TRIAL_AFTER_SWITCH true
def RR_GANONS_CASTLE_MQ_LIGHT_TRIAL_DINOLFOS_ROOM SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle MQ Light Trial Dinolfos Room
//Exits
RR_GANONS_CASTLE_MQ_MAIN true
RR_GANONS_CASTLE_MQ_LIGHT_TRIAL_TRIFORCE_ROOM (Here (and (CanKillEnemy RE_DINOLFOS) (CanKillEnemy RE_TORCH_SLUG)))
def RR_GANONS_CASTLE_MQ_LIGHT_TRIAL_TRIFORCE_ROOM SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle MQ Light Trial Triforce Room
//Checks
RC_GANONS_CASTLE_MQ_LIGHT_TRIAL_LULLABY_CHEST (CanUse RG_ZELDAS_LULLABY)
//Exits
RR_GANONS_CASTLE_MQ_LIGHT_TRIAL_DINOLFOS_ROOM true
RR_GANONS_CASTLE_MQ_LIGHT_TRIAL_BOULDER_ROOM_FRONT (SmallKeys SCENE_INSIDE_GANONS_CASTLE 2)
def RR_GANONS_CASTLE_MQ_LIGHT_TRIAL_BOULDER_ROOM_FRONT SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle MQ Light Trial Boulder Room Front
//Exits
RR_GANONS_CASTLE_MQ_LIGHT_TRIAL_TRIFORCE_ROOM (SmallKeys SCENE_INSIDE_GANONS_CASTLE 2)
RR_GANONS_CASTLE_MQ_LIGHT_TRIAL_BOULDER_ROOM_BACK (or (CanUse RG_HOOKSHOT) RT_GANON_MQ_LIGHT_TRIAL)
def RR_GANONS_CASTLE_MQ_LIGHT_TRIAL_BOULDER_ROOM_BACK SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle MQ Light Trial Boulder Room Back
//Checks
RC_GANONS_CASTLE_MQ_LIGHT_TRIAL_LEFT_HEART true
RC_GANONS_CASTLE_MQ_LIGHT_TRIAL_RIGHT_HEART true
//I got the trick going backwards, but only while taking damage. this isn't relevant anyway though
//Exits
RR_GANONS_CASTLE_MQ_LIGHT_TRIAL_BOULDER_ROOM_FRONT (or (CanUse RG_HOOKSHOT) RT_GANON_MQ_LIGHT_TRIAL)
RR_GANONS_CASTLE_MQ_LIGHT_TRIAL_FINAL_ROOM (and (SmallKeys SCENE_INSIDE_GANONS_CASTLE 3) (and (or RT_LENS_GANON_MQ (CanUse RG_LENS_OF_TRUTH)) (or (CanUse RG_FAIRY_SLINGSHOT) (or CanJumpslash (or HasExplosives (or (CanUse RG_FAIRY_BOW) (CanUse RG_BOOMERANG)))))))
def RR_GANONS_CASTLE_MQ_LIGHT_TRIAL_FINAL_ROOM SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle MQ Light Trial Final Room
//Events
LightTrialClear (CanUse RG_LIGHT_ARROWS)
//Checks
RC_GANONS_CASTLE_MQ_LIGHT_TRIAL_POT_1 CanBreakPots
RC_GANONS_CASTLE_MQ_LIGHT_TRIAL_POT_2 CanBreakPots
def RR_GANONS_TOWER_ENTRYWAY SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Tower Entryway
//Exits
RR_GANONS_CASTLE_LOBBY (IsDungeonVanilla GANONS_CASTLE)
RR_GANONS_CASTLE_MQ_MAIN (IsDungeonMQ GANONS_CASTLE)
//RANDOTODO could we just set these events automatically based on the setting?
@ -309,22 +379,27 @@ RR_GANONS_TOWER_FLOOR_1 (and (or ForestTrialClear (IsTrialSkipped TK_FOREST_TRIA
def RR_GANONS_TOWER_FLOOR_1 SCENE_GANONS_TOWER false
Ganon's Tower Floor 1
//Exits
RR_GANONS_TOWER_ENTRYWAY (Here (CanKillEnemy RE_DINOLFOS ED_CLOSE true 2))
RR_GANONS_TOWER_FLOOR_2 (Here (CanKillEnemy RE_DINOLFOS ED_CLOSE true 2))
def RR_GANONS_TOWER_FLOOR_2 SCENE_GANONS_TOWER false
Ganon's Tower Floor 2
//Checks
RC_GANONS_TOWER_BOSS_KEY_CHEST (CanKillEnemy RE_STALFOS ED_CLOSE true 2)
//Exits
RR_GANONS_TOWER_FLOOR_1 (Here (CanKillEnemy RE_STALFOS ED_CLOSE true 2))
RR_GANONS_TOWER_FLOOR_3 (Here (CanKillEnemy RE_STALFOS ED_CLOSE true 2))
def RR_GANONS_TOWER_FLOOR_3 SCENE_GANONS_TOWER false
Ganon's Tower Floor 3
//Exits
RR_GANONS_TOWER_FLOOR_2 (Here (CanKillEnemy RE_IRON_KNUCKLE ED_CLOSE true 2))
RR_GANONS_TOWER_BEFORE_GANONDORF_LAIR (Here (CanKillEnemy RE_IRON_KNUCKLE ED_CLOSE true 2))
def RR_GANONS_TOWER_BEFORE_GANONDORF_LAIR SCENE_GANONS_TOWER false
Ganon's Tower Before Ganondorf's Lair
//Checks
RC_GANONS_CASTLE_GANONS_TOWER_POT_1 CanBreakPots
RC_GANONS_CASTLE_GANONS_TOWER_POT_2 CanBreakPots
RC_GANONS_CASTLE_GANONS_TOWER_POT_3 CanBreakPots
@ -343,22 +418,27 @@ RC_GANONS_CASTLE_GANONS_TOWER_POT_15 CanBreakPots
RC_GANONS_CASTLE_GANONS_TOWER_POT_16 CanBreakPots
RC_GANONS_CASTLE_GANONS_TOWER_POT_17 CanBreakPots
RC_GANONS_CASTLE_GANONS_TOWER_POT_18 CanBreakPots
//Exits
RR_GANONS_TOWER_FLOOR_3 (Here true)
RR_GANONS_TOWER_GANONDORF_LAIR (Here (HasItem RG_GANONS_CASTLE_BOSS_KEY))
def RR_GANONS_TOWER_GANONDORF_LAIR SCENE_GANONDORF_BOSS false
Ganondorf's Lair
//Checks
RC_GANONDORF_HINT (HasBossSoul RG_GANON_SOUL)
//Exits
RR_GANONS_CASTLE_ESCAPE (CanKillEnemy RE_GANONDORF)
def RR_GANONS_CASTLE_ESCAPE SCENE_GANONS_TOWER_COLLAPSE_EXTERIOR false
Ganon's Castle Escape
//10 pots
//RANDOTODO hook potsanity pots up to escape.
//Exits
RR_GANONS_CASTLE_GANON_ARENA true
//real logic once we figure out how to deal with castle escape skip
//RR_GANONS_CASTLE_GANON_ARENA (CanKillEnemy RE_STALFOS ED_CLOSE true 2 true)
def RR_GANONS_CASTLE_GANON_ARENA SCENE_GANON_BOSS false
Ganon's Arena
//Checks
RC_GANON (CanKillEnemy RE_GANON)

View file

@ -1,11 +1,13 @@
def RR_GERUDO_TRAINING_GROUND_ENTRYWAY SCENE_GERUDO_TRAINING_GROUND false RA_GERUDO_TRAINING_GROUND
Gerudo Training Ground Entryway
//Exits
RR_GERUDO_TRAINING_GROUND_LOBBY (IsDungeonVanilla GERUDO_TRAINING_GROUND)
RR_GERUDO_TRAINING_GROUND_MQ_LOBBY (IsDungeonMQ GERUDO_TRAINING_GROUND)
RR_GF_EXITING_GTG true
def RR_GERUDO_TRAINING_GROUND_LOBBY SCENE_GERUDO_TRAINING_GROUND false RA_GERUDO_TRAINING_GROUND
Gerudo Training Ground Lobby
//Checks
RC_GERUDO_TRAINING_GROUND_LOBBY_LEFT_CHEST CanHitEyeTargets
RC_GERUDO_TRAINING_GROUND_LOBBY_RIGHT_CHEST CanHitEyeTargets
RC_GERUDO_TRAINING_GROUND_STALFOS_CHEST (CanKillEnemy RE_STALFOS ED_CLOSE true 2 true)
@ -13,6 +15,7 @@ RC_GERUDO_TRAINING_GROUND_BEAMOS_CHEST (and (CanKillEnemy RE_BEAMOS) (CanKillEne
RC_GERUDO_TRAINING_GROUND_ENTRANCE_STORMS_FAIRY (CanUse RG_SONG_OF_STORMS)
RC_GERUDO_TRAINING_GROUND_BEAMOS_SOUTH_HEART true
RC_GERUDO_TRAINING_GROUND_BEAMOS_EAST_HEART true
//Exits
RR_GERUDO_TRAINING_GROUND_ENTRYWAY true
RR_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_ROOM (and (CanKillEnemy RE_STALFOS ED_CLOSE true 2 true) (or (CanUse RG_HOOKSHOT) RT_GTG_WITHOUT_HOOKSHOT))
RR_GERUDO_TRAINING_GROUND_LAVA_ROOM (Here (and (CanKillEnemy RE_BEAMOS) (CanKillEnemy RE_DINOLFOS ED_CLOSE true 2 true)))
@ -20,52 +23,67 @@ RR_GERUDO_TRAINING_GROUND_CENTRAL_MAZE true
def RR_GERUDO_TRAINING_GROUND_CENTRAL_MAZE SCENE_GERUDO_TRAINING_GROUND false RA_GERUDO_TRAINING_GROUND
Gerudo Training Ground Central Maze
//Checks
RC_GERUDO_TRAINING_GROUND_HIDDEN_CEILING_CHEST (and (SmallKeys SCENE_GERUDO_TRAINING_GROUND 3) (or RT_LENS_GTG (CanUse RG_LENS_OF_TRUTH)))
RC_GERUDO_TRAINING_GROUND_MAZE_PATH_FIRST_CHEST (SmallKeys SCENE_GERUDO_TRAINING_GROUND 4)
RC_GERUDO_TRAINING_GROUND_MAZE_PATH_SECOND_CHEST (SmallKeys SCENE_GERUDO_TRAINING_GROUND 6)
RC_GERUDO_TRAINING_GROUND_MAZE_PATH_THIRD_CHEST (SmallKeys SCENE_GERUDO_TRAINING_GROUND 7)
RC_GERUDO_TRAINING_GROUND_MAZE_PATH_FINAL_CHEST (SmallKeys SCENE_GERUDO_TRAINING_GROUND 9)
//Exits
RR_GERUDO_TRAINING_GROUND_CENTRAL_MAZE_RIGHT (SmallKeys SCENE_GERUDO_TRAINING_GROUND 9)
def RR_GERUDO_TRAINING_GROUND_CENTRAL_MAZE_RIGHT SCENE_GERUDO_TRAINING_GROUND false RA_GERUDO_TRAINING_GROUND
Gerudo Training Ground Central Maze Right
//Checks
RC_GERUDO_TRAINING_GROUND_MAZE_RIGHT_CENTRAL_CHEST true
RC_GERUDO_TRAINING_GROUND_MAZE_RIGHT_SIDE_CHEST true
RC_GERUDO_TRAINING_GROUND_FREESTANDING_KEY true
//Exits
RR_GERUDO_TRAINING_GROUND_HAMMER_ROOM (CanUse RG_HOOKSHOT)
RR_GERUDO_TRAINING_GROUND_LAVA_ROOM true
def RR_GERUDO_TRAINING_GROUND_LAVA_ROOM SCENE_GERUDO_TRAINING_GROUND false RA_GERUDO_TRAINING_GROUND
Gerudo Training Ground Lava Room
//Checks
RC_GERUDO_TRAINING_GROUND_UNDERWATER_SILVER_RUPEE_CHEST (and (CanUse RG_HOOKSHOT) (and (CanUse RG_SONG_OF_TIME) (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 24))))
//Exits
RR_GERUDO_TRAINING_GROUND_CENTRAL_MAZE_RIGHT (or (CanUse RG_SONG_OF_TIME) IsChild)
RR_GERUDO_TRAINING_GROUND_HAMMER_ROOM (or (CanUse RG_LONGSHOT) (and (CanUse RG_HOVER_BOOTS) (CanUse RG_HOOKSHOT)))
def RR_GERUDO_TRAINING_GROUND_HAMMER_ROOM SCENE_GERUDO_TRAINING_GROUND false RA_GERUDO_TRAINING_GROUND
Gerudo Training Ground Hammer Room
//Checks
RC_GERUDO_TRAINING_GROUND_HAMMER_ROOM_CLEAR_CHEST CanAttack
RC_GERUDO_TRAINING_GROUND_HAMMER_ROOM_SWITCH_CHEST (or (CanUse RG_MEGATON_HAMMER) (and TakeDamage RT_FLAMING_CHESTS))
//Exits
RR_GERUDO_TRAINING_GROUND_EYE_STATUE_LOWER (and (CanUse RG_MEGATON_HAMMER) (CanUse RG_FAIRY_BOW))
RR_GERUDO_TRAINING_GROUND_LAVA_ROOM true
def RR_GERUDO_TRAINING_GROUND_EYE_STATUE_LOWER SCENE_GERUDO_TRAINING_GROUND false RA_GERUDO_TRAINING_GROUND
Gerudo Training Ground Eye Statue Lower
//Checks
RC_GERUDO_TRAINING_GROUND_EYE_STATUE_CHEST (CanUse RG_FAIRY_BOW)
//Exits
RR_GERUDO_TRAINING_GROUND_HAMMER_ROOM true
def RR_GERUDO_TRAINING_GROUND_EYE_STATUE_UPPER SCENE_GERUDO_TRAINING_GROUND false RA_GERUDO_TRAINING_GROUND
Gerudo Training Ground Eye Statue Upper
//Checks
RC_GERUDO_TRAINING_GROUND_NEAR_SCARECROW_CHEST (CanUse RG_FAIRY_BOW)
//Exits
RR_GERUDO_TRAINING_GROUND_EYE_STATUE_LOWER true
def RR_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_ROOM SCENE_GERUDO_TRAINING_GROUND false RA_GERUDO_TRAINING_GROUND
Gerudo Training Ground Heavy Block Room
//Checks
RC_GERUDO_TRAINING_GROUND_BEFORE_HEAVY_BLOCK_CHEST (CanKillEnemy RE_WOLFOS ED_CLOSE true 4 true)
//Exits
RR_GERUDO_TRAINING_GROUND_EYE_STATUE_UPPER (and (or RT_LENS_GTG (CanUse RG_LENS_OF_TRUTH)) (or (CanUse RG_HOOKSHOT) (and RT_GTG_FAKE_WALL (CanUse RG_HOVER_BOOTS))))
RR_GERUDO_TRAINING_GROUND_LIKE_LIKE_ROOM (and (or RT_LENS_GTG (CanUse RG_LENS_OF_TRUTH)) (and (or (CanUse RG_HOOKSHOT) (and RT_GTG_FAKE_WALL (CanUse RG_HOVER_BOOTS))) (CanUse RG_SILVER_GAUNTLETS)))
def RR_GERUDO_TRAINING_GROUND_LIKE_LIKE_ROOM SCENE_GERUDO_TRAINING_GROUND false RA_GERUDO_TRAINING_GROUND
Gerudo Training Ground Like Like Room
//Checks
RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_FIRST_CHEST CanJumpslashExceptHammer
RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_SECOND_CHEST CanJumpslashExceptHammer
RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_THIRD_CHEST CanJumpslashExceptHammer
@ -73,6 +91,7 @@ RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_FOURTH_CHEST CanJumpslashExceptHammer
def RR_GERUDO_TRAINING_GROUND_MQ_LOBBY SCENE_GERUDO_TRAINING_GROUND false RA_GERUDO_TRAINING_GROUND
Gerudo Training Ground MQ Lobby
//Checks
RC_GERUDO_TRAINING_GROUND_MQ_LOBBY_LEFT_CHEST true
RC_GERUDO_TRAINING_GROUND_MQ_LOBBY_RIGHT_CHEST true
RC_GERUDO_TRAINING_GROUND_MQ_MAZE_PATH_FIRST_CHEST true
@ -81,6 +100,7 @@ RC_GERUDO_TRAINING_GROUND_MQ_LOBBY_LEFT_POT_1 CanBreakPots
RC_GERUDO_TRAINING_GROUND_MQ_LOBBY_LEFT_POT_2 CanBreakPots
RC_GERUDO_TRAINING_GROUND_MQ_LOBBY_RIGHT_POT_1 CanBreakPots
RC_GERUDO_TRAINING_GROUND_MQ_LOBBY_RIGHT_POT_2 CanBreakPots
//Exits
RR_GERUDO_TRAINING_GROUND_ENTRYWAY true
RR_GERUDO_TRAINING_GROUND_MQ_MAZE_HIDDEN_ROOM (or RT_LENS_GTG_MQ (CanUse RG_LENS_OF_TRUTH))
RR_GERUDO_TRAINING_GROUND_MQ_MAZE_FIRST_LOCK (SmallKeys SCENE_GERUDO_TRAINING_GROUND 1)
@ -90,47 +110,62 @@ RR_GERUDO_TRAINING_GROUND_MQ_DINOLFOS_ROOM (Here (or (and IsAdult (CanUse RG_FAI
def RR_GERUDO_TRAINING_GROUND_MQ_MAZE_HIDDEN_ROOM SCENE_GERUDO_TRAINING_GROUND false RA_GERUDO_TRAINING_GROUND
Gerudo Training Ground MQ Maze Hidden Room
//Checks
RC_GERUDO_TRAINING_GROUND_MQ_HIDDEN_CEILING_CHEST true
//Exits
RR_GERUDO_TRAINING_GROUND_MQ_LOBBY true
def RR_GERUDO_TRAINING_GROUND_MQ_MAZE_FIRST_LOCK SCENE_GERUDO_TRAINING_GROUND false RA_GERUDO_TRAINING_GROUND
Gerudo Training Ground MQ Maze First Lock
//Checks
RC_GERUDO_TRAINING_GROUND_MQ_MAZE_PATH_THIRD_CHEST true
//Exits
RR_GERUDO_TRAINING_GROUND_MQ_LOBBY (SmallKeys SCENE_GERUDO_TRAINING_GROUND 1)
RR_GERUDO_TRAINING_GROUND_MQ_MAZE_CENTER (SmallKeys SCENE_GERUDO_TRAINING_GROUND 3)
def RR_GERUDO_TRAINING_GROUND_MQ_MAZE_CENTER SCENE_GERUDO_TRAINING_GROUND false RA_GERUDO_TRAINING_GROUND
Gerudo Training Ground MQ Center
//Events
MQGTGMazeSwitch (CanUse RG_MEGATON_HAMMER)
//Checks
RC_GERUDO_TRAINING_GROUND_MQ_MAZE_CRATE CanBreakCrates
//Exits
RR_GERUDO_TRAINING_GROUND_MQ_MAZE_FIRST_LOCK (SmallKeys SCENE_GERUDO_TRAINING_GROUND 3)
def RR_GERUDO_TRAINING_GROUND_MQ_SAND_ROOM SCENE_GERUDO_TRAINING_GROUND false RA_GERUDO_TRAINING_GROUND
Gerudo Training Ground MQ Sand Room
//Checks
RC_GERUDO_TRAINING_GROUND_MQ_FIRST_IRON_KNUCKLE_CHEST (CanKillEnemy RE_IRON_KNUCKLE)
//Exits
RR_GERUDO_TRAINING_GROUND_MQ_LOBBY true
RR_GERUDO_TRAINING_GROUND_MQ_LEFT_SIDE (Here (CanKillEnemy RE_IRON_KNUCKLE))
def RR_GERUDO_TRAINING_GROUND_MQ_LEFT_SIDE SCENE_GERUDO_TRAINING_GROUND false RA_GERUDO_TRAINING_GROUND
Gerudo Training Ground MQ Left Side
//Exits
RR_GERUDO_TRAINING_GROUND_MQ_SAND_ROOM true
RR_GERUDO_TRAINING_GROUND_MQ_STALFOS_ROOM (Here (or (CanUse RG_LONGSHOT) (or RT_GTG_MQ_WITHOUT_HOOKSHOT (and RT_GTG_MQ_WITH_HOOKSHOT (and IsAdult (and CanJumpslash (CanUse RG_HOOKSHOT)))))))
def RR_GERUDO_TRAINING_GROUND_MQ_STALFOS_ROOM SCENE_GERUDO_TRAINING_GROUND false RA_GERUDO_TRAINING_GROUND
Gerudo Training Ground MQ Stalfos Room
//Events
BlueFireAccess true
//implies logic->CanKillEnemy(RE_BIG_SKULLTULA)
//Checks
RC_GERUDO_TRAINING_GROUND_MQ_BEFORE_HEAVY_BLOCK_CHEST (CanKillEnemy RE_STALFOS ED_CLOSE true 2 true)
//Exits
RR_GERUDO_TRAINING_GROUND_MQ_BEHIND_BLOCK (and (Here (CanKillEnemy RE_STALFOS ED_CLOSE true 2 true)) (CanUse RG_SILVER_GAUNTLETS))
RR_GERUDO_TRAINING_GROUND_MQ_STATUE_ROOM_LEDGE (and IsAdult (and (Here (CanKillEnemy RE_STALFOS ED_CLOSE true 2 true)) (and (or RT_LENS_GTG_MQ (CanUse RG_LENS_OF_TRUTH)) (and BlueFire (or (CanUse RG_SONG_OF_TIME) (and RT_GTG_FAKE_WALL (CanUse RG_HOVER_BOOTS)))))))
def RR_GERUDO_TRAINING_GROUND_MQ_BEHIND_BLOCK SCENE_GERUDO_TRAINING_GROUND false RA_GERUDO_TRAINING_GROUND
Gerudo Training Ground MQ Behind Block
//implies logic->CanKillEnemy(RE_SPIKE)
//Checks
RC_GERUDO_TRAINING_GROUND_MQ_HEAVY_BLOCK_CHEST (CanKillEnemy RE_FREEZARD)
def RR_GERUDO_TRAINING_GROUND_MQ_STATUE_ROOM_LEDGE SCENE_GERUDO_TRAINING_GROUND false RA_GERUDO_TRAINING_GROUND
Gerudo Training Ground MQ Statue Room Ledge
//Exits
RR_GERUDO_TRAINING_GROUND_MQ_STALFOS_ROOM true
//implies dropping down to hit the switch. Using swords, especially master, is a bit awkward, may be trick worthy, but is only relevant with other tricks
RR_GERUDO_TRAINING_GROUND_MQ_MAGENTA_FIRE_ROOM (Here (or (CanUse RG_HOOKSHOT) (or (CanUse RG_FAIRY_BOW) (or (CanUse RG_MASTER_SWORD) (or (CanUse RG_BIGGORON_SWORD) (or (CanUse RG_STICKS) (or (CanUse RG_FAIRY_SLINGSHOT) (CanUse RG_BOOMERANG))))))))
@ -138,27 +173,35 @@ RR_GERUDO_TRAINING_GROUND_MQ_STATUE_ROOM true
def RR_GERUDO_TRAINING_GROUND_MQ_MAGENTA_FIRE_ROOM SCENE_GERUDO_TRAINING_GROUND false RA_GERUDO_TRAINING_GROUND
Gerudo Training Ground MQ Magenta Fire Room
//Checks
RC_GERUDO_TRAINING_GROUND_MQ_ICE_ARROWS_CHEST MQGTGMazeSwitch
//Exits
RR_GERUDO_TRAINING_GROUND_MQ_STATUE_ROOM_LEDGE true
def RR_GERUDO_TRAINING_GROUND_MQ_STATUE_ROOM SCENE_GERUDO_TRAINING_GROUND false RA_GERUDO_TRAINING_GROUND
Gerudo Training Ground MQ Statue ROom
//Checks
RC_GERUDO_TRAINING_GROUND_MQ_EYE_STATUE_CHEST (CanUse RG_FAIRY_BOW)
//Exits
RR_GERUDO_TRAINING_GROUND_MQ_STATUE_ROOM_LEDGE (CanUse RG_LONGSHOT)
RR_GERUDO_TRAINING_GROUND_MQ_TORCH_SLUG_ROOM true
def RR_GERUDO_TRAINING_GROUND_MQ_TORCH_SLUG_ROOM SCENE_GERUDO_TRAINING_GROUND false RA_GERUDO_TRAINING_GROUND
Gerudo Training Ground MQ Torch Slug Room
//implies logic->CanKillEnemy(RE_TORCH_SLUG)
//Checks
RC_GERUDO_TRAINING_GROUND_MQ_SECOND_IRON_KNUCKLE_CHEST (CanKillEnemy RE_IRON_KNUCKLE)
RC_GERUDO_TRAINING_GROUND_MQ_FLAME_CIRCLE_CHEST (CanHitSwitch ED_BOMB_THROW)
//Exits
RR_GERUDO_TRAINING_GROUND_MQ_STATUE_ROOM (Here (CanKillEnemy RE_IRON_KNUCKLE))
RR_GERUDO_TRAINING_GROUND_MQ_SWITCH_LEDGE (Here (CanKillEnemy RE_IRON_KNUCKLE))
def RR_GERUDO_TRAINING_GROUND_MQ_SWITCH_LEDGE SCENE_GERUDO_TRAINING_GROUND false RA_GERUDO_TRAINING_GROUND
Gerudo Training Ground MQ Switch Ledge
//Events
MQGTGRightSideSwitch (CanUse RG_MEGATON_HAMMER)
GTGPlatformSilverRupees (and (CanUse RG_FIRE_ARROWS) (CanUse RG_HOVER_BOOTS))
//Exits
RR_GERUDO_TRAINING_GROUND_MQ_LEDGE_SIDE_PLATFORMS (CanUse RG_FIRE_ARROWS)
//the fire bubble here is a jerk if you are aiming for the nearest hook platform, you have to aim to the right hand side with hook to dodge it
RR_GERUDO_TRAINING_GROUND_MQ_PLATFORMS_UNLIT_TORCH (or (CanUse RG_LONGSHOT) (or (and GTGPlatformSilverRupees (CanUse RG_HOOKSHOT)) (and (and (CanUse RG_FIRE_ARROWS) GTGPlatformSilverRupees) (CanUse RG_HOVER_BOOTS))))
@ -170,6 +213,7 @@ RR_GERUDO_TRAINING_GROUND_MQ_MAZE_RIGHT (and MQGTGRightSideSwitch (CanUse RG_LON
def RR_GERUDO_TRAINING_GROUND_MQ_LEDGE_SIDE_PLATFORMS SCENE_GERUDO_TRAINING_GROUND false RA_GERUDO_TRAINING_GROUND
Gerudo Training Ground MQ Ledge Side Platforms
//This is merely to extend this region's logic if you have hovers
//Exits
RR_GERUDO_TRAINING_GROUND_MQ_FURTHEST_PLATFORM (CanUse RG_HOVER_BOOTS)
//this region exists to place silver rupee items on later, normally it's all on fire and cannot be stood on without access from another area
@ -178,12 +222,15 @@ RR_GERUDO_TRAINING_GROUND_MQ_FURTHEST_PLATFORM (CanUse RG_HOVER_BOOTS)
def RR_GERUDO_TRAINING_GROUND_MQ_FURTHEST_PLATFORM SCENE_GERUDO_TRAINING_GROUND false RA_GERUDO_TRAINING_GROUND
Gerudo Training Ground MQ Furthest Platform
//This is merely to extend this region's logic if you have hovers
//Exits
RR_GERUDO_TRAINING_GROUND_MQ_LEDGE_SIDE_PLATFORMS (CanUse RG_HOVER_BOOTS)
def RR_GERUDO_TRAINING_GROUND_MQ_TORCH_SIDE_PLATFORMS SCENE_GERUDO_TRAINING_GROUND false RA_GERUDO_TRAINING_GROUND
Gerudo Training Ground Torch Side Platforms
//this torch shot is possible as child but tight and obtuse enough to be a trick
//Events
GTGPlatformSilverRupees (and (or (and (CanUse RG_FAIRY_BOW) IsAdult) (CanUse RG_FIRE_ARROWS)) (CanUse RG_HOVER_BOOTS))
//Exits
RR_GERUDO_TRAINING_GROUND_MQ_LEDGE_SIDE_PLATFORMS (and (or (and (CanUse RG_FAIRY_BOW) IsAdult) (CanUse RG_FIRE_ARROWS)) (CanUse RG_HOVER_BOOTS))
RR_GERUDO_TRAINING_GROUND_MQ_PLATFORMS_UNLIT_TORCH (or (and (CanUse RG_FAIRY_BOW) IsAdult) (or (CanUse RG_FIRE_ARROWS) (CanUse RG_LONGSHOT)))
RR_GERUDO_TRAINING_GROUND_MQ_MAZE_RIGHT (and MQGTGRightSideSwitch (or (and (CanUse RG_FAIRY_BOW) IsAdult) (or (CanUse RG_FIRE_ARROWS) (CanUse RG_LONGSHOT))))
@ -191,7 +238,9 @@ RR_GERUDO_TRAINING_GROUND_MQ_DINOLFOS_ROOM true
def RR_GERUDO_TRAINING_GROUND_MQ_PLATFORMS_UNLIT_TORCH SCENE_GERUDO_TRAINING_GROUND false RA_GERUDO_TRAINING_GROUND
Gerudo Training Ground MQ Platforms Unlit Torch
//Events
GTGPlatformSilverRupees (and HasFireSource (CanUse RG_HOVER_BOOTS))
//Exits
RR_GERUDO_TRAINING_GROUND_MQ_UNDERWATER GTGPlatformSilverRupees
RR_GERUDO_TRAINING_GROUND_MQ_LEDGE_SIDE_PLATFORMS (and HasFireSource (CanUse RG_HOVER_BOOTS))
RR_GERUDO_TRAINING_GROUND_MQ_TORCH_SIDE_PLATFORMS (or HasFireSource (CanUse RG_LONGSHOT))
@ -204,20 +253,27 @@ Gerudo Training Ground MQ Dinolfos Room
//is logic->CanKillEnemy(RE_DINOLFOS, ED_CLOSE, true, 2, true) && logic->CanKillEnemy(RE_ARMOS, ED_CLOSE, true, 1, true) broken down to exclude sticks, as it take too many to clear the room
//Proper enemy kill room ammo logic is needed to handle this room
//some combinations may be impossible without taking damage, keep an eye out for issues here
//Checks
RC_GERUDO_TRAINING_GROUND_MQ_DINOLFOS_CHEST (or (CanUse RG_MASTER_SWORD) (or (CanUse RG_BIGGORON_SWORD) (or (CanUse RG_MEGATON_HAMMER) (or (CanUse RG_FAIRY_BOW) (and (or (CanUse RG_NUTS) (or (CanUse RG_HOOKSHOT) (CanUse RG_BOOMERANG))) (or (CanUse RG_KOKIRI_SWORD) (CanUse RG_FAIRY_SLINGSHOT)))))))
//Exits
RR_GERUDO_TRAINING_GROUND_MQ_TORCH_SIDE_PLATFORMS (Here (or (CanUse RG_MASTER_SWORD) (or (CanUse RG_BIGGORON_SWORD) (or (CanUse RG_MEGATON_HAMMER) (or (CanUse RG_FAIRY_BOW) (and (or (CanUse RG_NUTS) (or (CanUse RG_HOOKSHOT) (CanUse RG_BOOMERANG))) (or (CanUse RG_KOKIRI_SWORD) (CanUse RG_FAIRY_SLINGSHOT))))))))
def RR_GERUDO_TRAINING_GROUND_MQ_UNDERWATER SCENE_GERUDO_TRAINING_GROUND false RA_GERUDO_TRAINING_GROUND
Gerudo Training Ground MQ Underwater
//it is possible to snipe the stingers with bow or sling before dropping in, or just get really lucky, and avoid needing to take damage, but that might be trick worthy
//Checks
RC_GERUDO_TRAINING_GROUND_MQ_UNDERWATER_SILVER_RUPEE_CHEST (and HasFireSource (and (CanUse RG_IRON_BOOTS) (and (>= WaterTimer 24) (and (HasItem RG_BRONZE_SCALE) TakeDamage))))
//Exits
RR_GERUDO_TRAINING_GROUND_MQ_PLATFORMS_UNLIT_TORCH true
def RR_GERUDO_TRAINING_GROUND_MQ_MAZE_RIGHT SCENE_GERUDO_TRAINING_GROUND false RA_GERUDO_TRAINING_GROUND
Gerudo Training Ground MQ Maze Right
//Events
GTGPlatformSilverRupees (and (CanUse RG_FIRE_ARROWS) (CanUse RG_HOVER_BOOTS))
//Checks
RC_GERUDO_TRAINING_GROUND_MQ_MAZE_RIGHT_CENTRAL_CHEST true
RC_GERUDO_TRAINING_GROUND_MQ_MAZE_RIGHT_SIDE_CHEST true
//Exits
RR_GERUDO_TRAINING_GROUND_MQ_LOBBY true
RR_GERUDO_TRAINING_GROUND_MQ_LEDGE_SIDE_PLATFORMS (or (CanUse RG_FIRE_ARROWS) (CanUse RG_LONGSHOT))
RR_GERUDO_TRAINING_GROUND_MQ_PLATFORMS_UNLIT_TORCH (or (CanUse RG_FIRE_ARROWS) (or (CanUse RG_LONGSHOT) (and GTGPlatformSilverRupees (CanUse RG_HOVER_BOOTS))))

View file

@ -1,18 +1,23 @@
def RR_ICE_CAVERN_ENTRYWAY SCENE_ICE_CAVERN false RA_ICE_CAVERN
Ice Cavern Entryway
//Exits
RR_ICE_CAVERN_BEGINNING (IsDungeonVanilla ICE_CAVERN)
RR_ICE_CAVERN_MQ_BEGINNING (and (IsDungeonMQ ICE_CAVERN) CanUseProjectile)
RR_ZF_LEDGE true
def RR_ICE_CAVERN_BEGINNING SCENE_ICE_CAVERN false RA_ICE_CAVERN
Ice Cavern Beginning
//Checks
RC_ICE_CAVERN_ENTRANCE_STORMS_FAIRY (CanUse RG_SONG_OF_STORMS)
//Exits
RR_ICE_CAVERN_ENTRYWAY true
RR_ICE_CAVERN_MAIN (Here (CanKillEnemy RE_FREEZARD ED_CLOSE true 4))
def RR_ICE_CAVERN_MAIN SCENE_ICE_CAVERN false RA_ICE_CAVERN
Ice Cavern
//Events
BlueFireAccess IsAdult
//Checks
RC_ICE_CAVERN_MAP_CHEST (and BlueFire IsAdult)
RC_ICE_CAVERN_COMPASS_CHEST BlueFire
RC_ICE_CAVERN_IRON_BOOTS_CHEST (and BlueFire (CanKillEnemy RE_WOLFOS))
@ -39,14 +44,18 @@ RC_ICE_CAVERN_SLIDING_BLOCK_RUPEE_3 (and BlueFire (or (CanUse RG_SONG_OF_TIME) (
def RR_ICE_CAVERN_MQ_BEGINNING SCENE_ICE_CAVERN false RA_ICE_CAVERN
Ice Cavern MQ Beginning
//Checks
RC_ICE_CAVERN_MQ_ENTRANCE_POT CanBreakPots
//Exits
RR_ICE_CAVERN_ENTRYWAY true
//It is in logic to use a pot to hit the toggle switch here.
RR_ICE_CAVERN_MQ_HUB true
def RR_ICE_CAVERN_MQ_HUB SCENE_ICE_CAVERN false RA_ICE_CAVERN
Ice Cavern MQ Hub
//Events
FairyPot true
//Checks
RC_ICE_CAVERN_MQ_FIRST_CRYSTAL_POT_1 CanBreakPots
RC_ICE_CAVERN_MQ_FIRST_CRYSTAL_POT_2 CanBreakPots
RC_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_1 CanBreakPots
@ -55,6 +64,7 @@ RC_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_3 CanBreakPots
RC_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_4 CanBreakPots
//the switch for the glass blocking the entrance is linked to the switch that controls the glass around the skulltulla in RR_ICE_CAVERN_MQ_SCARECROW_ROOM
//if you clear the ice, you can hit it with a pot from here.
//Exits
RR_ICE_CAVERN_MQ_BEGINNING BlueFire
RR_ICE_CAVERN_MQ_MAP_ROOM (Here (and (CanKillEnemy RE_WHITE_WOLFOS) (CanKillEnemy RE_FREEZARD)))
RR_ICE_CAVERN_MQ_COMPASS_ROOM (and IsAdult BlueFire)
@ -63,34 +73,44 @@ RR_ICE_CAVERN_MQ_SCARECROW_ROOM BlueFire
def RR_ICE_CAVERN_MQ_MAP_ROOM SCENE_ICE_CAVERN false RA_ICE_CAVERN
Ice Cavern MQ Map Room
//Child can fit between the stalagmites on the left hand side
//Events
BlueFireAccess (or IsChild (or CanJumpslash HasExplosives))
//Checks
RC_ICE_CAVERN_MQ_MAP_CHEST (and BlueFire (Here CanHitSwitch))
def RR_ICE_CAVERN_MQ_SCARECROW_ROOM SCENE_ICE_CAVERN false RA_ICE_CAVERN
Ice Cavern MQ Scarecrow Room
//Checks
RC_ICE_CAVERN_MQ_GS_ICE_BLOCK (or (and BlueFire (CanGetEnemyDrop RE_GOLD_SKULLTULA)) (and IsAdult (CanHitSwitch ED_LONG_JUMPSLASH)))
RC_ICE_CAVERN_MQ_GS_SCARECROW (or (CanUse RG_SCARECROW) (and IsAdult (or (CanUse RG_LONGSHOT) RT_ICE_MQ_SCARECROW)))
//Exits
RR_ICE_CAVERN_MQ_HUB BlueFire
//Assumes RR_ICE_CAVERN_MQ_HUB access for a pot if using blue fire
RR_ICE_CAVERN_MQ_WEST_CORRIDOR (and IsAdult BlueFire)
def RR_ICE_CAVERN_MQ_STALFOS_ROOM SCENE_ICE_CAVERN false RA_ICE_CAVERN
Ice Cavern MQ Stalfos Room
//Checks
RC_ICE_CAVERN_MQ_IRON_BOOTS_CHEST (CanKillEnemy RE_STALFOS)
RC_SHEIK_IN_ICE_CAVERN (CanKillEnemy RE_STALFOS)
//Exits
RR_ICE_CAVERN_MQ_WEST_CORRIDOR (Here (CanKillEnemy RE_STALFOS))
RR_ICE_CAVERN_MQ_BEGINNING (and (CanUse RG_IRON_BOOTS) (Here (CanKillEnemy RE_STALFOS)))
def RR_ICE_CAVERN_MQ_WEST_CORRIDOR SCENE_ICE_CAVERN false RA_ICE_CAVERN
Ice Cavern MQ West Corridor
//Checks
RC_ICE_CAVERN_MQ_PUSH_BLOCK_POT_1 CanBreakPots
RC_ICE_CAVERN_MQ_PUSH_BLOCK_POT_2 CanBreakPots
//Exits
RR_ICE_CAVERN_MQ_SCARECROW_ROOM BlueFire
RR_ICE_CAVERN_MQ_STALFOS_ROOM true
def RR_ICE_CAVERN_MQ_COMPASS_ROOM SCENE_ICE_CAVERN false RA_ICE_CAVERN
Ice Cavern MQ Compass Room
//Events
BlueFireAccess true
//Checks
RC_ICE_CAVERN_MQ_COMPASS_CHEST true
//It is possible for child with master, BGS or sticks, or adult with BGS, to hit this switch through the ice with a crouchstab, but it's precise and unintuitive for a trick
RC_ICE_CAVERN_MQ_FREESTANDING_POH HasExplosives

View file

@ -1,24 +1,29 @@
def RR_JABU_JABUS_BELLY_ENTRYWAY SCENE_JABU_JABU false RA_JABU_JABUS_BELLY
Jabu Jabus Belly Entryway
//Exits
RR_JABU_JABUS_BELLY_BEGINNING (IsDungeonVanilla JABU_JABUS_BELLY)
RR_JABU_JABUS_BELLY_MQ_BEGINNING (IsDungeonMQ JABU_JABUS_BELLY)
RR_ZORAS_FOUNTAIN true
def RR_JABU_JABUS_BELLY_BEGINNING SCENE_JABU_JABU false RA_JABU_JABUS_BELLY
Jabu Jabus Belly Beginning
//Exits
RR_JABU_JABUS_BELLY_ENTRYWAY true
RR_JABU_JABUS_BELLY_MAIN CanUseProjectile
//Combines Lift room middle and lower, 1F holes room, the forked corridor, and it's side rooms
def RR_JABU_JABUS_BELLY_MAIN SCENE_JABU_JABU false RA_JABU_JABUS_BELLY
Jabu Jabus Belly Main
//Events
JabuWestTentacle (and JabuRutoIn1F (CanKillEnemy RE_TENTACLE ED_BOOMERANG))
//Checks
RC_JABU_JABUS_BELLY_DEKU_SCRUB (and (HasItem RG_BRONZE_SCALE) (and (or IsChild (or (HasItem RG_SILVER_SCALE) (or RT_JABU_ALCOVE_JUMP_DIVE (CanUse RG_IRON_BOOTS)))) CanStunDeku))
//We can kill the Stingers with ruto
RC_JABU_JABUS_BELLY_BOOMERANG_CHEST JabuRutoIn1F
RC_JABU_JABUS_BELLY_MAP_CHEST JabuWestTentacle
RC_JABU_JABUS_BELLY_PLATFORM_ROOM_SMALL_CRATE_1 CanBreakSmallCrates
RC_JABU_JABUS_BELLY_PLATFORM_ROOM_SMALL_CRATE_2 CanBreakSmallCrates
//Exits
RR_JABU_JABUS_BELLY_BEGINNING true
//contains B1 of hole room (aside from the ledge leading to big octo), 2 octorock room and north water switch room
RR_JABU_JABUS_BELLY_B1_NORTH true
@ -30,8 +35,10 @@ RR_JABU_JABUS_BELLY_NEAR_BOSS_ROOM (or LoweredJabuPath (and RT_JABU_BOSS_HOVER (
def RR_JABU_JABUS_BELLY_B1_NORTH SCENE_JABU_JABU false RA_JABU_JABUS_BELLY
Jabu Jabus Belly B1 North
//Events
JabuRutoIn1F (or IsAdult (HasItem RG_BRONZE_SCALE))
FairyPot (or (CanUse RG_BOOMERANG) (and (CanUse RG_HOVER_BOOTS) (CanKillEnemy RE_OCTOROK)))
//Checks
RC_JABU_JABUS_BELLY_GS_LOBBY_BASEMENT_LOWER HookshotOrBoomerang
RC_JABU_JABUS_BELLY_GS_LOBBY_BASEMENT_UPPER HookshotOrBoomerang
RC_JABU_JABUS_BELLY_GS_WATER_SWITCH_ROOM HookshotOrBoomerang
@ -40,6 +47,7 @@ RC_JABU_JABUS_BELLY_TWO_OCTOROK_POT_2 (and CanBreakPots (or (CanUse RG_BOOMERANG
RC_JABU_JABUS_BELLY_TWO_OCTOROK_POT_3 (and CanBreakPots (or (CanUse RG_BOOMERANG) (and (CanUse RG_HOVER_BOOTS) (CanKillEnemy RE_OCTOROK ED_BOOMERANG false))))
RC_JABU_JABUS_BELLY_TWO_OCTOROK_POT_4 (and CanBreakPots (or (CanUse RG_BOOMERANG) (and (CanUse RG_HOVER_BOOTS) (CanKillEnemy RE_OCTOROK ED_BOOMERANG false))))
RC_JABU_JABUS_BELLY_TWO_OCTOROK_POT_5 (and CanBreakPots (or (CanUse RG_BOOMERANG) (and (CanUse RG_HOVER_BOOTS) (CanKillEnemy RE_OCTOROK ED_BOOMERANG false))))
//Exits
RR_JABU_JABUS_BELLY_MAIN true
//there's tricks for getting here with bunny-jumps or just side-hops
RR_JABU_JABUS_BELLY_WATER_SWITCH_ROOM_LEDGE (or (HasItem RG_BRONZE_SCALE) (CanUse RG_HOVER_BOOTS))
@ -47,86 +55,112 @@ RR_JABU_JABUS_BELLY_WATER_SWITCH_ROOM_SOUTH (or IsAdult (HasItem RG_BRONZE_SCALE
def RR_JABU_JABUS_BELLY_WATER_SWITCH_ROOM_SOUTH SCENE_JABU_JABU false RA_JABU_JABUS_BELLY
Jabu Jabus Belly Water Switch Room South
//Checks
RC_JABU_JABUS_BELLY_GS_WATER_SWITCH_ROOM HookshotOrBoomerang
//Exits
RR_JABU_JABUS_BELLY_B1_NORTH (or IsAdult (HasItem RG_BRONZE_SCALE))
RR_JABU_JABUS_BELLY_WATER_SWITCH_ROOM_LEDGE (or (HasItem RG_BRONZE_SCALE) (CanUse RG_HOVER_BOOTS))
RR_JABU_JABUS_BELLY_MAIN CanUseProjectile
def RR_JABU_JABUS_BELLY_WATER_SWITCH_ROOM_LEDGE SCENE_JABU_JABU false RA_JABU_JABUS_BELLY
Jabu Jabus Belly Water Switch Room Ledge
//Events
FairyPot true
//this is the logic for climbing back and forth to use the pots to kill the skull... or killing the skull before climbing to grab the token
//Checks
RC_JABU_JABUS_BELLY_GS_WATER_SWITCH_ROOM (or (HasItem RG_BRONZE_SCALE) (or (and IsAdult (CanUse RG_HOVER_BOOTS)) (CanKillEnemy RE_GOLD_SKULLTULA ED_BOMB_THROW)))
RC_JABU_JABUS_BELLY_BASEMENT_POT_1 CanBreakPots
RC_JABU_JABUS_BELLY_BASEMENT_POT_2 CanBreakPots
RC_JABU_JABUS_BELLY_BASEMENT_POT_3 CanBreakPots
//Exits
RR_JABU_JABUS_BELLY_B1_NORTH true
RR_JABU_JABUS_BELLY_WATER_SWITCH_ROOM_SOUTH true
def RR_JABU_JABUS_BELLY_COMPASS_ROOM SCENE_JABU_JABU false RA_JABU_JABUS_BELLY
Jabu Jabus Belly Compass Room
//ruto could theoretically clear this room, but it's hard because of the timer and she doesn't appear with you when you respawn after failing, which would force a savewarp
//Checks
RC_JABU_JABUS_BELLY_COMPASS_CHEST (CanKillEnemy RE_SHABOM)
//Exits
RR_JABU_JABUS_BELLY_MAIN (Here (CanKillEnemy RE_SHABOM))
def RR_JABU_JABUS_BELLY_BLUE_TENTACLE SCENE_JABU_JABU false RA_JABU_JABUS_BELLY
Jabu Jabus Belly Blue Tentacle
//Events
JabuEastTentacle (CanKillEnemy RE_TENTACLE ED_BOOMERANG)
//Exits
RR_JABU_JABUS_BELLY_MAIN JabuEastTentacle
def RR_JABU_JABUS_BELLY_GREEN_TENTACLE SCENE_JABU_JABU false RA_JABU_JABUS_BELLY
Jabu Jabus Belly Green Tentacle
//Events
JabuNorthTentacle (CanKillEnemy RE_TENTACLE ED_BOOMERANG)
//implied logic->CanKillEnemy(RE_BARI)
//Exits
RR_JABU_JABUS_BELLY_MAIN JabuNorthTentacle
def RR_JABU_JABUS_BELLY_BIGOCTO_LEDGE SCENE_JABU_JABU false RA_JABU_JABUS_BELLY
Jabu Jabus Belly Bigocto Room
//Checks
RC_JABU_JABUS_BELLY_GS_LOBBY_BASEMENT_UPPER (and IsAdult (CanGetEnemyDrop RE_GOLD_SKULLTULA ED_SHORT_JUMPSLASH))
//Exits
RR_JABU_JABUS_BELLY_B1_NORTH true
RR_JABU_JABUS_BELLY_ABOVE_BIGOCTO (and JabuRutoIn1F (Here (CanKillEnemy RE_BIG_OCTO)))
def RR_JABU_JABUS_BELLY_ABOVE_BIGOCTO SCENE_JABU_JABU false RA_JABU_JABUS_BELLY
Jabu Jabus Belly Above Bigocto
//Events
FairyPot true
NutPot true
//Checks
RC_JABU_JABUS_BELLY_ABOVE_BIG_OCTO_POT_1 CanBreakPots
RC_JABU_JABUS_BELLY_ABOVE_BIG_OCTO_POT_2 CanBreakPots
RC_JABU_JABUS_BELLY_ABOVE_BIG_OCTO_POT_3 CanBreakPots
//Exits
RR_JABU_JABUS_BELLY_LIFT_UPPER (CanUse RG_BOOMERANG)
def RR_JABU_JABUS_BELLY_LIFT_UPPER SCENE_JABU_JABU false RA_JABU_JABUS_BELLY
Jabu Jabus Belly Lift Upper
//Events
LoweredJabuPath true
//Exits
RR_JABU_JABUS_BELLY_MAIN true
def RR_JABU_JABUS_BELLY_NEAR_BOSS_ROOM SCENE_JABU_JABU false RA_JABU_JABUS_BELLY
Jabu Jabus Belly Near Boss Room
//Checks
RC_JABU_JABUS_BELLY_GS_NEAR_BOSS (CanKillEnemy RE_GOLD_SKULLTULA ED_BOMB_THROW)
//Exits
RR_JABU_JABUS_BELLY_MAIN true
RR_JABU_JABUS_BELLY_BOSS_ENTRYWAY (or (CanUse RG_BOOMERANG) (or (and RT_JABU_NEAR_BOSS_RANGED (or (CanUse RG_HOOKSHOT) (or (CanUse RG_FAIRY_BOW) (CanUse RG_FAIRY_SLINGSHOT)))) (and RT_JABU_NEAR_BOSS_EXPLOSIVES (or (CanUse RG_BOMBCHU_5) (and (CanUse RG_HOVER_BOOTS) (CanUse RG_BOMB_BAG))))))
def RR_JABU_JABUS_BELLY_MQ_BEGINNING SCENE_JABU_JABU false RA_JABU_JABUS_BELLY
Jabu Jabus Belly MQ Beginning
//Events
NutPot true
//Checks
RC_JABU_JABUS_BELLY_MQ_MAP_CHEST BlastOrSmash
RC_JABU_JABUS_BELLY_MQ_FIRST_ROOM_SIDE_CHEST (CanUse RG_FAIRY_SLINGSHOT)
RC_JABU_JABUS_BELLY_MQ_ENTRANCE_POT_1 CanBreakPots
RC_JABU_JABUS_BELLY_MQ_ENTRANCE_POT_2 CanBreakPots
RC_JABU_JABUS_BELLY_MQ_FIRST_GRASS_1 CanCutShrubs
RC_JABU_JABUS_BELLY_MQ_FIRST_GRASS_2 CanCutShrubs
//Exits
RR_JABU_JABUS_BELLY_ENTRYWAY true
RR_JABU_JABUS_BELLY_MQ_LIFT_ROOM (Here (CanUse RG_FAIRY_SLINGSHOT))
def RR_JABU_JABUS_BELLY_MQ_LIFT_ROOM SCENE_JABU_JABU false RA_JABU_JABUS_BELLY
Jabu Jabus Belly MQ Lift Room
//Events
MQJabuLiftRoomCow (CanUse RG_FAIRY_SLINGSHOT)
//Checks
RC_JABU_JABUS_BELLY_MQ_SECOND_ROOM_LOWER_CHEST true
RC_JABU_JABUS_BELLY_MQ_LIFT_HEART_1 true
RC_JABU_JABUS_BELLY_MQ_LIFT_HEART_2 true
RC_JABU_JABUS_BELLY_MQ_LIFT_RUPEE_1 (CanUse RG_IRON_BOOTS)
RC_JABU_JABUS_BELLY_MQ_LIFT_RUPEE_2 (CanUse RG_IRON_BOOTS)
RC_JABU_JABUS_BELLY_MQ_LIFT_RUPEE_3 (CanUse RG_IRON_BOOTS)
//Exits
RR_JABU_JABUS_BELLY_MQ_BEGINNING true
RR_JABU_JABUS_BELLY_MQ_UNDERWATER_ALCOVE (or (HasItem RG_SILVER_SCALE) (and (HasItem RG_BRONZE_SCALE) (or IsChild (or (CanUse RG_IRON_BOOTS) RT_JABU_ALCOVE_JUMP_DIVE))))
RR_JABU_JABUS_BELLY_MQ_HOLES_ROOM MQJabuHolesRoomDoor
@ -135,13 +169,17 @@ RR_JABU_JABUS_BELLY_MQ_LIFT_ROOM_EAST_LEDGE (or LoweredJabuPath (or (CanUse RG_H
def RR_JABU_JABUS_BELLY_MQ_LIFT_ROOM_EAST_LEDGE SCENE_JABU_JABU false RA_JABU_JABUS_BELLY
Jabu Jabus Belly MQ Lift Room East Ledge
//Checks
RC_JABU_JABUS_BELLY_MQ_SECOND_ROOM_UPPER_CHEST MQJabuLiftRoomCow
//Exits
RR_JABU_JABUS_BELLY_MQ_LIFT_ROOM true
RR_JABU_JABUS_BELLY_MQ_EAST_ROOM JabuNorthTentacle
def RR_JABU_JABUS_BELLY_MQ_UNDERWATER_ALCOVE SCENE_JABU_JABU false RA_JABU_JABUS_BELLY
Jabu Jabus Belly MQ Underwater Alcove
//Events
MQJabuHolesRoomDoor true
//Checks
RC_JABU_JABUS_BELLY_MQ_COMPASS_CHEST (or (CanHitSwitch ED_HOOKSHOT true) (and RT_JABU_MQ_RANG_JUMP (and (CanUse RG_BOOMERANG) (HasItem RG_BRONZE_SCALE))))
RC_JABU_JABUS_BELLY_MQ_GEYSER_POT_1 CanBreakPots
RC_JABU_JABUS_BELLY_MQ_GEYSER_POT_2 CanBreakPots
@ -149,10 +187,12 @@ RC_JABU_JABUS_BELLY_MQ_GEYSER_POT_2 CanBreakPots
RC_JABU_JABUS_BELLY_MQ_LIFT_RUPEE_1 (or (HasItem RG_GOLDEN_SCALE) (CanUse RG_BOOMERANG))
RC_JABU_JABUS_BELLY_MQ_LIFT_RUPEE_2 (or (HasItem RG_SILVER_SCALE) (CanUse RG_BOOMERANG))
RC_JABU_JABUS_BELLY_MQ_LIFT_RUPEE_3 (or (HasItem RG_BRONZE_SCALE) (CanUse RG_BOOMERANG))
//Exits
RR_JABU_JABUS_BELLY_MQ_LIFT_ROOM (HasItem RG_BRONZE_SCALE)
def RR_JABU_JABUS_BELLY_MQ_HOLES_ROOM SCENE_JABU_JABU false RA_JABU_JABUS_BELLY
Jabu Jabus Belly MQ Holes Room
//Checks
RC_JABU_JABUS_BELLY_MQ_BASEMENT_NEAR_VINES_CHEST (CanUse RG_FAIRY_SLINGSHOT)
RC_JABU_JABUS_BELLY_MQ_BASEMENT_NEAR_SWITCHES_CHEST (CanUse RG_FAIRY_SLINGSHOT)
RC_JABU_JABUS_BELLY_MQ_PIT_GRASS_1 (and CanCutShrubs HasExplosives)
@ -160,6 +200,7 @@ RC_JABU_JABUS_BELLY_MQ_PIT_GRASS_2 (and CanCutShrubs HasExplosives)
RC_JABU_JABUS_BELLY_MQ_BASEMENT_GRASS_1 CanCutShrubs
RC_JABU_JABUS_BELLY_MQ_BASEMENT_GRASS_2 CanCutShrubs
RC_JABU_JABUS_BELLY_MQ_BASEMENT_GRASS_3 CanCutShrubs
//Exits
RR_JABU_JABUS_BELLY_MQ_LIFT_ROOM true
RR_JABU_JABUS_BELLY_MQ_WATER_SWITCH_ROOM true
RR_JABU_JABUS_BELLY_MQ_FORKED_CORRIDOR (and (CanUse RG_BOOMERANG) (and HasExplosives (Here (CanUse RG_FAIRY_SLINGSHOT))))
@ -168,6 +209,7 @@ RR_JABU_JABUS_BELLY_MQ_PAST_OCTO (and JabuWestTentacle (and (Here (CanKillEnemy
def RR_JABU_JABUS_BELLY_MQ_WATER_SWITCH_ROOM SCENE_JABU_JABU false RA_JABU_JABUS_BELLY
Jabu Jabus Belly MQ Water Switch Room
//Checks
RC_JABU_JABUS_BELLY_MQ_BOOMERANG_ROOM_SMALL_CHEST true
//Implies logic->CanKillEnemy(RE_LIKE_LIKE) && logic->CanKillEnemy(RE_STINGER). Without swim, jump from the song of time block to the vines.
RC_JABU_JABUS_BELLY_MQ_BOOMERANG_CHEST (CanKillEnemy RE_LIZALFOS)
@ -176,28 +218,35 @@ RC_JABU_JABUS_BELLY_MQ_TIME_BLOCK_POT_1 CanBreakPots
RC_JABU_JABUS_BELLY_MQ_TIME_BLOCK_POT_2 CanBreakPots
RC_JABU_JABUS_BELLY_MQ_BASEMENT_BOOMERANG_GRASS CanCutShrubs
//without swim, jump from rang chest to the other side
//Exits
RR_JABU_JABUS_BELLY_MQ_BEGINNING (Here (CanKillEnemy RE_LIZALFOS))
RR_JABU_JABUS_BELLY_MQ_HOLES_ROOM (and (or IsAdult (HasItem RG_BRONZE_SCALE)) (Here (CanKillEnemy RE_LIZALFOS)))
//Includes Like Like room
def RR_JABU_JABUS_BELLY_MQ_FORKED_CORRIDOR SCENE_JABU_JABU false RA_JABU_JABUS_BELLY
Jabu Jabus Belly MQ Forked Corridor
//Events
JabuNorthTentacle (and (Here BlastOrSmash) (CanUse RG_BOOMERANG))
//Implies CanKillEnemy(RE_LIKE_LIKE)
//Checks
RC_JABU_JABUS_BELLY_MQ_FALLING_LIKE_LIKE_ROOM_CHEST (CanUse RG_FAIRY_SLINGSHOT)
RC_JABU_JABUS_BELLY_MQ_LIKE_LIKES_POT_1 CanBreakPots
RC_JABU_JABUS_BELLY_MQ_LIKE_LIKES_POT_2 CanBreakPots
RC_JABU_JABUS_BELLY_MQ_FALLING_LIKE_LIKE_GRASS CanCutShrubs
RC_JABU_JABUS_BELLY_MQ_TRIPLE_HALLWAY_SMALL_CRATE_1 CanBreakSmallCrates
RC_JABU_JABUS_BELLY_MQ_TRIPLE_HALLWAY_SMALL_CRATE_2 CanBreakSmallCrates
//Exits
RR_JABU_JABUS_BELLY_MQ_HOLES_ROOM (CanUse RG_BOOMERANG)
//If some mode lets an age use sticks and not sling, and other use sling and not sticks, this needs changing
RR_JABU_JABUS_BELLY_MQ_WEST_FORKED_ROOMS (and (Here (CanUse RG_BOOMERANG)) (or (Here (and (CanUse RG_FAIRY_SLINGSHOT) (CanUse RG_STICKS))) (Here HasFireSource)))
def RR_JABU_JABUS_BELLY_MQ_WEST_FORKED_ROOMS SCENE_JABU_JABU false RA_JABU_JABUS_BELLY
Jabu Jabus Belly MQ West Forked Rooms
//Events
JabuWestTentacle (CanKillEnemy RE_TENTACLE ED_BOOMERANG)
//Checks
RC_JABU_JABUS_BELLY_MQ_GS_TAILPASARAN_ROOM (and (Here HasExplosives) (CanGetEnemyDrop RE_GOLD_SKULLTULA ED_BOOMERANG))
//Exits
RR_JABU_JABUS_BELLY_MQ_FORKED_CORRIDOR true
def RR_JABU_JABUS_BELLY_MQ_INVISIBLE_KEESE_ROOM SCENE_JABU_JABU false RA_JABU_JABUS_BELLY
@ -214,47 +263,59 @@ RC_JABU_JABUS_BELLY_MQ_GS_INVISIBLE_ENEMIES_ROOM (or
//If we kill the enemies, we then need to cross the water using the platform. Note that adult cannot do so while swimming because MQ jank.
(or (and IsChild (HasItem RG_BRONZE_SCALE)) (and IsAdult (CanUse RG_IRON_BOOTS))))
)
//Checks
)
//Exits
RR_JABU_JABUS_BELLY_MQ_HOLES_ROOM (and (or JabuNorthTentacle TakeDamage) (HasItem RG_BRONZE_SCALE))
def RR_JABU_JABUS_BELLY_MQ_PAST_OCTO SCENE_JABU_JABU false RA_JABU_JABUS_BELLY
Jabu Jabus Belly MQ Past Octo
//if a hover up to the path is added, this will want it's own room
//Events
LoweredJabuPath (and (CanUse RG_BOOMERANG) (CanUse RG_FAIRY_SLINGSHOT))
//Checks
RC_JABU_JABUS_BELLY_MQ_COW (and (CanUse RG_EPONAS_SONG) (CanUse RG_FAIRY_SLINGSHOT))
RC_JABU_JABUS_BELLY_MQ_JIGGLIES_GRASS CanCutShrubs
RC_JABU_JABUS_BELLY_MQ_AFTER_BIG_OCTO_GRASS_1 CanCutShrubs
RC_JABU_JABUS_BELLY_MQ_AFTER_BIG_OCTO_GRASS_2 CanCutShrubs
RC_JABU_JABUS_BELLY_MQ_JIGGLIES_SMALL_CRATE_1 (and (CanUse RG_FAIRY_SLINGSHOT) CanBreakSmallCrates)
RC_JABU_JABUS_BELLY_MQ_JIGGLIES_SMALL_CRATE_2 (and (CanUse RG_FAIRY_SLINGSHOT) CanBreakSmallCrates)
//Exits
RR_JABU_JABUS_BELLY_MQ_LIFT_ROOM (and (CanUse RG_BOOMERANG) (CanUse RG_FAIRY_SLINGSHOT))
//you take both fall damage and tentacle damage, unless the tentacle is down. need better damage logic
RR_JABU_JABUS_BELLY_MQ_HOLES_ROOM (and TakeDamage (Here (CanKillEnemy RE_BIG_OCTO)))
def RR_JABU_JABUS_BELLY_MQ_EAST_ROOM SCENE_JABU_JABU false RA_JABU_JABUS_BELLY
Jabu Jabus Belly MQ Boss Region
//Events
FairyPot true
//Checks
RC_JABU_JABUS_BELLY_MQ_NEAR_BOSS_CHEST (CanUse RG_FAIRY_SLINGSHOT)
RC_JABU_JABUS_BELLY_MQ_GS_NEAR_BOSS (or (CanUse RG_BOOMERANG) (and RT_JABU_NEAR_BOSS_RANGED (CanUse RG_HOOKSHOT)))
RC_JABU_JABUS_BELLY_MQ_BEFORE_BOSS_POT_1 CanBreakPots
RC_JABU_JABUS_BELLY_MQ_BEFORE_BOSS_GRASS_1 CanCutShrubs
RC_JABU_JABUS_BELLY_MQ_BEFORE_BOSS_GRASS_2 CanCutShrubs
//Exits
RR_JABU_JABUS_BELLY_MQ_LIFT_ROOM_EAST_LEDGE true
RR_JABU_JABUS_BELLY_BOSS_ENTRYWAY (Here (CanUse RG_FAIRY_SLINGSHOT))
def RR_JABU_JABUS_BELLY_BOSS_ENTRYWAY SCENE_JABU_JABU false RA_JABU_JABUS_BELLY
Jabu Jabus Belly Boss Entryway
//Exits
RR_JABU_JABUS_BELLY_BOSS_ROOM true
def RR_JABU_JABUS_BELLY_BOSS_EXIT SCENE_JABU_JABU false RA_JABU_JABUS_BELLY
Jabu Jabus Belly Boss Exit
//Exits
RR_JABU_JABUS_BELLY_NEAR_BOSS_ROOM (IsDungeonVanilla JABU_JABUS_BELLY)
RR_JABU_JABUS_BELLY_MQ_EAST_ROOM (IsDungeonMQ JABU_JABUS_BELLY)
def RR_JABU_JABUS_BELLY_BOSS_ROOM SCENE_JABU_JABU_BOSS false
Jabu Jabus Belly Boss Room
//todo: add pot kill trick
//Events
JabuJabusBellyClear (CanKillEnemy RE_BARINADE)
//Checks
RC_JABU_JABUS_BELLY_BARINADE_POT_1 CanBreakPots
RC_JABU_JABUS_BELLY_BARINADE_POT_2 CanBreakPots
RC_JABU_JABUS_BELLY_BARINADE_POT_3 CanBreakPots
@ -263,5 +324,6 @@ RC_JABU_JABUS_BELLY_BARINADE_POT_5 CanBreakPots
RC_JABU_JABUS_BELLY_BARINADE_POT_6 CanBreakPots
RC_JABU_JABUS_BELLY_BARINADE_HEART JabuJabusBellyClear
RC_BARINADE JabuJabusBellyClear
//Exits
RR_JABU_JABUS_BELLY_BOSS_EXIT false
RR_ZORAS_FOUNTAIN @deprioritize JabuJabusBellyClear

View file

@ -1,12 +1,15 @@
def RR_SHADOW_TEMPLE_ENTRYWAY SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple Entryway
//Exits
RR_SHADOW_TEMPLE_BEGINNING (and (IsDungeonVanilla SHADOW_TEMPLE) (and (or RT_LENS_SHADOW (CanUse RG_LENS_OF_TRUTH)) (or (CanUse RG_HOVER_BOOTS) (CanUse RG_HOOKSHOT))))
RR_SHADOW_TEMPLE_MQ_BEGINNING (IsDungeonMQ SHADOW_TEMPLE)
RR_GRAVEYARD_WARP_PAD_REGION true
def RR_SHADOW_TEMPLE_BEGINNING SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple Beginning
//Events
NutPot true
//Checks
RC_SHADOW_TEMPLE_MAP_CHEST CanJumpslashExceptHammer
RC_SHADOW_TEMPLE_HOVER_BOOTS_CHEST (CanKillEnemy RE_DEAD_HAND)
RC_SHADOW_TEMPLE_NEAR_DEAD_HAND_POT_1 CanBreakPots
@ -17,20 +20,24 @@ RC_SHADOW_TEMPLE_WHISPERING_WALLS_POT_4 CanBreakPots
RC_SHADOW_TEMPLE_WHISPERING_WALLS_POT_5 CanBreakPots
RC_SHADOW_TEMPLE_MAP_CHEST_POT_1 CanBreakPots
RC_SHADOW_TEMPLE_MAP_CHEST_POT_2 CanBreakPots
//Exits
RR_SHADOW_TEMPLE_ENTRYWAY true
RR_SHADOW_TEMPLE_FIRST_BEAMOS (CanUse RG_HOVER_BOOTS)
def RR_SHADOW_TEMPLE_FIRST_BEAMOS SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple First Beamos
//Checks
RC_SHADOW_TEMPLE_COMPASS_CHEST CanJumpslashExceptHammer
RC_SHADOW_TEMPLE_EARLY_SILVER_RUPEE_CHEST (or (CanUse RG_HOVER_BOOTS) (CanUse RG_HOOKSHOT))
RC_SHADOW_TEMPLE_GS_NEAR_SHIP false
RC_SHADOW_TEMPLE_BEAMOS_STORM_FAIRY (CanUse RG_SONG_OF_STORMS)
//Exits
RR_SHADOW_TEMPLE_HUGE_PIT (and HasExplosives (and IsAdult (SmallKeys SCENE_SHADOW_TEMPLE 1)))
RR_SHADOW_TEMPLE_BEYOND_BOAT false
def RR_SHADOW_TEMPLE_HUGE_PIT SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple Huge Pit
//Checks
RC_SHADOW_TEMPLE_INVISIBLE_BLADES_VISIBLE_CHEST CanJumpslashExceptHammer
RC_SHADOW_TEMPLE_INVISIBLE_BLADES_INVISIBLE_CHEST CanJumpslashExceptHammer
RC_SHADOW_TEMPLE_FALLING_SPIKES_LOWER_CHEST true
@ -49,10 +56,12 @@ RC_SHADOW_TEMPLE_FALLING_SPIKES_POT_4 (or (and CanBreakPots (and RT_SHADOW_UMBRE
RC_SHADOW_TEMPLE_INVISIBLE_BLADES_LEFT_HEART (or (and (CanUse RG_SONG_OF_TIME) IsAdult) (CanUse RG_BOOMERANG))
RC_SHADOW_TEMPLE_INVISIBLE_BLADES_RIGHT_HEART (or (and (CanUse RG_SONG_OF_TIME) IsAdult) (CanUse RG_BOOMERANG))
RC_SHADOW_TEMPLE_PIT_STORM_FAIRY (CanUse RG_SONG_OF_STORMS)
//Exits
RR_SHADOW_TEMPLE_WIND_TUNNEL (and (or (and RT_LENS_SHADOW_PLATFORM RT_LENS_SHADOW) (CanUse RG_LENS_OF_TRUTH)) (and (CanUse RG_HOOKSHOT) (SmallKeys SCENE_SHADOW_TEMPLE 3)))
def RR_SHADOW_TEMPLE_WIND_TUNNEL SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple Wind Tunnel
//Checks
RC_SHADOW_TEMPLE_WIND_HINT_CHEST true
RC_SHADOW_TEMPLE_AFTER_WIND_ENEMY_CHEST (CanKillEnemy RE_GIBDO ED_CLOSE true 2)
RC_SHADOW_TEMPLE_AFTER_WIND_HIDDEN_CHEST HasExplosives
@ -62,10 +71,12 @@ RC_SHADOW_TEMPLE_AFTER_WIND_POT_1 CanBreakPots
RC_SHADOW_TEMPLE_AFTER_WIND_POT_2 CanBreakPots
RC_SHADOW_TEMPLE_SCARECROW_NORTH_HEART (and (CanUse RG_DISTANT_SCARECROW) (SmallKeys SCENE_SHADOW_TEMPLE 4))
RC_SHADOW_TEMPLE_SCARECROW_SOUTH_HEART (and (CanUse RG_DISTANT_SCARECROW) (SmallKeys SCENE_SHADOW_TEMPLE 4))
//Exits
RR_SHADOW_TEMPLE_BEYOND_BOAT (and CanJumpslashExceptHammer (and (CanUse RG_ZELDAS_LULLABY) (SmallKeys SCENE_SHADOW_TEMPLE 4)))
def RR_SHADOW_TEMPLE_BEYOND_BOAT SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple Beyond Boat
//Checks
RC_SHADOW_TEMPLE_SPIKE_WALLS_LEFT_CHEST (CanUse RG_DINS_FIRE)
RC_SHADOW_TEMPLE_BOSS_KEY_CHEST (CanUse RG_DINS_FIRE)
RC_SHADOW_TEMPLE_INVISIBLE_FLOORMASTER_CHEST (CanKillEnemy RE_FLOORMASTER)
@ -81,6 +92,7 @@ RC_SHADOW_TEMPLE_FLOORMASTER_POT_2 CanBreakPots
RC_SHADOW_TEMPLE_AFTER_SHIP_UPPER_LEFT_HEART (CanUse RG_DISTANT_SCARECROW)
RC_SHADOW_TEMPLE_AFTER_SHIP_UPPER_RIGHT_HEART (CanUse RG_DISTANT_SCARECROW)
RC_SHADOW_TEMPLE_AFTER_SHIP_LOWER_HEART (or (and (or (CanUse RG_FAIRY_BOW) (or (CanUse RG_DISTANT_SCARECROW) (and RT_SHADOW_STATUE (CanUse RG_BOMBCHU_5)))) (CanUse RG_SONG_OF_TIME)) (and (CanUse RG_DISTANT_SCARECROW) (CanUse RG_HOVER_BOOTS)))
//Exits
RR_SHADOW_TEMPLE_BOSS_ENTRYWAY (and (or (CanUse RG_FAIRY_BOW) (or (CanUse RG_DISTANT_SCARECROW) (and RT_SHADOW_STATUE (CanUse RG_BOMBCHU_5)))) (and (SmallKeys SCENE_SHADOW_TEMPLE 5) (CanUse RG_HOVER_BOOTS)))
def RR_SHADOW_TEMPLE_MQ_ENTRYWAY SCENE_ID_MAX false
@ -89,15 +101,18 @@ Invalid Region
//RANDOTODO doublecheck CanAttack when rewriting, as I assumed it only checked adult due to the entrance
def RR_SHADOW_TEMPLE_MQ_BEGINNING SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple MQ Beginning
//Exits
RR_SHADOW_TEMPLE_ENTRYWAY true
RR_SHADOW_TEMPLE_MQ_SPINNER_ROOM (or (CanUse RG_HOVER_BOOTS) (CanUse RG_HOOKSHOT))
def RR_SHADOW_TEMPLE_MQ_SPINNER_ROOM SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple MQ Spinner Room
//Checks
RC_SHADOW_TEMPLE_MQ_TRUTH_SPINNER_SMALL_CRATE_1 CanBreakSmallCrates
RC_SHADOW_TEMPLE_MQ_TRUTH_SPINNER_SMALL_CRATE_2 CanBreakSmallCrates
RC_SHADOW_TEMPLE_MQ_TRUTH_SPINNER_SMALL_CRATE_3 CanBreakSmallCrates
RC_SHADOW_TEMPLE_MQ_TRUTH_SPINNER_SMALL_CRATE_4 CanBreakSmallCrates
//Exits
RR_SHADOW_TEMPLE_ENTRYWAY true
RR_SHADOW_TEMPLE_MQ_FIRST_BEAMOS (and (Here (or (CanUse RG_HOVER_BOOTS) (or RT_LENS_SHADOW_MQ (CanUse RG_LENS_OF_TRUTH)))) (or (CanUse RG_HOVER_BOOTS) (or (Here (CanUse RG_FIRE_ARROWS)) (and RT_SHADOW_MQ_GAP (and (CanUse RG_LONGSHOT) CanJumpslashExceptHammer)))))
RR_SHADOW_TEMPLE_MQ_DEAD_HAND_AREA (and (Here HasExplosives) (and (SmallKeys SCENE_SHADOW_TEMPLE 6) (or RT_LENS_SHADOW_MQ (CanUse RG_LENS_OF_TRUTH))))
@ -105,6 +120,7 @@ RR_SHADOW_TEMPLE_MQ_DEAD_HAND_AREA (and (Here HasExplosives) (and (SmallKeys SCE
//Assumes we're in the "main" area and needed lens to enter. logic will need changes if a void warp puts us somewhere weird
def RR_SHADOW_TEMPLE_MQ_DEAD_HAND_AREA SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple MQ Dead Hand Region
//Checks
RC_SHADOW_TEMPLE_MQ_COMPASS_CHEST (CanKillEnemy RE_REDEAD)
//There's a shared flag tied to some glass here. eye target here and killing an enemy group later in the dungeon toggles. I'm building the logic as "intended", assuming the switch needs flipping
RC_SHADOW_TEMPLE_MQ_HOVER_BOOTS_CHEST (and (CanKillEnemy RE_DEAD_HAND) (and (or IsChild (CanUse RG_SONG_OF_TIME)) CanHitEyeTargets))
@ -112,26 +128,33 @@ RC_SHADOW_TEMPLE_MQ_WHISPERING_WALLS_POT_1 CanBreakPots
RC_SHADOW_TEMPLE_MQ_WHISPERING_WALLS_POT_2 CanBreakPots
RC_SHADOW_TEMPLE_MQ_ENTRANCE_REDEAD_POT_1 CanBreakPots
RC_SHADOW_TEMPLE_MQ_ENTRANCE_REDEAD_POT_2 CanBreakPots
//Exits
RR_SHADOW_TEMPLE_MQ_SPINNER_ROOM true
//also includes the B2 gibdo room
def RR_SHADOW_TEMPLE_MQ_FIRST_BEAMOS SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple MQ First Beamos
//Doing this sets the shared flag for the glass in RR_SHADOW_TEMPLE_MQ_DEAD_HAND_AREA, but doesn't seem to affect the chest
//Checks
RC_SHADOW_TEMPLE_MQ_EARLY_GIBDOS_CHEST (and (CanKillEnemy RE_GIBDO) (or RT_LENS_SHADOW_MQ (CanUse RG_LENS_OF_TRUTH)))
RC_SHADOW_TEMPLE_MQ_BEAMOS_STORM_FAIRY (CanUse RG_SONG_OF_STORMS)
//Exits
RR_SHADOW_TEMPLE_MQ_UPPER_HUGE_PIT (and HasExplosives (SmallKeys SCENE_SHADOW_TEMPLE 2))
RR_SHADOW_TEMPLE_MQ_B2_SPINNING_BLADE_ROOM (or RT_LENS_SHADOW_MQ (CanUse RG_LENS_OF_TRUTH))
def RR_SHADOW_TEMPLE_MQ_B2_SPINNING_BLADE_ROOM SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple MQ B2 Spinning Blade Room
//Checks
RC_SHADOW_TEMPLE_MQ_MAP_CHEST (and (CanPassEnemy RE_BIG_SKULLTULA) (or (CanUse RG_HOOKSHOT) (and IsAdult (CanUse RG_HOVER_BOOTS))))
//Exits
RR_SHADOW_TEMPLE_MQ_FIRST_BEAMOS (Here (and (CanKillEnemy RE_BIG_SKULLTULA) (or (CanUse RG_HOOKSHOT) (and IsAdult (CanUse RG_HOVER_BOOTS)))))
RR_SHADOW_TEMPLE_MQ_SHORTCUT_PATH (CanPassEnemy RE_BIG_SKULLTULA)
def RR_SHADOW_TEMPLE_MQ_SHORTCUT_PATH SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple MQ Shortcut Path
//Checks
RC_SHADOW_TEMPLE_MQ_NEAR_SHIP_INVISIBLE_CHEST (or RT_LENS_SHADOW_MQ (CanUse RG_LENS_OF_TRUTH))
//Exits
RR_SHADOW_TEMPLE_MQ_B2_SPINNING_BLADE_ROOM (CanPassEnemy RE_BIG_SKULLTULA)
RR_SHADOW_TEMPLE_MQ_DOCK ShadowShortcutBlock
//WARNING if there's any way past here to ship without already reaching the other side the key logic in this dungeon becomes Quantum
@ -139,13 +162,16 @@ RR_SHADOW_TEMPLE_MQ_DOCK ShadowShortcutBlock
//Room exists for if it's ever possible to go backwards or void warp into the middle of shadow
def RR_SHADOW_TEMPLE_MQ_B2_TO_B3_CORRIDOR SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple MQ B2 to B3 Corridor
//Exits
RR_SHADOW_TEMPLE_MQ_FIRST_BEAMOS (SmallKeys SCENE_SHADOW_TEMPLE 2)
RR_SHADOW_TEMPLE_MQ_UPPER_HUGE_PIT true
//bunnyhovers + lens lets you go from the very top of upper pit to the stationary invisible platform below quite easily
def RR_SHADOW_TEMPLE_MQ_UPPER_HUGE_PIT SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple MQ Upper Huge Pit
//Checks
RC_SHADOW_TEMPLE_MQ_PIT_STORM_FAIRY (CanUse RG_SONG_OF_STORMS)
//Exits
RR_SHADOW_TEMPLE_MQ_LOWER_HUGE_PIT (or (and HasFireSource (or RT_LENS_SHADOW_MQ (CanUse RG_LENS_OF_TRUTH))) RT_SHADOW_MQ_HUGE_PIT)
RR_SHADOW_TEMPLE_MQ_INVISIBLE_BLADES_ROOM (or RT_LENS_SHADOW_MQ (CanUse RG_LENS_OF_TRUTH))
@ -154,20 +180,25 @@ Shadow Temple MQ Invisible Blades Room
//RT_SHADOW_MQ_INVISIBLE_BLADES does not work with NL as like-likes will not swallow you, likewise like-likes will not spit you with a fairy revive
//you take half a heart base from a spit out, double check EffectiveHealth when damage logic gets reworked
//Child is too small to get hit by the blades doesn't need the trick or lens for dodging them
//Checks
RC_SHADOW_TEMPLE_MQ_INVISIBLE_BLADES_VISIBLE_CHEST (and (or (CanUse RG_SONG_OF_TIME) (and RT_SHADOW_MQ_INVISIBLE_BLADES (> EffectiveHealth 1))) (or RT_LENS_SHADOW_MQ_INVISIBLE_BLADES (or IsChild (or (CanUse RG_NAYRUS_LOVE) (CanUse RG_LENS_OF_TRUTH)))))
RC_SHADOW_TEMPLE_MQ_INVISIBLE_BLADES_INVISIBLE_CHEST (and (or (CanUse RG_SONG_OF_TIME) (and RT_SHADOW_MQ_INVISIBLE_BLADES (> EffectiveHealth 1))) (or (and RT_LENS_SHADOW_MQ (or RT_LENS_SHADOW_MQ_INVISIBLE_BLADES (or IsChild (CanUse RG_NAYRUS_LOVE)))) (CanUse RG_LENS_OF_TRUTH)))
RC_SHADOW_TEMPLE_MQ_INVISIBLE_BLADES_LEFT_HEART (or (and (CanUse RG_SONG_OF_TIME) IsAdult) (or (and RT_SHADOW_MQ_INVISIBLE_BLADES (> EffectiveHealth 1)) (CanUse RG_BOOMERANG)))
RC_SHADOW_TEMPLE_MQ_INVISIBLE_BLADES_RIGHT_HEART (or (and (CanUse RG_SONG_OF_TIME) IsAdult) (or (and RT_SHADOW_MQ_INVISIBLE_BLADES (> EffectiveHealth 1)) (CanUse RG_BOOMERANG)))
//Exits
RR_SHADOW_TEMPLE_MQ_UPPER_HUGE_PIT true
def RR_SHADOW_TEMPLE_MQ_LOWER_HUGE_PIT SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple MQ Lower Huge Pit
//Checks
RC_SHADOW_TEMPLE_MQ_BEAMOS_SILVER_RUPEES_CHEST (CanUse RG_LONGSHOT)
//Exits
RR_SHADOW_TEMPLE_MQ_STONE_UMBRELLA_ROOM (Here (or CanJumpslash HasExplosives))
RR_SHADOW_TEMPLE_MQ_FLOOR_SPIKES_ROOM (and (CanUse RG_HOVER_BOOTS) (and (or RT_LENS_SHADOW_MQ_PLATFORM (CanUse RG_LENS_OF_TRUTH)) (SmallKeys SCENE_SHADOW_TEMPLE 3)))
def RR_SHADOW_TEMPLE_MQ_STONE_UMBRELLA_ROOM SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple MQ Stone Umbrella Room
//Checks
RC_SHADOW_TEMPLE_MQ_FALLING_SPIKES_LOWER_CHEST true
//Assuming the known setup for RT_SHADOW_UMBRELLA and RT_SHADOW_UMBRELLA_GS, probably possible without sword + shield.
//Handling the trick here instead of upper as using the block to climb is not a valid method for getting this skull without other tricks to use the block before it is intended
@ -175,16 +206,19 @@ RC_SHADOW_TEMPLE_MQ_GS_FALLING_SPIKES_ROOM (or (CanGetEnemyDrop RE_GOLD_SKULLTUL
RC_SHADOW_TEMPLE_MQ_LOWER_UMBRELLA_WEST_POT CanBreakPots
RC_SHADOW_TEMPLE_MQ_LOWER_UMBRELLA_EAST_POT CanBreakPots
RC_SHADOW_TEMPLE_MQ_UPPER_UMBRELLA_SOUTH_POT (CanUse RG_BOOMERANG)
//Exits
RR_SHADOW_TEMPLE_MQ_LOWER_HUGE_PIT (Here (or RT_VISIBLE_COLLISION CanHitSwitch))
//Assuming the known setup for RT_SHADOW_UMBRELLA, probably possible without sword + shield
RR_SHADOW_TEMPLE_MQ_UPPER_STONE_UMBRELLA (and IsAdult (or (HasItem RG_GORONS_BRACELET) (and RT_SHADOW_UMBRELLA (and (CanUse RG_HOVER_BOOTS) (and CanStandingShield (CanUse RG_MASTER_SWORD))))))
def RR_SHADOW_TEMPLE_MQ_UPPER_STONE_UMBRELLA SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple MQ Upper Stone Umbrella
//Checks
RC_SHADOW_TEMPLE_MQ_FALLING_SPIKES_UPPER_CHEST true
RC_SHADOW_TEMPLE_MQ_FALLING_SPIKES_SWITCH_CHEST true
RC_SHADOW_TEMPLE_MQ_UPPER_UMBRELLA_NORTH_POT CanBreakPots
RC_SHADOW_TEMPLE_MQ_UPPER_UMBRELLA_SOUTH_POT CanBreakPots
//Exits
RR_SHADOW_TEMPLE_MQ_STONE_UMBRELLA_ROOM true
//while the spikes here are annoying, they don't really stop you doing anything, so I'll assume either lens trick, lens to see them, or taking damage from them. Not hovers though as a new player won't see the threat without lens to react properly
@ -197,47 +231,61 @@ MQShadowFloorSpikeRupees (and (or RT_LENS_SHADOW_MQ (CanUse RG_LENS_OF_TRUTH))
//Combined these are longshot or (IsAdult && hookshot && (CanJumpslash || (Hover Boots && Here(CanKillRedeads))))
(and (or (CanUse RG_LONGSHOT) (and IsAdult (and (CanUse RG_HOOKSHOT) (or CanJumpslash (and (CanUse RG_HOVER_BOOTS) (Here (CanKillEnemy RE_REDEAD)))))))
//1 rupee is in spikes, needs hovers or damage
//Events
(or TakeDamage (CanUse RG_HOVER_BOOTS))))
//Checks
RC_SHADOW_TEMPLE_MQ_INVISIBLE_SPIKES_CHEST (and (CanKillEnemy RE_REDEAD) (or RT_LENS_SHADOW_MQ (or TakeDamage (CanUse RG_LENS_OF_TRUTH))))
//Exits
RR_SHADOW_TEMPLE_MQ_STALFOS_ROOM MQShadowFloorSpikeRupees
//We need to assume we can get here with or without the glass platforms
RR_SHADOW_TEMPLE_MQ_WIND_TUNNEL (and (SmallKeys SCENE_SHADOW_TEMPLE 4) (and (or (CanUse RG_LONGSHOT) (and IsAdult (and (CanUse RG_HOOKSHOT) (or MQShadowFloorSpikeRupees (Here (CanKillEnemy RE_REDEAD)))))) (or CanJumpslash (CanUse RG_HOVER_BOOTS))))
def RR_SHADOW_TEMPLE_MQ_STALFOS_ROOM SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple MQ Stalfos Room
//Checks
RC_SHADOW_TEMPLE_MQ_STALFOS_ROOM_CHEST (CanKillEnemy RE_STALFOS ED_CLOSE true 2)
//Exits
RR_SHADOW_TEMPLE_MQ_FLOOR_SPIKES_ROOM (Here (CanKillEnemy RE_STALFOS ED_CLOSE true 2))
def RR_SHADOW_TEMPLE_MQ_WIND_TUNNEL SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple MQ Wind Tunnel
//Exits
RR_SHADOW_TEMPLE_MQ_FLOOR_SPIKES_ROOM (and (SmallKeys SCENE_SHADOW_TEMPLE 4) (and (CanPassEnemy RE_BIG_SKULLTULA) (CanUse RG_HOOKSHOT)))
RR_SHADOW_TEMPLE_MQ_WIND_HINT_ROOM (and (CanPassEnemy RE_BIG_SKULLTULA) (or (CanUse RG_HOOKSHOT) (CanUse RG_HOVER_BOOTS)))
RR_SHADOW_TEMPLE_MQ_B4_GIBDO_ROOM (and (CanPassEnemy RE_BIG_SKULLTULA) (or (CanUse RG_HOOKSHOT) (CanUse RG_HOVER_BOOTS)))
def RR_SHADOW_TEMPLE_MQ_WIND_HINT_ROOM SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple MQ Wind Hint Room
//Checks
RC_SHADOW_TEMPLE_MQ_WIND_HINT_CHEST (and (or RT_LENS_SHADOW_MQ (CanUse RG_LENS_OF_TRUTH)) (CanPassEnemy RE_REDEAD))
RC_SHADOW_TEMPLE_MQ_GS_WIND_HINT_ROOM (CanGetEnemyDrop RE_GOLD_SKULLTULA ED_BOOMERANG)
RC_SHADOW_TEMPLE_MQ_WIND_HINT_SUN_FAIRY (CanUse RG_SUNS_SONG)
//Exits
RR_SHADOW_TEMPLE_MQ_WIND_TUNNEL true
def RR_SHADOW_TEMPLE_MQ_B4_GIBDO_ROOM SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple MQ B4 Gibdo Room
//Events
NutPot true
//Checks
RC_SHADOW_TEMPLE_MQ_AFTER_WIND_ENEMY_CHEST (CanKillEnemy RE_GIBDO)
RC_SHADOW_TEMPLE_MQ_AFTER_WIND_HIDDEN_CHEST (and HasExplosives (or RT_LENS_SHADOW_MQ (CanUse RG_LENS_OF_TRUTH)))
RC_SHADOW_TEMPLE_MQ_GS_AFTER_WIND HasExplosives
RC_SHADOW_TEMPLE_MQ_BEFORE_BOAT_POT_1 CanBreakPots
RC_SHADOW_TEMPLE_MQ_BEFORE_BOAT_POT_2 CanBreakPots
//child can make it using the wind strat
//Exits
RR_SHADOW_TEMPLE_MQ_WIND_TUNNEL (or RT_SHADOW_MQ_WINDY_WALKWAY (CanUse RG_HOVER_BOOTS))
RR_SHADOW_TEMPLE_MQ_DOCK (SmallKeys SCENE_SHADOW_TEMPLE 5)
def RR_SHADOW_TEMPLE_MQ_DOCK SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple MQ Dock
//Events
ShadowShortcutBlock (HasItem RG_GORONS_BRACELET)
//Checks
RC_SHADOW_TEMPLE_MQ_SCARECROW_NORTH_HEART (CanUse RG_DISTANT_SCARECROW)
RC_SHADOW_TEMPLE_MQ_SCARECROW_SOUTH_HEART (CanUse RG_DISTANT_SCARECROW)
//Exits
RR_SHADOW_TEMPLE_MQ_SHORTCUT_PATH ShadowShortcutBlock
RR_SHADOW_TEMPLE_MQ_B4_GIBDO_ROOM (SmallKeys SCENE_SHADOW_TEMPLE 5)
//funnily enough, the wheel jump seems to be in logic as there's no strength requirement in N64
@ -247,19 +295,23 @@ def RR_SHADOW_TEMPLE_MQ_BEYOND_BOAT SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple MQ Beyond Boat
//It's a trick on N64 to kill this and drop down to collect this with normal weapons, as doing so without the statue being dropped voids you to before the boat
//hilariously, you can also hit this with a pot before you bring down the statue, but there's no great way to reset it without crossing. the statues collision is very inconvenient afterwards
//Checks
RC_SHADOW_TEMPLE_MQ_GS_AFTER_SHIP (CanGetEnemyDrop RE_GOLD_SKULLTULA ED_BOOMERANG)
RC_SHADOW_TEMPLE_MQ_BEFORE_CHASM_WEST_POT CanBreakPots
RC_SHADOW_TEMPLE_MQ_BEFORE_CHASM_EAST_POT CanBreakPots
//Exits
RR_SHADOW_TEMPLE_MQ_ACROSS_CHASM (Here (or (CanUse RG_FAIRY_BOW) (and RT_SHADOW_STATUE (CanUse RG_BOMBCHU_5))))
def RR_SHADOW_TEMPLE_MQ_ACROSS_CHASM SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple MQ Across Chasm
//Checks
RC_SHADOW_TEMPLE_MQ_AFTER_CHASM_WEST_POT CanBreakPots
RC_SHADOW_TEMPLE_MQ_AFTER_CHASM_EAST_POT CanBreakPots
RC_SHADOW_TEMPLE_MQ_AFTER_SHIP_UPPER_LEFT_HEART (and (CanUse RG_SONG_OF_TIME) (and CanHitEyeTargets (CanUse RG_LONGSHOT)))
RC_SHADOW_TEMPLE_MQ_AFTER_SHIP_UPPER_RIGHT_HEART (and (CanUse RG_SONG_OF_TIME) (and CanHitEyeTargets (CanUse RG_LONGSHOT)))
//There's invisible floor collision that makes aiming for the heart with rang harder than it should be, so it's a trick.
RC_SHADOW_TEMPLE_MQ_AFTER_SHIP_LOWER_HEART IsAdult
//Exits
RR_SHADOW_TEMPLE_MQ_BEYOND_BOAT (and (Here CanDetonateUprightBombFlower) IsAdult)
//assumes RR_SHADOW_TEMPLE_MQ_BEYOND_BOAT by previous access. If backwards shadow ever exists remember that child cannot jump onto the statue from this side and make an event for the switch
//Lens isn't needed to reach it but is needed to navigate the next room
@ -269,7 +321,9 @@ RR_SHADOW_TEMPLE_MQ_BOSS_DOOR (and (CanUse RG_HOVER_BOOTS) (or RT_LENS_SHADOW_MQ
def RR_SHADOW_TEMPLE_MQ_BOSS_DOOR SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple MQ Boss Door
//you can drop onto this and the respawn is reasonable
//Checks
RC_SHADOW_TEMPLE_MQ_GS_NEAR_BOSS (and (or (CanKillEnemy RE_GOLD_SKULLTULA ED_BOMB_THROW) (CanUse RG_MEGATON_HAMMER)) (or RT_LENS_SHADOW_MQ (CanUse RG_LENS_OF_TRUTH)))
//Exits
RR_SHADOW_TEMPLE_MQ_ACROSS_CHASM (and (CanUse RG_HOVER_BOOTS) (or RT_LENS_SHADOW_MQ (CanUse RG_LENS_OF_TRUTH)))
RR_SHADOW_TEMPLE_BOSS_ENTRYWAY true
@ -277,30 +331,38 @@ RR_SHADOW_TEMPLE_BOSS_ENTRYWAY true
def RR_SHADOW_TEMPLE_MQ_INVISIBLE_MAZE SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple MQ Invisible Maze
//don't use CanDetonateUprightBombFlower as blue fire logic would need to account for player having multiple bottles & taking damage multiple times
//Checks
RC_SHADOW_TEMPLE_MQ_BOMB_FLOWER_CHEST (and (or (CanUse RG_LENS_OF_TRUTH) RT_LENS_SHADOW_MQ_DEADHAND) (and (CanKillEnemy RE_DEAD_HAND) (or CanDetonateBombFlowers (HasItem RG_GORONS_BRACELET))))
RC_SHADOW_TEMPLE_MQ_FREESTANDING_KEY true
RC_SHADOW_TEMPLE_MQ_DEAD_HAND_POT_1 CanBreakPots
RC_SHADOW_TEMPLE_MQ_DEAD_HAND_POT_2 CanBreakPots
//Exits
RR_SHADOW_TEMPLE_MQ_BEYOND_BOAT true
RR_SHADOW_TEMPLE_MQ_SPIKE_WALLS_ROOM (SmallKeys SCENE_SHADOW_TEMPLE 6)
def RR_SHADOW_TEMPLE_MQ_SPIKE_WALLS_ROOM SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple MQ Spike Walls Room
//Checks
RC_SHADOW_TEMPLE_MQ_SPIKE_WALLS_LEFT_CHEST (CanUse RG_DINS_FIRE)
RC_SHADOW_TEMPLE_MQ_BOSS_KEY_CHEST (CanUse RG_DINS_FIRE)
RC_SHADOW_TEMPLE_MQ_SPIKE_BARICADE_POT CanBreakPots
//Exits
RR_SHADOW_TEMPLE_MQ_INVISIBLE_MAZE (and (SmallKeys SCENE_SHADOW_TEMPLE 6) (or RT_LENS_SHADOW_MQ (CanUse RG_LENS_OF_TRUTH)))
def RR_SHADOW_TEMPLE_BOSS_ENTRYWAY SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple Boss Entryway
//Exits
RR_SHADOW_TEMPLE_BEYOND_BOAT (and (IsDungeonVanilla SHADOW_TEMPLE) false)
RR_SHADOW_TEMPLE_MQ_BEYOND_BOAT (and (IsDungeonMQ SHADOW_TEMPLE) false)
RR_SHADOW_TEMPLE_BOSS_ROOM (HasItem RG_SHADOW_TEMPLE_BOSS_KEY)
def RR_SHADOW_TEMPLE_BOSS_ROOM SCENE_SHADOW_TEMPLE_BOSS false
Shadow Temple Boss Room
//Events
ShadowTempleClear (CanKillEnemy RE_BONGO_BONGO)
//Checks
RC_SHADOW_TEMPLE_BONGO_BONGO_HEART ShadowTempleClear
RC_BONGO_BONGO ShadowTempleClear
//Exits
RR_SHADOW_TEMPLE_BOSS_ENTRYWAY false
RR_GRAVEYARD_WARP_PAD_REGION ShadowTempleClear

View file

@ -1,20 +1,25 @@
def RR_SPIRIT_TEMPLE_ENTRYWAY SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple Entryway
//Exits
RR_SPIRIT_TEMPLE_LOBBY (IsDungeonVanilla SPIRIT_TEMPLE)
RR_SPIRIT_TEMPLE_MQ_LOBBY (IsDungeonMQ SPIRIT_TEMPLE)
RR_DESERT_COLOSSUS_OUTSIDE_TEMPLE true
def RR_SPIRIT_TEMPLE_LOBBY SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple Lobby
//Checks
RC_SPIRIT_TEMPLE_LOBBY_POT_1 CanBreakPots
RC_SPIRIT_TEMPLE_LOBBY_POT_2 CanBreakPots
//Exits
RR_SPIRIT_TEMPLE_ENTRYWAY true
RR_SPIRIT_TEMPLE_CHILD IsChild
RR_SPIRIT_TEMPLE_EARLY_ADULT (CanUse RG_SILVER_GAUNTLETS)
def RR_SPIRIT_TEMPLE_CHILD SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Child Spirit Temple
//Events
NutCrate true
//Checks
RC_SPIRIT_TEMPLE_CHILD_BRIDGE_CHEST (and (or (CanUse RG_BOOMERANG) (or (CanUse RG_FAIRY_SLINGSHOT) (and (CanUse RG_BOMBCHU_5) RT_SPIRIT_CHILD_CHU))) (or HasExplosives (and (or (CanUse RG_NUTS) (CanUse RG_BOOMERANG)) (or (CanUse RG_STICKS) (or (CanUse RG_KOKIRI_SWORD) (CanUse RG_FAIRY_SLINGSHOT))))))
RC_SPIRIT_TEMPLE_CHILD_EARLY_TORCHES_CHEST (and (or (CanUse RG_BOOMERANG) (or (CanUse RG_FAIRY_SLINGSHOT) (and (CanUse RG_BOMBCHU_5) RT_SPIRIT_CHILD_CHU))) (and (or HasExplosives (and (or (CanUse RG_NUTS) (CanUse RG_BOOMERANG)) (or (CanUse RG_STICKS) (or (CanUse RG_KOKIRI_SWORD) (CanUse RG_FAIRY_SLINGSHOT))))) (or (CanUse RG_STICKS) (CanUse RG_DINS_FIRE))))
RC_SPIRIT_TEMPLE_GS_METAL_FENCE (and (or (CanUse RG_BOOMERANG) (or (CanUse RG_FAIRY_SLINGSHOT) (and (CanUse RG_BOMBCHU_5) RT_SPIRIT_CHILD_CHU))) (or HasExplosives (and (or (CanUse RG_NUTS) (CanUse RG_BOOMERANG)) (or (CanUse RG_STICKS) (or (CanUse RG_KOKIRI_SWORD) (CanUse RG_FAIRY_SLINGSHOT))))))
@ -24,28 +29,34 @@ RC_SPIRIT_TEMPLE_ANUBIS_POT_3 (and (or (CanUse RG_BOOMERANG) (or (CanUse RG_FAIR
RC_SPIRIT_TEMPLE_ANUBIS_POT_4 (and (or (CanUse RG_BOOMERANG) (or (CanUse RG_FAIRY_SLINGSHOT) (and (CanUse RG_BOMBCHU_5) RT_SPIRIT_CHILD_CHU))) (or HasExplosives (and (or (CanUse RG_NUTS) (CanUse RG_BOOMERANG)) (or (CanUse RG_STICKS) (or (CanUse RG_KOKIRI_SWORD) (CanUse RG_FAIRY_SLINGSHOT))))))
RC_SPIRIT_TEMPLE_BEFORE_CHILD_CLIMB_SMALL_CRATE_1 CanBreakSmallCrates
RC_SPIRIT_TEMPLE_BEFORE_CHILD_CLIMB_SMALL_CRATE_2 CanBreakSmallCrates
//Exits
RR_SPIRIT_TEMPLE_CHILD_CLIMB (SmallKeys SCENE_SPIRIT_TEMPLE 1)
def RR_SPIRIT_TEMPLE_CHILD_CLIMB SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Child Spirit Temple Climb
//Checks
RC_SPIRIT_TEMPLE_CHILD_CLIMB_NORTH_CHEST (or (HasProjectile HasProjectileAge::Both) (or (and (SmallKeys SCENE_SPIRIT_TEMPLE 2) (and (CanUse RG_SILVER_GAUNTLETS) (HasProjectile HasProjectileAge::Adult))) (and (SmallKeys SCENE_SPIRIT_TEMPLE 5) (and IsChild (HasProjectile HasProjectileAge::Child)))))
RC_SPIRIT_TEMPLE_CHILD_CLIMB_EAST_CHEST (or (HasProjectile HasProjectileAge::Both) (or (and (SmallKeys SCENE_SPIRIT_TEMPLE 2) (and (CanUse RG_SILVER_GAUNTLETS) (HasProjectile HasProjectileAge::Adult))) (and (SmallKeys SCENE_SPIRIT_TEMPLE 5) (and IsChild (HasProjectile HasProjectileAge::Child)))))
RC_SPIRIT_TEMPLE_GS_SUN_ON_FLOOR_ROOM (or (HasProjectile HasProjectileAge::Both) (or (CanUse RG_DINS_FIRE) (or (and TakeDamage (or CanJumpslashExceptHammer (HasProjectile HasProjectileAge::Child))) (or (and IsChild (and (SmallKeys SCENE_SPIRIT_TEMPLE 5) (HasProjectile HasProjectileAge::Child))) (and (SmallKeys SCENE_SPIRIT_TEMPLE 2) (and (CanUse RG_SILVER_GAUNTLETS) (or (HasProjectile HasProjectileAge::Adult) (and TakeDamage CanJumpslashExceptHammer))))))))
RC_SPIRIT_TEMPLE_CHILD_CLIMB_POT_1 CanBreakPots
//Exits
RR_SPIRIT_TEMPLE_CENTRAL_CHAMBER (or HasExplosives (and RSK_SUNLIGHT_ARROWS (CanUse RG_LIGHT_ARROWS)))
def RR_SPIRIT_TEMPLE_EARLY_ADULT SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Early Adult Spirit Temple
//Checks
RC_SPIRIT_TEMPLE_COMPASS_CHEST (and (CanUse RG_HOOKSHOT) (CanUse RG_ZELDAS_LULLABY))
RC_SPIRIT_TEMPLE_EARLY_ADULT_RIGHT_CHEST (and (or (CanUse RG_FAIRY_BOW) (or (CanUse RG_HOOKSHOT) (or (CanUse RG_FAIRY_SLINGSHOT) (or (CanUse RG_BOOMERANG) (or (CanUse RG_BOMBCHU_5) (and (CanUse RG_BOMB_BAG) (and IsAdult RT_SPIRIT_LOWER_ADULT_SWITCH))))))) (or (CanUse RG_HOVER_BOOTS) CanJumpslashExceptHammer))
RC_SPIRIT_TEMPLE_FIRST_MIRROR_LEFT_CHEST (SmallKeys SCENE_SPIRIT_TEMPLE 3)
RC_SPIRIT_TEMPLE_FIRST_MIRROR_RIGHT_CHEST (SmallKeys SCENE_SPIRIT_TEMPLE 3)
RC_SPIRIT_TEMPLE_GS_BOULDER_ROOM (and (CanUse RG_SONG_OF_TIME) (or (CanUse RG_FAIRY_BOW) (or (CanUse RG_HOOKSHOT) (or (CanUse RG_BOMBCHU_5) (and (CanUse RG_BOMB_BAG) RT_SPIRIT_LOWER_ADULT_SWITCH)))))
RC_SPIRIT_TEMPLE_BOULDER_ROOM_SUN_FAIRY (and (CanUse RG_SUNS_SONG) (and (or (CanUse RG_FAIRY_BOW) (or (CanUse RG_HOOKSHOT) (or (CanUse RG_FAIRY_SLINGSHOT) (or (CanUse RG_BOOMERANG) (or (CanUse RG_BOMBCHU_5) (and (CanUse RG_BOMB_BAG) (and IsAdult RT_SPIRIT_LOWER_ADULT_SWITCH))))))) (or (CanUse RG_HOVER_BOOTS) CanJumpslash)))
//Exits
RR_SPIRIT_TEMPLE_CENTRAL_CHAMBER (SmallKeys SCENE_SPIRIT_TEMPLE 1)
def RR_SPIRIT_TEMPLE_CENTRAL_CHAMBER SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple Central Chamber
//Checks
RC_SPIRIT_TEMPLE_MAP_CHEST (or (and (or HasExplosives (SmallKeys SCENE_SPIRIT_TEMPLE 2)) (or (CanUse RG_DINS_FIRE) (and (or (CanUse RG_FIRE_ARROWS) RT_SPIRIT_MAP_CHEST) (and (CanUse RG_FAIRY_BOW) (CanUse RG_STICKS))))) (or (and (SmallKeys SCENE_SPIRIT_TEMPLE 5) (and HasExplosives (CanUse RG_STICKS))) (and (SmallKeys SCENE_SPIRIT_TEMPLE 3) (and (or (CanUse RG_FIRE_ARROWS) (and RT_SPIRIT_MAP_CHEST (CanUse RG_FAIRY_BOW))) (CanUse RG_SILVER_GAUNTLETS)))))
RC_SPIRIT_TEMPLE_SUN_BLOCK_ROOM_CHEST (or (and (or HasExplosives (SmallKeys SCENE_SPIRIT_TEMPLE 2)) (or (CanUse RG_DINS_FIRE) (and (or (CanUse RG_FIRE_ARROWS) RT_SPIRIT_SUN_CHEST) (and (CanUse RG_FAIRY_BOW) (CanUse RG_STICKS))))) (or (and (SmallKeys SCENE_SPIRIT_TEMPLE 5) (and HasExplosives (CanUse RG_STICKS))) (and (SmallKeys SCENE_SPIRIT_TEMPLE 3) (and (or (CanUse RG_FIRE_ARROWS) (and RT_SPIRIT_SUN_CHEST (CanUse RG_FAIRY_BOW))) (CanUse RG_SILVER_GAUNTLETS)))))
RC_SPIRIT_TEMPLE_STATUE_ROOM_HAND_CHEST (and (SmallKeys SCENE_SPIRIT_TEMPLE 3) (and (CanUse RG_SILVER_GAUNTLETS) (CanUse RG_ZELDAS_LULLABY)))
@ -60,6 +71,7 @@ RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_3 (and CanBreakPots (SmallKeys SCENE_SPIRIT
RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_4 (and CanBreakPots (SmallKeys SCENE_SPIRIT_TEMPLE 2))
RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_5 (and CanBreakPots (SmallKeys SCENE_SPIRIT_TEMPLE 2))
RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_6 (and CanBreakPots (SmallKeys SCENE_SPIRIT_TEMPLE 2))
//Exits
RR_SPIRIT_TEMPLE_OUTDOOR_HANDS (or CanJumpslashExceptHammer HasExplosives)
RR_SPIRIT_TEMPLE_BEYOND_CENTRAL_LOCKED_DOOR (and (SmallKeys SCENE_SPIRIT_TEMPLE 4) (CanUse RG_SILVER_GAUNTLETS))
RR_SPIRIT_TEMPLE_CHILD_CLIMB true
@ -67,34 +79,42 @@ RR_SPIRIT_TEMPLE_INSIDE_STATUE_HEAD (and RT_SPIRIT_PLATFORM_HOOKSHOT (CanUse RG_
def RR_SPIRIT_TEMPLE_OUTDOOR_HANDS SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple Outdoor Hands
//Checks
RC_SPIRIT_TEMPLE_SILVER_GAUNTLETS_CHEST (or (and (SmallKeys SCENE_SPIRIT_TEMPLE 3) (and (CanUse RG_LONGSHOT) HasExplosives)) (SmallKeys SCENE_SPIRIT_TEMPLE 5))
RC_SPIRIT_TEMPLE_MIRROR_SHIELD_CHEST (and (SmallKeys SCENE_SPIRIT_TEMPLE 4) (and (CanUse RG_SILVER_GAUNTLETS) HasExplosives))
//Exits
RR_DESERT_COLOSSUS (or (and IsChild (SmallKeys SCENE_SPIRIT_TEMPLE 5)) (and (CanUse RG_SILVER_GAUNTLETS) (or (and (SmallKeys SCENE_SPIRIT_TEMPLE 3) HasExplosives) (SmallKeys SCENE_SPIRIT_TEMPLE 5))))
def RR_SPIRIT_TEMPLE_BEYOND_CENTRAL_LOCKED_DOOR SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple Beyond Central Locked Door
//Checks
RC_SPIRIT_TEMPLE_NEAR_FOUR_ARMOS_CHEST (and (or (CanUse RG_MIRROR_SHIELD) (and RSK_SUNLIGHT_ARROWS (CanUse RG_LIGHT_ARROWS))) HasExplosives)
RC_SPIRIT_TEMPLE_HALLWAY_LEFT_INVISIBLE_CHEST (and (or RT_LENS_SPIRIT (CanUse RG_LENS_OF_TRUTH)) HasExplosives)
RC_SPIRIT_TEMPLE_HALLWAY_RIGHT_INVISIBLE_CHEST (and (or RT_LENS_SPIRIT (CanUse RG_LENS_OF_TRUTH)) HasExplosives)
RC_SPIRIT_TEMPLE_BEAMOS_HALL_POT_1 CanBreakPots
RC_SPIRIT_TEMPLE_ARMOS_ROOM_SUN_FAIRY (and HasExplosives (CanUse RG_SUNS_SONG))
//Exits
RR_SPIRIT_TEMPLE_BEYOND_FINAL_LOCKED_DOOR (and (SmallKeys SCENE_SPIRIT_TEMPLE 5) (or RT_SPIRIT_WALL (or (CanUse RG_LONGSHOT) (or (CanUse RG_BOMBCHU_5) (and (or (CanUse RG_BOMB_BAG) (or (CanUse RG_NUTS) (CanUse RG_DINS_FIRE))) (or (CanUse RG_FAIRY_BOW) (or (CanUse RG_HOOKSHOT) (CanUse RG_MEGATON_HAMMER))))))))
def RR_SPIRIT_TEMPLE_BEYOND_FINAL_LOCKED_DOOR SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple Beyond Final Locked Door
//Checks
RC_SPIRIT_TEMPLE_BOSS_KEY_CHEST (and (CanUse RG_ZELDAS_LULLABY) (or (and TakeDamage RT_FLAMING_CHESTS) (and (CanUse RG_FAIRY_BOW) (CanUse RG_HOOKSHOT))))
RC_SPIRIT_TEMPLE_TOPMOST_CHEST (or (and (CanUse RG_MIRROR_SHIELD) CanAttack) (and RSK_SUNLIGHT_ARROWS (CanUse RG_LIGHT_ARROWS)))
RC_SPIRIT_TEMPLE_ADULT_CLIMB_LEFT_HEART (CanUse RG_HOOKSHOT)
RC_SPIRIT_TEMPLE_ADULT_CLIMB_RIGHT_HEART (CanUse RG_HOOKSHOT)
//Exits
RR_SPIRIT_TEMPLE_INSIDE_STATUE_HEAD (and (CanUse RG_MIRROR_SHIELD) (and HasExplosives (CanUse RG_HOOKSHOT)))
def RR_SPIRIT_TEMPLE_INSIDE_STATUE_HEAD SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple Inside Statue Head
//Exits
RR_SPIRIT_TEMPLE_CENTRAL_CHAMBER true
RR_SPIRIT_TEMPLE_BOSS_ENTRYWAY true
def RR_SPIRIT_TEMPLE_MQ_LOBBY SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ Lobby
//Checks
RC_SPIRIT_TEMPLE_MQ_ENTRANCE_FRONT_LEFT_CHEST true
RC_SPIRIT_TEMPLE_MQ_ENTRANCE_BACK_LEFT_CHEST (and (Here BlastOrSmash) CanHitEyeTargets)
RC_SPIRIT_TEMPLE_MQ_ENTRANCE_BACK_RIGHT_CHEST (CanHitSwitch ED_BOOMERANG)
@ -103,6 +123,7 @@ RC_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_1 CanBreakPots
RC_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_2 CanBreakPots
RC_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_3 CanBreakPots
RC_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_4 CanBreakPots
//Exits
RR_SPIRIT_TEMPLE_ENTRYWAY true
RR_SPIRIT_TEMPLE_MQ_1F_WEST IsChild
RR_SPIRIT_TEMPLE_MQ_BIG_BLOCK_ROOM_SOUTH (and (CanUse RG_LONGSHOT) (CanUse RG_BOMBCHU_5))
@ -110,22 +131,27 @@ RR_SPIRIT_TEMPLE_MQ_BIG_BLOCK_ROOM_SOUTH (and (CanUse RG_LONGSHOT) (CanUse RG_BO
def RR_SPIRIT_TEMPLE_MQ_1F_WEST SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ 1F West
//not technically a rusted switch, but a boulder through a wall, but is part of the same trick on N64
//Events
MQSpiritCrawlBoulder (or (CanUse RG_BOMBCHU_5) (and RT_RUSTED_SWITCHES (CanUse RG_MEGATON_HAMMER)))
//Checks
RC_SPIRIT_TEMPLE_MQ_CHILD_HAMMER_SWITCH_CHEST MQSpiritTimeTravelChest
RC_SPIRIT_TEMPLE_MQ_CHILD_SLUGMA_POT CanBreakPots
RC_SPIRIT_TEMPLE_MQ_CHILD_LEFT_HEART CanHitEyeTargets
RC_SPIRIT_TEMPLE_MQ_CHILD_RIGHT_HEART CanHitEyeTargets
//Exits
RR_SPIRIT_TEMPLE_MQ_1F_GIBDO_ROOM_SOUTH (Here (CanKillEnemy RE_TORCH_SLUG))
RR_SPIRIT_TEMPLE_MQ_MAP_ROOM_SOUTH (Here (CanKillEnemy RE_TORCH_SLUG))
RR_SPIRIT_TEMPLE_MQ_WEST_1F_RUSTED_SWITCH (and IsChild MQSpiritCrawlBoulder)
def RR_SPIRIT_TEMPLE_MQ_1F_GIBDO_ROOM_NORTH SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ Gibdo Room North
//Checks
RC_SPIRIT_TEMPLE_MQ_CHILD_GIBDO_POT_1 CanBreakPots
RC_SPIRIT_TEMPLE_MQ_CHILD_GIBDO_POT_2 CanBreakPots
def RR_SPIRIT_TEMPLE_MQ_1F_GIBDO_ROOM_SOUTH SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ 1F Gibdo Room South
//Exits
RR_SPIRIT_TEMPLE_MQ_1F_WEST true
RR_SPIRIT_TEMPLE_MQ_1F_GIBDO_ROOM_NORTH (and (CanUse RG_BOMBCHU_5) CanHitEyeTargets)
RR_SPIRIT_TEMPLE_MQ_TURNTABLE_ROOM (and (CanUse RG_BOMBCHU_5) (and CanHitEyeTargets (CanKillEnemy RE_GIBDO)))
@ -133,58 +159,74 @@ RR_SPIRIT_TEMPLE_MQ_TURNTABLE_ROOM (and (CanUse RG_BOMBCHU_5) (and CanHitEyeTarg
def RR_SPIRIT_TEMPLE_MQ_TURNTABLE_ROOM SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple Turntable Room
//For non-fairy pot items, you can also get them with rang without killing the stalfos
//Events
FairyPot (Here (CanKillEnemy RE_STALFOS))
//implies logic->CanBreakPots()
//Checks
RC_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_1 (or (CanUse RG_BOOMERANG) (CanKillEnemy RE_STALFOS))
RC_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_2 (or (CanUse RG_BOOMERANG) (CanKillEnemy RE_STALFOS))
RC_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_3 (or (CanUse RG_BOOMERANG) (CanKillEnemy RE_STALFOS))
RC_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_4 (or (CanUse RG_BOOMERANG) (CanKillEnemy RE_STALFOS))
//Exits
RR_SPIRIT_TEMPLE_MQ_1F_GIBDO_ROOM_NORTH true
RR_SPIRIT_TEMPLE_MQ_MAP_ROOM_NORTH (Here (CanKillEnemy RE_STALFOS))
def RR_SPIRIT_TEMPLE_MQ_MAP_ROOM_NORTH SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ Map Room North
//Events
MQSpiritMapRoomEnemies (and (CanKillEnemy RE_ANUBIS) (CanKillEnemy RE_KEESE))
//Checks
RC_SPIRIT_TEMPLE_MQ_MAP_ROOM_ENEMY_CHEST MQSpiritMapRoomEnemies
//Stalfos room blocks you in with fire until you kill the stalfos, which won't spawn from behind the fire
//Exits
RR_SPIRIT_TEMPLE_MQ_MAP_ROOM_SOUTH true
def RR_SPIRIT_TEMPLE_MQ_MAP_ROOM_SOUTH SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ Map Room South
//Events
MQSpiritMapRoomEnemies (and (CanKillEnemy RE_ANUBIS) (CanKillEnemy RE_KEESE ED_BOOMERANG))
//Checks
RC_SPIRIT_TEMPLE_MQ_MAP_CHEST true
//The bridge is a temp flag, so not a way to cross south to north in logic
//Exits
RR_SPIRIT_TEMPLE_MQ_MAP_ROOM_NORTH (CanUse RG_HOOKSHOT)
RR_SPIRIT_TEMPLE_MQ_1F_WEST true
def RR_SPIRIT_TEMPLE_MQ_WEST_1F_RUSTED_SWITCH SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ West 1F Rusted Switch
//Events
MQSpiritTimeTravelChest (CanUse RG_MEGATON_HAMMER)
MQSpiritCrawlBoulder (or (CanUse RG_BOMBCHU_5) (and RT_RUSTED_SWITCHES (CanUse RG_MEGATON_HAMMER)))
//Exits
RR_SPIRIT_TEMPLE_MQ_1F_WEST (and IsChild MQSpiritCrawlBoulder)
//This tracks possible child access, if adult has not entered STATUE_ROOM. Certain Child Access is checked for separately as 7 Keys
RR_SPIRIT_TEMPLE_MQ_UNDER_LIKE_LIKE (SmallKeys SCENE_SPIRIT_TEMPLE 1)
def RR_SPIRIT_TEMPLE_MQ_UNDER_LIKE_LIKE SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ Under Like Like
//Checks
RC_SPIRIT_TEMPLE_MQ_CHILD_LIKE_LIKE_POT (MQSpiritSharedBrokenWallRoom RR_SPIRIT_TEMPLE_MQ_UNDER_LIKE_LIKE CanBreakPots)
//This covers adult access only, as child arrives here from the other side of this door
//Exits
RR_SPIRIT_TEMPLE_MQ_WEST_1F_RUSTED_SWITCH (SmallKeys SCENE_SPIRIT_TEMPLE 7)
RR_SPIRIT_TEMPLE_MQ_BROKEN_WALL_ROOM CanHitSwitch
def RR_SPIRIT_TEMPLE_MQ_BROKEN_WALL_ROOM SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ Broken Wall Room
//Implies CanKillEnemy(RE_LIKE_LIKE)
//Checks
RC_SPIRIT_TEMPLE_MQ_CHILD_CLIMB_NORTH_CHEST (MQSpiritSharedBrokenWallRoom RR_SPIRIT_TEMPLE_MQ_BROKEN_WALL_ROOM (CanKillEnemy RE_BEAMOS))
//Sunlights only temp spawn this chest, which is unintuitive/a bug.
//chest is only reachable as adult glitchlessly, so we can skip the shared in favour of IsAdult as adult access is always Certain
RC_SPIRIT_TEMPLE_MQ_CHILD_CLIMB_SOUTH_CHEST (and IsAdult (and (or HasExplosives (and RSK_SUNLIGHT_ARROWS (CanUse RG_LIGHT_ARROWS))) (CanUse RG_HOOKSHOT)))
//Exits
RR_SPIRIT_TEMPLE_MQ_UNDER_LIKE_LIKE CanHitSwitch
//This exit only governs child possible access, adult access starts on the other side so never checks this
RR_SPIRIT_TEMPLE_MQ_STATUE_ROOM (SmallKeys SCENE_SPIRIT_TEMPLE 2)
def RR_SPIRIT_TEMPLE_MQ_STATUE_ROOM SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ Statue Room
//Checks
RC_SPIRIT_TEMPLE_MQ_COMPASS_CHEST (MQSpiritSharedStatueRoom RR_SPIRIT_TEMPLE_MQ_STATUE_ROOM CanHitEyeTargets)
RC_SPIRIT_TEMPLE_MQ_STATUE_3F_EAST_POT (MQSpiritSharedStatueRoom RR_SPIRIT_TEMPLE_MQ_STATUE_ROOM (or (and (or IsAdult CanJumpslash) (CanUse RG_BOOMERANG)) (and (or (CanUse RG_HOVER_BOOTS) (or (CanUse RG_SONG_OF_TIME) (and IsAdult RT_SPIRIT_LOBBY_JUMP))) CanBreakPots)))
RC_SPIRIT_TEMPLE_MQ_STATUE_3F_WEST_POT (MQSpiritSharedStatueRoom RR_SPIRIT_TEMPLE_MQ_STATUE_ROOM (or (CanUse RG_HOVER_BOOTS) (or (CanUse RG_SONG_OF_TIME) (and (and IsAdult RT_SPIRIT_LOBBY_JUMP) CanBreakPots))))
@ -195,6 +237,7 @@ RC_SPIRIT_TEMPLE_MQ_STATUE_CRATE_1 (MQSpiritSharedStatueRoom RR_SPIRIT_TEMPLE_MQ
RC_SPIRIT_TEMPLE_MQ_STATUE_CRATE_2 (MQSpiritSharedStatueRoom RR_SPIRIT_TEMPLE_MQ_STATUE_ROOM CanBreakCrates)
RC_SPIRIT_TEMPLE_MQ_STATUE_SMALL_CRATE (MQSpiritSharedStatueRoom RR_SPIRIT_TEMPLE_MQ_STATUE_ROOM CanBreakSmallCrates)
//we check possible adult access directly in MQSpiritSharedBrokenWallRoom, so this exit only covers Certain Access
//Exits
RR_SPIRIT_TEMPLE_MQ_BROKEN_WALL_ROOM (SmallKeys SCENE_SPIRIT_TEMPLE 7)
//We can use Here instead of Shared here because adult will never need to rely on child access to reach this room, and adult access is Certain
RR_SPIRIT_TEMPLE_MQ_BIG_BLOCK_ROOM_NORTH (Here (or HasFireSource (and RT_SPIRIT_MQ_FROZEN_EYE (and (CanUse RG_FAIRY_BOW) (CanUse RG_SONG_OF_TIME)))))
@ -205,28 +248,34 @@ RR_SPIRIT_TEMPLE_MQ_STATUE_ROOM_EAST (and IsAdult (CanUse RG_HOOKSHOT))
def RR_SPIRIT_TEMPLE_MQ_SUN_BLOCK_ROOM SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ Sun Block Room
//We don't need Shared here because if we are checking as child, universe 2 adult access needs nothing so it always passes, and if we are checking as adult, it is Certain Access
//Checks
RC_SPIRIT_TEMPLE_MQ_SUN_BLOCK_ROOM_CHEST true
RC_SPIRIT_TEMPLE_MQ_GS_SUN_BLOCK_ROOM (MQSpiritSharedStatueRoom RR_SPIRIT_TEMPLE_MQ_SUN_BLOCK_ROOM (or (CanUse RG_HOOKSHOT) (and RT_SPIRIT_MQ_SUN_BLOCK_GS (CanUse RG_BOOMERANG))))
RC_SPIRIT_TEMPLE_MQ_SUN_BLOCKS_POT_1 (MQSpiritSharedStatueRoom RR_SPIRIT_TEMPLE_MQ_SUN_BLOCK_ROOM CanBreakPots)
RC_SPIRIT_TEMPLE_MQ_SUN_BLOCKS_POT_2 (MQSpiritSharedStatueRoom RR_SPIRIT_TEMPLE_MQ_SUN_BLOCK_ROOM CanBreakPots)
//Exits
RR_SPIRIT_TEMPLE_MQ_STATUE_ROOM true
//This door causes the universes to merge as it requires 7 keys for both ages
RR_SPIRIT_TEMPLE_MQ_WEST_IRON_KNUCKLE (SmallKeys SCENE_SPIRIT_TEMPLE 7)
def RR_SPIRIT_TEMPLE_MQ_WEST_IRON_KNUCKLE SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ East Iron Knuckle
//Exits
RR_SPIRIT_TEMPLE_MQ_SUN_BLOCK_ROOM (SmallKeys SCENE_SPIRIT_TEMPLE 7)
RR_SPIRIT_TEMPLE_MQ_SILVER_GAUNTLETS_HAND (CanKillEnemy RE_IRON_KNUCKLE)
def RR_SPIRIT_TEMPLE_MQ_SILVER_GAUNTLETS_HAND SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ Silver Gauntlets Hand
//Checks
RC_SPIRIT_TEMPLE_SILVER_GAUNTLETS_CHEST true
//If it is ever relevent for 1 age to spawn the mirror shield chest for the other can longshot across, it needs an eventAccess
//Exits
RR_SPIRIT_TEMPLE_MQ_WEST_IRON_KNUCKLE true
RR_DESERT_COLOSSUS true
def RR_SPIRIT_TEMPLE_MQ_BIG_BLOCK_ROOM_SOUTH SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ Block Room South
//Exits
RR_SPIRIT_TEMPLE_MQ_LOBBY true
//The block here is unusual in that it is a permanent flag, but reset anyway as child. This is because there's a check that would be blocked off by pushing them otherwise
//It may be worth considering making this always temp in future so adult doesn't have the same issue
@ -235,14 +284,18 @@ RR_SPIRIT_TEMPLE_MQ_BIG_BLOCK_ROOM_NORTH (if IsChild (CanUse RG_SILVER_GAUNTLETS
def RR_SPIRIT_TEMPLE_MQ_BIG_BLOCK_ROOM_NORTH SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ Block Room North
//Does not need to be shared as it's hard child locked, because adult pushing the block is a permanent flag that blocks the eye target and cannot be undone
//Checks
RC_SPIRIT_TEMPLE_MQ_SILVER_BLOCK_HALLWAY_CHEST (and IsChild (and (SmallKeys SCENE_SPIRIT_TEMPLE 7) CanHitEyeTargets))
//if going to RR_SPIRIT_TEMPLE_MQ_BIG_BLOCK_ROOM_SOUTH from here is ever relevant, there needs to be an event to handle the block
//Exits
RR_SPIRIT_TEMPLE_MQ_STATUE_ROOM true
def RR_SPIRIT_TEMPLE_MQ_STATUE_ROOM_EAST SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ Statue Room East
//Checks
RC_SPIRIT_TEMPLE_MQ_STATUE_ROOM_LULLABY_CHEST (and (CanUse RG_HOOKSHOT) (and (CanUse RG_ZELDAS_LULLABY) (or CanJumpslash (CanUse RG_HOVER_BOOTS))))
RC_SPIRIT_TEMPLE_MQ_STATUE_ROOM_INVISIBLE_CHEST (and (or RT_LENS_SPIRIT_MQ (CanUse RG_LENS_OF_TRUTH)) (or (CanUse RG_HOOKSHOT) (CanUse RG_HOVER_BOOTS)))
//Exits
RR_SPIRIT_TEMPLE_MQ_STATUE_ROOM true
//!QUANTUM LOGIC!
//We only need 4 keys, access to Shield hand and longshot to reach Gauntlets hand, as if we waste the 5th key we have given ourselves Gauntlets hand access through child climb
@ -255,21 +308,27 @@ RR_SPIRIT_TEMPLE_MQ_THREE_SUNS_ROOM_2F (or (CanUse RG_FIRE_ARROWS) (and RT_SPIRI
def RR_SPIRIT_TEMPLE_MQ_THREE_SUNS_ROOM_2F SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ Three Suns Room 2F
//implies logic->CanKillEnemy(RE_WALLMASTER). If we have lights, we can kill stalfos and wallmasters with bow
//Events
MQSpirit3SunsEnemies (or (and (CanUse RG_MIRROR_SHIELD) (CanKillEnemy RE_STALFOS ED_CLOSE true 2)) (and RSK_SUNLIGHT_ARROWS (CanUse RG_LIGHT_ARROWS)))
//Exits
RR_SPIRIT_TEMPLE_MQ_STATUE_ROOM_EAST true
RR_SPIRIT_TEMPLE_MQ_THREE_SUNS_ROOM_1F MQSpirit3SunsEnemies
def RR_SPIRIT_TEMPLE_MQ_THREE_SUNS_ROOM_1F SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ Three Suns Room 1F
//Exits
RR_SPIRIT_TEMPLE_MQ_THREE_SUNS_ROOM_2F MQSpirit3SunsEnemies
RR_SPIRIT_TEMPLE_MQ_1F_EAST true
def RR_SPIRIT_TEMPLE_MQ_1F_EAST SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ 1F East
//Assumes RR_SPIRIT_TEMPLE_MQ_LOBBY access
//Events
Spirit1FSilverRupees (CanUse RG_MEGATON_HAMMER)
//Checks
RC_SPIRIT_TEMPLE_MQ_EARLY_ADULT_POT_1 CanBreakPots
RC_SPIRIT_TEMPLE_MQ_EARLY_ADULT_POT_2 CanBreakPots
//Exits
RR_SPIRIT_TEMPLE_MQ_LOBBY (CanUse RG_MEGATON_HAMMER)
RR_SPIRIT_TEMPLE_MQ_THREE_SUNS_ROOM_1F true
RR_SPIRIT_TEMPLE_MQ_LEEVER_ROOM true
@ -277,64 +336,81 @@ RR_SPIRIT_TEMPLE_MQ_SYMPHONY_ROOM (SmallKeys SCENE_SPIRIT_TEMPLE 7)
def RR_SPIRIT_TEMPLE_MQ_LEEVER_ROOM SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ Leever Room
//Checks
RC_SPIRIT_TEMPLE_MQ_LEEVER_ROOM_CHEST (and (CanKillEnemy RE_PURPLE_LEEVER) (CanUse RG_HOOKSHOT))
RC_SPIRIT_TEMPLE_MQ_GS_LEEVER_ROOM (CanGetEnemyDrop RE_GOLD_SKULLTULA ED_BOOMERANG)
//Exits
RR_SPIRIT_TEMPLE_MQ_1F_EAST (CanUse RG_ZELDAS_LULLABY)
def RR_SPIRIT_TEMPLE_MQ_SYMPHONY_ROOM SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ Symphony Room
//Exits
RR_SPIRIT_TEMPLE_MQ_1F_EAST (SmallKeys SCENE_SPIRIT_TEMPLE 7)
//Implies CanPassEnemy(RE_MOBLIN_CHIEF)
RR_SPIRIT_TEMPLE_MQ_AFTER_SYMPHONY_ROOM (and (CanUse RG_MEGATON_HAMMER) (and (CanUse RG_SONG_OF_TIME) (and (CanUse RG_EPONAS_SONG) (and (CanUse RG_SUNS_SONG) (and (CanUse RG_SONG_OF_STORMS) (CanUse RG_ZELDAS_LULLABY))))))
def RR_SPIRIT_TEMPLE_MQ_AFTER_SYMPHONY_ROOM SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ After Symphony Room
//Checks
RC_SPIRIT_TEMPLE_MQ_SYMPHONY_ROOM_CHEST (CanPassEnemy RE_BIG_SKULLTULA)
RC_SPIRIT_TEMPLE_MQ_GS_SYMPHONY_ROOM (CanGetEnemyDrop RE_GOLD_SKULLTULA ED_BOOMERANG)
//Exits
RR_SPIRIT_TEMPLE_MQ_SYMPHONY_ROOM true
def RR_SPIRIT_TEMPLE_MQ_FOUR_BEAMOS_ROOM SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ Four Beamos Room
//Checks
RC_SPIRIT_TEMPLE_MQ_BEAMOS_ROOM_CHEST (CanKillEnemy RE_BEAMOS)
RC_SPIRIT_TEMPLE_MQ_BEAMOS_SMALL_CRATE (and (CanKillEnemy RE_BEAMOS) (and (CanUse RG_SONG_OF_TIME) CanBreakSmallCrates))
//Exits
RR_SPIRIT_TEMPLE_MQ_STATUE_ROOM_EAST (and (CanAvoidEnemy RE_BEAMOS true 4) (and (CanUse RG_SONG_OF_TIME) (and (SmallKeys SCENE_SPIRIT_TEMPLE 5) (CanUse RG_HOOKSHOT))))
RR_SPIRIT_TEMPLE_MQ_SOT_SUN_ROOM (and (CanAvoidEnemy RE_BEAMOS true 4) (CanUse RG_SONG_OF_TIME))
RR_SPIRIT_TEMPLE_MQ_BIG_WALL (SmallKeys SCENE_SPIRIT_TEMPLE 6)
def RR_SPIRIT_TEMPLE_MQ_SOT_SUN_ROOM SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ SoT Sun Room
//Checks
RC_SPIRIT_TEMPLE_MQ_CHEST_SWITCH_CHEST true
RC_SPIRIT_TEMPLE_MQ_DINALFOS_ROOM_SUN_FAIRY (CanUse RG_SUNS_SONG)
//Exits
RR_SPIRIT_TEMPLE_MQ_FOUR_BEAMOS_ROOM true
RR_SPIRIT_TEMPLE_MQ_EAST_STAIRS_TO_HAND CanJumpslash
RR_SPIRIT_TEMPLE_MQ_3F_GIBDO_ROOM (Here (and (or IsAdult (CanUse RG_SONG_OF_TIME)) (CanUse RG_MIRROR_SHIELD)))
def RR_SPIRIT_TEMPLE_MQ_EAST_STAIRS_TO_HAND SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ East Stairs to Hand
//Exits
RR_SPIRIT_TEMPLE_MQ_SOT_SUN_ROOM true
RR_SPIRIT_TEMPLE_MQ_EAST_IRON_KNUCKLE (and (or RT_LENS_SPIRIT_MQ (CanUse RG_LENS_OF_TRUTH)) (Here (CanKillEnemy RE_FLOORMASTER)))
def RR_SPIRIT_TEMPLE_MQ_EAST_IRON_KNUCKLE SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ East Iron Knuckle
//Exits
RR_SPIRIT_TEMPLE_MQ_EAST_STAIRS_TO_HAND true
RR_SPIRIT_TEMPLE_MQ_MIRROR_SHIELD_HAND (Here (CanKillEnemy RE_IRON_KNUCKLE))
def RR_SPIRIT_TEMPLE_MQ_MIRROR_SHIELD_HAND SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ Mirror Shield Hand
//Checks
RC_SPIRIT_TEMPLE_MIRROR_SHIELD_CHEST true
//Exits
RR_SPIRIT_TEMPLE_MQ_SILVER_GAUNTLETS_HAND (CanUse RG_LONGSHOT)
RR_SPIRIT_TEMPLE_MQ_EAST_IRON_KNUCKLE true
RR_DESERT_COLOSSUS true
def RR_SPIRIT_TEMPLE_MQ_3F_GIBDO_ROOM SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ 3F Gibdo Room
//Checks
RC_SPIRIT_TEMPLE_MQ_BOSS_KEY_CHEST true
//Exits
RR_SPIRIT_TEMPLE_MQ_SOT_SUN_ROOM true
def RR_SPIRIT_TEMPLE_MQ_BIG_WALL SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ Big Wall
//Checks
RC_SPIRIT_TEMPLE_MQ_LONG_CLIMB_POT_1 CanBreakPots
RC_SPIRIT_TEMPLE_MQ_LONG_CLIMB_POT_2 CanBreakPots
//Exits
RR_SPIRIT_TEMPLE_MQ_FOUR_BEAMOS_ROOM true
//technically we only need to avoid them, but the sheer height and the moving walls makes getting to the top after only stunning them very difficult/impossible
//The silver rupees are irrelevant without silver shuffle
@ -342,8 +418,10 @@ RR_SPIRIT_TEMPLE_MQ_4F_CENTRAL (CanKillEnemy RE_KEESE)
def RR_SPIRIT_TEMPLE_MQ_4F_CENTRAL SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ 4F Central
//Checks
RC_SPIRIT_TEMPLE_MQ_BEFORE_MIRROR_POT_1 CanBreakPots
RC_SPIRIT_TEMPLE_MQ_BEFORE_MIRROR_POT_2 CanBreakPots
//Exits
RR_SPIRIT_TEMPLE_MQ_BIG_WALL true
RR_SPIRIT_TEMPLE_MQ_NINE_CHAIRS_ROOM (SmallKeys SCENE_SPIRIT_TEMPLE 7)
RR_SPIRIT_TEMPLE_MQ_BIG_MIRROR_ROOM (CanUse RG_ZELDAS_LULLABY)
@ -351,12 +429,15 @@ RR_SPIRIT_TEMPLE_MQ_BIG_MIRROR_ROOM (CanUse RG_ZELDAS_LULLABY)
def RR_SPIRIT_TEMPLE_MQ_NINE_CHAIRS_ROOM SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ Nine Chairs Room
//These skulls rely on the iron knuckle existing without a trick to shoot through the chairs
//Checks
RC_SPIRIT_TEMPLE_MQ_GS_NINE_THRONES_ROOM_WEST (CanGetEnemyDrop RE_GOLD_SKULLTULA ED_BOOMERANG)
RC_SPIRIT_TEMPLE_MQ_GS_NINE_THRONES_ROOM_NORTH (CanGetEnemyDrop RE_GOLD_SKULLTULA)
//Exits
RR_SPIRIT_TEMPLE_MQ_4F_CENTRAL true
def RR_SPIRIT_TEMPLE_MQ_BIG_MIRROR_ROOM SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ Big Mirror Room
//Checks
RC_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_1 CanBreakPots
RC_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_2 CanBreakPots
RC_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_3 CanBreakPots
@ -365,31 +446,39 @@ RC_SPIRIT_TEMPLE_MQ_BIG_MIRROR_CRATE_1 CanBreakCrates
RC_SPIRIT_TEMPLE_MQ_BIG_MIRROR_CRATE_4 CanBreakCrates
RC_SPIRIT_TEMPLE_MQ_BIG_MIRROR_CRATE_2 CanBreakCrates
RC_SPIRIT_TEMPLE_MQ_BIG_MIRROR_CRATE_3 CanBreakCrates
//Exits
RR_SPIRIT_TEMPLE_MQ_4F_CENTRAL true
RR_SPIRIT_TEMPLE_MQ_BIG_MIRROR_CAVE (Here (CanUse RG_MEGATON_HAMMER))
def RR_SPIRIT_TEMPLE_MQ_BIG_MIRROR_CAVE SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ Big Mirror Cave
//Checks
RC_SPIRIT_TEMPLE_MQ_MIRROR_PUZZLE_INVISIBLE_CHEST (or RT_LENS_SPIRIT_MQ (CanUse RG_LENS_OF_TRUTH))
//If it's ever relevant to longshot into head from lobby, this needs to be an event access
//Exits
RR_SPIRIT_TEMPLE_MQ_INSIDE_STATUE_HEAD (and (Here (CanUse RG_MIRROR_SHIELD)) (CanUse RG_HOOKSHOT))
RR_SPIRIT_TEMPLE_MQ_STATUE_ROOM (Here (CanUse RG_MIRROR_SHIELD))
def RR_SPIRIT_TEMPLE_MQ_INSIDE_STATUE_HEAD SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ Inside Statue Head
//Exits
RR_SPIRIT_TEMPLE_MQ_LOBBY true
RR_SPIRIT_TEMPLE_BOSS_ENTRYWAY true
def RR_SPIRIT_TEMPLE_BOSS_ENTRYWAY SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple Boss Entryway
//Exits
RR_SPIRIT_TEMPLE_INSIDE_STATUE_HEAD (and (IsDungeonVanilla SPIRIT_TEMPLE) false)
RR_SPIRIT_TEMPLE_MQ_INSIDE_STATUE_HEAD (and (IsDungeonMQ SPIRIT_TEMPLE) false)
RR_SPIRIT_TEMPLE_BOSS_ROOM (HasItem RG_SPIRIT_TEMPLE_BOSS_KEY)
def RR_SPIRIT_TEMPLE_BOSS_ROOM SCENE_SPIRIT_TEMPLE_BOSS false
Spirit Temple Boss Room
//Events
SpiritTempleClear (CanKillEnemy RE_TWINROVA)
//Checks
RC_SPIRIT_TEMPLE_TWINROVA_HEART SpiritTempleClear
RC_TWINROVA SpiritTempleClear
//Exits
RR_SPIRIT_TEMPLE_BOSS_ENTRYWAY false
RR_DESERT_COLOSSUS @deprioritize SpiritTempleClear

View file

@ -1,5 +1,6 @@
def RR_WATER_TEMPLE_ENTRYWAY SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple Entryway
//Exits
RR_WATER_TEMPLE_LOBBY (and (HasItem RG_BRONZE_SCALE) (IsDungeonVanilla WATER_TEMPLE))
RR_WATER_TEMPLE_MQ_3F_CENTRAL (and (HasItem RG_BRONZE_SCALE) (IsDungeonMQ WATER_TEMPLE))
RR_LH_FROM_WATER_TEMPLE true
@ -7,8 +8,10 @@ RR_LH_FROM_WATER_TEMPLE true
//Water Temple logic currently assumes that the locked door leading to the upper water raising location is unlocked from the start
def RR_WATER_TEMPLE_LOBBY SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple Lobby
//Checks
RC_WATER_TEMPLE_MAIN_LEVEL_2_POT_1 (and CanBreakPots (or CanWaterTempleLowFromHigh (or CanWaterTempleMiddle (and (CanUse RG_IRON_BOOTS) (CanUse RG_HOOKSHOT)))))
RC_WATER_TEMPLE_MAIN_LEVEL_2_POT_2 (and CanBreakPots (or CanWaterTempleLowFromHigh (or CanWaterTempleMiddle (and (CanUse RG_IRON_BOOTS) (CanUse RG_HOOKSHOT)))))
//Exits
RR_WATER_TEMPLE_ENTRYWAY true
RR_WATER_TEMPLE_EAST_LOWER (or CanWaterTempleLowFromHigh (and (or RT_FEWER_TUNIC_REQUIREMENTS (CanUse RG_ZORA_TUNIC)) (or (CanUse RG_IRON_BOOTS) (and (CanUse RG_LONGSHOT) RT_WATER_LONGSHOT_TORCH))))
RR_WATER_TEMPLE_NORTH_LOWER (or CanWaterTempleLowFromHigh (and (or RT_FEWER_TUNIC_REQUIREMENTS (CanUse RG_ZORA_TUNIC)) (CanUse RG_IRON_BOOTS)))
@ -25,9 +28,12 @@ RR_WATER_TEMPLE_PRE_BOSS_ROOM (or (and CanWaterTempleHigh (CanUse RG_LONGSHOT))
def RR_WATER_TEMPLE_EAST_LOWER SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple East Lower
//Events
CanWaterTempleLowFromHigh (CanUse RG_ZELDAS_LULLABY)
//Checks
RC_WATER_TEMPLE_TORCH_POT_1 (and CanBreakPots (or CanWaterTempleLowFromHigh (and (CanUse RG_HOOKSHOT) (CanUse RG_IRON_BOOTS))))
RC_WATER_TEMPLE_TORCH_POT_2 (and CanBreakPots (or CanWaterTempleLowFromHigh (and (CanUse RG_HOOKSHOT) (CanUse RG_IRON_BOOTS))))
//Exits
RR_WATER_TEMPLE_LOBBY (or CanWaterTempleLowFromHigh (and (or RT_FEWER_TUNIC_REQUIREMENTS (CanUse RG_ZORA_TUNIC)) (CanUse RG_IRON_BOOTS)))
RR_WATER_TEMPLE_MAP_ROOM CanWaterTempleHigh
RR_WATER_TEMPLE_CRACKED_WALL (or CanWaterTempleMiddle (and CanWaterTempleHigh (and CanWaterTempleLowFromHigh (or (and (CanUse RG_HOVER_BOOTS) RT_WATER_CRACKED_WALL_HOVERS) RT_WATER_CRACKED_WALL))))
@ -35,145 +41,187 @@ RR_WATER_TEMPLE_TORCH_ROOM (and CanWaterTempleLowFromHigh (or HasFireSourceWithT
def RR_WATER_TEMPLE_MAP_ROOM SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple Map Room
//Checks
RC_WATER_TEMPLE_MAP_CHEST (CanKillEnemy RE_SPIKE ED_CLOSE true 3)
//Exits
RR_WATER_TEMPLE_EAST_LOWER (CanKillEnemy RE_SPIKE ED_CLOSE true 3)
def RR_WATER_TEMPLE_CRACKED_WALL SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple Cracked Wall
//Checks
RC_WATER_TEMPLE_CRACKED_WALL_CHEST HasExplosives
//Exits
RR_WATER_TEMPLE_EAST_LOWER true
def RR_WATER_TEMPLE_TORCH_ROOM SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple Torch Room
//Checks
RC_WATER_TEMPLE_TORCHES_CHEST (CanKillEnemy RE_SHELL_BLADE ED_CLOSE true 3)
//Exits
RR_WATER_TEMPLE_EAST_LOWER (CanKillEnemy RE_SHELL_BLADE ED_CLOSE true 3)
def RR_WATER_TEMPLE_NORTH_LOWER SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple North Lower
//Exits
RR_WATER_TEMPLE_LOBBY true
RR_WATER_TEMPLE_BOULDERS_LOWER (and (or (CanUse RG_LONGSHOT) (and RT_WATER_BK_REGION (CanUse RG_HOVER_BOOTS))) (SmallKeys SCENE_WATER_TEMPLE 4))
def RR_WATER_TEMPLE_BOULDERS_LOWER SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple Boulders Lower
//Checks
RC_WATER_TEMPLE_GS_NEAR_BOSS_KEY_CHEST (or (CanUse RG_LONGSHOT) (Here (or (and IsAdult HookshotOrBoomerang) (and (CanUse RG_IRON_BOOTS) (CanUse RG_HOOKSHOT)))))
//Exits
RR_WATER_TEMPLE_NORTH_LOWER (SmallKeys SCENE_WATER_TEMPLE 4)
RR_WATER_TEMPLE_BLOCK_ROOM true
RR_WATER_TEMPLE_BOULDERS_UPPER (or (and IsAdult (or (CanUse RG_HOVER_BOOTS) RT_WATER_NORTH_BASEMENT_LEDGE_JUMP)) (and (CanUse RG_HOVER_BOOTS) (CanUse RG_IRON_BOOTS)))
def RR_WATER_TEMPLE_BLOCK_ROOM SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple Block Room
//Checks
RC_WATER_TEMPLE_BASEMENT_BLOCK_PUZZLE_POT_1 CanBreakPots
RC_WATER_TEMPLE_BASEMENT_BLOCK_PUZZLE_POT_2 CanBreakPots
//Exits
RR_WATER_TEMPLE_BOULDERS_LOWER (or (and (HasItem RG_GORONS_BRACELET) HasExplosives) (CanUse RG_HOOKSHOT))
RR_WATER_TEMPLE_JETS_ROOM (or (and (HasItem RG_GORONS_BRACELET) HasExplosives) (and (CanUse RG_HOOKSHOT) (CanUse RG_HOVER_BOOTS)))
def RR_WATER_TEMPLE_JETS_ROOM SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple Jets Room
//Exits
RR_WATER_TEMPLE_BLOCK_ROOM (CanUse RG_HOOKSHOT)
RR_WATER_TEMPLE_BOULDERS_UPPER true
def RR_WATER_TEMPLE_BOULDERS_UPPER SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple Boulders Upper
//Exits
RR_WATER_TEMPLE_BOULDERS_LOWER true
RR_WATER_TEMPLE_JETS_ROOM IsAdult
RR_WATER_TEMPLE_BOSS_KEY_ROOM (and (or (CanUse RG_IRON_BOOTS) (and IsAdult RT_WATER_BK_JUMP_DIVE)) (SmallKeys SCENE_WATER_TEMPLE 5))
def RR_WATER_TEMPLE_BOSS_KEY_ROOM SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple Boss Key Room
//Events
FairyPot true
//Checks
RC_WATER_TEMPLE_BOSS_KEY_CHEST true
RC_WATER_TEMPLE_BOSS_KEY_POT_1 CanBreakPots
RC_WATER_TEMPLE_BOSS_KEY_POT_2 CanBreakPots
//Exits
RR_WATER_TEMPLE_BOULDERS_UPPER (and (or (CanUse RG_IRON_BOOTS) (or (and IsAdult RT_WATER_BK_JUMP_DIVE) (or IsChild (HasItem RG_SILVER_SCALE)))) (SmallKeys SCENE_WATER_TEMPLE 5))
def RR_WATER_TEMPLE_SOUTH_LOWER SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple South Lower
//Checks
RC_WATER_TEMPLE_GS_BEHIND_GATE (and CanJumpslash (or (CanUse RG_HOOKSHOT) (and IsAdult (CanUse RG_HOVER_BOOTS))))
RC_WATER_TEMPLE_BEHIND_GATE_POT_1 (and CanJumpslash (or (CanUse RG_HOOKSHOT) (and IsAdult (CanUse RG_HOVER_BOOTS))))
RC_WATER_TEMPLE_BEHIND_GATE_POT_2 (and CanJumpslash (or (CanUse RG_HOOKSHOT) (and IsAdult (CanUse RG_HOVER_BOOTS))))
RC_WATER_TEMPLE_BEHIND_GATE_POT_3 (and CanJumpslash (or (CanUse RG_HOOKSHOT) (and IsAdult (CanUse RG_HOVER_BOOTS))))
RC_WATER_TEMPLE_BEHIND_GATE_POT_4 (and CanJumpslash (or (CanUse RG_HOOKSHOT) (and IsAdult (CanUse RG_HOVER_BOOTS))))
//Exits
RR_WATER_TEMPLE_LOBBY (CanUse RG_IRON_BOOTS)
def RR_WATER_TEMPLE_WEST_LOWER SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple West Lower
//Exits
RR_WATER_TEMPLE_LOBBY (and (CanUse RG_HOOKSHOT) (and (CanUse RG_IRON_BOOTS) (HasItem RG_GORONS_BRACELET)))
RR_WATER_TEMPLE_DRAGON_ROOM (or CanJumpslashExceptHammer CanUseProjectile)
def RR_WATER_TEMPLE_DRAGON_ROOM SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple Dragon Room
//Checks
RC_WATER_TEMPLE_DRAGON_CHEST (or (and (CanUse RG_HOOKSHOT) (CanUse RG_IRON_BOOTS)) (or (and (or (and IsAdult (and RT_WATER_ADULT_DRAGON (or (CanUse RG_HOOKSHOT) (or (CanUse RG_FAIRY_BOW) (CanUse RG_BOMBCHU_5))))) (and IsChild (and RT_WATER_CHILD_DRAGON (or (CanUse RG_FAIRY_SLINGSHOT) (or (CanUse RG_BOOMERANG) (CanUse RG_BOMBCHU_5)))))) (or (HasItem RG_SILVER_SCALE) (CanUse RG_IRON_BOOTS))) (Here (and IsAdult (and (CanUse RG_FAIRY_BOW) (or (and RT_WATER_ADULT_DRAGON (or (HasItem RG_SILVER_SCALE) (CanUse RG_IRON_BOOTS))) RT_WATER_DRAGON_JUMP_DIVE))))))
//Exits
RR_WATER_TEMPLE_WEST_LOWER true
def RR_WATER_TEMPLE_CENTRAL_PILLAR_LOWER SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple Central Pillar Lower
//Exits
RR_WATER_TEMPLE_LOBBY (SmallKeys SCENE_WATER_TEMPLE 5)
RR_WATER_TEMPLE_CENTRAL_PILLAR_UPPER (CanUse RG_HOOKSHOT)
RR_WATER_TEMPLE_CENTRAL_PILLAR_BASEMENT (and CanWaterTempleMiddle (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 40)))
def RR_WATER_TEMPLE_CENTRAL_PILLAR_UPPER SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple Central Pillar Upper
//Events
CanWaterTempleMiddle (CanUse RG_ZELDAS_LULLABY)
//Checks
RC_WATER_TEMPLE_GS_CENTRAL_PILLAR (or (CanUse RG_LONGSHOT) (and (or (and RT_WATER_FW_CENTRAL_GS (and (CanUse RG_FARORES_WIND) (or (CanUse RG_FAIRY_BOW) (or (CanUse RG_DINS_FIRE) (SmallKeys SCENE_WATER_TEMPLE 5))))) (and RT_WATER_IRONS_CENTRAL_GS (and (CanUse RG_IRON_BOOTS) (or (and (CanUse RG_HOOKSHOT) (CanUse RG_FAIRY_BOW)) (CanUse RG_DINS_FIRE))))) (and CanWaterTempleHigh HookshotOrBoomerang)))
//Exits
RR_WATER_TEMPLE_LOBBY true
RR_WATER_TEMPLE_CENTRAL_PILLAR_LOWER true
def RR_WATER_TEMPLE_CENTRAL_PILLAR_BASEMENT SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple Central Pillar Basement
//Checks
RC_WATER_TEMPLE_CENTRAL_PILLAR_CHEST (and (CanUse RG_HOOKSHOT) (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 40)))
//Exits
RR_WATER_TEMPLE_CENTRAL_PILLAR_LOWER (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 16))
def RR_WATER_TEMPLE_EAST_MIDDLE SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple East Middle
//Checks
RC_WATER_TEMPLE_COMPASS_CHEST CanUseProjectile
RC_WATER_TEMPLE_NEAR_COMPASS_POT_1 CanBreakPots
RC_WATER_TEMPLE_NEAR_COMPASS_POT_2 CanBreakPots
RC_WATER_TEMPLE_NEAR_COMPASS_POT_3 CanBreakPots
//Exits
RR_WATER_TEMPLE_LOBBY (CanUse RG_IRON_BOOTS)
def RR_WATER_TEMPLE_WEST_MIDDLE SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple West Middle
//Exits
RR_WATER_TEMPLE_LOBBY true
RR_WATER_TEMPLE_HIGH_WATER CanUseProjectile
def RR_WATER_TEMPLE_HIGH_WATER SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple High Water
//Events
CanWaterTempleHigh (CanUse RG_ZELDAS_LULLABY)
//Exits
RR_WATER_TEMPLE_LOBBY true
def RR_WATER_TEMPLE_BLOCK_CORRIDOR SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple Block Corridor
//Checks
RC_WATER_TEMPLE_CENTRAL_BOW_TARGET_CHEST (and (HasItem RG_GORONS_BRACELET) (or CanWaterTempleLowFromHigh CanWaterTempleMiddle))
RC_WATER_TEMPLE_CENTRAL_BOW_POT_1 (and CanBreakPots (and (HasItem RG_GORONS_BRACELET) (or CanWaterTempleLowFromHigh CanWaterTempleMiddle)))
RC_WATER_TEMPLE_CENTRAL_BOW_POT_2 (and CanBreakPots (and (HasItem RG_GORONS_BRACELET) (or CanWaterTempleLowFromHigh CanWaterTempleMiddle)))
//Exits
RR_WATER_TEMPLE_LOBBY (CanUse RG_HOOKSHOT)
def RR_WATER_TEMPLE_FALLING_PLATFORM_ROOM SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple Falling Platform Room
//Checks
RC_WATER_TEMPLE_GS_FALLING_PLATFORM_ROOM (or (CanUse RG_LONGSHOT) (or (and RT_WATER_RANG_FALLING_PLATFORM_GS (and IsChild (CanUse RG_BOOMERANG))) (and RT_WATER_HOOKSHOT_FALLING_PLATFORM_GS (and IsAdult (CanUse RG_HOOKSHOT)))))
//Exits
RR_WATER_TEMPLE_LOBBY (and (CanUse RG_HOOKSHOT) (SmallKeys SCENE_WATER_TEMPLE 4))
RR_WATER_TEMPLE_DRAGON_PILLARS_ROOM (and (CanUse RG_HOOKSHOT) (SmallKeys SCENE_WATER_TEMPLE 5))
def RR_WATER_TEMPLE_DRAGON_PILLARS_ROOM SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple Dragon Pillars Room
//Checks
RC_WATER_TEMPLE_LIKE_LIKE_POT_1 (CanUse RG_HOOKSHOT)
RC_WATER_TEMPLE_LIKE_LIKE_POT_2 (CanUse RG_HOOKSHOT)
//Exits
RR_WATER_TEMPLE_FALLING_PLATFORM_ROOM CanUseProjectile
RR_WATER_TEMPLE_DARK_LINK_ROOM (CanUse RG_HOOKSHOT)
def RR_WATER_TEMPLE_DARK_LINK_ROOM SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple Dark Link Room
//Exits
RR_WATER_TEMPLE_DRAGON_PILLARS_ROOM (CanKillEnemy RE_DARK_LINK)
RR_WATER_TEMPLE_LONGSHOT_ROOM (CanKillEnemy RE_DARK_LINK)
def RR_WATER_TEMPLE_LONGSHOT_ROOM SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple Longshot Room
//Checks
RC_WATER_TEMPLE_LONGSHOT_CHEST true
//Exits
RR_WATER_TEMPLE_DARK_LINK_ROOM true
RR_WATER_TEMPLE_RIVER (or IsChild (CanUse RG_SONG_OF_TIME))
def RR_WATER_TEMPLE_RIVER SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple River
//Checks
RC_WATER_TEMPLE_RIVER_CHEST (and (or (CanUse RG_FAIRY_SLINGSHOT) (CanUse RG_FAIRY_BOW)) (or IsAdult (or (CanUse RG_HOVER_BOOTS) (CanUse RG_HOOKSHOT))))
RC_WATER_TEMPLE_GS_RIVER (or (and (CanUse RG_IRON_BOOTS) (CanUse RG_HOOKSHOT)) (and RT_WATER_RIVER_GS (CanUse RG_LONGSHOT)))
RC_WATER_TEMPLE_RIVER_POT_1 CanBreakPots
@ -182,18 +230,23 @@ RC_WATER_TEMPLE_RIVER_HEART_1 (or (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 16)
RC_WATER_TEMPLE_RIVER_HEART_2 (or (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 16)) (HasItem RG_BRONZE_SCALE))
RC_WATER_TEMPLE_RIVER_HEART_3 (or (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 16)) (HasItem RG_BRONZE_SCALE))
RC_WATER_TEMPLE_RIVER_HEART_4 (or (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 24)) (HasItem RG_BRONZE_SCALE))
//Exits
RR_WATER_TEMPLE_DRAGON_ROOM (and (or (CanUse RG_FAIRY_SLINGSHOT) (CanUse RG_FAIRY_BOW)) (or IsAdult (or (CanUse RG_HOVER_BOOTS) (CanUse RG_HOOKSHOT))))
def RR_WATER_TEMPLE_PRE_BOSS_ROOM SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple Pre Boss Room
//Events
FairyPot true
//Checks
RC_WATER_TEMPLE_MAIN_LEVEL_1_POT_1 CanBreakPots
RC_WATER_TEMPLE_MAIN_LEVEL_1_POT_2 CanBreakPots
//Exits
RR_WATER_TEMPLE_LOBBY true
RR_WATER_TEMPLE_BOSS_ENTRYWAY true
def RR_WATER_TEMPLE_MQ_3F_SOUTH_LEDGE SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ 3F South Ledge
//Exits
RR_WATER_TEMPLE_ENTRYWAY (or (HasItem RG_BRONZE_SCALE) (CanUse RG_IRON_BOOTS))
RR_WATER_TEMPLE_MQ_MAIN true
//If we are not on WL_HIGH, we reach RR_WATER_TEMPLE_MQ_3F_MAIN with hookshot via 2F, otherwise we can reach the platform
@ -206,6 +259,7 @@ RR_WATER_TEMPLE_MQ_2F_CENTRAL (MQWaterLevel WL_LOW_OR_MID)
//remember that any solution that works for any level doesn't need to be given a level, even if that solution is overkill for a lower level
def RR_WATER_TEMPLE_MQ_MAIN SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ Main
//Exits
RR_WATER_TEMPLE_MQ_3F_SOUTH_LEDGE (and (HasItem RG_BRONZE_SCALE) (MQWaterLevel WL_HIGH))
//Jumping across is possible but a trick due to the janky ledge
RR_WATER_TEMPLE_MQ_EAST_TOWER (or (and (>= WaterTimer 24) (CanUse RG_IRON_BOOTS)) (or (and (MQWaterLevel WL_MID) (and (HasItem RG_GOLDEN_SCALE) (>= WaterTimer 16))) (MQWaterLevel WL_LOW)))
@ -225,6 +279,7 @@ RR_WATER_TEMPLE_MQ_CRATES_WHIRLPOOLS_ROOM (and MQWaterB1Switch (and (or (and (MQ
//This region specifically covers the topmost platform around central pillar
def RR_WATER_TEMPLE_MQ_3F_CENTRAL SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ 3F Central
//Exits
RR_WATER_TEMPLE_MQ_MAIN true
RR_WATER_TEMPLE_MQ_3F_SOUTH_LEDGE (or (CanUse RG_LONGSHOT) (CanUse RG_HOVER_BOOTS))
RR_WATER_TEMPLE_MQ_2F_CENTRAL (and (or (MQWaterLevel WL_LOW_OR_MID) (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 16))) (CanUse RG_HOOKSHOT))
@ -241,6 +296,7 @@ RR_WATER_TEMPLE_MQ_LIZALFOS_HALLWAY (or (and (CanUse RG_IRON_BOOTS) (>= WaterTim
//RR_WATER_TEMPLE_MQ_CENTRAL_PILLAR_HIGH should be accessed directly to use the central pillar door while at WL_HIGH
def RR_WATER_TEMPLE_MQ_2F_CENTRAL SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ 2F Central
//Exits
RR_WATER_TEMPLE_MQ_MAIN true
RR_WATER_TEMPLE_MQ_3F_CENTRAL (CanUse RG_HOOKSHOT)
RR_WATER_TEMPLE_MQ_CENTRAL_PILLAR_2F (MQWaterLevel WL_LOW_OR_MID)
@ -253,20 +309,24 @@ Invalid Region
def RR_WATER_TEMPLE_MQ_HIGH_EMBLEM SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ High Emblem
//Events
ReachedWaterHighEmblem true
CanWaterTempleHigh (CanUse RG_ZELDAS_LULLABY)
//Exits
RR_WATER_TEMPLE_MQ_3F_CENTRAL true
RR_WATER_TEMPLE_MQ_MAIN true
def RR_WATER_TEMPLE_MQ_3F_NORTH_LEDGE SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ 3F North Ledge
//what we need if WL_LOW, we can't guarantee repeated access otherwise.
//Exits
RR_WATER_TEMPLE_MQ_MAIN (or (HasItem RG_BRONZE_SCALE) TakeDamage)
RR_WATER_TEMPLE_MQ_3F_CENTRAL (CanUse RG_LONGSHOT)
RR_WATER_TEMPLE_MQ_BOSS_DOOR (or (CanUse RG_LONGSHOT) (or (CanUse RG_ICE_ARROWS) (CanUse RG_NAYRUS_LOVE)))
def RR_WATER_TEMPLE_MQ_BOSS_DOOR SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ Main
//Exits
RR_WATER_TEMPLE_MQ_3F_NORTH_LEDGE (or (CanUse RG_ICE_ARROWS) TakeDamage)
RR_WATER_TEMPLE_BOSS_ENTRYWAY true
@ -274,25 +334,32 @@ def RR_WATER_TEMPLE_MQ_EAST_TOWER SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ East Tower
//if we can't reach these, we can't move the water at all, so no need to specify level or account for WL_LOW access here
//review is some way to play ocarina underwater exists
//Events
CouldWaterTempleLow true
CanWaterTempleLowFromHigh (CanUse RG_ZELDAS_LULLABY)
//Checks
RC_WATER_TEMPLE_MQ_MAP_CHEST (and (MQWaterLevel WL_HIGH) (and HasFireSource (CanUse RG_HOOKSHOT)))
RC_WATER_TEMPLE_MQ_LONGSHOT_CHEST (or (and (MQWaterLevel WL_MID) (CanUse RG_HOOKSHOT)) (and (MQWaterLevel WL_HIGH_OR_MID) CanOpenUnderwaterChest))
RC_WATER_TEMPLE_MQ_LOWER_TORCHES_POT_1 (or (and (MQWaterLevel WL_LOW) CanBreakPots) (and (CanUse RG_IRON_BOOTS) (and (CanUse RG_HOOKSHOT) (>= WaterTimer 16))))
RC_WATER_TEMPLE_MQ_LOWER_TORCHES_POT_2 (or (and (MQWaterLevel WL_LOW) CanBreakPots) (and (CanUse RG_IRON_BOOTS) (and (CanUse RG_HOOKSHOT) (>= WaterTimer 16))))
//Exits
RR_WATER_TEMPLE_MQ_EAST_TOWER_1F_ROOM (and (MQWaterLevel WL_LOW) (or (CanUse RG_FAIRY_BOW) (or (CanUse RG_DINS_FIRE) (CanUse RG_STICKS))))
//Raising the targets by clearing this room achieves nothing logically because it requires WL_LOW to do and hookshot to use, which implies access to WL_MID and WL_HIGH already
def RR_WATER_TEMPLE_MQ_EAST_TOWER_1F_ROOM SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ East Tower 1F Room
//Checks
RC_WATER_TEMPLE_MQ_COMPASS_CHEST (and (CanKillEnemy RE_LIZALFOS) (CanKillEnemy RE_SPIKE))
//Exits
RR_WATER_TEMPLE_MQ_EAST_TOWER true
//This area assumes we entered through the lower door, so water is low and cannot be changed without leaving.
def RR_WATER_TEMPLE_MQ_CENTRAL_PILLAR_1F SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ Central Pillar 1F
//This is harder than the other possibilities as you have to move between shots on top of the extra range, but there's basically no universe this should matter.
//Events
MQWaterB1Switch (and RT_WATER_MQ_CENTRAL_PILLAR (CanUse RG_FIRE_ARROWS))
//Exits
RR_WATER_TEMPLE_MQ_CENTRAL_PILLAR_HIGH (and (MQWaterLevel WL_HIGH) (and RT_WATER_FW_CENTRAL_GS (and (CanUse RG_FARORES_WIND) (HasItem RG_BRONZE_SCALE))))
//I don't know if this FW trick can ever matter but maybe it's needed to get child to CENTRAL_2F or something
RR_WATER_TEMPLE_MQ_CENTRAL_PILLAR_2F (or (CanUse RG_HOOKSHOT) (and (MQWaterLevel WL_MID) (and RT_WATER_FW_CENTRAL_GS (and (CanUse RG_FARORES_WIND) (HasItem RG_BRONZE_SCALE)))))
@ -302,30 +369,37 @@ RR_WATER_TEMPLE_MQ_CENTRAL_PILLAR_B1 (and MQWaterOpenedPillarB1 (and (MQWaterLev
//If we enter here in WL_HIGH, go to RR_WATER_TEMPLE_MQ_CENTRAL_PILLAR_HIGH instead, Assumes WL_MID_OR_LOW
def RR_WATER_TEMPLE_MQ_CENTRAL_PILLAR_2F SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ Central Pillar 2F
//Events
CouldWaterTempleMiddle true
CanWaterTempleMiddle (CanUse RG_ZELDAS_LULLABY)
//It's possible to do this even on low water, but more awkward. I'm not sure if it's even possible for it to be relevant though.
MQWaterOpenedPillarB1 (and RT_WATER_MQ_CENTRAL_PILLAR (CanUse RG_FIRE_ARROWS))
//Exits
RR_WATER_TEMPLE_MQ_CENTRAL_PILLAR_HIGH (and (MQWaterLevel WL_HIGH) (and (CanUse RG_FARORES_WIND) (or (HasItem RG_BRONZE_SCALE) (CanUse RG_IRON_BOOTS))))
RR_WATER_TEMPLE_MQ_CENTRAL_PILLAR_B1 (and MQWaterOpenedPillarB1 (and (MQWaterLevel WL_MID) (and (CanUse RG_IRON_BOOTS) (CanUse RG_ZORA_TUNIC))))
def RR_WATER_TEMPLE_MQ_CENTRAL_PILLAR_HIGH SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ Central Pillar High
//Events
MQWaterOpenedPillarB1 (and (or (and (CanUse RG_SONG_OF_TIME) (CanUse RG_DINS_FIRE)) (and RT_WATER_MQ_CENTRAL_PILLAR (CanUse RG_FIRE_ARROWS))) (or (HasItem RG_BRONZE_SCALE) (and (CanUse RG_IRON_BOOTS) (and (CanUse RG_LONGSHOT) CanJumpslash))))
//Checks
RC_WATER_TEMPLE_MQ_CENTRAL_PILLAR_UPPER_CRATE_1 CanBreakCrates
RC_WATER_TEMPLE_MQ_CENTRAL_PILLAR_UPPER_CRATE_2 CanBreakCrates
//Exits
RR_WATER_TEMPLE_MQ_CENTRAL_PILLAR_B1 (and MQWaterB1Switch (and (CanUse RG_IRON_BOOTS) (CanUse RG_ZORA_TUNIC)))
//Assuming tunic and irons was checked on entry
def RR_WATER_TEMPLE_MQ_CENTRAL_PILLAR_B1 SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ Central Pillar B1
//Can't know water level, so we'll just assume any possibility and skip to MAIN
//Exits
RR_WATER_TEMPLE_MQ_MAIN (and MQWaterOpenedPillarB1 (and (CanUse RG_IRON_BOOTS) (HasItem RG_BRONZE_SCALE)))
//Child needs to release irons for height to push down the larger "peg", however they can push the lower one down by climbing and then hit the switch through the larger peg, but it's a trick
RR_WATER_TEMPLE_MQ_CENTRAL_PILLAR_B1_FINAL (or (and IsAdult (CanUse RG_LONGSHOT)) (and (CanUse RG_HOOKSHOT) (HasItem RG_BRONZE_SCALE)))
def RR_WATER_TEMPLE_MQ_CENTRAL_PILLAR_B1_FINAL SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ Central Pillar B1 Final
//Checks
RC_WATER_TEMPLE_MQ_CENTRAL_PILLAR_CHEST (CanUse RG_HOOKSHOT)
RC_WATER_TEMPLE_MQ_CENTRAL_PILLAR_LOWER_CRATE_1 CanBreakCrates
RC_WATER_TEMPLE_MQ_CENTRAL_PILLAR_LOWER_CRATE_2 CanBreakCrates
@ -344,6 +418,7 @@ RC_WATER_TEMPLE_MQ_CENTRAL_PILLAR_LOWER_CRATE_14 CanBreakCrates
def RR_WATER_TEMPLE_MQ_BEHIND_BLUE_SWITCH_2F SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ Behind Blue Switch 2F
//Checks
RC_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_POT_1 CanBreakPots
RC_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_POT_2 CanBreakPots
RC_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_POT_3 CanBreakPots
@ -357,17 +432,21 @@ RC_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_LOWER_SMALL_CRATE CanBreakSmallCrates
RC_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_UPPER_CRATE_1 CanBreakCrates
RC_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_UPPER_CRATE_2 CanBreakCrates
RC_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_UPPER_SMALL_CRATE CanBreakSmallCrates
//Exits
RR_WATER_TEMPLE_MQ_MAIN true
RR_WATER_TEMPLE_MQ_BEHIND_BLUE_SWITCH_3F (CanUse RG_LONGSHOT)
def RR_WATER_TEMPLE_MQ_BEHIND_BLUE_SWITCH_3F SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ Behind Blue Switch 2F
//Checks
RC_WATER_TEMPLE_MQ_GS_BEFORE_UPPER_WATER_SWITCH (CanGetEnemyDrop RE_GOLD_SKULLTULA)
//Exits
RR_WATER_TEMPLE_MQ_BEHIND_BLUE_SWITCH_2F true
RR_WATER_TEMPLE_MQ_HIGH_EMBLEM true
def RR_WATER_TEMPLE_MQ_STORAGE_ROOM SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ Storage Room
//Checks
RC_WATER_TEMPLE_MQ_STORAGE_ROOM_A_POT_1 CanBreakPots
RC_WATER_TEMPLE_MQ_STORAGE_ROOM_A_POT_2 CanBreakPots
RC_WATER_TEMPLE_MQ_STORAGE_ROOM_A_POT_3 CanBreakPots
@ -382,10 +461,12 @@ RC_WATER_TEMPLE_MQ_STORAGE_ROOM_A_SMALL_CRATE_1 CanBreakSmallCrates
RC_WATER_TEMPLE_MQ_STORAGE_ROOM_A_SMALL_CRATE_2 CanBreakSmallCrates
RC_WATER_TEMPLE_MQ_STORAGE_ROOM_A_SMALL_CRATE_3 CanBreakSmallCrates
RC_WATER_TEMPLE_MQ_STORAGE_ROOM_A_SMALL_CRATE_4 CanBreakSmallCrates
//Exits
RR_WATER_TEMPLE_MQ_MAIN (or (MQWaterLevel WL_LOW_OR_MID) (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 8)))
def RR_WATER_TEMPLE_MQ_LIZALFOS_HALLWAY SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ Lizalfos Hallway
//Checks
RC_WATER_TEMPLE_MQ_LIZALFOS_HALLWAY_WEST_POT CanBreakPots
RC_WATER_TEMPLE_MQ_LIZALFOS_HALLWAY_SOUTH_POT CanBreakPots
RC_WATER_TEMPLE_MQ_LIZALFOS_HALLWAY_SE_POT CanBreakPots
@ -397,12 +478,14 @@ RC_WATER_TEMPLE_MQ_LIZALFOS_HALLWAY_ROOM_CRATE_2 CanBreakCrates
RC_WATER_TEMPLE_MQ_LIZALFOS_HALLWAY_ROOM_CRATE_3 CanBreakCrates
RC_WATER_TEMPLE_MQ_LIZALFOS_HALLWAY_ROOM_CRATE_4 CanBreakCrates
RC_WATER_TEMPLE_MQ_LIZALFOS_HALLWAY_ROOM_CRATE_5 CanBreakCrates
//Exits
RR_WATER_TEMPLE_MQ_LIZALFOS_CAGE (and (MQWaterLevel WL_LOW_OR_MID) (CanUse RG_DINS_FIRE))
//this technically exists, but only complicates things, uncomment if some edge case/glitch can use RR_WATER_TEMPLE_MQ_LIZALFOS_HALLWAY to reach RR_WATER_TEMPLE_MQ_3F_CENTRAL, or if a void warp goes here
//RR_WATER_TEMPLE_MQ_3F_EAST_LEDGE (or (and (CanUse RG_HOOKSHOT) (or (HasItem RG_BRONZE_SCALE) (CanUse RG_IRON_BOOTS))) (and (MQWaterLevel WL_LOW_OR_MID) (CanUse RG_HOOKSHOT)) (and (MQWaterLevel WL_HIGH) (HasItem RG_BRONZE_SCALE)))
def RR_WATER_TEMPLE_MQ_LIZALFOS_CAGE SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ Lizalfos Cage
//Checks
RC_WATER_TEMPLE_MQ_GS_LIZALFOS_HALLWAY (CanKillEnemy RE_GOLD_SKULLTULA)
RC_WATER_TEMPLE_MQ_LIZALFOS_CAGE_SOUTH_POT CanBreakPots
RC_WATER_TEMPLE_MQ_LIZALFOS_CAGE_NORTH_POT CanBreakPots
@ -415,6 +498,7 @@ Invalid Region
//This room exists to hold the wonderitems that drop from the emblems here. Specifically this assumes you are standing on the final ledge
def RR_WATER_TEMPLE_MQ_WATERFALL SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple Waterfall
//Exits
RR_WATER_TEMPLE_MQ_3F_CENTRAL (and (SmallKeys SCENE_WATER_TEMPLE 1) (CanUse RG_LONGSHOT))
RR_WATER_TEMPLE_MQ_STALFOS_PIT true
RR_WATER_TEMPLE_MQ_STALFOS_PIT_POTS (or (and MQWaterStalfosPit (and IsAdult (CanUse RG_HOOKSHOT))) (CanUse RG_HOVER_BOOTS))
@ -422,7 +506,9 @@ RR_WATER_TEMPLE_MQ_STALFOS_PIT_UPPER (and MQWaterStalfosPit (CanUse RG_LONGSHOT)
def RR_WATER_TEMPLE_MQ_STALFOS_PIT SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ Stalfos Pit
//Events
MQWaterStalfosPit (or (and IsAdult (CanKillEnemy RE_STALFOS ED_CLOSE true 3 false true)) (and (CanUse RG_IRON_BOOTS) (and (CanUse RG_HOOKSHOT) (CanKillEnemy RE_STALFOS ED_BOMB_THROW true 3 false true))))
//Exits
RR_WATER_TEMPLE_MQ_WATERFALL (and MQWaterStalfosPit (and (CanUse RG_HOOKSHOT) (or IsAdult (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 8)))))
RR_WATER_TEMPLE_MQ_STALFOS_PIT_POTS (or (and IsAdult (CanUse RG_HOOKSHOT)) (and (CanUse RG_HOOKSHOT) (and (or IsAdult (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 8))) (or (CanUse RG_HOVER_BOOTS) MQWaterStalfosPit))))
RR_WATER_TEMPLE_MQ_STALFOS_PIT_UPPER (and MQWaterStalfosPit (and (or IsAdult (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 8))) (CanUse RG_HOOKSHOT)))
@ -430,12 +516,15 @@ RR_WATER_TEMPLE_MQ_STALFOS_PIT_UPPER (and MQWaterStalfosPit (and (or IsAdult (an
//also includes the suns fairy in the middle
def RR_WATER_TEMPLE_MQ_STALFOS_PIT_POTS SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ Stalfos Pit Pots
//Events
FairyPot true
NutPot true
//Checks
RC_WATER_TEMPLE_MQ_STALFOS_PIT_SOUTH_POT CanBreakPots
RC_WATER_TEMPLE_MQ_STALFOS_PIT_MIDDLE_POT CanBreakPots
RC_WATER_TEMPLE_MQ_STALFOS_PIT_NORTH_POT CanBreakPots
RC_WATER_TEMPLE_MQ_DARK_LINK_PILAR_SUN_FAIRY (CanUse RG_SUNS_SONG)
//Exits
RR_WATER_TEMPLE_MQ_WATERFALL (and MQWaterStalfosPit (or (CanUse RG_HOVER_BOOTS) (CanUse RG_LONGSHOT)))
RR_WATER_TEMPLE_MQ_STALFOS_PIT true
RR_WATER_TEMPLE_MQ_STALFOS_PIT_UPPER (and MQWaterStalfosPit (CanUse RG_HOOKSHOT))
@ -443,33 +532,43 @@ RR_WATER_TEMPLE_MQ_STALFOS_PIT_UPPER (and MQWaterStalfosPit (CanUse RG_HOOKSHOT)
//specifically the area past the spikes
def RR_WATER_TEMPLE_MQ_STALFOS_PIT_UPPER SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ Stalfos Pit Upper
//Checks
RC_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_1 CanBreakPots
RC_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_2 CanBreakPots
RC_WATER_TEMPLE_MQ_DARK_LINK_LEFT_STORM_FAIRY (CanUse RG_SONG_OF_STORMS)
RC_WATER_TEMPLE_MQ_DARK_LINK_RIGHT_SUN_FAIRY (CanUse RG_SUNS_SONG)
//Exits
RR_WATER_TEMPLE_MQ_STALFOS_PIT (or IsAdult TakeDamage)
RR_WATER_TEMPLE_MQ_STALFOS_PIT_POTS (or IsAdult TakeDamage)
RR_WATER_TEMPLE_MQ_AFTER_DARK_LINK (CanKillEnemy RE_DARK_LINK)
def RR_WATER_TEMPLE_MQ_AFTER_DARK_LINK SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ After Dark Link
//Events
FairyPot true
//Checks
RC_WATER_TEMPLE_MQ_AFTER_DARK_LINK_POT_1 CanBreakPots
RC_WATER_TEMPLE_MQ_AFTER_DARK_LINK_POT_2 CanBreakPots
//Exits
RR_WATER_TEMPLE_MQ_STALFOS_PIT_UPPER (CanKillEnemy RE_DARK_LINK)
RR_WATER_TEMPLE_MQ_RIVER_SKULL (and (CanUse RG_HOOKSHOT) (or (HasItem RG_BRONZE_SCALE) (or (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 8)) (CanUse RG_LONGSHOT))))
//if we can use hookshot, we are standing on the targets, otherwise assume we're in the water
def RR_WATER_TEMPLE_MQ_RIVER_SKULL SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ River Skull
//Checks
RC_WATER_TEMPLE_MQ_GS_RIVER (or (CanUse RG_LONGSHOT) (and (CanUse RG_IRON_BOOTS) (CanUse RG_HOOKSHOT)))
//Exits
RR_WATER_TEMPLE_MQ_RIVER_POTS (or (HasItem RG_BRONZE_SCALE) (CanUse RG_LONGSHOT))
def RR_WATER_TEMPLE_MQ_RIVER_POTS SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ River Pots
//Events
FairyPot true
//Checks
RC_WATER_TEMPLE_MQ_RIVER_POT_1 CanBreakPots
RC_WATER_TEMPLE_MQ_RIVER_POT_2 CanBreakPots
//Exits
RR_WATER_TEMPLE_MQ_RIVER_SKULL (or (CanUse RG_LONGSHOT) (and (CanUse RG_IRON_BOOTS) (and (>= WaterTimer 8) (CanUse RG_HOOKSHOT))))
//You don't need to swim for this if you put irons on in midair and hold forward while aiming for the tunnel with a tight angle, but if you miss you have to void unless you have a hook. It's only relevant with glitches anyway
RR_WATER_TEMPLE_MQ_DRAGON_ROOM_TUNNEL (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 16))
@ -478,8 +577,10 @@ RR_WATER_TEMPLE_MQ_DRAGON_ROOM_DOOR (or (HasItem RG_BRONZE_SCALE) (or (CanUse RG
def RR_WATER_TEMPLE_MQ_DRAGON_ROOM_DOOR SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ Dragon Room Door
//Checks
RC_WATER_TEMPLE_MQ_DRAGON_ROOM_DOOR_CRATE_1 CanBreakCrates
RC_WATER_TEMPLE_MQ_DRAGON_ROOM_DOOR_CRATE_2 CanBreakCrates
//Exits
RR_WATER_TEMPLE_MQ_RIVER_POTS (CanUse RG_LONGSHOT)
RR_WATER_TEMPLE_MQ_DRAGON_ROOM_TUNNEL (and (CanUse RG_IRON_BOOTS) (and (>= WaterTimer 16) (CanUse RG_HOOKSHOT)))
RR_WATER_TEMPLE_MQ_DRAGON_ROOM_ALCOVE (HasItem RG_SILVER_SCALE)
@ -488,29 +589,36 @@ RR_WATER_TEMPLE_MQ_BOSS_KEY_ROOM_SWITCH MQWaterDragonTorches
//This region assumes Iron boots to access
def RR_WATER_TEMPLE_MQ_DRAGON_ROOM_TUNNEL SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ Dragon Room Tunnel
//Checks
RC_WATER_TEMPLE_MQ_DRAGON_ROOM_SUBMERGED_CRATE_1 CanBreakCrates
RC_WATER_TEMPLE_MQ_DRAGON_ROOM_SUBMERGED_CRATE_2 CanBreakCrates
RC_WATER_TEMPLE_MQ_DRAGON_ROOM_SUBMERGED_CRATE_3 CanBreakCrates
RC_WATER_TEMPLE_MQ_DRAGON_ROOM_SUBMERGED_CRATE_4 CanBreakCrates
//Exits
RR_WATER_TEMPLE_MQ_RIVER_POTS (CanUse RG_LONGSHOT)
RR_WATER_TEMPLE_MQ_DRAGON_ROOM_ALCOVE (or (HasItem RG_BRONZE_SCALE) (CanUse RG_HOOKSHOT))
RR_WATER_TEMPLE_MQ_DRAGON_ROOM_DOOR (or (HasItem RG_BRONZE_SCALE) (CanUse RG_LONGSHOT))
def RR_WATER_TEMPLE_MQ_DRAGON_ROOM_ALCOVE SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ Dragon Room Alcove
//Events
MQWaterDragonTorches HasFireSource
//Checks
RC_WATER_TEMPLE_MQ_DRAGON_ROOM_TORCHES_CRATE_1 CanBreakCrates
RC_WATER_TEMPLE_MQ_DRAGON_ROOM_TORCHES_CRATE_2 CanBreakCrates
RC_WATER_TEMPLE_MQ_DRAGON_ROOM_TORCHES_SMALL_CRATE_1 CanBreakSmallCrates
RC_WATER_TEMPLE_MQ_DRAGON_ROOM_TORCHES_SMALL_CRATE_2 CanBreakSmallCrates
RC_WATER_TEMPLE_MQ_DRAGON_ROOM_TORCHES_SMALL_CRATE_3 CanBreakSmallCrates
//Exits
RR_WATER_TEMPLE_MQ_DRAGON_ROOM_TUNNEL (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 16))
RR_WATER_TEMPLE_MQ_DRAGON_ROOM_DOOR (HasItem RG_SILVER_SCALE)
def RR_WATER_TEMPLE_MQ_BOSS_KEY_ROOM_SWITCH SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ Boss Key Room Switch
//Checks
RC_WATER_TEMPLE_MQ_BOSS_KEY_POT CanBreakPots
RC_WATER_TEMPLE_MQ_BK_ROOM_UPPER_CRATE CanBreakCrates
//Exits
RR_WATER_TEMPLE_MQ_DRAGON_ROOM_DOOR true
RR_WATER_TEMPLE_MQ_BOSS_KEY_ROOM_PIT true
RR_WATER_TEMPLE_MQ_BOSS_KEY_ROOM_CHEST (and CanHitSwitch (Here (CanUse RG_DINS_FIRE)))
@ -518,15 +626,19 @@ RR_WATER_TEMPLE_MQ_BOSS_KEY_ROOM_CHEST (and CanHitSwitch (Here (CanUse RG_DINS_F
//this exists for the crates in preparation for clips through the grate
def RR_WATER_TEMPLE_MQ_BOSS_KEY_ROOM_PIT SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ Boss Key Room Pit
//Checks
RC_WATER_TEMPLE_MQ_BK_ROOM_LOWER_CRATE_1 CanBreakCrates
RC_WATER_TEMPLE_MQ_BK_ROOM_LOWER_CRATE_2 CanBreakCrates
RC_WATER_TEMPLE_MQ_BK_ROOM_LOWER_CRATE_3 CanBreakCrates
RC_WATER_TEMPLE_MQ_BK_ROOM_LOWER_CRATE_4 CanBreakCrates
//Exits
RR_WATER_TEMPLE_MQ_BOSS_KEY_ROOM_SWITCH (CanHitSwitch ED_BOOMERANG)
def RR_WATER_TEMPLE_MQ_BOSS_KEY_ROOM_CHEST SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ Boss Key Room Chest
//Checks
RC_WATER_TEMPLE_MQ_BOSS_KEY_CHEST true
//Exits
RR_WATER_TEMPLE_MQ_BOSS_KEY_ROOM_SWITCH (or (CanHitSwitch ED_BOMB_THROW) (CanUse RG_HOVER_BOOTS))
RR_WATER_TEMPLE_MQ_BOSS_KEY_ROOM_PIT true
RR_WATER_TEMPLE_MQ_B1_GATE_SWITCH (or (HasItem RG_SILVER_SCALE) (and (CanUse RG_IRON_BOOTS) (or (HasItem RG_BRONZE_SCALE) (and (>= WaterTimer 24) (CanUse RG_LONGSHOT)))))
@ -535,12 +647,15 @@ def RR_WATER_TEMPLE_MQ_B1_GATE_SWITCH SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ B1 Gate Switch
//If the water is low, the switch is underwater and needs irons to press, otherwise, the water is too low to climb up and you need irons to hookshot a target
//If a glitch clips through the gate on low, have it logically press the switch and let entrance logic enter
//Events
MQWaterB1Switch (CanUse RG_IRON_BOOTS)
//Exits
RR_WATER_TEMPLE_MQ_MAIN (and MQWaterB1Switch (or (MQWaterLevel WL_LOW) (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 16))))
RR_WATER_TEMPLE_MQ_BOSS_KEY_ROOM_CHEST (and (CanUse RG_IRON_BOOTS) (and (HasItem RG_BRONZE_SCALE) (or (MQWaterLevel WL_LOW) (>= WaterTimer 24))))
def RR_WATER_TEMPLE_MQ_TRIANGLE_TORCH_ROOM SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ Triangle Torch Room
//Checks
RC_WATER_TEMPLE_MQ_TRIPLE_TORCH_ROOM_SUBMERGED_CRATE_1 (and (CanUse RG_IRON_BOOTS) (and (>= WaterTimer 16) CanBreakCrates))
RC_WATER_TEMPLE_MQ_TRIPLE_TORCH_ROOM_SUBMERGED_CRATE_2 (and (CanUse RG_IRON_BOOTS) (and (>= WaterTimer 16) CanBreakCrates))
RC_WATER_TEMPLE_MQ_TRIPLE_TORCH_ROOM_SUBMERGED_CRATE_3 (and (CanUse RG_IRON_BOOTS) (and (>= WaterTimer 16) CanBreakCrates))
@ -548,11 +663,13 @@ RC_WATER_TEMPLE_MQ_TRIPLE_TORCH_ROOM_SUBMERGED_CRATE_4 (and (CanUse RG_IRON_BOOT
RC_WATER_TEMPLE_MQ_TRIPLE_TORCH_ROOM_SUBMERGED_CRATE_5 (and (CanUse RG_IRON_BOOTS) (and (>= WaterTimer 16) CanBreakCrates))
RC_WATER_TEMPLE_MQ_TRIPLE_TORCH_ROOM_SUBMERGED_CRATE_6 (and (CanUse RG_IRON_BOOTS) (and (>= WaterTimer 16) CanBreakCrates))
//we can backflip over the spikes, but land in water.
//Exits
RR_WATER_TEMPLE_MQ_MAIN (and MQWaterB1Switch (or (and (MQWaterLevel WL_LOW) (HasItem RG_GOLDEN_SCALE)) (and (CanUse RG_IRON_BOOTS) (and (>= WaterTimer 40) (or (HasItem RG_BRONZE_SCALE) (CanUse RG_LONGSHOT))))))
RR_WATER_TEMPLE_MQ_TRIANGLE_TORCH_CAGE (and (CanUse RG_FIRE_ARROWS) (or (and IsAdult (CanUse RG_HOVER_BOOTS)) (and (CanUse RG_LONGSHOT) (Here ScarecrowsSong))))
def RR_WATER_TEMPLE_MQ_TRIANGLE_TORCH_CAGE SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ Triangle Torch Cage
//Checks
RC_WATER_TEMPLE_MQ_GS_TRIPLE_WALL_TORCH (CanGetEnemyDrop RE_GOLD_SKULLTULA ED_BOOMERANG)
RC_WATER_TEMPLE_MQ_LOWEST_GS_POT_1 CanBreakPots
RC_WATER_TEMPLE_MQ_LOWEST_GS_POT_2 CanBreakPots
@ -564,6 +681,7 @@ RC_WATER_TEMPLE_MQ_TRIPLE_TORCH_ROOM_GATE_CRATE_2 CanBreakCrates
def RR_WATER_TEMPLE_MQ_CRATES_WHIRLPOOLS_ROOM SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ Crates Whirlpools Room
//Checks
RC_WATER_TEMPLE_MQ_WHIRLPOOL_FRONT_CRATE_1 CanBreakCrates
RC_WATER_TEMPLE_MQ_WHIRLPOOL_FRONT_CRATE_2 CanBreakCrates
RC_WATER_TEMPLE_MQ_WHIRLPOOL_SUBMERGED_CRATE_1 (and (CanUse RG_IRON_BOOTS) (and (>= WaterTimer 16) CanBreakCrates))
@ -572,6 +690,7 @@ RC_WATER_TEMPLE_MQ_WHIRLPOOL_SUBMERGED_CRATE_3 (and (CanUse RG_IRON_BOOTS) (and
RC_WATER_TEMPLE_MQ_WHIRLPOOL_SUBMERGED_CRATE_4 (and (CanUse RG_IRON_BOOTS) (and (>= WaterTimer 16) CanBreakCrates))
RC_WATER_TEMPLE_MQ_WHIRLPOOL_SUBMERGED_CRATE_5 (and (CanUse RG_IRON_BOOTS) (and (>= WaterTimer 16) CanBreakCrates))
RC_WATER_TEMPLE_MQ_WHIRLPOOL_SUBMERGED_CRATE_6 (and (CanUse RG_IRON_BOOTS) (and (>= WaterTimer 16) CanBreakCrates))
//Exits
RR_WATER_TEMPLE_MQ_MAIN (and MQWaterB1Switch (and (CanUse RG_IRON_BOOTS) (and (>= WaterTimer 24) (or (CanUse RG_LONGSHOT) (HasItem RG_BRONZE_SCALE)))))
//Child can use crate to get height to make it with hovers, but it's annoyingly tight so would be a trick
RR_WATER_TEMPLE_MQ_SINGLE_STALFOS_ROOM (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 8)
@ -583,6 +702,7 @@ RR_WATER_TEMPLE_MQ_CRATES_WHIRLPOOLS_CAGE (and RT_WATER_MQ_LOCKED_GS (and (CanUs
def RR_WATER_TEMPLE_MQ_SINGLE_STALFOS_ROOM SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ Single Stalfos Room
//Checks
RC_WATER_TEMPLE_MQ_FREESTANDING_KEY CanBreakCrates
RC_WATER_TEMPLE_MQ_STORAGE_ROOM_B_POT_1 CanBreakPots
RC_WATER_TEMPLE_MQ_STORAGE_ROOM_B_POT_2 CanBreakPots
@ -591,15 +711,18 @@ RC_WATER_TEMPLE_MQ_STORAGE_ROOM_B_CRATE_2 CanBreakCrates
RC_WATER_TEMPLE_MQ_STORAGE_ROOM_B_CRATE_3 CanBreakCrates
RC_WATER_TEMPLE_MQ_STORAGE_ROOM_B_CRATE_4 CanBreakCrates
RC_WATER_TEMPLE_MQ_STORAGE_ROOM_B_CRATE_5 CanBreakCrates
//Exits
RR_WATER_TEMPLE_MQ_CRATES_WHIRLPOOLS_ROOM (or (HasItem RG_SILVER_SCALE) (or (and IsChild (HasItem RG_BRONZE_SCALE)) (and (CanUse RG_IRON_BOOTS) (and (>= WaterTimer 8) (or (HasItem RG_BRONZE_SCALE) (CanUse RG_HOOKSHOT))))))
def RR_WATER_TEMPLE_MQ_4_TORCH_ROOM SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ 4 Torch Room
//Exits
RR_WATER_TEMPLE_MQ_CRATES_WHIRLPOOLS_ROOM (or (and IsAdult (or (CanUse RG_HOVER_BOOTS) CanJumpslash)) (or (HasItem RG_BRONZE_SCALE) (and (CanUse RG_IRON_BOOTS) (and (>= WaterTimer 8) (CanUse RG_HOOKSHOT)))))
RR_WATER_TEMPLE_MQ_DODONGO_ROOM (and CanHitSwitch HasFireSource)
def RR_WATER_TEMPLE_MQ_DODONGO_ROOM SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ Dodongo Room
//Checks
RC_WATER_TEMPLE_MQ_MINI_DODONGO_POT_1 CanBreakPots
RC_WATER_TEMPLE_MQ_MINI_DODONGO_POT_2 CanBreakPots
RC_WATER_TEMPLE_MQ_DODONGO_ROOM_UPPER_CRATE CanBreakCrates
@ -607,28 +730,35 @@ RC_WATER_TEMPLE_MQ_DODONGO_ROOM_HALL_CRATE CanBreakCrates
RC_WATER_TEMPLE_MQ_DODONGO_ROOM_LOWER_CRATE_1 CanBreakCrates
RC_WATER_TEMPLE_MQ_DODONGO_ROOM_LOWER_CRATE_2 CanBreakCrates
RC_WATER_TEMPLE_MQ_DODONGO_ROOM_LOWER_CRATE_3 CanBreakCrates
//Exits
RR_WATER_TEMPLE_MQ_4_TORCH_ROOM (and (or (CanUse RG_HOOKSHOT) (CanUse RG_HOVER_BOOTS)) (Here (CanKillEnemy RE_DODONGO ED_CLOSE true 5)))
RR_WATER_TEMPLE_MQ_CRATES_WHIRLPOOLS_CAGE (and (or (CanUse RG_HOOKSHOT) (CanUse RG_HOVER_BOOTS)) (Here (CanKillEnemy RE_DODONGO ED_CLOSE true 5)))
def RR_WATER_TEMPLE_MQ_CRATES_WHIRLPOOLS_CAGE SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ Basement Gated Areas
//Checks
RC_WATER_TEMPLE_MQ_GS_FREESTANDING_KEY_AREA (and (CanGetEnemyDrop RE_GOLD_SKULLTULA) CanBreakCrates)
RC_WATER_TEMPLE_MQ_WHIRLPOOL_BEHIND_GATE_CRATE_1 CanBreakCrates
RC_WATER_TEMPLE_MQ_WHIRLPOOL_BEHIND_GATE_CRATE_2 CanBreakCrates
RC_WATER_TEMPLE_MQ_WHIRLPOOL_BEHIND_GATE_CRATE_3 CanBreakCrates
RC_WATER_TEMPLE_MQ_WHIRLPOOL_BEHIND_GATE_CRATE_4 CanBreakCrates
//Exits
RR_WATER_TEMPLE_MQ_DODONGO_ROOM true
def RR_WATER_TEMPLE_BOSS_ENTRYWAY SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple Boss Entryway
//Exits
RR_WATER_TEMPLE_PRE_BOSS_ROOM (and (IsDungeonVanilla WATER_TEMPLE) false)
RR_WATER_TEMPLE_MQ_BOSS_DOOR (and (IsDungeonMQ WATER_TEMPLE) false)
RR_WATER_TEMPLE_BOSS_ROOM (HasItem RG_WATER_TEMPLE_BOSS_KEY)
def RR_WATER_TEMPLE_BOSS_ROOM SCENE_WATER_TEMPLE_BOSS false
Water Temple Boss Room
//Events
WaterTempleClear (CanKillEnemy RE_MORPHA)
//Checks
RC_WATER_TEMPLE_MORPHA_HEART WaterTempleClear
RC_MORPHA WaterTempleClear
//Exits
RR_WATER_TEMPLE_BOSS_ENTRYWAY false
RR_LAKE_HYLIA @deprioritize WaterTempleClear

View file

@ -3,20 +3,24 @@
//Temporarily uses SCENE_OUTSIDE_GANONS_CASTLE to avoid self connection between ages
def RR_CASTLE_GROUNDS SCENE_OUTSIDE_GANONS_CASTLE false RA_CASTLE_GROUNDS
Castle Grounds
//Exits
RR_THE_MARKET true
RR_HYRULE_CASTLE_GROUNDS IsChild
RR_GANONS_CASTLE_GROUNDS IsAdult
def RR_CASTLE_GROUNDS_FROM_GANONS_CASTLE SCENE_OUTSIDE_GANONS_CASTLE false RA_OUTSIDE_GANONS_CASTLE
Castle Grounds From Ganon's Castle
//Exits
RR_HYRULE_CASTLE_GROUNDS IsChild
RR_GANONS_CASTLE_LEDGE IsAdult
def RR_HYRULE_CASTLE_GROUNDS SCENE_HYRULE_CASTLE true RA_HYRULE_CASTLE
Hyrule Castle Grounds
//Events
GossipStoneFairy CallGossipFairy
ButterflyFairy (CanUse RG_STICKS)
BugRock true
//Checks
RC_HC_MALON_EGG true
RC_HC_GS_TREE (and IsChild (CanKillEnemy RE_GOLD_SKULLTULA ED_CLOSE))
RC_HC_MALON_GOSSIP_STONE_FAIRY CallGossipFairy
@ -27,6 +31,7 @@ RC_HC_MALON_GOSSIP_STONE true
RC_HC_ROCK_WALL_GOSSIP_STONE true
RC_HC_GRASS_1 CanCutShrubs
RC_HC_GRASS_2 CanCutShrubs
//Exits
RR_CASTLE_GROUNDS true
RR_HC_GARDEN (or (CanUse RG_WEIRD_EGG) (and RT_DAMAGE_BOOST_SIMPLE (and HasExplosives CanJumpslash)))
RR_HC_GREAT_FAIRY_FOUNTAIN BlastOrSmash
@ -34,26 +39,34 @@ RR_HC_STORMS_GROTTO CanOpenStormsGrotto
def RR_HC_GARDEN SCENE_CASTLE_COURTYARD_ZELDA false
HC Garden
//Checks
RC_HC_ZELDAS_LETTER true
RC_SONG_FROM_IMPA true
//Exits
RR_HYRULE_CASTLE_GROUNDS true
def RR_HC_GREAT_FAIRY_FOUNTAIN SCENE_GREAT_FAIRYS_FOUNTAIN_SPELLS false
HC Great Fairy Fountain
//Checks
RC_HC_GREAT_FAIRY_REWARD (CanUse RG_ZELDAS_LULLABY)
//Exits
RR_CASTLE_GROUNDS true
def RR_HC_STORMS_GROTTO SCENE_GROTTOS false
HC Storms Grotto
//Checks
RC_HC_GS_STORMS_GROTTO (and (CanUse RG_BOOMERANG) RT_HC_STORMS_GS)
//Exits
RR_CASTLE_GROUNDS true
RR_HC_STORMS_GROTTO_BEHIND_WALLS CanBreakMudWalls
def RR_HC_STORMS_GROTTO_BEHIND_WALLS SCENE_GROTTOS false
HC Storms Grotto Behind Walls
//Events
NutPot true
GossipStoneFairy CallGossipFairy
WanderingBugs true
//Checks
RC_HC_GS_STORMS_GROTTO HookshotOrBoomerang
RC_HC_STORMS_GROTTO_GOSSIP_STONE_FAIRY CallGossipFairy
RC_HC_STORMS_GROTTO_GOSSIP_STONE_FAIRY_BIG (CanUse RG_SONG_OF_STORMS)
@ -62,22 +75,29 @@ RC_HC_STORMS_GROTTO_POT_1 CanBreakPots
RC_HC_STORMS_GROTTO_POT_2 CanBreakPots
RC_HC_STORMS_GROTTO_POT_3 CanBreakPots
RC_HC_STORMS_GROTTO_POT_4 CanBreakPots
//Exits
RR_HC_STORMS_GROTTO true
def RR_GANONS_CASTLE_GROUNDS SCENE_OUTSIDE_GANONS_CASTLE false RA_OUTSIDE_GANONS_CASTLE
Ganon's Castle Grounds
//Events
BuiltRainbowBridge CanBuildRainbowBridge
//Checks
RC_OGC_GS (or CanJumpslashExceptHammer (or CanUseProjectile (or (and CanShield (CanUse RG_MEGATON_HAMMER)) (CanUse RG_DINS_FIRE))))
//Exits
RR_CASTLE_GROUNDS AtNight
RR_OGC_GREAT_FAIRY_FOUNTAIN (and (CanUse RG_GOLDEN_GAUNTLETS) AtNight)
RR_GANONS_CASTLE_LEDGE BuiltRainbowBridge
def RR_OGC_GREAT_FAIRY_FOUNTAIN SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC false
OGC Great Fairy Fountain
//Checks
RC_OGC_GREAT_FAIRY_REWARD (CanUse RG_ZELDAS_LULLABY)
//Exits
RR_CASTLE_GROUNDS true
def RR_GANONS_CASTLE_LEDGE SCENE_OUTSIDE_GANONS_CASTLE false RA_OUTSIDE_GANONS_CASTLE
Ganon's Castle Ledge
//Exits
RR_GANONS_CASTLE_GROUNDS BuiltRainbowBridge
RR_GANONS_CASTLE_ENTRYWAY IsAdult

View file

@ -1,12 +1,15 @@
def RR_DMC_UPPER_LOCAL SCENE_DEATH_MOUNTAIN_CRATER false RA_DEATH_MOUNTAIN_CRATER
DMC Upper Local
//Events
GossipStoneFairy (and HasExplosives (and CallGossipFairyExceptSuns (or (>= FireTimer 16) (>= Hearts 3))))
//Checks
RC_DMC_WALL_FREESTANDING_POH (or (>= FireTimer 16) (>= Hearts 3))
RC_DMC_GS_CRATE (and (or (>= FireTimer 8) (>= Hearts 3)) (and IsChild (and CanAttack CanBreakCrates)))
RC_DMC_GOSSIP_STONE_FAIRY (and CallGossipFairyExceptSuns (and HasExplosives (or (>= FireTimer 16) (>= Hearts 3))))
RC_DMC_GOSSIP_STONE_FAIRY_BIG (and (CanUse RG_SONG_OF_STORMS) (and HasExplosives (or (>= FireTimer 16) (>= Hearts 3))))
RC_DMC_GOSSIP_STONE (and HasExplosives (or (>= FireTimer 16) (>= Hearts 3)))
RC_DMC_CRATE (and (or (>= FireTimer 8) (>= Hearts 3)) (and IsChild CanBreakCrates))
//Exits
RR_DMC_UPPER_NEARBY true
RR_DMC_LADDER_AREA_NEARBY (or (>= FireTimer 16) (>= Hearts 3))
RR_DMC_CENTRAL_NEARBY (and IsAdult (and (CanUse RG_GORON_TUNIC) (and (CanUse RG_DISTANT_SCARECROW) (or (> EffectiveHealth 2) (or (and (CanUse RG_BOTTLE_WITH_FAIRY) (!= RSK_SHUFFLE_DUNGEON_ENTRANCES RO_DUNGEON_ENTRANCE_SHUFFLE_OFF)) (CanUse RG_NAYRUS_LOVE))))))
@ -15,7 +18,9 @@ RR_DMC_DISTANT_PLATFORM (or (and (>= FireTimer 48) (>= Hearts 2)) (>= Hearts 3))
def RR_DMC_CENTRAL_LOCAL SCENE_DEATH_MOUNTAIN_CRATER false RA_DEATH_MOUNTAIN_CRATER
DMC Central Local
//Events
BeanPlantFairy (and IsChild (and (CanUse RG_MAGIC_BEAN) (and (CanUse RG_SONG_OF_STORMS) (or (>= FireTimer 8) (>= Hearts 3)))))
//Checks
RC_DMC_GS_BEAN_PATCH (and (or (>= FireTimer 8) (>= Hearts 3)) (and CanSpawnSoilSkull CanAttack))
RC_DMC_NEAR_PLATFORM_RED_RUPEE IsChild
RC_DMC_MIDDLE_PLATFORM_RED_RUPEE (and IsChild (or (>= FireTimer 8) (>= Hearts 3)))
@ -28,6 +33,7 @@ RC_DMC_MIDDLE_PLATFORM_BLUE_RUPEE_6 (and IsChild (or (>= FireTimer 8) (>= Hearts
RC_DMC_BEAN_SPROUT_FAIRY_1 (and IsChild (and (CanUse RG_MAGIC_BEAN) (and (CanUse RG_SONG_OF_STORMS) (or (>= FireTimer 8) (>= Hearts 3)))))
RC_DMC_BEAN_SPROUT_FAIRY_2 (and IsChild (and (CanUse RG_MAGIC_BEAN) (and (CanUse RG_SONG_OF_STORMS) (or (>= FireTimer 8) (>= Hearts 3)))))
RC_DMC_BEAN_SPROUT_FAIRY_3 (and IsChild (and (CanUse RG_MAGIC_BEAN) (and (CanUse RG_SONG_OF_STORMS) (or (>= FireTimer 8) (>= Hearts 3)))))
//Exits
RR_DMC_CENTRAL_NEARBY true
RR_DMC_LOWER_NEARBY (or (and IsAdult (CanPlantBean RR_DMC_CENTRAL_LOCAL)) (or (CanUse RG_HOVER_BOOTS) (CanUse RG_HOOKSHOT)))
RR_DMC_UPPER_NEARBY (and IsAdult (CanPlantBean RR_DMC_CENTRAL_LOCAL))
@ -36,6 +42,7 @@ RR_DMC_DISTANT_PLATFORM (and (>= FireTimer 48) (CanUse RG_DISTANT_SCARECROW))
def RR_DMC_LOWER_LOCAL SCENE_DEATH_MOUNTAIN_CRATER false RA_DEATH_MOUNTAIN_CRATER
DMC Lower Local
//Exits
RR_DMC_LOWER_NEARBY true
RR_DMC_LADDER_AREA_NEARBY (or (>= FireTimer 8) (>= Hearts 3))
RR_DMC_CENTRAL_NEARBY (and (or (CanUse RG_HOVER_BOOTS) (CanUse RG_HOOKSHOT)) (or (>= FireTimer 8) (>= Hearts 3)))
@ -43,10 +50,12 @@ RR_DMC_CENTRAL_LOCAL (and (or (CanUse RG_HOVER_BOOTS) (or (CanUse RG_HOOKSHOT) (
def RR_DMC_LOWER_NEARBY SCENE_DEATH_MOUNTAIN_CRATER false RA_DEATH_MOUNTAIN_CRATER
DMC Lower Nearby
//Checks
RC_DMC_NEAR_GC_POT_1 CanBreakPots
RC_DMC_NEAR_GC_POT_2 CanBreakPots
RC_DMC_NEAR_GC_POT_3 CanBreakPots
RC_DMC_NEAR_GC_POT_4 CanBreakPots
//Exits
RR_DMC_LOWER_LOCAL (>= FireTimer 48)
RR_GC_DARUNIAS_CHAMBER true
RR_DMC_GREAT_FAIRY_FOUNTAIN (CanUse RG_MEGATON_HAMMER)
@ -54,28 +63,35 @@ RR_DMC_HAMMER_GROTTO (and IsAdult (CanUse RG_MEGATON_HAMMER))
def RR_DMC_UPPER_NEARBY SCENE_DEATH_MOUNTAIN_CRATER false RA_DEATH_MOUNTAIN_CRATER
DMC Upper Nearby
//Exits
RR_DMC_UPPER_LOCAL (>= FireTimer 48)
RR_DEATH_MOUNTAIN_SUMMIT true
RR_DMC_UPPER_GROTTO (Here (and BlastOrSmash (or (>= FireTimer 8) (>= Hearts 3))))
def RR_DMC_CENTRAL_NEARBY SCENE_DEATH_MOUNTAIN_CRATER false RA_DEATH_MOUNTAIN_CRATER
DMC Central Nearby
//Checks
RC_DMC_VOLCANO_FREESTANDING_POH (and IsAdult (and (>= Hearts 3) (or (CanPlantBean RR_DMC_CENTRAL_LOCAL) (and RT_DMC_HOVER_BEAN_POH (CanUse RG_HOVER_BOOTS)))))
RC_SHEIK_IN_CRATER (and IsAdult (or (>= FireTimer 8) (>= Hearts 3)))
//Exits
RR_DMC_CENTRAL_LOCAL (>= FireTimer 48)
def RR_DMC_LADDER_AREA_NEARBY SCENE_DEATH_MOUNTAIN_CRATER false RA_DEATH_MOUNTAIN_CRATER
DMC Ladder Region Nearby
//Checks
RC_DMC_DEKU_SCRUB (and IsChild CanStunDeku)
//Exits
RR_DMC_UPPER_NEARBY (>= Hearts 3)
RR_DMC_LOWER_NEARBY (and (>= Hearts 3) (or (CanUse RG_HOVER_BOOTS) (or (and RT_DMC_BOULDER_JS (and IsAdult (CanUse RG_MEGATON_HAMMER))) (and RT_DMC_BOULDER_SKIP IsAdult))))
def RR_DMC_UPPER_GROTTO SCENE_GROTTOS false
DMC Upper Grotto
//Events
GossipStoneFairy CallGossipFairy
ButterflyFairy (CanUse RG_STICKS)
BugShrub CanCutShrubs
LoneFish true
//Checks
RC_DMC_UPPER_GROTTO_CHEST true
RC_DMC_UPPER_GROTTO_FISH HasBottle
RC_DMC_UPPER_GROTTO_GOSSIP_STONE_FAIRY CallGossipFairy
@ -87,23 +103,29 @@ RC_DMC_UPPER_GROTTO_GRASS_1 CanCutShrubs
RC_DMC_UPPER_GROTTO_GRASS_2 CanCutShrubs
RC_DMC_UPPER_GROTTO_GRASS_3 CanCutShrubs
RC_DMC_UPPER_GROTTO_GRASS_4 CanCutShrubs
//Exits
RR_DMC_UPPER_LOCAL true
def RR_DMC_HAMMER_GROTTO SCENE_GROTTOS false
DMC Hammer Grotto
//Checks
RC_DMC_DEKU_SCRUB_GROTTO_LEFT CanStunDeku
RC_DMC_DEKU_SCRUB_GROTTO_RIGHT CanStunDeku
RC_DMC_DEKU_SCRUB_GROTTO_CENTER CanStunDeku
RC_DMC_HAMMER_GROTTO_BEEHIVE CanBreakUpperBeehives
//Exits
RR_DMC_LOWER_LOCAL true
def RR_DMC_GREAT_FAIRY_FOUNTAIN SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC false
DMC Great Fairy Fountain
//Checks
RC_DMC_GREAT_FAIRY_REWARD (CanUse RG_ZELDAS_LULLABY)
//Exits
RR_DMC_LOWER_LOCAL true
def RR_DMC_DISTANT_PLATFORM SCENE_DEATH_MOUNTAIN_CRATER false RA_DEATH_MOUNTAIN_CRATER
DMC Distant Platform
//Checks
RC_DMC_DISTANT_PLATFORM_GREEN_RUPEE_1 IsAdult
RC_DMC_DISTANT_PLATFORM_GREEN_RUPEE_2 IsAdult
RC_DMC_DISTANT_PLATFORM_GREEN_RUPEE_3 IsAdult
@ -111,4 +133,5 @@ RC_DMC_DISTANT_PLATFORM_GREEN_RUPEE_4 IsAdult
RC_DMC_DISTANT_PLATFORM_GREEN_RUPEE_5 IsAdult
RC_DMC_DISTANT_PLATFORM_GREEN_RUPEE_6 IsAdult
RC_DMC_DISTANT_PLATFORM_RED_RUPEE IsAdult
//Exits
RR_DMC_CENTRAL_LOCAL (and (>= FireTimer 48) (CanUse RG_DISTANT_SCARECROW))

View file

@ -1,6 +1,8 @@
def RR_DEATH_MOUNTAIN_TRAIL SCENE_DEATH_MOUNTAIN_TRAIL true RA_DEATH_MOUNTAIN_TRAIL
Death Mountain
//Events
BeanPlantFairy (and IsChild (and (CanUse RG_MAGIC_BEAN) (and (CanUse RG_SONG_OF_STORMS) (or HasExplosives (HasItem RG_GORONS_BRACELET)))))
//Checks
RC_DMT_CHEST (or BlastOrSmash (and RT_DMT_BOMBABLE (and IsChild (HasItem RG_GORONS_BRACELET))))
RC_DMT_FREESTANDING_POH (or TakeDamage (or (CanUse RG_HOVER_BOOTS) (and IsAdult (and (CanPlantBean RR_DEATH_MOUNTAIN_TRAIL) (or HasExplosives (HasItem RG_GORONS_BRACELET))))))
RC_DMT_GS_BEAN_PATCH (and CanSpawnSoilSkull (or HasExplosives (or (HasItem RG_GORONS_BRACELET) (and RT_DMT_SOIL_GS (and (or TakeDamage (CanUse RG_HOVER_BOOTS)) (CanUse RG_BOOMERANG))))))
@ -12,6 +14,7 @@ RC_DMT_BEAN_SPROUT_FAIRY_1 (and IsChild (and (CanUse RG_MAGIC_BEAN) (and (CanUse
RC_DMT_BEAN_SPROUT_FAIRY_2 (and IsChild (and (CanUse RG_MAGIC_BEAN) (and (CanUse RG_SONG_OF_STORMS) (or HasExplosives (HasItem RG_GORONS_BRACELET)))))
RC_DMT_BEAN_SPROUT_FAIRY_3 (and IsChild (and (CanUse RG_MAGIC_BEAN) (and (CanUse RG_SONG_OF_STORMS) (or HasExplosives (HasItem RG_GORONS_BRACELET)))))
RC_DMT_FLAG_SUN_FAIRY (CanUse RG_SUNS_SONG)
//Exits
RR_KAK_BEHIND_GATE true
RR_GORON_CITY true
RR_DEATH_MOUNTAIN_SUMMIT (or (Here BlastOrSmash) (and IsAdult (or (and (CanPlantBean RR_DEATH_MOUNTAIN_TRAIL) (HasItem RG_GORONS_BRACELET)) (and (CanUse RG_HOVER_BOOTS) RT_DMT_CLIMB_HOVERS))))
@ -20,8 +23,10 @@ RR_DMT_STORMS_GROTTO CanOpenStormsGrotto
def RR_DEATH_MOUNTAIN_SUMMIT SCENE_DEATH_MOUNTAIN_TRAIL true RA_DEATH_MOUNTAIN_TRAIL
Death Mountain Summit
//Events
GossipStoneFairy CallGossipFairy
BugRock IsChild
//Checks
RC_DMT_TRADE_BROKEN_SWORD (and IsAdult (CanUse RG_BROKEN_SWORD))
RC_DMT_TRADE_EYEDROPS (and IsAdult (CanUse RG_EYEDROPS))
RC_DMT_TRADE_CLAIM_CHECK (and IsAdult (CanUse RG_CLAIM_CHECK))
@ -29,6 +34,7 @@ RC_DMT_GS_FALLING_ROCKS_PATH (and IsAdult (and AtNight (and (or (CanUse RG_MEGAT
RC_DMT_GOSSIP_STONE_FAIRY CallGossipFairy
RC_DMT_GOSSIP_STONE_FAIRY_BIG (CanUse RG_SONG_OF_STORMS)
RC_DMT_GOSSIP_STONE true
//Exits
RR_DEATH_MOUNTAIN_TRAIL true
RR_DMC_UPPER_LOCAL true
RR_DMT_OWL_FLIGHT IsChild
@ -37,15 +43,19 @@ RR_DMT_GREAT_FAIRY_FOUNTAIN (Here BlastOrSmash)
def RR_DMT_OWL_FLIGHT SCENE_DEATH_MOUNTAIN_TRAIL true RA_DEATH_MOUNTAIN_TRAIL
DMT Owl Flight
//Exits
RR_KAK_IMPAS_ROOFTOP true
def RR_DMT_GREAT_FAIRY_FOUNTAIN SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC false
DMT Great Fairy Fountain
//Checks
RC_DMT_GREAT_FAIRY_REWARD (CanUse RG_ZELDAS_LULLABY)
//Exits
RR_DEATH_MOUNTAIN_SUMMIT true
def RR_DMT_COW_GROTTO SCENE_GROTTOS false
DMT Cow Grotto
//Checks
RC_DMT_COW_GROTTO_COW (CanUse RG_EPONAS_SONG)
RC_DMT_COW_GROTTO_BEEHIVE CanBreakLowerBeehives
RC_DMT_COW_GROTTO_LEFT_HEART true
@ -62,14 +72,17 @@ RC_DMT_COW_GROTTO_RED_RUPEE true
RC_DMT_COW_GROTTO_STORMS_FAIRY (CanUse RG_SONG_OF_STORMS)
RC_DMT_COW_GROTTO_GRASS_1 CanCutShrubs
RC_DMT_COW_GROTTO_GRASS_2 CanCutShrubs
//Exits
RR_DEATH_MOUNTAIN_SUMMIT true
def RR_DMT_STORMS_GROTTO SCENE_GROTTOS false
DMT Storms Grotto
//Events
GossipStoneFairy CallGossipFairy
ButterflyFairy (CanUse RG_STICKS)
BugShrub CanCutShrubs
LoneFish true
//Checks
RC_DMT_STORMS_GROTTO_CHEST true
RC_DMT_STORMS_GROTTO_FISH HasBottle
RC_DMT_STORMS_GROTTO_GOSSIP_STONE_FAIRY CallGossipFairy
@ -81,4 +94,5 @@ RC_DMT_STORMS_GROTTO_GRASS_1 CanCutShrubs
RC_DMT_STORMS_GROTTO_GRASS_2 CanCutShrubs
RC_DMT_STORMS_GROTTO_GRASS_3 CanCutShrubs
RC_DMT_STORMS_GROTTO_GRASS_4 CanCutShrubs
//Exits
RR_DEATH_MOUNTAIN_TRAIL true

View file

@ -1,7 +1,9 @@
def RR_DESERT_COLOSSUS SCENE_DESERT_COLOSSUS true RA_DESERT_COLOSSUS
Desert Colossus
//Events
FairyPond (CanUse RG_SONG_OF_STORMS)
BugRock true
//Checks
RC_COLOSSUS_FREESTANDING_POH (and IsAdult (CanPlantBean RR_DESERT_COLOSSUS))
RC_COLOSSUS_GS_BEAN_PATCH (and CanSpawnSoilSkull CanAttack)
RC_COLOSSUS_GS_TREE (and IsAdult (and HookshotOrBoomerang CanGetNightTimeGS))
@ -13,6 +15,7 @@ RC_COLOSSUS_GOSSIP_STONE_FAIRY CallGossipFairy
RC_COLOSSUS_GOSSIP_STONE_FAIRY_BIG (CanUse RG_SONG_OF_STORMS)
RC_COLOSSUS_GOSSIP_STONE true
//You can kinda get the fairies without entering the water, but it relies on them cooperating and leevers are jerks. should be a trick
//Exits
RR_DESERT_COLOSSUS_OASIS (and (CanUse RG_SONG_OF_STORMS) (or (HasItem RG_BRONZE_SCALE) (CanUse RG_IRON_BOOTS)))
RR_COLOSSUS_GREAT_FAIRY_FOUNTAIN HasExplosives
RR_SPIRIT_TEMPLE_ENTRYWAY true
@ -22,7 +25,9 @@ RR_COLOSSUS_GROTTO (CanUse RG_SILVER_GAUNTLETS)
//specifically the full oasis, after the fairies have spawned
def RR_DESERT_COLOSSUS_OASIS SCENE_DESERT_COLOSSUS true RA_DESERT_COLOSSUS
Desert Colossus Oasis
//Events
FairyPond true
//Checks
RC_COLOSSUS_OASIS_FAIRY_1 true
RC_COLOSSUS_OASIS_FAIRY_2 true
RC_COLOSSUS_OASIS_FAIRY_3 true
@ -31,21 +36,28 @@ RC_COLOSSUS_OASIS_FAIRY_5 true
RC_COLOSSUS_OASIS_FAIRY_6 true
RC_COLOSSUS_OASIS_FAIRY_7 true
RC_COLOSSUS_OASIS_FAIRY_8 true
//Exits
RR_DESERT_COLOSSUS true
def RR_DESERT_COLOSSUS_OUTSIDE_TEMPLE SCENE_DESERT_COLOSSUS true RA_DESERT_COLOSSUS
Desert Colossus From Spirit Entryway
//Checks
RC_SHEIK_AT_COLOSSUS true
//Exits
RR_DESERT_COLOSSUS true
def RR_COLOSSUS_GREAT_FAIRY_FOUNTAIN SCENE_GREAT_FAIRYS_FOUNTAIN_SPELLS false
Colossus Great Fairy Fountain
//Checks
RC_COLOSSUS_GREAT_FAIRY_REWARD (CanUse RG_ZELDAS_LULLABY)
//Exits
RR_DESERT_COLOSSUS true
def RR_COLOSSUS_GROTTO SCENE_GROTTOS false
Colossus Grotto
//Checks
RC_COLOSSUS_DEKU_SCRUB_GROTTO_REAR CanStunDeku
RC_COLOSSUS_DEKU_SCRUB_GROTTO_FRONT CanStunDeku
RC_COLOSSUS_GROTTO_BEEHIVE CanBreakUpperBeehives
//Exits
RR_DESERT_COLOSSUS true

View file

@ -1,8 +1,11 @@
def RR_GF_OUTSKIRTS SCENE_GERUDOS_FORTRESS false RA_GERUDO_FORTRESS
Gerudo Fortress Outskirts
//Events
GF_GateOpen (and IsAdult (HasItem RG_GERUDO_MEMBERSHIP_CARD))
//Checks
RC_GF_OUTSKIRTS_NE_CRATE (and (or IsChild (CanPassEnemy RE_GERUDO_GUARD)) CanBreakCrates)
RC_GF_OUTSKIRTS_NW_CRATE (or IsChild (CanPassEnemy RE_GERUDO_GUARD))
//Exits
RR_GV_FORTRESS_SIDE true
RR_TH_1_TORCH_CELL true
RR_GF_OUTSIDE_GATE GF_GateOpen
@ -13,10 +16,12 @@ RR_GF_JAIL_WINDOW (CanUse RG_HOOKSHOT)
def RR_GF_NEAR_GROTTO SCENE_GERUDOS_FORTRESS false RA_GERUDO_FORTRESS
GF Near Grotto
//Checks
RC_GF_SOUTHMOST_CENTER_CRATE CanBreakCrates
RC_GF_MID_SOUTH_CENTER_CRATE CanBreakCrates
RC_GF_MID_NORTH_CENTER_CRATE CanBreakCrates
RC_GF_NORTHMOST_CENTER_CRATE CanBreakCrates
//Exits
RR_TH_1_TORCH_CELL true
RR_TH_STEEP_SLOPE_CELL true
RR_TH_KITCHEN_CORRIDOR true
@ -28,7 +33,9 @@ RR_GF_STORMS_GROTTO (and IsAdult CanOpenStormsGrotto)
def RR_GF_OUTSIDE_GTG SCENE_GERUDOS_FORTRESS false RA_GERUDO_FORTRESS
GF Outside GTG
//Events
GtG_GateOpen (and IsAdult (and (HasItem RG_GERUDO_MEMBERSHIP_CARD) (HasItem RG_CHILD_WALLET)))
//Exits
RR_GF_TO_GTG (and GtG_GateOpen (or IsAdult RSK_SHUFFLE_DUNGEON_ENTRANCES))
RR_GF_JAIL_WINDOW (CanUse RG_HOOKSHOT)
RR_GF_OUTSKIRTS true
@ -39,16 +46,19 @@ RR_GF_HBA_RANGE (or IsChild (HasItem RG_GERUDO_MEMBERSHIP_CARD))
def RR_GF_TO_GTG SCENE_GERUDOS_FORTRESS false RA_GERUDO_FORTRESS
GF to GTG
//Exits
RR_GERUDO_TRAINING_GROUND_ENTRYWAY true
def RR_GF_EXITING_GTG SCENE_GERUDOS_FORTRESS false RA_GERUDO_FORTRESS
GF Exiting GTG
//Exits
RR_GF_OUTSIDE_GTG (or IsChild (HasItem RG_GERUDO_MEMBERSHIP_CARD))
RR_GF_JAIL_WINDOW (CanUse RG_HOOKSHOT)
RR_GF_OUTSKIRTS true
def RR_GF_ABOVE_GTG SCENE_GERUDOS_FORTRESS false RA_GERUDO_FORTRESS
GF Above GTG
//Exits
RR_TH_DOUBLE_CELL true
RR_TH_KITCHEN_CORRIDOR true
RR_GF_JAIL_WINDOW (CanUse RG_HOOKSHOT)
@ -59,6 +69,7 @@ RR_GF_BOTTOM_OF_LOWER_VINES (!= RT_GF_JUMP 0)
def RR_GF_BOTTOM_OF_LOWER_VINES SCENE_GERUDOS_FORTRESS false RA_GERUDO_FORTRESS
GF Bottom of Lower Vines
//Exits
RR_TH_STEEP_SLOPE_CELL true
RR_GF_NEAR_GROTTO true
RR_GF_TOP_OF_LOWER_VINES true
@ -66,6 +77,7 @@ RR_GF_ABOVE_GTG true
def RR_GF_TOP_OF_LOWER_VINES SCENE_GERUDOS_FORTRESS false RA_GERUDO_FORTRESS
GF Top of Lower Vines
//Exits
RR_TH_KITCHEN_TOP true
RR_TH_DOUBLE_CELL true
RR_GF_ABOVE_GTG true
@ -75,7 +87,9 @@ RR_GF_BOTTOM_OF_UPPER_VINES (and IsAdult RT_GF_JUMP)
def RR_GF_NEAR_GS SCENE_GERUDOS_FORTRESS false RA_GERUDO_FORTRESS
GF Near GS
//if RR_GF_SLOPED_ROOF > RR_GF_TOP_OF_UPPER_VINES is ever made part of RT_GF_JUMP, climb is needed to get back up
//Checks
RC_GF_GS_TOP_FLOOR (and IsAdult (and (CanGetEnemyDrop RE_GOLD_SKULLTULA ED_BOMB_THROW) CanGetNightTimeGS))
//Exits
RR_TH_KITCHEN_TOP true
RR_GF_BOTTOM_OF_LOWER_VINES true
RR_GF_TOP_OF_LOWER_VINES true
@ -86,6 +100,7 @@ RR_GF_BELOW_GS true
def RR_GF_SLOPED_ROOF SCENE_GERUDOS_FORTRESS false RA_GERUDO_FORTRESS
GF Sloped Roof
//Exits
RR_GF_TOP_OF_LOWER_VINES true
RR_GF_NEAR_GS true
RR_GF_BOTTOM_OF_UPPER_VINES true
@ -93,6 +108,7 @@ RR_GF_TOP_OF_UPPER_VINES (and IsAdult RT_GF_JUMP)
def RR_GF_BOTTOM_OF_UPPER_VINES SCENE_GERUDOS_FORTRESS false RA_GERUDO_FORTRESS
GF Bottom of Upper Vines
//Exits
RR_GF_OUTSIDE_GTG true
RR_GF_TOP_OF_LOWER_VINES true
RR_GF_SLOPED_ROOF (and IsAdult (CanUse RG_HOVER_BOOTS))
@ -101,7 +117,9 @@ RR_GF_TO_GTG (and IsAdult RT_GF_LEDGE_CLIP_INTO_GTG)
def RR_GF_TOP_OF_UPPER_VINES SCENE_GERUDOS_FORTRESS false RA_GERUDO_FORTRESS
GF Top of Upper Vines
//Checks
RC_GF_GS_TOP_FLOOR (and IsAdult (and (CanGetEnemyDrop RE_GOLD_SKULLTULA ED_SHORT_JUMPSLASH) CanGetNightTimeGS))
//Exits
RR_GF_TOP_OF_LOWER_VINES true
RR_GF_SLOPED_ROOF true
RR_GF_BOTTOM_OF_UPPER_VINES true
@ -109,13 +127,16 @@ RR_GF_NEAR_CHEST (or (CanUse RG_HOVER_BOOTS) (or (and IsAdult (and (CanUse RG_SC
def RR_GF_NEAR_CHEST SCENE_GERUDOS_FORTRESS false RA_GERUDO_FORTRESS
GF Near Chest
//Checks
RC_GF_CHEST true
RC_GF_GS_TOP_FLOOR (and IsAdult (and (CanGetEnemyDrop RE_GOLD_SKULLTULA ED_BOOMERANG) CanGetNightTimeGS))
//Exits
RR_GF_NEAR_GS true
RR_GF_LONG_ROOF true
def RR_GF_LONG_ROOF SCENE_GERUDOS_FORTRESS false RA_GERUDO_FORTRESS
GF Long Roof
//Exits
RR_GF_BOTTOM_OF_LOWER_VINES true
//hookshot to cross using the rafters is implied in logic->CanPassEnemy(RE_GERUDO_GUARD)
RR_GF_NEAR_GS (or (and IsAdult RT_GF_JUMP) (CanUse RG_HOVER_BOOTS))
@ -125,17 +146,21 @@ RR_GF_BELOW_CHEST true
def RR_GF_BELOW_GS SCENE_GERUDOS_FORTRESS false RA_GERUDO_FORTRESS
GF Below GS
//Checks
RC_GF_GS_TOP_FLOOR (and IsAdult (and (CanGetEnemyDrop RE_GOLD_SKULLTULA ED_LONGSHOT) CanGetNightTimeGS))
//Exits
RR_TH_DEAD_END_CELL true
RR_GF_BOTTOM_OF_LOWER_VINES true
def RR_GF_BELOW_CHEST SCENE_GERUDOS_FORTRESS false RA_GERUDO_FORTRESS
GF Below Chest
//Exits
RR_TH_BREAK_ROOM true
RR_GF_OUTSKIRTS true
def RR_GF_HBA_RANGE SCENE_GERUDOS_FORTRESS false RA_GERUDO_FORTRESS
GF HBA Range
//Checks
RC_GF_HBA_1000_POINTS (and IsAdult (and (HasItem RG_CHILD_WALLET) (and (HasItem RG_GERUDO_MEMBERSHIP_CARD) (and (CanUse RG_EPONA) (and (CanUse RG_FAIRY_BOW) AtDay)))))
RC_GF_HBA_1500_POINTS (and IsAdult (and (HasItem RG_CHILD_WALLET) (and (HasItem RG_GERUDO_MEMBERSHIP_CARD) (and (CanUse RG_EPONA) (and (CanUse RG_FAIRY_BOW) AtDay)))))
RC_GF_HBA_RANGE_GS (and IsAdult (and (CanGetEnemyDrop RE_GOLD_SKULLTULA ED_BOOMERANG) CanGetNightTimeGS))
@ -154,13 +179,16 @@ RC_GF_NORTH_TARGET_WEST_CRATE (or IsAdult (or BlastOrSmash (or HookshotOrBoomera
RC_GF_NORTH_TARGET_CHILD_CRATE (and IsChild BlastOrSmash)
RC_GF_SOUTH_TARGET_EAST_CRATE CanBreakCrates
RC_GF_SOUTH_TARGET_WEST_CRATE CanBreakCrates
//Exits
RR_GF_OUTSIDE_GTG (or IsChild (HasItem RG_GERUDO_MEMBERSHIP_CARD))
def RR_GF_ABOVE_JAIL SCENE_GERUDOS_FORTRESS false RA_GERUDO_FORTRESS
GF Above Jail
//Checks
RC_GF_ABOVE_JAIL_CRATE true
//you don't take fall damage if you land on the rock with the flag on for some reason
//there's a trick to reach RR_GF_LONG_ROOF but that's too intricate for GF_JUMP
//Exits
RR_GF_OUTSKIRTS (!= RT_GF_JUMP 0)
RR_GF_NEAR_CHEST (CanUse RG_LONGSHOT)
RR_GF_BELOW_CHEST TakeDamage
@ -169,18 +197,23 @@ RR_GF_JAIL_WINDOW (CanUse RG_HOOKSHOT)
def RR_GF_JAIL_WINDOW SCENE_GERUDOS_FORTRESS false RA_GERUDO_FORTRESS
GF Jail Window
//There's a trick where hovers backwalk into backflip gives access to RR_GF_LONG_ROOF from here
//Exits
RR_GF_OUTSKIRTS true
RR_GF_BELOW_CHEST true
def RR_GF_OUTSIDE_GATE SCENE_GERUDOS_FORTRESS false RA_GERUDO_FORTRESS
GF Outside Gate
//Events
GF_GateOpen (and IsAdult (HasItem RG_GERUDO_MEMBERSHIP_CARD))
//Exits
RR_GF_OUTSKIRTS GF_GateOpen
RR_WASTELAND_NEAR_FORTRESS true
def RR_GF_STORMS_GROTTO SCENE_GROTTOS false
GF Storms Grotto
//Events
FreeFairies true
//Checks
RC_GF_FAIRY_GROTTO_FAIRY_1 true
RC_GF_FAIRY_GROTTO_FAIRY_2 true
RC_GF_FAIRY_GROTTO_FAIRY_3 true
@ -189,4 +222,5 @@ RC_GF_FAIRY_GROTTO_FAIRY_5 true
RC_GF_FAIRY_GROTTO_FAIRY_6 true
RC_GF_FAIRY_GROTTO_FAIRY_7 true
RC_GF_FAIRY_GROTTO_FAIRY_8 true
//Exits
RR_GF_NEAR_GROTTO true

View file

@ -1,7 +1,10 @@
def RR_GERUDO_VALLEY SCENE_GERUDO_VALLEY true RA_GERUDO_VALLEY
Gerudo Valley
//Events
BugRock IsChild
//Checks
RC_GV_GS_SMALL_BRIDGE (and IsChild (and HookshotOrBoomerang CanGetNightTimeGS))
//Exits
RR_HYRULE_FIELD true
RR_GV_UPPER_STREAM (or IsChild (or (HasItem RG_BRONZE_SCALE) TakeDamage))
RR_GV_CRATE_LEDGE (or IsChild (CanUse RG_LONGSHOT))
@ -12,9 +15,11 @@ RR_GV_LOWER_STREAM IsChild
def RR_GV_UPPER_STREAM SCENE_GERUDO_VALLEY true RA_GERUDO_VALLEY
GV Upper Stream
//Events
GossipStoneFairy CallGossipFairy
BeanPlantFairy (and IsChild (and (CanUse RG_MAGIC_BEAN) (CanUse RG_SONG_OF_STORMS)))
//can use cucco as child
//Checks
RC_GV_WATERFALL_FREESTANDING_POH (or IsChild (HasItem RG_BRONZE_SCALE))
RC_GV_GS_BEAN_PATCH (and CanSpawnSoilSkull CanAttack)
RC_GV_COW (and IsChild (CanUse RG_EPONAS_SONG))
@ -25,14 +30,17 @@ RC_GV_GOSSIP_STONE_FAIRY CallGossipFairy
RC_GV_GOSSIP_STONE_FAIRY_BIG (CanUse RG_SONG_OF_STORMS)
RC_GV_GOSSIP_STONE true
RC_GV_NEAR_COW_CRATE (and IsChild CanBreakCrates)
//Exits
RR_GV_LOWER_STREAM (or (HasItem RG_BRONZE_SCALE) (CanUse RG_IRON_BOOTS))
def RR_GV_LOWER_STREAM SCENE_GERUDO_VALLEY true RA_GERUDO_VALLEY
GV Lower Stream
//Exits
RR_LAKE_HYLIA true
def RR_GV_GROTTO_LEDGE SCENE_GERUDO_VALLEY true RA_GERUDO_VALLEY
GV Grotto Ledge
//Exits
RR_GV_UPPER_STREAM (and RT_DAMAGE_BOOST_SIMPLE HasExplosives)
RR_GV_LOWER_STREAM (or (HasItem RG_BRONZE_SCALE) (CanUse RG_IRON_BOOTS))
RR_GV_OCTOROK_GROTTO (CanUse RG_SILVER_GAUNTLETS)
@ -40,13 +48,16 @@ RR_GV_CRATE_LEDGE (CanUse RG_LONGSHOT)
def RR_GV_CRATE_LEDGE SCENE_GERUDO_VALLEY true RA_GERUDO_VALLEY
GV Crate Ledge
//Checks
RC_GV_CRATE_FREESTANDING_POH CanBreakCrates
RC_GV_FREESTANDING_POH_CRATE CanBreakCrates
//Exits
RR_GV_UPPER_STREAM (and RT_DAMAGE_BOOST_SIMPLE HasExplosives)
RR_GV_LOWER_STREAM (or (HasItem RG_BRONZE_SCALE) (CanUse RG_IRON_BOOTS))
def RR_GV_OCTOROK_GROTTO SCENE_GROTTOS false
GV Octorok Grotto
//Checks
RC_GV_OCTOROK_GROTTO_FRONT_LEFT_BLUE_RUPEE (or (HasItem RG_BRONZE_SCALE) (or (CanUse RG_IRON_BOOTS) (CanUse RG_BOOMERANG)))
RC_GV_OCTOROK_GROTTO_FRONT_RIGHT_BLUE_RUPEE (or (HasItem RG_BRONZE_SCALE) (or (CanUse RG_IRON_BOOTS) (CanUse RG_BOOMERANG)))
RC_GV_OCTOROK_GROTTO_BACK_BLUE_RUPEE (or (HasItem RG_BRONZE_SCALE) (or (CanUse RG_IRON_BOOTS) (CanUse RG_BOOMERANG)))
@ -55,10 +66,12 @@ RC_GV_OCTOROK_GROTTO_FRONT_RIGHT_GREEN_RUPEE (or (HasItem RG_BRONZE_SCALE) (or (
RC_GV_OCTOROK_GROTTO_BACK_LEFT_GREEN_RUPEE (or (HasItem RG_BRONZE_SCALE) (or (CanUse RG_IRON_BOOTS) (CanUse RG_BOOMERANG)))
RC_GV_OCTOROK_GROTTO_BACK_RIGHT_GREEN_RUPEE (or (HasItem RG_BRONZE_SCALE) (or (CanUse RG_IRON_BOOTS) (CanUse RG_BOOMERANG)))
RC_GV_OCTOROK_GROTTO_RED_RUPEE (or (HasItem RG_BRONZE_SCALE) (or (CanUse RG_IRON_BOOTS) (CanUse RG_BOOMERANG)))
//Exits
RR_GV_GROTTO_LEDGE true
def RR_GV_FORTRESS_SIDE SCENE_GERUDO_VALLEY true RA_GERUDO_VALLEY
GV Fortress Side
//Checks
RC_GV_CHEST (and IsAdult (CanUse RG_MEGATON_HAMMER))
RC_GV_TRADE_SAW (and IsAdult (CanUse RG_POACHERS_SAW))
RC_GV_GS_BEHIND_TENT (and IsAdult (and HookshotOrBoomerang CanGetNightTimeGS))
@ -67,6 +80,7 @@ RC_GV_CRATE_BRIDGE_1 (and IsChild CanBreakCrates)
RC_GV_CRATE_BRIDGE_2 (and IsChild CanBreakCrates)
RC_GV_CRATE_BRIDGE_3 (and IsChild CanBreakCrates)
RC_GV_CRATE_BRIDGE_4 (and IsChild CanBreakCrates)
//Exits
RR_GF_OUTSKIRTS true
RR_GV_UPPER_STREAM true
RR_GERUDO_VALLEY (or IsChild (or (CanUse RG_EPONA) (or (CanUse RG_LONGSHOT) (or (== RSK_GERUDO_FORTRESS RO_GF_CARPENTERS_FREE) THRescuedAllCarpenters))))
@ -76,11 +90,14 @@ RR_GV_CRATE_LEDGE (and RT_DAMAGE_BOOST_SIMPLE HasExplosives)
def RR_GV_CARPENTER_TENT SCENE_CARPENTERS_TENT false
GV Carpenter Tent
//Exits
RR_GV_FORTRESS_SIDE true
def RR_GV_STORMS_GROTTO SCENE_GROTTOS false
GV Storms Grotto
//Checks
RC_GV_DEKU_SCRUB_GROTTO_REAR CanStunDeku
RC_GV_DEKU_SCRUB_GROTTO_FRONT CanStunDeku
RC_GV_DEKU_SCRUB_GROTTO_BEEHIVE CanBreakUpperBeehives
//Exits
RR_GV_FORTRESS_SIDE true

View file

@ -1,5 +1,6 @@
def RR_GORON_CITY SCENE_GORON_CITY false RA_GORON_CITY
Goron City
//Events
GossipStoneFairy CallGossipFairyExceptSuns
StickPot IsChild
BugRock (or BlastOrSmash (CanUse RG_SILVER_GAUNTLETS))
@ -7,6 +8,7 @@ GoronCityChildFire (and IsChild (CanUse RG_DINS_FIRE))
GCWoodsWarpOpen (or CanDetonateUprightBombFlower (or (CanUse RG_MEGATON_HAMMER) GoronCityChildFire))
GCDaruniasDoorOpenChild (and IsChild (CanUse RG_ZELDAS_LULLABY))
StopGCRollingGoronAsAdult (and IsAdult (or (HasItem RG_GORONS_BRACELET) (or HasExplosives (or (CanUse RG_FAIRY_BOW) (and RT_GC_LINK_GORON_DINS (or (CanUse RG_DINS_FIRE) (and RT_BLUE_FIRE_MUD_WALLS (CanUse RG_BOTTLE_WITH_BLUE_FIRE))))))))
//Checks
RC_GC_MAZE_LEFT_CHEST (or (CanUse RG_MEGATON_HAMMER) (or (CanUse RG_SILVER_GAUNTLETS) (and RT_GC_LEFTMOST (and HasExplosives (CanUse RG_HOVER_BOOTS)))))
RC_GC_MAZE_CENTER_CHEST (or BlastOrSmash (CanUse RG_SILVER_GAUNTLETS))
RC_GC_MAZE_RIGHT_CHEST (or BlastOrSmash (CanUse RG_SILVER_GAUNTLETS))
@ -25,6 +27,7 @@ RC_GC_UPPER_STAIRCASE_POT_1 CanBreakPots
RC_GC_UPPER_STAIRCASE_POT_2 CanBreakPots
RC_GC_UPPER_STAIRCASE_POT_3 CanBreakPots
RC_GC_MAZE_CRATE (or BlastOrSmash (and (CanUse RG_SILVER_GAUNTLETS) CanBreakCrates))
//Exits
RR_DEATH_MOUNTAIN_TRAIL true
RR_GC_MEDIGORON (or CanBreakMudWalls (HasItem RG_GORONS_BRACELET))
RR_GC_WOODS_WARP GCWoodsWarpOpen
@ -34,35 +37,44 @@ RR_GC_GROTTO_PLATFORM (and IsAdult (or (and (CanUse RG_SONG_OF_TIME) (or (> Effe
def RR_GC_MEDIGORON SCENE_GORON_CITY false RA_GORON_CITY
GC Medigoron
//Checks
RC_GC_MEDIGORON_GOSSIP_STONE_FAIRY CallGossipFairyExceptSuns
RC_GC_MEDIGORON_GOSSIP_STONE_FAIRY_BIG (CanUse RG_SONG_OF_STORMS)
RC_GC_MEDIGORON_GOSSIP_STONE true
RC_GC_MEDIGORON_POT_1 CanBreakPots
//Exits
RR_GORON_CITY true
def RR_GC_WOODS_WARP SCENE_GORON_CITY false RA_GORON_CITY
GC Woods Warp
//Events
GCWoodsWarpOpen (or BlastOrSmash (CanUse RG_DINS_FIRE))
//Exits
RR_GORON_CITY GCWoodsWarpOpen
RR_THE_LOST_WOODS true
def RR_GC_DARUNIAS_CHAMBER SCENE_GORON_CITY false RA_GORON_CITY
GC Darunias Chamber
//Events
GoronCityChildFire (and IsChild (CanUse RG_STICKS))
//Checks
RC_GC_DARUNIAS_JOY (and IsChild (CanUse RG_SARIAS_SONG))
RC_GC_DARUNIA_POT_1 CanBreakPots
RC_GC_DARUNIA_POT_2 CanBreakPots
RC_GC_DARUNIA_POT_3 CanBreakPots
//Exits
RR_GORON_CITY true
RR_DMC_LOWER_LOCAL IsAdult
def RR_GC_GROTTO_PLATFORM SCENE_GORON_CITY false RA_GORON_CITY
GC Grotto Platform
//Exits
RR_GC_GROTTO true
RR_GORON_CITY (or (> EffectiveHealth 2) (or (CanUse RG_GORON_TUNIC) (or (CanUse RG_NAYRUS_LOVE) (and (or IsChild (CanUse RG_SONG_OF_TIME)) (CanUse RG_LONGSHOT)))))
def RR_GC_SHOP SCENE_GORON_SHOP false
GC Shop
//Checks
RC_GC_SHOP_ITEM_1 true
RC_GC_SHOP_ITEM_2 true
RC_GC_SHOP_ITEM_3 true
@ -71,12 +83,15 @@ RC_GC_SHOP_ITEM_5 true
RC_GC_SHOP_ITEM_6 true
RC_GC_SHOP_ITEM_7 true
RC_GC_SHOP_ITEM_8 true
//Exits
RR_GORON_CITY true
def RR_GC_GROTTO SCENE_GROTTOS false
GC Grotto
//Checks
RC_GC_DEKU_SCRUB_GROTTO_LEFT CanStunDeku
RC_GC_DEKU_SCRUB_GROTTO_RIGHT CanStunDeku
RC_GC_DEKU_SCRUB_GROTTO_CENTER CanStunDeku
RC_GC_GROTTO_BEEHIVE CanBreakUpperBeehives
//Exits
RR_GC_GROTTO_PLATFORM true

View file

@ -1,9 +1,11 @@
def RR_THE_GRAVEYARD SCENE_GRAVEYARD false RA_THE_GRAVEYARD
The Graveyard
//Events
ButterflyFairy (and (CanUse RG_STICKS) AtDay)
BeanPlantFairy (and IsChild (and (CanUse RG_MAGIC_BEAN) (CanUse RG_SONG_OF_STORMS)))
BugRock true
BorrowBunnyHood (and IsChild (and AtDay (and BorrowSpookyMask (HasItem RG_CHILD_WALLET))))
//Checks
RC_GRAVEYARD_FREESTANDING_POH (or (and (or (and IsAdult (CanPlantBean RR_THE_GRAVEYARD)) (CanUse RG_LONGSHOT)) CanBreakCrates) (and RT_GY_POH (CanUse RG_BOOMERANG)))
//TODO: This needs to change
RC_GRAVEYARD_DAMPE_GRAVEDIGGING_TOUR (and (HasItem RG_CHILD_WALLET) (and IsChild AtNight))
@ -25,6 +27,7 @@ RC_GY_GRASS_10 CanCutShrubs
RC_GY_GRASS_11 CanCutShrubs
RC_GY_GRASS_12 CanCutShrubs
RC_GRAVEYARD_CRATE (and (or (and IsAdult (CanPlantBean RR_THE_GRAVEYARD)) (CanUse RG_LONGSHOT)) CanBreakCrates)
//Exits
RR_GRAVEYARD_SHIELD_GRAVE (or IsAdult AtNight)
RR_GRAVEYARD_COMPOSERS_GRAVE (CanUse RG_ZELDAS_LULLABY)
RR_GRAVEYARD_HEART_PIECE_GRAVE (or IsAdult AtNight)
@ -36,8 +39,10 @@ RR_GRAVEYARD_WARP_PAD_REGION false
def RR_GRAVEYARD_DAMPES_GRAVE SCENE_WINDMILL_AND_DAMPES_GRAVE false
Graveyard Dampes Grave
//Events
NutPot true
DampesWindmillAccess (and IsAdult (CanUse RG_SONG_OF_TIME))
//Checks
RC_GRAVEYARD_HOOKSHOT_CHEST true
RC_GRAVEYARD_DAMPE_RACE_FREESTANDING_POH (or IsAdult RT_GY_CHILD_DAMPE_RACE_POH)
RC_GY_DAMPES_GRAVE_POT_1 CanBreakPots
@ -54,22 +59,28 @@ RC_GRAVEYARD_DAMPE_RACE_RUPEE_5 true
RC_GRAVEYARD_DAMPE_RACE_RUPEE_6 true
RC_GRAVEYARD_DAMPE_RACE_RUPEE_7 true
RC_GRAVEYARD_DAMPE_RACE_RUPEE_8 true
//Exits
RR_THE_GRAVEYARD true
RR_KAK_WINDMILL @deprioritize (and IsAdult (CanUse RG_SONG_OF_TIME))
def RR_GRAVEYARD_DAMPES_HOUSE SCENE_GRAVEKEEPERS_HUT false
Graveyard Dampes House
//Checks
RC_DAMPE_HINT IsAdult
//Exits
RR_THE_GRAVEYARD true
def RR_GRAVEYARD_SHIELD_GRAVE SCENE_GRAVE_WITH_FAIRYS_FOUNTAIN false
Graveyard Shield Grave
//Checks
RC_GRAVEYARD_SHIELD_GRAVE_CHEST true
//Exits
RR_THE_GRAVEYARD true
RR_GRAVEYARD_SHIELD_GRAVE_BACK (Here CanBreakMudWalls)
def RR_GRAVEYARD_SHIELD_GRAVE_BACK SCENE_GRAVE_WITH_FAIRYS_FOUNTAIN false
Graveyard Shield Grave Back
//Checks
RC_GRAVEYARD_SHIELD_GRAVE_FAIRY_1 true
RC_GRAVEYARD_SHIELD_GRAVE_FAIRY_2 true
RC_GRAVEYARD_SHIELD_GRAVE_FAIRY_3 true
@ -78,26 +89,34 @@ RC_GRAVEYARD_SHIELD_GRAVE_FAIRY_5 true
RC_GRAVEYARD_SHIELD_GRAVE_FAIRY_6 true
RC_GRAVEYARD_SHIELD_GRAVE_FAIRY_7 true
RC_GRAVEYARD_SHIELD_GRAVE_FAIRY_8 true
//Exits
RR_GRAVEYARD_SHIELD_GRAVE true
def RR_GRAVEYARD_COMPOSERS_GRAVE SCENE_ROYAL_FAMILYS_TOMB false
Graveyard Composers Grave
//Checks
RC_GRAVEYARD_ROYAL_FAMILYS_TOMB_CHEST HasFireSource
RC_SONG_FROM_ROYAL_FAMILYS_TOMB (or CanUseProjectile CanJumpslash)
RC_GRAVEYARD_ROYAL_FAMILYS_TOMB_SUN_FAIRY (CanUse RG_SUNS_SONG)
//Exits
RR_THE_GRAVEYARD true
def RR_GRAVEYARD_HEART_PIECE_GRAVE SCENE_REDEAD_GRAVE false
Graveyard Heart Piece Grave
//Checks
RC_GRAVEYARD_HEART_PIECE_GRAVE_CHEST (CanUse RG_SUNS_SONG)
//Exits
RR_THE_GRAVEYARD true
def RR_GRAVEYARD_WARP_PAD_REGION SCENE_GRAVEYARD false RA_THE_GRAVEYARD
Graveyard Warp Pad Region
//Events
GossipStoneFairy CallGossipFairyExceptSuns
//Checks
RC_GRAVEYARD_GOSSIP_STONE_FAIRY CallGossipFairyExceptSuns
RC_GRAVEYARD_GOSSIP_STONE_FAIRY_BIG (CanUse RG_SONG_OF_STORMS)
RC_GRAVEYARD_GOSSIP_STONE true
//Exits
RR_THE_GRAVEYARD true
RR_SHADOW_TEMPLE_ENTRYWAY (or (CanUse RG_DINS_FIRE) (and RT_GY_SHADOW_FIRE_ARROWS (and IsAdult (CanUse RG_FIRE_ARROWS))))

View file

@ -1,14 +1,18 @@
def RR_WASTELAND_NEAR_FORTRESS SCENE_HAUNTED_WASTELAND false RA_HAUNTED_WASTELAND
Wasteland Near Fortress
//Checks
RC_HW_BEFORE_QUICKSAND_CRATE CanBreakCrates
//Exits
RR_GF_OUTSIDE_GATE true
RR_HAUNTED_WASTELAND (or (CanUse RG_HOVER_BOOTS) (or (CanUse RG_LONGSHOT) RT_HW_CROSSING))
def RR_HAUNTED_WASTELAND SCENE_HAUNTED_WASTELAND false RA_HAUNTED_WASTELAND
Haunted Wasteland
//Events
FairyPot true
NutPot true
CarpetMerchant (and (HasItem RG_ADULT_WALLET) (and (CanBuyAnother RC_WASTELAND_BOMBCHU_SALESMAN) (or CanJumpslash (CanUse RG_HOVER_BOOTS))))
//Checks
RC_WASTELAND_CHEST HasFireSource
RC_WASTELAND_BOMBCHU_SALESMAN (or CanJumpslash (CanUse RG_HOVER_BOOTS))
RC_WASTELAND_GS HookshotOrBoomerang
@ -19,11 +23,14 @@ RC_WASTELAND_NEAR_GS_POT_4 CanBreakPots
RC_HW_AFTER_QUICKSAND_CRATE_1 CanBreakCrates
RC_HW_AFTER_QUICKSAND_CRATE_2 CanBreakCrates
RC_HW_AFTER_QUICKSAND_CRATE_3 CanBreakCrates
//Exits
RR_WASTELAND_NEAR_COLOSSUS (or RT_LENS_HW (CanUse RG_LENS_OF_TRUTH))
RR_WASTELAND_NEAR_FORTRESS (or (CanUse RG_HOVER_BOOTS) (or (CanUse RG_LONGSHOT) RT_HW_CROSSING))
def RR_WASTELAND_NEAR_COLOSSUS SCENE_HAUNTED_WASTELAND false RA_HAUNTED_WASTELAND
Wasteland Near Colossus
//Checks
RC_HW_NEAR_COLOSSUS_CRATE CanBreakCrates
//Exits
RR_DESERT_COLOSSUS true
RR_HAUNTED_WASTELAND (or RT_HW_REVERSE false)

View file

@ -1,7 +1,9 @@
def RR_HYRULE_FIELD SCENE_HYRULE_FIELD true RA_HYRULE_FIELD
Hyrule Field
//Events
BigPoeKill (and HasBottle (and (CanUse RG_FAIRY_BOW) (or (CanUse RG_EPONA) RT_HF_BIG_POE_WITHOUT_EPONA)))
BorrowRightMasks (and IsChild (and BorrowBunnyHood (and (HasItem RG_KOKIRI_EMERALD) (and (HasItem RG_GORON_RUBY) (and (HasItem RG_ZORA_SAPPHIRE) (HasItem RG_CHILD_WALLET))))))
//Checks
RC_HF_OCARINA_OF_TIME_ITEM (and IsChild (and (== StoneCount 3) (HasItem RG_BRONZE_SCALE)))
RC_SONG_FROM_OCARINA_OF_TIME (and IsChild (and (== StoneCount 3) (HasItem RG_BRONZE_SCALE)))
RC_HF_POND_STORMS_FAIRY (CanUse RG_SONG_OF_STORMS)
@ -53,6 +55,7 @@ RC_HF_NEAR_KF_GRASS_9 CanCutShrubs
RC_HF_NEAR_KF_GRASS_10 CanCutShrubs
RC_HF_NEAR_KF_GRASS_11 CanCutShrubs
RC_HF_NEAR_KF_GRASS_12 CanCutShrubs
//Exits
RR_LW_BRIDGE true
RR_LAKE_HYLIA true
RR_GERUDO_VALLEY true
@ -71,10 +74,12 @@ RR_HF_TEKTITE_GROTTO CanOpenBombGrotto
def RR_HF_SOUTHEAST_GROTTO SCENE_GROTTOS false
HF Southeast Grotto
//Events
GossipStoneFairy CallGossipFairy
ButterflyFairy (CanUse RG_STICKS)
BugShrub CanCutShrubs
LoneFish true
//Checks
RC_HF_SOUTHEAST_GROTTO_CHEST true
RC_HF_SOUTHEAST_GROTTO_FISH HasBottle
RC_HF_SOUTHEAST_GROTTO_GOSSIP_STONE_FAIRY CallGossipFairy
@ -86,14 +91,17 @@ RC_HF_SOUTHEAST_GROTTO_GRASS_1 CanCutShrubs
RC_HF_SOUTHEAST_GROTTO_GRASS_2 CanCutShrubs
RC_HF_SOUTHEAST_GROTTO_GRASS_3 CanCutShrubs
RC_HF_SOUTHEAST_GROTTO_GRASS_4 CanCutShrubs
//Exits
RR_HYRULE_FIELD true
def RR_HF_OPEN_GROTTO SCENE_GROTTOS false
HF Open Grotto
//Events
GossipStoneFairy CallGossipFairy
ButterflyFairy (CanUse RG_STICKS)
BugShrub CanCutShrubs
LoneFish true
//Checks
RC_HF_OPEN_GROTTO_CHEST true
RC_HF_OPEN_GROTTO_FISH HasBottle
RC_HF_OPEN_GROTTO_GOSSIP_STONE_FAIRY CallGossipFairy
@ -105,24 +113,30 @@ RC_HF_OPEN_GROTTO_GRASS_1 CanCutShrubs
RC_HF_OPEN_GROTTO_GRASS_2 CanCutShrubs
RC_HF_OPEN_GROTTO_GRASS_3 CanCutShrubs
RC_HF_OPEN_GROTTO_GRASS_4 CanCutShrubs
//Exits
RR_HYRULE_FIELD true
def RR_HF_INSIDE_FENCE_GROTTO SCENE_GROTTOS false
HF Inside Fence Grotto
//Checks
RC_HF_DEKU_SCRUB_GROTTO CanStunDeku
RC_HF_INSIDE_FENCE_GROTTO_BEEHIVE CanBreakLowerBeehives
RC_HF_FENCE_GROTTO_STORMS_FAIRY (CanUse RG_SONG_OF_STORMS)
//Exits
RR_HYRULE_FIELD true
def RR_HF_COW_GROTTO SCENE_GROTTOS false
HF Cow Grotto
//Exits
RR_HYRULE_FIELD true
RR_HF_COW_GROTTO_BEHIND_WEBS HasFireSource
def RR_HF_COW_GROTTO_BEHIND_WEBS SCENE_GROTTOS false
HF Cow Grotto Behind Webs
//Events
BugShrub CanCutShrubs
GossipStoneFairy CallGossipFairy
//Checks
RC_HF_GS_COW_GROTTO (CanGetEnemyDrop RE_GOLD_SKULLTULA ED_BOOMERANG)
RC_HF_COW_GROTTO_COW (CanUse RG_EPONAS_SONG)
RC_HF_COW_GROTTO_GOSSIP_STONE_FAIRY CallGossipFairy
@ -132,14 +146,17 @@ RC_HF_COW_GROTTO_POT_1 CanBreakPots
RC_HF_COW_GROTTO_POT_2 CanBreakPots
RC_HF_COW_GROTTO_GRASS_1 CanCutShrubs
RC_HF_COW_GROTTO_GRASS_2 CanCutShrubs
//Exits
RR_HF_COW_GROTTO true
def RR_HF_NEAR_MARKET_GROTTO SCENE_GROTTOS false
HF Near Market Grotto
//Events
GossipStoneFairy CallGossipFairy
ButterflyFairy (CanUse RG_STICKS)
BugShrub CanCutShrubs
LoneFish true
//Checks
RC_HF_NEAR_MARKET_GROTTO_CHEST true
RC_HF_NEAR_MARKET_GROTTO_FISH HasBottle
RC_HF_NEAR_MARKET_GROTTO_GOSSIP_STONE_FAIRY CallGossipFairy
@ -151,11 +168,14 @@ RC_HF_NEAR_MARKET_GROTTO_GRASS_1 CanCutShrubs
RC_HF_NEAR_MARKET_GROTTO_GRASS_2 CanCutShrubs
RC_HF_NEAR_MARKET_GROTTO_GRASS_3 CanCutShrubs
RC_HF_NEAR_MARKET_GROTTO_GRASS_4 CanCutShrubs
//Exits
RR_HYRULE_FIELD true
def RR_HF_FAIRY_GROTTO SCENE_GROTTOS false
HF Fairy Grotto
//Events
FreeFairies true
//Checks
RC_HF_FAIRY_GROTTO_FAIRY_1 true
RC_HF_FAIRY_GROTTO_FAIRY_2 true
RC_HF_FAIRY_GROTTO_FAIRY_3 true
@ -164,14 +184,19 @@ RC_HF_FAIRY_GROTTO_FAIRY_5 true
RC_HF_FAIRY_GROTTO_FAIRY_6 true
RC_HF_FAIRY_GROTTO_FAIRY_7 true
RC_HF_FAIRY_GROTTO_FAIRY_8 true
//Exits
RR_HYRULE_FIELD true
def RR_HF_NEAR_KAK_GROTTO SCENE_GROTTOS false
HF Near Kak Grotto
//Checks
RC_HF_GS_NEAR_KAK_GROTTO HookshotOrBoomerang
//Exits
RR_HYRULE_FIELD true
def RR_HF_TEKTITE_GROTTO SCENE_GROTTOS false
HF Tektite Grotto
//Checks
RC_HF_TEKTITE_GROTTO_FREESTANDING_POH (or (HasItem RG_GOLDEN_SCALE) (CanUse RG_IRON_BOOTS))
//Exits
RR_HYRULE_FIELD true

View file

@ -1,10 +1,12 @@
def RR_KAKARIKO_VILLAGE SCENE_KAKARIKO_VILLAGE true RA_KAKARIKO_VILLAGE
Kakariko Village
//Events
BugRock true
//Open Gate setting is applied in RR_ROOT
KakarikoVillageGateOpen (and IsChild (HasItem RG_ZELDAS_LETTER))
//Needs wallet to be able to get another mask after selling Keaton
BorrowSkullMask (and IsChild (and CanBorrowMasks (HasItem RG_CHILD_WALLET)))
//Checks
RC_SHEIK_IN_KAKARIKO (and IsAdult (and (HasItem RG_FOREST_MEDALLION) (and (HasItem RG_FIRE_MEDALLION) (HasItem RG_WATER_MEDALLION))))
RC_KAK_ANJU_AS_CHILD (and IsChild AtDay)
RC_KAK_ANJU_AS_ADULT (and IsAdult AtDay)
@ -50,6 +52,7 @@ RC_KAK_NEAR_WINDMILL_CHILD_CRATE (and IsChild CanBreakCrates)
RC_KAK_NEAR_FENCE_CHILD_CRATE (and IsChild CanBreakCrates)
RC_KAK_NEAR_BOARDING_HOUSE_CHILD_CRATE (and IsChild CanBreakCrates)
RC_KAK_NEAR_BAZAAR_CHILD_CRATE (and IsChild CanBreakCrates)
//Exits
RR_HYRULE_FIELD true
RR_KAK_CARPENTER_BOSS_HOUSE (CanOpenOverworldDoor RG_BOSS_HOUSE_KEY)
RR_KAK_HOUSE_OF_SKULLTULA (CanOpenOverworldDoor RG_SKULLTULA_HOUSE_KEY)
@ -71,44 +74,57 @@ RR_KAK_BACKYARD (or IsAdult AtDay)
def RR_KAK_CARPENTER_BOSS_HOUSE SCENE_KAKARIKO_CENTER_GUEST_HOUSE false
Kak Carpenter Boss House
//Events
WakeUpAdultTalon (and IsAdult (CanUse RG_POCKET_EGG))
//Exits
RR_KAKARIKO_VILLAGE true
def RR_KAK_HOUSE_OF_SKULLTULA SCENE_HOUSE_OF_SKULLTULA false
Kak House of Skulltula
//Checks
RC_KAK_10_GOLD_SKULLTULA_REWARD (>= GetGSCount 10)
RC_KAK_20_GOLD_SKULLTULA_REWARD (>= GetGSCount 20)
RC_KAK_30_GOLD_SKULLTULA_REWARD (>= GetGSCount 30)
RC_KAK_40_GOLD_SKULLTULA_REWARD (>= GetGSCount 40)
RC_KAK_50_GOLD_SKULLTULA_REWARD (>= GetGSCount 50)
RC_KAK_100_GOLD_SKULLTULA_REWARD (>= GetGSCount 100)
//Exits
RR_KAKARIKO_VILLAGE true
def RR_KAK_IMPAS_HOUSE SCENE_IMPAS_HOUSE false
Kak Impas House
//Checks
RC_KAK_IMPAS_HOUSE_COW (CanUse RG_EPONAS_SONG)
//Exits
RR_KAKARIKO_VILLAGE true
def RR_KAK_IMPAS_LEDGE SCENE_KAKARIKO_VILLAGE true RA_KAKARIKO_VILLAGE
Kak Impas Ledge
//Exits
RR_KAK_IMPAS_HOUSE_BACK true
RR_KAKARIKO_VILLAGE true
def RR_KAK_IMPAS_HOUSE_BACK SCENE_IMPAS_HOUSE false
Kak Impas House Back
//Checks
RC_KAK_IMPAS_HOUSE_FREESTANDING_POH true
RC_KAK_IMPAS_HOUSE_COW (CanUse RG_EPONAS_SONG)
//Exits
RR_KAK_IMPAS_LEDGE true
def RR_KAK_WINDMILL SCENE_WINDMILL_AND_DAMPES_GRAVE false
Kak Windmill
//Events
DrainWell (and IsChild (CanUse RG_SONG_OF_STORMS))
//Checks
RC_KAK_WINDMILL_FREESTANDING_POH (or (CanUse RG_BOOMERANG) (or DampesWindmillAccess (or (and IsAdult RT_KAK_ADULT_WINDMILL_POH) (and IsChild (and CanJumpslashExceptHammer RT_KAK_CHILD_WINDMILL_POH)))))
RC_SONG_FROM_WINDMILL (and IsAdult (HasItem RG_FAIRY_OCARINA))
//Exits
RR_KAKARIKO_VILLAGE true
def RR_KAK_BAZAAR SCENE_BAZAAR false
Kak Bazaar
//Checks
RC_KAK_BAZAAR_ITEM_1 true
RC_KAK_BAZAAR_ITEM_2 true
RC_KAK_BAZAAR_ITEM_3 true
@ -117,15 +133,19 @@ RC_KAK_BAZAAR_ITEM_5 true
RC_KAK_BAZAAR_ITEM_6 true
RC_KAK_BAZAAR_ITEM_7 true
RC_KAK_BAZAAR_ITEM_8 true
//Exits
RR_KAKARIKO_VILLAGE true
def RR_KAK_SHOOTING_GALLERY SCENE_SHOOTING_GALLERY false
Kak Shooting Gallery
//Checks
RC_KAK_SHOOTING_GALLERY_REWARD (and (HasItem RG_CHILD_WALLET) (and IsAdult (CanUse RG_FAIRY_BOW)))
//Exits
RR_KAKARIKO_VILLAGE true
def RR_KAK_POTION_SHOP_FRONT SCENE_POTION_SHOP_KAKARIKO false
Kak Potion Shop Front
//Checks
RC_KAK_POTION_SHOP_ITEM_1 IsAdult
RC_KAK_POTION_SHOP_ITEM_2 IsAdult
RC_KAK_POTION_SHOP_ITEM_3 IsAdult
@ -134,43 +154,54 @@ RC_KAK_POTION_SHOP_ITEM_5 IsAdult
RC_KAK_POTION_SHOP_ITEM_6 IsAdult
RC_KAK_POTION_SHOP_ITEM_7 IsAdult
RC_KAK_POTION_SHOP_ITEM_8 IsAdult
//Exits
RR_KAKARIKO_VILLAGE true
RR_KAK_POTION_SHOP_BACK IsAdult
def RR_KAK_POTION_SHOP_BACK SCENE_POTION_SHOP_KAKARIKO false
Kak Potion Shop Back
//Exits
RR_KAK_BACKYARD IsAdult
RR_KAK_POTION_SHOP_FRONT true
def RR_KAK_WATCHTOWER SCENE_KAKARIKO_VILLAGE true RA_KAKARIKO_VILLAGE
Kak Watchtower
//exists for when age change is in logic.
//Checks
RC_KAK_GS_WATCHTOWER (and IsChild (and (CanUse RG_DINS_FIRE) CanGetNightTimeGS))
//Exits
RR_KAKARIKO_VILLAGE true
RR_KAK_ROOFTOP (and RT_KAK_MAN_ON_ROOF IsChild)
def RR_KAK_ROOFTOP SCENE_KAKARIKO_VILLAGE true RA_KAKARIKO_VILLAGE
Kak Rooftop
//Checks
RC_KAK_MAN_ON_ROOF true
//Exits
RR_KAK_BACKYARD true
RR_KAKARIKO_VILLAGE true
def RR_KAK_IMPAS_ROOFTOP SCENE_KAKARIKO_VILLAGE true RA_KAKARIKO_VILLAGE
Kak Impas Rooftop
//Checks
RC_KAK_GS_ABOVE_IMPAS_HOUSE (and IsAdult (and CanGetNightTimeGS (CanKillEnemy RE_GOLD_SKULLTULA)))
//Exits
RR_KAK_IMPAS_LEDGE true
RR_KAKARIKO_VILLAGE true
def RR_KAK_BEHIND_GATE SCENE_KAKARIKO_VILLAGE true RA_KAKARIKO_VILLAGE
Kak Behind Gate
//Exits
RR_KAKARIKO_VILLAGE (or IsAdult (or RT_VISIBLE_COLLISION KakarikoVillageGateOpen))
RR_DEATH_MOUNTAIN_TRAIL true
def RR_KAK_BACKYARD SCENE_KAKARIKO_VILLAGE true RA_KAKARIKO_VILLAGE
Kak Backyard
//There's probably a trick to get these with rang from the main region
//Checks
RC_KAK_NEAR_MEDICINE_SHOP_POT_1 (and IsChild CanBreakPots)
RC_KAK_NEAR_MEDICINE_SHOP_POT_2 (and IsChild CanBreakPots)
//Exits
RR_KAKARIKO_VILLAGE true
RR_KAK_OPEN_GROTTO true
RR_KAK_ODD_POTION_BUILDING (and IsAdult (CanOpenOverworldDoor RG_GRANNYS_POTION_SHOP_KEY))
@ -178,26 +209,33 @@ RR_KAK_POTION_SHOP_BACK (and IsAdult (and AtDay (CanOpenOverworldDoor RG_KAK_POT
def RR_KAK_WELL SCENE_KAKARIKO_VILLAGE true RA_KAKARIKO_VILLAGE
Kak Well
//Exits
RR_KAKARIKO_VILLAGE (or IsAdult (or (HasItem RG_BRONZE_SCALE) DrainWell))
RR_BOTTOM_OF_THE_WELL_ENTRYWAY (or IsChild (and DrainWell (!= RSK_SHUFFLE_DUNGEON_ENTRANCES RO_DUNGEON_ENTRANCE_SHUFFLE_OFF)))
def RR_KAK_ODD_POTION_BUILDING SCENE_POTION_SHOP_GRANNY false
Kak Granny's Potion Shop
//Checks
RC_KAK_TRADE_ODD_MUSHROOM (and IsAdult (CanUse RG_ODD_MUSHROOM))
RC_KAK_GRANNYS_SHOP (and IsAdult (or (CanUse RG_ODD_MUSHROOM) (TradeQuestStep RG_ODD_MUSHROOM)))
//Exits
RR_KAK_BACKYARD true
def RR_KAK_REDEAD_GROTTO SCENE_GROTTOS false
Kak Redead Grotto
//Checks
RC_KAK_REDEAD_GROTTO_CHEST (CanKillEnemy RE_REDEAD ED_CLOSE true 2)
//Exits
RR_KAKARIKO_VILLAGE true
def RR_KAK_OPEN_GROTTO SCENE_GROTTOS false
Kak Open Grotto
//Events
GossipStoneFairy CallGossipFairy
ButterflyFairy (CanUse RG_STICKS)
BugShrub CanCutShrubs
LoneFish true
//Checks
RC_KAK_OPEN_GROTTO_CHEST true
RC_KAK_OPEN_GROTTO_FISH HasBottle
RC_KAK_OPEN_GROTTO_GOSSIP_STONE_FAIRY CallGossipFairy
@ -209,4 +247,5 @@ RC_KAK_OPEN_GROTTO_GRASS_1 CanCutShrubs
RC_KAK_OPEN_GROTTO_GRASS_2 CanCutShrubs
RC_KAK_OPEN_GROTTO_GRASS_3 CanCutShrubs
RC_KAK_OPEN_GROTTO_GRASS_4 CanCutShrubs
//Exits
RR_KAK_BACKYARD true

View file

@ -1,8 +1,10 @@
def RR_KOKIRI_FOREST SCENE_KOKIRI_FOREST false RA_KOKIRI_FOREST
Kokiri Forest
//Events
BeanPlantFairy (and IsChild (and (CanUse RG_MAGIC_BEAN) (CanUse RG_SONG_OF_STORMS)))
GossipStoneFairy CallGossipFairyExceptSuns
ShowedMidoSwordAndShield (and IsChild (and (CanUse RG_KOKIRI_SWORD) (CanUse RG_DEKU_SHIELD)))
//Checks
RC_KF_KOKIRI_SWORD_CHEST IsChild
RC_KF_GS_KNOW_IT_ALL_HOUSE (and IsChild (and CanAttack CanGetNightTimeGS))
RC_KF_GS_BEAN_PATCH (and CanSpawnSoilSkull CanAttack)
@ -66,6 +68,7 @@ RC_KF_ADULT_GRASS_17 (and IsAdult CanCutShrubs)
RC_KF_ADULT_GRASS_18 (and IsAdult CanCutShrubs)
RC_KF_ADULT_GRASS_19 (and IsAdult CanCutShrubs)
RC_KF_ADULT_GRASS_20 (and IsAdult CanCutShrubs)
//Exits
RR_KF_LINKS_HOUSE true
RR_KF_MIDOS_HOUSE true
RR_KF_SARIAS_HOUSE true
@ -79,40 +82,51 @@ RR_KF_STORMS_GROTTO CanOpenStormsGrotto
def RR_KF_LINKS_HOUSE SCENE_LINKS_HOUSE false
KF Link's House
//Checks
RC_KF_LINKS_HOUSE_COW (and IsAdult (and (CanUse RG_EPONAS_SONG) LinksCow))
RC_KF_LINKS_HOUSE_POT CanBreakPots
//Exits
RR_KOKIRI_FOREST true
def RR_KF_MIDOS_HOUSE SCENE_MIDOS_HOUSE false
KF Mido's House
//Checks
RC_KF_MIDOS_TOP_LEFT_CHEST true
RC_KF_MIDOS_TOP_RIGHT_CHEST true
RC_KF_MIDOS_BOTTOM_LEFT_CHEST true
RC_KF_MIDOS_BOTTOM_RIGHT_CHEST true
//Exits
RR_KOKIRI_FOREST true
def RR_KF_SARIAS_HOUSE SCENE_SARIAS_HOUSE false
KF Saria's House
//Checks
RC_KF_SARIAS_TOP_LEFT_HEART true
RC_KF_SARIAS_TOP_RIGHT_HEART true
RC_KF_SARIAS_BOTTOM_LEFT_HEART true
RC_KF_SARIAS_BOTTOM_RIGHT_HEART true
//Exits
RR_KOKIRI_FOREST true
def RR_KF_HOUSE_OF_TWINS SCENE_TWINS_HOUSE false
KF House of Twins
//Checks
RC_KF_TWINS_HOUSE_POT_1 CanBreakPots
RC_KF_TWINS_HOUSE_POT_2 CanBreakPots
//Exits
RR_KOKIRI_FOREST true
def RR_KF_KNOW_IT_ALL_HOUSE SCENE_KNOW_IT_ALL_BROS_HOUSE false
KF Know It All House
//Checks
RC_KF_BROTHERS_HOUSE_POT_1 CanBreakPots
RC_KF_BROTHERS_HOUSE_POT_2 CanBreakPots
//Exits
RR_KOKIRI_FOREST true
def RR_KF_KOKIRI_SHOP SCENE_KOKIRI_SHOP false
KF Kokiri Shop
//Checks
RC_KF_SHOP_ITEM_1 true
RC_KF_SHOP_ITEM_2 true
RC_KF_SHOP_ITEM_3 true
@ -121,28 +135,34 @@ RC_KF_SHOP_ITEM_5 true
RC_KF_SHOP_ITEM_6 true
RC_KF_SHOP_ITEM_7 true
RC_KF_SHOP_ITEM_8 true
//Exits
RR_KOKIRI_FOREST true
def RR_KF_OUTSIDE_DEKU_TREE SCENE_KOKIRI_FOREST false RA_KOKIRI_FOREST
KF Outside Deku Tree
//Events
DekuBabaSticks CanGetDekuBabaSticks
DekuBabaNuts CanGetDekuBabaNuts
ShowedMidoSwordAndShield (and IsChild (and (CanUse RG_KOKIRI_SWORD) (CanUse RG_DEKU_SHIELD)))
//Checks
RC_KF_DEKU_TREE_LEFT_GOSSIP_STONE_FAIRY CallGossipFairyExceptSuns
RC_KF_DEKU_TREE_LEFT_GOSSIP_STONE_FAIRY_BIG (CanUse RG_SONG_OF_STORMS)
RC_KF_DEKU_TREE_RIGHT_GOSSIP_STONE_FAIRY CallGossipFairyExceptSuns
RC_KF_DEKU_TREE_RIGHT_GOSSIP_STONE_FAIRY_BIG (CanUse RG_SONG_OF_STORMS)
RC_KF_DEKU_TREE_LEFT_GOSSIP_STONE true
RC_KF_DEKU_TREE_RIGHT_GOSSIP_STONE true
//Exits
RR_DEKU_TREE_ENTRYWAY (or IsChild (and (!= RSK_SHUFFLE_DUNGEON_ENTRANCES RO_DUNGEON_ENTRANCE_SHUFFLE_OFF) (or (== RSK_FOREST RO_CLOSED_FOREST_OFF) ShowedMidoSwordAndShield)))
RR_KOKIRI_FOREST (or (and IsAdult (or (CanPassEnemy RE_BIG_SKULLTULA) ForestTempleClear)) (or (== RSK_FOREST RO_CLOSED_FOREST_OFF) ShowedMidoSwordAndShield))
def RR_KF_STORMS_GROTTO SCENE_GROTTOS false
KF Storms Grotto
//Events
GossipStoneFairy CallGossipFairy
ButterflyFairy (CanUse RG_STICKS)
BugShrub CanCutShrubs
LoneFish true
//Checks
RC_KF_STORMS_GROTTO_CHEST true
RC_KF_STORMS_GROTTO_FISH HasBottle
RC_KF_STORMS_GROTTO_GOSSIP_STONE_FAIRY CallGossipFairy
@ -154,5 +174,6 @@ RC_KF_STORMS_GROTTO_GRASS_1 CanCutShrubs
RC_KF_STORMS_GROTTO_GRASS_2 CanCutShrubs
RC_KF_STORMS_GROTTO_GRASS_3 CanCutShrubs
RC_KF_STORMS_GROTTO_GRASS_4 CanCutShrubs
//Exits
RR_KOKIRI_FOREST true

View file

@ -1,11 +1,13 @@
def RR_LAKE_HYLIA SCENE_LAKE_HYLIA true RA_LAKE_HYLIA
Lake Hylia
//Events
GossipStoneFairy CallGossipFairy
BeanPlantFairy (and IsChild (and (CanUse RG_MAGIC_BEAN) (CanUse RG_SONG_OF_STORMS)))
ButterflyFairy (CanUse RG_STICKS)
BugShrub (and IsChild CanCutShrubs)
ChildScarecrow (and IsChild (and (HasItem RG_FAIRY_OCARINA) (>= OcarinaButtons 2)))
AdultScarecrow (and IsAdult (and (HasItem RG_FAIRY_OCARINA) (>= OcarinaButtons 2)))
//Checks
RC_LH_UNDERWATER_ITEM (and IsChild (HasItem RG_SILVER_SCALE))
RC_LH_SUN (and IsAdult (and (or (and WaterTempleClear (HasItem RG_BRONZE_SCALE)) (CanUse RG_DISTANT_SCARECROW)) (CanUse RG_FAIRY_BOW)))
RC_LH_FREESTANDING_POH (and IsAdult (or (CanUse RG_SCARECROW) (CanPlantBean RR_LAKE_HYLIA)))
@ -72,6 +74,7 @@ RC_LH_CHILD_GRASS_3 (and IsChild CanCutShrubs)
RC_LH_CHILD_GRASS_4 (and IsChild CanCutShrubs)
RC_LH_WARP_PAD_GRASS_1 CanCutShrubs
RC_LH_WARP_PAD_GRASS_2 CanCutShrubs
//Exits
RR_HYRULE_FIELD true
RR_LH_FROM_SHORTCUT true
RR_LH_OWL_FLIGHT @deprioritize IsChild
@ -82,25 +85,30 @@ RR_LH_GROTTO true
def RR_LH_FROM_SHORTCUT SCENE_LAKE_HYLIA false RA_LAKE_HYLIA
LH From Shortcut
//Exits
RR_LAKE_HYLIA (or (> Hearts 1) (or (HasItem RG_BOTTLE_WITH_FAIRY) (or (HasItem RG_BRONZE_SCALE) (CanUse RG_IRON_BOOTS))))
RR_ZORAS_DOMAIN (and IsChild (or (HasItem RG_SILVER_SCALE) (CanUse RG_IRON_BOOTS)))
def RR_LH_FROM_WATER_TEMPLE SCENE_LAKE_HYLIA false RA_LAKE_HYLIA
LH From Water Temple
//Exits
RR_LAKE_HYLIA (or (HasItem RG_BRONZE_SCALE) (or (HasItem RG_BOTTLE_WITH_FAIRY) (CanUse RG_IRON_BOOTS)))
RR_WATER_TEMPLE_ENTRYWAY (and (CanUse RG_HOOKSHOT) (or (or (CanUse RG_IRON_BOOTS) (and RT_LH_WATER_HOOKSHOT (HasItem RG_GOLDEN_SCALE))) (and IsAdult (and (CanUse RG_LONGSHOT) (HasItem RG_GOLDEN_SCALE)))))
def RR_LH_FISHING_ISLAND SCENE_LAKE_HYLIA true RA_LAKE_HYLIA
LH Fishing Island
//Exits
RR_LAKE_HYLIA (HasItem RG_BRONZE_SCALE)
RR_LH_FISHING_POND (CanOpenOverworldDoor RG_FISHING_HOLE_KEY)
def RR_LH_OWL_FLIGHT SCENE_LAKE_HYLIA true RA_LAKE_HYLIA
LH Owl Flight
//Exits
RR_HYRULE_FIELD @deprioritize true
def RR_LH_LAB SCENE_LAKESIDE_LABORATORY false
LH Lab
//Checks
RC_LH_LAB_DIVE (or (HasItem RG_GOLDEN_SCALE) (and RT_LH_LAB_DIVING (and (CanUse RG_IRON_BOOTS) (and (CanUse RG_HOOKSHOT) (HasItem RG_BRONZE_SCALE)))))
RC_LH_TRADE_FROG (and IsAdult (CanUse RG_EYEBALL_FROG))
RC_LH_GS_LAB_CRATE (and (CanUse RG_IRON_BOOTS) (and (CanUse RG_HOOKSHOT) CanBreakCrates))
@ -108,10 +116,12 @@ RC_LH_LAB_FRONT_RUPEE (or (CanUse RG_IRON_BOOTS) (HasItem RG_GOLDEN_SCALE))
RC_LH_LAB_LEFT_RUPEE (or (CanUse RG_IRON_BOOTS) (HasItem RG_GOLDEN_SCALE))
RC_LH_LAB_RIGHT_RUPEE (or (CanUse RG_IRON_BOOTS) (HasItem RG_GOLDEN_SCALE))
RC_LH_LAB_CRATE (and (CanUse RG_IRON_BOOTS) CanBreakCrates)
//Exits
RR_LAKE_HYLIA true
def RR_LH_FISHING_POND SCENE_FISHING_POND false
LH Fishing Hole
//Checks
RC_LH_CHILD_FISHING (and (CanUse RG_FISHING_POLE) IsChild)
RC_LH_CHILD_FISH_1 (and (CanUse RG_FISHING_POLE) (or IsChild (not RSK_FISHSANITY_AGE_SPLIT)))
RC_LH_CHILD_FISH_2 (and (CanUse RG_FISHING_POLE) (or IsChild (not RSK_FISHSANITY_AGE_SPLIT)))
@ -149,12 +159,15 @@ RC_LH_ADULT_FISH_15 (and (CanUse RG_FISHING_POLE) (and IsAdult RSK_FISHSANITY_AG
RC_LH_ADULT_LOACH (and (CanUse RG_FISHING_POLE) (and IsAdult RSK_FISHSANITY_AGE_SPLIT))
RC_LH_HYRULE_LOACH (CanUse RG_FISHING_POLE)
RC_FISHING_POLE_HINT true
//Exits
RR_LH_FISHING_ISLAND true
def RR_LH_GROTTO SCENE_GROTTOS false
LH Grotto
//Checks
RC_LH_DEKU_SCRUB_GROTTO_LEFT CanStunDeku
RC_LH_DEKU_SCRUB_GROTTO_RIGHT CanStunDeku
RC_LH_DEKU_SCRUB_GROTTO_CENTER CanStunDeku
RC_LH_GROTTO_BEEHIVE CanBreakUpperBeehives
//Exits
RR_LAKE_HYLIA true

View file

@ -1,7 +1,9 @@
def RR_LON_LON_RANCH SCENE_LON_LON_RANCH true RA_LON_LON_RANCH
Lon Lon Ranch
//Events
FreedEpona (and (or (HasItem RG_CHILD_WALLET) RSK_SKIP_EPONA_RACE) (and (CanUse RG_EPONAS_SONG) (and IsAdult AtDay)))
LinksCow (and (HasItem RG_CHILD_WALLET) (and (CanUse RG_EPONAS_SONG) (and IsAdult AtDay)))
//Checks
RC_SONG_FROM_MALON (and IsChild (and (HasItem RG_ZELDAS_LETTER) (and (HasItem RG_FAIRY_OCARINA) AtDay)))
RC_LLR_GS_TREE IsChild
RC_LLR_GS_RAIN_SHED (and IsChild CanGetNightTimeGS)
@ -15,6 +17,7 @@ RC_LLR_RAIN_SHED_POT_1 (and IsChild CanBreakPots)
RC_LLR_RAIN_SHED_POT_2 (and IsChild CanBreakPots)
RC_LLR_RAIN_SHED_POT_3 (and IsChild CanBreakPots)
RC_LLR_NEAR_TREE_CRATE (and IsChild CanBreakCrates)
//Exits
RR_HYRULE_FIELD true
RR_LLR_TALONS_HOUSE (CanOpenOverworldDoor RG_TALONS_HOUSE_KEY)
RR_LLR_STABLES (CanOpenOverworldDoor RG_STABLES_KEY)
@ -23,29 +26,37 @@ RR_LLR_GROTTO IsChild
def RR_LLR_TALONS_HOUSE SCENE_LON_LON_BUILDINGS false
LLR Talons House
//Checks
RC_LLR_TALONS_CHICKENS (and (HasItem RG_CHILD_WALLET) (and IsChild (and AtDay (HasItem RG_ZELDAS_LETTER))))
RC_LLR_TALONS_HOUSE_POT_1 CanBreakPots
RC_LLR_TALONS_HOUSE_POT_2 CanBreakPots
RC_LLR_TALONS_HOUSE_POT_3 CanBreakPots
//Exits
RR_LON_LON_RANCH true
def RR_LLR_STABLES SCENE_STABLE false
LLR Stables
//Checks
RC_LLR_STABLES_LEFT_COW (CanUse RG_EPONAS_SONG)
RC_LLR_STABLES_RIGHT_COW (CanUse RG_EPONAS_SONG)
//Exits
RR_LON_LON_RANCH true
def RR_LLR_TOWER SCENE_LON_LON_BUILDINGS false
LLR Tower
//Checks
RC_LLR_FREESTANDING_POH IsChild
RC_LLR_TOWER_LEFT_COW (CanUse RG_EPONAS_SONG)
RC_LLR_TOWER_RIGHT_COW (CanUse RG_EPONAS_SONG)
//Exits
RR_LON_LON_RANCH true
def RR_LLR_GROTTO SCENE_GROTTOS false
LLR Grotto
//Checks
RC_LLR_DEKU_SCRUB_GROTTO_LEFT CanStunDeku
RC_LLR_DEKU_SCRUB_GROTTO_RIGHT CanStunDeku
RC_LLR_DEKU_SCRUB_GROTTO_CENTER CanStunDeku
RC_LLR_GROTTO_BEEHIVE CanBreakUpperBeehives
//Exits
RR_LON_LON_RANCH true

View file

@ -1,9 +1,11 @@
def RR_THE_LOST_WOODS SCENE_LOST_WOODS false RA_THE_LOST_WOODS
Lost Woods
//Events
GossipStoneFairy CallGossipFairyExceptSuns
BeanPlantFairy (and IsChild (and (CanUse RG_MAGIC_BEAN) (CanUse RG_SONG_OF_STORMS)))
BugShrub (and IsChild CanCutShrubs)
BorrowSpookyMask (and IsChild (and BorrowSkullMask (and (CanUse RG_SARIAS_SONG) (HasItem RG_CHILD_WALLET))))
//Checks
RC_LW_SKULL_KID (and IsChild (CanUse RG_SARIAS_SONG))
RC_LW_TRADE_COJIRO (and IsAdult (CanUse RG_COJIRO))
//I cannot think of a case where you can use Odd pot but not Cojiro to reset the quadrant should you have both. If one exists, add it to logic
@ -39,6 +41,7 @@ RC_LW_GOSSIP_STONE true
RC_LW_GRASS_1 CanCutShrubs
RC_LW_GRASS_2 CanCutShrubs
RC_LW_GRASS_3 CanCutShrubs
//Exits
RR_LW_FOREST_EXIT true
RR_GC_WOODS_WARP true
RR_LW_BRIDGE (or (and IsAdult (or (CanPlantBean RR_THE_LOST_WOODS) RT_LW_BRIDGE)) (or (CanUse RG_HOVER_BOOTS) (CanUse RG_LONGSHOT)))
@ -48,22 +51,28 @@ RR_LW_NEAR_SHORTCUTS_GROTTO (Here BlastOrSmash)
def RR_LW_BRIDGE_FROM_FOREST SCENE_LOST_WOODS false RA_THE_LOST_WOODS
LW Bridge From Forest
//Checks
RC_LW_GIFT_FROM_SARIA true
//Exits
RR_LW_BRIDGE true
def RR_LW_BRIDGE SCENE_LOST_WOODS false RA_THE_LOST_WOODS
LW Bridge
//Exits
RR_KOKIRI_FOREST true
RR_HYRULE_FIELD true
RR_THE_LOST_WOODS (CanUse RG_LONGSHOT)
def RR_LW_FOREST_EXIT SCENE_LOST_WOODS false RA_THE_LOST_WOODS
LW Forest Exit
//Exits
RR_KOKIRI_FOREST true
def RR_LW_BEYOND_MIDO SCENE_LOST_WOODS false RA_THE_LOST_WOODS
LW Beyond Mido
//Events
ButterflyFairy (CanUse RG_STICKS)
//Checks
RC_LW_DEKU_SCRUB_NEAR_DEKU_THEATER_RIGHT (and IsChild CanStunDeku)
RC_LW_DEKU_SCRUB_NEAR_DEKU_THEATER_LEFT (and IsChild CanStunDeku)
RC_LW_GS_ABOVE_THEATER (and IsAdult (and (or (and (CanPlantBean RR_LW_BEYOND_MIDO) CanAttack) (and RT_LW_GS_BEAN (and (CanUse RG_HOOKSHOT) (or (CanUse RG_LONGSHOT) (or (CanUse RG_FAIRY_BOW) (or (CanUse RG_FAIRY_SLINGSHOT) (or (CanUse RG_BOMBCHU_5) (CanUse RG_DINS_FIRE)))))))) CanGetNightTimeGS))
@ -78,6 +87,7 @@ RC_LW_GRASS_6 CanCutShrubs
RC_LW_GRASS_7 CanCutShrubs
RC_LW_GRASS_8 CanCutShrubs
RC_LW_GRASS_9 CanCutShrubs
//Exits
RR_LW_FOREST_EXIT true
RR_THE_LOST_WOODS (or IsChild (CanUse RG_SARIAS_SONG))
RR_SFM_ENTRYWAY true
@ -86,10 +96,12 @@ RR_LW_SCRUBS_GROTTO (Here BlastOrSmash)
def RR_LW_NEAR_SHORTCUTS_GROTTO SCENE_GROTTOS false
LW Near Shortcuts Grotto
//Events
GossipStoneFairy CallGossipFairy
ButterflyFairy (CanUse RG_STICKS)
BugShrub CanCutShrubs
LoneFish true
//Checks
RC_LW_NEAR_SHORTCUTS_GROTTO_CHEST true
RC_LW_NEAR_SHORTCUTS_GROTTO_FISH HasBottle
RC_LW_NEAR_SHORTCUTS_GROTTO_GOSSIP_STONE_FAIRY CallGossipFairy
@ -101,19 +113,24 @@ RC_LW_NEAR_SHORTCUTS_GROTTO_GRASS_1 CanCutShrubs
RC_LW_NEAR_SHORTCUTS_GROTTO_GRASS_2 CanCutShrubs
RC_LW_NEAR_SHORTCUTS_GROTTO_GRASS_3 CanCutShrubs
RC_LW_NEAR_SHORTCUTS_GROTTO_GRASS_4 CanCutShrubs
//Exits
RR_THE_LOST_WOODS true
def RR_DEKU_THEATER SCENE_GROTTOS false
Deku Theater
//Checks
RC_DEKU_THEATER_SKULL_MASK (and IsChild BorrowSkullMask)
RC_DEKU_THEATER_MASK_OF_TRUTH (and IsChild BorrowRightMasks)
//Exits
RR_LW_BEYOND_MIDO true
def RR_LW_SCRUBS_GROTTO SCENE_GROTTOS false
LW Scrubs Grotto
//Checks
RC_LW_DEKU_SCRUB_GROTTO_REAR CanStunDeku
RC_LW_DEKU_SCRUB_GROTTO_FRONT CanStunDeku
RC_LW_DEKU_SCRUB_GROTTO_BEEHIVE CanBreakUpperBeehives
RC_LW_DEKU_SCRUB_GROTTO_SUN_FAIRY (CanUse RG_SUNS_SONG)
//Exits
RR_LW_BEYOND_MIDO true

View file

@ -1,5 +1,6 @@
def RR_MARKET_ENTRANCE SCENE_MARKET_ENTRANCE_DAY false RA_THE_MARKET
Market Entrance
//Exits
RR_HYRULE_FIELD (or IsAdult AtDay)
RR_THE_MARKET true
RR_MARKET_GUARD_HOUSE (CanOpenOverworldDoor RG_GUARD_HOUSE_KEY)
@ -7,6 +8,7 @@ RR_MARKET_GUARD_HOUSE (CanOpenOverworldDoor RG_GUARD_HOUSE_KEY)
def RR_THE_MARKET SCENE_MARKET_DAY false RA_THE_MARKET
Market
//RANDOTODO add item avalibility to regions to remove need to hardcode logic in limited item use situations
//Checks
RC_MARKET_GRASS_1 (and IsChild (or CanUseSword (HasItem RG_GORONS_BRACELET)))
RC_MARKET_GRASS_2 (and IsChild (or CanUseSword (HasItem RG_GORONS_BRACELET)))
RC_MARKET_GRASS_3 (and IsChild (or CanUseSword (HasItem RG_GORONS_BRACELET)))
@ -19,6 +21,7 @@ RC_MK_NEAR_BAZAAR_CRATE_1 IsChild
RC_MK_NEAR_BAZAAR_CRATE_2 IsChild
RC_MK_SHOOTING_GALLERY_CRATE_1 IsChild
RC_MK_SHOOTING_GALLERY_CRATE_2 IsChild
//Exits
RR_MARKET_ENTRANCE true
RR_TOT_ENTRANCE true
RR_CASTLE_GROUNDS true
@ -32,7 +35,9 @@ RR_MARKET_BACK_ALLEY IsChild
def RR_MARKET_GUARD_HOUSE SCENE_MARKET_GUARD_HOUSE false
Market Guard House
//Events
CanEmptyBigPoes IsAdult
//Checks
RC_MARKET_10_BIG_POES (and IsAdult (or BigPoeKill (>= BigPoes RSK_BIG_POE_COUNT)))
RC_MARKET_GS_GUARD_HOUSE IsChild
RC_MK_GUARD_HOUSE_CHILD_POT_1 (and IsChild CanBreakPots)
@ -95,10 +100,12 @@ RC_MK_GUARD_HOUSE_CRATE_2 (and IsChild CanBreakCrates)
RC_MK_GUARD_HOUSE_CRATE_3 (and IsChild CanBreakCrates)
RC_MK_GUARD_HOUSE_CRATE_4 (and IsChild CanBreakCrates)
RC_MK_GUARD_HOUSE_CRATE_5 (and IsChild CanBreakCrates)
//Exits
RR_MARKET_ENTRANCE true
def RR_MARKET_BAZAAR SCENE_BAZAAR false
Market Bazaar
//Checks
RC_MARKET_BAZAAR_ITEM_1 true
RC_MARKET_BAZAAR_ITEM_2 true
RC_MARKET_BAZAAR_ITEM_3 true
@ -107,6 +114,7 @@ RC_MARKET_BAZAAR_ITEM_5 true
RC_MARKET_BAZAAR_ITEM_6 true
RC_MARKET_BAZAAR_ITEM_7 true
RC_MARKET_BAZAAR_ITEM_8 true
//Exits
RR_THE_MARKET true
def RR_MARKET_MASK_SHOP SCENE_HAPPY_MASK_SHOP false
@ -114,28 +122,37 @@ Market Mask Shop
//Currently, mask swap in menu doesn't need access to the mask shop
//If it is forced on/a setting, a copy of these events should be added to root
//it also doesn't need you to open kak gate, but that might be best treated as a bug
//Events
CanBorrowMasks (and (HasItem RG_ZELDAS_LETTER) KakarikoVillageGateOpen)
BorrowSkullMask (and RSK_COMPLETE_MASK_QUEST CanBorrowMasks)
BorrowSpookyMask (and RSK_COMPLETE_MASK_QUEST CanBorrowMasks)
BorrowBunnyHood (and RSK_COMPLETE_MASK_QUEST CanBorrowMasks)
BorrowRightMasks (and RSK_COMPLETE_MASK_QUEST CanBorrowMasks)
//Checks
RC_MASK_SHOP_HINT true
//Exits
RR_THE_MARKET true
def RR_MARKET_SHOOTING_GALLERY SCENE_SHOOTING_GALLERY false
Market Shooting Gallery
//Checks
RC_MARKET_SHOOTING_GALLERY_REWARD (and IsChild (HasItem RG_CHILD_WALLET))
//Exits
RR_THE_MARKET true
def RR_MARKET_BOMBCHU_BOWLING SCENE_BOMBCHU_BOWLING_ALLEY false
Market Bombchu Bowling
//Events
CouldPlayBowling (HasItem RG_CHILD_WALLET)
//Checks
RC_MARKET_BOMBCHU_BOWLING_FIRST_PRIZE (and CouldPlayBowling BombchusEnabled)
RC_MARKET_BOMBCHU_BOWLING_SECOND_PRIZE (and CouldPlayBowling BombchusEnabled)
//Exits
RR_THE_MARKET true
def RR_MARKET_TREASURE_CHEST_GAME SCENE_TREASURE_BOX_SHOP false
Market Treasure Chest Game
//Checks
RC_GREG_HINT (HasItem RG_CHILD_WALLET)
RC_MARKET_TREASURE_CHEST_GAME_REWARD (and (HasItem RG_CHILD_WALLET) (or (and (CanUse RG_LENS_OF_TRUTH) (not RSK_SHUFFLE_CHEST_MINIGAME)) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_SINGLE_KEYS) (SmallKeys SCENE_TREASURE_BOX_SHOP 6)) (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_PACK) (SmallKeys SCENE_TREASURE_BOX_SHOP 1)))))
RC_MARKET_TREASURE_CHEST_GAME_KEY_1 (and (HasItem RG_CHILD_WALLET) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_SINGLE_KEYS) (SmallKeys SCENE_TREASURE_BOX_SHOP 1)) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_PACK) (SmallKeys SCENE_TREASURE_BOX_SHOP 1)) (and (CanUse RG_LENS_OF_TRUTH) (not RSK_SHUFFLE_CHEST_MINIGAME)))))
@ -148,10 +165,12 @@ RC_MARKET_TREASURE_CHEST_GAME_KEY_4 (and (HasItem RG_CHILD_WALLET) (or (and (==
RC_MARKET_TREASURE_CHEST_GAME_ITEM_4 (and (HasItem RG_CHILD_WALLET) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_SINGLE_KEYS) (SmallKeys SCENE_TREASURE_BOX_SHOP 4)) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_PACK) (SmallKeys SCENE_TREASURE_BOX_SHOP 1)) (and (CanUse RG_LENS_OF_TRUTH) (not RSK_SHUFFLE_CHEST_MINIGAME)))))
RC_MARKET_TREASURE_CHEST_GAME_KEY_5 (and (HasItem RG_CHILD_WALLET) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_SINGLE_KEYS) (SmallKeys SCENE_TREASURE_BOX_SHOP 5)) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_PACK) (SmallKeys SCENE_TREASURE_BOX_SHOP 1)) (and (CanUse RG_LENS_OF_TRUTH) (not RSK_SHUFFLE_CHEST_MINIGAME)))))
RC_MARKET_TREASURE_CHEST_GAME_ITEM_5 (and (HasItem RG_CHILD_WALLET) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_SINGLE_KEYS) (SmallKeys SCENE_TREASURE_BOX_SHOP 5)) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_PACK) (SmallKeys SCENE_TREASURE_BOX_SHOP 1)) (and (CanUse RG_LENS_OF_TRUTH) (not RSK_SHUFFLE_CHEST_MINIGAME)))))
//Exits
RR_THE_MARKET true
def RR_MARKET_POTION_SHOP SCENE_POTION_SHOP_MARKET false
Market Potion Shop
//Checks
RC_MARKET_POTION_SHOP_ITEM_1 true
RC_MARKET_POTION_SHOP_ITEM_2 true
RC_MARKET_POTION_SHOP_ITEM_3 true
@ -160,10 +179,12 @@ RC_MARKET_POTION_SHOP_ITEM_5 true
RC_MARKET_POTION_SHOP_ITEM_6 true
RC_MARKET_POTION_SHOP_ITEM_7 true
RC_MARKET_POTION_SHOP_ITEM_8 true
//Exits
RR_THE_MARKET true
def RR_MARKET_BACK_ALLEY SCENE_BACK_ALLEY_DAY false RA_THE_MARKET
Market Back Alley
//Exits
RR_THE_MARKET true
RR_MARKET_BOMBCHU_SHOP (and AtNight (CanOpenOverworldDoor RG_BOMBCHU_SHOP_KEY))
RR_MARKET_DOG_LADY_HOUSE (CanOpenOverworldDoor RG_RICHARDS_HOUSE_KEY)
@ -171,6 +192,7 @@ RR_MARKET_MAN_IN_GREEN_HOUSE (and AtNight (CanOpenOverworldDoor RG_ALLEY_HOUSE_K
def RR_MARKET_BOMBCHU_SHOP SCENE_BOMBCHU_SHOP false
Market Bombchu Shop
//Checks
RC_MARKET_BOMBCHU_SHOP_ITEM_1 true
RC_MARKET_BOMBCHU_SHOP_ITEM_2 true
RC_MARKET_BOMBCHU_SHOP_ITEM_3 true
@ -179,24 +201,31 @@ RC_MARKET_BOMBCHU_SHOP_ITEM_5 true
RC_MARKET_BOMBCHU_SHOP_ITEM_6 true
RC_MARKET_BOMBCHU_SHOP_ITEM_7 true
RC_MARKET_BOMBCHU_SHOP_ITEM_8 true
//Exits
RR_MARKET_BACK_ALLEY true
def RR_MARKET_DOG_LADY_HOUSE SCENE_DOG_LADY_HOUSE false
Market Dog Lady House
//Checks
RC_MARKET_LOST_DOG (and IsChild AtNight)
RC_MK_LOST_DOG_HOUSE_CRATE CanBreakCrates
//Exits
RR_MARKET_BACK_ALLEY true
def RR_MARKET_MAN_IN_GREEN_HOUSE SCENE_BACK_ALLEY_HOUSE false
Market Man in Green House
//Checks
RC_MK_BACK_ALLEY_HOUSE_POT_1 CanBreakPots
RC_MK_BACK_ALLEY_HOUSE_POT_2 CanBreakPots
RC_MK_BACK_ALLEY_HOUSE_POT_3 CanBreakPots
//Exits
RR_MARKET_BACK_ALLEY true
def RR_TOT_ENTRANCE SCENE_TEMPLE_OF_TIME_EXTERIOR_DAY false RA_THE_MARKET
ToT Entrance
//Events
GossipStoneFairy CallGossipFairyExceptSuns
//Checks
RC_TOT_LEFTMOST_GOSSIP_STONE_FAIRY (or CallGossipFairyExceptSuns (and (CanUse RG_SUNS_SONG) IsAdult))
RC_TOT_LEFTMOST_GOSSIP_STONE_FAIRY_BIG (CanUse RG_SONG_OF_STORMS)
RC_TOT_LEFT_CENTER_GOSSIP_STONE_FAIRY (or CallGossipFairyExceptSuns (and (CanUse RG_SUNS_SONG) IsAdult))
@ -209,21 +238,26 @@ RC_TOT_LEFTMOST_GOSSIP_STONE true
RC_TOT_LEFT_CENTER_GOSSIP_STONE true
RC_TOT_RIGHT_CENTER_GOSSIP_STONE true
RC_TOT_RIGHTMOST_GOSSIP_STONE true
//Exits
RR_THE_MARKET true
RR_TEMPLE_OF_TIME true
def RR_TEMPLE_OF_TIME SCENE_TEMPLE_OF_TIME false RA_TEMPLE_OF_TIME
Temple of Time
//Checks
RC_TOT_LIGHT_ARROWS_CUTSCENE (and IsAdult CanTriggerLACS)
RC_ALTAR_HINT_CHILD IsChild
RC_ALTAR_HINT_ADULT IsAdult
RC_TOT_SHEIK_HINT IsAdult
//Exits
RR_TOT_ENTRANCE true
RR_TOT_BEYOND_DOOR_OF_TIME (or (== RSK_DOOR_OF_TIME RO_DOOROFTIME_OPEN) (and (CanUse RG_SONG_OF_TIME) (or (== RSK_DOOR_OF_TIME RO_DOOROFTIME_SONGONLY) (and (== StoneCount 3) (HasItem RG_OCARINA_OF_TIME)))))
def RR_TOT_BEYOND_DOOR_OF_TIME SCENE_TEMPLE_OF_TIME false RA_TEMPLE_OF_TIME
Beyond Door of Time
//Checks
RC_TOT_MASTER_SWORD IsAdult
RC_GIFT_FROM_RAURU IsAdult
RC_SHEIK_AT_TEMPLE (and (HasItem RG_FOREST_MEDALLION) IsAdult)
//Exits
RR_TEMPLE_OF_TIME true

View file

@ -1,12 +1,15 @@
def RR_SFM_ENTRYWAY SCENE_SACRED_FOREST_MEADOW false RA_SACRED_FOREST_MEADOW
SFM Entryway
//Exits
RR_LW_BEYOND_MIDO true
RR_SACRED_FOREST_MEADOW (or IsAdult (CanKillEnemy RE_WOLFOS))
RR_SFM_WOLFOS_GROTTO CanOpenBombGrotto
def RR_SACRED_FOREST_MEADOW SCENE_SACRED_FOREST_MEADOW false RA_SACRED_FOREST_MEADOW
Sacred Forest Meadow
//Events
GossipStoneFairy CallGossipFairyExceptSuns
//Checks
RC_SONG_FROM_SARIA (and IsChild (HasItem RG_ZELDAS_LETTER))
RC_SHEIK_IN_FOREST IsAdult
RC_SFM_GS (and IsAdult (and HookshotOrBoomerang CanGetNightTimeGS))
@ -19,6 +22,7 @@ RC_SFM_SARIA_GOSSIP_STONE_FAIRY_BIG (CanUse RG_SONG_OF_STORMS)
RC_SFM_MAZE_LOWER_GOSSIP_STONE true
RC_SFM_MAZE_UPPER_GOSSIP_STONE true
RC_SFM_SARIA_GOSSIP_STONE true
//Exits
RR_SFM_ENTRYWAY true
RR_FOREST_TEMPLE_ENTRYWAY (CanUse RG_HOOKSHOT)
RR_SFM_FAIRY_GROTTO true
@ -26,12 +30,16 @@ RR_SFM_STORMS_GROTTO CanOpenStormsGrotto
def RR_SFM_WOLFOS_GROTTO SCENE_GROTTOS false
SFM Wolfos Grotto
//Checks
RC_SFM_WOLFOS_GROTTO_CHEST (CanKillEnemy RE_WOLFOS ED_CLOSE true 2)
//Exits
RR_SFM_ENTRYWAY true
def RR_SFM_FAIRY_GROTTO SCENE_GROTTOS false
SFM Fairy Grotto
//Events
FreeFairies true
//Checks
RC_SFM_FAIRY_GROTTO_FAIRY_1 true
RC_SFM_FAIRY_GROTTO_FAIRY_2 true
RC_SFM_FAIRY_GROTTO_FAIRY_3 true
@ -40,11 +48,14 @@ RC_SFM_FAIRY_GROTTO_FAIRY_5 true
RC_SFM_FAIRY_GROTTO_FAIRY_6 true
RC_SFM_FAIRY_GROTTO_FAIRY_7 true
RC_SFM_FAIRY_GROTTO_FAIRY_8 true
//Exits
RR_SACRED_FOREST_MEADOW true
def RR_SFM_STORMS_GROTTO SCENE_GROTTOS false
SFM Storms Grotto
//Checks
RC_SFM_DEKU_SCRUB_GROTTO_REAR CanStunDeku
RC_SFM_DEKU_SCRUB_GROTTO_FRONT CanStunDeku
RC_SFM_STORMS_GROTTO_BEEHIVE CanBreakUpperBeehives
//Exits
RR_SACRED_FOREST_MEADOW true

View file

@ -1,20 +1,25 @@
def RR_TH_1_TORCH_CELL SCENE_THIEVES_HIDEOUT false RA_GERUDO_FORTRESS
Thieves Hideout 1 Torch Cell
//Events
THCouldFree1TorchCarpenter (CanKillEnemy RE_GERUDO_WARRIOR)
THRescuedAllCarpenters (and (SmallKeys SCENE_THIEVES_HIDEOUT (if (== RSK_GERUDO_FORTRESS RO_GF_CARPENTERS_NORMAL) 4 1)) (and THCouldFree1TorchCarpenter (and THCouldFreeDoubleCellCarpenter (and TH_CouldFreeDeadEndCarpenter THCouldRescueSlopeCarpenter))))
//Checks
RC_TH_1_TORCH_CARPENTER (CanKillEnemy RE_GERUDO_WARRIOR)
RC_TH_1_TORCH_CELL_RIGHT_POT CanBreakPots
RC_TH_1_TORCH_CELL_MID_POT CanBreakPots
RC_TH_1_TORCH_CELL_LEFT_POT CanBreakPots
RC_TH_1_TORCH_CELL_CRATE CanBreakCrates
RC_TH_FREED_CARPENTERS THRescuedAllCarpenters
//Exits
RR_GF_OUTSKIRTS true
RR_GF_NEAR_GROTTO true
def RR_TH_DOUBLE_CELL SCENE_THIEVES_HIDEOUT false RA_GERUDO_FORTRESS
Thieves Hideout Double Cell
//Events
THCouldFreeDoubleCellCarpenter (CanKillEnemy RE_GERUDO_WARRIOR)
THRescuedAllCarpenters (and (== RSK_GERUDO_FORTRESS RO_GF_CARPENTERS_NORMAL) (and (SmallKeys SCENE_THIEVES_HIDEOUT 4) (and THCouldFree1TorchCarpenter (and THCouldFreeDoubleCellCarpenter (and TH_CouldFreeDeadEndCarpenter THCouldRescueSlopeCarpenter)))))
//Checks
RC_TH_DOUBLE_CELL_CARPENTER (CanKillEnemy RE_GERUDO_WARRIOR)
RC_TH_NEAR_DOUBLE_CELL_RIGHT_POT CanBreakPots
RC_TH_NEAR_DOUBLE_CELL_MID_POT CanBreakPots
@ -26,69 +31,85 @@ RC_TH_LEFTMOST_JAILED_POT CanBreakPots
RC_TH_DOUBLE_CELL_LEFT_CRATE CanBreakCrates
RC_TH_DOUBLE_CELL_RIGHT_CRATE CanBreakCrates
RC_TH_FREED_CARPENTERS THRescuedAllCarpenters
//Exits
RR_GF_OUTSKIRTS true
RR_GF_NEAR_GROTTO true
def RR_TH_DEAD_END_CELL SCENE_THIEVES_HIDEOUT false RA_GERUDO_FORTRESS
Thieves Hideout Dead End Cell
//Events
TH_CouldFreeDeadEndCarpenter (CanKillEnemy RE_GERUDO_WARRIOR)
THRescuedAllCarpenters (and (== RSK_GERUDO_FORTRESS RO_GF_CARPENTERS_NORMAL) (and (SmallKeys SCENE_THIEVES_HIDEOUT 4) (and THCouldFree1TorchCarpenter (and THCouldFreeDoubleCellCarpenter (and TH_CouldFreeDeadEndCarpenter THCouldRescueSlopeCarpenter)))))
//Checks
RC_TH_DEAD_END_CARPENTER (CanKillEnemy RE_GERUDO_WARRIOR)
RC_TH_DEAD_END_CELL_CRATE CanBreakCrates
RC_TH_FREED_CARPENTERS THRescuedAllCarpenters
//Exits
RR_GF_BELOW_GS true
def RR_TH_STEEP_SLOPE_CELL SCENE_THIEVES_HIDEOUT false RA_GERUDO_FORTRESS
Thieves Hideout Steep Slope Cell
//Events
THCouldRescueSlopeCarpenter (CanKillEnemy RE_GERUDO_WARRIOR)
THRescuedAllCarpenters (and (== RSK_GERUDO_FORTRESS RO_GF_CARPENTERS_NORMAL) (and (SmallKeys SCENE_THIEVES_HIDEOUT 4) (and THCouldFree1TorchCarpenter (and THCouldFreeDoubleCellCarpenter (and TH_CouldFreeDeadEndCarpenter THCouldRescueSlopeCarpenter)))))
//Checks
RC_TH_STEEP_SLOPE_CARPENTER (CanKillEnemy RE_GERUDO_WARRIOR)
RC_TH_STEEP_SLOPE_RIGHT_POT CanBreakPots
RC_TH_STEEP_SLOPE_LEFT_POT CanBreakPots
RC_TH_FREED_CARPENTERS THRescuedAllCarpenters
//Exits
RR_GF_ABOVE_GTG true
RR_GF_TOP_OF_LOWER_VINES true
def RR_TH_KITCHEN_CORRIDOR SCENE_THIEVES_HIDEOUT false RA_GERUDO_FORTRESS
Thieves Hideout Kitchen Corridor
//Checks
RC_TH_NEAR_KITCHEN_LEFTMOST_CRATE CanBreakCrates
RC_TH_NEAR_KITCHEN_MID_LEFT_CRATE CanBreakCrates
RC_TH_NEAR_KITCHEN_MID_RIGHT_CRATE CanBreakCrates
RC_TH_NEAR_KITCHEN_RIGHTMOST_CRATE CanBreakCrates
//Exits
RR_GF_NEAR_GROTTO true
RR_GF_ABOVE_GTG true
RR_TH_KITCHEN_MAIN (CanPassEnemy RE_GERUDO_GUARD)
def RR_TH_KITCHEN_MAIN SCENE_THIEVES_HIDEOUT false RA_GERUDO_FORTRESS
Thieves Hideout Kitchen Bottom
//Checks
RC_TH_KITCHEN_POT_1 (and CanBreakPots (CanPassEnemy RE_GERUDO_GUARD))
RC_TH_KITCHEN_POT_2 (and CanBreakPots (CanPassEnemy RE_GERUDO_GUARD))
RC_TH_KITCHEN_CRATE (and CanBreakCrates (CanPassEnemy RE_GERUDO_GUARD))
RC_TH_KITCHEN_SUN_FAIRY (and (CanPassEnemy RE_GERUDO_GUARD) (CanUse RG_SUNS_SONG))
//Exits
RR_TH_KITCHEN_CORRIDOR (CanPassEnemy RE_GERUDO_GUARD)
RR_TH_KITCHEN_TOP (CanPassEnemy RE_GERUDO_GUARD)
def RR_TH_KITCHEN_TOP SCENE_THIEVES_HIDEOUT false RA_GERUDO_FORTRESS
Thieves Hideout Kitchen Top
//Checks
RC_TH_KITCHEN_POT_1 (CanUse RG_BOOMERANG)
RC_TH_KITCHEN_POT_2 (CanUse RG_BOOMERANG)
//Exits
RR_TH_KITCHEN_MAIN true
RR_GF_NEAR_GS (or (CanPassEnemy RE_GERUDO_GUARD) (CanUse RG_HOVER_BOOTS))
RR_GF_TOP_OF_LOWER_VINES (or (CanPassEnemy RE_GERUDO_GUARD) (CanUse RG_HOVER_BOOTS))
def RR_TH_BREAK_ROOM SCENE_THIEVES_HIDEOUT false RA_GERUDO_FORTRESS
Thieves Hideout Break Room
//Checks
RC_TH_BREAK_ROOM_FRONT_POT (or (and (CanPassEnemy RE_BREAK_ROOM_GUARD) CanBreakPots) (and (CanPassEnemy RE_GERUDO_GUARD) (CanUse RG_BOOMERANG)))
RC_TH_BREAK_ROOM_BACK_POT (or (and (CanPassEnemy RE_BREAK_ROOM_GUARD) CanBreakPots) (and (CanPassEnemy RE_GERUDO_GUARD) (CanUse RG_BOOMERANG)))
RC_TH_BREAK_HALLWAY_OUTER_CRATE CanBreakCrates
RC_TH_BREAK_HALLWAY_INNER_CRATE CanBreakCrates
RC_TH_BREAK_ROOM_RIGHT_CRATE (or (and (CanPassEnemy RE_BREAK_ROOM_GUARD) CanBreakCrates) (and (CanPassEnemy RE_GERUDO_GUARD) (and HasExplosives (CanUse RG_BOOMERANG))))
RC_TH_BREAK_ROOM_LEFT_CRATE (or (and (CanPassEnemy RE_BREAK_ROOM_GUARD) CanBreakCrates) (and (CanPassEnemy RE_GERUDO_GUARD) (and HasExplosives (CanUse RG_BOOMERANG))))
//Exits
RR_GF_BELOW_CHEST (CanPassEnemy RE_GERUDO_GUARD)
//Implies logic->CanPassEnemy(RE_GERUDO_GUARD)
RR_TH_BREAK_ROOM_CORRIDOR (CanUse RG_HOOKSHOT)
def RR_TH_BREAK_ROOM_CORRIDOR SCENE_THIEVES_HIDEOUT false RA_GERUDO_FORTRESS
Thieves Hideout Break Room
//Exits
RR_TH_BREAK_ROOM (CanUse RG_HOOKSHOT)
RR_GF_ABOVE_JAIL true

View file

@ -1,11 +1,13 @@
def RR_ZORAS_DOMAIN SCENE_ZORAS_DOMAIN false RA_ZORAS_DOMAIN
Zoras Domain
//Events
GossipStoneFairy CallGossipFairyExceptSuns
NutPot true
StickPot IsChild
FishGroup IsChild
KingZoraThawed (and IsAdult BlueFire)
DeliverLetter (and (CanUse RG_RUTOS_LETTER) (and IsChild (!= RSK_ZORAS_FOUNTAIN RO_ZF_OPEN)))
//Checks
RC_ZD_DIVING_MINIGAME (and (HasItem RG_BRONZE_SCALE) (and (HasItem RG_CHILD_WALLET) IsChild))
RC_ZD_CHEST (and IsChild (CanUse RG_STICKS))
RC_ZD_KING_ZORA_THAWED (and IsAdult KingZoraThawed)
@ -26,6 +28,7 @@ RC_ZD_NEAR_SHOP_POT_2 CanBreakPots
RC_ZD_NEAR_SHOP_POT_3 CanBreakPots
RC_ZD_NEAR_SHOP_POT_4 CanBreakPots
RC_ZD_NEAR_SHOP_POT_5 CanBreakPots
//Exits
RR_ZR_BEHIND_WATERFALL true
RR_LH_FROM_SHORTCUT (and IsChild (or (HasItem RG_SILVER_SCALE) (CanUse RG_IRON_BOOTS)))
RR_ZD_BEHIND_KING_ZORA (or DeliverLetter (or (== RSK_ZORAS_FOUNTAIN RO_ZF_OPEN) (or (and (== RSK_ZORAS_FOUNTAIN RO_ZF_CLOSED_CHILD) IsAdult) (and RT_ZD_KING_ZORA_SKIP IsAdult))))
@ -34,18 +37,23 @@ RR_ZORAS_DOMAIN_ISLAND true
def RR_ZORAS_DOMAIN_ISLAND SCENE_ZORAS_DOMAIN false RA_ZORAS_DOMAIN
Zoras Domain Island
//Exits
RR_ZORAS_DOMAIN (or IsAdult (HasItem RG_BRONZE_SCALE))
RR_ZD_STORMS_GROTTO CanOpenStormsGrotto
def RR_ZD_BEHIND_KING_ZORA SCENE_ZORAS_DOMAIN false RA_ZORAS_DOMAIN
ZD Behind King Zora
//Events
KingZoraThawed (and IsAdult BlueFire)
//Checks
RC_ZD_BEHIND_KING_ZORA_BEEHIVE (and IsChild CanBreakUpperBeehives)
//Exits
RR_ZORAS_DOMAIN (or DeliverLetter (or (== RSK_ZORAS_FOUNTAIN RO_ZF_OPEN) (and (== RSK_ZORAS_FOUNTAIN RO_ZF_CLOSED_CHILD) IsAdult)))
RR_ZORAS_FOUNTAIN true
def RR_ZD_SHOP SCENE_ZORA_SHOP false
ZD Shop
//Checks
RC_ZD_SHOP_ITEM_1 true
RC_ZD_SHOP_ITEM_2 true
RC_ZD_SHOP_ITEM_3 true
@ -54,11 +62,14 @@ RC_ZD_SHOP_ITEM_5 true
RC_ZD_SHOP_ITEM_6 true
RC_ZD_SHOP_ITEM_7 true
RC_ZD_SHOP_ITEM_8 true
//Exits
RR_ZORAS_DOMAIN true
def RR_ZD_STORMS_GROTTO SCENE_GROTTOS false
ZD Storms Grotto
//Events
FreeFairies true
//Checks
RC_ZD_FAIRY_GROTTO_FAIRY_1 true
RC_ZD_FAIRY_GROTTO_FAIRY_2 true
RC_ZD_FAIRY_GROTTO_FAIRY_3 true
@ -67,4 +78,5 @@ RC_ZD_FAIRY_GROTTO_FAIRY_5 true
RC_ZD_FAIRY_GROTTO_FAIRY_6 true
RC_ZD_FAIRY_GROTTO_FAIRY_7 true
RC_ZD_FAIRY_GROTTO_FAIRY_8 true
//Exits
RR_ZORAS_DOMAIN_ISLAND true

View file

@ -1,7 +1,9 @@
def RR_ZORAS_FOUNTAIN SCENE_ZORAS_FOUNTAIN false RA_ZORAS_FOUNTAIN
Zoras Fountain
//Events
GossipStoneFairy CallGossipFairyExceptSuns
ButterflyFairy (and (CanUse RG_STICKS) AtDay)
//Checks
RC_ZF_GS_TREE IsChild
RC_ZF_GS_ABOVE_THE_LOG (and IsChild (and HookshotOrBoomerang CanGetNightTimeGS))
RC_ZF_FAIRY_GOSSIP_STONE_FAIRY CallGossipFairyExceptSuns
@ -14,6 +16,7 @@ RC_ZF_NEAR_JABU_POT_1 (and IsChild CanBreakPots)
RC_ZF_NEAR_JABU_POT_2 (and IsChild CanBreakPots)
RC_ZF_NEAR_JABU_POT_3 (and IsChild CanBreakPots)
RC_ZF_NEAR_JABU_POT_4 (and IsChild CanBreakPots)
//Exits
RR_ZD_BEHIND_KING_ZORA true
RR_ZF_ICEBERGS IsAdult
RR_ZF_LAKEBED (CanUse RG_IRON_BOOTS)
@ -25,13 +28,16 @@ RR_ZF_GREAT_FAIRY_FOUNTAIN (or HasExplosives (and RT_ZF_GREAT_FAIRY_WITHOUT_EXPL
def RR_ZF_ICEBERGS SCENE_ZORAS_FOUNTAIN false RA_ZORAS_FOUNTAIN
ZF Icebergs
//Checks
RC_ZF_ICEBERG_FREESTANDING_POH IsAdult
//Exits
RR_ZORAS_FOUNTAIN (or (HasItem RG_BRONZE_SCALE) (CanUse RG_HOVER_BOOTS))
RR_ZF_LAKEBED (CanUse RG_IRON_BOOTS)
RR_ZF_LEDGE true
def RR_ZF_LAKEBED SCENE_ZORAS_FOUNTAIN false RA_ZORAS_FOUNTAIN
ZF Lakebed
//Checks
RC_ZF_BOTTOM_FREESTANDING_POH (and IsAdult (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 16)))
RC_ZF_BOTTOM_NORTH_INNER_RUPEE (and IsAdult (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 16)))
RC_ZF_BOTTOM_NORTHEAST_INNER_RUPEE (and IsAdult (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 16)))
@ -51,10 +57,12 @@ RC_ZF_BOTTOM_SOUTHEAST_OUTER_RUPEE (and IsAdult (and (CanUse RG_IRON_BOOTS) (>=
RC_ZF_BOTTOM_SOUTH_OUTER_RUPEE (and IsAdult (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 16)))
RC_ZF_BOTTOM_SOUTHWEST_OUTER_RUPEE (and IsAdult (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 16)))
RC_ZF_BOTTOM_NORTHWEST_OUTER_RUPEE (and IsAdult (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 16)))
//Exits
RR_ZORAS_FOUNTAIN (HasItem RG_BRONZE_SCALE)
def RR_ZF_LEDGE SCENE_ZORAS_FOUNTAIN false RA_ZORAS_FOUNTAIN
ZF Ledge
//Exits
RR_ZORAS_FOUNTAIN (HasItem RG_BRONZE_SCALE)
RR_ZF_ICEBERGS IsAdult
RR_ZF_LAKEBED (CanUse RG_IRON_BOOTS)
@ -62,26 +70,33 @@ RR_ICE_CAVERN_ENTRYWAY true
def RR_ZF_HIDDEN_CAVE SCENE_ZORAS_FOUNTAIN false RA_ZORAS_FOUNTAIN
ZF Hidden Cave
//Checks
RC_ZF_HIDDEN_CAVE_POT_1 (and IsAdult CanBreakPots)
RC_ZF_HIDDEN_CAVE_POT_2 (and IsAdult CanBreakPots)
RC_ZF_HIDDEN_CAVE_POT_3 (and IsAdult CanBreakPots)
//There are invisible big skultullas here as adult but they do not block the path and can be "seen" with Z-target
//Lens is not currently needed for this either, implying they are not considered blocking, but it's open for discussion long-term
//Exits
RR_ZF_HIDDEN_LEDGE true
def RR_ZF_HIDDEN_LEDGE SCENE_ZORAS_FOUNTAIN false RA_ZORAS_FOUNTAIN
ZF Hidden Ledge
//Checks
RC_ZF_GS_HIDDEN_CAVE (and IsAdult (and (CanGetEnemyDrop RE_GOLD_SKULLTULA ED_BOMB_THROW) CanGetNightTimeGS))
//It is possible to avoid fall damage by jumping towards the right and landing in deeper water, but this is basically never relevent
//Exits
RR_ZORAS_FOUNTAIN (or (HasItem RG_BRONZE_SCALE) TakeDamage)
RR_ZF_HIDDEN_CAVE true
def RR_ZF_ROCK SCENE_ZORAS_FOUNTAIN false RA_ZORAS_FOUNTAIN
ZF Rock
//Has a wonder item
//Exits
RR_ZORAS_FOUNTAIN true
def RR_ZF_GREAT_FAIRY_FOUNTAIN SCENE_GREAT_FAIRYS_FOUNTAIN_SPELLS false
ZF Great Fairy Fountain
//Checks
RC_ZF_GREAT_FAIRY_REWARD (CanUse RG_ZELDAS_LULLABY)
//Exits
RR_ZORAS_FOUNTAIN true

View file

@ -1,5 +1,6 @@
def RR_ZR_FRONT SCENE_ZORAS_RIVER true RA_ZORAS_RIVER
ZR Front
//Checks
RC_ZR_GS_TREE (and IsChild (CanKillEnemy RE_GOLD_SKULLTULA ED_CLOSE))
RC_ZR_GRASS_1 CanCutShrubs
RC_ZR_GRASS_2 CanCutShrubs
@ -13,15 +14,18 @@ RC_ZR_GRASS_9 CanCutShrubs
RC_ZR_GRASS_10 CanCutShrubs
RC_ZR_GRASS_11 CanCutShrubs
RC_ZR_GRASS_12 CanCutShrubs
//Exits
RR_ZORAS_RIVER (or IsAdult BlastOrSmash)
RR_HYRULE_FIELD true
def RR_ZORAS_RIVER SCENE_ZORAS_RIVER true RA_ZORAS_RIVER
Zora River
//Events
GossipStoneFairy CallGossipFairy
BeanPlantFairy (and IsChild (and (CanUse RG_MAGIC_BEAN) (CanUse RG_SONG_OF_STORMS)))
ButterflyFairy (CanUse RG_STICKS)
BugShrub CanCutShrubs
//Checks
RC_ZR_MAGIC_BEAN_SALESMAN (and (HasItem RG_CHILD_WALLET) IsChild)
RC_ZR_FROGS_OCARINA_GAME (and IsChild (and (CanUse RG_ZELDAS_LULLABY) (and (CanUse RG_SARIAS_SONG) (and (CanUse RG_SUNS_SONG) (and (CanUse RG_EPONAS_SONG) (and (CanUse RG_SONG_OF_TIME) (CanUse RG_SONG_OF_STORMS)))))))
RC_ZR_FROGS_IN_THE_RAIN (and IsChild (CanUse RG_SONG_OF_STORMS))
@ -49,6 +53,7 @@ RC_ZR_BENEATH_WATERFALL_RIGHT_RUPEE (and IsAdult (or (HasItem RG_BRONZE_SCALE) (
RC_ZR_NEAR_GROTTOS_GOSSIP_STONE true
RC_ZR_NEAR_DOMAIN_GOSSIP_STONE true
RC_ZR_NEAR_FREESTANDING_POH_GRASS CanCutShrubs
//Exits
RR_ZR_FRONT true
RR_ZR_OPEN_GROTTO true
RR_ZR_FAIRY_GROTTO (Here BlastOrSmash)
@ -58,20 +63,24 @@ RR_ZR_BEHIND_WATERFALL (or (== RSK_SLEEPING_WATERFALL RO_WATERFALL_OPEN) (or (He
def RR_ZR_FROM_SHORTCUT SCENE_ZORAS_RIVER false RA_ZORAS_RIVER
ZR From Shortcut
//Exits
RR_ZORAS_RIVER (or (> Hearts 1) (or (HasItem RG_BOTTLE_WITH_FAIRY) (HasItem RG_BRONZE_SCALE)))
RR_THE_LOST_WOODS (or (HasItem RG_SILVER_SCALE) (CanUse RG_IRON_BOOTS))
def RR_ZR_BEHIND_WATERFALL SCENE_ZORAS_RIVER true RA_ZORAS_RIVER
ZR Behind Waterfall
//Exits
RR_ZORAS_RIVER true
RR_ZORAS_DOMAIN true
def RR_ZR_OPEN_GROTTO SCENE_GROTTOS false
ZR Open Grotto
//Events
GossipStoneFairy CallGossipFairy
ButterflyFairy (CanUse RG_STICKS)
BugShrub CanCutShrubs
LoneFish true
//Checks
RC_ZR_OPEN_GROTTO_CHEST true
RC_ZR_OPEN_GROTTO_FISH HasBottle
RC_ZR_OPEN_GROTTO_GOSSIP_STONE_FAIRY CallGossipFairy
@ -83,11 +92,14 @@ RC_ZR_OPEN_GROTTO_GRASS_1 CanCutShrubs
RC_ZR_OPEN_GROTTO_GRASS_2 CanCutShrubs
RC_ZR_OPEN_GROTTO_GRASS_3 CanCutShrubs
RC_ZR_OPEN_GROTTO_GRASS_4 CanCutShrubs
//Exits
RR_ZORAS_RIVER true
def RR_ZR_FAIRY_GROTTO SCENE_GROTTOS false
ZR Fairy Grotto
//Events
FreeFairies true
//Checks
RC_ZR_FAIRY_GROTTO_FAIRY_1 true
RC_ZR_FAIRY_GROTTO_FAIRY_2 true
RC_ZR_FAIRY_GROTTO_FAIRY_3 true
@ -96,11 +108,14 @@ RC_ZR_FAIRY_GROTTO_FAIRY_5 true
RC_ZR_FAIRY_GROTTO_FAIRY_6 true
RC_ZR_FAIRY_GROTTO_FAIRY_7 true
RC_ZR_FAIRY_GROTTO_FAIRY_8 true
//Exits
RR_ZORAS_RIVER true
def RR_ZR_STORMS_GROTTO SCENE_GROTTOS false
ZR Storms Grotto
//Checks
RC_ZR_DEKU_SCRUB_GROTTO_REAR CanStunDeku
RC_ZR_DEKU_SCRUB_GROTTO_FRONT CanStunDeku
RC_ZR_STORMS_GROTTO_BEEHIVE CanBreakUpperBeehives
//Exits
RR_ZORAS_RIVER true

View file

@ -1,18 +1,22 @@
def RR_ROOT SCENE_ID_MAX false RA_LINKS_POCKET
Root
//Events
KakarikoVillageGateOpen (== RSK_KAK_GATE RO_KAK_GATE_OPEN)
THCouldFree1TorchCarpenter (== RSK_GERUDO_FORTRESS RO_GF_CARPENTERS_FREE)
THCouldFreeDoubleCellCarpenter (or (== RSK_GERUDO_FORTRESS RO_GF_CARPENTERS_FREE) (== RSK_GERUDO_FORTRESS RO_GF_CARPENTERS_FAST))
TH_CouldFreeDeadEndCarpenter (or (== RSK_GERUDO_FORTRESS RO_GF_CARPENTERS_FREE) (== RSK_GERUDO_FORTRESS RO_GF_CARPENTERS_FAST))
THCouldRescueSlopeCarpenter (or (== RSK_GERUDO_FORTRESS RO_GF_CARPENTERS_FREE) (== RSK_GERUDO_FORTRESS RO_GF_CARPENTERS_FAST))
THRescuedAllCarpenters (== RSK_GERUDO_FORTRESS RO_GF_CARPENTERS_FREE)
//Checks
RC_LINKS_POCKET true
RC_TRIFORCE_COMPLETED (>= TriforcePiecesCollected (add RSK_TRIFORCE_HUNT_PIECES_REQUIRED 1))
RC_SARIA_SONG_HINT (CanUse RG_SARIAS_SONG)
//Exits
RR_ROOT_EXITS true
def RR_ROOT_EXITS SCENE_ID_MAX false RA_LINKS_POCKET
Root Exits
//Exits
RR_CHILD_SPAWN IsChild
RR_ADULT_SPAWN IsAdult
RR_MINUET_OF_FOREST_WARP (CanUse RG_MINUET_OF_FOREST)
@ -24,32 +28,40 @@ RR_PRELUDE_OF_LIGHT_WARP (CanUse RG_PRELUDE_OF_LIGHT)
def RR_CHILD_SPAWN SCENE_ID_MAX false RA_LINKS_POCKET
Child Spawn
//Exits
RR_KF_LINKS_HOUSE true
def RR_ADULT_SPAWN SCENE_ID_MAX false RA_LINKS_POCKET
Adult Spawn
//Exits
RR_TEMPLE_OF_TIME true
def RR_MINUET_OF_FOREST_WARP SCENE_ID_MAX false RA_LINKS_POCKET
Minuet of Forest Warp
//Exits
RR_SACRED_FOREST_MEADOW true
def RR_BOLERO_OF_FIRE_WARP SCENE_ID_MAX false RA_LINKS_POCKET
Bolero of Fire Warp
//Exits
RR_DMC_CENTRAL_LOCAL true
def RR_SERENADE_OF_WATER_WARP SCENE_ID_MAX false RA_LINKS_POCKET
Serenade of Water Warp
//Exits
RR_LAKE_HYLIA true
def RR_REQUIEM_OF_SPIRIT_WARP SCENE_ID_MAX false RA_LINKS_POCKET
Requiem of Spirit Warp
//Exits
RR_DESERT_COLOSSUS true
def RR_NOCTURNE_OF_SHADOW_WARP SCENE_ID_MAX false RA_LINKS_POCKET
Nocturne of Shadow Warp
//Exits
RR_GRAVEYARD_WARP_PAD_REGION true
def RR_PRELUDE_OF_LIGHT_WARP SCENE_ID_MAX false RA_LINKS_POCKET
Prelude of Light Warp
//Exits
RR_TEMPLE_OF_TIME true