split up logic.s, ignore generated file, flesh out code for alternative output, fix CMake to generate implicitly

This commit is contained in:
Demur Rumed 2025-07-20 16:05:28 +00:00
commit cd71c102f9
40 changed files with 6878 additions and 13196 deletions

View file

@ -229,13 +229,6 @@ add_custom_target(
DEPENDS ZAPD
)
add_custom_target(
CompileLogic
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/soh/compile_logic.py ${CMAKE_CURRENT_SOURCE_DIR}/soh/soh/Enhancements/randomizer/logic.s ${CMAKE_CURRENT_SOURCE_DIR}/soh/soh/Enhancements/randomizer/location_access/generated.cpp
BYPRODUCTS ${CMAKE_CURRENT_SOURCE_DIR}/soh/soh/Enhancements/randomizer/location_access/generated.cpp
)
if(CMAKE_SYSTEM_NAME MATCHES "Linux")
find_package(ImageMagick COMPONENTS convert)
if (ImageMagick_FOUND)

View file

@ -124,6 +124,7 @@ source_group("include" FILES ${Header_Files__include})
file(GLOB_RECURSE soh__ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "soh/*.c" "soh/*.cpp" "soh/*.h" "soh/*.hpp")
# Add specific files that don't match the pattern
list(APPEND soh__ ${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/randomizer/generated/regions.cpp)
list(APPEND soh__ ${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/savestates_extern.inc)
list(APPEND soh__ ${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/speechsynthesizer/DarwinSpeechSynthesizer.mm)
@ -212,6 +213,49 @@ source_group("src\\overlays\\gamestates" REGULAR_EXPRESSION "src/overlays/games
source_group("src\\overlays\\misc" REGULAR_EXPRESSION "src/overlays/misc/*")
# }}}
find_package(Python3 COMPONENTS Interpreter)
add_custom_command(
OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/randomizer/generated/regions.cpp
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/compile_logic.py
${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/randomizer/logic/dungeons/bottom_of_the_well.s
${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/randomizer/logic/dungeons/deku_tree.s
${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/randomizer/logic/dungeons/dodongos_cavern.s
${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/randomizer/logic/dungeons/fire_temple.s
${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/randomizer/logic/dungeons/forest_temple.s
${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/randomizer/logic/dungeons/ganons_castle.s
${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/randomizer/logic/dungeons/gerudo_training_ground.s
${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/randomizer/logic/dungeons/ice_cavern.s
${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/randomizer/logic/dungeons/jabu_jabus_belly.s
${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/randomizer/logic/dungeons/shadow_temple.s
${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/randomizer/logic/dungeons/spirit_temple.s
${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/randomizer/logic/dungeons/water_temple.s
${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/randomizer/logic/overworld/castle_grounds.s
${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/randomizer/logic/overworld/death_mountain_crater.s
${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/randomizer/logic/overworld/death_mountain_trail.s
${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/randomizer/logic/overworld/desert_colossus.s
${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/randomizer/logic/overworld/gerudo_fortress.s
${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/randomizer/logic/overworld/gerudo_valley.s
${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/randomizer/logic/overworld/goron_city.s
${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/randomizer/logic/overworld/graveyard.s
${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/randomizer/logic/overworld/haunted_wasteland.s
${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/randomizer/logic/overworld/hyrule_field.s
${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/randomizer/logic/overworld/kakariko.s
${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/randomizer/logic/overworld/kokiri_forest.s
${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/randomizer/logic/overworld/lake_hylia.s
${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/randomizer/logic/overworld/lon_lon_ranch.s
${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/randomizer/logic/overworld/lost_woods.s
${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/randomizer/logic/overworld/market.s
${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/randomizer/logic/overworld/sacred_forest_meadow.s
${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/randomizer/logic/overworld/thieves_hideout.s
${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/randomizer/logic/overworld/zoras_domain.s
${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/randomizer/logic/overworld/zoras_fountain.s
${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/randomizer/logic/overworld/zoras_river.s
${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/randomizer/logic/root.s
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/compile_logic.py cpp ${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/randomizer/logic ${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/randomizer/generated
VERBATIM
)
set(ALL_FILES
${Header_Files}
${Header_Files__include}

View file

@ -1,11 +1,143 @@
#!/usr/bin/env python
from sys import argv
import os
if len(argv) < 2:
print("expects input file & output file")
if len(argv) < 3:
print("compile_logic.py type input-directory output-directory")
exit()
class Cpp:
RR_PRELUDE = """
#include "soh/Enhancements/randomizer/location_access.h"
#include "soh/Enhancements/randomizer/entrance.h"
#include "soh/Enhancements/randomizer/dungeon.h"
using namespace Rando;
extern "C" SaveContext gSaveContext;
void RegionTable_Init_Generated() {
// clang-format off
"""
RR_EPILOGUE = """
// clang-format on
}"""
def generate_rr(self, dirname, RRs):
result = []
output = result.append
output(self.RR_PRELUDE)
for rr in RRs:
if isinstance(rr, str):
output(rr)
output("\n")
continue
output(f"areaTable[{rr.name}] = Region(\"{rr.ui_name}\", {rr.scene}, {'true' if rr.timepass else 'false'}, {{{','.join(rr.areas)}}}, {{")
if rr.events:
output("\n")
for name, code in rr.events:
output(f"\tEventAccess(&logic->{name}, []{{return {self.compile_rr(rr, code)};}}),\n")
output("}, {")
if rr.checks:
output("\n")
for name, code in rr.checks:
output(f"\tLOCATION({name}, {self.compile_rr(rr, code)}),\n")
output("}, {")
if rr.exits:
output("\n")
for name, code in rr.exits:
deprioritize = isinstance(code, list) and isinstance(code[0], str) and code[0] == "@deprioritize"
if deprioritize:
code = code[1]
output(f"\tEntrance({name}, []{{return {self.compile_rr(rr, code)};}}")
if deprioritize:
output(", false")
output("),\n")
output("});\n")
output(self.RR_EPILOGUE)
with open(dirname + "/regions.cpp", "w", encoding="ascii") as f:
for s in result:
f.write(s)
def compile_rr(self, rr, ast):
result = []
output = result.append
if ast:
if isinstance(ast, str):
f = ast
ast = [f]
else:
f = ast[0]
assert isinstance(f, str)
if f in LOGIC:
output(f"logic->{f}")
elif f in logicFUNC:
output(f"logic->{f}(")
output(", ".join(self.compile_rr(rr, node) for node in ast[1:]))
output(")")
elif f in ctxFUNC:
output(f"ctx->{f}(")
output(", ".join(self.compile_rr(rr, node) for node in ast[1:]))
output(")")
elif f in FUNC:
output(f"{f}(")
output(", ".join(self.compile_rr(rr, node) for node in ast[1:]))
output(")")
elif f in binOP:
if f == "==" and isinstance(ast[1], str) and ast[1].startswith("RSK_"):
output(f"{self.compile_rr(rr, ast[1])}.Is({self.compile_rr(rr, ast[2])})")
elif f == "!=" and isinstance(ast[1], str) and ast[1].startswith("RSK_"):
output(f"{self.compile_rr(rr, ast[1])}.IsNot({self.compile_rr(rr, ast[2])})")
else:
output("(")
output(binOP[f].join(self.compile_rr(rr, node) for node in ast[1:]))
output(")")
elif f == "not":
output("!")
output(self.compile_rr(rr, ast[1]))
elif f == "if":
output("(")
output(self.compile_rr(rr, ast[1]))
output(" ? ")
output(self.compile_rr(rr, ast[2]))
output(" : ")
output(self.compile_rr(rr, ast[3]))
output(")")
elif f.startswith("RSK_"):
output(f"ctx->GetOption({f})")
if f in ("RSK_BIG_POE_COUNT", "RSK_TRIFORCE_HUNT_PIECES_REQUIRED"):
output(".Get()")
elif f.startswith("RT_"):
output(f"(bool)ctx->GetTrickOption({f})")
elif f == "IsDungeonVanilla":
output(f"ctx->GetDungeon({self.compile_rr(rr, ast[1])})->IsVanilla()")
elif f == "IsDungeonMQ":
output(f"ctx->GetDungeon({self.compile_rr(rr, ast[1])})->IsMQ()")
elif f == "IsTrialSkipped":
output(f"ctx->GetTrial({self.compile_rr(rr, ast[1])})->IsSkipped()")
elif f == "TriforcePiecesCollected":
output("gSaveContext.ship.quest.data.randomizer.triforcePiecesCollected")
elif f.startswith("HasProjectileAge"):
output(f)
elif f in RANDO:
output(f"Rando::{f}")
elif f == "Here":
output(f"Here({rr.name}, []{{return {self.compile_rr(rr, ast[1])};}})")
elif f in ("MQSpiritSharedStatueRoom", "MQSpiritSharedBrokenWallRoom"):
output(f"{f}({self.compile_rr(rr, ast[1])}, []{{return {self.compile_rr(rr, ast[2])};}})")
elif f != "//":
if len(ast) != 1:
print("expected atom, got tree", ast)
elif f.isupper() or f.isdigit() or f in ("true", "false"):
output(f)
else:
print("invalid atom", f)
return "".join(result)
class RR:
__slots__ = "name", "scene", "timepass", "areas", "ui_name", "events", "checks", "exits"
def __init__(self, name, scene, timepass, *areas):
@ -18,10 +150,7 @@ class RR:
self.checks = []
self.exits = []
def gen(self, code):
return self.to_cpp(self.parse(code))
def parse(self, code):
def parse(code):
if code[0] == "(" and code[-1] == ")":
code = code[1:-1]
stack = []
@ -48,81 +177,6 @@ class RR:
ast.append(code[lastidx:])
return ast
def to_cpp(self, ast):
result = []
output = result.append
if ast:
if isinstance(ast, str):
f = ast
ast = [f]
else:
f = ast[0]
assert isinstance(f, str)
if f in LOGIC:
output(f"logic->{f}")
elif f in logicFUNC:
output(f"logic->{f}(")
output(", ".join(map(self.to_cpp, ast[1:])))
output(")")
elif f in ctxFUNC:
output(f"ctx->{f}(")
output(", ".join(map(self.to_cpp, ast[1:])))
output(")")
elif f in FUNC:
output(f"{f}(")
output(", ".join(map(self.to_cpp, ast[1:])))
output(")")
elif f in binOP:
if f == "==" and isinstance(ast[1], str) and ast[1].startswith("RSK_"):
output(f"{self.to_cpp(ast[1])}.Is({self.to_cpp(ast[2])})")
elif f == "!=" and isinstance(ast[1], str) and ast[1].startswith("RSK_"):
output(f"{self.to_cpp(ast[1])}.IsNot({self.to_cpp(ast[2])})")
else:
output("(")
output(binOP[f].join(map(self.to_cpp, ast[1:])))
output(")")
elif f == "not":
output("!")
output(self.to_cpp(ast[1]))
elif f == "if":
output("(")
output(self.to_cpp(ast[1]))
output(" ? ")
output(self.to_cpp(ast[2]))
output(" : ")
output(self.to_cpp(ast[3]))
output(")")
elif f.startswith("RSK_"):
output(f"ctx->GetOption({f})")
if f in ("RSK_BIG_POE_COUNT", "RSK_TRIFORCE_HUNT_PIECES_REQUIRED"):
output(".Get()")
elif f.startswith("RT_"):
output(f"(bool)ctx->GetTrickOption({f})")
elif f == "IsDungeonVanilla":
output(f"ctx->GetDungeon({self.to_cpp(ast[1])})->IsVanilla()")
elif f == "IsDungeonMQ":
output(f"ctx->GetDungeon({self.to_cpp(ast[1])})->IsMQ()")
elif f == "IsTrialSkipped":
output(f"ctx->GetTrial({self.to_cpp(ast[1])})->IsSkipped()")
elif f == "TriforcePiecesCollected":
output("gSaveContext.ship.quest.data.randomizer.triforcePiecesCollected")
elif f.startswith("HasProjectileAge"):
output(f)
elif f in RANDO:
output(f"Rando::{f}")
elif f == "Here":
output(f"Here({self.name}, []{{return {self.to_cpp(ast[1])};}})")
elif f in ("MQSpiritSharedStatueRoom", "MQSpiritSharedBrokenWallRoom"):
output(f"{f}({self.to_cpp(ast[1])}, []{{return {self.to_cpp(ast[2])};}})")
elif f != "//":
if len(ast) != 1:
print("expected atom, got tree", ast)
elif f.isupper() or f.isdigit() or f in ("true", "false"):
output(f)
else:
print("invalid atom", f)
return "".join(result)
binOP = { "==": " == ", "and": " && ", "or": " || ", ">=": " >= ", "!=": " != ", ">": " > ", "<": " < ", "add": " + " }
LOGIC = {
@ -229,39 +283,33 @@ ctxFUNC = {
"GetOption",
}
def main():
RRs = []
for root, dirs, files in os.walk(argv[2]):
for file in files:
active_rr = None
buf = ""
open_count = close_count = 0
mode = None
for line in open(argv[1], "r", encoding="ascii"):
line = line.strip("\n")
if line == "::":
mode = None if mode == line else line
continue
if mode == "::":
RRs.append(line)
continue
pcount = 0
for line in open(os.path.join(root, file), "r", encoding="ascii"):
line = line.strip()
if line.startswith("def "):
if open_count != close_count:
if pcount != 0:
print("error parsing", line)
defline = line.split()
active_rr = RR(*defline[1:])
RRs.append(active_rr)
buf = ""
open_count = close_count = 0
pcount = 0
continue
if active_rr and not active_rr.ui_name:
active_rr.ui_name = line
continue
if not active_rr or line.startswith("//"):
continue
open_count += line.count('(')
close_count += line.count(')')
pcount += line.count('(') - line.count(')')
buf += " "
buf += line
if open_count != close_count:
if pcount != 0:
continue
if not buf or buf.isspace():
continue
@ -271,47 +319,16 @@ for line in open(argv[1], "r", encoding="ascii"):
print("failed to parse line", repr(buf))
continue
if thing.startswith("RR_"):
active_rr.exits.append((thing, code))
active_rr.exits.append((thing, parse(code)))
elif thing.startswith("RC_"):
active_rr.checks.append((thing, code))
active_rr.checks.append((thing, parse(code)))
else:
LOGIC.add(thing)
active_rr.events.append((thing, code))
active_rr.events.append((thing, parse(code)))
buf = ""
generator = { "cpp": Cpp }[argv[1]]()
generator.generate_rr(argv[3], RRs)
result = []
output = result.append
for rr in RRs:
if isinstance(rr, str):
output(rr)
output("\n")
continue
output(f"areaTable[{rr.name}] = Region(\"{rr.ui_name}\", {rr.scene}, {'true' if rr.timepass else 'false'}, {{{','.join(rr.areas)}}}, {{")
if rr.events:
output("\n")
for name, code in rr.events:
output(f"\tEventAccess(&logic->{name}, []{{return {rr.gen(code)};}}),\n")
output("}, {")
if rr.checks:
output("\n")
for name, code in rr.checks:
output(f"\tLOCATION({name}, {rr.gen(code)}),\n")
output("}, {")
if rr.exits:
output("\n")
for name, code in rr.exits:
deprioritize = code.startswith("@deprioritize ")
if deprioritize:
_, code = code.split(None, 1)
output(f"\tEntrance({name}, []{{return {rr.gen(code)};}}")
if deprioritize:
output(", false")
output("),\n")
output("});\n")
source = "".join(result)
with open(argv[2], "w", encoding="ascii") as f:
f.write(source)
if __name__ == "__main__":
main()

View file

@ -0,0 +1 @@
*

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,230 @@
def RR_BOTTOM_OF_THE_WELL_ENTRYWAY SCENE_BOTTOM_OF_THE_WELL false RA_BOTTOM_OF_THE_WELL
Bottom of the Well Entryway
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
//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
StickPot true
NutPot true
LoweredWaterInsideBotw (CanUse RG_ZELDAS_LULLABY)
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))
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))
RR_BOTTOM_OF_THE_WELL_KEESE_BEAMOS_ROOM (and IsChild (SmallKeys RR_BOTTOM_OF_THE_WELL 3))
RR_BOTTOM_OF_THE_WELL_COFFIN_ROOM (or LoweredWaterInsideBotw (HasItem RG_BRONZE_SCALE))
RR_BOTTOM_OF_THE_WELL_DEAD_HAND_ROOM (and LoweredWaterInsideBotw IsChild)
//Falling down into basement requires nothing, but falling down somewhere specific requires lens or lens trick
//kinda questionable given several drops are blocked by rocks, but that's how it was handled before and on N64
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
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
//You can just barely pass the spider on the right side without damage or items, but it's probably tight enough to count as as a trick
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
RR_BOTTOM_OF_THE_WELL_PERIMETER (or RT_LENS_BOTW (CanUse RG_LENS_OF_TRUTH))
RR_BOTTOM_OF_THE_WELL_INNER_ROOMS (SmallKeys RR_BOTTOM_OF_THE_WELL 3)
RR_BOTTOM_OF_THE_WELL_BASEMENT true
RR_BOTTOM_OF_THE_WELL_BASEMENT_PLATFORM (or RT_LENS_BOTW (CanUse RG_LENS_OF_TRUTH))
//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
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
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
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)))
RR_BOTTOM_OF_THE_WELL_PERIMETER (and IsChild (and (SmallKeys RR_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
RR_BOTTOM_OF_THE_WELL_BASEMENT_USEFUL_BOMB_FLOWERS (or RT_LENS_BOTW (CanUse RG_LENS_OF_TRUTH))
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
RC_BOTTOM_OF_THE_WELL_LIKE_LIKE_CHEST true
RC_BOTTOM_OF_THE_WELL_GS_LIKE_LIKE_CAGE (CanGetEnemyDrop RE_GOLD_SKULLTULA ED_BOOMERANG)
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
DekuBabaSticks CanGetDekuBabaSticks
DekuBabaNuts CanGetDekuBabaNuts
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)
RR_BOTTOM_OF_THE_WELL_BEHIND_FAKE_WALLS (SmallKeys RR_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
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))
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
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.
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
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
RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_3 CanBreakPots
RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_4 CanBreakPots
RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_5 CanBreakPots
RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_6 CanBreakPots
RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_7 CanBreakPots
RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_8 CanBreakPots
RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_9 CanBreakPots
RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_10 CanBreakPots
RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_11 CanBreakPots
RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_12 CanBreakPots
RC_BOTTOM_OF_THE_WELL_BASEMENT_SUN_FAIRY (CanUse RG_SUNS_SONG)
RC_BOTTOM_OF_THE_WELL_BASEMENT_GRASS_1 CanCutShrubs
RC_BOTTOM_OF_THE_WELL_BASEMENT_GRASS_2 CanCutShrubs
RC_BOTTOM_OF_THE_WELL_BASEMENT_GRASS_3 CanCutShrubs
RC_BOTTOM_OF_THE_WELL_BASEMENT_BEHIND_ROCKS_GRASS_1 (and CanCutShrubs BlastOrSmash)
RC_BOTTOM_OF_THE_WELL_BASEMENT_BEHIND_ROCKS_GRASS_2 (and CanCutShrubs BlastOrSmash)
RC_BOTTOM_OF_THE_WELL_BASEMENT_BEHIND_ROCKS_GRASS_3 (and CanCutShrubs BlastOrSmash)
RC_BOTTOM_OF_THE_WELL_BASEMENT_BEHIND_ROCKS_GRASS_4 (and CanCutShrubs BlastOrSmash)
RC_BOTTOM_OF_THE_WELL_BASEMENT_BEHIND_ROCKS_GRASS_5 (and CanCutShrubs BlastOrSmash)
RC_BOTTOM_OF_THE_WELL_BASEMENT_BEHIND_ROCKS_GRASS_6 (and CanCutShrubs BlastOrSmash)
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)
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
RR_BOTTOM_OF_THE_WELL_BASEMENT_USEFUL_BOMB_FLOWERS (Here (or BlastOrSmash (or (CanUse RG_DINS_FIRE) (and (CanUse RG_STICKS) RT_BOTW_BASEMENT))))
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
RC_BOTTOM_OF_THE_WELL_MAP_CHEST (HasItem RG_GORONS_BRACELET)
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
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
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
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()
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
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 RR_BOTTOM_OF_THE_WELL 2))
RR_BOTTOM_OF_THE_WELL_MQ_LOCKED_CAGE (and IsChild (and (SmallKeys RR_BOTTOM_OF_THE_WELL 2) CanUseProjectile))
RR_BOTTOM_OF_THE_WELL_MQ_DEAD_HAND_ROOM (and IsChild LoweredWaterInsideBotw)
RR_BOTTOM_OF_THE_WELL_MQ_MIDDLE (CanUse RG_ZELDAS_LULLABY)
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
OpenedWestRoomMQBotw true
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
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))
RR_BOTTOM_OF_THE_WELL_MQ_PERIMETER (and (or LoweredWaterInsideBotw (HasItem RG_BRONZE_SCALE)) (SmallKeys RR_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
OpenedMiddleHoleMQBotw HasExplosives
RR_BOTTOM_OF_THE_WELL_MQ_PERIMETER (and IsChild (SmallKeys RR_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
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
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.
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
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
//The enemies in this room are invisible and crowd around the player, being awkward to deal with blind unless you already know how.
//the right wall is safe, and can be followed to get behind the grave which you can then pull easily assuming you can tank invisible keese
//Using a deku nut however stuns everything easily. and if you have a melee weapon you can kill the skull through the grave then grab the drop
//though it can be hard to tell where the safe direct path to the grave is without lens.
//Also you get cheap shotted on entry sometimes.
//An MQ lens trick is recommended here, and a review of this room for OHKO logic what that is added is advised.
//In the meantime I assume damage taken or the easy answer (nuts)
RC_BOTTOM_OF_THE_WELL_MQ_GS_WEST_INNER_ROOM (and OpenedWestRoomMQBotw (and (or TakeDamage (CanUse RG_NUTS)) (CanGetEnemyDrop RE_GOLD_SKULLTULA)))
RC_BOTTOM_OF_THE_WELL_MQ_INNER_LOBBY_POT_1 CanBreakPots
RC_BOTTOM_OF_THE_WELL_MQ_INNER_LOBBY_POT_2 CanBreakPots
RC_BOTTOM_OF_THE_WELL_MQ_INNER_LOBBY_POT_3 CanBreakPots
RC_BOTTOM_OF_THE_WELL_MQ_EAST_INNER_ROOM_POT_1 CanBreakPots
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
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
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)
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
Bottom of the Well MQ Basement Switch Platform
//Assumes RR_BOTTOM_OF_THE_WELL_MQ_BASEMENT access
//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.
RC_BOTTOM_OF_THE_WELL_MQ_LENS_OF_TRUTH_CHEST true
RR_BOTTOM_OF_THE_WELL_MQ_BASEMENT true

View file

@ -0,0 +1,339 @@
def RR_DEKU_TREE_ENTRYWAY SCENE_DEKU_TREE false RA_DEKU_TREE
Deku Tree Entryway
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
DekuBabaSticks CanGetDekuBabaSticks
DekuBabaNuts CanGetDekuBabaNuts
RC_DEKU_TREE_MAP_CHEST true
RC_DEKU_TREE_LOBBY_LOWER_HEART true
RC_DEKU_TREE_LOBBY_UPPER_HEART (CanPassEnemy RE_BIG_SKULLTULA)
RC_DEKU_TREE_LOBBY_GRASS_1 CanCutShrubs
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
RR_DEKU_TREE_ENTRYWAY true
RR_DEKU_TREE_2F_MIDDLE_ROOM true
RR_DEKU_TREE_COMPASS_ROOM true
RR_DEKU_TREE_BASEMENT_LOWER (Here (or CanAttack (CanUse RG_NUTS)))
RR_DEKU_TREE_OUTSIDE_BOSS_ROOM false
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
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
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)
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
DekuBabaSticks CanGetDekuBabaSticks
DekuBabaNuts CanGetDekuBabaNuts
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
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
DekuBabaSticks CanGetDekuBabaSticks
DekuBabaNuts CanGetDekuBabaNuts
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
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
RR_DEKU_TREE_BASEMENT_UPPER (or IsAdult (or RT_DEKU_B1_SKIP (HasAccessTo RR_DEKU_TREE_BASEMENT_UPPER)))
//You can get the LOWER skull token from here as adult with hovers backwalk and a backflip, but it's trickworthy and not relevant unless you can beat tentacles without rang
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
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
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
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
RC_DEKU_TREE_BASEMENT_SPIKE_ROLLER_GRASS_1 CanCutShrubs
RC_DEKU_TREE_BASEMENT_SPIKE_ROLLER_GRASS_2 CanCutShrubs
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
DekuBabaSticks CanGetDekuBabaSticks
DekuBabaNuts CanGetDekuBabaNuts
RC_DEKU_TREE_BASEMENT_TORCHES_GRASS_1 CanCutShrubs
RC_DEKU_TREE_BASEMENT_TORCHES_GRASS_2 CanCutShrubs
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
DekuBabaSticks CanGetDekuBabaSticks
DekuBabaNuts CanGetDekuBabaNuts
RC_DEKU_TREE_BASEMENT_LARVAE_GRASS_1 CanCutShrubs
RC_DEKU_TREE_BASEMENT_LARVAE_GRASS_2 CanCutShrubs
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
RC_DEKU_TREE_GS_BASEMENT_BACK_ROOM HookshotOrBoomerang
RR_DEKU_TREE_BASEMENT_BACK_LOBBY true
def RR_DEKU_TREE_BASEMENT_UPPER SCENE_DEKU_TREE false RA_DEKU_TREE
Deku Tree Basement Upper
DekuBabaSticks CanGetDekuBabaSticks
DekuBabaNuts CanGetDekuBabaNuts
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
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)
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
DekuBabaSticks (CanKillEnemy RE_WITHERED_DEKU_BABA)
BrokeDeku1FWeb HasFireSource
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
RR_DEKU_TREE_ENTRYWAY true
//may need canAvoid logic with enemy shuffle
RR_DEKU_TREE_MQ_2F true
//Swim is not required because you can jump with enough momentum to hit land.
//You even avoid fall damage if you hit the shallow water, though it's obscure knowledge so may be a trick
//if it is, then we need a landing room with (IsAdult || HasItem(RG_BRONZE_SCALE) || TakeDamage() || that trick) to reach basement
RR_DEKU_TREE_MQ_BASEMENT BrokeDeku1FWeb
//is it possible to recoil from here to the ledge with a trick?
def RR_DEKU_TREE_MQ_2F SCENE_DEKU_TREE false RA_DEKU_TREE
Deku Tree MQ 2F
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
RR_DEKU_TREE_MQ_1F true
//Will need canAvoid logic with enemy shuffle
RR_DEKU_TREE_MQ_3F true
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
DekuBabaSticks CanGetDekuBabaSticks
DekuBabaNuts CanGetDekuBabaNuts
BrokeDeku1FWeb true
//Implies CanKillEnemy(RE_GOHMA_LARVA)
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
RC_DEKU_TREE_MQ_SLINGSHOT_GRASS_1 CanCutShrubs
RC_DEKU_TREE_MQ_SLINGSHOT_GRASS_2 CanCutShrubs
RC_DEKU_TREE_MQ_SLINGSHOT_GRASS_3 CanCutShrubs
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
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
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
RC_DEKU_TREE_MQ_BEFORE_COMPASS_GRASS_3 CanCutShrubs
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
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
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
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
RC_DEKU_TREE_MQ_GS_PAST_BOULDER_VINES (CanGetEnemyDrop RE_GOLD_SKULLTULA ED_BOOMERANG)
RC_DEKU_TREE_MQ_COMPASS_ROOM_HEART true
RR_DEKU_TREE_MQ_COMPASS_ROOM BlastOrSmash
def RR_DEKU_TREE_MQ_BASEMENT SCENE_DEKU_TREE false RA_DEKU_TREE
Deku Tree MQ Basement
DekuBabaSticks CanGetDekuBabaSticks
DekuBabaNuts CanGetDekuBabaNuts
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
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
RR_DEKU_TREE_MQ_BASEMENT_WATER_ROOM_FRONT (and (Here CanHitEyeTargets) (and ClearedMQDekuSERoom (Here (CanUse RG_STICKS))))
RR_DEKU_TREE_MQ_BASEMENT_LEDGE (or RT_DEKU_B1_SKIP (or PushedDekuBasementBlock (or IsAdult (CanUse RG_HOVER_BOOTS))))
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)
ClearedMQDekuSERoom (CanKillEnemy RE_MAD_SCRUB)
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
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
MQDekuWaterRoomTorches (or (CanUse RG_FIRE_ARROWS) (and (CanUse RG_STICKS) (or RT_DEKU_MQ_LOG (and IsChild CanShield))))
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
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
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
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
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
RC_DEKU_TREE_MQ_BASEMENT_LARVAE_GRASS_1 CanCutShrubs
RC_DEKU_TREE_MQ_BASEMENT_LARVAE_GRASS_2 CanCutShrubs
//both imply CanKillEnemy(RE_GOHMA_LARVA)
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
DekuBabaSticks CanGetDekuBabaSticks
DekuBabaNuts CanGetDekuBabaNuts
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
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
RR_DEKU_TREE_MQ_BASEMENT_BACK_ROOM (Here (or HasFireSourceWithTorch (CanUse RG_FAIRY_BOW)))
def RR_DEKU_TREE_MQ_BASEMENT_BACK_ROOM SCENE_DEKU_TREE false RA_DEKU_TREE
Deku Tree MQ Basement Back Room
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
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
PushedDekuBasementBlock true
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
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
//recoiling to skip swim is possible, but would be a trick
RR_DEKU_TREE_MQ_OUTSIDE_BOSS_ROOM (and (Here (or HasFireSource (CanUse RG_STICKS))) (or (HasItem RG_BRONZE_SCALE) (CanUse RG_IRON_BOOTS)))
def RR_DEKU_TREE_MQ_OUTSIDE_BOSS_ROOM SCENE_DEKU_TREE false RA_DEKU_TREE
Deku Tree MQ Outside Boss Room
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
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
RR_DEKU_TREE_BOSS_ROOM true
def RR_DEKU_TREE_BOSS_EXIT SCENE_DEKU_TREE false RA_DEKU_TREE
Deku Tree Boss Exit
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
DekuTreeClear (CanKillEnemy RE_GOHMA)
RC_QUEEN_GOHMA DekuTreeClear
RC_DEKU_TREE_QUEEN_GOHMA_HEART DekuTreeClear
RC_DEKU_TREE_QUEEN_GOHMA_GRASS_1 CanCutShrubs
RC_DEKU_TREE_QUEEN_GOHMA_GRASS_2 CanCutShrubs
RC_DEKU_TREE_QUEEN_GOHMA_GRASS_3 CanCutShrubs
RC_DEKU_TREE_QUEEN_GOHMA_GRASS_4 CanCutShrubs
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
RR_DEKU_TREE_BOSS_EXIT true
RR_KF_OUTSIDE_DEKU_TREE @deprioritize DekuTreeClear

View file

@ -0,0 +1,437 @@
def RR_DODONGOS_CAVERN_ENTRYWAY SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern Entryway
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
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
GossipStoneFairy (and (or (Here CanBreakMudWalls) (HasItem RG_GORONS_BRACELET)) CallGossipFairy)
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)))
RR_DODONGOS_CAVERN_BEGINNING true
RR_DODONGOS_CAVERN_LOBBY_SWITCH IsAdult
RR_DODONGOS_CAVERN_SE_CORRIDOR (Here (or CanBreakMudWalls (HasItem RG_GORONS_BRACELET)))
RR_DODONGOS_CAVERN_STAIRS_LOWER (HasAccessTo RR_DODONGOS_CAVERN_LOBBY_SWITCH)
RR_DODONGOS_CAVERN_FAR_BRIDGE (HasAccessTo RR_DODONGOS_CAVERN_FAR_BRIDGE)
RR_DODONGOS_CAVERN_BOSS_AREA (Here HasExplosives)
RR_DODONGOS_CAVERN_BOSS_ENTRYWAY false
def RR_DODONGOS_CAVERN_LOBBY_SWITCH SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern Lobby Switch
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
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
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
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
//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
RC_DODONGOS_CAVERN_GS_SIDE_ROOM_NEAR_LOWER_LIZALFOS CanAttack
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
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
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
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
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
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
RC_DODONGOS_CAVERN_DEKU_SCRUB_SIDE_ROOM_NEAR_DODONGOS CanStunDeku
RR_DODONGOS_CAVERN_DODONGO_ROOM true
def RR_DODONGOS_CAVERN_STAIRS_LOWER SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern Stairs Lower
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
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
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
RC_DODONGOS_CAVERN_COMPASS_CHEST true
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
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
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
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)))
RR_DODONGOS_CAVERN_BOMB_ROOM_UPPER (or (and IsAdult RT_DC_JUMP) (or (CanUse RG_HOVER_BOOTS) (or (and IsAdult (CanUse RG_LONGSHOT)) (and RT_DAMAGE_BOOST_SIMPLE (and HasExplosives CanJumpslash)))))
def RR_DODONGOS_CAVERN_2F_SIDE_ROOM SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern 2F Side Room
RC_DODONGOS_CAVERN_DEKU_SCRUB_NEAR_BOMB_BAG_LEFT CanStunDeku
RC_DODONGOS_CAVERN_DEKU_SCRUB_NEAR_BOMB_BAG_RIGHT CanStunDeku
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
RC_DODONGOS_CAVERN_SINGLE_EYE_POT_1 CanBreakPots
RC_DODONGOS_CAVERN_SINGLE_EYE_POT_2 CanBreakPots
RC_DODONGOS_CAVERN_SINGLE_EYE_GRASS CanCutShrubs
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
RC_DODONGOS_CAVERN_LOWER_LIZALFOS_HEART true
RC_DODONGOS_CAVERN_UPPER_LIZALFOS_LEFT_HEART true
RC_DODONGOS_CAVERN_UPPER_LIZALFOS_RIGHT_HEART true
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
RC_DODONGOS_CAVERN_DOUBLE_EYE_POT_1 CanBreakPots
RC_DODONGOS_CAVERN_DOUBLE_EYE_POT_2 CanBreakPots
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
RC_DODONGOS_CAVERN_BOMB_BAG_CHEST true
RC_DODONGOS_CAVERN_BLADE_POT_1 CanBreakPots
RC_DODONGOS_CAVERN_BLADE_POT_2 CanBreakPots
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
RC_DODONGOS_CAVERN_END_OF_BRIDGE_CHEST (Here CanBreakMudWalls)
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
FairyPot true
RC_DODONGOS_CAVERN_BEFORE_BOSS_GRASS CanCutShrubs
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
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
RR_DODONGOS_CAVERN_BOSS_AREA true
def RR_DODONGOS_CAVERN_MQ_BEGINNING SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern MQ Beginning
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
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
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)))
RR_DODONGOS_CAVERN_MQ_STAIRS_LOWER (Here (or BlastOrSmash (HasItem RG_GORONS_BRACELET)))
//strength 1 and bunny speed works too
RR_DODONGOS_CAVERN_MQ_LOWER_RIGHT_SIDE (or (Here CanBreakMudWalls) (Here (and (HasItem RG_GORONS_BRACELET) TakeDamage)))
RR_DODONGOS_CAVERN_MQ_POES_ROOM IsAdult
RR_DODONGOS_CAVERN_MQ_BEHIND_MOUTH (Here (or HasExplosives (and ClearMQDCUpperLobbyRocks (and (HasItem RG_GORONS_BRACELET) (or (and IsAdult RT_DC_MQ_ADULT_EYES) (and IsChild RT_DC_MQ_CHILD_EYES))))))
def RR_DODONGOS_CAVERN_MQ_GOSSIP_STONE SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern MQ Gossip Stone
GossipStoneFairy CallGossipFairy
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)
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
ClearMQDCUpperLobbyRocks (or BlastOrSmash (CanUse RG_DINS_FIRE))
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
//RANDOTODO is this possible with equip swapped hammer?
//it is possible to use bunny hood speed, hovers and a jumpslash to go between here and the other bridge (included with TORCH_ROOM_LOWER), but this would be a trick
RR_DODONGOS_CAVERN_MQ_POES_ROOM (or (CanUse RG_HOVER_BOOTS) (and RT_DC_MQ_CHILD_BOMBS (and CanJumpslashExceptHammer TakeDamage)))
def RR_DODONGOS_CAVERN_MQ_STAIRS_PAST_MUD_WALL SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern MQ Stairs Past Mud Wall
DekuBabaSticks CanGetDekuBabaSticks
RC_DODONGOS_CAVERN_MQ_GS_SONG_OF_TIME_BLOCK_ROOM (and (CanUse RG_SONG_OF_TIME) (CanGetEnemyDrop RE_GOLD_SKULLTULA))
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
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
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)))))
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
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
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
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,
//the commented out logic is to handle going down and reclimbing to get silver rupees. A new eventVar will need decalring to handle this.
//(and CanClimbDCStairs (or (CanPassEnemy RE_BIG_SKULLTULA) (CanUse RG_HOVER_BOOTS)))
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
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
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
ClearMQDCUpperLobbyRocks (and (or (and IsAdult RT_DC_JUMP) (CanUse RG_HOVER_BOOTS)) (CanUse RG_STICKS))
RC_DODONGOS_CAVERN_MQ_TORCH_PUZZLE_MIDDLE_POT (CanUse RG_BOOMERANG)
RC_DODONGOS_CAVERN_MQ_TORCH_PUZZLE_ROOM_HEART true
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
RR_DODONGOS_CAVERN_MQ_LARVAE_ROOM HasFireSourceWithTorch
//Includes an implied CanPass(RE_BIG_SKULLTULA)
RR_DODONGOS_CAVERN_MQ_BIG_BLOCK_ROOM (Here HasFireSourceWithTorch)
RR_DODONGOS_CAVERN_MQ_TORCH_PUZZLE_UPPER (or (and IsAdult RT_DC_JUMP) (or (CanUse RG_HOVER_BOOTS) (CanUse RG_HOOKSHOT)))
//Implies access to RR_DODONGOS_CAVERN_MQ_BIG_BLOCK_ROOM from here
RR_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS (and (CanUse RG_STICKS) (HasItem RG_GORONS_BRACELET))
def RR_DODONGOS_CAVERN_MQ_BIG_BLOCK_ROOM SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern MQ Torch Puzzle Lower
RC_DODONGOS_CAVERN_MQ_BIG_BLOCK_POT_1 CanBreakPots
RC_DODONGOS_CAVERN_MQ_BIG_BLOCK_POT_2 CanBreakPots
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)
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
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
RC_DODONGOS_CAVERN_MQ_LARVAE_ROOM_CRATE_1 CanBreakCrates
RC_DODONGOS_CAVERN_MQ_LARVAE_ROOM_CRATE_2 CanBreakCrates
RC_DODONGOS_CAVERN_MQ_LARVAE_ROOM_CRATE_3 CanBreakCrates
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
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)
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
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
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
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
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
ClearMQDCUpperLobbyRocks (or CanDetonateUprightBombFlower (CanUse RG_MEGATON_HAMMER))
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
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
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
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
RC_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_HEART true
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
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
RC_DODONGOS_CAVERN_MQ_POE_ROOM_POT_2 CanBreakPots
RC_DODONGOS_CAVERN_MQ_POE_ROOM_POT_3 CanBreakPots
RC_DODONGOS_CAVERN_MQ_POE_ROOM_POT_4 CanBreakPots
RC_DODONGOS_CAVERN_MQ_POE_ROOM_CRATE_1 CanBreakCrates
RC_DODONGOS_CAVERN_MQ_POE_ROOM_CRATE_2 CanBreakCrates
RC_DODONGOS_CAVERN_MQ_POE_ROOM_CRATE_3 CanBreakCrates
RC_DODONGOS_CAVERN_MQ_POE_ROOM_CRATE_4 CanBreakCrates
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
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)))
def RR_DODONGOS_CAVERN_MQ_MAD_SCRUB_ROOM SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
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)))
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
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
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
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)
RR_DODONGOS_CAVERN_MQ_BACK_BEHIND_FIRE true
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
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
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
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
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
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
RR_DODONGOS_CAVERN_BOSS_ROOM true
def RR_DODONGOS_CAVERN_BOSS_EXIT SCENE_DODONGOS_CAVERN false RA_DODONGOS_CAVERN
Dodongos Cavern Boss Exit
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
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))
RC_DODONGOS_CAVERN_BOSS_ROOM_CHEST true
RC_DODONGOS_CAVERN_KING_DODONGO_HEART DodongosCavernClear
RC_KING_DODONGO DodongosCavernClear
RR_DODONGOS_CAVERN_BOSS_EXIT true
RR_DEATH_MOUNTAIN_TRAIL @deprioritize DodongosCavernClear

View file

@ -0,0 +1,553 @@
def RR_FIRE_TEMPLE_ENTRYWAY SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple Entryway
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
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 RR_FIRE_TEMPLE 8) (not IsFireLoopLocked)))
RR_FIRE_TEMPLE_LOOP_EXIT true
RR_FIRE_TEMPLE_BIG_LAVA_ROOM (and (SmallKeys RR_FIRE_TEMPLE 2) (>= FireTimer 24))
def RR_FIRE_TEMPLE_NEAR_BOSS_ROOM SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple Near Boss Room
FairyPot (or (CanUse RG_HOVER_BOOTS) (CanUse RG_HOOKSHOT))
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)))
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
RR_FIRE_TEMPLE_FIRST_ROOM (or (SmallKeys RR_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
RC_FIRE_TEMPLE_GS_BOSS_KEY_LOOP CanAttack
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
RC_FIRE_TEMPLE_FLARE_DANCER_CHEST (and (or HasExplosives (CanUse RG_MEGATON_HAMMER)) IsAdult)
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
FireLoopSwitch (CanUse RG_MEGATON_HAMMER)
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
RC_FIRE_TEMPLE_BOSS_KEY_CHEST true
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
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
RC_FIRE_TEMPLE_BIG_LAVA_POT_1 CanBreakPots
RC_FIRE_TEMPLE_BIG_LAVA_POT_2 CanBreakPots
RC_FIRE_TEMPLE_BIG_LAVA_POT_3 CanBreakPots
RR_FIRE_TEMPLE_FIRST_ROOM (SmallKeys RR_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))
RR_FIRE_TEMPLE_BIG_LAVA_ROOM_SOUTH_GORON (and IsAdult HasExplosives)
RR_FIRE_TEMPLE_FIRE_PILLAR_ROOM (SmallKeys RR_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
RC_FIRE_TEMPLE_BIG_LAVA_ROOM_LOWER_OPEN_DOOR_CHEST true
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
RC_FIRE_TEMPLE_GS_SONG_OF_TIME_ROOM (or (and IsAdult CanAttack) HookshotOrBoomerang)
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
RC_FIRE_TEMPLE_BIG_LAVA_ROOM_BLOCKED_DOOR_CHEST true
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
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)
RR_FIRE_TEMPLE_BIG_LAVA_ROOM (SmallKeys RR_FIRE_TEMPLE 3)
RR_FIRE_TEMPLE_SHORTCUT_ROOM (and (>= FireTimer 56) (SmallKeys RR_FIRE_TEMPLE 4))
def RR_FIRE_TEMPLE_SHORTCUT_ROOM SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple Shortcut Room
RC_FIRE_TEMPLE_BOULDER_MAZE_SHORTCUT_CHEST (Here true)
RR_FIRE_TEMPLE_FIRE_PILLAR_ROOM (SmallKeys RR_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
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
RC_FIRE_TEMPLE_BOULDER_MAZE_LOWER_CHEST true
RC_FIRE_TEMPLE_GS_BOULDER_MAZE (and HasExplosives (or IsAdult HookshotOrBoomerang))
RR_FIRE_TEMPLE_SHORTCUT_ROOM true
RR_FIRE_TEMPLE_BOULDER_MAZE_LOWER_SIDE_ROOM true
RR_FIRE_TEMPLE_EAST_CENTRAL_ROOM (SmallKeys RR_FIRE_TEMPLE 5 7)
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
RC_FIRE_TEMPLE_BOULDER_MAZE_SIDE_ROOM_CHEST true
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
RC_FIRE_TEMPLE_EAST_CENTRAL_LEFT_HEART true
RC_FIRE_TEMPLE_EAST_CENTRAL_RIGHT_HEART true
RC_FIRE_TEMPLE_EAST_CENTRAL_MIDDLE_HEART true
RR_FIRE_TEMPLE_BIG_LAVA_ROOM TakeDamage
RR_FIRE_TEMPLE_BOULDER_MAZE_LOWER (SmallKeys RR_FIRE_TEMPLE 5 8)
RR_FIRE_TEMPLE_FIRE_WALL_CHASE (SmallKeys RR_FIRE_TEMPLE 6 8)
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
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)
RR_FIRE_TEMPLE_EAST_CENTRAL_ROOM (and (>= FireTimer 24) (SmallKeys RR_FIRE_TEMPLE 6 8))
RR_FIRE_TEMPLE_MAP_AREA IsAdult
RR_FIRE_TEMPLE_BOULDER_MAZE_UPPER (and (>= FireTimer 24) IsAdult)
RR_FIRE_TEMPLE_CORRIDOR (and (>= FireTimer 24) (and IsAdult (SmallKeys RR_FIRE_TEMPLE 7)))
def RR_FIRE_TEMPLE_MAP_AREA SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple Map Region
RC_FIRE_TEMPLE_MAP_CHEST true
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
RC_FIRE_TEMPLE_BOULDER_MAZE_UPPER_CHEST true
RR_FIRE_TEMPLE_SHORTCUT_CLIMB HasExplosives
RR_FIRE_TEMPLE_BOULDER_MAZE_LOWER true
RR_FIRE_TEMPLE_FIRE_WALL_CHASE true
RR_FIRE_TEMPLE_SCARECROW_ROOM (or (CanUse RG_SCARECROW) (and RT_FIRE_SCARECROW (and IsAdult (CanUse RG_LONGSHOT))))
def RR_FIRE_TEMPLE_SCARECROW_ROOM SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple Scarecrow Room
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)))))))
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
RC_FIRE_TEMPLE_SCARECROW_CHEST true
RC_FIRE_TEMPLE_GS_SCARECROW_TOP CanUseProjectile
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
RR_FIRE_TEMPLE_FIRE_WALL_CHASE (SmallKeys RR_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
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
RR_FIRE_TEMPLE_CORRIDOR true
RR_FIRE_TEMPLE_FIRE_MAZE_UPPER (CanUse RG_HOVER_BOOTS)
RR_FIRE_TEMPLE_FIRE_MAZE_SIDE_ROOM true
RR_FIRE_TEMPLE_WEST_CENTRAL_LOWER (SmallKeys RR_FIRE_TEMPLE 8)
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
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
RC_FIRE_TEMPLE_COMPASS_CHEST true
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
RC_FIRE_TEMPLE_HIGHEST_GORON_CHEST (Here (and (or (CanUse RG_SONG_OF_TIME) RT_RUSTED_SWITCHES) (CanUse RG_MEGATON_HAMMER)))
RR_FIRE_TEMPLE_FIRE_MAZE_ROOM (SmallKeys RR_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
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
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
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
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
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
RC_FIRE_TEMPLE_MEGATON_HAMMER_CHEST true
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
RC_FIRE_TEMPLE_AFTER_HAMMER_SMALL_CRATE_1 CanBreakSmallCrates
RC_FIRE_TEMPLE_AFTER_HAMMER_SMALL_CRATE_2 CanBreakSmallCrates
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
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
RC_FIRE_TEMPLE_MQ_ENTRANCE_POT_1 CanBreakPots
RC_FIRE_TEMPLE_MQ_ENTRANCE_POT_2 CanBreakPots
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))
RR_FIRE_TEMPLE_MQ_STALFOS_ROOM (SmallKeys RR_FIRE_TEMPLE 5)
def RR_FIRE_TEMPLE_MQ_FIRST_ROOM_UPPER SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple MQ First Room Upper
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
RC_FIRE_TEMPLE_MQ_MAP_ROOM_SIDE_CHEST (CanKillEnemy RE_LIKE_LIKE)
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
RC_FIRE_TEMPLE_MQ_LOOP_STALFOS_SUN_FAIRY (CanUse RG_SUNS_SONG)
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
FairyPot true
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
RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_3 CanBreakPots
RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_4 CanBreakPots
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
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
RC_FIRE_TEMPLE_MQ_MEGATON_HAMMER_CHEST (and (or IsAdult (CanUse RG_HOOKSHOT)) (Here (CanKillEnemy RE_FLARE_DANCER)))
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
OpenedLowestGoronCage (CanUse RG_MEGATON_HAMMER)
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
RC_FIRE_TEMPLE_MQ_MAP_CHEST true
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
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)
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))))
RR_FIRE_TEMPLE_BOSS_ENTRYWAY (and (>= FireTimer 15) (or (and IsAdult (or RT_FIRE_BOSS_DOOR_JUMP (CanUse RG_HOVER_BOOTS))) (or (and IsAdult HitFireTemplePlatform) (and HitFireTemplePlatform (CanUse RG_HOVER_BOOTS)))))
//This room assumes tunic logic is handled on entry.
//Covers the upper section too, as all methods to reach this can climb up somehow
def RR_FIRE_TEMPLE_MQ_NEAR_BOSS_ROOM_NORTH SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple MQ Near Boss Room North
//If we have FAs, we can just remove the crate and use those to light the torches.
//otherwise, with Dins, we first light them with dins and then either use a bow shot or to cross back over to light the other torch
//Valid ways across are adult+hovers, bunny+hovers, longshot or running through the lava and then climbing back up as adult (child can't reach the ledge).
//The Damage logic here is for jumping down and running across the lava to get in dins range of the south torch
//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
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
RC_FIRE_TEMPLE_MQ_OUTSIDE_BOSS_CRATE_1 (and (> FireTimer 25) CanBreakCrates)
RC_FIRE_TEMPLE_MQ_OUTSIDE_BOSS_CRATE_2 (and (> FireTimer 25) CanBreakCrates)
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
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
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)))))
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 RR_FIRE_TEMPLE 2))
RR_FIRE_TEMPLE_MQ_TORCH_FIREWALL_ROOM (and HasFireSource (and (or (and (CanUse RG_FAIRY_BOW) (>= FireTimer 25)) (and RT_FIRE_MQ_BK_CHEST (>= FireTimer 50))) (or (CanUse RG_HOOKSHOT) (and IsAdult RT_FIRE_SOT))))
def RR_FIRE_TEMPLE_MQ_TORCH_FIREWALL_ROOM SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple MQ Torch Firewall Room
FairyPot (CanUse RG_HOOKSHOT)
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
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
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
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
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
def RR_FIRE_TEMPLE_MQ_LOWER_MAZE SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple MQ Lower Maze
//Check handled on both floors
RC_FIRE_TEMPLE_MQ_LIZALFOS_MAZE_SIDE_ROOM_CHEST (and HasExplosives RT_FIRE_MQ_MAZE_SIDE_ROOM)
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)
//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 HasExplosives (and (CanUse RG_MEGATON_HAMMER) (CanUse RG_HOOKSHOT)))
def RR_FIRE_TEMPLE_MQ_LOWER_MAZE_CRATE_CAGE SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple MQ Lower Maze Crate Cage
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
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
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
RR_FIRE_TEMPLE_MQ_UPPER_MAZE_BOX_CAGE (Here (or CanJumpslash HasExplosives))
RR_FIRE_TEMPLE_MQ_MAZE_SHORTCUT HasExplosives
//Implies RR_FIRE_TEMPLE_MQ_LOWER_MAZE access
RR_FIRE_TEMPLE_MQ_BURNING_BLOCK_CLIMB (and HasExplosives (and (CanUse RG_MEGATON_HAMMER) (or (CanUse RG_LONGSHOT) (and (CanUse RG_HOOKSHOT) (CanUse RG_SONG_OF_TIME)))))
RR_FIRE_TEMPLE_MQ_HIGH_TORCH_ROOM (and (SmallKeys RR_FIRE_TEMPLE 3) (CanUse RG_GORON_TUNIC))
def RR_FIRE_TEMPLE_MQ_UPPER_MAZE_BOX_CAGE SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple MQ Upper Maze Box Cage
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
RC_FIRE_TEMPLE_MQ_LIZALFOS_MAZE_UPPER_CRATE_3 CanBreakCrates
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
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
OpenedUpperFireShortcut (CanUse RG_MEGATON_HAMMER)
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
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)
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)
RR_FIRE_TEMPLE_MQ_MAZE_SHORTCUT OpenedUpperFireShortcut
RR_FIRE_TEMPLE_MQ_BIG_TORCH_ROOM OpenedUpperFireShortcut
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
RC_FIRE_TEMPLE_MQ_GS_SKULL_ON_FIRE (and (CanUse RG_HOOKSHOT) (CanUse RG_MEGATON_HAMMER))
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
FairyPot true
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
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
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
RC_FIRE_TEMPLE_MQ_LAVA_TORCH_CRATE_2 CanBreakCrates
RC_FIRE_TEMPLE_MQ_LAVA_TORCH_CRATE_3 CanBreakCrates
RC_FIRE_TEMPLE_MQ_LAVA_TORCH_CRATE_4 CanBreakCrates
RC_FIRE_TEMPLE_MQ_LAVA_TORCH_CRATE_5 CanBreakCrates
RC_FIRE_TEMPLE_MQ_LAVA_TORCH_SMALL_CRATE_1 CanBreakSmallCrates
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
RR_FIRE_TEMPLE_MQ_UPPER_MAZE (SmallKeys RR_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
RR_FIRE_TEMPLE_MQ_SOUTH_FIRE_MAZE (and (Here (or (CanUse RG_FIRE_ARROWS) (and (CanUse RG_FAIRY_BOW) (CanUse RG_HOOKSHOT)))) (or IsAdult (CanUse RG_HOOKSHOT)))
def RR_FIRE_TEMPLE_MQ_SOUTH_FIRE_MAZE SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple MQ South Fire Maze
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
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)))
//Hover boots get there via the platforms
RR_FIRE_TEMPLE_MQ_NORTH_FIRE_MAZE RT_FIRE_MQ_FLAME_MAZE
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
HitFireTemplePlatform (CanUse RG_MEGATON_HAMMER)
OpenedFireMQFireMazeDoor (and (CanUse RG_MEGATON_HAMMER) (CanUse RG_HOOKSHOT))
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
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
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
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
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)
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
RC_FIRE_TEMPLE_MQ_FREESTANDING_KEY (CanKillEnemy RE_FLARE_DANCER)
RR_FIRE_TEMPLE_MQ_FIRE_MAZE_PAST_WALL (CanKillEnemy RE_FLARE_DANCER)
RR_FIRE_TEMPLE_MQ_SCARECROW_ROOM (and (CanKillEnemy RE_FLARE_DANCER) (SmallKeys RR_FIRE_TEMPLE 4))
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.
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
RR_FIRE_TEMPLE_MQ_UPPER_FLARE_DANCER (SmallKeys RR_FIRE_TEMPLE 4)
RR_FIRE_TEMPLE_MQ_COLLAPSED_STAIRS (and (Here (CanUse RG_MEGATON_HAMMER)) (SmallKeys RR_FIRE_TEMPLE 5))
//The peg knocked down from here could have logical implications for child in the fire maze if tricks to gain height like bomb jumps exist
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
RC_FIRE_TEMPLE_MQ_GS_ABOVE_FIRE_MAZE (CanUse RG_HOOKSHOT)
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
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
FireTempleClear (and (>= FireTimer 64) (CanKillEnemy RE_VOLVAGIA))
RC_FIRE_TEMPLE_VOLVAGIA_HEART FireTempleClear
RC_VOLVAGIA FireTempleClear
RR_FIRE_TEMPLE_BOSS_ENTRYWAY false
RR_DMC_CENTRAL_LOCAL @deprioritize FireTempleClear

