post cherry-pick cleanup, generate RandomizerCheck

This commit is contained in:
Demur Rumed 2025-07-21 00:24:58 +00:00
commit b4883a45d3
14 changed files with 177 additions and 166 deletions

View file

@ -25,6 +25,7 @@ void RegionTable_Init_Generated() {
}"""
def generate_rr(self, dirname, RRs):
checks = {} # relying on ordered inserts, which set lacks
result = []
output = result.append
output(self.RR_PRELUDE)
@ -43,6 +44,7 @@ void RegionTable_Init_Generated() {
if rr.checks:
output("\n")
for name, code in rr.checks:
checks[name] = None
output(f"\tLOCATION({name}, {self.compile_rr(rr, code)}),\n")
output("}, {")
@ -70,6 +72,14 @@ void RegionTable_Init_Generated() {
f.write(f" {rr.name},\n")
f.write(f" RR_MAX,\n")
f.write("} RandomizerRegion;\n")
with open(dirname + "/checks.h", "w", encoding="ascii") as f:
f.write("#pragma once\n")
f.write("typedef enum {\n")
f.write(f" RC_UNKNOWN_CHECK,\n")
for check in checks.keys():
f.write(f" {check},\n")
f.write(f" RC_MAX,\n")
f.write("} RandomizerCheck;\n")
def compile_rr(self, rr, ast):
result = []

View file

@ -166,7 +166,7 @@ void Context::GenerateLocationPool() {
// TODO: Exclude checks for some of the older shuffles from the pool too i.e. Frog Songs, Scrubs, etc.)
if (location.GetRandomizerCheck() == RC_UNKNOWN_CHECK ||
location.GetRandomizerCheck() == RC_TRIFORCE_COMPLETED || // already in pool
(location.GetRandomizerCheck() == RC_MASTER_SWORD_PEDESTAL &&
(location.GetRandomizerCheck() == RC_TOT_MASTER_SWORD &&
mOptions[RSK_SHUFFLE_MASTER_SWORD].Is(RO_GENERIC_OFF)) ||
(location.GetRandomizerCheck() == RC_KAK_100_GOLD_SKULLTULA_REWARD &&
mOptions[RSK_SHUFFLE_100_GS_REWARD].Is(RO_GENERIC_OFF)) ||

View file

@ -19,7 +19,7 @@ RC_BOTTOM_OF_THE_WELL_UNDERWATER_POT (or (and CanBreakPots LoweredWaterInsideBot
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_KEESE_BEAMOS_ROOM (and IsChild (SmallKeys SCENE_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
@ -37,7 +37,7 @@ RC_BOTTOM_OF_THE_WELL_CENTER_SKULLTULA_CHEST (or (CanPassEnemy RE_BIG_SKULLTULA)
//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_INNER_ROOMS (SmallKeys SCENE_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))
@ -54,7 +54,7 @@ def RR_BOTTOM_OF_THE_WELL_KEESE_BEAMOS_ROOM SCENE_BOTTOM_OF_THE_WELL false RA_BO
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_PERIMETER (and IsChild (and (SmallKeys SCENE_BOTTOM_OF_THE_WELL 3) (or RT_LENS_BOTW (CanUse RG_LENS_OF_TRUTH))))
RR_BOTTOM_OF_THE_WELL_LIKE_LIKE_CAGE (or RT_LENS_BOTW (CanUse RG_LENS_OF_TRUTH))
//not sure if this lens check is needed, these holes are a bit too easy to find, but it matches existing logic
RR_BOTTOM_OF_THE_WELL_BASEMENT_USEFUL_BOMB_FLOWERS (or RT_LENS_BOTW (CanUse RG_LENS_OF_TRUTH))
@ -72,7 +72,7 @@ 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)
RR_BOTTOM_OF_THE_WELL_BEHIND_FAKE_WALLS (SmallKeys SCENE_BOTTOM_OF_THE_WELL 3)
def RR_BOTTOM_OF_THE_WELL_COFFIN_ROOM SCENE_BOTTOM_OF_THE_WELL false RA_BOTTOM_OF_THE_WELL
Bottom of the Well Coffin Room
@ -150,8 +150,8 @@ 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_COFFIN_ROOM (and (or LoweredWaterInsideBotw (HasItem RG_BRONZE_SCALE)) (SmallKeys SCENE_BOTTOM_OF_THE_WELL 2))
RR_BOTTOM_OF_THE_WELL_MQ_LOCKED_CAGE (and IsChild (and (SmallKeys SCENE_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
@ -168,12 +168,12 @@ 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))
RR_BOTTOM_OF_THE_WELL_MQ_PERIMETER (and (or LoweredWaterInsideBotw (HasItem RG_BRONZE_SCALE)) (SmallKeys SCENE_BOTTOM_OF_THE_WELL 2))
def RR_BOTTOM_OF_THE_WELL_MQ_LOCKED_CAGE SCENE_BOTTOM_OF_THE_WELL false RA_BOTTOM_OF_THE_WELL
Bottom of the Well MQ Locked Cage
OpenedMiddleHoleMQBotw HasExplosives
RR_BOTTOM_OF_THE_WELL_MQ_PERIMETER (and IsChild (SmallKeys RR_BOTTOM_OF_THE_WELL 2))
RR_BOTTOM_OF_THE_WELL_MQ_PERIMETER (and IsChild (SmallKeys SCENE_BOTTOM_OF_THE_WELL 2))
def RR_BOTTOM_OF_THE_WELL_MQ_DEAD_HAND_ROOM SCENE_BOTTOM_OF_THE_WELL false RA_BOTTOM_OF_THE_WELL
Bottom of the Well MQ Dead Hand Room

View file

@ -8,9 +8,9 @@ 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_ENEMIES (and (Here (CanUse RG_MEGATON_HAMMER)) (or (SmallKeys SCENE_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))
RR_FIRE_TEMPLE_BIG_LAVA_ROOM (and (SmallKeys SCENE_FIRE_TEMPLE 2) (>= FireTimer 24))
def RR_FIRE_TEMPLE_NEAR_BOSS_ROOM SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple Near Boss Room
@ -25,7 +25,7 @@ RR_FIRE_TEMPLE_BOSS_ENTRYWAY (and IsAdult (or RT_FIRE_BOSS_DOOR_JUMP (or (Here (
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_FIRST_ROOM (or (SmallKeys SCENE_FIRE_TEMPLE 8) (not IsFireLoopLocked))
RR_FIRE_TEMPLE_LOOP_TILES (Here (and (CanKillEnemy RE_TORCH_SLUG) (CanKillEnemy RE_FIRE_KEESE)))
def RR_FIRE_TEMPLE_LOOP_TILES SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
@ -62,11 +62,11 @@ 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_FIRST_ROOM (SmallKeys SCENE_FIRE_TEMPLE 2)
RR_FIRE_TEMPLE_BIG_LAVA_ROOM_NORTH_GORON true
RR_FIRE_TEMPLE_BIG_LAVA_ROOM_NORTH_TILES (and IsAdult (or (CanUse RG_SONG_OF_TIME) RT_FIRE_SOT))
RR_FIRE_TEMPLE_BIG_LAVA_ROOM_SOUTH_GORON (and IsAdult HasExplosives)
RR_FIRE_TEMPLE_FIRE_PILLAR_ROOM (SmallKeys RR_FIRE_TEMPLE 3)
RR_FIRE_TEMPLE_FIRE_PILLAR_ROOM (SmallKeys SCENE_FIRE_TEMPLE 3)
def RR_FIRE_TEMPLE_BIG_LAVA_ROOM_NORTH_GORON SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple Big Lava Room North Goron
@ -89,13 +89,13 @@ 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))
RR_FIRE_TEMPLE_BIG_LAVA_ROOM (SmallKeys SCENE_FIRE_TEMPLE 3)
RR_FIRE_TEMPLE_SHORTCUT_ROOM (and (>= FireTimer 56) (SmallKeys SCENE_FIRE_TEMPLE 4))
def RR_FIRE_TEMPLE_SHORTCUT_ROOM SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple Shortcut Room
RC_FIRE_TEMPLE_BOULDER_MAZE_SHORTCUT_CHEST (Here true)
RR_FIRE_TEMPLE_FIRE_PILLAR_ROOM (SmallKeys RR_FIRE_TEMPLE 4)
RR_FIRE_TEMPLE_FIRE_PILLAR_ROOM (SmallKeys SCENE_FIRE_TEMPLE 4)
RR_FIRE_TEMPLE_SHORTCUT_CLIMB (Here true)
RR_FIRE_TEMPLE_BOULDER_MAZE_LOWER (and IsAdult (and (or (HasItem RG_GORONS_BRACELET) RT_FIRE_STRENGTH) (or HasExplosives (or (CanUse RG_FAIRY_BOW) (or (CanUse RG_HOOKSHOT) (CanUse RG_FAIRY_SLINGSHOT))))))
@ -110,7 +110,7 @@ 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_EAST_CENTRAL_ROOM (SmallKeys SCENE_FIRE_TEMPLE 5)
RR_FIRE_TEMPLE_BOULDER_MAZE_UPPER false
def RR_FIRE_TEMPLE_BOULDER_MAZE_LOWER_SIDE_ROOM SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
@ -124,8 +124,8 @@ 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_BOULDER_MAZE_LOWER (SmallKeys SCENE_FIRE_TEMPLE 5)
RR_FIRE_TEMPLE_FIRE_WALL_CHASE (SmallKeys SCENE_FIRE_TEMPLE 6)
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
@ -133,10 +133,10 @@ 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_EAST_CENTRAL_ROOM (and (>= FireTimer 24) (SmallKeys SCENE_FIRE_TEMPLE 6))
RR_FIRE_TEMPLE_MAP_AREA IsAdult
RR_FIRE_TEMPLE_BOULDER_MAZE_UPPER (and (>= FireTimer 24) IsAdult)
RR_FIRE_TEMPLE_CORRIDOR (and (>= FireTimer 24) (and IsAdult (SmallKeys RR_FIRE_TEMPLE 7)))
RR_FIRE_TEMPLE_CORRIDOR (and (>= FireTimer 24) (and IsAdult (SmallKeys SCENE_FIRE_TEMPLE 7)))
def RR_FIRE_TEMPLE_MAP_AREA SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple Map Region
@ -166,7 +166,7 @@ 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_WALL_CHASE (SmallKeys SCENE_FIRE_TEMPLE 7)
RR_FIRE_TEMPLE_FIRE_MAZE_ROOM true
def RR_FIRE_TEMPLE_FIRE_MAZE_ROOM SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
@ -178,7 +178,7 @@ 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_WEST_CENTRAL_LOWER (SmallKeys SCENE_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
@ -195,7 +195,7 @@ 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_FIRE_MAZE_ROOM (SmallKeys SCENE_FIRE_TEMPLE 8)
RR_FIRE_TEMPLE_WEST_CENTRAL_UPPER (and IsAdult (CanUse RG_SONG_OF_TIME))
RR_FIRE_TEMPLE_LATE_FIRE_MAZE true
@ -251,7 +251,7 @@ 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)
RR_FIRE_TEMPLE_MQ_STALFOS_ROOM (SmallKeys SCENE_FIRE_TEMPLE 5)
def RR_FIRE_TEMPLE_MQ_FIRST_ROOM_UPPER SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple MQ First Room Upper
@ -348,7 +348,7 @@ 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_ELEVATOR_ROOM (and (CanUse RG_GORON_TUNIC) (SmallKeys SCENE_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
@ -402,7 +402,7 @@ 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))
RR_FIRE_TEMPLE_MQ_HIGH_TORCH_ROOM (and (SmallKeys SCENE_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
@ -465,7 +465,7 @@ RC_FIRE_TEMPLE_MQ_LAVA_TORCH_SMALL_CRATE_2 CanBreakSmallCrates
RC_FIRE_TEMPLE_MQ_LAVA_TORCH_SMALL_CRATE_3 CanBreakSmallCrates
RC_FIRE_TEMPLE_MQ_LAVA_TORCH_SMALL_CRATE_4 CanBreakSmallCrates
RC_FIRE_TEMPLE_MQ_LAVA_TORCH_SMALL_CRATE_5 CanBreakSmallCrates
RR_FIRE_TEMPLE_MQ_UPPER_MAZE (SmallKeys RR_FIRE_TEMPLE 3)
RR_FIRE_TEMPLE_MQ_UPPER_MAZE (SmallKeys SCENE_FIRE_TEMPLE 3)
RR_FIRE_TEMPLE_MQ_NARROW_PATH_ROOM true
//Child has issues navigating the higher points of this room without an equip swapped hookshot
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)))
@ -516,7 +516,7 @@ 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))
RR_FIRE_TEMPLE_MQ_SCARECROW_ROOM (and (CanKillEnemy RE_FLARE_DANCER) (SmallKeys SCENE_FIRE_TEMPLE 4))
def RR_FIRE_TEMPLE_MQ_SCARECROW_ROOM SCENE_FIRE_TEMPLE false RA_FIRE_TEMPLE
Fire Temple MQ Scarecrow Room
@ -527,8 +527,8 @@ RC_FIRE_TEMPLE_MQ_CHEST_ON_FIRE (or IsAdult (CanUse RG_SCARECROW))
//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))
RR_FIRE_TEMPLE_MQ_UPPER_FLARE_DANCER (SmallKeys SCENE_FIRE_TEMPLE 4)
RR_FIRE_TEMPLE_MQ_COLLAPSED_STAIRS (and (Here (CanUse RG_MEGATON_HAMMER)) (SmallKeys SCENE_FIRE_TEMPLE 5))
//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

View file

@ -30,7 +30,7 @@ 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_WEST_CORRIDOR (SmallKeys SCENE_FOREST_TEMPLE 1)
RR_FOREST_TEMPLE_EAST_CORRIDOR false
RR_FOREST_TEMPLE_BOSS_REGION ForestTempleMeg
RR_FOREST_TEMPLE_BOSS_ENTRYWAY false
@ -116,7 +116,7 @@ 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_LOBBY (SmallKeys SCENE_FOREST_TEMPLE 1)
RR_FOREST_TEMPLE_BLOCK_PUSH_ROOM (or CanAttack (CanUse RG_NUTS))
def RR_FOREST_TEMPLE_BLOCK_PUSH_ROOM SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
@ -124,25 +124,25 @@ 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))))
RR_FOREST_TEMPLE_NW_CORRIDOR_TWISTED (and IsAdult (and (HasItem RG_GORONS_BRACELET) (SmallKeys SCENE_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 SCENE_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)
RR_FOREST_TEMPLE_BLOCK_PUSH_ROOM (SmallKeys SCENE_FOREST_TEMPLE 2)
RR_FOREST_TEMPLE_RED_POE_ROOM (SmallKeys SCENE_FOREST_TEMPLE 3)
def RR_FOREST_TEMPLE_NW_CORRIDOR_STRAIGHTENED SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple NW Corridor Straightened
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)
RR_FOREST_TEMPLE_BLOCK_PUSH_ROOM (SmallKeys SCENE_FOREST_TEMPLE 2)
def RR_FOREST_TEMPLE_RED_POE_ROOM SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple Red Poe Room
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_NW_CORRIDOR_TWISTED (SmallKeys SCENE_FOREST_TEMPLE 3)
RR_FOREST_TEMPLE_UPPER_STALFOS true
def RR_FOREST_TEMPLE_UPPER_STALFOS SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
@ -163,24 +163,24 @@ 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)
RR_FOREST_TEMPLE_NE_CORRIDOR_STRAIGHTENED (SmallKeys SCENE_FOREST_TEMPLE 4)
def RR_FOREST_TEMPLE_NE_CORRIDOR_STRAIGHTENED SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple NE Corridor Straightened
RR_FOREST_TEMPLE_BLUE_POE_ROOM (SmallKeys RR_FOREST_TEMPLE 4)
RR_FOREST_TEMPLE_FROZEN_EYE_ROOM (SmallKeys RR_FOREST_TEMPLE 5)
RR_FOREST_TEMPLE_BLUE_POE_ROOM (SmallKeys SCENE_FOREST_TEMPLE 4)
RR_FOREST_TEMPLE_FROZEN_EYE_ROOM (SmallKeys SCENE_FOREST_TEMPLE 5)
def RR_FOREST_TEMPLE_NE_CORRIDOR_TWISTED SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple NE Corridor Twisted
RR_FOREST_TEMPLE_FROZEN_EYE_ROOM (SmallKeys RR_FOREST_TEMPLE 5)
RR_FOREST_TEMPLE_FROZEN_EYE_ROOM (SmallKeys SCENE_FOREST_TEMPLE 5)
RR_FOREST_TEMPLE_FALLING_ROOM true
def RR_FOREST_TEMPLE_FROZEN_EYE_ROOM SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple Frozen Eye Room
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)))
RR_FOREST_TEMPLE_NE_CORRIDOR_STRAIGHTENED (SmallKeys SCENE_FOREST_TEMPLE 5)
RR_FOREST_TEMPLE_NE_CORRIDOR_TWISTED (and (SmallKeys SCENE_FOREST_TEMPLE 5) (or (CanUse RG_FAIRY_BOW) (CanUse RG_DINS_FIRE)))
def RR_FOREST_TEMPLE_FALLING_ROOM SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple Falling Room
@ -214,7 +214,7 @@ RC_FOREST_TEMPLE_MQ_FIRST_ROOM_CHEST (or (CanPassEnemy RE_BIG_SKULLTULA ED_SHORT
//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))
RR_FOREST_TEMPLE_MQ_CENTRAL_AREA (and (SmallKeys SCENE_FOREST_TEMPLE 1) (CanPassEnemy RE_BIG_SKULLTULA))
def RR_FOREST_TEMPLE_MQ_CENTRAL_AREA SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple MQ Central Region
@ -266,18 +266,18 @@ RR_FOREST_TEMPLE_MQ_OUTDOOR_LEDGE (or (and ForestCanTwistHallway (CanUse RG_HOVE
def RR_FOREST_TEMPLE_MQ_UPPER_BLOCK_PUZZLE SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple MQ After Block Puzzle
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))
RC_FOREST_TEMPLE_MQ_BOSS_KEY_CHEST (SmallKeys SCENE_FOREST_TEMPLE 3)
RR_FOREST_TEMPLE_MQ_STRAIGHT_HALLWAY (SmallKeys SCENE_FOREST_TEMPLE 3)
RR_FOREST_TEMPLE_MQ_JOELLE_ROOM (and ForestCanTwistHallway (SmallKeys SCENE_FOREST_TEMPLE 4))
//!QUANTUM LOGIC!
//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)))
RR_FOREST_TEMPLE_MQ_NW_OUTDOORS (and (SmallKeys SCENE_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)
RC_FOREST_TEMPLE_MQ_BOSS_KEY_CHEST (SmallKeys SCENE_FOREST_TEMPLE 3)
RR_FOREST_TEMPLE_MQ_FLOORMASTER_ROOM true
def RR_FOREST_TEMPLE_MQ_FLOORMASTER_ROOM SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
@ -343,7 +343,7 @@ 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_UPPER_BLOCK_PUZZLE (SmallKeys SCENE_FOREST_TEMPLE 4)
RR_FOREST_TEMPLE_MQ_3_STALFOS_ROOM true
def RR_FOREST_TEMPLE_MQ_3_STALFOS_ROOM SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
@ -368,8 +368,8 @@ 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_FALLING_ROOM (and (SmallKeys SCENE_FOREST_TEMPLE 5) (Here (or (CanUse RG_FAIRY_BOW) (CanUse RG_DINS_FIRE))))
RR_FOREST_TEMPLE_MQ_TORCH_SHOT_ROOM (SmallKeys SCENE_FOREST_TEMPLE 6)
RR_FOREST_TEMPLE_MQ_3_STALFOS_ROOM true
//This room exists to show the actual map layout, and for when the crates get added to logic
@ -379,14 +379,14 @@ 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)
RR_FOREST_TEMPLE_MQ_BETH_ROOM (SmallKeys SCENE_FOREST_TEMPLE 6)
def RR_FOREST_TEMPLE_MQ_FALLING_ROOM SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple MQ Falling Room
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)
RR_FOREST_TEMPLE_MQ_AMY_ROOM (SmallKeys SCENE_FOREST_TEMPLE 6)
def RR_FOREST_TEMPLE_MQ_AMY_ROOM SCENE_FOREST_TEMPLE false RA_FOREST_TEMPLE
Forest Temple MQ Amy Room

View file

@ -87,7 +87,7 @@ 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)))))
LightTrialClear (and (CanUse RG_LIGHT_ARROWS) (and (CanUse RG_HOOKSHOT) (and (SmallKeys SCENE_INSIDE_GANONS_CASTLE 2) (or RT_LENS_GANON (CanUse RG_LENS_OF_TRUTH)))))
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
@ -95,10 +95,10 @@ 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)))))
RC_GANONS_CASTLE_LIGHT_TRIAL_LULLABY_CHEST (and (CanUse RG_ZELDAS_LULLABY) (SmallKeys SCENE_INSIDE_GANONS_CASTLE 1))
RC_GANONS_CASTLE_LIGHT_TRIAL_BOULDER_POT_1 (and CanBreakPots (SmallKeys SCENE_INSIDE_GANONS_CASTLE 2))
RC_GANONS_CASTLE_LIGHT_TRIAL_POT_1 (and CanBreakPots (and (CanUse RG_HOOKSHOT) (and (SmallKeys SCENE_INSIDE_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 SCENE_INSIDE_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
@ -177,11 +177,11 @@ 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))
RR_GANONS_CASTLE_MQ_WATER_TRIAL_BLOCK_ROOM (and (SmallKeys SCENE_INSIDE_GANONS_CASTLE 3) (Here BlueFire))
def RR_GANONS_CASTLE_MQ_WATER_TRIAL_BLOCK_ROOM SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle MQ Water Trial Block Room
RR_GANONS_CASTLE_MQ_WATER_TRIAL_GEYSER_ROOM (SmallKeys RR_GANONS_CASTLE 3)
RR_GANONS_CASTLE_MQ_WATER_TRIAL_GEYSER_ROOM (SmallKeys SCENE_INSIDE_GANONS_CASTLE 3)
//This assumes there's no way for child to have blue fire and not adult.
RR_GANONS_CASTLE_MQ_WATER_TRIAL_FINAL_ROOM (and IsAdult BlueFire)
@ -279,11 +279,11 @@ def RR_GANONS_CASTLE_MQ_LIGHT_TRIAL_TRIFORCE_ROOM SCENE_INSIDE_GANONS_CASTLE fal
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)
RR_GANONS_CASTLE_MQ_LIGHT_TRIAL_BOULDER_ROOM_FRONT (SmallKeys SCENE_INSIDE_GANONS_CASTLE 2)
def RR_GANONS_CASTLE_MQ_LIGHT_TRIAL_BOULDER_ROOM_FRONT SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle MQ Light Trial Boulder Room Front
RR_GANONS_CASTLE_MQ_LIGHT_TRIAL_TRIFORCE_ROOM (SmallKeys RR_GANONS_CASTLE 2)
RR_GANONS_CASTLE_MQ_LIGHT_TRIAL_TRIFORCE_ROOM (SmallKeys SCENE_INSIDE_GANONS_CASTLE 2)
RR_GANONS_CASTLE_MQ_LIGHT_TRIAL_BOULDER_ROOM_BACK (or (CanUse RG_HOOKSHOT) RT_GANON_MQ_LIGHT_TRIAL)
def RR_GANONS_CASTLE_MQ_LIGHT_TRIAL_BOULDER_ROOM_BACK SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
@ -292,7 +292,7 @@ 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)))))))
RR_GANONS_CASTLE_MQ_LIGHT_TRIAL_FINAL_ROOM (and (SmallKeys SCENE_INSIDE_GANONS_CASTLE 3) (and (or RT_LENS_GANON_MQ (CanUse RG_LENS_OF_TRUTH)) (or (CanUse RG_FAIRY_SLINGSHOT) (or CanJumpslash (or HasExplosives (or (CanUse RG_FAIRY_BOW) (CanUse RG_BOOMERANG)))))))
def RR_GANONS_CASTLE_MQ_LIGHT_TRIAL_FINAL_ROOM SCENE_INSIDE_GANONS_CASTLE false RA_GANONS_CASTLE
Ganon's Castle MQ Light Trial Final Room

View file

@ -20,12 +20,12 @@ 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)
RC_GERUDO_TRAINING_GROUND_HIDDEN_CEILING_CHEST (and (SmallKeys SCENE_GERUDO_TRAINING_GROUND 3) (or RT_LENS_GTG (CanUse RG_LENS_OF_TRUTH)))
RC_GERUDO_TRAINING_GROUND_MAZE_PATH_FIRST_CHEST (SmallKeys SCENE_GERUDO_TRAINING_GROUND 4)
RC_GERUDO_TRAINING_GROUND_MAZE_PATH_SECOND_CHEST (SmallKeys SCENE_GERUDO_TRAINING_GROUND 6)
RC_GERUDO_TRAINING_GROUND_MAZE_PATH_THIRD_CHEST (SmallKeys SCENE_GERUDO_TRAINING_GROUND 7)
RC_GERUDO_TRAINING_GROUND_MAZE_PATH_FINAL_CHEST (SmallKeys SCENE_GERUDO_TRAINING_GROUND 9)
RR_GERUDO_TRAINING_GROUND_CENTRAL_MAZE_RIGHT (SmallKeys SCENE_GERUDO_TRAINING_GROUND 9)
def RR_GERUDO_TRAINING_GROUND_CENTRAL_MAZE_RIGHT SCENE_GERUDO_TRAINING_GROUND false RA_GERUDO_TRAINING_GROUND
Gerudo Training Ground Central Maze Right
@ -83,7 +83,7 @@ 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)
RR_GERUDO_TRAINING_GROUND_MQ_MAZE_FIRST_LOCK (SmallKeys SCENE_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))))
@ -96,14 +96,14 @@ 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)
RR_GERUDO_TRAINING_GROUND_MQ_LOBBY (SmallKeys SCENE_GERUDO_TRAINING_GROUND 1)
RR_GERUDO_TRAINING_GROUND_MQ_MAZE_CENTER (SmallKeys SCENE_GERUDO_TRAINING_GROUND 3)
def RR_GERUDO_TRAINING_GROUND_MQ_MAZE_CENTER SCENE_GERUDO_TRAINING_GROUND false RA_GERUDO_TRAINING_GROUND
Gerudo Training Ground MQ Center
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)
RR_GERUDO_TRAINING_GROUND_MQ_MAZE_FIRST_LOCK (SmallKeys SCENE_GERUDO_TRAINING_GROUND 3)
def RR_GERUDO_TRAINING_GROUND_MQ_SAND_ROOM SCENE_GERUDO_TRAINING_GROUND false RA_GERUDO_TRAINING_GROUND
Gerudo Training Ground MQ Sand Room

View file

@ -26,7 +26,7 @@ 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_HUGE_PIT (and HasExplosives (and IsAdult (SmallKeys SCENE_SHADOW_TEMPLE 1)))
RR_SHADOW_TEMPLE_BEYOND_BOAT false
def RR_SHADOW_TEMPLE_HUGE_PIT SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
@ -36,11 +36,11 @@ 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_INVISIBLE_SPIKES_CHEST (and (SmallKeys SCENE_SHADOW_TEMPLE 2) (or (and RT_LENS_SHADOW_PLATFORM RT_LENS_SHADOW) (CanUse RG_LENS_OF_TRUTH)))
RC_SHADOW_TEMPLE_FREESTANDING_KEY (and (SmallKeys SCENE_SHADOW_TEMPLE 2) (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_GS_SINGLE_GIANT_POT (and (SmallKeys SCENE_SHADOW_TEMPLE 2) (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))
@ -49,20 +49,20 @@ RC_SHADOW_TEMPLE_FALLING_SPIKES_POT_4 (or (and CanBreakPots (and RT_SHADOW_UMBRE
RC_SHADOW_TEMPLE_INVISIBLE_BLADES_LEFT_HEART (or (and (CanUse RG_SONG_OF_TIME) IsAdult) (CanUse RG_BOOMERANG))
RC_SHADOW_TEMPLE_INVISIBLE_BLADES_RIGHT_HEART (or (and (CanUse RG_SONG_OF_TIME) IsAdult) (CanUse RG_BOOMERANG))
RC_SHADOW_TEMPLE_PIT_STORM_FAIRY (CanUse RG_SONG_OF_STORMS)
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)))
RR_SHADOW_TEMPLE_WIND_TUNNEL (and (or (and RT_LENS_SHADOW_PLATFORM RT_LENS_SHADOW) (CanUse RG_LENS_OF_TRUTH)) (and (CanUse RG_HOOKSHOT) (SmallKeys SCENE_SHADOW_TEMPLE 3)))
def RR_SHADOW_TEMPLE_WIND_TUNNEL SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple Wind Tunnel
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_GS_NEAR_SHIP (and (CanUse RG_LONGSHOT) (SmallKeys SCENE_SHADOW_TEMPLE 4))
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)))
RC_SHADOW_TEMPLE_SCARECROW_NORTH_HEART (and (CanUse RG_DISTANT_SCARECROW) (SmallKeys SCENE_SHADOW_TEMPLE 4))
RC_SHADOW_TEMPLE_SCARECROW_SOUTH_HEART (and (CanUse RG_DISTANT_SCARECROW) (SmallKeys SCENE_SHADOW_TEMPLE 4))
RR_SHADOW_TEMPLE_BEYOND_BOAT (and CanJumpslashExceptHammer (and (CanUse RG_ZELDAS_LULLABY) (SmallKeys SCENE_SHADOW_TEMPLE 4)))
def RR_SHADOW_TEMPLE_BEYOND_BOAT SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple Beyond Boat
@ -81,7 +81,7 @@ RC_SHADOW_TEMPLE_FLOORMASTER_POT_2 CanBreakPots
RC_SHADOW_TEMPLE_AFTER_SHIP_UPPER_LEFT_HEART (CanUse RG_DISTANT_SCARECROW)
RC_SHADOW_TEMPLE_AFTER_SHIP_UPPER_RIGHT_HEART (CanUse RG_DISTANT_SCARECROW)
RC_SHADOW_TEMPLE_AFTER_SHIP_LOWER_HEART (or (and (or (CanUse RG_FAIRY_BOW) (or (CanUse RG_DISTANT_SCARECROW) (and RT_SHADOW_STATUE (CanUse RG_BOMBCHU_5)))) (CanUse RG_SONG_OF_TIME)) (and (CanUse RG_DISTANT_SCARECROW) (CanUse RG_HOVER_BOOTS)))
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)))
RR_SHADOW_TEMPLE_BOSS_ENTRYWAY (and (or (CanUse RG_FAIRY_BOW) (or (CanUse RG_DISTANT_SCARECROW) (and RT_SHADOW_STATUE (CanUse RG_BOMBCHU_5)))) (and (SmallKeys SCENE_SHADOW_TEMPLE 5) (CanUse RG_HOVER_BOOTS)))
def RR_SHADOW_TEMPLE_MQ_ENTRYWAY SCENE_ID_MAX false
Invalid Region
@ -100,7 +100,7 @@ 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))))
RR_SHADOW_TEMPLE_MQ_DEAD_HAND_AREA (and (Here HasExplosives) (and (SmallKeys SCENE_SHADOW_TEMPLE 6) (or RT_LENS_SHADOW_MQ (CanUse RG_LENS_OF_TRUTH))))
//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
@ -120,7 +120,7 @@ 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_UPPER_HUGE_PIT (and HasExplosives (SmallKeys SCENE_SHADOW_TEMPLE 2))
RR_SHADOW_TEMPLE_MQ_B2_SPINNING_BLADE_ROOM (or RT_LENS_SHADOW_MQ (CanUse RG_LENS_OF_TRUTH))
def RR_SHADOW_TEMPLE_MQ_B2_SPINNING_BLADE_ROOM SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
@ -139,7 +139,7 @@ RR_SHADOW_TEMPLE_MQ_DOCK ShadowShortcutBlock
//Room exists for if it's ever possible to go backwards or void warp into the middle of shadow
def RR_SHADOW_TEMPLE_MQ_B2_TO_B3_CORRIDOR SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple MQ B2 to B3 Corridor
RR_SHADOW_TEMPLE_MQ_FIRST_BEAMOS (SmallKeys RR_SHADOW_TEMPLE 2)
RR_SHADOW_TEMPLE_MQ_FIRST_BEAMOS (SmallKeys SCENE_SHADOW_TEMPLE 2)
RR_SHADOW_TEMPLE_MQ_UPPER_HUGE_PIT true
//bunnyhovers + lens lets you go from the very top of upper pit to the stationary invisible platform below quite easily
@ -164,7 +164,7 @@ def RR_SHADOW_TEMPLE_MQ_LOWER_HUGE_PIT SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPL
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)))
RR_SHADOW_TEMPLE_MQ_FLOOR_SPIKES_ROOM (and (CanUse RG_HOVER_BOOTS) (and (or RT_LENS_SHADOW_MQ_PLATFORM (CanUse RG_LENS_OF_TRUTH)) (SmallKeys SCENE_SHADOW_TEMPLE 3)))
def RR_SHADOW_TEMPLE_MQ_STONE_UMBRELLA_ROOM SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple MQ Stone Umbrella Room
@ -201,7 +201,7 @@ MQShadowFloorSpikeRupees (and (or RT_LENS_SHADOW_MQ (CanUse RG_LENS_OF_TRUTH))
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))))
RR_SHADOW_TEMPLE_MQ_WIND_TUNNEL (and (SmallKeys SCENE_SHADOW_TEMPLE 4) (and (or (CanUse RG_LONGSHOT) (and IsAdult (and (CanUse RG_HOOKSHOT) (or MQShadowFloorSpikeRupees (Here (CanKillEnemy RE_REDEAD)))))) (or CanJumpslash (CanUse RG_HOVER_BOOTS))))
def RR_SHADOW_TEMPLE_MQ_STALFOS_ROOM SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple MQ Stalfos Room
@ -210,7 +210,7 @@ RR_SHADOW_TEMPLE_MQ_FLOOR_SPIKES_ROOM (Here (CanKillEnemy RE_STALFOS ED_CLOSE tr
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_FLOOR_SPIKES_ROOM (and (SmallKeys SCENE_SHADOW_TEMPLE 4) (and (CanPassEnemy RE_BIG_SKULLTULA) (CanUse RG_HOOKSHOT)))
RR_SHADOW_TEMPLE_MQ_WIND_HINT_ROOM (and (CanPassEnemy RE_BIG_SKULLTULA) (or (CanUse RG_HOOKSHOT) (CanUse RG_HOVER_BOOTS)))
RR_SHADOW_TEMPLE_MQ_B4_GIBDO_ROOM (and (CanPassEnemy RE_BIG_SKULLTULA) (or (CanUse RG_HOOKSHOT) (CanUse RG_HOVER_BOOTS)))
@ -231,7 +231,7 @@ 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)
RR_SHADOW_TEMPLE_MQ_DOCK (SmallKeys SCENE_SHADOW_TEMPLE 5)
def RR_SHADOW_TEMPLE_MQ_DOCK SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple MQ Dock
@ -239,7 +239,7 @@ 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)
RR_SHADOW_TEMPLE_MQ_B4_GIBDO_ROOM (SmallKeys SCENE_SHADOW_TEMPLE 5)
//funnily enough, the wheel jump seems to be in logic as there's no strength requirement in N64
RR_SHADOW_TEMPLE_MQ_BEYOND_BOAT (and (or IsAdult (CanUse RG_HOOKSHOT)) (CanUse RG_ZELDAS_LULLABY))
@ -282,14 +282,14 @@ 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)
RR_SHADOW_TEMPLE_MQ_SPIKE_WALLS_ROOM (SmallKeys SCENE_SHADOW_TEMPLE 6)
def RR_SHADOW_TEMPLE_MQ_SPIKE_WALLS_ROOM SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple MQ Spike Walls Room
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)))
RR_SHADOW_TEMPLE_MQ_INVISIBLE_MAZE (and (SmallKeys SCENE_SHADOW_TEMPLE 6) (or RT_LENS_SHADOW_MQ (CanUse RG_LENS_OF_TRUTH)))
def RR_SHADOW_TEMPLE_BOSS_ENTRYWAY SCENE_SHADOW_TEMPLE false RA_SHADOW_TEMPLE
Shadow Temple Boss Entryway

View file

@ -24,13 +24,13 @@ RC_SPIRIT_TEMPLE_ANUBIS_POT_3 (and (or (CanUse RG_BOOMERANG) (or (CanUse RG_FAIR
RC_SPIRIT_TEMPLE_ANUBIS_POT_4 (and (or (CanUse RG_BOOMERANG) (or (CanUse RG_FAIRY_SLINGSHOT) (and (CanUse RG_BOMBCHU_5) RT_SPIRIT_CHILD_CHU))) (or HasExplosives (and (or (CanUse RG_NUTS) (CanUse RG_BOOMERANG)) (or (CanUse RG_STICKS) (or (CanUse RG_KOKIRI_SWORD) (CanUse RG_FAIRY_SLINGSHOT))))))
RC_SPIRIT_TEMPLE_BEFORE_CHILD_CLIMB_SMALL_CRATE_1 CanBreakSmallCrates
RC_SPIRIT_TEMPLE_BEFORE_CHILD_CLIMB_SMALL_CRATE_2 CanBreakSmallCrates
RR_SPIRIT_TEMPLE_CHILD_CLIMB (SmallKeys RR_SPIRIT_TEMPLE 1)
RR_SPIRIT_TEMPLE_CHILD_CLIMB (SmallKeys SCENE_SPIRIT_TEMPLE 1)
def RR_SPIRIT_TEMPLE_CHILD_CLIMB SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Child Spirit Temple Climb
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_NORTH_CHEST (or (HasProjectile HasProjectileAge::Both) (or (and (SmallKeys SCENE_SPIRIT_TEMPLE 2) (and (CanUse RG_SILVER_GAUNTLETS) (HasProjectile HasProjectileAge::Adult))) (and (SmallKeys SCENE_SPIRIT_TEMPLE 5) (and IsChild (HasProjectile HasProjectileAge::Child)))))
RC_SPIRIT_TEMPLE_CHILD_CLIMB_EAST_CHEST (or (HasProjectile HasProjectileAge::Both) (or (and (SmallKeys SCENE_SPIRIT_TEMPLE 2) (and (CanUse RG_SILVER_GAUNTLETS) (HasProjectile HasProjectileAge::Adult))) (and (SmallKeys SCENE_SPIRIT_TEMPLE 5) (and IsChild (HasProjectile HasProjectileAge::Child)))))
RC_SPIRIT_TEMPLE_GS_SUN_ON_FLOOR_ROOM (or (HasProjectile HasProjectileAge::Both) (or (CanUse RG_DINS_FIRE) (or (and TakeDamage (or CanJumpslashExceptHammer (HasProjectile HasProjectileAge::Child))) (or (and IsChild (and (SmallKeys SCENE_SPIRIT_TEMPLE 5) (HasProjectile HasProjectileAge::Child))) (and (SmallKeys SCENE_SPIRIT_TEMPLE 2) (and (CanUse RG_SILVER_GAUNTLETS) (or (HasProjectile HasProjectileAge::Adult) (and TakeDamage CanJumpslashExceptHammer))))))))
RC_SPIRIT_TEMPLE_CHILD_CLIMB_POT_1 CanBreakPots
RR_SPIRIT_TEMPLE_CENTRAL_CHAMBER (or HasExplosives (and RSK_SUNLIGHT_ARROWS (CanUse RG_LIGHT_ARROWS)))
@ -38,38 +38,38 @@ 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_FIRST_MIRROR_LEFT_CHEST (SmallKeys SCENE_SPIRIT_TEMPLE 3)
RC_SPIRIT_TEMPLE_FIRST_MIRROR_RIGHT_CHEST (SmallKeys SCENE_SPIRIT_TEMPLE 3)
RC_SPIRIT_TEMPLE_GS_BOULDER_ROOM (and (CanUse RG_SONG_OF_TIME) (or (CanUse RG_FAIRY_BOW) (or (CanUse RG_HOOKSHOT) (or (CanUse RG_BOMBCHU_5) (and (CanUse RG_BOMB_BAG) RT_SPIRIT_LOWER_ADULT_SWITCH)))))
RC_SPIRIT_TEMPLE_BOULDER_ROOM_SUN_FAIRY (and (CanUse RG_SUNS_SONG) (and (or (CanUse RG_FAIRY_BOW) (or (CanUse RG_HOOKSHOT) (or (CanUse RG_FAIRY_SLINGSHOT) (or (CanUse RG_BOOMERANG) (or (CanUse RG_BOMBCHU_5) (and (CanUse RG_BOMB_BAG) (and IsAdult RT_SPIRIT_LOWER_ADULT_SWITCH))))))) (or (CanUse RG_HOVER_BOOTS) CanJumpslash)))
RR_SPIRIT_TEMPLE_CENTRAL_CHAMBER (SmallKeys RR_SPIRIT_TEMPLE 1)
RR_SPIRIT_TEMPLE_CENTRAL_CHAMBER (SmallKeys SCENE_SPIRIT_TEMPLE 1)
def RR_SPIRIT_TEMPLE_CENTRAL_CHAMBER SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple Central Chamber
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))
RC_SPIRIT_TEMPLE_MAP_CHEST (or (and (or HasExplosives (SmallKeys SCENE_SPIRIT_TEMPLE 2)) (or (CanUse RG_DINS_FIRE) (and (or (CanUse RG_FIRE_ARROWS) RT_SPIRIT_MAP_CHEST) (and (CanUse RG_FAIRY_BOW) (CanUse RG_STICKS))))) (or (and (SmallKeys SCENE_SPIRIT_TEMPLE 5) (and HasExplosives (CanUse RG_STICKS))) (and (SmallKeys SCENE_SPIRIT_TEMPLE 3) (and (or (CanUse RG_FIRE_ARROWS) (and RT_SPIRIT_MAP_CHEST (CanUse RG_FAIRY_BOW))) (CanUse RG_SILVER_GAUNTLETS)))))
RC_SPIRIT_TEMPLE_SUN_BLOCK_ROOM_CHEST (or (and (or HasExplosives (SmallKeys SCENE_SPIRIT_TEMPLE 2)) (or (CanUse RG_DINS_FIRE) (and (or (CanUse RG_FIRE_ARROWS) RT_SPIRIT_SUN_CHEST) (and (CanUse RG_FAIRY_BOW) (CanUse RG_STICKS))))) (or (and (SmallKeys SCENE_SPIRIT_TEMPLE 5) (and HasExplosives (CanUse RG_STICKS))) (and (SmallKeys SCENE_SPIRIT_TEMPLE 3) (and (or (CanUse RG_FIRE_ARROWS) (and RT_SPIRIT_SUN_CHEST (CanUse RG_FAIRY_BOW))) (CanUse RG_SILVER_GAUNTLETS)))))
RC_SPIRIT_TEMPLE_STATUE_ROOM_HAND_CHEST (and (SmallKeys SCENE_SPIRIT_TEMPLE 3) (and (CanUse RG_SILVER_GAUNTLETS) (CanUse RG_ZELDAS_LULLABY)))
RC_SPIRIT_TEMPLE_STATUE_ROOM_NORTHEAST_CHEST (and (SmallKeys SCENE_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 SCENE_SPIRIT_TEMPLE 5) HasExplosives)) (and (CanUse RG_HOOKSHOT) (and (CanUse RG_SILVER_GAUNTLETS) (SmallKeys SCENE_SPIRIT_TEMPLE 2)))))
RC_SPIRIT_TEMPLE_GS_LOBBY (or (and (or HasExplosives (SmallKeys SCENE_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 SCENE_SPIRIT_TEMPLE 5) (and HasExplosives (CanUse RG_BOOMERANG)))) (and (SmallKeys SCENE_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 SCENE_SPIRIT_TEMPLE 2))
RC_SPIRIT_TEMPLE_AFTER_SUN_BLOCK_POT_2 (and CanBreakPots (SmallKeys SCENE_SPIRIT_TEMPLE 2))
RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_1 (and CanBreakPots (SmallKeys SCENE_SPIRIT_TEMPLE 2))
RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_2 (and CanBreakPots (SmallKeys SCENE_SPIRIT_TEMPLE 2))
RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_3 (and CanBreakPots (SmallKeys SCENE_SPIRIT_TEMPLE 2))
RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_4 (and CanBreakPots (SmallKeys SCENE_SPIRIT_TEMPLE 2))
RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_5 (and CanBreakPots (SmallKeys SCENE_SPIRIT_TEMPLE 2))
RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_6 (and CanBreakPots (SmallKeys SCENE_SPIRIT_TEMPLE 2))
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_BEYOND_CENTRAL_LOCKED_DOOR (and (SmallKeys SCENE_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))))
RC_SPIRIT_TEMPLE_SILVER_GAUNTLETS_CHEST (or (and (SmallKeys SCENE_SPIRIT_TEMPLE 3) (and (CanUse RG_LONGSHOT) HasExplosives)) (SmallKeys SCENE_SPIRIT_TEMPLE 5))
RC_SPIRIT_TEMPLE_MIRROR_SHIELD_CHEST (and (SmallKeys SCENE_SPIRIT_TEMPLE 4) (and (CanUse RG_SILVER_GAUNTLETS) HasExplosives))
RR_DESERT_COLOSSUS (or (and IsChild (SmallKeys SCENE_SPIRIT_TEMPLE 5)) (and (CanUse RG_SILVER_GAUNTLETS) (or (and (SmallKeys SCENE_SPIRIT_TEMPLE 3) HasExplosives) (SmallKeys SCENE_SPIRIT_TEMPLE 5))))
def RR_SPIRIT_TEMPLE_BEYOND_CENTRAL_LOCKED_DOOR SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple Beyond Central Locked Door
@ -78,7 +78,7 @@ RC_SPIRIT_TEMPLE_HALLWAY_LEFT_INVISIBLE_CHEST (and (or RT_LENS_SPIRIT (CanUse RG
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))))))))
RR_SPIRIT_TEMPLE_BEYOND_FINAL_LOCKED_DOOR (and (SmallKeys SCENE_SPIRIT_TEMPLE 5) (or RT_SPIRIT_WALL (or (CanUse RG_LONGSHOT) (or (CanUse RG_BOMBCHU_5) (and (or (CanUse RG_BOMB_BAG) (or (CanUse RG_NUTS) (CanUse RG_DINS_FIRE))) (or (CanUse RG_FAIRY_BOW) (or (CanUse RG_HOOKSHOT) (CanUse RG_MEGATON_HAMMER))))))))
def RR_SPIRIT_TEMPLE_BEYOND_FINAL_LOCKED_DOOR SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple Beyond Final Locked Door
@ -163,13 +163,13 @@ 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)
RR_SPIRIT_TEMPLE_MQ_UNDER_LIKE_LIKE (SmallKeys SCENE_SPIRIT_TEMPLE 1)
def RR_SPIRIT_TEMPLE_MQ_UNDER_LIKE_LIKE SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ Under Like Like
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_WEST_1F_RUSTED_SWITCH (SmallKeys SCENE_SPIRIT_TEMPLE 7)
RR_SPIRIT_TEMPLE_MQ_BROKEN_WALL_ROOM CanHitSwitch
def RR_SPIRIT_TEMPLE_MQ_BROKEN_WALL_ROOM SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
@ -181,7 +181,7 @@ RC_SPIRIT_TEMPLE_MQ_CHILD_CLIMB_NORTH_CHEST (MQSpiritSharedBrokenWallRoom RR_SPI
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)
RR_SPIRIT_TEMPLE_MQ_STATUE_ROOM (SmallKeys SCENE_SPIRIT_TEMPLE 2)
def RR_SPIRIT_TEMPLE_MQ_STATUE_ROOM SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ Statue Room
@ -195,7 +195,7 @@ RC_SPIRIT_TEMPLE_MQ_STATUE_CRATE_1 (MQSpiritSharedStatueRoom RR_SPIRIT_TEMPLE_MQ
RC_SPIRIT_TEMPLE_MQ_STATUE_CRATE_2 (MQSpiritSharedStatueRoom RR_SPIRIT_TEMPLE_MQ_STATUE_ROOM CanBreakCrates)
RC_SPIRIT_TEMPLE_MQ_STATUE_SMALL_CRATE (MQSpiritSharedStatueRoom RR_SPIRIT_TEMPLE_MQ_STATUE_ROOM CanBreakSmallCrates)
//we check possible adult access directly in MQSpiritSharedBrokenWallRoom, so this exit only covers Certain Access
RR_SPIRIT_TEMPLE_MQ_BROKEN_WALL_ROOM (SmallKeys RR_SPIRIT_TEMPLE 7)
RR_SPIRIT_TEMPLE_MQ_BROKEN_WALL_ROOM (SmallKeys SCENE_SPIRIT_TEMPLE 7)
//We can use Here instead of Shared here because adult will never need to rely on child access to reach this room, and adult access is Certain
RR_SPIRIT_TEMPLE_MQ_BIG_BLOCK_ROOM_NORTH (Here (or HasFireSource (and RT_SPIRIT_MQ_FROZEN_EYE (and (CanUse RG_FAIRY_BOW) (CanUse RG_SONG_OF_TIME)))))
RR_SPIRIT_TEMPLE_MQ_SUN_BLOCK_ROOM (or IsAdult (or RT_SPIRIT_MQ_SUN_BLOCK_SOT (CanUse RG_SONG_OF_TIME)))
@ -211,11 +211,11 @@ RC_SPIRIT_TEMPLE_MQ_SUN_BLOCKS_POT_1 (MQSpiritSharedStatueRoom RR_SPIRIT_TEMPLE_
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)
RR_SPIRIT_TEMPLE_MQ_WEST_IRON_KNUCKLE (SmallKeys SCENE_SPIRIT_TEMPLE 7)
def RR_SPIRIT_TEMPLE_MQ_WEST_IRON_KNUCKLE SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ East Iron Knuckle
RR_SPIRIT_TEMPLE_MQ_SUN_BLOCK_ROOM (SmallKeys RR_SPIRIT_TEMPLE 7)
RR_SPIRIT_TEMPLE_MQ_SUN_BLOCK_ROOM (SmallKeys SCENE_SPIRIT_TEMPLE 7)
RR_SPIRIT_TEMPLE_MQ_SILVER_GAUNTLETS_HAND (CanKillEnemy RE_IRON_KNUCKLE)
def RR_SPIRIT_TEMPLE_MQ_SILVER_GAUNTLETS_HAND SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
@ -235,7 +235,7 @@ RR_SPIRIT_TEMPLE_MQ_BIG_BLOCK_ROOM_NORTH (if IsChild (CanUse RG_SILVER_GAUNTLETS
def RR_SPIRIT_TEMPLE_MQ_BIG_BLOCK_ROOM_NORTH SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ Block Room North
//Does not need to be shared as it's hard child locked, because adult pushing the block is a permanent flag that blocks the eye target and cannot be undone
RC_SPIRIT_TEMPLE_MQ_SILVER_BLOCK_HALLWAY_CHEST (and IsChild (and (SmallKeys RR_SPIRIT_TEMPLE 7) CanHitEyeTargets))
RC_SPIRIT_TEMPLE_MQ_SILVER_BLOCK_HALLWAY_CHEST (and IsChild (and (SmallKeys SCENE_SPIRIT_TEMPLE 7) CanHitEyeTargets))
//if going to RR_SPIRIT_TEMPLE_MQ_BIG_BLOCK_ROOM_SOUTH from here is ever relevant, there needs to be an event to handle the block
RR_SPIRIT_TEMPLE_MQ_STATUE_ROOM true
@ -248,8 +248,8 @@ RR_SPIRIT_TEMPLE_MQ_STATUE_ROOM true
//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_SILVER_GAUNTLETS_HAND (and (SmallKeys SCENE_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 SCENE_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
@ -273,7 +273,7 @@ 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)
RR_SPIRIT_TEMPLE_MQ_SYMPHONY_ROOM (SmallKeys SCENE_SPIRIT_TEMPLE 7)
def RR_SPIRIT_TEMPLE_MQ_LEEVER_ROOM SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ Leever Room
@ -283,7 +283,7 @@ 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)
RR_SPIRIT_TEMPLE_MQ_1F_EAST (SmallKeys SCENE_SPIRIT_TEMPLE 7)
//Implies CanPassEnemy(RE_MOBLIN_CHIEF)
RR_SPIRIT_TEMPLE_MQ_AFTER_SYMPHONY_ROOM (and (CanUse RG_MEGATON_HAMMER) (and (CanUse RG_SONG_OF_TIME) (and (CanUse RG_EPONAS_SONG) (and (CanUse RG_SUNS_SONG) (and (CanUse RG_SONG_OF_STORMS) (CanUse RG_ZELDAS_LULLABY))))))
@ -297,9 +297,9 @@ def RR_SPIRIT_TEMPLE_MQ_FOUR_BEAMOS_ROOM SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEM
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_STATUE_ROOM_EAST (and (CanAvoidEnemy RE_BEAMOS true 4) (and (CanUse RG_SONG_OF_TIME) (and (SmallKeys SCENE_SPIRIT_TEMPLE 5) (CanUse RG_HOOKSHOT))))
RR_SPIRIT_TEMPLE_MQ_SOT_SUN_ROOM (and (CanAvoidEnemy RE_BEAMOS true 4) (CanUse RG_SONG_OF_TIME))
RR_SPIRIT_TEMPLE_MQ_BIG_WALL (SmallKeys RR_SPIRIT_TEMPLE 6)
RR_SPIRIT_TEMPLE_MQ_BIG_WALL (SmallKeys SCENE_SPIRIT_TEMPLE 6)
def RR_SPIRIT_TEMPLE_MQ_SOT_SUN_ROOM SCENE_SPIRIT_TEMPLE false RA_SPIRIT_TEMPLE
Spirit Temple MQ SoT Sun Room
@ -345,7 +345,7 @@ 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_NINE_CHAIRS_ROOM (SmallKeys SCENE_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

View file

@ -14,13 +14,13 @@ RR_WATER_TEMPLE_EAST_LOWER (or CanWaterTempleLowFromHigh (and (or RT_FEWER_TUNIC
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_LOWER (and CanWaterTempleLowFromHigh (SmallKeys SCENE_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_FALLING_PLATFORM_ROOM (and CanWaterTempleHigh (SmallKeys SCENE_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
@ -51,12 +51,12 @@ 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))
RR_WATER_TEMPLE_BOULDERS_LOWER (and (or (CanUse RG_LONGSHOT) (and RT_WATER_BK_REGION (CanUse RG_HOVER_BOOTS))) (SmallKeys SCENE_WATER_TEMPLE 4))
def RR_WATER_TEMPLE_BOULDERS_LOWER SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple Boulders Lower
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_NORTH_LOWER (SmallKeys SCENE_WATER_TEMPLE 4)
RR_WATER_TEMPLE_BLOCK_ROOM true
RR_WATER_TEMPLE_BOULDERS_UPPER (or (and IsAdult (or (CanUse RG_HOVER_BOOTS) RT_WATER_NORTH_BASEMENT_LEDGE_JUMP)) (and (CanUse RG_HOVER_BOOTS) (CanUse RG_IRON_BOOTS)))
@ -76,7 +76,7 @@ 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))
RR_WATER_TEMPLE_BOSS_KEY_ROOM (and (or (CanUse RG_IRON_BOOTS) (and IsAdult RT_WATER_BK_JUMP_DIVE)) (SmallKeys SCENE_WATER_TEMPLE 5))
def RR_WATER_TEMPLE_BOSS_KEY_ROOM SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple Boss Key Room
@ -84,7 +84,7 @@ 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))
RR_WATER_TEMPLE_BOULDERS_UPPER (and (or (CanUse RG_IRON_BOOTS) (or (and IsAdult RT_WATER_BK_JUMP_DIVE) (or IsChild (HasItem RG_SILVER_SCALE)))) (SmallKeys SCENE_WATER_TEMPLE 5))
def RR_WATER_TEMPLE_SOUTH_LOWER SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple South Lower
@ -107,14 +107,14 @@ 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_LOBBY (SmallKeys SCENE_WATER_TEMPLE 5)
RR_WATER_TEMPLE_CENTRAL_PILLAR_UPPER (CanUse RG_HOOKSHOT)
RR_WATER_TEMPLE_CENTRAL_PILLAR_BASEMENT (and CanWaterTempleMiddle (and (CanUse RG_IRON_BOOTS) (>= WaterTimer 40)))
def RR_WATER_TEMPLE_CENTRAL_PILLAR_UPPER SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple Central Pillar Upper
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)))
RC_WATER_TEMPLE_GS_CENTRAL_PILLAR (or (CanUse RG_LONGSHOT) (and (or (and RT_WATER_FW_CENTRAL_GS (and (CanUse RG_FARORES_WIND) (or (CanUse RG_FAIRY_BOW) (or (CanUse RG_DINS_FIRE) (SmallKeys SCENE_WATER_TEMPLE 5))))) (and RT_WATER_IRONS_CENTRAL_GS (and (CanUse RG_IRON_BOOTS) (or (and (CanUse RG_HOOKSHOT) (CanUse RG_FAIRY_BOW)) (CanUse RG_DINS_FIRE))))) (and CanWaterTempleHigh HookshotOrBoomerang)))
RR_WATER_TEMPLE_LOBBY true
RR_WATER_TEMPLE_CENTRAL_PILLAR_LOWER true
@ -151,8 +151,8 @@ 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))
RR_WATER_TEMPLE_LOBBY (and (CanUse RG_HOOKSHOT) (SmallKeys SCENE_WATER_TEMPLE 4))
RR_WATER_TEMPLE_DRAGON_PILLARS_ROOM (and (CanUse RG_HOOKSHOT) (SmallKeys SCENE_WATER_TEMPLE 5))
def RR_WATER_TEMPLE_DRAGON_PILLARS_ROOM SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple Dragon Pillars Room
@ -233,7 +233,7 @@ RR_WATER_TEMPLE_MQ_3F_NORTH_LEDGE (or (and (MQWaterLevel WL_HIGH) (CanUse RG_LON
//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)))
RR_WATER_TEMPLE_MQ_WATERFALL (and (SmallKeys SCENE_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))
@ -415,7 +415,7 @@ Invalid Region
//This room exists to hold the wonderitems that drop from the emblems here. Specifically this assumes you are standing on the final ledge
def RR_WATER_TEMPLE_MQ_WATERFALL SCENE_WATER_TEMPLE false RA_WATER_TEMPLE
Water Temple Waterfall
RR_WATER_TEMPLE_MQ_3F_CENTRAL (and (SmallKeys RR_WATER_TEMPLE 1) (CanUse RG_LONGSHOT))
RR_WATER_TEMPLE_MQ_3F_CENTRAL (and (SmallKeys SCENE_WATER_TEMPLE 1) (CanUse RG_LONGSHOT))
RR_WATER_TEMPLE_MQ_STALFOS_PIT true
RR_WATER_TEMPLE_MQ_STALFOS_PIT_POTS (or (and MQWaterStalfosPit (and IsAdult (CanUse RG_HOOKSHOT))) (CanUse RG_HOVER_BOOTS))
RR_WATER_TEMPLE_MQ_STALFOS_PIT_UPPER (and MQWaterStalfosPit (CanUse RG_LONGSHOT))

View file

@ -137,17 +137,17 @@ 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)))))
RC_MARKET_TREASURE_CHEST_GAME_REWARD (and (HasItem RG_CHILD_WALLET) (or (and (CanUse RG_LENS_OF_TRUTH) (not RSK_SHUFFLE_CHEST_MINIGAME)) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_SINGLE_KEYS) (SmallKeys SCENE_TREASURE_BOX_SHOP 6)) (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_PACK) (SmallKeys SCENE_TREASURE_BOX_SHOP 1)))))
RC_MARKET_TREASURE_CHEST_GAME_KEY_1 (and (HasItem RG_CHILD_WALLET) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_SINGLE_KEYS) (SmallKeys SCENE_TREASURE_BOX_SHOP 1)) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_PACK) (SmallKeys SCENE_TREASURE_BOX_SHOP 1)) (and (CanUse RG_LENS_OF_TRUTH) (not RSK_SHUFFLE_CHEST_MINIGAME)))))
RC_MARKET_TREASURE_CHEST_GAME_ITEM_1 (and (HasItem RG_CHILD_WALLET) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_SINGLE_KEYS) (SmallKeys SCENE_TREASURE_BOX_SHOP 1)) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_PACK) (SmallKeys SCENE_TREASURE_BOX_SHOP 1)) (and (CanUse RG_LENS_OF_TRUTH) (not RSK_SHUFFLE_CHEST_MINIGAME)))))
RC_MARKET_TREASURE_CHEST_GAME_KEY_2 (and (HasItem RG_CHILD_WALLET) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_SINGLE_KEYS) (SmallKeys SCENE_TREASURE_BOX_SHOP 2)) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_PACK) (SmallKeys SCENE_TREASURE_BOX_SHOP 1)) (and (CanUse RG_LENS_OF_TRUTH) (not RSK_SHUFFLE_CHEST_MINIGAME)))))
RC_MARKET_TREASURE_CHEST_GAME_ITEM_2 (and (HasItem RG_CHILD_WALLET) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_SINGLE_KEYS) (SmallKeys SCENE_TREASURE_BOX_SHOP 2)) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_PACK) (SmallKeys SCENE_TREASURE_BOX_SHOP 1)) (and (CanUse RG_LENS_OF_TRUTH) (not RSK_SHUFFLE_CHEST_MINIGAME)))))
RC_MARKET_TREASURE_CHEST_GAME_KEY_3 (and (HasItem RG_CHILD_WALLET) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_SINGLE_KEYS) (SmallKeys SCENE_TREASURE_BOX_SHOP 3)) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_PACK) (SmallKeys SCENE_TREASURE_BOX_SHOP 1)) (and (CanUse RG_LENS_OF_TRUTH) (not RSK_SHUFFLE_CHEST_MINIGAME)))))
RC_MARKET_TREASURE_CHEST_GAME_ITEM_3 (and (HasItem RG_CHILD_WALLET) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_SINGLE_KEYS) (SmallKeys SCENE_TREASURE_BOX_SHOP 3)) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_PACK) (SmallKeys SCENE_TREASURE_BOX_SHOP 1)) (and (CanUse RG_LENS_OF_TRUTH) (not RSK_SHUFFLE_CHEST_MINIGAME)))))
RC_MARKET_TREASURE_CHEST_GAME_KEY_4 (and (HasItem RG_CHILD_WALLET) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_SINGLE_KEYS) (SmallKeys SCENE_TREASURE_BOX_SHOP 4)) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_PACK) (SmallKeys SCENE_TREASURE_BOX_SHOP 1)) (and (CanUse RG_LENS_OF_TRUTH) (not RSK_SHUFFLE_CHEST_MINIGAME)))))
RC_MARKET_TREASURE_CHEST_GAME_ITEM_4 (and (HasItem RG_CHILD_WALLET) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_SINGLE_KEYS) (SmallKeys SCENE_TREASURE_BOX_SHOP 4)) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_PACK) (SmallKeys SCENE_TREASURE_BOX_SHOP 1)) (and (CanUse RG_LENS_OF_TRUTH) (not RSK_SHUFFLE_CHEST_MINIGAME)))))
RC_MARKET_TREASURE_CHEST_GAME_KEY_5 (and (HasItem RG_CHILD_WALLET) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_SINGLE_KEYS) (SmallKeys SCENE_TREASURE_BOX_SHOP 5)) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_PACK) (SmallKeys SCENE_TREASURE_BOX_SHOP 1)) (and (CanUse RG_LENS_OF_TRUTH) (not RSK_SHUFFLE_CHEST_MINIGAME)))))
RC_MARKET_TREASURE_CHEST_GAME_ITEM_5 (and (HasItem RG_CHILD_WALLET) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_SINGLE_KEYS) (SmallKeys SCENE_TREASURE_BOX_SHOP 5)) (or (and (== RSK_SHUFFLE_CHEST_MINIGAME RO_CHEST_GAME_PACK) (SmallKeys SCENE_TREASURE_BOX_SHOP 1)) (and (CanUse RG_LENS_OF_TRUTH) (not RSK_SHUFFLE_CHEST_MINIGAME)))))
RR_THE_MARKET true
def RR_MARKET_POTION_SHOP SCENE_POTION_SHOP_MARKET false

View file

@ -1,7 +1,7 @@
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))))
THRescuedAllCarpenters (and (SmallKeys SCENE_THIEVES_HIDEOUT (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
@ -14,7 +14,7 @@ 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)))))
THRescuedAllCarpenters (and (== RSK_GERUDO_FORTRESS RO_GF_CARPENTERS_NORMAL) (and (SmallKeys SCENE_THIEVES_HIDEOUT 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
@ -32,7 +32,7 @@ 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)))))
THRescuedAllCarpenters (and (== RSK_GERUDO_FORTRESS RO_GF_CARPENTERS_NORMAL) (and (SmallKeys SCENE_THIEVES_HIDEOUT 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
@ -41,7 +41,7 @@ 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)))))
THRescuedAllCarpenters (and (== RSK_GERUDO_FORTRESS RO_GF_CARPENTERS_NORMAL) (and (SmallKeys SCENE_THIEVES_HIDEOUT 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

View file

@ -3,7 +3,8 @@
#include <stdint.h>
#include "z64item.h"
#include "./generated/regions.h"
#include "soh/Enhancements/randomizer/generated/regions.h"
#include "soh/Enhancements/randomizer/generated/checks.h"
#define MAX_TRICK_NAME_SIZE 50

View file

@ -2593,7 +2593,7 @@ void Context::FinalizeSettings(const std::set<RandomizerCheck>& excludedLocation
}
if (!mOptions[RSK_SHUFFLE_MASTER_SWORD]) {
if (mOptions[RSK_STARTING_MASTER_SWORD]) {
this->GetItemLocation(RC_MASTER_SWORD_PEDESTAL)->SetExcludedOption(1);
this->GetItemLocation(RC_TOT_MASTER_SWORD)->SetExcludedOption(1);
}
}
if (!mOptions[RSK_SHUFFLE_OCARINA]) {