View file

@ -0,0 +1,433 @@
def RR_FOREST_TEMPLE_ENTRYWAY SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple Entryway
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
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)))))))))))
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
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
ForestTempleMeg (and ForestTempleJoelle (and ForestTempleBeth (and ForestTempleAmy (CanUse RG_FAIRY_BOW))))
RC_FOREST_TEMPLE_GS_LOBBY HookshotOrBoomerang
RC_FOREST_TEMPLE_LOBBY_POT_1 CanBreakPots
RC_FOREST_TEMPLE_LOBBY_POT_2 CanBreakPots
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
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)
RR_FOREST_TEMPLE_NE_OUTDOORS_LOWER (or (CanUse RG_FAIRY_BOW) (CanUse RG_FAIRY_SLINGSHOT))
RR_FOREST_TEMPLE_WEST_CORRIDOR (SmallKeys RR_FOREST_TEMPLE 1 5)
RR_FOREST_TEMPLE_EAST_CORRIDOR false
RR_FOREST_TEMPLE_BOSS_REGION ForestTempleMeg
RR_FOREST_TEMPLE_BOSS_ENTRYWAY false
def RR_FOREST_TEMPLE_NORTH_CORRIDOR SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple North Corridor
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
FairyPot true
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
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
DekuBabaSticks CanGetDekuBabaSticks
DekuBabaNuts CanGetDekuBabaNuts
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)
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
RR_FOREST_TEMPLE_SEWER (or (HasItem RG_GOLDEN_SCALE) (or (CanUse RG_IRON_BOOTS) (HasAccessTo RR_FOREST_TEMPLE_NE_OUTDOORS_UPPER)))
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
DekuBabaSticks CanGetDekuBabaSticks
DekuBabaNuts CanGetDekuBabaNuts
RC_FOREST_TEMPLE_COURTYARD_RIGHT_HEART true
RC_FOREST_TEMPLE_COURTYARD_LEFT_HEART true
RR_FOREST_TEMPLE_NW_OUTDOORS_LOWER true
RR_FOREST_TEMPLE_BELOW_BOSS_KEY_CHEST true
RR_FOREST_TEMPLE_FLOORMASTER_ROOM true
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
DekuBabaSticks CanGetDekuBabaSticks
DekuBabaNuts CanGetDekuBabaNuts
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))))))
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)))
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
DekuBabaSticks CanGetDekuBabaSticks
DekuBabaNuts CanGetDekuBabaNuts
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
RC_FOREST_TEMPLE_MAP_CHEST (CanKillEnemy RE_BLUE_BUBBLE)
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
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)))
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
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
RC_FOREST_TEMPLE_FLOORMASTER_CHEST CanDamage
RR_FOREST_TEMPLE_NW_OUTDOORS_UPPER true
def RR_FOREST_TEMPLE_WEST_CORRIDOR SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple West Corridor
RR_FOREST_TEMPLE_LOBBY (SmallKeys RR_FOREST_TEMPLE 1 5)
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
RC_FOREST_TEMPLE_EYE_SWITCH_CHEST (and (HasItem RG_GORONS_BRACELET) (or (CanUse RG_FAIRY_BOW) (CanUse RG_FAIRY_SLINGSHOT)))
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 RR_FOREST_TEMPLE 2)))
RR_FOREST_TEMPLE_NW_CORRIDOR_STRAIGHTENED (and IsAdult (and (or (CanUse RG_FAIRY_BOW) (CanUse RG_FAIRY_SLINGSHOT)) (and (HasItem RG_GORONS_BRACELET) (SmallKeys RR_FOREST_TEMPLE 2))))
def RR_FOREST_TEMPLE_NW_CORRIDOR_TWISTED SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple NW Corridor Twisted
RR_FOREST_TEMPLE_BLOCK_PUSH_ROOM (SmallKeys RR_FOREST_TEMPLE 2)
RR_FOREST_TEMPLE_RED_POE_ROOM (SmallKeys RR_FOREST_TEMPLE 3)
def RR_FOREST_TEMPLE_NW_CORRIDOR_STRAIGHTENED SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple NW Corridor Straightened
RC_FOREST_TEMPLE_BOSS_KEY_CHEST true
RR_FOREST_TEMPLE_BELOW_BOSS_KEY_CHEST true
RR_FOREST_TEMPLE_BLOCK_PUSH_ROOM (SmallKeys RR_FOREST_TEMPLE 2)
def RR_FOREST_TEMPLE_RED_POE_ROOM SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple Red Poe Room
ForestTempleJoelle (CanUse RG_FAIRY_BOW)
RC_FOREST_TEMPLE_RED_POE_CHEST ForestTempleJoelle
RR_FOREST_TEMPLE_NW_CORRIDOR_TWISTED (SmallKeys RR_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
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
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
ForestTempleBeth (CanUse RG_FAIRY_BOW)
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
RR_FOREST_TEMPLE_UPPER_STALFOS true
RR_FOREST_TEMPLE_NE_CORRIDOR_STRAIGHTENED (SmallKeys RR_FOREST_TEMPLE 4)
def RR_FOREST_TEMPLE_NE_CORRIDOR_STRAIGHTENED SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple NE Corridor Straightened
RR_FOREST_TEMPLE_BLUE_POE_ROOM (SmallKeys RR_FOREST_TEMPLE 4)
RR_FOREST_TEMPLE_FROZEN_EYE_ROOM (SmallKeys RR_FOREST_TEMPLE 5)
def RR_FOREST_TEMPLE_NE_CORRIDOR_TWISTED SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple NE Corridor Twisted
RR_FOREST_TEMPLE_FROZEN_EYE_ROOM (SmallKeys RR_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
RC_FOREST_TEMPLE_FROZEN_EYE_POT_1 CanBreakPots
RC_FOREST_TEMPLE_FROZEN_EYE_POT_2 CanBreakPots
RR_FOREST_TEMPLE_NE_CORRIDOR_STRAIGHTENED (SmallKeys RR_FOREST_TEMPLE 5)
RR_FOREST_TEMPLE_NE_CORRIDOR_TWISTED (and (SmallKeys RR_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
RC_FOREST_TEMPLE_FALLING_CEILING_ROOM_CHEST true
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
ForestTempleAmy (CanUse RG_FAIRY_BOW)
RC_FOREST_TEMPLE_GREEN_POE_POT_1 CanBreakPots
RC_FOREST_TEMPLE_GREEN_POE_POT_2 CanBreakPots
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
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
RC_FOREST_TEMPLE_BASEMENT_CHEST true
RC_FOREST_TEMPLE_GS_BASEMENT HookshotOrBoomerang
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
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
RR_FOREST_TEMPLE_ENTRYWAY true
RR_FOREST_TEMPLE_MQ_CENTRAL_AREA (and (SmallKeys RR_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
ForestTempleMeg (and ForestTempleJoelle (and ForestTempleBeth (and ForestTempleAmy (CanKillEnemy RE_MEG))))
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
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
RR_FOREST_TEMPLE_MQ_LOWER_BLOCK_PUZZLE (Here (CanKillEnemy RE_STALFOS))
//implies the other 3 poes
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
FairyPot true
ForestClearBelowBowChest (CanKillEnemy RE_WOLFOS)
RC_FOREST_TEMPLE_MQ_WOLFOS_CHEST ForestClearBelowBowChest
RC_FOREST_TEMPLE_MQ_WOLFOS_POT_1 CanBreakPots
RC_FOREST_TEMPLE_MQ_WOLFOS_POT_2 CanBreakPots
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
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))))
RC_FOREST_TEMPLE_MQ_GS_BLOCK_PUSH_ROOM (CanGetEnemyDrop RE_GOLD_SKULLTULA)
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
RR_FOREST_TEMPLE_MQ_UPPER_BLOCK_PUZZLE (or (and IsAdult (HasItem RG_GORONS_BRACELET)) (and MQForestBlockRoomTargets (CanUse RG_HOOKSHOT)))
RR_FOREST_TEMPLE_MQ_OUTDOOR_LEDGE (and ForestCanTwistHallway (or (CanUse RG_HOOKSHOT) (CanUse RG_HOVER_BOOTS)))
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
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)))))
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
RR_FOREST_TEMPLE_MQ_OUTDOOR_LEDGE (or (and ForestCanTwistHallway (CanUse RG_HOVER_BOOTS)) (and RT_FOREST_OUTSIDE_BACKDOOR (or CanJumpslashExceptHammer (and IsAdult (CanUse RG_MEGATON_HAMMER)))))
def RR_FOREST_TEMPLE_MQ_UPPER_BLOCK_PUZZLE SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple MQ After Block Puzzle
RC_FOREST_TEMPLE_MQ_BOSS_KEY_CHEST (SmallKeys RR_FOREST_TEMPLE 3)
RR_FOREST_TEMPLE_MQ_STRAIGHT_HALLWAY (SmallKeys RR_FOREST_TEMPLE 3)
RR_FOREST_TEMPLE_MQ_JOELLE_ROOM (and ForestCanTwistHallway (SmallKeys RR_FOREST_TEMPLE 4))
//!QUANTUM LOGIC!
//As there is no way in default logic to reach the other possible key use without going through RR_FOREST_TEMPLE_MQ_NW_OUTDOORS, this is logically safe for now
//Breaks if there's any other way to RR_FOREST_TEMPLE_MQ_FALLING_ROOM than going through the eye targets in RR_FOREST_TEMPLE_MQ_CENTRAL_AREA
//Requires a bow/sling ammo source once ammo logic is done, to avoid edge cases.
RR_FOREST_TEMPLE_MQ_NW_OUTDOORS (and (SmallKeys RR_FOREST_TEMPLE 2) (Here (CanKillEnemy RE_FLOORMASTER)))
def RR_FOREST_TEMPLE_MQ_STRAIGHT_HALLWAY SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple MQ Straight Hallway
RC_FOREST_TEMPLE_MQ_BOSS_KEY_CHEST (SmallKeys RR_FOREST_TEMPLE 3)
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
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
ForestCanTwistHallway CanHitSwitch
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
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
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)))
RC_FOREST_TEMPLE_MQ_COURTYARD_RIGHT_HEART (and (CanUse RG_BOOMERANG) RT_FOREST_OUTDOORS_HEARTS_BOOMERANG)
RC_FOREST_TEMPLE_MQ_COURTYARD_MIDDLE_HEART (and (CanUse RG_BOOMERANG) RT_FOREST_OUTDOORS_HEARTS_BOOMERANG)
RC_FOREST_TEMPLE_MQ_COURTYARD_LEFT_HEART (and (CanUse RG_BOOMERANG) RT_FOREST_OUTDOORS_HEARTS_BOOMERANG)
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))
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
DekuBabaSticks CanGetDekuBabaSticks
DekuBabaNuts CanGetDekuBabaNuts
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)
RC_FOREST_TEMPLE_MQ_GS_WELL (or CanHitEyeTargets (and (CanUse RG_IRON_BOOTS) (CanUse RG_HOOKSHOT)))
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)
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
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)))))))))))))
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
RR_FOREST_TEMPLE_MQ_NE_OUTDOORS_LEDGE (and RT_FOREST_OUTDOORS_LEDGE (and (CanUse RG_HOVER_BOOTS) (and CanJumpslash TakeDamage)))
def RR_FOREST_TEMPLE_MQ_NE_OUTDOORS_LEDGE SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple MQ NE Outdoors Ledge
RC_FOREST_TEMPLE_MQ_RAISED_ISLAND_COURTYARD_LOWER_CHEST true
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
ForestTempleJoelle (CanUse RG_FAIRY_BOW)
RC_FOREST_TEMPLE_MQ_MAP_CHEST ForestTempleJoelle
RR_FOREST_TEMPLE_MQ_UPPER_BLOCK_PUZZLE (SmallKeys RR_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.
ForestClearBelowBowChest (CanKillEnemy RE_WOLFOS)
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
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
ForestTempleBeth (CanUse RG_FAIRY_BOW)
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
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
RR_FOREST_TEMPLE_MQ_FALLING_ROOM (and (SmallKeys RR_FOREST_TEMPLE 5) (Here (or (CanUse RG_FAIRY_BOW) (CanUse RG_DINS_FIRE))))
RR_FOREST_TEMPLE_MQ_TORCH_SHOT_ROOM (SmallKeys RR_FOREST_TEMPLE 6)
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
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
RR_FOREST_TEMPLE_MQ_FALLING_ROOM (or (CanUse RG_FAIRY_BOW) (CanUse RG_DINS_FIRE))
RR_FOREST_TEMPLE_MQ_BETH_ROOM (SmallKeys RR_FOREST_TEMPLE 6)
def RR_FOREST_TEMPLE_MQ_FALLING_ROOM SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple MQ Falling Room
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
RR_FOREST_TEMPLE_MQ_NE_OUTDOORS_LEDGE true
RR_FOREST_TEMPLE_MQ_AMY_ROOM (SmallKeys RR_FOREST_TEMPLE 6)
def RR_FOREST_TEMPLE_MQ_AMY_ROOM SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple MQ Amy Room
ForestTempleAmy (CanUse RG_FAIRY_BOW)
RC_FOREST_TEMPLE_MQ_GREEN_POE_POT_1 CanBreakPots
RC_FOREST_TEMPLE_MQ_GREEN_POE_POT_2 CanBreakPots
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()
ForestOpenBossCorridor CanHitEyeTargets
RC_FOREST_TEMPLE_MQ_BASEMENT_CHEST true
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
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
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
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
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
ForestTempleClear (CanKillEnemy RE_PHANTOM_GANON)
RC_FOREST_TEMPLE_PHANTOM_GANON_HEART ForestTempleClear
RC_PHANTOM_GANON ForestTempleClear
RR_FOREST_TEMPLE_BOSS_ENTRYWAY false
RR_SACRED_FOREST_MEADOW @deprioritize ForestTempleClear

View file

@ -0,0 +1,364 @@
def RR_GANONS_CASTLE_ENTRYWAY SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle Entryway
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
RC_SHEIK_HINT_GC true
RR_GANONS_CASTLE_ENTRYWAY true
RR_GANONS_CASTLE_FOREST_TRIAL true
RR_GANONS_CASTLE_FIRE_TRIAL true
RR_GANONS_CASTLE_WATER_TRIAL true
RR_GANONS_CASTLE_SHADOW_TRIAL true
RR_GANONS_CASTLE_SPIRIT_TRIAL true
RR_GANONS_CASTLE_LIGHT_TRIAL (CanUse RG_GOLDEN_GAUNTLETS)
RR_GANONS_TOWER_ENTRYWAY true
RR_GANONS_CASTLE_DEKU_SCRUBS (or RT_LENS_GANON (CanUse RG_LENS_OF_TRUTH))
def RR_GANONS_CASTLE_MAIN SCENE_ID_MAX false
Invalid Region
def RR_GANONS_CASTLE_DEKU_SCRUBS SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle Deku Scrubs
FreeFairies true
RC_GANONS_CASTLE_DEKU_SCRUB_CENTER_LEFT CanStunDeku
RC_GANONS_CASTLE_DEKU_SCRUB_CENTER_RIGHT CanStunDeku
RC_GANONS_CASTLE_DEKU_SCRUB_RIGHT CanStunDeku
RC_GANONS_CASTLE_DEKU_SCRUB_LEFT CanStunDeku
RC_GANONS_CASTLE_SCRUBS_FAIRY_1 true
RC_GANONS_CASTLE_SCRUBS_FAIRY_2 true
RC_GANONS_CASTLE_SCRUBS_FAIRY_3 true
RC_GANONS_CASTLE_SCRUBS_FAIRY_4 true
RC_GANONS_CASTLE_SCRUBS_FAIRY_5 true
RC_GANONS_CASTLE_SCRUBS_FAIRY_6 true
RC_GANONS_CASTLE_SCRUBS_FAIRY_7 true
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
ForestTrialClear (and (CanUse RG_LIGHT_ARROWS) (or (CanUse RG_FIRE_ARROWS) (CanUse RG_DINS_FIRE)))
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
FireTrialClear (and (CanUse RG_GORON_TUNIC) (and (CanUse RG_GOLDEN_GAUNTLETS) (and (CanUse RG_LIGHT_ARROWS) (CanUse RG_LONGSHOT))))
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
BlueFireAccess true
FairyPot (and BlueFire (CanKillEnemy RE_FREEZARD))
WaterTrialClear (and BlueFire (and IsAdult (and (CanUse RG_MEGATON_HAMMER) (CanUse RG_LIGHT_ARROWS))))
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))))
RC_GANONS_CASTLE_WATER_TRIAL_POT_2 (and CanBreakPots (and BlueFire (and IsAdult (CanUse RG_MEGATON_HAMMER))))
RC_GANONS_CASTLE_WATER_TRIAL_POT_3 (and CanBreakPots (and BlueFire (CanKillEnemy RE_FREEZARD)))
def RR_GANONS_CASTLE_SHADOW_TRIAL SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle Shadow Trial
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))))))))
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))
RC_GANONS_CASTLE_SHADOW_TRIAL_POT_2 (or (CanUse RG_FIRE_ARROWS) (CanUse RG_LONGSHOT))
RC_GANONS_CASTLE_SHADOW_TRIAL_POT_3 (and CanBreakPots (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))))))))
RC_GANONS_CASTLE_SHADOW_TRIAL_POT_4 (and CanBreakPots (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))))))))
RC_GANONS_CASTLE_SHADOW_TRIAL_HEART_1 (and (or (CanUse RG_FIRE_ARROWS) (and (CanUse RG_LONGSHOT) (or (CanUse RG_HOVER_BOOTS) (CanUse RG_DINS_FIRE)))) (or RT_LENS_GANON (or (CanUse RG_LENS_OF_TRUTH) (CanUse RG_BOOMERANG))))
RC_GANONS_CASTLE_SHADOW_TRIAL_HEART_2 (and (or (CanUse RG_FIRE_ARROWS) (and (CanUse RG_LONGSHOT) (or (CanUse RG_HOVER_BOOTS) (CanUse RG_DINS_FIRE)))) (or RT_LENS_GANON (or (CanUse RG_LENS_OF_TRUTH) (CanUse RG_BOOMERANG))))
RC_GANONS_CASTLE_SHADOW_TRIAL_HEART_3 (and (or (CanUse RG_FIRE_ARROWS) (and (CanUse RG_LONGSHOT) (or (CanUse RG_HOVER_BOOTS) (CanUse RG_DINS_FIRE)))) (or RT_LENS_GANON (or (CanUse RG_LENS_OF_TRUTH) (CanUse RG_BOOMERANG))))
def RR_GANONS_CASTLE_SPIRIT_TRIAL SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle Spirit Trial
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)))))
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))))))
RC_GANONS_CASTLE_SPIRIT_TRIAL_POT_2 (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))))))
RC_GANONS_CASTLE_SPIRIT_TRIAL_SUN_FAIRY (CanUse RG_SUNS_SONG)
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
LightTrialClear (and (CanUse RG_LIGHT_ARROWS) (and (CanUse RG_HOOKSHOT) (and (SmallKeys RR_GANONS_CASTLE 2) (or RT_LENS_GANON (CanUse RG_LENS_OF_TRUTH)))))
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
RC_GANONS_CASTLE_LIGHT_TRIAL_FIRST_RIGHT_CHEST true
RC_GANONS_CASTLE_LIGHT_TRIAL_SECOND_RIGHT_CHEST true
RC_GANONS_CASTLE_LIGHT_TRIAL_THIRD_RIGHT_CHEST true
RC_GANONS_CASTLE_LIGHT_TRIAL_INVISIBLE_ENEMIES_CHEST (or RT_LENS_GANON (CanUse RG_LENS_OF_TRUTH))
RC_GANONS_CASTLE_LIGHT_TRIAL_LULLABY_CHEST (and (CanUse RG_ZELDAS_LULLABY) (SmallKeys RR_GANONS_CASTLE 1))
RC_GANONS_CASTLE_LIGHT_TRIAL_BOULDER_POT_1 (and CanBreakPots (SmallKeys RR_GANONS_CASTLE 2))
RC_GANONS_CASTLE_LIGHT_TRIAL_POT_1 (and CanBreakPots (and (CanUse RG_HOOKSHOT) (and (SmallKeys RR_GANONS_CASTLE 2) (or RT_LENS_GANON (CanUse RG_LENS_OF_TRUTH)))))
RC_GANONS_CASTLE_LIGHT_TRIAL_POT_2 (and CanBreakPots (and (CanUse RG_HOOKSHOT) (and (SmallKeys RR_GANONS_CASTLE 2) (or RT_LENS_GANON (CanUse RG_LENS_OF_TRUTH)))))
def RR_GANONS_CASTLE_MQ_LOBBY SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle MQ Lobby
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
RC_SHEIK_HINT_MQ_GC true
RR_GANONS_CASTLE_MQ_LOBBY true
RR_GANONS_CASTLE_MQ_FOREST_TRIAL_STALFOS_ROOM true
RR_GANONS_CASTLE_MQ_FIRE_TRIAL_MAIN_ROOM true
RR_GANONS_CASTLE_MQ_WATER_TRIAL_GEYSER_ROOM true
RR_GANONS_CASTLE_MQ_SHADOW_TRIAL_STARTING_LEDGE true
RR_GANONS_CASTLE_MQ_SPIRIT_TRIAL_CHAIRS_ROOM true
RR_GANONS_CASTLE_MQ_LIGHT_TRIAL_DINOLFOS_ROOM (Here (CanUse RG_GOLDEN_GAUNTLETS))
RR_GANONS_TOWER_ENTRYWAY true
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
FreeFairies true
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
RC_GANONS_CASTLE_MQ_DEKU_SCRUB_LEFT CanStunDeku
RC_GANONS_CASTLE_MQ_DEKU_SCRUB_RIGHT CanStunDeku
RC_GANONS_CASTLE_MQ_SCRUBS_FAIRY_1 true
RC_GANONS_CASTLE_MQ_SCRUBS_FAIRY_2 true
RC_GANONS_CASTLE_MQ_SCRUBS_FAIRY_3 true
RC_GANONS_CASTLE_MQ_SCRUBS_FAIRY_4 true
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
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
RC_GANONS_CASTLE_MQ_FOREST_TRIAL_FREESTANDING_KEY HookshotOrBoomerang
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
RC_GANONS_CASTLE_MQ_FOREST_TRIAL_EYE_SWITCH_CHEST CanHitEyeTargets
RC_GANONS_CASTLE_MQ_FOREST_TRIAL_FROZEN_EYE_SWITCH_CHEST HasFireSource
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
ForestTrialClear (CanUse RG_LIGHT_ARROWS)
RC_GANONS_CASTLE_MQ_FOREST_TRIAL_POT_1 CanBreakPots
RC_GANONS_CASTLE_MQ_FOREST_TRIAL_POT_2 CanBreakPots
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
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
FireTrialClear (CanUse RG_LIGHT_ARROWS)
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
BlueFireAccess (or CanJumpslash HasExplosives)
RC_GANONS_CASTLE_MQ_WATER_TRIAL_CHEST BlueFire
RC_GANONS_CASTLE_MQ_WATER_TRIAL_HEART BlueFire
RR_GANONS_CASTLE_MQ_MAIN true
RR_GANONS_CASTLE_MQ_WATER_TRIAL_BLOCK_ROOM (and (SmallKeys RR_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
RR_GANONS_CASTLE_MQ_WATER_TRIAL_GEYSER_ROOM (SmallKeys RR_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
WaterTrialClear (CanUse RG_LIGHT_ARROWS)
RC_GANONS_CASTLE_MQ_WATER_TRIAL_POT_1 CanBreakPots
RC_GANONS_CASTLE_MQ_WATER_TRIAL_POT_2 CanBreakPots
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
ShadowTrialFirstChest (CanUse RG_FAIRY_BOW)
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
ShadowTrialFirstChest (CanUse RG_FAIRY_BOW)
RC_GANONS_CASTLE_MQ_SHADOW_TRIAL_BOMB_FLOWER_CHEST ShadowTrialFirstChest
//Hookshot here is possible but very tight, but it's basically never relevant
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
ShadowTrialFirstChest CanDetonateUprightBombFlower
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
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
//Hovers is possible as child but a bit tight, requires good rolls
RR_GANONS_CASTLE_MQ_SHADOW_TRIAL_FAR_SIDE (or HasFireSource (or (CanUse RG_HOVER_BOOTS) (and IsAdult (and RT_GANON_MQ_SHADOW_TRIAL (CanUse RG_FAIRY_BOW)))))
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
RC_GANONS_CASTLE_MQ_SHADOW_TRIAL_EYE_SWITCH_CHEST CanHitEyeTargets
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
//So a system like event access which sets based on TimeAge would be preferable, as the application of these can be tracked and accounted for, unlike Here-like commands
//For Now I am assuming the player has made it all the way from RR_GANONS_CASTLE_MQ_SHADOW_TRIAL_STARTING_LEDGE, which logically means every rupee is available
//with no extra requirements except the lens logic needed to reach the door, which also enables the beamos-platform rupee
RR_GANONS_CASTLE_MQ_SHADOW_TRIAL_FINAL_ROOM (or RT_LENS_GANON_MQ (CanUse RG_LENS_OF_TRUTH))
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
ShadowTrialClear (CanUse RG_LIGHT_ARROWS)
RC_GANONS_CASTLE_MQ_SHADOW_TRIAL_POT_1 CanBreakPots
RC_GANONS_CASTLE_MQ_SHADOW_TRIAL_POT_2 CanBreakPots
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
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
RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_FIRST_CHEST (CanPassEnemy RE_GREEN_BUBBLE)
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
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)))
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
SpiritTrialClear (CanUse RG_LIGHT_ARROWS)
NutPot true
RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_POT_1 CanBreakPots
RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_POT_2 CanBreakPots
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
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
RC_GANONS_CASTLE_MQ_LIGHT_TRIAL_LULLABY_CHEST (CanUse RG_ZELDAS_LULLABY)
RR_GANONS_CASTLE_MQ_LIGHT_TRIAL_DINOLFOS_ROOM true
RR_GANONS_CASTLE_MQ_LIGHT_TRIAL_BOULDER_ROOM_FRONT (SmallKeys RR_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
RR_GANONS_CASTLE_MQ_LIGHT_TRIAL_TRIFORCE_ROOM (SmallKeys RR_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
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
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 RR_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
LightTrialClear (CanUse RG_LIGHT_ARROWS)
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
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?
RR_GANONS_TOWER_FLOOR_1 (and (or ForestTrialClear (IsTrialSkipped TK_FOREST_TRIAL)) (and (or FireTrialClear (IsTrialSkipped TK_FIRE_TRIAL)) (and (or WaterTrialClear (IsTrialSkipped TK_WATER_TRIAL)) (and (or ShadowTrialClear (IsTrialSkipped TK_SHADOW_TRIAL)) (and (or SpiritTrialClear (IsTrialSkipped TK_SPIRIT_TRIAL)) (or LightTrialClear (IsTrialSkipped TK_LIGHT_TRIAL)))))))
def RR_GANONS_TOWER_FLOOR_1 SCENE_GANONS_TOWER false
Ganon's Tower Floor 1
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
RC_GANONS_TOWER_BOSS_KEY_CHEST (CanKillEnemy RE_STALFOS ED_CLOSE true 2)
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
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
RC_GANONS_CASTLE_GANONS_TOWER_POT_1 CanBreakPots
RC_GANONS_CASTLE_GANONS_TOWER_POT_2 CanBreakPots
RC_GANONS_CASTLE_GANONS_TOWER_POT_3 CanBreakPots
RC_GANONS_CASTLE_GANONS_TOWER_POT_4 CanBreakPots
RC_GANONS_CASTLE_GANONS_TOWER_POT_5 CanBreakPots
RC_GANONS_CASTLE_GANONS_TOWER_POT_6 CanBreakPots
RC_GANONS_CASTLE_GANONS_TOWER_POT_7 CanBreakPots
RC_GANONS_CASTLE_GANONS_TOWER_POT_8 CanBreakPots
RC_GANONS_CASTLE_GANONS_TOWER_POT_9 CanBreakPots
RC_GANONS_CASTLE_GANONS_TOWER_POT_10 CanBreakPots
RC_GANONS_CASTLE_GANONS_TOWER_POT_11 CanBreakPots
RC_GANONS_CASTLE_GANONS_TOWER_POT_12 CanBreakPots
RC_GANONS_CASTLE_GANONS_TOWER_POT_13 CanBreakPots
RC_GANONS_CASTLE_GANONS_TOWER_POT_14 CanBreakPots
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
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
RC_GANONDORF_HINT (HasBossSoul RG_GANON_SOUL)
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.
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
RC_GANON (CanKillEnemy RE_GANON)

View file

@ -0,0 +1,225 @@
def RR_GERUDO_TRAINING_GROUND_ENTRYWAY SCENE_GERUDO_TRAINING_GROUND false RA_GERUDO_TRAINING_GROUND
Gerudo Training Ground Entryway
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
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)
RC_GERUDO_TRAINING_GROUND_BEAMOS_CHEST (and (CanKillEnemy RE_BEAMOS) (CanKillEnemy RE_DINOLFOS ED_CLOSE true 2 true))
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
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)))
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
RC_GERUDO_TRAINING_GROUND_HIDDEN_CEILING_CHEST (and (SmallKeys RR_GERUDO_TRAINING_GROUND 3) (or RT_LENS_GTG (CanUse RG_LENS_OF_TRUTH)))
RC_GERUDO_TRAINING_GROUND_MAZE_PATH_FIRST_CHEST (SmallKeys RR_GERUDO_TRAINING_GROUND 4)
RC_GERUDO_TRAINING_GROUND_MAZE_PATH_SECOND_CHEST (SmallKeys RR_GERUDO_TRAINING_GROUND 6)
RC_GERUDO_TRAINING_GROUND_MAZE_PATH_THIRD_CHEST (SmallKeys RR_GERUDO_TRAINING_GROUND 7)
RC_GERUDO_TRAINING_GROUND_MAZE_PATH_FINAL_CHEST (SmallKeys RR_GERUDO_TRAINING_GROUND 9)
RR_GERUDO_TRAINING_GROUND_CENTRAL_MAZE_RIGHT (SmallKeys RR_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
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
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
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))))
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
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))
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
RC_GERUDO_TRAINING_GROUND_EYE_STATUE_CHEST (CanUse RG_FAIRY_BOW)
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
RC_GERUDO_TRAINING_GROUND_NEAR_SCARECROW_CHEST (CanUse RG_FAIRY_BOW)
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
RC_GERUDO_TRAINING_GROUND_BEFORE_HEAVY_BLOCK_CHEST (CanKillEnemy RE_WOLFOS ED_CLOSE true 4 true)
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
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
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
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
RC_GERUDO_TRAINING_GROUND_MQ_MAZE_PATH_SECOND_CHEST true
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
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 RR_GERUDO_TRAINING_GROUND 1)
//It's possible to use the torch in RR_GERUDO_TRAINING_GROUND_MQ_MAZE_HIDDEN_ROOM with flame storage to light these
RR_GERUDO_TRAINING_GROUND_MQ_SAND_ROOM (Here HasFireSource)
RR_GERUDO_TRAINING_GROUND_MQ_DINOLFOS_ROOM (Here (or (and IsAdult (CanUse RG_FAIRY_BOW)) (and IsChild (CanUse RG_FAIRY_SLINGSHOT))))
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
RC_GERUDO_TRAINING_GROUND_MQ_HIDDEN_CEILING_CHEST true
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
RC_GERUDO_TRAINING_GROUND_MQ_MAZE_PATH_THIRD_CHEST true
RR_GERUDO_TRAINING_GROUND_MQ_LOBBY (SmallKeys RR_GERUDO_TRAINING_GROUND 1)
RR_GERUDO_TRAINING_GROUND_MQ_MAZE_CENTER (SmallKeys RR_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
MQGTGMazeSwitch (CanUse RG_MEGATON_HAMMER)
RC_GERUDO_TRAINING_GROUND_MQ_MAZE_CRATE CanBreakCrates
RR_GERUDO_TRAINING_GROUND_MQ_MAZE_FIRST_LOCK (SmallKeys RR_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
RC_GERUDO_TRAINING_GROUND_MQ_FIRST_IRON_KNUCKLE_CHEST (CanKillEnemy RE_IRON_KNUCKLE)
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
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
BlueFireAccess true
//implies logic->CanKillEnemy(RE_BIG_SKULLTULA)
RC_GERUDO_TRAINING_GROUND_MQ_BEFORE_HEAVY_BLOCK_CHEST (CanKillEnemy RE_STALFOS ED_CLOSE true 2 true)
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)
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
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))))))))
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
RC_GERUDO_TRAINING_GROUND_MQ_ICE_ARROWS_CHEST MQGTGMazeSwitch
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
RC_GERUDO_TRAINING_GROUND_MQ_EYE_STATUE_CHEST (CanUse RG_FAIRY_BOW)
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)
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)
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
MQGTGRightSideSwitch (CanUse RG_MEGATON_HAMMER)
GTGPlatformSilverRupees (and (CanUse RG_FIRE_ARROWS) (CanUse RG_HOVER_BOOTS))
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))))
RR_GERUDO_TRAINING_GROUND_MQ_MAZE_RIGHT (and MQGTGRightSideSwitch (CanUse RG_LONGSHOT))
//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
//This covers the 2 platforms that can be jumped to directly from RR_GERUDO_TRAINING_GROUND_MQ_SWITCH_LEDGE
//the unshuffled rupee collection is handled by the event GTGPlatformSilverRupees
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
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
//This covers the platform that needs hover boots or the spawned targets to reach from any starting point other than RR_GERUDO_TRAINING_GROUND_MQ_MAZE_RIGHT
//the unshuffled rupee collection is handled by the event GTGPlatformSilverRupees
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
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
GTGPlatformSilverRupees (and (or (and (CanUse RG_FAIRY_BOW) IsAdult) (CanUse RG_FIRE_ARROWS)) (CanUse RG_HOVER_BOOTS))
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))))
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
GTGPlatformSilverRupees (and HasFireSource (CanUse RG_HOVER_BOOTS))
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))
RR_GERUDO_TRAINING_GROUND_MQ_MAZE_RIGHT (and MQGTGRightSideSwitch (or (CanUse RG_LONGSHOT) (and (CanUse RG_HOOKSHOT) HasFireSource)))
def RR_GERUDO_TRAINING_GROUND_MQ_DINOLFOS_ROOM SCENE_GERUDO_TRAINING_GROUND false RA_GERUDO_TRAINING_GROUND
Gerudo Training Ground MQ Dinolfos Room
//WallFairy (and IsAdult (CanUse RG_FAIRY_BOW))
//implies logic->CanKillEnemy(RE_LIZALFOS and logic->CanKillEnemy(RE_DODONGO)
//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
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)))))))
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
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))))
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
GTGPlatformSilverRupees (and (CanUse RG_FIRE_ARROWS) (CanUse RG_HOVER_BOOTS))
RC_GERUDO_TRAINING_GROUND_MQ_MAZE_RIGHT_CENTRAL_CHEST true
RC_GERUDO_TRAINING_GROUND_MQ_MAZE_RIGHT_SIDE_CHEST true
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))))
RR_GERUDO_TRAINING_GROUND_MQ_LEDGE_SIDE_PLATFORMS (CanUse RG_FIRE_ARROWS)
RR_GERUDO_TRAINING_GROUND_MQ_FURTHEST_PLATFORM (CanUse RG_FIRE_ARROWS)

View file

@ -0,0 +1,100 @@
def RR_ICE_CAVERN_ENTRYWAY SCENE_ICE_CAVERN false RA_ICE_CAVERN
Ice Cavern Entryway
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
RC_ICE_CAVERN_ENTRANCE_STORMS_FAIRY (CanUse RG_SONG_OF_STORMS)
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
BlueFireAccess IsAdult
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))
RC_SHEIK_IN_ICE_CAVERN (and BlueFire (and (CanKillEnemy RE_WOLFOS) IsAdult))
RC_ICE_CAVERN_FREESTANDING_POH BlueFire
RC_ICE_CAVERN_GS_SPINNING_SCYTHE_ROOM HookshotOrBoomerang
RC_ICE_CAVERN_GS_HEART_PIECE_ROOM (and BlueFire HookshotOrBoomerang)
RC_ICE_CAVERN_GS_PUSH_BLOCK_ROOM (and BlueFire (or HookshotOrBoomerang (and RT_ICE_BLOCK_GS (and IsAdult (CanUse RG_HOVER_BOOTS)))))
RC_ICE_CAVERN_HALL_POT_1 CanBreakPots
RC_ICE_CAVERN_HALL_POT_2 CanBreakPots
RC_ICE_CAVERN_SPINNING_BLADE_POT_1 CanBreakPots
RC_ICE_CAVERN_SPINNING_BLADE_POT_2 CanBreakPots
RC_ICE_CAVERN_SPINNING_BLADE_POT_3 CanBreakPots
RC_ICE_CAVERN_NEAR_END_POT_1 (and CanBreakPots BlueFire)
RC_ICE_CAVERN_NEAR_END_POT_2 (and CanBreakPots BlueFire)
RC_ICE_CAVERN_FROZEN_POT_1 (and CanBreakPots (and BlueFire IsAdult))
RC_ICE_CAVERN_LOBBY_RUPEE BlueFire
RC_ICE_CAVERN_MAP_ROOM_LEFT_HEART IsAdult
RC_ICE_CAVERN_MAP_ROOM_MIDDLE_HEART IsAdult
RC_ICE_CAVERN_MAP_ROOM_RIGHT_HEART IsAdult
RC_ICE_CAVERN_SLIDING_BLOCK_RUPEE_1 (and BlueFire (or (CanUse RG_SONG_OF_TIME) (CanUse RG_BOOMERANG)))
RC_ICE_CAVERN_SLIDING_BLOCK_RUPEE_2 (and BlueFire (or (CanUse RG_SONG_OF_TIME) (CanUse RG_BOOMERANG)))
RC_ICE_CAVERN_SLIDING_BLOCK_RUPEE_3 (and BlueFire (or (CanUse RG_SONG_OF_TIME) (CanUse RG_BOOMERANG)))
def RR_ICE_CAVERN_MQ_BEGINNING SCENE_ICE_CAVERN false RA_ICE_CAVERN
Ice Cavern MQ Beginning
RC_ICE_CAVERN_MQ_ENTRANCE_POT CanBreakPots
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
FairyPot true
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
RC_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_2 CanBreakPots
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.
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)
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
BlueFireAccess (or IsChild (or CanJumpslash HasExplosives))
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
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)))
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
RC_ICE_CAVERN_MQ_IRON_BOOTS_CHEST (CanKillEnemy RE_STALFOS)
RC_SHEIK_IN_ICE_CAVERN (CanKillEnemy RE_STALFOS)
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
RC_ICE_CAVERN_MQ_PUSH_BLOCK_POT_1 CanBreakPots
RC_ICE_CAVERN_MQ_PUSH_BLOCK_POT_2 CanBreakPots
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
BlueFireAccess true
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
//doing RT_ICE_MQ_RED_ICE_GS as child is untested, as I could not perform the trick reliably even as adult
RC_ICE_CAVERN_MQ_GS_RED_ICE (or (and RSK_BLUE_FIRE_ARROWS (CanUse RG_ICE_ARROWS)) (and (CanUse RG_BOTTLE_WITH_BLUE_FIRE) (and (or (CanUse RG_SONG_OF_TIME) (and IsAdult RT_ICE_MQ_RED_ICE_GS)) (CanGetEnemyDrop RE_GOLD_SKULLTULA))))
RC_ICE_CAVERN_MQ_COMPASS_POT_1 CanBreakPots
RC_ICE_CAVERN_MQ_COMPASS_POT_2 CanBreakPots

View file

@ -0,0 +1,267 @@
def RR_JABU_JABUS_BELLY_ENTRYWAY SCENE_JABU_JABU false RA_JABU_JABUS_BELLY
Jabu Jabus Belly Entryway
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
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
JabuWestTentacle (and JabuRutoIn1F (CanKillEnemy RE_TENTACLE ED_BOOMERANG))
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
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
RR_JABU_JABUS_BELLY_COMPASS_ROOM JabuWestTentacle
RR_JABU_JABUS_BELLY_BLUE_TENTACLE JabuWestTentacle
RR_JABU_JABUS_BELLY_GREEN_TENTACLE JabuEastTentacle
RR_JABU_JABUS_BELLY_BIGOCTO_LEDGE JabuNorthTentacle
RR_JABU_JABUS_BELLY_NEAR_BOSS_ROOM (or LoweredJabuPath (and RT_JABU_BOSS_HOVER (CanUse RG_HOVER_BOOTS)))
def RR_JABU_JABUS_BELLY_B1_NORTH SCENE_JABU_JABU false RA_JABU_JABUS_BELLY
Jabu Jabus Belly B1 North
JabuRutoIn1F (or IsAdult (HasItem RG_BRONZE_SCALE))
FairyPot (or (CanUse RG_BOOMERANG) (and (CanUse RG_HOVER_BOOTS) (CanKillEnemy RE_OCTOROK)))
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
RC_JABU_JABUS_BELLY_TWO_OCTOROK_POT_1 (and CanBreakPots (or (CanUse RG_BOOMERANG) (and (CanUse RG_HOVER_BOOTS) (CanKillEnemy RE_OCTOROK ED_BOOMERANG false))))
RC_JABU_JABUS_BELLY_TWO_OCTOROK_POT_2 (and CanBreakPots (or (CanUse RG_BOOMERANG) (and (CanUse RG_HOVER_BOOTS) (CanKillEnemy RE_OCTOROK ED_BOOMERANG false))))
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))))
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))
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
RC_JABU_JABUS_BELLY_GS_WATER_SWITCH_ROOM HookshotOrBoomerang
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
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
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
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
RC_JABU_JABUS_BELLY_COMPASS_CHEST (CanKillEnemy RE_SHABOM)
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
JabuEastTentacle (CanKillEnemy RE_TENTACLE ED_BOOMERANG)
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
JabuNorthTentacle (CanKillEnemy RE_TENTACLE ED_BOOMERANG)
//implied logic->CanKillEnemy(RE_BARI)
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
RC_JABU_JABUS_BELLY_GS_LOBBY_BASEMENT_UPPER (and IsAdult (CanGetEnemyDrop RE_GOLD_SKULLTULA ED_SHORT_JUMPSLASH))
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
FairyPot true
NutPot true
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
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
LoweredJabuPath true
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
RC_JABU_JABUS_BELLY_GS_NEAR_BOSS (CanKillEnemy RE_GOLD_SKULLTULA ED_BOMB_THROW)
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
NutPot true
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
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
MQJabuLiftRoomCow (CanUse RG_FAIRY_SLINGSHOT)
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)
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
RR_JABU_JABUS_BELLY_MQ_LIFT_ROOM_EAST_LEDGE (or LoweredJabuPath (or (CanUse RG_HOVER_BOOTS) (and (CanUse RG_HOOKSHOT) MQJabuLiftRoomCow)))
//If opening RR_JABU_JABUS_BELLY_MQ_WATER_SWITCH_ROOM by lowering the geyser as 1 age is to let the other through is relevant, it needs an eventAccess
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
RC_JABU_JABUS_BELLY_MQ_SECOND_ROOM_UPPER_CHEST MQJabuLiftRoomCow
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
MQJabuHolesRoomDoor true
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
//Getting the ones closest to the ledge with rang may be a trick due to the awkward angle without blind shooting through the flesh
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))
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
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)
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
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))))
RR_JABU_JABUS_BELLY_MQ_INVISIBLE_KEESE_ROOM JabuNorthTentacle
RR_JABU_JABUS_BELLY_MQ_PAST_OCTO (and JabuWestTentacle (and (Here (CanKillEnemy RE_BIG_OCTO)) (CanUse RG_FAIRY_SLINGSHOT)))
def RR_JABU_JABUS_BELLY_MQ_WATER_SWITCH_ROOM SCENE_JABU_JABU false RA_JABU_JABUS_BELLY
Jabu Jabus Belly MQ Water Switch Room
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)
RC_JABU_JABUS_BELLY_MQ_GS_BOOMERANG_CHEST_ROOM (or (and (CanUse RG_SONG_OF_TIME) (CanGetEnemyDrop RE_GOLD_SKULLTULA)) (and RT_JABU_MQ_SOT_GS (CanUse RG_BOOMERANG)))
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
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
JabuNorthTentacle (and (Here BlastOrSmash) (CanUse RG_BOOMERANG))
//Implies CanKillEnemy(RE_LIKE_LIKE)
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
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
JabuWestTentacle (CanKillEnemy RE_TENTACLE ED_BOOMERANG)
RC_JABU_JABUS_BELLY_MQ_GS_TAILPASARAN_ROOM (and (Here HasExplosives) (CanGetEnemyDrop RE_GOLD_SKULLTULA ED_BOOMERANG))
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
Jabu Jabus Belly MQ Invisible Keese Room
RC_JABU_JABUS_BELLY_MQ_GS_INVISIBLE_ENEMIES_ROOM (or
//firstly, we can just use FAs to clear the web and then longshot the skull
(and (CanUse RG_FIRE_ARROWS) (CanGetEnemyDrop RE_GOLD_SKULLTULA ED_LONGSHOT))
//Otherwise, we we have to cross the gap and kill the skull.
//We can cheese the gap with hovers
//Otherwise we have to kill the enemies to raise the platform. This persists so we can do it as the other age.
(and (CanGetEnemyDrop RE_GOLD_SKULLTULA ED_BOOMERANG) (and
//we can hit the keese farthest from the water with irons and hookshot, but we won't be able to see it while doing so
(or (CanUse RG_HOVER_BOOTS) (Here (and (or RT_LENS_JABU_MQ (CanUse RG_LENS_OF_TRUTH)) (and (CanKillEnemy RE_STINGER ED_BOOMERANG false 2 false true) (or (CanKillEnemy RE_KEESE ED_LONGSHOT false) (and RT_LENS_JABU_MQ (and (CanUse RG_HOOKSHOT) (CanUse RG_IRON_BOOTS))))))))
//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))))
)
)
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
LoweredJabuPath (and (CanUse RG_BOOMERANG) (CanUse RG_FAIRY_SLINGSHOT))
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)
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
FairyPot true
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
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
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
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
JabuJabusBellyClear (CanKillEnemy RE_BARINADE)
RC_JABU_JABUS_BELLY_BARINADE_POT_1 CanBreakPots
RC_JABU_JABUS_BELLY_BARINADE_POT_2 CanBreakPots
RC_JABU_JABUS_BELLY_BARINADE_POT_3 CanBreakPots
RC_JABU_JABUS_BELLY_BARINADE_POT_4 CanBreakPots
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
RR_JABU_JABUS_BELLY_BOSS_EXIT false
RR_ZORAS_FOUNTAIN @deprioritize JabuJabusBellyClear

View file

@ -0,0 +1,306 @@
def RR_SHADOW_TEMPLE_ENTRYWAY SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple Entryway
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
NutPot true
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
RC_SHADOW_TEMPLE_WHISPERING_WALLS_POT_1 CanBreakPots
RC_SHADOW_TEMPLE_WHISPERING_WALLS_POT_2 CanBreakPots
RC_SHADOW_TEMPLE_WHISPERING_WALLS_POT_3 CanBreakPots
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
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
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)
RR_SHADOW_TEMPLE_HUGE_PIT (and HasExplosives (and IsAdult (SmallKeys RR_SHADOW_TEMPLE 1 2)))
RR_SHADOW_TEMPLE_BEYOND_BOAT false
def RR_SHADOW_TEMPLE_HUGE_PIT SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple Huge Pit
RC_SHADOW_TEMPLE_INVISIBLE_BLADES_VISIBLE_CHEST CanJumpslashExceptHammer
RC_SHADOW_TEMPLE_INVISIBLE_BLADES_INVISIBLE_CHEST CanJumpslashExceptHammer
RC_SHADOW_TEMPLE_FALLING_SPIKES_LOWER_CHEST true
RC_SHADOW_TEMPLE_FALLING_SPIKES_UPPER_CHEST (or (and RT_SHADOW_UMBRELLA (CanUse RG_HOVER_BOOTS)) (HasItem RG_GORONS_BRACELET))
RC_SHADOW_TEMPLE_FALLING_SPIKES_SWITCH_CHEST (or (and RT_SHADOW_UMBRELLA (CanUse RG_HOVER_BOOTS)) (HasItem RG_GORONS_BRACELET))
RC_SHADOW_TEMPLE_INVISIBLE_SPIKES_CHEST (and (SmallKeys RR_SHADOW_TEMPLE 2 3) (or (and RT_LENS_SHADOW_PLATFORM RT_LENS_SHADOW) (CanUse RG_LENS_OF_TRUTH)))
RC_SHADOW_TEMPLE_FREESTANDING_KEY (and (SmallKeys RR_SHADOW_TEMPLE 2 3) (and (or (and RT_LENS_SHADOW_PLATFORM RT_LENS_SHADOW) (CanUse RG_LENS_OF_TRUTH)) (and (CanUse RG_HOOKSHOT) (or (CanUse RG_BOMB_BAG) (or (HasItem RG_GORONS_BRACELET) (and RT_SHADOW_FREESTANDING_KEY (CanUse RG_BOMBCHU_5)))))))
RC_SHADOW_TEMPLE_GS_LIKE_LIKE_ROOM CanJumpslashExceptHammer
RC_SHADOW_TEMPLE_GS_FALLING_SPIKES_ROOM (or (CanUse RG_HOOKSHOT) (and RT_SHADOW_UMBRELLA_GS (CanUse RG_HOVER_BOOTS)))
RC_SHADOW_TEMPLE_GS_SINGLE_GIANT_POT (and (SmallKeys RR_SHADOW_TEMPLE 2 3) (and (or (and RT_LENS_SHADOW_PLATFORM RT_LENS_SHADOW) (CanUse RG_LENS_OF_TRUTH)) (CanUse RG_HOOKSHOT)))
RC_SHADOW_TEMPLE_FALLING_SPIKES_POT_1 CanBreakPots
RC_SHADOW_TEMPLE_FALLING_SPIKES_POT_2 CanBreakPots
RC_SHADOW_TEMPLE_FALLING_SPIKES_POT_3 (or (and CanBreakPots (and RT_SHADOW_UMBRELLA (CanUse RG_HOVER_BOOTS))) (HasItem RG_GORONS_BRACELET))
RC_SHADOW_TEMPLE_FALLING_SPIKES_POT_4 (or (and CanBreakPots (and RT_SHADOW_UMBRELLA (CanUse RG_HOVER_BOOTS))) (HasItem RG_GORONS_BRACELET))
//We cannot repeat the MQ invisible blades trick for these hearts as the like-like does not respawn if the room is cleared
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)
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 RR_SHADOW_TEMPLE 3 4)))
def RR_SHADOW_TEMPLE_WIND_TUNNEL SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple Wind Tunnel
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
RC_SHADOW_TEMPLE_GS_NEAR_SHIP (and (CanUse RG_LONGSHOT) (SmallKeys RR_SHADOW_TEMPLE 4 5))
RC_SHADOW_TEMPLE_WIND_HINT_SUN_FAIRY (CanUse RG_SUNS_SONG)
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 RR_SHADOW_TEMPLE 4 5))
RC_SHADOW_TEMPLE_SCARECROW_SOUTH_HEART (and (CanUse RG_DISTANT_SCARECROW) (SmallKeys RR_SHADOW_TEMPLE 4 5))
RR_SHADOW_TEMPLE_BEYOND_BOAT (and CanJumpslashExceptHammer (and (CanUse RG_ZELDAS_LULLABY) (SmallKeys RR_SHADOW_TEMPLE 4 5)))
def RR_SHADOW_TEMPLE_BEYOND_BOAT SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple Beyond Boat
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)
//RANDOTODO check if child can reach the token
RC_SHADOW_TEMPLE_GS_TRIPLE_GIANT_POT (and IsAdult CanAttack)
RC_SHADOW_TEMPLE_AFTER_BOAT_POT_1 CanBreakPots
RC_SHADOW_TEMPLE_AFTER_BOAT_POT_2 CanBreakPots
RC_SHADOW_TEMPLE_AFTER_BOAT_POT_3 (and CanBreakPots (or (CanUse RG_FAIRY_BOW) (or (CanUse RG_DISTANT_SCARECROW) (and RT_SHADOW_STATUE (CanUse RG_BOMBCHU_5)))))
RC_SHADOW_TEMPLE_AFTER_BOAT_POT_4 (and CanBreakPots (or (CanUse RG_FAIRY_BOW) (or (CanUse RG_DISTANT_SCARECROW) (and RT_SHADOW_STATUE (CanUse RG_BOMBCHU_5)))))
RC_SHADOW_TEMPLE_SPIKE_WALLS_POT_1 CanBreakPots
RC_SHADOW_TEMPLE_FLOORMASTER_POT_1 CanBreakPots
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)))
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 RR_SHADOW_TEMPLE 5) (CanUse RG_HOVER_BOOTS)))
def RR_SHADOW_TEMPLE_MQ_ENTRYWAY SCENE_ID_MAX false
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
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
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
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 RR_SHADOW_TEMPLE 6) (or RT_LENS_SHADOW_MQ (CanUse RG_LENS_OF_TRUTH))))
//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
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))
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
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
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)
RR_SHADOW_TEMPLE_MQ_UPPER_HUGE_PIT (and HasExplosives (SmallKeys RR_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
RC_SHADOW_TEMPLE_MQ_MAP_CHEST (and (CanPassEnemy RE_BIG_SKULLTULA) (or (CanUse RG_HOOKSHOT) (and IsAdult (CanUse RG_HOVER_BOOTS))))
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
RC_SHADOW_TEMPLE_MQ_NEAR_SHIP_INVISIBLE_CHEST (or RT_LENS_SHADOW_MQ (CanUse RG_LENS_OF_TRUTH))
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
//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
RR_SHADOW_TEMPLE_MQ_FIRST_BEAMOS (SmallKeys RR_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
RC_SHADOW_TEMPLE_MQ_PIT_STORM_FAIRY (CanUse RG_SONG_OF_STORMS)
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))
def RR_SHADOW_TEMPLE_MQ_INVISIBLE_BLADES_ROOM SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
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
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)))
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
RC_SHADOW_TEMPLE_MQ_BEAMOS_SILVER_RUPEES_CHEST (CanUse RG_LONGSHOT)
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 RR_SHADOW_TEMPLE 3)))
def RR_SHADOW_TEMPLE_MQ_STONE_UMBRELLA_ROOM SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple MQ Stone Umbrella Room
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
RC_SHADOW_TEMPLE_MQ_GS_FALLING_SPIKES_ROOM (or (CanGetEnemyDrop RE_GOLD_SKULLTULA ED_BOOMERANG) (and RT_SHADOW_UMBRELLA_GS (and RT_SHADOW_UMBRELLA (and (CanUse RG_HOVER_BOOTS) (and CanStandingShield (CanUse RG_MASTER_SWORD))))))
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)
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
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
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
def RR_SHADOW_TEMPLE_MQ_FLOOR_SPIKES_ROOM SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple MQ Floor Spikes Room
//lens or trick is always required for hookshot targets. We handle it here to not complicate the RR_SHADOW_TEMPLE_MQ_FLOOR_SPIKES_UPPER_DOOR logic
MQShadowFloorSpikeRupees (and (or RT_LENS_SHADOW_MQ (CanUse RG_LENS_OF_TRUTH))
//Upper door side high rupee needs (hookshot and redead kill(as either age) for chest and adult) or longshot. hovers can cross from the left side with a backflip but that would be a trick
//East midair rupee needs (hookshot and(hover boots or jumpslash from the upper door platform)) or longshot.
//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
(or TakeDamage (CanUse RG_HOVER_BOOTS))))
RC_SHADOW_TEMPLE_MQ_INVISIBLE_SPIKES_CHEST (and (CanKillEnemy RE_REDEAD) (or RT_LENS_SHADOW_MQ (or TakeDamage (CanUse RG_LENS_OF_TRUTH))))
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 RR_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
RC_SHADOW_TEMPLE_MQ_STALFOS_ROOM_CHEST (CanKillEnemy RE_STALFOS ED_CLOSE true 2)
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
RR_SHADOW_TEMPLE_MQ_FLOOR_SPIKES_ROOM (and (SmallKeys RR_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
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)
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
NutPot true
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
RR_SHADOW_TEMPLE_MQ_WIND_TUNNEL (or RT_SHADOW_MQ_WINDY_WALKWAY (CanUse RG_HOVER_BOOTS))
RR_SHADOW_TEMPLE_MQ_DOCK (SmallKeys RR_SHADOW_TEMPLE 5)
def RR_SHADOW_TEMPLE_MQ_DOCK SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple MQ Dock
ShadowShortcutBlock (HasItem RG_GORONS_BRACELET)
RC_SHADOW_TEMPLE_MQ_SCARECROW_NORTH_HEART (CanUse RG_DISTANT_SCARECROW)
RC_SHADOW_TEMPLE_MQ_SCARECROW_SOUTH_HEART (CanUse RG_DISTANT_SCARECROW)
RR_SHADOW_TEMPLE_MQ_SHORTCUT_PATH ShadowShortcutBlock
RR_SHADOW_TEMPLE_MQ_B4_GIBDO_ROOM (SmallKeys RR_SHADOW_TEMPLE 5)
//funnily enough, the wheel jump seems to be in logic as there's no strength requirement in N64
RR_SHADOW_TEMPLE_MQ_BEYOND_BOAT (and (or IsAdult (CanUse RG_HOOKSHOT)) (CanUse RG_ZELDAS_LULLABY))
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
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
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
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
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
RR_SHADOW_TEMPLE_MQ_INVISIBLE_MAZE (Here (and CanHitEyeTargets (and (CanUse RG_SONG_OF_TIME) (CanUse RG_LONGSHOT))))
RR_SHADOW_TEMPLE_MQ_BOSS_DOOR (and (CanUse RG_HOVER_BOOTS) (or RT_LENS_SHADOW_MQ (CanUse RG_LENS_OF_TRUTH)))
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
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)))
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
//Assumes lens is checked on entry
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
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
RR_SHADOW_TEMPLE_MQ_BEYOND_BOAT true
RR_SHADOW_TEMPLE_MQ_SPIKE_WALLS_ROOM (SmallKeys RR_SHADOW_TEMPLE 6)
def RR_SHADOW_TEMPLE_MQ_SPIKE_WALLS_ROOM SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple MQ Spike Walls Room
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
RR_SHADOW_TEMPLE_MQ_INVISIBLE_MAZE (and (SmallKeys RR_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
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
ShadowTempleClear (CanKillEnemy RE_BONGO_BONGO)
RC_SHADOW_TEMPLE_BONGO_BONGO_HEART ShadowTempleClear
RC_BONGO_BONGO ShadowTempleClear
RR_SHADOW_TEMPLE_BOSS_ENTRYWAY false
RR_GRAVEYARD_WARP_PAD_REGION ShadowTempleClear

View file

@ -0,0 +1,395 @@
def RR_SPIRIT_TEMPLE_ENTRYWAY SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple Entryway
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
RC_SPIRIT_TEMPLE_LOBBY_POT_1 CanBreakPots
RC_SPIRIT_TEMPLE_LOBBY_POT_2 CanBreakPots
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
NutCrate true
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))))))
RC_SPIRIT_TEMPLE_ANUBIS_POT_1 (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_ANUBIS_POT_2 (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_ANUBIS_POT_3 (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_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
RR_SPIRIT_TEMPLE_CHILD_CLIMB (SmallKeys RR_SPIRIT_TEMPLE 1)
def RR_SPIRIT_TEMPLE_CHILD_CLIMB SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Child Spirit Temple Climb
RC_SPIRIT_TEMPLE_CHILD_CLIMB_NORTH_CHEST (or (HasProjectile HasProjectileAge::Both) (or (and (SmallKeys RR_SPIRIT_TEMPLE 2) (and (CanUse RG_SILVER_GAUNTLETS) (HasProjectile HasProjectileAge::Adult))) (and (SmallKeys RR_SPIRIT_TEMPLE 5) (and IsChild (HasProjectile HasProjectileAge::Child)))))
RC_SPIRIT_TEMPLE_CHILD_CLIMB_EAST_CHEST (or (HasProjectile HasProjectileAge::Both) (or (and (SmallKeys RR_SPIRIT_TEMPLE 2) (and (CanUse RG_SILVER_GAUNTLETS) (HasProjectile HasProjectileAge::Adult))) (and (SmallKeys RR_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 RR_SPIRIT_TEMPLE 5) (HasProjectile HasProjectileAge::Child))) (and (SmallKeys RR_SPIRIT_TEMPLE 2) (and (CanUse RG_SILVER_GAUNTLETS) (or (HasProjectile HasProjectileAge::Adult) (and TakeDamage CanJumpslashExceptHammer))))))))
RC_SPIRIT_TEMPLE_CHILD_CLIMB_POT_1 CanBreakPots
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
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 RR_SPIRIT_TEMPLE 3)
RC_SPIRIT_TEMPLE_FIRST_MIRROR_RIGHT_CHEST (SmallKeys RR_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)))
RR_SPIRIT_TEMPLE_CENTRAL_CHAMBER (SmallKeys RR_SPIRIT_TEMPLE 1)
def RR_SPIRIT_TEMPLE_CENTRAL_CHAMBER SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple Central Chamber
RC_SPIRIT_TEMPLE_MAP_CHEST (or (and (or HasExplosives (SmallKeys RR_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 RR_SPIRIT_TEMPLE 5) (and HasExplosives (CanUse RG_STICKS))) (and (SmallKeys RR_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 RR_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 RR_SPIRIT_TEMPLE 5) (and HasExplosives (CanUse RG_STICKS))) (and (SmallKeys RR_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 RR_SPIRIT_TEMPLE 3) (and (CanUse RG_SILVER_GAUNTLETS) (CanUse RG_ZELDAS_LULLABY)))
RC_SPIRIT_TEMPLE_STATUE_ROOM_NORTHEAST_CHEST (and (SmallKeys RR_SPIRIT_TEMPLE 3) (and (CanUse RG_SILVER_GAUNTLETS) (and (CanUse RG_ZELDAS_LULLABY) (or (CanUse RG_HOOKSHOT) (or (CanUse RG_HOVER_BOOTS) RT_SPIRIT_LOBBY_JUMP)))))
RC_SPIRIT_TEMPLE_GS_HALL_AFTER_SUN_BLOCK_ROOM (or (and HasExplosives (and (CanUse RG_BOOMERANG) (CanUse RG_HOOKSHOT))) (or (and (CanUse RG_BOOMERANG) (and (SmallKeys RR_SPIRIT_TEMPLE 5) HasExplosives)) (and (CanUse RG_HOOKSHOT) (and (CanUse RG_SILVER_GAUNTLETS) (SmallKeys RR_SPIRIT_TEMPLE 2)))))
RC_SPIRIT_TEMPLE_GS_LOBBY (or (and (or HasExplosives (SmallKeys RR_SPIRIT_TEMPLE 2)) (and RT_SPIRIT_LOBBY_GS (and (CanUse RG_BOOMERANG) (or (CanUse RG_HOOKSHOT) (or (CanUse RG_HOVER_BOOTS) RT_SPIRIT_LOBBY_JUMP))))) (or (and RT_SPIRIT_LOBBY_GS (and (SmallKeys RR_SPIRIT_TEMPLE 5) (and HasExplosives (CanUse RG_BOOMERANG)))) (and (SmallKeys RR_SPIRIT_TEMPLE 3) (and (CanUse RG_SILVER_GAUNTLETS) (or (CanUse RG_HOOKSHOT) (or (CanUse RG_HOVER_BOOTS) RT_SPIRIT_LOBBY_JUMP))))))
RC_SPIRIT_TEMPLE_AFTER_SUN_BLOCK_POT_1 (and CanBreakPots (SmallKeys RR_SPIRIT_TEMPLE 2))
RC_SPIRIT_TEMPLE_AFTER_SUN_BLOCK_POT_2 (and CanBreakPots (SmallKeys RR_SPIRIT_TEMPLE 2))
RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_1 (and CanBreakPots (SmallKeys RR_SPIRIT_TEMPLE 2))
RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_2 (and CanBreakPots (SmallKeys RR_SPIRIT_TEMPLE 2))
RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_3 (and CanBreakPots (SmallKeys RR_SPIRIT_TEMPLE 2))
RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_4 (and CanBreakPots (SmallKeys RR_SPIRIT_TEMPLE 2))
RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_5 (and CanBreakPots (SmallKeys RR_SPIRIT_TEMPLE 2))
RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_6 (and CanBreakPots (SmallKeys RR_SPIRIT_TEMPLE 2))
RR_SPIRIT_TEMPLE_OUTDOOR_HANDS (or CanJumpslashExceptHammer HasExplosives)
RR_SPIRIT_TEMPLE_BEYOND_CENTRAL_LOCKED_DOOR (and (SmallKeys RR_SPIRIT_TEMPLE 4) (CanUse RG_SILVER_GAUNTLETS))
RR_SPIRIT_TEMPLE_CHILD_CLIMB true
RR_SPIRIT_TEMPLE_INSIDE_STATUE_HEAD (and RT_SPIRIT_PLATFORM_HOOKSHOT (CanUse RG_HOOKSHOT))
def RR_SPIRIT_TEMPLE_OUTDOOR_HANDS SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple Outdoor Hands
RC_SPIRIT_TEMPLE_SILVER_GAUNTLETS_CHEST (or (and (SmallKeys RR_SPIRIT_TEMPLE 3) (and (CanUse RG_LONGSHOT) HasExplosives)) (SmallKeys RR_SPIRIT_TEMPLE 5))
RC_SPIRIT_TEMPLE_MIRROR_SHIELD_CHEST (and (SmallKeys RR_SPIRIT_TEMPLE 4) (and (CanUse RG_SILVER_GAUNTLETS) HasExplosives))
RR_DESERT_COLOSSUS (or (and IsChild (SmallKeys RR_SPIRIT_TEMPLE 5)) (and (CanUse RG_SILVER_GAUNTLETS) (or (and (SmallKeys RR_SPIRIT_TEMPLE 3) HasExplosives) (SmallKeys RR_SPIRIT_TEMPLE 5))))
def RR_SPIRIT_TEMPLE_BEYOND_CENTRAL_LOCKED_DOOR SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple Beyond Central Locked Door
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))
RR_SPIRIT_TEMPLE_BEYOND_FINAL_LOCKED_DOOR (and (SmallKeys RR_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
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)
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
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
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)
RC_SPIRIT_TEMPLE_MQ_ENTRANCE_FRONT_RIGHT_CHEST Spirit1FSilverRupees
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
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))
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
MQSpiritCrawlBoulder (or (CanUse RG_BOMBCHU_5) (and RT_RUSTED_SWITCHES (CanUse RG_MEGATON_HAMMER)))
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
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
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
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)))
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
FairyPot (Here (CanKillEnemy RE_STALFOS))
//implies logic->CanBreakPots()
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))
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
MQSpiritMapRoomEnemies (and (CanKillEnemy RE_ANUBIS) (CanKillEnemy RE_KEESE))
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
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
MQSpiritMapRoomEnemies (and (CanKillEnemy RE_ANUBIS) (CanKillEnemy RE_KEESE ED_BOOMERANG))
RC_SPIRIT_TEMPLE_MQ_MAP_CHEST true
//The bridge is a temp flag, so not a way to cross south to north in logic
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
MQSpiritTimeTravelChest (CanUse RG_MEGATON_HAMMER)
MQSpiritCrawlBoulder (or (CanUse RG_BOMBCHU_5) (and RT_RUSTED_SWITCHES (CanUse RG_MEGATON_HAMMER)))
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 RR_SPIRIT_TEMPLE 1)
def RR_SPIRIT_TEMPLE_MQ_UNDER_LIKE_LIKE SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ Under Like Like
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
RR_SPIRIT_TEMPLE_MQ_WEST_1F_RUSTED_SWITCH (SmallKeys RR_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)
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)))
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 RR_SPIRIT_TEMPLE 2)
def RR_SPIRIT_TEMPLE_MQ_STATUE_ROOM SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ Statue Room
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))))
RC_SPIRIT_TEMPLE_MQ_STATUE_2F_CENTER_EAST_POT (MQSpiritSharedStatueRoom RR_SPIRIT_TEMPLE_MQ_STATUE_ROOM CanBreakPots)
RC_SPIRIT_TEMPLE_MQ_STATUE_2F_WEST_POT (MQSpiritSharedStatueRoom RR_SPIRIT_TEMPLE_MQ_STATUE_ROOM CanBreakPots)
RC_SPIRIT_TEMPLE_MQ_STATUE_2F_EASTMOST_POT (MQSpiritSharedStatueRoom RR_SPIRIT_TEMPLE_MQ_STATUE_ROOM CanBreakPots)
RC_SPIRIT_TEMPLE_MQ_STATUE_CRATE_1 (MQSpiritSharedStatueRoom RR_SPIRIT_TEMPLE_MQ_STATUE_ROOM CanBreakCrates)
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
RR_SPIRIT_TEMPLE_MQ_BROKEN_WALL_ROOM (SmallKeys RR_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)))))
RR_SPIRIT_TEMPLE_MQ_SUN_BLOCK_ROOM (or IsAdult (or RT_SPIRIT_MQ_SUN_BLOCK_SOT (CanUse RG_SONG_OF_TIME)))
//explicit adult check here is a precaution against possible child logic leaking, child with a hookshot can do this
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
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)
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 RR_SPIRIT_TEMPLE 7)
def RR_SPIRIT_TEMPLE_MQ_WEST_IRON_KNUCKLE SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ East Iron Knuckle
RR_SPIRIT_TEMPLE_MQ_SUN_BLOCK_ROOM (SmallKeys RR_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
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
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
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
RR_SPIRIT_TEMPLE_MQ_BIG_BLOCK_ROOM_NORTH (if IsChild (CanUse RG_SILVER_GAUNTLETS) (Here (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
RC_SPIRIT_TEMPLE_MQ_SILVER_BLOCK_HALLWAY_CHEST (and IsChild (and (SmallKeys RR_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
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
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)))
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
//This exit handles that possibility as cleanly as possible without quantum logic, but will not survive glitch logic
//logic->CanKillEnemy(RE_FLOORMASTER) is implied
RR_SPIRIT_TEMPLE_MQ_SILVER_GAUNTLETS_HAND (and (SmallKeys RR_SPIRIT_TEMPLE 4) (and (CanAvoidEnemy RE_BEAMOS true 4) (and (CanUse RG_SONG_OF_TIME) (and CanJumpslash (and (or RT_LENS_SPIRIT_MQ (CanUse RG_LENS_OF_TRUTH)) (and (CanKillEnemy RE_IRON_KNUCKLE) (CanUse RG_LONGSHOT)))))))
RR_SPIRIT_TEMPLE_MQ_FOUR_BEAMOS_ROOM (and (SmallKeys RR_SPIRIT_TEMPLE 5) (CanUse RG_HOOKSHOT))
RR_SPIRIT_TEMPLE_MQ_THREE_SUNS_ROOM_2F (or (CanUse RG_FIRE_ARROWS) (and RT_SPIRIT_MQ_LOWER_ADULT (CanUse RG_DINS_FIRE)))
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
MQSpirit3SunsEnemies (or (and (CanUse RG_MIRROR_SHIELD) (CanKillEnemy RE_STALFOS ED_CLOSE true 2)) (and RSK_SUNLIGHT_ARROWS (CanUse RG_LIGHT_ARROWS)))
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
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
Spirit1FSilverRupees (CanUse RG_MEGATON_HAMMER)
RC_SPIRIT_TEMPLE_MQ_EARLY_ADULT_POT_1 CanBreakPots
RC_SPIRIT_TEMPLE_MQ_EARLY_ADULT_POT_2 CanBreakPots
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
RR_SPIRIT_TEMPLE_MQ_SYMPHONY_ROOM (SmallKeys RR_SPIRIT_TEMPLE 7)
def RR_SPIRIT_TEMPLE_MQ_LEEVER_ROOM SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ Leever Room
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)
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
RR_SPIRIT_TEMPLE_MQ_1F_EAST (SmallKeys RR_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
RC_SPIRIT_TEMPLE_MQ_SYMPHONY_ROOM_CHEST (CanPassEnemy RE_BIG_SKULLTULA)
RC_SPIRIT_TEMPLE_MQ_GS_SYMPHONY_ROOM (CanGetEnemyDrop RE_GOLD_SKULLTULA ED_BOOMERANG)
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
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))
RR_SPIRIT_TEMPLE_MQ_STATUE_ROOM_EAST (and (CanAvoidEnemy RE_BEAMOS true 4) (and (CanUse RG_SONG_OF_TIME) (and (SmallKeys RR_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 RR_SPIRIT_TEMPLE 6)
def RR_SPIRIT_TEMPLE_MQ_SOT_SUN_ROOM SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ SoT Sun Room
RC_SPIRIT_TEMPLE_MQ_CHEST_SWITCH_CHEST true
RC_SPIRIT_TEMPLE_MQ_DINALFOS_ROOM_SUN_FAIRY (CanUse RG_SUNS_SONG)
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
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
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
RC_SPIRIT_TEMPLE_MIRROR_SHIELD_CHEST true
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
RC_SPIRIT_TEMPLE_MQ_BOSS_KEY_CHEST true
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
RC_SPIRIT_TEMPLE_MQ_LONG_CLIMB_POT_1 CanBreakPots
RC_SPIRIT_TEMPLE_MQ_LONG_CLIMB_POT_2 CanBreakPots
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
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
RC_SPIRIT_TEMPLE_MQ_BEFORE_MIRROR_POT_1 CanBreakPots
RC_SPIRIT_TEMPLE_MQ_BEFORE_MIRROR_POT_2 CanBreakPots
RR_SPIRIT_TEMPLE_MQ_BIG_WALL true
RR_SPIRIT_TEMPLE_MQ_NINE_CHAIRS_ROOM (SmallKeys RR_SPIRIT_TEMPLE 7)
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
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)
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
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
RC_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_4 CanBreakPots
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
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
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
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
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
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
SpiritTempleClear (CanKillEnemy RE_TWINROVA)
RC_SPIRIT_TEMPLE_TWINROVA_HEART SpiritTempleClear
RC_TWINROVA SpiritTempleClear
RR_SPIRIT_TEMPLE_BOSS_ENTRYWAY false
RR_DESERT_COLOSSUS @deprioritize SpiritTempleClear

View file

@ -0,0 +1,634 @@
def RR_WATER_TEMPLE_ENTRYWAY SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple Entryway
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
//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
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)))))
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)))
RR_WATER_TEMPLE_SOUTH_LOWER (and CanWaterTempleLowFromHigh (and HasExplosives (and (or (HasItem RG_SILVER_SCALE) (CanUse RG_IRON_BOOTS)) (or RT_FEWER_TUNIC_REQUIREMENTS (CanUse RG_ZORA_TUNIC)))))
RR_WATER_TEMPLE_WEST_LOWER (and CanWaterTempleLowFromHigh (and (HasItem RG_GORONS_BRACELET) (and (or IsChild (or (HasItem RG_SILVER_SCALE) (CanUse RG_IRON_BOOTS))) (or RT_FEWER_TUNIC_REQUIREMENTS (CanUse RG_ZORA_TUNIC)))))
RR_WATER_TEMPLE_CENTRAL_PILLAR_LOWER (and CanWaterTempleLowFromHigh (SmallKeys RR_WATER_TEMPLE 5))
RR_WATER_TEMPLE_CENTRAL_PILLAR_UPPER (and (or CanWaterTempleLowFromHigh CanWaterTempleMiddle) (or HasFireSourceWithTorch (CanUse RG_FAIRY_BOW)))
RR_WATER_TEMPLE_EAST_MIDDLE (and (or CanWaterTempleLowFromHigh (or CanWaterTempleMiddle (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 16)))) (CanUse RG_HOOKSHOT))
RR_WATER_TEMPLE_WEST_MIDDLE CanWaterTempleMiddle
RR_WATER_TEMPLE_HIGH_WATER (and IsAdult (or (CanUse RG_HOVER_BOOTS) (and RT_DAMAGE_BOOST (and (CanUse RG_BOMB_BAG) TakeDamage))))
RR_WATER_TEMPLE_BLOCK_CORRIDOR (and (or CanWaterTempleLowFromHigh CanWaterTempleMiddle) (and (or (CanUse RG_FAIRY_SLINGSHOT) (CanUse RG_FAIRY_BOW)) (or (CanUse RG_LONGSHOT) (or (CanUse RG_HOVER_BOOTS) (and RT_WATER_CENTRAL_BOW (or IsAdult CanWaterTempleMiddle))))))
RR_WATER_TEMPLE_FALLING_PLATFORM_ROOM (and CanWaterTempleHigh (SmallKeys RR_WATER_TEMPLE 4))
RR_WATER_TEMPLE_PRE_BOSS_ROOM (or (and CanWaterTempleHigh (CanUse RG_LONGSHOT)) (and RT_HOVER_BOOST_SIMPLE (and RT_DAMAGE_BOOST_SIMPLE (and HasExplosives (CanUse RG_HOVER_BOOTS)))))
def RR_WATER_TEMPLE_EAST_LOWER SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple East Lower
CanWaterTempleLowFromHigh (CanUse RG_ZELDAS_LULLABY)
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))))
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))))
RR_WATER_TEMPLE_TORCH_ROOM (and CanWaterTempleLowFromHigh (or HasFireSourceWithTorch (CanUse RG_FAIRY_BOW)))
def RR_WATER_TEMPLE_MAP_ROOM SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple Map Room
RC_WATER_TEMPLE_MAP_CHEST (CanKillEnemy RE_SPIKE ED_CLOSE true 3)
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
RC_WATER_TEMPLE_CRACKED_WALL_CHEST HasExplosives
RR_WATER_TEMPLE_EAST_LOWER true
def RR_WATER_TEMPLE_TORCH_ROOM SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple Torch Room
RC_WATER_TEMPLE_TORCHES_CHEST (CanKillEnemy RE_SHELL_BLADE ED_CLOSE true 3)
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
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 RR_WATER_TEMPLE 4))
def RR_WATER_TEMPLE_BOULDERS_LOWER SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple Boulders Lower
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)))))
RR_WATER_TEMPLE_NORTH_LOWER (SmallKeys RR_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
RC_WATER_TEMPLE_BASEMENT_BLOCK_PUZZLE_POT_1 CanBreakPots
RC_WATER_TEMPLE_BASEMENT_BLOCK_PUZZLE_POT_2 CanBreakPots
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
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
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 RR_WATER_TEMPLE 5))
def RR_WATER_TEMPLE_BOSS_KEY_ROOM SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple Boss Key Room
FairyPot true
RC_WATER_TEMPLE_BOSS_KEY_CHEST true
RC_WATER_TEMPLE_BOSS_KEY_POT_1 CanBreakPots
RC_WATER_TEMPLE_BOSS_KEY_POT_2 CanBreakPots
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 RR_WATER_TEMPLE 5))
def RR_WATER_TEMPLE_SOUTH_LOWER SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple South Lower
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))))
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
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
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))))))
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
RR_WATER_TEMPLE_LOBBY (SmallKeys RR_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
CanWaterTempleMiddle (CanUse RG_ZELDAS_LULLABY)
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 RR_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)))
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
RC_WATER_TEMPLE_CENTRAL_PILLAR_CHEST (and (CanUse RG_HOOKSHOT) (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 40)))
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
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
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
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
CanWaterTempleHigh (CanUse RG_ZELDAS_LULLABY)
RR_WATER_TEMPLE_LOBBY true
def RR_WATER_TEMPLE_BLOCK_CORRIDOR SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple Block Corridor
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)))
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
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)))))
RR_WATER_TEMPLE_LOBBY (and (CanUse RG_HOOKSHOT) (SmallKeys RR_WATER_TEMPLE 4))
RR_WATER_TEMPLE_DRAGON_PILLARS_ROOM (and (CanUse RG_HOOKSHOT) (SmallKeys RR_WATER_TEMPLE 5))
def RR_WATER_TEMPLE_DRAGON_PILLARS_ROOM SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple Dragon Pillars Room
RC_WATER_TEMPLE_LIKE_LIKE_POT_1 (CanUse RG_HOOKSHOT)
RC_WATER_TEMPLE_LIKE_LIKE_POT_2 (CanUse RG_HOOKSHOT)
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
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
RC_WATER_TEMPLE_LONGSHOT_CHEST true
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
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
RC_WATER_TEMPLE_RIVER_POT_2 CanBreakPots
RC_WATER_TEMPLE_RIVER_HEART_1 (or (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 16)) (HasItem RG_BRONZE_SCALE))
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))
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
FairyPot true
RC_WATER_TEMPLE_MAIN_LEVEL_1_POT_1 CanBreakPots
RC_WATER_TEMPLE_MAIN_LEVEL_1_POT_2 CanBreakPots
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
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
RR_WATER_TEMPLE_MQ_3F_CENTRAL (or (CanUse RG_HOOKSHOT) (CanUse RG_HOVER_BOOTS))
RR_WATER_TEMPLE_MQ_2F_CENTRAL (MQWaterLevel WL_LOW_OR_MID)
//This region covers simply existing in the area around the central pillar without being on a specific platform, either swimming or walking on the lakebed
//Entry should only include being in the correct area, taking any possible fall damage, and floating up to the surface of WL_HIGH if coming from below
//This area then leads to others based on level and worst-case water timers for follow-up exits from the water's surface
//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
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)))
RR_WATER_TEMPLE_MQ_3F_CENTRAL (and (MQWaterLevel WL_HIGH) (HasItem RG_BRONZE_SCALE))
//First water timer uses the hook to go from the top of center to storage room/central pillar as coming from the bottom
//Second water timer is simply diving down and entering the door as fast as possible from the surface
RR_WATER_TEMPLE_MQ_2F_CENTRAL (or (and (or (MQWaterLevel WL_LOW) (and (CanUse RG_IRON_BOOTS) (or (MQWaterLevel WL_MID) (>= WaterTimer 16)))) (CanUse RG_LONGSHOT)) (and (or (MQWaterLevel WL_MID) (and (MQWaterLevel WL_HIGH_OR_MID) (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 8)))) (HasItem RG_BRONZE_SCALE)))
RR_WATER_TEMPLE_MQ_CENTRAL_PILLAR_1F (MQWaterLevel WL_LOW)
//A special entry as we can't set it to high after entering at a lower height
RR_WATER_TEMPLE_MQ_CENTRAL_PILLAR_HIGH (and (MQWaterLevel WL_HIGH) (and (CanUse RG_IRON_BOOTS) (and (>= WaterTimer 16) (or (HasItem RG_BRONZE_SCALE) (CanUse RG_LONGSHOT)))))
RR_WATER_TEMPLE_MQ_LIZALFOS_HALLWAY (and (or (MQWaterLevel WL_MID) (and (MQWaterLevel WL_HIGH_OR_MID) (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 16)))) (HasItem RG_BRONZE_SCALE))
RR_WATER_TEMPLE_MQ_B1_GATE_SWITCH (and MQWaterB1Switch (or (MQWaterLevel WL_LOW) (and (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 24)) (HasItem RG_BRONZE_SCALE))))
RR_WATER_TEMPLE_MQ_TRIANGLE_TORCH_ROOM (and MQWaterB1Switch (or (and (MQWaterLevel WL_LOW) (HasItem RG_SILVER_SCALE)) (and (CanUse RG_IRON_BOOTS) (and (>= WaterTimer 16) (or (HasItem RG_BRONZE_SCALE) (CanUse RG_LONGSHOT))))))
//Adult needs to jump in instead of dive for swim access, but you just hold forward. RT_WATER_BK_REGION isn't relevant unless the Dark Link loop can be done without longshot with other tricks
RR_WATER_TEMPLE_MQ_CRATES_WHIRLPOOLS_ROOM (and MQWaterB1Switch (and (or (and (MQWaterLevel WL_LOW) (HasItem RG_BRONZE_SCALE)) (and (CanUse RG_IRON_BOOTS) (and (>= WaterTimer 16) (CanUse RG_HOOKSHOT)))) (or (CanUse RG_LONGSHOT) (and RT_WATER_BK_REGION (CanUse RG_HOVER_BOOTS)))))
//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
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))
RR_WATER_TEMPLE_MQ_CENTRAL_PILLAR_HIGH (and (MQWaterLevel WL_HIGH) (and (CanUse RG_IRON_BOOTS) (and (>= WaterTimer 16) (CanUse RG_HOOKSHOT))))
RR_WATER_TEMPLE_MQ_3F_NORTH_LEDGE (or (and (MQWaterLevel WL_HIGH) (CanUse RG_LONGSHOT)) (and RT_HOVER_BOOST_SIMPLE (and RT_DAMAGE_BOOST_SIMPLE (and HasExplosives (CanUse RG_HOVER_BOOTS)))))
//Jumping across is possible but a trick due to the janky ledge
RR_WATER_TEMPLE_MQ_HIGH_EMBLEM (or (CanUse RG_HOOKSHOT) (and IsAdult (CanUse RG_HOVER_BOOTS)))
//room access is (logic->IsAdult || (logic->HasItem(RG_BRONZE_SCALE) || logic->CanUse(RG_HOVER_BOOTS) || logic->CanUse(RG_HOOKSHOT)))
RR_WATER_TEMPLE_MQ_WATERFALL (and (SmallKeys RR_WATER_TEMPLE 1) (and (MQWaterLevel WL_HIGH) (CanUse RG_LONGSHOT)))
//this swimless jump with irons may be a trick as you have to put irons on quite late.
RR_WATER_TEMPLE_MQ_LIZALFOS_HALLWAY (or (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 16)) (MQWaterLevel WL_LOW_OR_MID))
//This region specifically covers walking on the lower platform around central pillar. This is underwater when WL_HIGH
//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
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)
RR_WATER_TEMPLE_MQ_STORAGE_ROOM (CanUse RG_HOOKSHOT)
RR_WATER_TEMPLE_MQ_BEHIND_BLUE_SWITCH_2F (and (MQWaterLevel WL_LOW_OR_MID) (and (or IsAdult (CanUse RG_HOVER_BOOTS)) (CanUse RG_HOOKSHOT)))
RR_WATER_TEMPLE_MQ_LIZALFOS_HALLWAY (and (MQWaterLevel WL_LOW_OR_MID) (CanUse RG_HOVER_BOOTS))
def RR_WATER_TEMPLE_MQ_2F_CENTRAL_HIGH SCENE_ID_MAX false
Invalid Region
def RR_WATER_TEMPLE_MQ_HIGH_EMBLEM SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ High Emblem
ReachedWaterHighEmblem true
CanWaterTempleHigh (CanUse RG_ZELDAS_LULLABY)
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.
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
RR_WATER_TEMPLE_MQ_3F_NORTH_LEDGE (or (CanUse RG_ICE_ARROWS) TakeDamage)
RR_WATER_TEMPLE_BOSS_ENTRYWAY true
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
CouldWaterTempleLow true
CanWaterTempleLowFromHigh (CanUse RG_ZELDAS_LULLABY)
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))))
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
RC_WATER_TEMPLE_MQ_COMPASS_CHEST (and (CanKillEnemy RE_LIZALFOS) (CanKillEnemy RE_SPIKE))
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.
MQWaterB1Switch (and RT_WATER_MQ_CENTRAL_PILLAR (CanUse RG_FIRE_ARROWS))
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)))))
//if the gate is open, you sink straight in, so you can't climb up this way in logic without swimming
RR_WATER_TEMPLE_MQ_CENTRAL_PILLAR_B1 (and MQWaterOpenedPillarB1 (and (MQWaterLevel WL_HIGH_OR_MID) (and RT_WATER_FW_CENTRAL_GS (and (CanUse RG_FARORES_WIND) (and (CanUse RG_IRON_BOOTS) (CanUse RG_ZORA_TUNIC))))))
//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
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))
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
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))))
RC_WATER_TEMPLE_MQ_CENTRAL_PILLAR_UPPER_CRATE_1 CanBreakCrates
RC_WATER_TEMPLE_MQ_CENTRAL_PILLAR_UPPER_CRATE_2 CanBreakCrates
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
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
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
RC_WATER_TEMPLE_MQ_CENTRAL_PILLAR_LOWER_CRATE_3 CanBreakCrates
RC_WATER_TEMPLE_MQ_CENTRAL_PILLAR_LOWER_CRATE_4 CanBreakCrates
RC_WATER_TEMPLE_MQ_CENTRAL_PILLAR_LOWER_CRATE_5 CanBreakCrates
RC_WATER_TEMPLE_MQ_CENTRAL_PILLAR_LOWER_CRATE_6 CanBreakCrates
RC_WATER_TEMPLE_MQ_CENTRAL_PILLAR_LOWER_CRATE_7 CanBreakCrates
RC_WATER_TEMPLE_MQ_CENTRAL_PILLAR_LOWER_CRATE_8 CanBreakCrates
RC_WATER_TEMPLE_MQ_CENTRAL_PILLAR_LOWER_CRATE_9 CanBreakCrates
RC_WATER_TEMPLE_MQ_CENTRAL_PILLAR_LOWER_CRATE_10 CanBreakCrates
RC_WATER_TEMPLE_MQ_CENTRAL_PILLAR_LOWER_CRATE_11 CanBreakCrates
RC_WATER_TEMPLE_MQ_CENTRAL_PILLAR_LOWER_CRATE_12 CanBreakCrates
RC_WATER_TEMPLE_MQ_CENTRAL_PILLAR_LOWER_CRATE_13 CanBreakCrates
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
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
RC_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_LOWER_CRATE_1 CanBreakCrates
RC_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_LOWER_CRATE_2 CanBreakCrates
RC_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_LOWER_CRATE_3 CanBreakCrates
RC_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_LOWER_CRATE_4 CanBreakCrates
RC_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_LOWER_CRATE_5 CanBreakCrates
RC_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_LOWER_CRATE_6 CanBreakCrates
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
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
RC_WATER_TEMPLE_MQ_GS_BEFORE_UPPER_WATER_SWITCH (CanGetEnemyDrop RE_GOLD_SKULLTULA)
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
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
RC_WATER_TEMPLE_MQ_STORAGE_ROOM_A_CRATE_1 CanBreakCrates
RC_WATER_TEMPLE_MQ_STORAGE_ROOM_A_CRATE_2 CanBreakCrates
RC_WATER_TEMPLE_MQ_STORAGE_ROOM_A_CRATE_3 CanBreakCrates
RC_WATER_TEMPLE_MQ_STORAGE_ROOM_A_CRATE_4 CanBreakCrates
RC_WATER_TEMPLE_MQ_STORAGE_ROOM_A_CRATE_5 CanBreakCrates
RC_WATER_TEMPLE_MQ_STORAGE_ROOM_A_CRATE_6 CanBreakCrates
RC_WATER_TEMPLE_MQ_STORAGE_ROOM_A_CRATE_7 CanBreakCrates
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
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
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
RC_WATER_TEMPLE_MQ_LIZALFOS_HALLWAY_CRATE_1 CanBreakCrates
RC_WATER_TEMPLE_MQ_LIZALFOS_HALLWAY_CRATE_2 CanBreakCrates
RC_WATER_TEMPLE_MQ_LIZALFOS_HALLWAY_CRATE_3 CanBreakCrates
RC_WATER_TEMPLE_MQ_LIZALFOS_HALLWAY_ROOM_CRATE_1 CanBreakCrates
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
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
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
RC_WATER_TEMPLE_MQ_LIZALFOS_HALLWAY_GATE_CRATE_1 CanBreakCrates
RC_WATER_TEMPLE_MQ_LIZALFOS_HALLWAY_GATE_CRATE_2 CanBreakCrates
def RR_WATER_TEMPLE_MQ_3F_EAST_LEDGE SCENE_ID_MAX false
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
RR_WATER_TEMPLE_MQ_3F_CENTRAL (and (SmallKeys RR_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))
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
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))))
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)))
//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
FairyPot true
NutPot true
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)
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))
//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
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)
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
FairyPot true
RC_WATER_TEMPLE_MQ_AFTER_DARK_LINK_POT_1 CanBreakPots
RC_WATER_TEMPLE_MQ_AFTER_DARK_LINK_POT_2 CanBreakPots
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
RC_WATER_TEMPLE_MQ_GS_RIVER (or (CanUse RG_LONGSHOT) (and (CanUse RG_IRON_BOOTS) (CanUse RG_HOOKSHOT)))
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
FairyPot true
RC_WATER_TEMPLE_MQ_RIVER_POT_1 CanBreakPots
RC_WATER_TEMPLE_MQ_RIVER_POT_2 CanBreakPots
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))
RR_WATER_TEMPLE_MQ_DRAGON_ROOM_ALCOVE (or (HasItem RG_SILVER_SCALE) (and IsAdult (and (HasItem RG_BRONZE_SCALE) RT_WATER_DRAGON_JUMP_DIVE)))
RR_WATER_TEMPLE_MQ_DRAGON_ROOM_DOOR (or (HasItem RG_BRONZE_SCALE) (or (CanUse RG_LONGSHOT) (and (CanUse RG_HOVER_BOOTS) CanJumpslash)))
def RR_WATER_TEMPLE_MQ_DRAGON_ROOM_DOOR SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ Dragon Room Door
RC_WATER_TEMPLE_MQ_DRAGON_ROOM_DOOR_CRATE_1 CanBreakCrates
RC_WATER_TEMPLE_MQ_DRAGON_ROOM_DOOR_CRATE_2 CanBreakCrates
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)
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
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
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
MQWaterDragonTorches HasFireSource
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
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
RC_WATER_TEMPLE_MQ_BOSS_KEY_POT CanBreakPots
RC_WATER_TEMPLE_MQ_BK_ROOM_UPPER_CRATE CanBreakCrates
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)))
//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
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
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
RC_WATER_TEMPLE_MQ_BOSS_KEY_CHEST true
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)))))
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
MQWaterB1Switch (CanUse RG_IRON_BOOTS)
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
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))
RC_WATER_TEMPLE_MQ_TRIPLE_TORCH_ROOM_SUBMERGED_CRATE_4 (and (CanUse RG_IRON_BOOTS) (and (>= WaterTimer 16) CanBreakCrates))
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.
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
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
RC_WATER_TEMPLE_MQ_LOWEST_GS_POT_3 CanBreakPots
RC_WATER_TEMPLE_MQ_LOWEST_GS_POT_4 CanBreakPots
RC_WATER_TEMPLE_MQ_TRIPLE_TORCH_ROOM_GATE_CRATE_3 CanBreakCrates
RC_WATER_TEMPLE_MQ_TRIPLE_TORCH_ROOM_GATE_CRATE_1 CanBreakCrates
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
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))
RC_WATER_TEMPLE_MQ_WHIRLPOOL_SUBMERGED_CRATE_2 (and (CanUse RG_IRON_BOOTS) (and (>= WaterTimer 16) CanBreakCrates))
RC_WATER_TEMPLE_MQ_WHIRLPOOL_SUBMERGED_CRATE_3 (and (CanUse RG_IRON_BOOTS) (and (>= WaterTimer 16) CanBreakCrates))
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))
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)
//putting requirement to get out of the water here as scarecrow method in includes hook which satisfies it
(or (and IsAdult (and (or (CanUse RG_HOVER_BOOTS) RT_WATER_NORTH_BASEMENT_LEDGE_JUMP) (or (CanUse RG_HOOKSHOT) (HasItem RG_BRONZE_SCALE)))) (and (Here ScarecrowsSong) (CanUse RG_HOOKSHOT)))
)
RR_WATER_TEMPLE_MQ_4_TORCH_ROOM (and IsAdult (or (CanUse RG_HOVER_BOOTS) (or RT_WATER_NORTH_BASEMENT_LEDGE_JUMP (and (Here ScarecrowsSong) (CanUse RG_HOOKSHOT)))))
RR_WATER_TEMPLE_MQ_CRATES_WHIRLPOOLS_CAGE (and RT_WATER_MQ_LOCKED_GS (and (CanUse RG_IRON_BOOTS) (CanUse RG_HOOKSHOT)))
def RR_WATER_TEMPLE_MQ_SINGLE_STALFOS_ROOM SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple MQ Single Stalfos Room
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
RC_WATER_TEMPLE_MQ_STORAGE_ROOM_B_CRATE_1 CanBreakCrates
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
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
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
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
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
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
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
RR_WATER_TEMPLE_MQ_DODONGO_ROOM true
def RR_WATER_TEMPLE_BOSS_ENTRYWAY SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple Boss Entryway
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
WaterTempleClear (CanKillEnemy RE_MORPHA)
RC_WATER_TEMPLE_MORPHA_HEART WaterTempleClear
RC_MORPHA WaterTempleClear
RR_WATER_TEMPLE_BOSS_ENTRYWAY false
RR_LAKE_HYLIA @deprioritize WaterTempleClear

View file

@ -0,0 +1,83 @@
//With multi-area support {RA_CASTLE_GROUNDS} is not strictly required anymore, as any interior here could inherit both
//{RA_HYRULE_CASTLE} and {RA_OUTSIDE_GANONS_CASTLE}, but a setting to merge the latter 2 into the former may be preferred
//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
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
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
GossipStoneFairy CallGossipFairy
ButterflyFairy (CanUse RG_STICKS)
BugRock true
RC_HC_MALON_EGG true
RC_HC_GS_TREE (and IsChild (CanKillEnemy RE_GOLD_SKULLTULA ED_CLOSE))
RC_HC_MALON_GOSSIP_STONE_FAIRY CallGossipFairy
RC_HC_MALON_GOSSIP_STONE_FAIRY_BIG (CanUse RG_SONG_OF_STORMS)
RC_HC_ROCK_WALL_GOSSIP_STONE_FAIRY CallGossipFairy
RC_HC_ROCK_WALL_GOSSIP_STONE_FAIRY_BIG (CanUse RG_SONG_OF_STORMS)
RC_HC_MALON_GOSSIP_STONE true
RC_HC_ROCK_WALL_GOSSIP_STONE true
RC_HC_GRASS_1 CanCutShrubs
RC_HC_GRASS_2 CanCutShrubs
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
RR_HC_STORMS_GROTTO CanOpenStormsGrotto
def RR_HC_GARDEN SCENE_CASTLE_COURTYARD_ZELDA false
HC Garden
RC_HC_ZELDAS_LETTER true
RC_SONG_FROM_IMPA true
RR_HYRULE_CASTLE_GROUNDS true
def RR_HC_GREAT_FAIRY_FOUNTAIN SCENE_GREAT_FAIRYS_FOUNTAIN_SPELLS false
HC Great Fairy Fountain
RC_HC_GREAT_FAIRY_REWARD (CanUse RG_ZELDAS_LULLABY)
RR_CASTLE_GROUNDS true
def RR_HC_STORMS_GROTTO SCENE_GROTTOS false
HC Storms Grotto
RC_HC_GS_STORMS_GROTTO (and (CanUse RG_BOOMERANG) RT_HC_STORMS_GS)
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
NutPot true
GossipStoneFairy CallGossipFairy
WanderingBugs true
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)
RC_HC_STORMS_GROTTO_GOSSIP_STONE true
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
RR_HC_STORMS_GROTTO true
def RR_GANONS_CASTLE_GROUNDS SCENE_OUTSIDE_GANONS_CASTLE false RA_OUTSIDE_GANONS_CASTLE
Ganon's Castle Grounds
BuiltRainbowBridge CanBuildRainbowBridge
RC_OGC_GS (or CanJumpslashExceptHammer (or CanUseProjectile (or (and CanShield (CanUse RG_MEGATON_HAMMER)) (CanUse RG_DINS_FIRE))))
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
RC_OGC_GREAT_FAIRY_REWARD (CanUse RG_ZELDAS_LULLABY)
RR_CASTLE_GROUNDS true
def RR_GANONS_CASTLE_LEDGE SCENE_OUTSIDE_GANONS_CASTLE false RA_OUTSIDE_GANONS_CASTLE
Ganon's Castle Ledge
RR_GANONS_CASTLE_GROUNDS BuiltRainbowBridge
RR_GANONS_CASTLE_ENTRYWAY IsAdult

View file

@ -0,0 +1,114 @@
def RR_DMC_UPPER_LOCAL SCENE_DEATH_MOUNTAIN_CRATER false RA_DEATH_MOUNTAIN_CRATER
DMC Upper Local
GossipStoneFairy (and HasExplosives (and CallGossipFairyExceptSuns (or (>= FireTimer 16) (>= Hearts 3))))
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))
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))))))
RR_DMC_LOWER_NEARBY false
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
BeanPlantFairy (and IsChild (and (CanUse RG_MAGIC_BEAN) (and (CanUse RG_SONG_OF_STORMS) (or (>= FireTimer 8) (>= Hearts 3)))))
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)))
RC_DMC_MIDDLE_PLATFORM_BLUE_RUPEE_1 (and IsChild (or (>= FireTimer 8) (>= Hearts 3)))
RC_DMC_MIDDLE_PLATFORM_BLUE_RUPEE_2 (and IsChild (or (>= FireTimer 8) (>= Hearts 3)))
RC_DMC_MIDDLE_PLATFORM_BLUE_RUPEE_3 (and IsChild (or (>= FireTimer 8) (>= Hearts 3)))
RC_DMC_MIDDLE_PLATFORM_BLUE_RUPEE_4 (and IsChild (or (>= FireTimer 8) (>= Hearts 3)))
RC_DMC_MIDDLE_PLATFORM_BLUE_RUPEE_5 (and IsChild (or (>= FireTimer 8) (>= Hearts 3)))
RC_DMC_MIDDLE_PLATFORM_BLUE_RUPEE_6 (and IsChild (or (>= FireTimer 8) (>= Hearts 3)))
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)))))
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))
RR_FIRE_TEMPLE_ENTRYWAY (or (and IsChild (and (>= Hearts 3) (!= RSK_SHUFFLE_DUNGEON_ENTRANCES RO_DUNGEON_ENTRANCE_SHUFFLE_OFF))) (and IsAdult (>= FireTimer 24)))
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
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)))
RR_DMC_CENTRAL_LOCAL (and (or (CanUse RG_HOVER_BOOTS) (or (CanUse RG_HOOKSHOT) (and IsAdult (and CanShield RT_DMC_BOLERO_JUMP)))) (>= FireTimer 24))
def RR_DMC_LOWER_NEARBY SCENE_DEATH_MOUNTAIN_CRATER false RA_DEATH_MOUNTAIN_CRATER
DMC Lower Nearby
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
RR_DMC_LOWER_LOCAL (>= FireTimer 48)
RR_GC_DARUNIAS_CHAMBER true
RR_DMC_GREAT_FAIRY_FOUNTAIN (CanUse RG_MEGATON_HAMMER)
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
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
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)))
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
RC_DMC_DEKU_SCRUB (and IsChild CanStunDeku)
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
GossipStoneFairy CallGossipFairy
ButterflyFairy (CanUse RG_STICKS)
BugShrub CanCutShrubs
LoneFish true
RC_DMC_UPPER_GROTTO_CHEST true
RC_DMC_UPPER_GROTTO_FISH HasBottle
RC_DMC_UPPER_GROTTO_GOSSIP_STONE_FAIRY CallGossipFairy
RC_DMC_UPPER_GROTTO_GOSSIP_STONE_FAIRY_BIG (CanUse RG_SONG_OF_STORMS)
RC_DMC_UPPER_GROTTO_GOSSIP_STONE true
RC_DMC_UPPER_GROTTO_BEEHIVE_LEFT CanBreakLowerBeehives
RC_DMC_UPPER_GROTTO_BEEHIVE_RIGHT CanBreakLowerBeehives
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
RR_DMC_UPPER_LOCAL true
def RR_DMC_HAMMER_GROTTO SCENE_GROTTOS false
DMC Hammer Grotto
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
RR_DMC_LOWER_LOCAL true
def RR_DMC_GREAT_FAIRY_FOUNTAIN SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC false
DMC Great Fairy Fountain
RC_DMC_GREAT_FAIRY_REWARD (CanUse RG_ZELDAS_LULLABY)
RR_DMC_LOWER_LOCAL true
def RR_DMC_DISTANT_PLATFORM SCENE_DEATH_MOUNTAIN_CRATER false RA_DEATH_MOUNTAIN_CRATER
DMC Distant Platform
RC_DMC_DISTANT_PLATFORM_GREEN_RUPEE_1 IsAdult
RC_DMC_DISTANT_PLATFORM_GREEN_RUPEE_2 IsAdult
RC_DMC_DISTANT_PLATFORM_GREEN_RUPEE_3 IsAdult
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
RR_DMC_CENTRAL_LOCAL (and (>= FireTimer 48) (CanUse RG_DISTANT_SCARECROW))

View file

@ -0,0 +1,84 @@
def RR_DEATH_MOUNTAIN_TRAIL SCENE_DEATH_MOUNTAIN_TRAIL true RA_DEATH_MOUNTAIN_TRAIL
Death Mountain
BeanPlantFairy (and IsChild (and (CanUse RG_MAGIC_BEAN) (and (CanUse RG_SONG_OF_STORMS) (or HasExplosives (HasItem RG_GORONS_BRACELET)))))
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))))))
RC_DMT_GS_NEAR_KAK BlastOrSmash
RC_DMT_GS_ABOVE_DODONGOS_CAVERN (and IsAdult (and AtNight (and (or (CanUse RG_MEGATON_HAMMER) (or (and RT_DMT_HOOKSHOT_LOWER_GS (CanUse RG_HOOKSHOT)) (or (and RT_DMT_BEAN_LOWER_GS (CanPlantBean RR_DEATH_MOUNTAIN_TRAIL)) (or (and RT_DMT_HOVERS_LOWER_GS (CanUse RG_HOVER_BOOTS)) RT_DMT_JS_LOWER_GS)))) CanGetNightTimeGS)))
RC_DMT_BLUE_RUPEE (and IsChild BlastOrSmash)
RC_DMT_RED_RUPEE (and IsChild BlastOrSmash)
RC_DMT_BEAN_SPROUT_FAIRY_1 (and IsChild (and (CanUse RG_MAGIC_BEAN) (and (CanUse RG_SONG_OF_STORMS) (or HasExplosives (HasItem RG_GORONS_BRACELET)))))
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)
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))))
RR_DODONGOS_CAVERN_ENTRYWAY (or HasExplosives (or (HasItem RG_GORONS_BRACELET) IsAdult))
RR_DMT_STORMS_GROTTO CanOpenStormsGrotto
def RR_DEATH_MOUNTAIN_SUMMIT SCENE_DEATH_MOUNTAIN_TRAIL true RA_DEATH_MOUNTAIN_TRAIL
Death Mountain Summit
GossipStoneFairy CallGossipFairy
BugRock IsChild
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))
RC_DMT_GS_FALLING_ROCKS_PATH (and IsAdult (and AtNight (and (or (CanUse RG_MEGATON_HAMMER) RT_DMT_UPPER_GS) CanGetNightTimeGS)))
RC_DMT_GOSSIP_STONE_FAIRY CallGossipFairy
RC_DMT_GOSSIP_STONE_FAIRY_BIG (CanUse RG_SONG_OF_STORMS)
RC_DMT_GOSSIP_STONE true
RR_DEATH_MOUNTAIN_TRAIL true
RR_DMC_UPPER_LOCAL true
RR_DMT_OWL_FLIGHT IsChild
RR_DMT_COW_GROTTO (Here BlastOrSmash)
RR_DMT_GREAT_FAIRY_FOUNTAIN (Here BlastOrSmash)
def RR_DMT_OWL_FLIGHT SCENE_DEATH_MOUNTAIN_TRAIL true RA_DEATH_MOUNTAIN_TRAIL
DMT Owl Flight
RR_KAK_IMPAS_ROOFTOP true
def RR_DMT_GREAT_FAIRY_FOUNTAIN SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC false
DMT Great Fairy Fountain
RC_DMT_GREAT_FAIRY_REWARD (CanUse RG_ZELDAS_LULLABY)
RR_DEATH_MOUNTAIN_SUMMIT true
def RR_DMT_COW_GROTTO SCENE_GROTTOS false
DMT Cow Grotto
RC_DMT_COW_GROTTO_COW (CanUse RG_EPONAS_SONG)
RC_DMT_COW_GROTTO_BEEHIVE CanBreakLowerBeehives
RC_DMT_COW_GROTTO_LEFT_HEART true
RC_DMT_COW_GROTTO_MIDDLE_LEFT_HEART true
RC_DMT_COW_GROTTO_MIDDLE_RIGHT_HEART true
RC_DMT_COW_GROTTO_RIGHT_HEART true
RC_DMT_COW_GROTTO_RUPEE_1 true
RC_DMT_COW_GROTTO_RUPEE_2 true
RC_DMT_COW_GROTTO_RUPEE_3 true
RC_DMT_COW_GROTTO_RUPEE_4 true
RC_DMT_COW_GROTTO_RUPEE_5 true
RC_DMT_COW_GROTTO_RUPEE_6 true
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
RR_DEATH_MOUNTAIN_SUMMIT true
def RR_DMT_STORMS_GROTTO SCENE_GROTTOS false
DMT Storms Grotto
GossipStoneFairy CallGossipFairy
ButterflyFairy (CanUse RG_STICKS)
BugShrub CanCutShrubs
LoneFish true
RC_DMT_STORMS_GROTTO_CHEST true
RC_DMT_STORMS_GROTTO_FISH HasBottle
RC_DMT_STORMS_GROTTO_GOSSIP_STONE_FAIRY CallGossipFairy
RC_DMT_STORMS_GROTTO_GOSSIP_STONE_FAIRY_BIG (CanUse RG_SONG_OF_STORMS)
RC_DMT_STORMS_GROTTO_GOSSIP_STONE true
RC_DMT_STORMS_GROTTO_BEEHIVE_LEFT CanBreakLowerBeehives
RC_DMT_STORMS_GROTTO_BEEHIVE_RIGHT CanBreakLowerBeehives
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
RR_DEATH_MOUNTAIN_TRAIL true

View file

@ -0,0 +1,51 @@
def RR_DESERT_COLOSSUS SCENE_DESERT_COLOSSUS true RA_DESERT_COLOSSUS
Desert Colossus
FairyPond (CanUse RG_SONG_OF_STORMS)
BugRock true
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))
RC_COLOSSUS_GS_HILL (and IsAdult (and (or (and (CanPlantBean RR_DESERT_COLOSSUS) CanAttack) (or (CanUse RG_LONGSHOT) (and RT_COLOSSUS_GS (CanUse RG_HOOKSHOT)))) CanGetNightTimeGS))
RC_COLOSSUS_BEAN_SPROUT_FAIRY_1 (and IsChild (and (CanUse RG_MAGIC_BEAN) (CanUse RG_SONG_OF_STORMS)))
RC_COLOSSUS_BEAN_SPROUT_FAIRY_2 (and IsChild (and (CanUse RG_MAGIC_BEAN) (CanUse RG_SONG_OF_STORMS)))
RC_COLOSSUS_BEAN_SPROUT_FAIRY_3 (and IsChild (and (CanUse RG_MAGIC_BEAN) (CanUse RG_SONG_OF_STORMS)))
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
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
RR_WASTELAND_NEAR_COLOSSUS true
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
FairyPond true
RC_COLOSSUS_OASIS_FAIRY_1 true
RC_COLOSSUS_OASIS_FAIRY_2 true
RC_COLOSSUS_OASIS_FAIRY_3 true
RC_COLOSSUS_OASIS_FAIRY_4 true
RC_COLOSSUS_OASIS_FAIRY_5 true
RC_COLOSSUS_OASIS_FAIRY_6 true
RC_COLOSSUS_OASIS_FAIRY_7 true
RC_COLOSSUS_OASIS_FAIRY_8 true
RR_DESERT_COLOSSUS true
def RR_DESERT_COLOSSUS_OUTSIDE_TEMPLE SCENE_DESERT_COLOSSUS true RA_DESERT_COLOSSUS
Desert Colossus From Spirit Entryway
RC_SHEIK_AT_COLOSSUS true
RR_DESERT_COLOSSUS true
def RR_COLOSSUS_GREAT_FAIRY_FOUNTAIN SCENE_GREAT_FAIRYS_FOUNTAIN_SPELLS false
Colossus Great Fairy Fountain
RC_COLOSSUS_GREAT_FAIRY_REWARD (CanUse RG_ZELDAS_LULLABY)
RR_DESERT_COLOSSUS true
def RR_COLOSSUS_GROTTO SCENE_GROTTOS false
Colossus Grotto
RC_COLOSSUS_DEKU_SCRUB_GROTTO_REAR CanStunDeku
RC_COLOSSUS_DEKU_SCRUB_GROTTO_FRONT CanStunDeku
RC_COLOSSUS_GROTTO_BEEHIVE CanBreakUpperBeehives
RR_DESERT_COLOSSUS true

View file

@ -0,0 +1,192 @@
def RR_GF_OUTSKIRTS SCENE_GERUDOS_FORTRESS false RA_GERUDO_FORTRESS
Gerudo Fortress Outskirts
GF_GateOpen (and IsAdult (HasItem RG_GERUDO_MEMBERSHIP_CARD))
RC_GF_OUTSKIRTS_NE_CRATE (and (or IsChild (CanPassEnemy RE_GERUDO_GUARD)) CanBreakCrates)
RC_GF_OUTSKIRTS_NW_CRATE (or IsChild (CanPassEnemy RE_GERUDO_GUARD))
RR_GV_FORTRESS_SIDE true
RR_TH_1_TORCH_CELL true
RR_GF_OUTSIDE_GATE GF_GateOpen
RR_GF_NEAR_GROTTO (or IsChild (CanPassEnemy RE_GERUDO_GUARD))
RR_GF_OUTSIDE_GTG (or IsChild (CanPassEnemy RE_GERUDO_GUARD))
//You can talk to the guards to get yourself thrown in jail, so long as you have a hookshot to actually end up there
RR_GF_JAIL_WINDOW (CanUse RG_HOOKSHOT)
def RR_GF_NEAR_GROTTO SCENE_GERUDOS_FORTRESS false RA_GERUDO_FORTRESS
GF Near Grotto
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
RR_TH_1_TORCH_CELL true
RR_TH_STEEP_SLOPE_CELL true
RR_TH_KITCHEN_CORRIDOR true
RR_GF_OUTSKIRTS true
RR_GF_JAIL_WINDOW (CanUse RG_HOOKSHOT)
RR_GF_OUTSIDE_GTG (or IsChild (CanPassEnemy RE_GERUDO_GUARD))
RR_GF_TOP_OF_UPPER_VINES (CanUse RG_LONGSHOT)
RR_GF_STORMS_GROTTO (and IsAdult CanOpenStormsGrotto)
def RR_GF_OUTSIDE_GTG SCENE_GERUDOS_FORTRESS false RA_GERUDO_FORTRESS
GF Outside GTG
GtG_GateOpen (and IsAdult (and (HasItem RG_GERUDO_MEMBERSHIP_CARD) (HasItem RG_CHILD_WALLET)))
RR_GF_TO_GTG (and GtG_GateOpen (or IsAdult RSK_SHUFFLE_DUNGEON_ENTRANCES))
RR_GF_JAIL_WINDOW (CanUse RG_HOOKSHOT)
RR_GF_OUTSKIRTS true
RR_GF_NEAR_GROTTO (or IsChild (CanPassEnemy RE_GERUDO_GUARD))
RR_GF_ABOVE_GTG (or IsChild (CanPassEnemy RE_GERUDO_GUARD))
RR_GF_TOP_OF_UPPER_VINES (and (HasItem RG_GERUDO_MEMBERSHIP_CARD) (CanUse RG_LONGSHOT))
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
RR_GERUDO_TRAINING_GROUND_ENTRYWAY true
def RR_GF_EXITING_GTG SCENE_GERUDOS_FORTRESS false RA_GERUDO_FORTRESS
GF Exiting GTG
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
RR_TH_DOUBLE_CELL true
RR_TH_KITCHEN_CORRIDOR true
RR_GF_JAIL_WINDOW (CanUse RG_HOOKSHOT)
RR_GF_OUTSKIRTS true
RR_GF_NEAR_GROTTO true
RR_GF_OUTSIDE_GTG (or IsChild (CanPassEnemy RE_GERUDO_GUARD))
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
RR_TH_STEEP_SLOPE_CELL true
RR_GF_NEAR_GROTTO true
RR_GF_TOP_OF_LOWER_VINES true
RR_GF_ABOVE_GTG true
def RR_GF_TOP_OF_LOWER_VINES SCENE_GERUDOS_FORTRESS false RA_GERUDO_FORTRESS
GF Top of Lower Vines
RR_TH_KITCHEN_TOP true
RR_TH_DOUBLE_CELL true
RR_GF_ABOVE_GTG true
RR_GF_BOTTOM_OF_LOWER_VINES true
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
RC_GF_GS_TOP_FLOOR (and IsAdult (and (CanGetEnemyDrop RE_GOLD_SKULLTULA ED_BOMB_THROW) CanGetNightTimeGS))
RR_TH_KITCHEN_TOP true
RR_GF_BOTTOM_OF_LOWER_VINES true
RR_GF_TOP_OF_LOWER_VINES true
RR_GF_SLOPED_ROOF IsAdult
RR_GF_LONG_ROOF (or (CanUse RG_HOVER_BOOTS) (and IsAdult RT_GF_JUMP))
RR_GF_NEAR_CHEST (CanUse RG_LONGSHOT)
RR_GF_BELOW_GS true
def RR_GF_SLOPED_ROOF SCENE_GERUDOS_FORTRESS false RA_GERUDO_FORTRESS
GF Sloped Roof
RR_GF_TOP_OF_LOWER_VINES true
RR_GF_NEAR_GS true
RR_GF_BOTTOM_OF_UPPER_VINES true
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
RR_GF_OUTSIDE_GTG true
RR_GF_TOP_OF_LOWER_VINES true
RR_GF_SLOPED_ROOF (and IsAdult (CanUse RG_HOVER_BOOTS))
RR_GF_TOP_OF_UPPER_VINES true
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
RC_GF_GS_TOP_FLOOR (and IsAdult (and (CanGetEnemyDrop RE_GOLD_SKULLTULA ED_SHORT_JUMPSLASH) CanGetNightTimeGS))
RR_GF_TOP_OF_LOWER_VINES true
RR_GF_SLOPED_ROOF true
RR_GF_BOTTOM_OF_UPPER_VINES true
RR_GF_NEAR_CHEST (or (CanUse RG_HOVER_BOOTS) (or (and IsAdult (and (CanUse RG_SCARECROW) (CanUse RG_HOOKSHOT))) (CanUse RG_LONGSHOT)))
def RR_GF_NEAR_CHEST SCENE_GERUDOS_FORTRESS false RA_GERUDO_FORTRESS
GF Near Chest
RC_GF_CHEST true
RC_GF_GS_TOP_FLOOR (and IsAdult (and (CanGetEnemyDrop RE_GOLD_SKULLTULA ED_BOOMERANG) CanGetNightTimeGS))
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
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))
RR_GF_BELOW_GS true
RR_GF_NEAR_CHEST (CanUse RG_LONGSHOT)
RR_GF_BELOW_CHEST true
def RR_GF_BELOW_GS SCENE_GERUDOS_FORTRESS false RA_GERUDO_FORTRESS
GF Below GS
RC_GF_GS_TOP_FLOOR (and IsAdult (and (CanGetEnemyDrop RE_GOLD_SKULLTULA ED_LONGSHOT) CanGetNightTimeGS))
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
RR_TH_BREAK_ROOM true
RR_GF_OUTSKIRTS true
def RR_GF_HBA_RANGE SCENE_GERUDOS_FORTRESS false RA_GERUDO_FORTRESS
GF HBA Range
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))
RC_GF_HBA_RANGE_CRATE_1 CanBreakCrates
RC_GF_HBA_RANGE_CRATE_2 CanBreakCrates
RC_GF_HBA_RANGE_CRATE_3 CanBreakCrates
RC_GF_HBA_RANGE_CRATE_4 CanBreakCrates
RC_GF_HBA_RANGE_CRATE_5 CanBreakCrates
RC_GF_HBA_RANGE_CRATE_6 CanBreakCrates
RC_GF_HBA_RANGE_CRATE_7 CanBreakCrates
RC_GF_HBA_CANOPY_EAST_CRATE CanBreakCrates
RC_GF_HBA_CANOPY_WEST_CRATE CanBreakCrates
RC_GF_NORTH_TARGET_EAST_CRATE CanBreakCrates
RC_GF_NORTH_TARGET_WEST_CRATE (or IsAdult (or BlastOrSmash (or HookshotOrBoomerang (CanUse RG_HOVER_BOOTS))))
//implies CanBreakCrates
RC_GF_NORTH_TARGET_CHILD_CRATE (and IsChild BlastOrSmash)
RC_GF_SOUTH_TARGET_EAST_CRATE CanBreakCrates
RC_GF_SOUTH_TARGET_WEST_CRATE CanBreakCrates
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
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
RR_GF_OUTSKIRTS (!= RT_GF_JUMP 0)
RR_GF_NEAR_CHEST (CanUse RG_LONGSHOT)
RR_GF_BELOW_CHEST TakeDamage
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
RR_GF_OUTSKIRTS true
RR_GF_BELOW_CHEST true
def RR_GF_OUTSIDE_GATE SCENE_GERUDOS_FORTRESS false RA_GERUDO_FORTRESS
GF Outside Gate
GF_GateOpen (and IsAdult (HasItem RG_GERUDO_MEMBERSHIP_CARD))
RR_GF_OUTSKIRTS GF_GateOpen
RR_WASTELAND_NEAR_FORTRESS true
def RR_GF_STORMS_GROTTO SCENE_GROTTOS false
GF Storms Grotto
FreeFairies true
RC_GF_FAIRY_GROTTO_FAIRY_1 true
RC_GF_FAIRY_GROTTO_FAIRY_2 true
RC_GF_FAIRY_GROTTO_FAIRY_3 true
RC_GF_FAIRY_GROTTO_FAIRY_4 true
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
RR_GF_NEAR_GROTTO true

View file

@ -0,0 +1,86 @@
def RR_GERUDO_VALLEY SCENE_GERUDO_VALLEY true RA_GERUDO_VALLEY
Gerudo Valley
BugRock IsChild
RC_GV_GS_SMALL_BRIDGE (and IsChild (and HookshotOrBoomerang CanGetNightTimeGS))
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))
RR_GV_GROTTO_LEDGE true
RR_GV_FORTRESS_SIDE (or (and IsAdult (or (CanUse RG_EPONA) (or (CanUse RG_LONGSHOT) (or (== RSK_GERUDO_FORTRESS RO_GF_CARPENTERS_FREE) THRescuedAllCarpenters)))) (and IsChild (CanUse RG_HOOKSHOT)))
//can use cucco as child
RR_GV_LOWER_STREAM IsChild
def RR_GV_UPPER_STREAM SCENE_GERUDO_VALLEY true RA_GERUDO_VALLEY
GV Upper Stream
GossipStoneFairy CallGossipFairy
BeanPlantFairy (and IsChild (and (CanUse RG_MAGIC_BEAN) (CanUse RG_SONG_OF_STORMS)))
//can use cucco as child
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))
RC_GV_BEAN_SPROUT_FAIRY_1 (and IsChild (and (CanUse RG_MAGIC_BEAN) (CanUse RG_SONG_OF_STORMS)))
RC_GV_BEAN_SPROUT_FAIRY_2 (and IsChild (and (CanUse RG_MAGIC_BEAN) (CanUse RG_SONG_OF_STORMS)))
RC_GV_BEAN_SPROUT_FAIRY_3 (and IsChild (and (CanUse RG_MAGIC_BEAN) (CanUse RG_SONG_OF_STORMS)))
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)
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
RR_LAKE_HYLIA true
def RR_GV_GROTTO_LEDGE SCENE_GERUDO_VALLEY true RA_GERUDO_VALLEY
GV Grotto Ledge
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)
RR_GV_CRATE_LEDGE (CanUse RG_LONGSHOT)
def RR_GV_CRATE_LEDGE SCENE_GERUDO_VALLEY true RA_GERUDO_VALLEY
GV Crate Ledge
RC_GV_CRATE_FREESTANDING_POH CanBreakCrates
RC_GV_FREESTANDING_POH_CRATE CanBreakCrates
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
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)))
RC_GV_OCTOROK_GROTTO_FRONT_LEFT_GREEN_RUPEE (or (HasItem RG_BRONZE_SCALE) (or (CanUse RG_IRON_BOOTS) (CanUse RG_BOOMERANG)))
RC_GV_OCTOROK_GROTTO_FRONT_RIGHT_GREEN_RUPEE (or (HasItem RG_BRONZE_SCALE) (or (CanUse RG_IRON_BOOTS) (CanUse RG_BOOMERANG)))
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)))
RR_GV_GROTTO_LEDGE true
def RR_GV_FORTRESS_SIDE SCENE_GERUDO_VALLEY true RA_GERUDO_VALLEY
GV Fortress Side
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))
RC_GV_GS_PILLAR (and IsAdult (and HookshotOrBoomerang CanGetNightTimeGS))
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)
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))))
RR_GV_CARPENTER_TENT IsAdult
RR_GV_STORMS_GROTTO (and IsAdult CanOpenStormsGrotto)
RR_GV_CRATE_LEDGE (and RT_DAMAGE_BOOST_SIMPLE HasExplosives)
def RR_GV_CARPENTER_TENT SCENE_CARPENTERS_TENT false
GV Carpenter Tent
RR_GV_FORTRESS_SIDE true
def RR_GV_STORMS_GROTTO SCENE_GROTTOS false
GV Storms Grotto
RC_GV_DEKU_SCRUB_GROTTO_REAR CanStunDeku
RC_GV_DEKU_SCRUB_GROTTO_FRONT CanStunDeku
RC_GV_DEKU_SCRUB_GROTTO_BEEHIVE CanBreakUpperBeehives
RR_GV_FORTRESS_SIDE true

View file

@ -0,0 +1,82 @@
def RR_GORON_CITY SCENE_GORON_CITY false RA_GORON_CITY
Goron City
GossipStoneFairy CallGossipFairyExceptSuns
StickPot IsChild
BugRock (or BlastOrSmash (CanUse RG_SILVER_GAUNTLETS))
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))))))))
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))
RC_GC_POT_FREESTANDING_POH (and IsChild (and GoronCityChildFire (or (CanUse RG_BOMB_BAG) (or (and (HasItem RG_GORONS_BRACELET) RT_GC_POT_STRENGTH) (and (CanUse RG_BOMBCHU_5) RT_GC_POT)))))
RC_GC_ROLLING_GORON_AS_CHILD (and IsChild (or HasExplosives (and (HasItem RG_GORONS_BRACELET) RT_GC_ROLLING_STRENGTH)))
RC_GC_ROLLING_GORON_AS_ADULT StopGCRollingGoronAsAdult
RC_GC_GS_BOULDER_MAZE (and IsChild BlastOrSmash)
RC_GC_GS_CENTER_PLATFORM (and IsAdult CanAttack)
RC_GC_MEDIGORON (and IsAdult (or CanBreakMudWalls (HasItem RG_GORONS_BRACELET)))
RC_GC_MAZE_GOSSIP_STONE_FAIRY (and (or BlastOrSmash (CanUse RG_SILVER_GAUNTLETS)) CallGossipFairyExceptSuns)
RC_GC_MAZE_GOSSIP_STONE_FAIRY_BIG (and (or BlastOrSmash (CanUse RG_SILVER_GAUNTLETS)) (CanUse RG_SONG_OF_STORMS))
RC_GC_MAZE_GOSSIP_STONE (or BlastOrSmash (CanUse RG_SILVER_GAUNTLETS))
RC_GC_LOWER_STAIRCASE_POT_1 CanBreakPots
RC_GC_LOWER_STAIRCASE_POT_2 CanBreakPots
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))
RR_DEATH_MOUNTAIN_TRAIL true
RR_GC_MEDIGORON (or CanBreakMudWalls (HasItem RG_GORONS_BRACELET))
RR_GC_WOODS_WARP GCWoodsWarpOpen
RR_GC_SHOP (or (and IsAdult StopGCRollingGoronAsAdult) (and IsChild (or BlastOrSmash (or (HasItem RG_GORONS_BRACELET) (or GoronCityChildFire (CanUse RG_FAIRY_BOW))))))
RR_GC_DARUNIAS_CHAMBER (or (and IsAdult StopGCRollingGoronAsAdult) (and IsChild GCDaruniasDoorOpenChild))
RR_GC_GROTTO_PLATFORM (and IsAdult (or (and (CanUse RG_SONG_OF_TIME) (or (> EffectiveHealth 2) (or (CanUse RG_GORON_TUNIC) (or (CanUse RG_LONGSHOT) (CanUse RG_NAYRUS_LOVE))))) (or (and (> EffectiveHealth 1) (and (CanUse RG_GORON_TUNIC) (CanUse RG_HOOKSHOT))) (or (and (CanUse RG_NAYRUS_LOVE) (CanUse RG_HOOKSHOT)) (and (> EffectiveHealth 2) (and (CanUse RG_HOOKSHOT) RT_GC_GROTTO))))))
def RR_GC_MEDIGORON SCENE_GORON_CITY false RA_GORON_CITY
GC Medigoron
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
RR_GORON_CITY true
def RR_GC_WOODS_WARP SCENE_GORON_CITY false RA_GORON_CITY
GC Woods Warp
GCWoodsWarpOpen (or BlastOrSmash (CanUse RG_DINS_FIRE))
RR_GORON_CITY GCWoodsWarpOpen
RR_THE_LOST_WOODS true
def RR_GC_DARUNIAS_CHAMBER SCENE_GORON_CITY false RA_GORON_CITY
GC Darunias Chamber
GoronCityChildFire (and IsChild (CanUse RG_STICKS))
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
RR_GORON_CITY true
RR_DMC_LOWER_LOCAL IsAdult
def RR_GC_GROTTO_PLATFORM SCENE_GORON_CITY false RA_GORON_CITY
GC Grotto Platform
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
RC_GC_SHOP_ITEM_1 true
RC_GC_SHOP_ITEM_2 true
RC_GC_SHOP_ITEM_3 true
RC_GC_SHOP_ITEM_4 true
RC_GC_SHOP_ITEM_5 true
RC_GC_SHOP_ITEM_6 true
RC_GC_SHOP_ITEM_7 true
RC_GC_SHOP_ITEM_8 true
RR_GORON_CITY true
def RR_GC_GROTTO SCENE_GROTTOS false
GC Grotto
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
RR_GC_GROTTO_PLATFORM true

View file

@ -0,0 +1,103 @@
def RR_THE_GRAVEYARD SCENE_GRAVEYARD false RA_THE_GRAVEYARD
The Graveyard
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))))
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))
RC_GRAVEYARD_GS_WALL (and IsChild (and HookshotOrBoomerang (and AtNight CanGetNightTimeGS)))
RC_GRAVEYARD_GS_BEAN_PATCH (and CanSpawnSoilSkull CanAttack)
RC_GRAVEYARD_BEAN_SPROUT_FAIRY_1 (and IsChild (and (CanUse RG_MAGIC_BEAN) (CanUse RG_SONG_OF_STORMS)))
RC_GRAVEYARD_BEAN_SPROUT_FAIRY_2 (and IsChild (and (CanUse RG_MAGIC_BEAN) (CanUse RG_SONG_OF_STORMS)))
RC_GRAVEYARD_BEAN_SPROUT_FAIRY_3 (and IsChild (and (CanUse RG_MAGIC_BEAN) (CanUse RG_SONG_OF_STORMS)))
RC_GY_GRASS_1 CanCutShrubs
RC_GY_GRASS_2 CanCutShrubs
RC_GY_GRASS_3 CanCutShrubs
RC_GY_GRASS_4 CanCutShrubs
RC_GY_GRASS_5 CanCutShrubs
RC_GY_GRASS_6 CanCutShrubs
RC_GY_GRASS_7 CanCutShrubs
RC_GY_GRASS_8 CanCutShrubs
RC_GY_GRASS_9 CanCutShrubs
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)
RR_GRAVEYARD_SHIELD_GRAVE (or IsAdult AtNight)
RR_GRAVEYARD_COMPOSERS_GRAVE (CanUse RG_ZELDAS_LULLABY)
RR_GRAVEYARD_HEART_PIECE_GRAVE (or IsAdult AtNight)
RR_GRAVEYARD_DAMPES_GRAVE IsAdult
//TODO: This needs to be handled in ToD rework
RR_GRAVEYARD_DAMPES_HOUSE (and IsAdult (CanOpenOverworldDoor RG_DAMPES_HUT_KEY))
RR_KAKARIKO_VILLAGE true
RR_GRAVEYARD_WARP_PAD_REGION false
def RR_GRAVEYARD_DAMPES_GRAVE SCENE_WINDMILL_AND_DAMPES_GRAVE false
Graveyard Dampes Grave
NutPot true
DampesWindmillAccess (and IsAdult (CanUse RG_SONG_OF_TIME))
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
RC_GY_DAMPES_GRAVE_POT_2 CanBreakPots
RC_GY_DAMPES_GRAVE_POT_3 CanBreakPots
RC_GY_DAMPES_GRAVE_POT_4 CanBreakPots
RC_GY_DAMPES_GRAVE_POT_5 CanBreakPots
RC_GY_DAMPES_GRAVE_POT_6 CanBreakPots
RC_GRAVEYARD_DAMPE_RACE_RUPEE_1 true
RC_GRAVEYARD_DAMPE_RACE_RUPEE_2 true
RC_GRAVEYARD_DAMPE_RACE_RUPEE_3 true
RC_GRAVEYARD_DAMPE_RACE_RUPEE_4 true
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
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
RC_DAMPE_HINT IsAdult
RR_THE_GRAVEYARD true
def RR_GRAVEYARD_SHIELD_GRAVE SCENE_GRAVE_WITH_FAIRYS_FOUNTAIN false
Graveyard Shield Grave
RC_GRAVEYARD_SHIELD_GRAVE_CHEST true
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
RC_GRAVEYARD_SHIELD_GRAVE_FAIRY_1 true
RC_GRAVEYARD_SHIELD_GRAVE_FAIRY_2 true
RC_GRAVEYARD_SHIELD_GRAVE_FAIRY_3 true
RC_GRAVEYARD_SHIELD_GRAVE_FAIRY_4 true
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
RR_GRAVEYARD_SHIELD_GRAVE true
def RR_GRAVEYARD_COMPOSERS_GRAVE SCENE_ROYAL_FAMILYS_TOMB false
Graveyard Composers Grave
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)
RR_THE_GRAVEYARD true
def RR_GRAVEYARD_HEART_PIECE_GRAVE SCENE_REDEAD_GRAVE false
Graveyard Heart Piece Grave
RC_GRAVEYARD_HEART_PIECE_GRAVE_CHEST (CanUse RG_SUNS_SONG)
RR_THE_GRAVEYARD true
def RR_GRAVEYARD_WARP_PAD_REGION SCENE_GRAVEYARD false RA_THE_GRAVEYARD
Graveyard Warp Pad Region
GossipStoneFairy CallGossipFairyExceptSuns
RC_GRAVEYARD_GOSSIP_STONE_FAIRY CallGossipFairyExceptSuns
RC_GRAVEYARD_GOSSIP_STONE_FAIRY_BIG (CanUse RG_SONG_OF_STORMS)
RC_GRAVEYARD_GOSSIP_STONE true
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

@ -0,0 +1,29 @@
def RR_WASTELAND_NEAR_FORTRESS SCENE_HAUNTED_WASTELAND false RA_HAUNTED_WASTELAND
Wasteland Near Fortress
RC_HW_BEFORE_QUICKSAND_CRATE CanBreakCrates
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
FairyPot true
NutPot true
CarpetMerchant (and (HasItem RG_ADULT_WALLET) (and (CanBuyAnother RC_WASTELAND_BOMBCHU_SALESMAN) (or CanJumpslash (CanUse RG_HOVER_BOOTS))))
RC_WASTELAND_CHEST HasFireSource
RC_WASTELAND_BOMBCHU_SALESMAN (or CanJumpslash (CanUse RG_HOVER_BOOTS))
RC_WASTELAND_GS HookshotOrBoomerang
RC_WASTELAND_NEAR_GS_POT_1 CanBreakPots
RC_WASTELAND_NEAR_GS_POT_2 CanBreakPots
RC_WASTELAND_NEAR_GS_POT_3 CanBreakPots
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
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
RC_HW_NEAR_COLOSSUS_CRATE CanBreakCrates
RR_DESERT_COLOSSUS true
RR_HAUNTED_WASTELAND (or RT_HW_REVERSE false)

View file

@ -0,0 +1,177 @@
def RR_HYRULE_FIELD SCENE_HYRULE_FIELD true RA_HYRULE_FIELD
Hyrule Field
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))))))
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)
RC_HF_CENTRAL_GRASS_1 CanCutShrubs
RC_HF_CENTRAL_GRASS_2 CanCutShrubs
RC_HF_CENTRAL_GRASS_3 CanCutShrubs
RC_HF_CENTRAL_GRASS_4 CanCutShrubs
RC_HF_CENTRAL_GRASS_5 CanCutShrubs
RC_HF_CENTRAL_GRASS_6 CanCutShrubs
RC_HF_CENTRAL_GRASS_7 CanCutShrubs
RC_HF_CENTRAL_GRASS_8 CanCutShrubs
RC_HF_CENTRAL_GRASS_9 CanCutShrubs
RC_HF_CENTRAL_GRASS_10 CanCutShrubs
RC_HF_CENTRAL_GRASS_11 CanCutShrubs
RC_HF_CENTRAL_GRASS_12 CanCutShrubs
RC_HF_SOUTH_GRASS_1 CanCutShrubs
RC_HF_SOUTH_GRASS_2 CanCutShrubs
RC_HF_SOUTH_GRASS_3 CanCutShrubs
RC_HF_SOUTH_GRASS_4 CanCutShrubs
RC_HF_SOUTH_GRASS_5 CanCutShrubs
RC_HF_SOUTH_GRASS_6 CanCutShrubs
RC_HF_SOUTH_GRASS_7 CanCutShrubs
RC_HF_SOUTH_GRASS_8 CanCutShrubs
RC_HF_SOUTH_GRASS_9 CanCutShrubs
RC_HF_SOUTH_GRASS_10 CanCutShrubs
RC_HF_SOUTH_GRASS_11 CanCutShrubs
RC_HF_SOUTH_GRASS_12 CanCutShrubs
RC_HF_NEAR_MARKET_GRASS_1 CanCutShrubs
RC_HF_NEAR_MARKET_GRASS_2 CanCutShrubs
RC_HF_NEAR_MARKET_GRASS_3 CanCutShrubs
RC_HF_NEAR_MARKET_GRASS_4 CanCutShrubs
RC_HF_NEAR_MARKET_GRASS_5 CanCutShrubs
RC_HF_NEAR_MARKET_GRASS_6 CanCutShrubs
RC_HF_NEAR_MARKET_GRASS_7 CanCutShrubs
RC_HF_NEAR_MARKET_GRASS_8 CanCutShrubs
RC_HF_NEAR_MARKET_GRASS_9 CanCutShrubs
RC_HF_NEAR_MARKET_GRASS_10 CanCutShrubs
RC_HF_NEAR_MARKET_GRASS_11 CanCutShrubs
RC_HF_NEAR_MARKET_GRASS_12 CanCutShrubs
RC_HF_NEAR_KF_GRASS_1 CanCutShrubs
RC_HF_NEAR_KF_GRASS_2 CanCutShrubs
RC_HF_NEAR_KF_GRASS_3 CanCutShrubs
RC_HF_NEAR_KF_GRASS_4 CanCutShrubs
RC_HF_NEAR_KF_GRASS_5 CanCutShrubs
RC_HF_NEAR_KF_GRASS_6 CanCutShrubs
RC_HF_NEAR_KF_GRASS_7 CanCutShrubs
RC_HF_NEAR_KF_GRASS_8 CanCutShrubs
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
RR_LW_BRIDGE true
RR_LAKE_HYLIA true
RR_GERUDO_VALLEY true
RR_MARKET_ENTRANCE true
RR_KAKARIKO_VILLAGE true
RR_ZR_FRONT true
RR_LON_LON_RANCH true
RR_HF_SOUTHEAST_GROTTO (Here BlastOrSmash)
RR_HF_OPEN_GROTTO true
RR_HF_INSIDE_FENCE_GROTTO CanOpenBombGrotto
RR_HF_COW_GROTTO (and (or (CanUse RG_MEGATON_HAMMER) IsChild) CanOpenBombGrotto)
RR_HF_NEAR_MARKET_GROTTO (Here BlastOrSmash)
RR_HF_FAIRY_GROTTO (Here BlastOrSmash)
RR_HF_NEAR_KAK_GROTTO CanOpenBombGrotto
RR_HF_TEKTITE_GROTTO CanOpenBombGrotto
def RR_HF_SOUTHEAST_GROTTO SCENE_GROTTOS false
HF Southeast Grotto
GossipStoneFairy CallGossipFairy
ButterflyFairy (CanUse RG_STICKS)
BugShrub CanCutShrubs
LoneFish true
RC_HF_SOUTHEAST_GROTTO_CHEST true
RC_HF_SOUTHEAST_GROTTO_FISH HasBottle
RC_HF_SOUTHEAST_GROTTO_GOSSIP_STONE_FAIRY CallGossipFairy
RC_HF_SOUTHEAST_GROTTO_GOSSIP_STONE_FAIRY_BIG (CanUse RG_SONG_OF_STORMS)
RC_HF_SOUTHEAST_GROTTO_GOSSIP_STONE true
RC_HF_SOUTHEAST_GROTTO_BEEHIVE_LEFT CanBreakLowerBeehives
RC_HF_SOUTHEAST_GROTTO_BEEHIVE_RIGHT CanBreakLowerBeehives
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
RR_HYRULE_FIELD true
def RR_HF_OPEN_GROTTO SCENE_GROTTOS false
HF Open Grotto
GossipStoneFairy CallGossipFairy
ButterflyFairy (CanUse RG_STICKS)
BugShrub CanCutShrubs
LoneFish true
RC_HF_OPEN_GROTTO_CHEST true
RC_HF_OPEN_GROTTO_FISH HasBottle
RC_HF_OPEN_GROTTO_GOSSIP_STONE_FAIRY CallGossipFairy
RC_HF_OPEN_GROTTO_GOSSIP_STONE_FAIRY_BIG (CanUse RG_SONG_OF_STORMS)
RC_HF_OPEN_GROTTO_GOSSIP_STONE true
RC_HF_OPEN_GROTTO_BEEHIVE_LEFT CanBreakLowerBeehives
RC_HF_OPEN_GROTTO_BEEHIVE_RIGHT CanBreakLowerBeehives
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
RR_HYRULE_FIELD true
def RR_HF_INSIDE_FENCE_GROTTO SCENE_GROTTOS false
HF Inside Fence Grotto
RC_HF_DEKU_SCRUB_GROTTO CanStunDeku
RC_HF_INSIDE_FENCE_GROTTO_BEEHIVE CanBreakLowerBeehives
RC_HF_FENCE_GROTTO_STORMS_FAIRY (CanUse RG_SONG_OF_STORMS)
RR_HYRULE_FIELD true
def RR_HF_COW_GROTTO SCENE_GROTTOS false
HF Cow Grotto
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
BugShrub CanCutShrubs
GossipStoneFairy CallGossipFairy
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
RC_HF_COW_GROTTO_GOSSIP_STONE_FAIRY_BIG (CanUse RG_SONG_OF_STORMS)
RC_HF_COW_GROTTO_GOSSIP_STONE true
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
RR_HF_COW_GROTTO true
def RR_HF_NEAR_MARKET_GROTTO SCENE_GROTTOS false
HF Near Market Grotto
GossipStoneFairy CallGossipFairy
ButterflyFairy (CanUse RG_STICKS)
BugShrub CanCutShrubs
LoneFish true
RC_HF_NEAR_MARKET_GROTTO_CHEST true
RC_HF_NEAR_MARKET_GROTTO_FISH HasBottle
RC_HF_NEAR_MARKET_GROTTO_GOSSIP_STONE_FAIRY CallGossipFairy
RC_HF_NEAR_MARKET_GROTTO_GOSSIP_STONE_FAIRY_BIG (CanUse RG_SONG_OF_STORMS)
RC_HF_NEAR_MARKET_GROTTO_GOSSIP_STONE true
RC_HF_NEAR_MARKET_GROTTO_BEEHIVE_LEFT CanBreakLowerBeehives
RC_HF_NEAR_MARKET_GROTTO_BEEHIVE_RIGHT CanBreakLowerBeehives
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
RR_HYRULE_FIELD true
def RR_HF_FAIRY_GROTTO SCENE_GROTTOS false
HF Fairy Grotto
FreeFairies true
RC_HF_FAIRY_GROTTO_FAIRY_1 true
RC_HF_FAIRY_GROTTO_FAIRY_2 true
RC_HF_FAIRY_GROTTO_FAIRY_3 true
RC_HF_FAIRY_GROTTO_FAIRY_4 true
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
RR_HYRULE_FIELD true
def RR_HF_NEAR_KAK_GROTTO SCENE_GROTTOS false
HF Near Kak Grotto
RC_HF_GS_NEAR_KAK_GROTTO HookshotOrBoomerang
RR_HYRULE_FIELD true
def RR_HF_TEKTITE_GROTTO SCENE_GROTTOS false
HF Tektite Grotto
RC_HF_TEKTITE_GROTTO_FREESTANDING_POH (or (HasItem RG_GOLDEN_SCALE) (CanUse RG_IRON_BOOTS))
RR_HYRULE_FIELD true

View file

@ -0,0 +1,212 @@
def RR_KAKARIKO_VILLAGE SCENE_KAKARIKO_VILLAGE true RA_KAKARIKO_VILLAGE
Kakariko Village
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)))
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)
RC_KAK_TRADE_POCKET_CUCCO (and IsAdult (and AtDay (and (CanUse RG_POCKET_EGG) WakeUpAdultTalon)))
//Can kill lower kak skulls with pots
RC_KAK_GS_HOUSE_UNDER_CONSTRUCTION (and IsChild CanGetNightTimeGS)
RC_KAK_GS_SKULLTULA_HOUSE (and IsChild CanGetNightTimeGS)
RC_KAK_GS_GUARDS_HOUSE (and IsChild CanGetNightTimeGS)
RC_KAK_GS_TREE (and IsChild CanGetNightTimeGS)
RC_KAK_GS_WATCHTOWER (and IsChild (and (or (CanKillEnemy RE_GOLD_SKULLTULA ED_LONGSHOT) (and RT_KAK_TOWER_GS CanJumpslashExceptHammer)) CanGetNightTimeGS))
RC_KAK_NEAR_POTION_SHOP_POT_1 (and IsChild CanBreakPots)
RC_KAK_NEAR_POTION_SHOP_POT_2 (and IsChild CanBreakPots)
RC_KAK_NEAR_POTION_SHOP_POT_3 (and IsChild CanBreakPots)
RC_KAK_NEAR_IMPAS_HOUSE_POT_1 (and IsChild CanBreakPots)
RC_KAK_NEAR_IMPAS_HOUSE_POT_2 (and IsChild CanBreakPots)
RC_KAK_NEAR_IMPAS_HOUSE_POT_3 (and IsChild CanBreakPots)
RC_KAK_NEAR_GUARDS_HOUSE_POT_1 (and IsChild CanBreakPots)
RC_KAK_NEAR_GUARDS_HOUSE_POT_2 (and IsChild CanBreakPots)
RC_KAK_NEAR_GUARDS_HOUSE_POT_3 (and IsChild CanBreakPots)
RC_KAK_GRASS_1 CanCutShrubs
RC_KAK_GRASS_2 CanCutShrubs
RC_KAK_GRASS_3 CanCutShrubs
RC_KAK_GRASS_4 CanCutShrubs
RC_KAK_GRASS_5 CanCutShrubs
RC_KAK_GRASS_6 CanCutShrubs
RC_KAK_GRASS_7 CanCutShrubs
RC_KAK_GRASS_8 CanCutShrubs
RC_KAK_NEAR_OPEN_GROTTO_ADULT_CRATE_1 (and IsAdult CanBreakCrates)
RC_KAK_NEAR_OPEN_GROTTO_ADULT_CRATE_2 (and IsAdult CanBreakCrates)
RC_KAK_NEAR_OPEN_GROTTO_ADULT_CRATE_3 (and IsAdult CanBreakCrates)
RC_KAK_NEAR_OPEN_GROTTO_ADULT_CRATE_4 (and IsAdult CanBreakCrates)
RC_KAK_NEAR_POTION_SHOP_ADULT_CRATE (and IsAdult CanBreakCrates)
RC_KAK_NEAR_SHOOTING_GALLERY_ADULT_CRATE (and IsAdult CanBreakCrates)
RC_KAK_NEAR_BOARDING_HOUSE_ADULT_CRATE_1 (and IsAdult CanBreakCrates)
RC_KAK_NEAR_BOARDING_HOUSE_ADULT_CRATE_2 (and IsAdult CanBreakCrates)
RC_KAK_NEAR_IMPAS_HOUSE_ADULT_CRATE_1 (and IsAdult CanBreakCrates)
RC_KAK_NEAR_IMPAS_HOUSE_ADULT_CRATE_2 (and IsAdult CanBreakCrates)
RC_KAK_NEAR_BAZAAR_ADULT_CRATE_1 (and IsAdult CanBreakCrates)
RC_KAK_NEAR_BAZAAR_ADULT_CRATE_2 (and IsAdult CanBreakCrates)
RC_KAK_BEHIND_GS_HOUSE_ADULT_CRATE (and IsAdult CanBreakCrates)
RC_KAK_NEAR_GY_CHILD_CRATE (and IsChild CanBreakCrates)
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)
RR_HYRULE_FIELD true
RR_KAK_CARPENTER_BOSS_HOUSE (CanOpenOverworldDoor RG_BOSS_HOUSE_KEY)
RR_KAK_HOUSE_OF_SKULLTULA (CanOpenOverworldDoor RG_SKULLTULA_HOUSE_KEY)
RR_KAK_IMPAS_HOUSE (CanOpenOverworldDoor RG_IMPAS_HOUSE_KEY)
RR_KAK_WINDMILL (CanOpenOverworldDoor RG_WINDMILL_KEY)
RR_KAK_BAZAAR (and IsAdult (and AtDay (CanOpenOverworldDoor RG_KAK_BAZAAR_KEY)))
RR_KAK_SHOOTING_GALLERY (and IsAdult (and AtDay (CanOpenOverworldDoor RG_KAK_SHOOTING_GALLERY_KEY)))
RR_KAK_WELL (or IsAdult (or DrainWell (or (CanUse RG_IRON_BOOTS) (and RT_BOTTOM_OF_THE_WELL_NAVI_DIVE (and IsChild (and (HasItem RG_BRONZE_SCALE) CanJumpslash))))))
RR_KAK_POTION_SHOP_FRONT (and (or AtDay IsChild) (CanOpenOverworldDoor RG_KAK_POTION_SHOP_KEY))
RR_KAK_REDEAD_GROTTO CanOpenBombGrotto
RR_KAK_IMPAS_LEDGE (or (and IsChild AtDay) (and IsAdult RT_VISIBLE_COLLISION))
RR_KAK_WATCHTOWER (or IsAdult (or AtDay (or (CanKillEnemy RE_GOLD_SKULLTULA ED_LONGSHOT) (and RT_KAK_TOWER_GS CanJumpslashExceptHammer))))
RR_KAK_ROOFTOP (or (CanUse RG_HOOKSHOT) (and RT_KAK_MAN_ON_ROOF IsAdult))
RR_KAK_IMPAS_ROOFTOP (or (CanUse RG_HOOKSHOT) (and RT_KAK_ROOFTOP_GS (CanUse RG_HOVER_BOOTS)))
RR_THE_GRAVEYARD true
RR_KAK_BEHIND_GATE (or IsAdult KakarikoVillageGateOpen)
//adult can jump from the fence near the windmill to ledgegrab the fence near granny's shop. is in logic on N64
RR_KAK_BACKYARD (or IsAdult AtDay)
def RR_KAK_CARPENTER_BOSS_HOUSE SCENE_KAKARIKO_CENTER_GUEST_HOUSE false
Kak Carpenter Boss House
WakeUpAdultTalon (and IsAdult (CanUse RG_POCKET_EGG))
RR_KAKARIKO_VILLAGE true
def RR_KAK_HOUSE_OF_SKULLTULA SCENE_HOUSE_OF_SKULLTULA false
Kak House of Skulltula
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)
RR_KAKARIKO_VILLAGE true
def RR_KAK_IMPAS_HOUSE SCENE_IMPAS_HOUSE false
Kak Impas House
RC_KAK_IMPAS_HOUSE_COW (CanUse RG_EPONAS_SONG)
RR_KAKARIKO_VILLAGE true
def RR_KAK_IMPAS_LEDGE SCENE_KAKARIKO_VILLAGE true RA_KAKARIKO_VILLAGE
Kak Impas Ledge
RR_KAK_IMPAS_HOUSE_BACK true
RR_KAKARIKO_VILLAGE true
def RR_KAK_IMPAS_HOUSE_BACK SCENE_IMPAS_HOUSE false
Kak Impas House Back
RC_KAK_IMPAS_HOUSE_FREESTANDING_POH true
RC_KAK_IMPAS_HOUSE_COW (CanUse RG_EPONAS_SONG)
RR_KAK_IMPAS_LEDGE true
def RR_KAK_WINDMILL SCENE_WINDMILL_AND_DAMPES_GRAVE false
Kak Windmill
DrainWell (and IsChild (CanUse RG_SONG_OF_STORMS))
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))
RR_KAKARIKO_VILLAGE true
def RR_KAK_BAZAAR SCENE_BAZAAR false
Kak Bazaar
RC_KAK_BAZAAR_ITEM_1 true
RC_KAK_BAZAAR_ITEM_2 true
RC_KAK_BAZAAR_ITEM_3 true
RC_KAK_BAZAAR_ITEM_4 true
RC_KAK_BAZAAR_ITEM_5 true
RC_KAK_BAZAAR_ITEM_6 true
RC_KAK_BAZAAR_ITEM_7 true
RC_KAK_BAZAAR_ITEM_8 true
RR_KAKARIKO_VILLAGE true
def RR_KAK_SHOOTING_GALLERY SCENE_SHOOTING_GALLERY false
Kak Shooting Gallery
RC_KAK_SHOOTING_GALLERY_REWARD (and (HasItem RG_CHILD_WALLET) (and IsAdult (CanUse RG_FAIRY_BOW)))
RR_KAKARIKO_VILLAGE true
def RR_KAK_POTION_SHOP_FRONT SCENE_POTION_SHOP_KAKARIKO false
Kak Potion Shop Front
RC_KAK_POTION_SHOP_ITEM_1 IsAdult
RC_KAK_POTION_SHOP_ITEM_2 IsAdult
RC_KAK_POTION_SHOP_ITEM_3 IsAdult
RC_KAK_POTION_SHOP_ITEM_4 IsAdult
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
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
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.
RC_KAK_GS_WATCHTOWER (and IsChild (and (CanUse RG_DINS_FIRE) CanGetNightTimeGS))
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
RC_KAK_MAN_ON_ROOF true
RR_KAK_BACKYARD true
RR_KAKARIKO_VILLAGE true
def RR_KAK_IMPAS_ROOFTOP SCENE_KAKARIKO_VILLAGE true RA_KAKARIKO_VILLAGE
Kak Impas Rooftop
RC_KAK_GS_ABOVE_IMPAS_HOUSE (and IsAdult (and CanGetNightTimeGS (CanKillEnemy RE_GOLD_SKULLTULA)))
RR_KAK_IMPAS_LEDGE true
RR_KAKARIKO_VILLAGE true
def RR_KAK_BEHIND_GATE SCENE_KAKARIKO_VILLAGE true RA_KAKARIKO_VILLAGE
Kak Behind Gate
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
RC_KAK_NEAR_MEDICINE_SHOP_POT_1 (and IsChild CanBreakPots)
RC_KAK_NEAR_MEDICINE_SHOP_POT_2 (and IsChild CanBreakPots)
RR_KAKARIKO_VILLAGE true
RR_KAK_OPEN_GROTTO true
RR_KAK_ODD_POTION_BUILDING (and IsAdult (CanOpenOverworldDoor RG_GRANNYS_POTION_SHOP_KEY))
RR_KAK_POTION_SHOP_BACK (and IsAdult (and AtDay (CanOpenOverworldDoor RG_KAK_POTION_SHOP_KEY)))
def RR_KAK_WELL SCENE_KAKARIKO_VILLAGE true RA_KAKARIKO_VILLAGE
Kak Well
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
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)))
RR_KAK_BACKYARD true
def RR_KAK_REDEAD_GROTTO SCENE_GROTTOS false
Kak Redead Grotto
RC_KAK_REDEAD_GROTTO_CHEST (CanKillEnemy RE_REDEAD ED_CLOSE true 2)
RR_KAKARIKO_VILLAGE true
def RR_KAK_OPEN_GROTTO SCENE_GROTTOS false
Kak Open Grotto
GossipStoneFairy CallGossipFairy
ButterflyFairy (CanUse RG_STICKS)
BugShrub CanCutShrubs
LoneFish true
RC_KAK_OPEN_GROTTO_CHEST true
RC_KAK_OPEN_GROTTO_FISH HasBottle
RC_KAK_OPEN_GROTTO_GOSSIP_STONE_FAIRY CallGossipFairy
RC_KAK_OPEN_GROTTO_GOSSIP_STONE_FAIRY_BIG (CanUse RG_SONG_OF_STORMS)
RC_KAK_OPEN_GROTTO_GOSSIP_STONE true
RC_KAK_OPEN_GROTTO_BEEHIVE_LEFT CanBreakLowerBeehives
RC_KAK_OPEN_GROTTO_BEEHIVE_RIGHT CanBreakLowerBeehives
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
RR_KAK_BACKYARD true

View file

@ -0,0 +1,158 @@
def RR_KOKIRI_FOREST SCENE_KOKIRI_FOREST false RA_KOKIRI_FOREST
Kokiri Forest
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)))
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)
RC_KF_GS_HOUSE_OF_TWINS (and IsAdult (and (or HookshotOrBoomerang (and RT_KF_ADULT_GS (CanUse RG_HOVER_BOOTS))) CanGetNightTimeGS))
RC_KF_BEAN_SPROUT_FAIRY_1 (and IsChild (and (CanUse RG_MAGIC_BEAN) (CanUse RG_SONG_OF_STORMS)))
RC_KF_BEAN_SPROUT_FAIRY_2 (and IsChild (and (CanUse RG_MAGIC_BEAN) (CanUse RG_SONG_OF_STORMS)))
RC_KF_BEAN_SPROUT_FAIRY_3 (and IsChild (and (CanUse RG_MAGIC_BEAN) (CanUse RG_SONG_OF_STORMS)))
RC_KF_GOSSIP_STONE_FAIRY CallGossipFairyExceptSuns
RC_KF_GOSSIP_STONE_FAIRY_BIG (CanUse RG_SONG_OF_STORMS)
RC_KF_BRIDGE_RUPEE IsChild
RC_KF_BEHIND_MIDOS_RUPEE IsChild
RC_KF_SOUTH_GRASS_WEST_RUPEE IsChild
RC_KF_SOUTH_GRASS_EAST_RUPEE IsChild
RC_KF_NORTH_GRASS_WEST_RUPEE IsChild
RC_KF_NORTH_GRASS_EAST_RUPEE IsChild
RC_KF_BOULDER_RUPEE_1 IsChild
RC_KF_BOULDER_RUPEE_2 IsChild
RC_KF_BEAN_RUPEE_1 (and IsAdult (or (CanPlantBean RR_KOKIRI_FOREST) (or (CanUse RG_HOVER_BOOTS) (CanUse RG_BOOMERANG))))
RC_KF_BEAN_RUPEE_2 (and IsAdult (or (CanPlantBean RR_KOKIRI_FOREST) (or (CanUse RG_HOVER_BOOTS) (CanUse RG_BOOMERANG))))
RC_KF_BEAN_RUPEE_3 (and IsAdult (or (CanPlantBean RR_KOKIRI_FOREST) (or (CanUse RG_HOVER_BOOTS) (CanUse RG_BOOMERANG))))
RC_KF_BEAN_RUPEE_4 (and IsAdult (or (CanPlantBean RR_KOKIRI_FOREST) (or (CanUse RG_HOVER_BOOTS) (CanUse RG_BOOMERANG))))
RC_KF_BEAN_RUPEE_5 (and IsAdult (or (CanPlantBean RR_KOKIRI_FOREST) (or (CanUse RG_HOVER_BOOTS) (CanUse RG_BOOMERANG))))
RC_KF_BEAN_RUPEE_6 (and IsAdult (or (CanPlantBean RR_KOKIRI_FOREST) (or (CanUse RG_HOVER_BOOTS) (CanUse RG_BOOMERANG))))
RC_KF_BEAN_RED_RUPEE (and IsAdult (or (CanPlantBean RR_KOKIRI_FOREST) (or (CanUse RG_HOVER_BOOTS) (CanUse RG_BOOMERANG))))
RC_KF_SARIAS_ROOF_WEST_HEART IsChild
RC_KF_SARIAS_ROOF_EAST_HEART IsChild
RC_KF_SARIAS_ROOF_NORTH_HEART IsChild
RC_KF_GOSSIP_STONE true
RC_KF_CHILD_GRASS_1 (and IsChild CanCutShrubs)
RC_KF_CHILD_GRASS_2 (and IsChild CanCutShrubs)
RC_KF_CHILD_GRASS_3 (and IsChild CanCutShrubs)
RC_KF_CHILD_GRASS_4 (and IsChild CanCutShrubs)
RC_KF_CHILD_GRASS_5 (and IsChild CanCutShrubs)
RC_KF_CHILD_GRASS_6 (and IsChild CanCutShrubs)
RC_KF_CHILD_GRASS_7 (and IsChild CanCutShrubs)
RC_KF_CHILD_GRASS_8 (and IsChild CanCutShrubs)
RC_KF_CHILD_GRASS_9 (and IsChild CanCutShrubs)
RC_KF_CHILD_GRASS_10 (and IsChild CanCutShrubs)
RC_KF_CHILD_GRASS_11 (and IsChild CanCutShrubs)
RC_KF_CHILD_GRASS_12 (and IsChild CanCutShrubs)
RC_KF_CHILD_GRASS_MAZE_1 (and IsChild CanCutShrubs)
RC_KF_CHILD_GRASS_MAZE_2 (and IsChild CanCutShrubs)
RC_KF_CHILD_GRASS_MAZE_3 (and IsChild CanCutShrubs)
RC_KF_ADULT_GRASS_1 (and IsAdult CanCutShrubs)
RC_KF_ADULT_GRASS_2 (and IsAdult CanCutShrubs)
RC_KF_ADULT_GRASS_3 (and IsAdult CanCutShrubs)
RC_KF_ADULT_GRASS_4 (and IsAdult CanCutShrubs)
RC_KF_ADULT_GRASS_5 (and IsAdult CanCutShrubs)
RC_KF_ADULT_GRASS_6 (and IsAdult CanCutShrubs)
RC_KF_ADULT_GRASS_7 (and IsAdult CanCutShrubs)
RC_KF_ADULT_GRASS_8 (and IsAdult CanCutShrubs)
RC_KF_ADULT_GRASS_9 (and IsAdult CanCutShrubs)
RC_KF_ADULT_GRASS_10 (and IsAdult CanCutShrubs)
RC_KF_ADULT_GRASS_11 (and IsAdult CanCutShrubs)
RC_KF_ADULT_GRASS_12 (and IsAdult CanCutShrubs)
RC_KF_ADULT_GRASS_13 (and IsAdult CanCutShrubs)
RC_KF_ADULT_GRASS_14 (and IsAdult CanCutShrubs)
RC_KF_ADULT_GRASS_15 (and IsAdult CanCutShrubs)
RC_KF_ADULT_GRASS_16 (and IsAdult CanCutShrubs)
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)
RR_KF_LINKS_HOUSE true
RR_KF_MIDOS_HOUSE true
RR_KF_SARIAS_HOUSE true
RR_KF_HOUSE_OF_TWINS true
RR_KF_KNOW_IT_ALL_HOUSE true
RR_KF_KOKIRI_SHOP true
RR_KF_OUTSIDE_DEKU_TREE (or (and IsAdult (or (CanPassEnemy RE_BIG_SKULLTULA) ForestTempleClear)) (or (== RSK_FOREST RO_CLOSED_FOREST_OFF) ShowedMidoSwordAndShield))
RR_THE_LOST_WOODS true
RR_LW_BRIDGE_FROM_FOREST (or IsAdult (or (!= RSK_FOREST RO_CLOSED_FOREST_ON) DekuTreeClear))
RR_KF_STORMS_GROTTO CanOpenStormsGrotto
def RR_KF_LINKS_HOUSE SCENE_LINKS_HOUSE false
KF Link's House
RC_KF_LINKS_HOUSE_COW (and IsAdult (and (CanUse RG_EPONAS_SONG) LinksCow))
RC_KF_LINKS_HOUSE_POT CanBreakPots
RR_KOKIRI_FOREST true
def RR_KF_MIDOS_HOUSE SCENE_MIDOS_HOUSE false
KF Mido's House
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
RR_KOKIRI_FOREST true
def RR_KF_SARIAS_HOUSE SCENE_SARIAS_HOUSE false
KF Saria's House
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
RR_KOKIRI_FOREST true
def RR_KF_HOUSE_OF_TWINS SCENE_TWINS_HOUSE false
KF House of Twins
RC_KF_TWINS_HOUSE_POT_1 CanBreakPots
RC_KF_TWINS_HOUSE_POT_2 CanBreakPots
RR_KOKIRI_FOREST true
def RR_KF_KNOW_IT_ALL_HOUSE SCENE_KNOW_IT_ALL_BROS_HOUSE false
KF Know It All House
RC_KF_BROTHERS_HOUSE_POT_1 CanBreakPots
RC_KF_BROTHERS_HOUSE_POT_2 CanBreakPots
RR_KOKIRI_FOREST true
def RR_KF_KOKIRI_SHOP SCENE_KOKIRI_SHOP false
KF Kokiri Shop
RC_KF_SHOP_ITEM_1 true
RC_KF_SHOP_ITEM_2 true
RC_KF_SHOP_ITEM_3 true
RC_KF_SHOP_ITEM_4 true
RC_KF_SHOP_ITEM_5 true
RC_KF_SHOP_ITEM_6 true
RC_KF_SHOP_ITEM_7 true
RC_KF_SHOP_ITEM_8 true
RR_KOKIRI_FOREST true
def RR_KF_OUTSIDE_DEKU_TREE SCENE_KOKIRI_FOREST false RA_KOKIRI_FOREST
KF Outside Deku Tree
DekuBabaSticks CanGetDekuBabaSticks
DekuBabaNuts CanGetDekuBabaNuts
ShowedMidoSwordAndShield (and IsChild (and (CanUse RG_KOKIRI_SWORD) (CanUse RG_DEKU_SHIELD)))
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
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
GossipStoneFairy CallGossipFairy
ButterflyFairy (CanUse RG_STICKS)
BugShrub CanCutShrubs
LoneFish true
RC_KF_STORMS_GROTTO_CHEST true
RC_KF_STORMS_GROTTO_FISH HasBottle
RC_KF_STORMS_GROTTO_GOSSIP_STONE_FAIRY CallGossipFairy
RC_KF_STORMS_GROTTO_GOSSIP_STONE_FAIRY_BIG (CanUse RG_SONG_OF_STORMS)
RC_KF_STORMS_GROTTO_GOSSIP_STONE true
RC_KF_STORMS_GROTTO_BEEHIVE_LEFT CanBreakLowerBeehives
RC_KF_STORMS_GROTTO_BEEHIVE_RIGHT CanBreakLowerBeehives
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
RR_KOKIRI_FOREST true

View file

@ -0,0 +1,160 @@
def RR_LAKE_HYLIA SCENE_LAKE_HYLIA true RA_LAKE_HYLIA
Lake Hylia
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)))
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)))
RC_LH_GS_BEAN_PATCH (and CanSpawnSoilSkull (CanGetEnemyDrop RE_GOLD_SKULLTULA))
RC_LH_GS_LAB_WALL (and IsChild (and (or (CanGetEnemyDrop RE_GOLD_SKULLTULA ED_BOOMERANG) (and RT_LH_LAB_WALL_GS CanJumpslashExceptHammer)) CanGetNightTimeGS))
RC_LH_GS_SMALL_ISLAND (and IsChild (and (CanGetEnemyDrop RE_GOLD_SKULLTULA) (and CanGetNightTimeGS (HasItem RG_BRONZE_SCALE))))
RC_LH_GS_TREE (and IsAdult (and (CanUse RG_LONGSHOT) CanGetNightTimeGS))
RC_LH_FRONT_RUPEE (and IsChild (HasItem RG_BRONZE_SCALE))
RC_LH_MIDDLE_RUPEE (and IsChild (or (HasItem RG_SILVER_SCALE) (CanUse RG_IRON_BOOTS)))
RC_LH_BACK_RUPEE (and IsChild (or (HasItem RG_SILVER_SCALE) (CanUse RG_IRON_BOOTS)))
RC_LH_BEAN_SPROUT_FAIRY_1 (and IsChild (and (CanUse RG_MAGIC_BEAN) (CanUse RG_SONG_OF_STORMS)))
RC_LH_BEAN_SPROUT_FAIRY_2 (and IsChild (and (CanUse RG_MAGIC_BEAN) (CanUse RG_SONG_OF_STORMS)))
RC_LH_BEAN_SPROUT_FAIRY_3 (and IsChild (and (CanUse RG_MAGIC_BEAN) (CanUse RG_SONG_OF_STORMS)))
RC_LH_LAB_GOSSIP_STONE_FAIRY CallGossipFairy
RC_LH_LAB_GOSSIP_STONE_FAIRY_BIG (CanUse RG_SONG_OF_STORMS)
//You can walk along the edge of the lake to get these without swimming, the fairy is created going backwards, which is convenient here
RC_LH_SOUTHEAST_GOSSIP_STONE_FAIRY CallGossipFairy
RC_LH_SOUTHEAST_GOSSIP_STONE_FAIRY_BIG (CanUse RG_SONG_OF_STORMS)
RC_LH_SOUTHWEST_GOSSIP_STONE_FAIRY CallGossipFairy
RC_LH_SOUTHWEST_GOSSIP_STONE_FAIRY_BIG (CanUse RG_SONG_OF_STORMS)
RC_LH_ISLAND_SUN_FAIRY (and (CanUse RG_SUNS_SONG) (or (and (HasItem RG_BRONZE_SCALE) (or IsChild WaterTempleClear)) (CanUse RG_DISTANT_SCARECROW)))
RC_LH_LAB_GOSSIP_STONE true
RC_LH_SOUTHEAST_GOSSIP_STONE true
RC_LH_SOUTHWEST_GOSSIP_STONE true
RC_LH_GRASS_1 CanCutShrubs
RC_LH_GRASS_2 CanCutShrubs
RC_LH_GRASS_3 CanCutShrubs
RC_LH_GRASS_4 CanCutShrubs
RC_LH_GRASS_5 CanCutShrubs
RC_LH_GRASS_6 CanCutShrubs
RC_LH_GRASS_7 CanCutShrubs
RC_LH_GRASS_8 CanCutShrubs
RC_LH_GRASS_9 CanCutShrubs
RC_LH_GRASS_10 CanCutShrubs
RC_LH_GRASS_11 CanCutShrubs
RC_LH_GRASS_12 CanCutShrubs
RC_LH_GRASS_13 CanCutShrubs
RC_LH_GRASS_14 CanCutShrubs
RC_LH_GRASS_15 CanCutShrubs
RC_LH_GRASS_16 CanCutShrubs
RC_LH_GRASS_17 CanCutShrubs
RC_LH_GRASS_18 CanCutShrubs
RC_LH_GRASS_19 CanCutShrubs
RC_LH_GRASS_20 CanCutShrubs
RC_LH_GRASS_21 CanCutShrubs
RC_LH_GRASS_22 CanCutShrubs
RC_LH_GRASS_23 CanCutShrubs
RC_LH_GRASS_24 CanCutShrubs
RC_LH_GRASS_25 CanCutShrubs
RC_LH_GRASS_26 CanCutShrubs
RC_LH_GRASS_27 CanCutShrubs
RC_LH_GRASS_28 CanCutShrubs
RC_LH_GRASS_29 CanCutShrubs
RC_LH_GRASS_30 CanCutShrubs
RC_LH_GRASS_31 CanCutShrubs
RC_LH_GRASS_32 CanCutShrubs
RC_LH_GRASS_33 CanCutShrubs
RC_LH_GRASS_34 CanCutShrubs
RC_LH_GRASS_35 CanCutShrubs
RC_LH_GRASS_36 CanCutShrubs
RC_LH_CHILD_GRASS_1 (and IsChild CanCutShrubs)
RC_LH_CHILD_GRASS_2 (and IsChild CanCutShrubs)
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
RR_HYRULE_FIELD true
RR_LH_FROM_SHORTCUT true
RR_LH_OWL_FLIGHT @deprioritize IsChild
RR_LH_FISHING_ISLAND (or (and (or IsChild WaterTempleClear) (HasItem RG_BRONZE_SCALE)) (and IsAdult (or (CanUse RG_SCARECROW) (CanPlantBean RR_LAKE_HYLIA))))
RR_LH_LAB (CanOpenOverworldDoor RG_HYLIA_LAB_KEY)
RR_LH_FROM_WATER_TEMPLE true
RR_LH_GROTTO true
def RR_LH_FROM_SHORTCUT SCENE_LAKE_HYLIA false RA_LAKE_HYLIA
LH From Shortcut
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
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
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
RR_HYRULE_FIELD @deprioritize true
def RR_LH_LAB SCENE_LAKESIDE_LABORATORY false
LH Lab
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))
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)
RR_LAKE_HYLIA true
def RR_LH_FISHING_POND SCENE_FISHING_POND false
LH Fishing Hole
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)))
RC_LH_CHILD_FISH_3 (and (CanUse RG_FISHING_POLE) (or IsChild (not RSK_FISHSANITY_AGE_SPLIT)))
RC_LH_CHILD_FISH_4 (and (CanUse RG_FISHING_POLE) (or IsChild (not RSK_FISHSANITY_AGE_SPLIT)))
RC_LH_CHILD_FISH_5 (and (CanUse RG_FISHING_POLE) (or IsChild (not RSK_FISHSANITY_AGE_SPLIT)))
RC_LH_CHILD_FISH_6 (and (CanUse RG_FISHING_POLE) (or IsChild (not RSK_FISHSANITY_AGE_SPLIT)))
RC_LH_CHILD_FISH_7 (and (CanUse RG_FISHING_POLE) (or IsChild (not RSK_FISHSANITY_AGE_SPLIT)))
RC_LH_CHILD_FISH_8 (and (CanUse RG_FISHING_POLE) (or IsChild (not RSK_FISHSANITY_AGE_SPLIT)))
RC_LH_CHILD_FISH_9 (and (CanUse RG_FISHING_POLE) (or IsChild (not RSK_FISHSANITY_AGE_SPLIT)))
RC_LH_CHILD_FISH_10 (and (CanUse RG_FISHING_POLE) (or IsChild (not RSK_FISHSANITY_AGE_SPLIT)))
RC_LH_CHILD_FISH_11 (and (CanUse RG_FISHING_POLE) (or IsChild (not RSK_FISHSANITY_AGE_SPLIT)))
RC_LH_CHILD_FISH_12 (and (CanUse RG_FISHING_POLE) (or IsChild (not RSK_FISHSANITY_AGE_SPLIT)))
RC_LH_CHILD_FISH_13 (and (CanUse RG_FISHING_POLE) (or IsChild (not RSK_FISHSANITY_AGE_SPLIT)))
RC_LH_CHILD_FISH_14 (and (CanUse RG_FISHING_POLE) (or IsChild (not RSK_FISHSANITY_AGE_SPLIT)))
RC_LH_CHILD_FISH_15 (and (CanUse RG_FISHING_POLE) (or IsChild (not RSK_FISHSANITY_AGE_SPLIT)))
RC_LH_CHILD_LOACH_1 (and (CanUse RG_FISHING_POLE) (or IsChild (not RSK_FISHSANITY_AGE_SPLIT)))
RC_LH_CHILD_LOACH_2 (and (CanUse RG_FISHING_POLE) (or IsChild (not RSK_FISHSANITY_AGE_SPLIT)))
RC_LH_ADULT_FISHING (and (CanUse RG_FISHING_POLE) IsAdult)
RC_LH_ADULT_FISH_1 (and (CanUse RG_FISHING_POLE) (and IsAdult RSK_FISHSANITY_AGE_SPLIT))
RC_LH_ADULT_FISH_2 (and (CanUse RG_FISHING_POLE) (and IsAdult RSK_FISHSANITY_AGE_SPLIT))
RC_LH_ADULT_FISH_3 (and (CanUse RG_FISHING_POLE) (and IsAdult RSK_FISHSANITY_AGE_SPLIT))
RC_LH_ADULT_FISH_4 (and (CanUse RG_FISHING_POLE) (and IsAdult RSK_FISHSANITY_AGE_SPLIT))
RC_LH_ADULT_FISH_5 (and (CanUse RG_FISHING_POLE) (and IsAdult RSK_FISHSANITY_AGE_SPLIT))
RC_LH_ADULT_FISH_6 (and (CanUse RG_FISHING_POLE) (and IsAdult RSK_FISHSANITY_AGE_SPLIT))
RC_LH_ADULT_FISH_7 (and (CanUse RG_FISHING_POLE) (and IsAdult RSK_FISHSANITY_AGE_SPLIT))
RC_LH_ADULT_FISH_8 (and (CanUse RG_FISHING_POLE) (and IsAdult RSK_FISHSANITY_AGE_SPLIT))
RC_LH_ADULT_FISH_9 (and (CanUse RG_FISHING_POLE) (and IsAdult RSK_FISHSANITY_AGE_SPLIT))
RC_LH_ADULT_FISH_10 (and (CanUse RG_FISHING_POLE) (and IsAdult RSK_FISHSANITY_AGE_SPLIT))
RC_LH_ADULT_FISH_11 (and (CanUse RG_FISHING_POLE) (and IsAdult RSK_FISHSANITY_AGE_SPLIT))
RC_LH_ADULT_FISH_12 (and (CanUse RG_FISHING_POLE) (and IsAdult RSK_FISHSANITY_AGE_SPLIT))
RC_LH_ADULT_FISH_13 (and (CanUse RG_FISHING_POLE) (and IsAdult RSK_FISHSANITY_AGE_SPLIT))
RC_LH_ADULT_FISH_14 (and (CanUse RG_FISHING_POLE) (and IsAdult RSK_FISHSANITY_AGE_SPLIT))
RC_LH_ADULT_FISH_15 (and (CanUse RG_FISHING_POLE) (and IsAdult RSK_FISHSANITY_AGE_SPLIT))
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
RR_LH_FISHING_ISLAND true
def RR_LH_GROTTO SCENE_GROTTOS false
LH Grotto
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
RR_LAKE_HYLIA true

View file

@ -0,0 +1,51 @@
def RR_LON_LON_RANCH SCENE_LON_LON_RANCH true RA_LON_LON_RANCH
Lon Lon Ranch
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)))
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)
RC_LLR_GS_HOUSE_WINDOW (and IsChild (and HookshotOrBoomerang CanGetNightTimeGS))
RC_LLR_GS_BACK_WALL (and IsChild (and HookshotOrBoomerang CanGetNightTimeGS))
RC_LLR_FRONT_POT_1 (and IsChild CanBreakPots)
RC_LLR_FRONT_POT_2 (and IsChild CanBreakPots)
RC_LLR_FRONT_POT_3 (and IsChild CanBreakPots)
RC_LLR_FRONT_POT_4 (and IsChild CanBreakPots)
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)
RR_HYRULE_FIELD true
RR_LLR_TALONS_HOUSE (CanOpenOverworldDoor RG_TALONS_HOUSE_KEY)
RR_LLR_STABLES (CanOpenOverworldDoor RG_STABLES_KEY)
RR_LLR_TOWER (CanOpenOverworldDoor RG_BACK_TOWER_KEY)
RR_LLR_GROTTO IsChild
def RR_LLR_TALONS_HOUSE SCENE_LON_LON_BUILDINGS false
LLR Talons House
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
RR_LON_LON_RANCH true
def RR_LLR_STABLES SCENE_STABLE false
LLR Stables
RC_LLR_STABLES_LEFT_COW (CanUse RG_EPONAS_SONG)
RC_LLR_STABLES_RIGHT_COW (CanUse RG_EPONAS_SONG)
RR_LON_LON_RANCH true
def RR_LLR_TOWER SCENE_LON_LON_BUILDINGS false
LLR Tower
RC_LLR_FREESTANDING_POH IsChild
RC_LLR_TOWER_LEFT_COW (CanUse RG_EPONAS_SONG)
RC_LLR_TOWER_RIGHT_COW (CanUse RG_EPONAS_SONG)
RR_LON_LON_RANCH true
def RR_LLR_GROTTO SCENE_GROTTOS false
LLR Grotto
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
RR_LON_LON_RANCH true

View file

@ -0,0 +1,119 @@
def RR_THE_LOST_WOODS SCENE_LOST_WOODS false RA_THE_LOST_WOODS
Lost Woods
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))))
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
RC_LW_TRADE_ODD_POTION (and IsAdult (CanUse RG_ODD_POTION))
//all 5 buttons are logically required for memory game
//because the chances of being able to beat it
//every time you attempt it are as follows:
//0 or 1 button(s) => 0%
//2 buttons => 0.15625%
//3 buttons => 3.75%
//4 buttons => 25.3125%
//5 buttons => 100%
RC_LW_OCARINA_MEMORY_GAME (and IsChild (and (HasItem RG_FAIRY_OCARINA) (>= OcarinaButtons 5)))
RC_LW_TARGET_IN_WOODS (and IsChild (CanUse RG_FAIRY_SLINGSHOT))
RC_LW_DEKU_SCRUB_NEAR_BRIDGE (and IsChild CanStunDeku)
RC_LW_GS_BEAN_PATCH_NEAR_BRIDGE (and CanSpawnSoilSkull CanAttack)
//RANDOTODO handle collecting some of these as you leave the shortcut from the other side
RC_LW_SHORTCUT_RUPEE_1 (and IsChild (or (HasItem RG_SILVER_SCALE) (CanUse RG_IRON_BOOTS)))
RC_LW_SHORTCUT_RUPEE_2 (and IsChild (or (HasItem RG_SILVER_SCALE) (CanUse RG_IRON_BOOTS)))
RC_LW_SHORTCUT_RUPEE_3 (and IsChild (or (HasItem RG_SILVER_SCALE) (CanUse RG_IRON_BOOTS)))
RC_LW_SHORTCUT_RUPEE_4 (and IsChild (or (HasItem RG_SILVER_SCALE) (CanUse RG_IRON_BOOTS)))
RC_LW_SHORTCUT_RUPEE_5 (and IsChild (or (HasItem RG_SILVER_SCALE) (CanUse RG_IRON_BOOTS)))
RC_LW_SHORTCUT_RUPEE_6 (and IsChild (or (HasItem RG_SILVER_SCALE) (CanUse RG_IRON_BOOTS)))
RC_LW_SHORTCUT_RUPEE_7 (and IsChild (or (HasItem RG_SILVER_SCALE) (CanUse RG_IRON_BOOTS)))
RC_LW_SHORTCUT_RUPEE_8 (and IsChild (or (HasItem RG_SILVER_SCALE) (CanUse RG_IRON_BOOTS)))
RC_LW_BEAN_SPROUT_NEAR_BRIDGE_FAIRY_1 (and IsChild (and (CanUse RG_MAGIC_BEAN) (CanUse RG_SONG_OF_STORMS)))
RC_LW_BEAN_SPROUT_NEAR_BRIDGE_FAIRY_2 (and IsChild (and (CanUse RG_MAGIC_BEAN) (CanUse RG_SONG_OF_STORMS)))
RC_LW_BEAN_SPROUT_NEAR_BRIDGE_FAIRY_3 (and IsChild (and (CanUse RG_MAGIC_BEAN) (CanUse RG_SONG_OF_STORMS)))
RC_LW_GOSSIP_STONE_FAIRY CallGossipFairyExceptSuns
RC_LW_GOSSIP_STONE_FAIRY_BIG (CanUse RG_SONG_OF_STORMS)
RC_LW_SHORTCUT_STORMS_FAIRY (CanUse RG_SONG_OF_STORMS)
RC_LW_GOSSIP_STONE true
RC_LW_GRASS_1 CanCutShrubs
RC_LW_GRASS_2 CanCutShrubs
RC_LW_GRASS_3 CanCutShrubs
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)))
RR_ZR_FROM_SHORTCUT (or (HasItem RG_SILVER_SCALE) (or (CanUse RG_IRON_BOOTS) (and RT_LOST_WOOD_NAVI_DIVE (and IsChild (and (HasItem RG_BRONZE_SCALE) CanJumpslash)))))
RR_LW_BEYOND_MIDO (or IsChild (or (CanUse RG_SARIAS_SONG) RT_LW_MIDO_BACKFLIP))
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
RC_LW_GIFT_FROM_SARIA true
RR_LW_BRIDGE true
def RR_LW_BRIDGE SCENE_LOST_WOODS false RA_THE_LOST_WOODS
LW Bridge
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
RR_KOKIRI_FOREST true
def RR_LW_BEYOND_MIDO SCENE_LOST_WOODS false RA_THE_LOST_WOODS
LW Beyond Mido
ButterflyFairy (CanUse RG_STICKS)
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))
RC_LW_GS_BEAN_PATCH_NEAR_THEATER (and CanSpawnSoilSkull (or CanAttack (and (== RSK_SHUFFLE_SCRUBS RO_SCRUBS_OFF) CanReflectNuts)))
RC_LW_BOULDER_RUPEE BlastOrSmash
RC_LW_BEAN_SPROUT_NEAR_THEATER_FAIRY_1 (and IsChild (and (HasItem RG_MAGIC_BEAN) (CanUse RG_SONG_OF_STORMS)))
RC_LW_BEAN_SPROUT_NEAR_THEATER_FAIRY_2 (and IsChild (and (HasItem RG_MAGIC_BEAN) (CanUse RG_SONG_OF_STORMS)))
RC_LW_BEAN_SPROUT_NEAR_THEATER_FAIRY_3 (and IsChild (and (HasItem RG_MAGIC_BEAN) (CanUse RG_SONG_OF_STORMS)))
RC_LW_GRASS_4 CanCutShrubs
RC_LW_GRASS_5 CanCutShrubs
RC_LW_GRASS_6 CanCutShrubs
RC_LW_GRASS_7 CanCutShrubs
RC_LW_GRASS_8 CanCutShrubs
RC_LW_GRASS_9 CanCutShrubs
RR_LW_FOREST_EXIT true
RR_THE_LOST_WOODS (or IsChild (CanUse RG_SARIAS_SONG))
RR_SFM_ENTRYWAY true
RR_DEKU_THEATER true
RR_LW_SCRUBS_GROTTO (Here BlastOrSmash)
def RR_LW_NEAR_SHORTCUTS_GROTTO SCENE_GROTTOS false
LW Near Shortcuts Grotto
GossipStoneFairy CallGossipFairy
ButterflyFairy (CanUse RG_STICKS)
BugShrub CanCutShrubs
LoneFish true
RC_LW_NEAR_SHORTCUTS_GROTTO_CHEST true
RC_LW_NEAR_SHORTCUTS_GROTTO_FISH HasBottle
RC_LW_NEAR_SHORTCUTS_GROTTO_GOSSIP_STONE_FAIRY CallGossipFairy
RC_LW_NEAR_SHORTCUTS_GROTTO_GOSSIP_STONE_FAIRY_BIG (CanUse RG_SONG_OF_STORMS)
RC_LW_NEAR_SHORTCUTS_GROTTO_GOSSIP_STONE true
RC_LW_NEAR_SHORTCUTS_GROTTO_BEEHIVE_LEFT CanBreakLowerBeehives
RC_LW_NEAR_SHORTCUTS_GROTTO_BEEHIVE_RIGHT CanBreakLowerBeehives
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
RR_THE_LOST_WOODS true
def RR_DEKU_THEATER SCENE_GROTTOS false
Deku Theater
RC_DEKU_THEATER_SKULL_MASK (and IsChild BorrowSkullMask)
RC_DEKU_THEATER_MASK_OF_TRUTH (and IsChild BorrowRightMasks)
RR_LW_BEYOND_MIDO true
def RR_LW_SCRUBS_GROTTO SCENE_GROTTOS false
LW Scrubs Grotto
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)
RR_LW_BEYOND_MIDO true

View file

@ -0,0 +1,229 @@
def RR_MARKET_ENTRANCE SCENE_MARKET_ENTRANCE_DAY false RA_THE_MARKET
Market Entrance
RR_HYRULE_FIELD (or IsAdult AtDay)
RR_THE_MARKET true
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
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)))
RC_MARKET_GRASS_4 (and IsChild (or CanUseSword (HasItem RG_GORONS_BRACELET)))
RC_MARKET_GRASS_5 (and IsChild (or CanUseSword (HasItem RG_GORONS_BRACELET)))
RC_MARKET_GRASS_6 (and IsChild (or CanUseSword (HasItem RG_GORONS_BRACELET)))
RC_MARKET_GRASS_7 (and IsChild (or CanUseSword (HasItem RG_GORONS_BRACELET)))
RC_MARKET_GRASS_8 (and IsChild (or CanUseSword (HasItem RG_GORONS_BRACELET)))
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
RR_MARKET_ENTRANCE true
RR_TOT_ENTRANCE true
RR_CASTLE_GROUNDS true
RR_MARKET_BAZAAR (and IsChild (and AtDay (CanOpenOverworldDoor RG_MARKET_BAZAAR_KEY)))
RR_MARKET_MASK_SHOP (and IsChild (and AtDay (CanOpenOverworldDoor RG_MASK_SHOP_KEY)))
RR_MARKET_SHOOTING_GALLERY (and IsChild (and AtDay (CanOpenOverworldDoor RG_MARKET_SHOOTING_GALLERY_KEY)))
RR_MARKET_BOMBCHU_BOWLING (and IsChild (CanOpenOverworldDoor RG_BOMBCHU_BOWLING_KEY))
RR_MARKET_TREASURE_CHEST_GAME (and IsChild (and AtNight (CanOpenOverworldDoor RG_TREASURE_CHEST_GAME_BUILDING_KEY)))
RR_MARKET_POTION_SHOP (and IsChild (and AtDay (CanOpenOverworldDoor RG_MARKET_POTION_SHOP_KEY)))
RR_MARKET_BACK_ALLEY IsChild
def RR_MARKET_GUARD_HOUSE SCENE_MARKET_GUARD_HOUSE false
Market Guard House
CanEmptyBigPoes IsAdult
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)
RC_MK_GUARD_HOUSE_CHILD_POT_2 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_3 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_4 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_5 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_6 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_7 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_8 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_9 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_10 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_11 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_12 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_13 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_14 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_15 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_16 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_17 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_18 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_19 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_20 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_21 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_22 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_23 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_24 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_25 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_26 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_27 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_28 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_29 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_30 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_31 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_32 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_33 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_34 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_35 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_36 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_37 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_38 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_39 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_40 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_41 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_42 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_43 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_CHILD_POT_44 (and IsChild CanBreakPots)
RC_MK_GUARD_HOUSE_ADULT_POT_1 (and IsAdult CanBreakPots)
RC_MK_GUARD_HOUSE_ADULT_POT_2 (and IsAdult CanBreakPots)
RC_MK_GUARD_HOUSE_ADULT_POT_3 (and IsAdult CanBreakPots)
RC_MK_GUARD_HOUSE_ADULT_POT_4 (and IsAdult CanBreakPots)
RC_MK_GUARD_HOUSE_ADULT_POT_5 (and IsAdult CanBreakPots)
RC_MK_GUARD_HOUSE_ADULT_POT_6 (and IsAdult CanBreakPots)
RC_MK_GUARD_HOUSE_ADULT_POT_7 (and IsAdult CanBreakPots)
RC_MK_GUARD_HOUSE_ADULT_POT_8 (and IsAdult CanBreakPots)
RC_MK_GUARD_HOUSE_ADULT_POT_9 (and IsAdult CanBreakPots)
RC_MK_GUARD_HOUSE_ADULT_POT_10 (and IsAdult CanBreakPots)
RC_MK_GUARD_HOUSE_ADULT_POT_11 (and IsAdult CanBreakPots)
RC_MK_GUARD_HOUSE_CRATE_1 (and IsChild CanBreakCrates)
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)
RR_MARKET_ENTRANCE true
def RR_MARKET_BAZAAR SCENE_BAZAAR false
Market Bazaar
RC_MARKET_BAZAAR_ITEM_1 true
RC_MARKET_BAZAAR_ITEM_2 true
RC_MARKET_BAZAAR_ITEM_3 true
RC_MARKET_BAZAAR_ITEM_4 true
RC_MARKET_BAZAAR_ITEM_5 true
RC_MARKET_BAZAAR_ITEM_6 true
RC_MARKET_BAZAAR_ITEM_7 true
RC_MARKET_BAZAAR_ITEM_8 true
RR_THE_MARKET true
def RR_MARKET_MASK_SHOP SCENE_HAPPY_MASK_SHOP false
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
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)
RC_MASK_SHOP_HINT true
RR_THE_MARKET true
def RR_MARKET_SHOOTING_GALLERY SCENE_SHOOTING_GALLERY false
Market Shooting Gallery
RC_MARKET_SHOOTING_GALLERY_REWARD (and IsChild (HasItem RG_CHILD_WALLET))
RR_THE_MARKET true
def RR_MARKET_BOMBCHU_BOWLING SCENE_BOMBCHU_BOWLING_ALLEY false
Market Bombchu Bowling
CouldPlayBowling (HasItem RG_CHILD_WALLET)
RC_MARKET_BOMBCHU_BOWLING_FIRST_PRIZE (and CouldPlayBowling BombchusEnabled)
RC_MARKET_BOMBCHU_BOWLING_SECOND_PRIZE (and CouldPlayBowling BombchusEnabled)
RR_THE_MARKET true
def RR_MARKET_TREASURE_CHEST_GAME SCENE_TREASURE_BOX_SHOP false
Market Treasure Chest Game
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 RR_MARKET_TREASURE_CHEST_GAME 6)) (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_PACK) (SmallKeys RR_MARKET_TREASURE_CHEST_GAME 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 RR_MARKET_TREASURE_CHEST_GAME 1)) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_PACK) (SmallKeys RR_MARKET_TREASURE_CHEST_GAME 1)) (and (CanUse RG_LENS_OF_TRUTH) (not RSK_SHUFFLE_CHEST_MINIGAME)))))
RC_MARKET_TREASURE_CHEST_GAME_ITEM_1 (and (HasItem RG_CHILD_WALLET) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_SINGLE_KEYS) (SmallKeys RR_MARKET_TREASURE_CHEST_GAME 1)) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_PACK) (SmallKeys RR_MARKET_TREASURE_CHEST_GAME 1)) (and (CanUse RG_LENS_OF_TRUTH) (not RSK_SHUFFLE_CHEST_MINIGAME)))))
RC_MARKET_TREASURE_CHEST_GAME_KEY_2 (and (HasItem RG_CHILD_WALLET) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_SINGLE_KEYS) (SmallKeys RR_MARKET_TREASURE_CHEST_GAME 2)) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_PACK) (SmallKeys RR_MARKET_TREASURE_CHEST_GAME 1)) (and (CanUse RG_LENS_OF_TRUTH) (not RSK_SHUFFLE_CHEST_MINIGAME)))))
RC_MARKET_TREASURE_CHEST_GAME_ITEM_2 (and (HasItem RG_CHILD_WALLET) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_SINGLE_KEYS) (SmallKeys RR_MARKET_TREASURE_CHEST_GAME 2)) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_PACK) (SmallKeys RR_MARKET_TREASURE_CHEST_GAME 1)) (and (CanUse RG_LENS_OF_TRUTH) (not RSK_SHUFFLE_CHEST_MINIGAME)))))
RC_MARKET_TREASURE_CHEST_GAME_KEY_3 (and (HasItem RG_CHILD_WALLET) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_SINGLE_KEYS) (SmallKeys RR_MARKET_TREASURE_CHEST_GAME 3)) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_PACK) (SmallKeys RR_MARKET_TREASURE_CHEST_GAME 1)) (and (CanUse RG_LENS_OF_TRUTH) (not RSK_SHUFFLE_CHEST_MINIGAME)))))
RC_MARKET_TREASURE_CHEST_GAME_ITEM_3 (and (HasItem RG_CHILD_WALLET) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_SINGLE_KEYS) (SmallKeys RR_MARKET_TREASURE_CHEST_GAME 3)) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_PACK) (SmallKeys RR_MARKET_TREASURE_CHEST_GAME 1)) (and (CanUse RG_LENS_OF_TRUTH) (not RSK_SHUFFLE_CHEST_MINIGAME)))))
RC_MARKET_TREASURE_CHEST_GAME_KEY_4 (and (HasItem RG_CHILD_WALLET) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_SINGLE_KEYS) (SmallKeys RR_MARKET_TREASURE_CHEST_GAME 4)) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_PACK) (SmallKeys RR_MARKET_TREASURE_CHEST_GAME 1)) (and (CanUse RG_LENS_OF_TRUTH) (not RSK_SHUFFLE_CHEST_MINIGAME)))))
RC_MARKET_TREASURE_CHEST_GAME_ITEM_4 (and (HasItem RG_CHILD_WALLET) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_SINGLE_KEYS) (SmallKeys RR_MARKET_TREASURE_CHEST_GAME 4)) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_PACK) (SmallKeys RR_MARKET_TREASURE_CHEST_GAME 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 RR_MARKET_TREASURE_CHEST_GAME 5)) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_PACK) (SmallKeys RR_MARKET_TREASURE_CHEST_GAME 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 RR_MARKET_TREASURE_CHEST_GAME 5)) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_PACK) (SmallKeys RR_MARKET_TREASURE_CHEST_GAME 1)) (and (CanUse RG_LENS_OF_TRUTH) (not RSK_SHUFFLE_CHEST_MINIGAME)))))
RR_THE_MARKET true
def RR_MARKET_POTION_SHOP SCENE_POTION_SHOP_MARKET false
Market Potion Shop
RC_MARKET_POTION_SHOP_ITEM_1 true
RC_MARKET_POTION_SHOP_ITEM_2 true
RC_MARKET_POTION_SHOP_ITEM_3 true
RC_MARKET_POTION_SHOP_ITEM_4 true
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
RR_THE_MARKET true
def RR_MARKET_BACK_ALLEY SCENE_BACK_ALLEY_DAY false RA_THE_MARKET
Market Back Alley
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)
RR_MARKET_MAN_IN_GREEN_HOUSE (and AtNight (CanOpenOverworldDoor RG_ALLEY_HOUSE_KEY))
def RR_MARKET_BOMBCHU_SHOP SCENE_BOMBCHU_SHOP false
Market Bombchu Shop
RC_MARKET_BOMBCHU_SHOP_ITEM_1 true
RC_MARKET_BOMBCHU_SHOP_ITEM_2 true
RC_MARKET_BOMBCHU_SHOP_ITEM_3 true
RC_MARKET_BOMBCHU_SHOP_ITEM_4 true
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
RR_MARKET_BACK_ALLEY true
def RR_MARKET_DOG_LADY_HOUSE SCENE_DOG_LADY_HOUSE false
Market Dog Lady House
RC_MARKET_LOST_DOG (and IsChild AtNight)
RC_MK_LOST_DOG_HOUSE_CRATE CanBreakCrates
RR_MARKET_BACK_ALLEY true
def RR_MARKET_MAN_IN_GREEN_HOUSE SCENE_BACK_ALLEY_HOUSE false
Market Man in Green House
RC_MK_BACK_ALLEY_HOUSE_POT_1 CanBreakPots
RC_MK_BACK_ALLEY_HOUSE_POT_2 CanBreakPots
RC_MK_BACK_ALLEY_HOUSE_POT_3 CanBreakPots
RR_MARKET_BACK_ALLEY true
def RR_TOT_ENTRANCE SCENE_TEMPLE_OF_TIME_EXTERIOR_DAY false RA_THE_MARKET
ToT Entrance
GossipStoneFairy CallGossipFairyExceptSuns
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))
RC_TOT_LEFT_CENTER_GOSSIP_STONE_FAIRY_BIG (CanUse RG_SONG_OF_STORMS)
RC_TOT_RIGHT_CENTER_GOSSIP_STONE_FAIRY (or CallGossipFairyExceptSuns (and (CanUse RG_SUNS_SONG) IsAdult))
RC_TOT_RIGHT_CENTER_GOSSIP_STONE_FAIRY_BIG (CanUse RG_SONG_OF_STORMS)
RC_TOT_RIGHTMOST_GOSSIP_STONE_FAIRY (or CallGossipFairyExceptSuns (and (CanUse RG_SUNS_SONG) IsAdult))
RC_TOT_RIGHTMOST_GOSSIP_STONE_FAIRY_BIG (CanUse RG_SONG_OF_STORMS)
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
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
RC_TOT_LIGHT_ARROWS_CUTSCENE (and IsAdult CanTriggerLACS)
RC_ALTAR_HINT_CHILD IsChild
RC_ALTAR_HINT_ADULT IsAdult
RC_TOT_SHEIK_HINT IsAdult
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
RC_TOT_MASTER_SWORD IsAdult
RC_GIFT_FROM_RAURU IsAdult
RC_SHEIK_AT_TEMPLE (and (HasItem RG_FOREST_MEDALLION) IsAdult)
RR_TEMPLE_OF_TIME true

View file

@ -0,0 +1,50 @@
def RR_SFM_ENTRYWAY SCENE_SACRED_FOREST_MEADOW false RA_SACRED_FOREST_MEADOW
SFM Entryway
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
GossipStoneFairy CallGossipFairyExceptSuns
RC_SONG_FROM_SARIA (and IsChild (HasItem RG_ZELDAS_LETTER))
RC_SHEIK_IN_FOREST IsAdult
RC_SFM_GS (and IsAdult (and HookshotOrBoomerang CanGetNightTimeGS))
RC_SFM_MAZE_LOWER_GOSSIP_STONE_FAIRY CallGossipFairyExceptSuns
RC_SFM_MAZE_LOWER_GOSSIP_STONE_FAIRY_BIG (CanUse RG_SONG_OF_STORMS)
RC_SFM_MAZE_UPPER_GOSSIP_STONE_FAIRY CallGossipFairyExceptSuns
RC_SFM_MAZE_UPPER_GOSSIP_STONE_FAIRY_BIG (CanUse RG_SONG_OF_STORMS)
RC_SFM_SARIA_GOSSIP_STONE_FAIRY CallGossipFairyExceptSuns
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
RR_SFM_ENTRYWAY true
RR_FOREST_TEMPLE_ENTRYWAY (CanUse RG_HOOKSHOT)
RR_SFM_FAIRY_GROTTO true
RR_SFM_STORMS_GROTTO CanOpenStormsGrotto
def RR_SFM_WOLFOS_GROTTO SCENE_GROTTOS false
SFM Wolfos Grotto
RC_SFM_WOLFOS_GROTTO_CHEST (CanKillEnemy RE_WOLFOS ED_CLOSE true 2)
RR_SFM_ENTRYWAY true
def RR_SFM_FAIRY_GROTTO SCENE_GROTTOS false
SFM Fairy Grotto
FreeFairies true
RC_SFM_FAIRY_GROTTO_FAIRY_1 true
RC_SFM_FAIRY_GROTTO_FAIRY_2 true
RC_SFM_FAIRY_GROTTO_FAIRY_3 true
RC_SFM_FAIRY_GROTTO_FAIRY_4 true
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
RR_SACRED_FOREST_MEADOW true
def RR_SFM_STORMS_GROTTO SCENE_GROTTOS false
SFM Storms Grotto
RC_SFM_DEKU_SCRUB_GROTTO_REAR CanStunDeku
RC_SFM_DEKU_SCRUB_GROTTO_FRONT CanStunDeku
RC_SFM_STORMS_GROTTO_BEEHIVE CanBreakUpperBeehives
RR_SACRED_FOREST_MEADOW true

View file

@ -0,0 +1,94 @@
def RR_TH_1_TORCH_CELL SCENE_THIEVES_HIDEOUT false RA_GERUDO_FORTRESS
Thieves Hideout 1 Torch Cell
THCouldFree1TorchCarpenter (CanKillEnemy RE_GERUDO_WARRIOR)
THRescuedAllCarpenters (and (SmallKeys RR_GF_OUTSKIRTS (if (== RSK_GERUDO_FORTRESS RO_GF_CARPENTERS_NORMAL) 4 1)) (and THCouldFree1TorchCarpenter (and THCouldFreeDoubleCellCarpenter (and TH_CouldFreeDeadEndCarpenter THCouldRescueSlopeCarpenter))))
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
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
THCouldFreeDoubleCellCarpenter (CanKillEnemy RE_GERUDO_WARRIOR)
THRescuedAllCarpenters (and (== RSK_GERUDO_FORTRESS RO_GF_CARPENTERS_NORMAL) (and (SmallKeys RR_GF_OUTSKIRTS 4) (and THCouldFree1TorchCarpenter (and THCouldFreeDoubleCellCarpenter (and TH_CouldFreeDeadEndCarpenter THCouldRescueSlopeCarpenter)))))
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
RC_TH_NEAR_DOUBLE_CELL_LEFT_POT CanBreakPots
RC_TH_RIGHTMOST_JAILED_POT CanBreakPots
RC_TH_RIGHT_MIDDLE_JAILED_POT CanBreakPots
RC_TH_LEFT_MIDDLE_JAILED_POT CanBreakPots
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
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
TH_CouldFreeDeadEndCarpenter (CanKillEnemy RE_GERUDO_WARRIOR)
THRescuedAllCarpenters (and (== RSK_GERUDO_FORTRESS RO_GF_CARPENTERS_NORMAL) (and (SmallKeys RR_GF_OUTSKIRTS 4) (and THCouldFree1TorchCarpenter (and THCouldFreeDoubleCellCarpenter (and TH_CouldFreeDeadEndCarpenter THCouldRescueSlopeCarpenter)))))
RC_TH_DEAD_END_CARPENTER (CanKillEnemy RE_GERUDO_WARRIOR)
RC_TH_DEAD_END_CELL_CRATE CanBreakCrates
RC_TH_FREED_CARPENTERS THRescuedAllCarpenters
RR_GF_BELOW_GS true
def RR_TH_STEEP_SLOPE_CELL SCENE_THIEVES_HIDEOUT false RA_GERUDO_FORTRESS
Thieves Hideout Steep Slope Cell
THCouldRescueSlopeCarpenter (CanKillEnemy RE_GERUDO_WARRIOR)
THRescuedAllCarpenters (and (== RSK_GERUDO_FORTRESS RO_GF_CARPENTERS_NORMAL) (and (SmallKeys RR_GF_OUTSKIRTS 4) (and THCouldFree1TorchCarpenter (and THCouldFreeDoubleCellCarpenter (and TH_CouldFreeDeadEndCarpenter THCouldRescueSlopeCarpenter)))))
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
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
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
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
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))
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
RC_TH_KITCHEN_POT_1 (CanUse RG_BOOMERANG)
RC_TH_KITCHEN_POT_2 (CanUse RG_BOOMERANG)
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
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))))
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
RR_TH_BREAK_ROOM (CanUse RG_HOOKSHOT)
RR_GF_ABOVE_JAIL true

View file

@ -0,0 +1,70 @@
def RR_ZORAS_DOMAIN SCENE_ZORAS_DOMAIN false RA_ZORAS_DOMAIN
Zoras Domain
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)))
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)
RC_ZD_TRADE_PRESCRIPTION (and IsAdult (and KingZoraThawed (CanUse RG_PRESCRIPTION)))
RC_ZD_GS_FROZEN_WATERFALL (and IsAdult (and (or HookshotOrBoomerang (or (CanUse RG_FAIRY_SLINGSHOT) (or (CanUse RG_FAIRY_BOW) (or (and (CanUse RG_MAGIC_SINGLE) (or (CanUse RG_MASTER_SWORD) (or (CanUse RG_KOKIRI_SWORD) (CanUse RG_BIGGORON_SWORD)))) (and RT_ZD_GS CanJumpslashExceptHammer))))) CanGetNightTimeGS))
RC_ZD_FISH_1 (and IsChild HasBottle)
RC_ZD_FISH_2 (and IsChild HasBottle)
RC_ZD_FISH_3 (and IsChild HasBottle)
RC_ZD_FISH_4 (and IsChild HasBottle)
RC_ZD_FISH_5 (and IsChild HasBottle)
RC_ZD_GOSSIP_STONE_FAIRY CallGossipFairyExceptSuns
RC_ZD_GOSSIP_STONE_FAIRY_BIG (CanUse RG_SONG_OF_STORMS)
RC_ZD_GOSSIP_STONE true
RC_ZD_IN_FRONT_OF_KING_ZORA_BEEHIVE_LEFT (and IsChild CanBreakUpperBeehives)
RC_ZD_IN_FRONT_OF_KING_ZORA_BEEHIVE_RIGHT (and IsChild CanBreakUpperBeehives)
RC_ZD_NEAR_SHOP_POT_1 CanBreakPots
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
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))))
RR_ZD_SHOP (or IsChild BlueFire)
RR_ZORAS_DOMAIN_ISLAND true
def RR_ZORAS_DOMAIN_ISLAND SCENE_ZORAS_DOMAIN false RA_ZORAS_DOMAIN
Zoras Domain Island
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
KingZoraThawed (and IsAdult BlueFire)
RC_ZD_BEHIND_KING_ZORA_BEEHIVE (and IsChild CanBreakUpperBeehives)
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
RC_ZD_SHOP_ITEM_1 true
RC_ZD_SHOP_ITEM_2 true
RC_ZD_SHOP_ITEM_3 true
RC_ZD_SHOP_ITEM_4 true
RC_ZD_SHOP_ITEM_5 true
RC_ZD_SHOP_ITEM_6 true
RC_ZD_SHOP_ITEM_7 true
RC_ZD_SHOP_ITEM_8 true
RR_ZORAS_DOMAIN true
def RR_ZD_STORMS_GROTTO SCENE_GROTTOS false
ZD Storms Grotto
FreeFairies true
RC_ZD_FAIRY_GROTTO_FAIRY_1 true
RC_ZD_FAIRY_GROTTO_FAIRY_2 true
RC_ZD_FAIRY_GROTTO_FAIRY_3 true
RC_ZD_FAIRY_GROTTO_FAIRY_4 true
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
RR_ZORAS_DOMAIN_ISLAND true

View file

@ -0,0 +1,87 @@
def RR_ZORAS_FOUNTAIN SCENE_ZORAS_FOUNTAIN false RA_ZORAS_FOUNTAIN
Zoras Fountain
GossipStoneFairy CallGossipFairyExceptSuns
ButterflyFairy (and (CanUse RG_STICKS) AtDay)
RC_ZF_GS_TREE IsChild
RC_ZF_GS_ABOVE_THE_LOG (and IsChild (and HookshotOrBoomerang CanGetNightTimeGS))
RC_ZF_FAIRY_GOSSIP_STONE_FAIRY CallGossipFairyExceptSuns
RC_ZF_FAIRY_GOSSIP_STONE_FAIRY_BIG (CanUse RG_SONG_OF_STORMS)
RC_ZF_JABU_GOSSIP_STONE_FAIRY CallGossipFairyExceptSuns
RC_ZF_JABU_GOSSIP_STONE_FAIRY_BIG (CanUse RG_SONG_OF_STORMS)
RC_ZF_FAIRY_GOSSIP_STONE true
RC_ZF_JABU_GOSSIP_STONE true
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)
RR_ZD_BEHIND_KING_ZORA true
RR_ZF_ICEBERGS IsAdult
RR_ZF_LAKEBED (CanUse RG_IRON_BOOTS)
//child can break the brown rock without lifting the silver rock and it stays gone for adult, but it's not intuitive and there's no reasonable case where it matters.
RR_ZF_HIDDEN_CAVE (and (CanUse RG_SILVER_GAUNTLETS) BlastOrSmash)
RR_ZF_ROCK (and IsAdult (CanUse RG_SCARECROW))
RR_JABU_JABUS_BELLY_ENTRYWAY (and IsChild (or (== RSK_JABU_OPEN RO_JABU_OPEN) (CanUse RG_BOTTLE_WITH_FISH)))
RR_ZF_GREAT_FAIRY_FOUNTAIN (or HasExplosives (and RT_ZF_GREAT_FAIRY_WITHOUT_EXPLOSIVES (and (CanUse RG_MEGATON_HAMMER) (CanUse RG_SILVER_GAUNTLETS))))
def RR_ZF_ICEBERGS SCENE_ZORAS_FOUNTAIN false RA_ZORAS_FOUNTAIN
ZF Icebergs
RC_ZF_ICEBERG_FREESTANDING_POH IsAdult
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
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)))
RC_ZF_BOTTOM_SOUTHEAST_INNER_RUPEE (and IsAdult (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 16)))
RC_ZF_BOTTOM_SOUTH_INNER_RUPEE (and IsAdult (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 16)))
RC_ZF_BOTTOM_SOUTHWEST_INNER_RUPEE (and IsAdult (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 16)))
RC_ZF_BOTTOM_NORTHWEST_INNER_RUPEE (and IsAdult (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 16)))
RC_ZF_BOTTOM_NORTH_MIDDLE_RUPEE (and IsAdult (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 16)))
RC_ZF_BOTTOM_NORTHEAST_MIDDLE_RUPEE (and IsAdult (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 16)))
RC_ZF_BOTTOM_SOUTHEAST_MIDDLE_RUPEE (and IsAdult (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 16)))
RC_ZF_BOTTOM_SOUTH_MIDDLE_RUPEE (and IsAdult (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 16)))
RC_ZF_BOTTOM_SOUTHWEST_MIDDLE_RUPEE (and IsAdult (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 16)))
RC_ZF_BOTTOM_NORTHWEST_MIDDLE_RUPEE (and IsAdult (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 16)))
RC_ZF_BOTTOM_NORTH_OUTER_RUPEE (and IsAdult (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 16)))
RC_ZF_BOTTOM_NORTHEAST_OUTER_RUPEE (and IsAdult (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 16)))
RC_ZF_BOTTOM_SOUTHEAST_OUTER_RUPEE (and IsAdult (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 16)))
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)))
RR_ZORAS_FOUNTAIN (HasItem RG_BRONZE_SCALE)
def RR_ZF_LEDGE SCENE_ZORAS_FOUNTAIN false RA_ZORAS_FOUNTAIN
ZF Ledge
RR_ZORAS_FOUNTAIN (HasItem RG_BRONZE_SCALE)
RR_ZF_ICEBERGS IsAdult
RR_ZF_LAKEBED (CanUse RG_IRON_BOOTS)
RR_ICE_CAVERN_ENTRYWAY true
def RR_ZF_HIDDEN_CAVE SCENE_ZORAS_FOUNTAIN false RA_ZORAS_FOUNTAIN
ZF Hidden Cave
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
RR_ZF_HIDDEN_LEDGE true
def RR_ZF_HIDDEN_LEDGE SCENE_ZORAS_FOUNTAIN false RA_ZORAS_FOUNTAIN
ZF Hidden Ledge
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
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
RR_ZORAS_FOUNTAIN true
def RR_ZF_GREAT_FAIRY_FOUNTAIN SCENE_GREAT_FAIRYS_FOUNTAIN_SPELLS false
ZF Great Fairy Fountain
RC_ZF_GREAT_FAIRY_REWARD (CanUse RG_ZELDAS_LULLABY)
RR_ZORAS_FOUNTAIN true

View file

@ -0,0 +1,106 @@
def RR_ZR_FRONT SCENE_ZORAS_RIVER true RA_ZORAS_RIVER
ZR Front
RC_ZR_GS_TREE (and IsChild (CanKillEnemy RE_GOLD_SKULLTULA ED_CLOSE))
RC_ZR_GRASS_1 CanCutShrubs
RC_ZR_GRASS_2 CanCutShrubs
RC_ZR_GRASS_3 CanCutShrubs
RC_ZR_GRASS_4 CanCutShrubs
RC_ZR_GRASS_5 CanCutShrubs
RC_ZR_GRASS_6 CanCutShrubs
RC_ZR_GRASS_7 CanCutShrubs
RC_ZR_GRASS_8 CanCutShrubs
RC_ZR_GRASS_9 CanCutShrubs
RC_ZR_GRASS_10 CanCutShrubs
RC_ZR_GRASS_11 CanCutShrubs
RC_ZR_GRASS_12 CanCutShrubs
RR_ZORAS_RIVER (or IsAdult BlastOrSmash)
RR_HYRULE_FIELD true
def RR_ZORAS_RIVER SCENE_ZORAS_RIVER true RA_ZORAS_RIVER
Zora River
GossipStoneFairy CallGossipFairy
BeanPlantFairy (and IsChild (and (CanUse RG_MAGIC_BEAN) (CanUse RG_SONG_OF_STORMS)))
ButterflyFairy (CanUse RG_STICKS)
BugShrub CanCutShrubs
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))
RC_ZR_FROGS_ZELDAS_LULLABY (and IsChild (CanUse RG_ZELDAS_LULLABY))
RC_ZR_FROGS_EPONAS_SONG (and IsChild (CanUse RG_EPONAS_SONG))
RC_ZR_FROGS_SARIAS_SONG (and IsChild (CanUse RG_SARIAS_SONG))
RC_ZR_FROGS_SUNS_SONG (and IsChild (CanUse RG_SUNS_SONG))
RC_ZR_FROGS_SONG_OF_TIME (and IsChild (CanUse RG_SONG_OF_TIME))
RC_ZR_NEAR_OPEN_GROTTO_FREESTANDING_POH (or IsChild (or (CanUse RG_HOVER_BOOTS) (and IsAdult RT_ZR_LOWER)))
RC_ZR_NEAR_DOMAIN_FREESTANDING_POH (or IsChild (or (CanUse RG_HOVER_BOOTS) (and IsAdult RT_ZR_UPPER)))
RC_ZR_GS_LADDER (and IsChild (and CanAttack CanGetNightTimeGS))
RC_ZR_GS_NEAR_RAISED_GROTTOS (and IsAdult (and HookshotOrBoomerang CanGetNightTimeGS))
RC_ZR_GS_ABOVE_BRIDGE (and IsAdult (and (CanUse RG_HOOKSHOT) CanGetNightTimeGS))
RC_ZR_BEAN_SPROUT_FAIRY_1 (and IsChild (and (CanUse RG_MAGIC_BEAN) (CanUse RG_SONG_OF_STORMS)))
RC_ZR_BEAN_SPROUT_FAIRY_2 (and IsChild (and (CanUse RG_MAGIC_BEAN) (CanUse RG_SONG_OF_STORMS)))
RC_ZR_BEAN_SPROUT_FAIRY_3 (and IsChild (and (CanUse RG_MAGIC_BEAN) (CanUse RG_SONG_OF_STORMS)))
RC_ZR_NEAR_GROTTOS_GOSSIP_STONE_FAIRY CallGossipFairy
RC_ZR_NEAR_GROTTOS_GOSSIP_STONE_FAIRY_BIG (CanUse RG_SONG_OF_STORMS)
RC_ZR_NEAR_DOMAIN_GOSSIP_STONE_FAIRY CallGossipFairy
RC_ZR_NEAR_DOMAIN_GOSSIP_STONE_FAIRY_BIG (CanUse RG_SONG_OF_STORMS)
RC_ZR_BENEATH_WATERFALL_LEFT_RUPEE (and IsAdult (or (HasItem RG_BRONZE_SCALE) (or (CanUse RG_IRON_BOOTS) (CanUse RG_BOOMERANG))))
RC_ZR_BENEATH_WATERFALL_MIDDLE_LEFT_RUPEE (and IsAdult (or (HasItem RG_BRONZE_SCALE) (or (CanUse RG_IRON_BOOTS) (CanUse RG_BOOMERANG))))
RC_ZR_BENEATH_WATERFALL_MIDDLE_RIGHT_RUPEE (and IsAdult (or (HasItem RG_BRONZE_SCALE) (or (CanUse RG_IRON_BOOTS) (CanUse RG_BOOMERANG))))
RC_ZR_BENEATH_WATERFALL_RIGHT_RUPEE (and IsAdult (or (HasItem RG_BRONZE_SCALE) (or (CanUse RG_IRON_BOOTS) (CanUse RG_BOOMERANG))))
RC_ZR_NEAR_GROTTOS_GOSSIP_STONE true
RC_ZR_NEAR_DOMAIN_GOSSIP_STONE true
RC_ZR_NEAR_FREESTANDING_POH_GRASS CanCutShrubs
RR_ZR_FRONT true
RR_ZR_OPEN_GROTTO true
RR_ZR_FAIRY_GROTTO (Here BlastOrSmash)
RR_THE_LOST_WOODS (or (HasItem RG_SILVER_SCALE) (CanUse RG_IRON_BOOTS))
RR_ZR_STORMS_GROTTO CanOpenStormsGrotto
RR_ZR_BEHIND_WATERFALL (or (== RSK_SLEEPING_WATERFALL RO_WATERFALL_OPEN) (or (Here (CanUse RG_ZELDAS_LULLABY)) (or (and IsChild RT_ZR_CUCCO) (and IsAdult (and (CanUse RG_HOVER_BOOTS) RT_ZR_HOVERS)))))
def RR_ZR_FROM_SHORTCUT SCENE_ZORAS_RIVER false RA_ZORAS_RIVER
ZR From Shortcut
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
RR_ZORAS_RIVER true
RR_ZORAS_DOMAIN true
def RR_ZR_OPEN_GROTTO SCENE_GROTTOS false
ZR Open Grotto
GossipStoneFairy CallGossipFairy
ButterflyFairy (CanUse RG_STICKS)
BugShrub CanCutShrubs
LoneFish true
RC_ZR_OPEN_GROTTO_CHEST true
RC_ZR_OPEN_GROTTO_FISH HasBottle
RC_ZR_OPEN_GROTTO_GOSSIP_STONE_FAIRY CallGossipFairy
RC_ZR_OPEN_GROTTO_GOSSIP_STONE_FAIRY_BIG (CanUse RG_SONG_OF_STORMS)
RC_ZR_OPEN_GROTTO_GOSSIP_STONE true
RC_ZR_OPEN_GROTTO_BEEHIVE_LEFT CanBreakLowerBeehives
RC_ZR_OPEN_GROTTO_BEEHIVE_RIGHT CanBreakLowerBeehives
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
RR_ZORAS_RIVER true
def RR_ZR_FAIRY_GROTTO SCENE_GROTTOS false
ZR Fairy Grotto
FreeFairies true
RC_ZR_FAIRY_GROTTO_FAIRY_1 true
RC_ZR_FAIRY_GROTTO_FAIRY_2 true
RC_ZR_FAIRY_GROTTO_FAIRY_3 true
RC_ZR_FAIRY_GROTTO_FAIRY_4 true
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
RR_ZORAS_RIVER true
def RR_ZR_STORMS_GROTTO SCENE_GROTTOS false
ZR Storms Grotto
RC_ZR_DEKU_SCRUB_GROTTO_REAR CanStunDeku
RC_ZR_DEKU_SCRUB_GROTTO_FRONT CanStunDeku
RC_ZR_STORMS_GROTTO_BEEHIVE CanBreakUpperBeehives
RR_ZORAS_RIVER true

View file

@ -0,0 +1,55 @@
def RR_ROOT SCENE_ID_MAX false RA_LINKS_POCKET
Root
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)
RC_LINKS_POCKET true
RC_TRIFORCE_COMPLETED (>= TriforcePiecesCollected (add RSK_TRIFORCE_HUNT_PIECES_REQUIRED 1))
RC_SARIA_SONG_HINT (CanUse RG_SARIAS_SONG)
RR_ROOT_EXITS true
def RR_ROOT_EXITS SCENE_ID_MAX false RA_LINKS_POCKET
Root Exits
RR_CHILD_SPAWN IsChild
RR_ADULT_SPAWN IsAdult
RR_MINUET_OF_FOREST_WARP (CanUse RG_MINUET_OF_FOREST)
RR_BOLERO_OF_FIRE_WARP (CanUse RG_BOLERO_OF_FIRE)
RR_SERENADE_OF_WATER_WARP (CanUse RG_SERENADE_OF_WATER)
RR_NOCTURNE_OF_SHADOW_WARP (CanUse RG_NOCTURNE_OF_SHADOW)
RR_REQUIEM_OF_SPIRIT_WARP (CanUse RG_REQUIEM_OF_SPIRIT)
RR_PRELUDE_OF_LIGHT_WARP (CanUse RG_PRELUDE_OF_LIGHT)
def RR_CHILD_SPAWN SCENE_ID_MAX false RA_LINKS_POCKET
Child Spawn
RR_KF_LINKS_HOUSE true
def RR_ADULT_SPAWN SCENE_ID_MAX false RA_LINKS_POCKET
Adult Spawn
RR_TEMPLE_OF_TIME true
def RR_MINUET_OF_FOREST_WARP SCENE_ID_MAX false RA_LINKS_POCKET
Minuet of Forest Warp
RR_SACRED_FOREST_MEADOW true
def RR_BOLERO_OF_FIRE_WARP SCENE_ID_MAX false RA_LINKS_POCKET
Bolero of Fire Warp
RR_DMC_CENTRAL_LOCAL true
def RR_SERENADE_OF_WATER_WARP SCENE_ID_MAX false RA_LINKS_POCKET
Serenade of Water Warp
RR_LAKE_HYLIA true
def RR_REQUIEM_OF_SPIRIT_WARP SCENE_ID_MAX false RA_LINKS_POCKET
Requiem of Spirit Warp
RR_DESERT_COLOSSUS true
def RR_NOCTURNE_OF_SHADOW_WARP SCENE_ID_MAX false RA_LINKS_POCKET
Nocturne of Shadow Warp
RR_GRAVEYARD_WARP_PAD_REGION true
def RR_PRELUDE_OF_LIGHT_WARP SCENE_ID_MAX false RA_LINKS_POCKET
Prelude of Light Warp
RR_TEMPLE_OF_TIME true