diff --git a/SettingsList.py b/SettingsList.py index d76695fee..7194a48d3 100644 --- a/SettingsList.py +++ b/SettingsList.py @@ -136,7 +136,7 @@ def __init__(self, name, gui_text, min, max, default, step=1, logic_tricks = { 'Fewer Tunic Requirements': { 'name' : 'logic_fewer_tunic_requirements', - 'tags' : ("General", "Fire Temple", "Water Temple", "Gerudo Training Ground", "Zora's Fountain",), + 'tags' : ("General", "Fire Temple", "Water Temple", "Gerudo Training Ground", "Zora's Fountain", "Death Mountain Crater",), 'tooltip' : '''\ Allows the following possible without Tunics: - Enter Water Temple. The key below the center @@ -348,8 +348,8 @@ def __init__(self, name, gui_text, min, max, default, step=1, 'tags' : ("Forest Temple", "Entrance", "Skulltulas",), 'tooltip' : '''\ Allows killing this Skulltula with Sword or Sticks by - jump slashing it as you let go from the vines. You will - take fall damage. + jump slashing it as you let go from the vines. You can + avoid taking fall damage by recoiling onto the tree. Also allows killing it as Child with a Bomb throw. It's much more difficult to use a Bomb as child due to Child Link's shorter height. @@ -373,6 +373,8 @@ def __init__(self, name, gui_text, min, max, default, step=1, front of the switch, either use the Hover Boots or hit the shortcut switch at the top of the room and jump from the glass blocks that spawn. + Sticks can be used as child, but the Kokiri + Sword is too short to reach through the glass. '''}, #'Forest Temple MQ Twisted Hallway Switch with Hookshot': { # 'name' : 'logic_forest_mq_hallway_switch_hookshot', @@ -382,6 +384,16 @@ def __init__(self, name, gui_text, min, max, default, step=1, # and the wall. Through that gap you can hookshot # the target on the ceiling. # '''}, + 'Forest Temple MQ Twisted Hallway Switch with Boomerang': { + 'name' : 'logic_forest_mq_hallway_switch_boomerang', + 'tags' : ("Forest Temple", "Entrance",), + 'tooltip' : '''\ + The Boomerang can return to Link through walls, + allowing child to hit the hallway switch. This + can be used to allow adult to pass through later, + or in conjuction with "Forest Temple Outside + Backdoor with Jump Slash". + '''}, 'Death Mountain Trail Chest with Strength': { 'name' : 'logic_dmt_bombable', 'tags' : ("Death Mountain Trail",), @@ -446,7 +458,7 @@ def __init__(self, name, gui_text, min, max, default, step=1, 'tooltip' : '''\ Precise hookshot aiming at the platform chains can be used to reach the boss platform from the middle landings. - Using a jumpslash immediately after reaching a chain + Using a jump slash immediately after reaching a chain makes aiming more lenient. Relevant only when Spirit Temple boss shortcuts are on. '''}, @@ -623,7 +635,7 @@ def __init__(self, name, gui_text, min, max, default, step=1, '''}, 'Shadow Temple MQ After Wind Gold Skulltula with Nothing': { 'name' : 'logic_shadow_mq_after_wind_gs', - 'tags' : ("Shadow Temple","Skulltulas",), + 'tags' : ("Shadow Temple", "Skulltulas",), 'tooltip' : '''\ The Gold Skulltula in the rubble pile can be killed with a sword slash without blowing up the rubble. The @@ -666,7 +678,8 @@ def __init__(self, name, gui_text, min, max, default, step=1, expire. You can get extra time to show the Eye Drops if you warp immediately upon receiving them. If you don't have many hearts, you may have to reset the heat timer - by quickly dipping in and out of Darunia's chamber. + by quickly dipping in and out of Darunia's chamber or + quickly equipping and unequipping the Goron Tunic. This trick does not apply if "Randomize Warp Song Destinations" is enabled, or if the settings are such that trade items do not need to be delivered within a @@ -705,8 +718,10 @@ def __init__(self, name, gui_text, min, max, default, step=1, 'tooltip' : '''\ Climb the tower as high as you can without touching the Gold Skulltula, then let go and - jump slash immediately. You will take fall - damage. + jump slash immediately. By jump-slashing from + as low on the ladder as possible to still + hit the Skulltula, this trick can be done + without taking fall damage. '''}, 'Deku Tree MQ Compass Room GS Boulders with Just Hammer': { 'name' : 'logic_deku_mq_compass_gs', @@ -728,11 +743,10 @@ def __init__(self, name, gui_text, min, max, default, step=1, 'name' : 'logic_spirit_mq_lower_adult', 'tags' : ("Spirit Temple",), 'tooltip' : '''\ - It can be done with Din\'s Fire and Bow. - Whenever an arrow passes through a lit torch, it - resets the timer. It's finicky but it's also - possible to stand on the pillar next to the center - torch, which makes it easier. + By standing in a precise position it is possible to + light two of the torches with a single use of Din\'s + Fire. This saves enough time to be able to light all + three torches with only Din\'s. '''}, 'Spirit Temple Map Chest with Bow': { 'name' : 'logic_spirit_map_chest', @@ -801,11 +815,8 @@ def __init__(self, name, gui_text, min, max, default, step=1, 'tooltip' : '''\ There is an invisible Hookshot target that can be used to get over the gate that blocks you from going to this - Skulltula early. This avoids going through some rooms - that normally require a Small Key to access. If "Water - Temple North Basement Ledge with Precise Jump" is not - enabled, this also skips needing Hover Boots or - Scarecrow's Song to reach the locked door. + Skulltula early, skipping a small key as well as + needing Hovers or Scarecrow to reach the locked door. '''}, 'Water Temple Falling Platform Room GS with Hookshot': { 'name' : 'logic_water_falling_platform_gs_hookshot', @@ -884,13 +895,31 @@ def __init__(self, name, gui_text, min, max, default, step=1, midflight, with precise timing and positioning. '''}, 'Death Mountain Crater Upper to Lower with Hammer': { - 'name' : 'logic_crater_upper_to_lower', + 'name' : 'logic_crater_boulder_jumpslash', 'tags' : ("Death Mountain Crater",), 'tooltip' : '''\ With the Hammer, you can jump slash the rock twice in the same jump in order to destroy it before you fall into the lava. '''}, + 'Death Mountain Crater Upper to Lower Boulder Skip': { + 'name' : 'logic_crater_boulder_skip', + 'tags' : ("Death Mountain Crater",), + 'tooltip' : '''\ + With careful positioning, you can jump to the ledge + where the boulder is, then use repeated ledge grabs + to shimmy to a climbable ledge. This trick supersedes + "Death Mountain Crater Upper to Lower with Hammer". + '''}, + 'Death Mountain Crater Jump to Bolero': { + 'name' : 'logic_crater_bolero_jump', + 'tags' : ("Death Mountain Crater",), + 'tooltip' : '''\ + Using a shield to drop a pot while you have + the perfect speed and position, the pot can + push you that little extra distance you + need to jump across the gap in the bridge. + '''}, 'Zora\'s Domain Entry with Hover Boots': { 'name' : 'logic_zora_with_hovers', 'tags' : ("Zora's River",), @@ -1065,27 +1094,32 @@ def __init__(self, name, gui_text, min, max, default, step=1, from the switch and open the door before it closes. '''}, - 'Jabu Boss Door Switch with Bombchus': { - 'name' : 'logic_jabu_boss_door_chus', + 'Jabu Near Boss Ceiling Switch with Explosives': { + 'name' : 'logic_jabu_near_boss_explosives', 'tags' : ("Jabu Jabu's Belly", "Entrance",), 'tooltip' : '''\ - You can trigger the switch that opens the - final door before the Jabu boss room with - a precisely aimed bombchu. - Since a boomerang is still required to - defeat Barinade, this trick is only useful - in conjunction with shuffled dungeon bosses. + You can hit the switch that opens the door to the boss + room using a precisely-aimed Bombchu. Also, using the + Hover Boots, adult can throw a Bomb at the switch. This + trick is only relevant if "Shuffle Boss Entrances" is + enabled. '''}, - 'Jabu Boss Door Switch with Slingshot or Bow': { - 'name' : 'logic_jabu_boss_door_bow', - 'tags' : ("Jabu Jabu's Belly", "Entrance",), + 'Jabu Near Boss Ceiling Switch/GS without Boomerang or Explosives': { + 'name' : 'logic_jabu_near_boss_ranged', + 'tags' : ("Jabu Jabu's Belly", "Skulltulas", "Entrance"), 'tooltip' : '''\ - You can trigger the switch that opens the - final door before the Jabu boss room with - a precisely aimed slingshot or bow shot. - Since a boomerang is still required to - defeat Barinade, this trick is only useful - in conjunction with shuffled dungeon bosses. + Vanilla Jabu: From near the entrance into the room, you can + hit the switch that opens the door to the boss room using a + precisely-aimed use of the Slingshot, Bow, or Longshot. As well, + if you climb to the top of the vines you can stand on the right + edge of the platform and shoot around the glass. From this + distance, even the Hookshot can reach the switch. This trick is + only relevant if "Shuffle Boss Entrances" is enabled. + + MQ Jabu: A Gold Skulltula Token can be collected with the + Hookshot or Longshot using the same methods as hitting the switch + in vanilla. This trick is usually only relevant if Jabu dungeon + shortcuts are enabled. '''}, 'Kakariko Rooftop GS with Hover Boots': { 'name' : 'logic_kakariko_rooftop_gs', @@ -1312,10 +1346,12 @@ def __init__(self, name, gui_text, min, max, default, step=1, 'name' : 'logic_forest_outside_backdoor', 'tags' : ("Forest Temple",), 'tooltip' : '''\ - With a precise jump slash from above, - you can reach the backdoor to the west - courtyard without Hover Boots. Applies - to both Vanilla and Master Quest. + A jump slash recoil can be used to reach the + ledge in the block puzzle room that leads to + the west courtyard. This skips a potential + Hover Boots requirement in vanilla, and it + can sometimes apply in MQ as well. This trick + can be performed as both ages. '''}, 'Forest Temple East Courtyard Door Frame with Hover Boots': { 'name' : 'logic_forest_door_frame', @@ -1360,7 +1396,7 @@ def __init__(self, name, gui_text, min, max, default, step=1, '''}, 'Dodongo\'s Cavern Smash the Boss Lobby Floor': { 'name' : 'logic_dc_hammer_floor', - 'tags' : ("Dodongo's Cavern" "Entrance",), + 'tags' : ("Dodongo's Cavern", "Entrance",), 'tooltip' : '''\ The bombable floor before King Dodongo can be destroyed with Hammer if hit in the very center. This is only @@ -1492,7 +1528,7 @@ def __init__(self, name, gui_text, min, max, default, step=1, '''}, 'Lensless Wasteland': { 'name' : 'logic_lens_wasteland', - 'tags' : ("Lens of Truth","Haunted Wasteland",), + 'tags' : ("Lens of Truth", "Haunted Wasteland",), 'tooltip' : '''\ By memorizing the path, you can travel through the Wasteland without using the Lens of Truth to see @@ -1502,61 +1538,62 @@ def __init__(self, name, gui_text, min, max, default, step=1, '''}, 'Bottom of the Well without Lens of Truth': { 'name' : 'logic_lens_botw', - 'tags' : ("Lens of Truth","Bottom of the Well",), + 'tags' : ("Lens of Truth", "Bottom of the Well",), 'tooltip' : '''\ Removes the requirements for the Lens of Truth in Bottom of the Well. '''}, 'Ganon\'s Castle MQ without Lens of Truth': { 'name' : 'logic_lens_castle_mq', - 'tags' : ("Lens of Truth","Ganon's Castle",), + 'tags' : ("Lens of Truth", "Ganon's Castle",), 'tooltip' : '''\ Removes the requirements for the Lens of Truth in Ganon's Castle MQ. '''}, 'Ganon\'s Castle without Lens of Truth': { 'name' : 'logic_lens_castle', - 'tags' : ("Lens of Truth","Ganon's Castle",), + 'tags' : ("Lens of Truth", "Ganon's Castle",), 'tooltip' : '''\ Removes the requirements for the Lens of Truth in Ganon's Castle. '''}, 'Gerudo Training Ground MQ without Lens of Truth': { 'name' : 'logic_lens_gtg_mq', - 'tags' : ("Lens of Truth","Gerudo Training Ground",), + 'tags' : ("Lens of Truth", "Gerudo Training Ground",), 'tooltip' : '''\ Removes the requirements for the Lens of Truth in Gerudo Training Ground MQ. '''}, 'Gerudo Training Ground without Lens of Truth': { 'name' : 'logic_lens_gtg', - 'tags' : ("Lens of Truth","Gerudo Training Ground",), + 'tags' : ("Lens of Truth", "Gerudo Training Ground",), 'tooltip' : '''\ Removes the requirements for the Lens of Truth in Gerudo Training Ground. '''}, 'Jabu MQ without Lens of Truth': { 'name' : 'logic_lens_jabu_mq', - 'tags' : ("Lens of Truth","Jabu Jabu's Belly",), + 'tags' : ("Lens of Truth", "Jabu Jabu's Belly",), 'tooltip' : '''\ Removes the requirements for the Lens of Truth in Jabu MQ. '''}, 'Shadow Temple MQ Stationary Objects without Lens of Truth': { 'name' : 'logic_lens_shadow_mq', - 'tags' : ("Lens of Truth","Shadow Temple",), + 'tags' : ("Lens of Truth", "Shadow Temple",), 'tooltip' : '''\ Removes the requirements for the Lens of Truth in Shadow Temple MQ for most areas in the dungeon. See "Shadow Temple MQ Invisible Moving Platform without Lens of Truth", "Shadow Temple MQ Invisible - Blades Silver Rupees without Lens of Truth", and - "Shadow Temple MQ 2nd Dead Hand without Lens of Truth" + Blades Silver Rupees without Lens of Truth", + "Shadow Temple MQ 2nd Dead Hand without Lens of Truth", + and "Shadow Temple Bongo Bongo without Lens of Truth" for exceptions. '''}, 'Shadow Temple MQ Invisible Moving Platform without Lens of Truth': { 'name' : 'logic_lens_shadow_mq_platform', - 'tags' : ("Lens of Truth","Shadow Temple",), + 'tags' : ("Lens of Truth", "Shadow Temple",), 'tooltip' : '''\ Removes the requirements for the Lens of Truth in Shadow Temple MQ to cross the invisible moving @@ -1564,7 +1601,7 @@ def __init__(self, name, gui_text, min, max, default, step=1, '''}, 'Shadow Temple MQ Invisible Blades Silver Rupees without Lens of Truth': { 'name' : 'logic_lens_shadow_mq_invisible_blades', - 'tags' : ("Lens of Truth","Shadow Temple",), + 'tags' : ("Lens of Truth", "Shadow Temple",), 'tooltip' : '''\ Removes the requirement for the Lens of Truth or Nayru's Love in Shadow Temple MQ for the Invisible @@ -1572,25 +1609,24 @@ def __init__(self, name, gui_text, min, max, default, step=1, '''}, 'Shadow Temple MQ 2nd Dead Hand without Lens of Truth': { 'name' : 'logic_lens_shadow_mq_dead_hand', - 'tags' : ("Lens of Truth","Shadow Temple",), + 'tags' : ("Lens of Truth", "Shadow Temple",), 'tooltip' : '''\ - Dead Hand can spawn out of bounds in the back room of - Shadow Temple, making him unreachable until the room - is reloaded. The only way to tell if this happened is - with Lens of Truth. This trick removes that safety net. + Dead Hand spawns in a random spot within the room. + Having Lens removes the hassle of having to comb + the room looking for his spawn location. '''}, 'Shadow Temple Stationary Objects without Lens of Truth': { 'name' : 'logic_lens_shadow', - 'tags' : ("Lens of Truth","Shadow Temple",), + 'tags' : ("Lens of Truth", "Shadow Temple",), 'tooltip' : '''\ Removes the requirements for the Lens of Truth in Shadow Temple for most areas in the dungeon except for crossing the moving platform in the huge - pit room. + pit room and for fighting Bongo Bongo. '''}, 'Shadow Temple Invisible Moving Platform without Lens of Truth': { 'name' : 'logic_lens_shadow_platform', - 'tags' : ("Lens of Truth","Shadow Temple",), + 'tags' : ("Lens of Truth", "Shadow Temple",), 'tooltip' : '''\ Removes the requirements for the Lens of Truth in Shadow Temple to cross the invisible moving @@ -1598,14 +1634,14 @@ def __init__(self, name, gui_text, min, max, default, step=1, '''}, 'Spirit Temple MQ without Lens of Truth': { 'name' : 'logic_lens_spirit_mq', - 'tags' : ("Lens of Truth","Spirit Temple",), + 'tags' : ("Lens of Truth", "Spirit Temple",), 'tooltip' : '''\ Removes the requirements for the Lens of Truth in Spirit Temple MQ. '''}, 'Spirit Temple without Lens of Truth': { 'name' : 'logic_lens_spirit', - 'tags' : ("Lens of Truth","Spirit Temple",), + 'tags' : ("Lens of Truth", "Spirit Temple",), 'tooltip' : '''\ Removes the requirements for the Lens of Truth in Spirit Temple. diff --git a/data/World/Bosses.json b/data/World/Bosses.json index dcac482d3..3702aab5a 100644 --- a/data/World/Bosses.json +++ b/data/World/Bosses.json @@ -138,8 +138,8 @@ "Water Temple Clear": "can_use(Hookshot)" }, "locations": { - "Morpha": "'Water Temple Clear'", - "Water Temple Morpha Heart": "'Water Temple Clear'" + "Morpha": "can_use(Hookshot)", + "Water Temple Morpha Heart": "can_use(Hookshot)" }, "exits": { "Water Temple Boss Door": "True" @@ -190,5 +190,14 @@ "exits": { "Spirit Temple Boss Door": "True" } + }, + { + "region_name": "Ganons Castle Tower", + "dungeon": "Ganons Castle", + "locations": { + "Ganons Tower Boss Key Chest": "True", + "Ganondorf Hint": "Boss_Key_Ganons_Castle", + "Ganon": "Boss_Key_Ganons_Castle and can_use(Light_Arrows)" + } } ] diff --git a/data/World/Fire Temple MQ.json b/data/World/Fire Temple MQ.json index 479b8c8eb..2d224053f 100644 --- a/data/World/Fire Temple MQ.json +++ b/data/World/Fire Temple MQ.json @@ -77,12 +77,12 @@ "Fire Temple MQ Lizalfos Maze Upper Chest": "True", "Fire Temple MQ Compass Chest": "has_explosives", "Fire Temple MQ GS Skull On Fire": " - (can_play(Song_of_Time) and can_use(Hookshot) and (has_explosives or logic_rusted_switches)) or - can_use(Longshot)", + (can_use(Longshot) or (can_play(Song_of_Time) and can_use(Hookshot))) and + (has_explosives or logic_rusted_switches or (can_use(Longshot) and logic_fire_scarecrow))", "Wall Fairy": " has_bottle and - ((can_play(Song_of_Time) and can_use(Hookshot) and (has_explosives or logic_rusted_switches)) or - can_use(Longshot))", + (can_use(Longshot) or (can_play(Song_of_Time) and can_use(Hookshot))) and + (has_explosives or logic_rusted_switches or (can_use(Longshot) and logic_fire_scarecrow))", "Fairy Pot": "has_bottle and (Small_Key_Fire_Temple, 3)" }, "exits": { diff --git a/data/World/Forest Temple MQ.json b/data/World/Forest Temple MQ.json index 1c84ccd6a..acc01b011 100644 --- a/data/World/Forest Temple MQ.json +++ b/data/World/Forest Temple MQ.json @@ -22,20 +22,39 @@ (can_play(Song_of_Time) or is_child) and (is_adult or can_use(Dins_Fire) or can_use(Sticks) or can_use(Slingshot) or Kokiri_Sword)", - "Forest Temple MQ GS Block Push Room": "is_adult or Kokiri_Sword", "Fairy Pot": "has_bottle and (can_play(Song_of_Time) or is_child)" }, "exits": { "Forest Temple NW Outdoors": "can_use(Bow) or can_use(Slingshot)", "Forest Temple NE Outdoors": "can_use(Bow) or can_use(Slingshot)", - # End of the road for child + "Forest Temple Before Block Puzzle": "here(is_adult or Kokiri_Sword)", + "Forest Temple Before Boss": " + (Forest_Temple_Jo_and_Beth and Forest_Temple_Amy_and_Meg) or forest_temple_shortcuts" + } + }, + { + "region_name": "Forest Temple Before Block Puzzle", + "dungeon": "Forest Temple", + "locations": { + "Forest Temple MQ GS Block Push Room": "True" + }, + "exits": { "Forest Temple After Block Puzzle": " is_adult and (Progressive_Strength_Upgrade or - (logic_forest_mq_block_puzzle and has_bombchus and can_use(Hookshot)))", + (logic_forest_mq_block_puzzle and has_bombchus and Hookshot))", + # Child cannot climb these large blocks "Forest Temple Outdoor Ledge": " - (logic_forest_mq_hallway_switch_jumpslash and can_use(Hover_Boots))", - "Forest Temple Before Boss": " - (Forest_Temple_Jo_and_Beth and Forest_Temple_Amy_and_Meg) or forest_temple_shortcuts" + (at('Forest Temple Outdoor Ledge', True) or + here((logic_forest_mq_hallway_switch_boomerang and can_use(Boomerang)) or + (logic_forest_mq_hallway_switch_jumpslash and + (can_use(Hover_Boots) or + (((logic_forest_mq_block_puzzle and has_bombchus) or + (Progressive_Strength_Upgrade and (is_adult or Slingshot))) and + (Progressive_Strength_Upgrade or can_use(Hookshot)) and + (is_adult or Sticks)))))) and + (can_use(Hover_Boots) or can_use(Hookshot) or + (Progressive_Strength_Upgrade and + logic_forest_outside_backdoor and can_jumpslash))" } }, { @@ -46,10 +65,7 @@ }, "exits": { "Forest Temple Bow Region": "(Small_Key_Forest_Temple, 4)", - "Forest Temple Outdoor Ledge": " - (Small_Key_Forest_Temple, 3) or - (logic_forest_mq_hallway_switch_jumpslash and - (can_use(Hookshot) or logic_forest_outside_backdoor))", + "Forest Temple Outdoor Ledge": "(Small_Key_Forest_Temple, 3)", "Forest Temple NW Outdoors": "(Small_Key_Forest_Temple, 2)" # Only 2 keys because you must have had access to falling ceiling room to have wasted a key there # and access to falling ceiling room means you must also have had to access to the lower area of this courtyard diff --git a/data/World/Forest Temple.json b/data/World/Forest Temple.json index fae1dab8c..a93e48b7f 100644 --- a/data/World/Forest Temple.json +++ b/data/World/Forest Temple.json @@ -4,21 +4,29 @@ "dungeon": "Forest Temple", "locations": { "Forest Temple First Room Chest": "True", - "Forest Temple First Stalfos Chest": "is_adult or Kokiri_Sword", "Forest Temple GS First Room": " (is_adult and (Hookshot or Bow or Bombs)) or (is_child and (Boomerang or Slingshot)) or - has_bombchus or can_use(Dins_Fire) or (logic_forest_first_gs and (Bombs or - (can_jumpslash and can_take_damage)))", - "Forest Temple GS Lobby": "can_use(Hookshot) or can_use(Boomerang)", - "Fairy Pot": "has_bottle and (is_adult or can_child_attack or Nuts)" + has_bombchus or can_use(Dins_Fire) or (logic_forest_first_gs and (Bombs or can_jumpslash))" }, "exits": { "SFM Forest Temple Entrance Ledge": "True", + "Forest Temple Central Area": "is_adult or can_child_attack or Nuts" + } + }, + { + "region_name": "Forest Temple Central Area", + "dungeon": "Forest Temple", + "locations": { + "Forest Temple First Stalfos Chest": "is_adult or Kokiri_Sword", + "Forest Temple GS Lobby": "can_use(Hookshot) or can_use(Boomerang)", + "Fairy Pot": "has_bottle" + }, + "exits": { "Forest Temple NW Outdoors": "can_play(Song_of_Time) or is_child", "Forest Temple NE Outdoors": "can_use(Bow) or can_use(Slingshot)", "Forest Temple Block Push Room": "(Small_Key_Forest_Temple, 1)", - "Forest Temple Before Boss": "(Forest_Temple_Jo_and_Beth and Forest_Temple_Amy_and_Meg) or - forest_temple_shortcuts" + "Forest Temple Before Boss": " + (Forest_Temple_Jo_and_Beth and Forest_Temple_Amy_and_Meg) or forest_temple_shortcuts" } }, { @@ -27,7 +35,7 @@ "locations": { "Forest Temple GS Level Island Courtyard": " can_use(Longshot) or - at('Forest Temple Outside Upper Ledge', can_use(Hookshot))", + at('Forest Temple Outside Upper Ledge', can_use(Hookshot) or can_use(Boomerang))", "Deku Baba Sticks": "is_adult or Kokiri_Sword or Boomerang", "Deku Baba Nuts": " is_adult or Slingshot or Sticks or @@ -35,11 +43,10 @@ }, "exits": { "Forest Temple NE Outdoors": "(Progressive_Scale, 2)", - #Other methods of crossing through the well are not currently relevant. + # Other methods of crossing through the well are not currently relevant. "Forest Temple Outdoors High Balconies": " here(is_adult or has_explosives or - ((Boomerang or Nuts or Deku_Shield) and - (Sticks or Kokiri_Sword or Slingshot)))" + ((Boomerang or Nuts or Deku_Shield) and (Sticks or Kokiri_Sword or Slingshot)))" } }, { @@ -47,9 +54,9 @@ "dungeon": "Forest Temple", "locations": { "Forest Temple Raised Island Courtyard Chest": " - can_use(Hookshot) or - at('Forest Temple Falling Room', True) or - (logic_forest_outdoors_ledge and can_use(Hover_Boots) and at('Forest Temple Outdoors High Balconies', True))", + can_use(Hookshot) or at('Forest Temple Falling Room', True) or + (logic_forest_outdoors_ledge and can_use(Hover_Boots) and + at('Forest Temple Outdoors High Balconies', True))", "Forest Temple GS Raised Island Courtyard": " can_use(Hookshot) or (logic_forest_outdoor_east_gs and can_use(Boomerang)) or at('Forest Temple Falling Room', can_use(Bow) or can_use(Dins_Fire) or has_explosives)", @@ -61,7 +68,6 @@ "exits": { "Forest Temple Outdoors High Balconies": " can_use(Longshot) or (logic_forest_vines and can_use(Hookshot))", - #Longshot can grab some very high up vines to drain the well. "Forest Temple NW Outdoors": "can_use(Iron_Boots) or (Progressive_Scale, 2)", "Forest Temple Lobby": "True" } @@ -101,13 +107,14 @@ Progressive_Strength_Upgrade and (can_use(Bow) or can_use(Slingshot))" }, "exits": { - #end of the road for child forest. No hovers and too short to climb push blocks "Forest Temple Outside Upper Ledge": " - can_use(Hover_Boots) or (logic_forest_outside_backdoor and is_adult and Progressive_Strength_Upgrade)", + can_use(Hover_Boots) or + (logic_forest_outside_backdoor and Progressive_Strength_Upgrade and can_jumpslash)", "Forest Temple Bow Region": " Progressive_Strength_Upgrade and (Small_Key_Forest_Temple, 3) and is_adult", "Forest Temple Straightened Hall": " Progressive_Strength_Upgrade and (Small_Key_Forest_Temple, 2) and can_use(Bow)" + # Child cannot climb these large blocks } }, { @@ -143,14 +150,14 @@ }, "exits": { "Forest Temple Falling Room": " - (Small_Key_Forest_Temple, 5) and (Bow or can_use(Dins_Fire))" + (Small_Key_Forest_Temple, 5) and (Bow or can_use(Dins_Fire))" } }, { "region_name": "Forest Temple Before Boss", "dungeon": "Forest Temple", "locations": { - "Forest Temple Basement Chest": "is_adult or can_child_attack or Nuts", + "Forest Temple Basement Chest": "True", "Forest Temple GS Basement": "can_use(Hookshot) or can_use(Boomerang)" }, "exits": { diff --git a/data/World/Jabu Jabus Belly MQ.json b/data/World/Jabu Jabus Belly MQ.json index 8e11e1edc..5a9da856d 100644 --- a/data/World/Jabu Jabus Belly MQ.json +++ b/data/World/Jabu Jabus Belly MQ.json @@ -48,10 +48,12 @@ "Jabu Jabus Belly MQ GS Invisible Enemies Room": " (at('Jabu Jabus Belly Depths', True) or jabu_shortcuts) and ((can_use(Hookshot) and can_use(Hover_Boots)) or - (here((logic_lens_jabu_mq or can_use(Lens_of_Truth)) and - (can_use(Slingshot) or can_use(Bow) or can_use(Longshot) or - (can_use(Hookshot) and can_use(Iron_Boots) and logic_lens_jabu_mq))) and - (can_use(Boomerang) or (can_use(Hookshot) and can_use(Iron_Boots)))))" + (here((logic_lens_jabu_mq or can_use(Lens_of_Truth)) and + (can_use(Slingshot) or can_use(Bow) or can_use(Longshot) or + (can_use(Hookshot) and can_use(Iron_Boots) and logic_lens_jabu_mq))) and + (can_use(Boomerang) or (can_use(Hookshot) and can_use(Iron_Boots)))))" + # Lens of Truth cannot be used underwater. + # Adult's legs are too long to swim directly onto the Hookshot pillar. }, "exits": { "Jabu Jabus Belly Elevator Room": "True", @@ -91,7 +93,8 @@ "dungeon": "Jabu Jabus Belly", "locations": { "Jabu Jabus Belly MQ Near Boss Chest": "can_use(Slingshot)", - "Jabu Jabus Belly MQ GS Near Boss": "can_use(Boomerang) or can_use(Longshot)", + "Jabu Jabus Belly MQ GS Near Boss": " + can_use(Boomerang) or (logic_jabu_near_boss_ranged and can_use(Hookshot))", "Fairy Pot": "has_bottle" }, "exits": { diff --git a/data/World/Jabu Jabus Belly.json b/data/World/Jabu Jabus Belly.json index 19d8df9b5..5207125e7 100644 --- a/data/World/Jabu Jabus Belly.json +++ b/data/World/Jabu Jabus Belly.json @@ -51,8 +51,11 @@ "exits": { "Jabu Jabus Belly Main": "True", "Jabu Jabus Belly Boss Door": " - can_use(Boomerang) or (logic_jabu_boss_door_bow and (can_use(Bow) or can_use(Slingshot)) or - (logic_jabu_boss_door_chus and has_bombchus))" + can_use(Boomerang) or + (logic_jabu_near_boss_ranged and + (can_use(Hookshot) or can_use(Bow) or can_use(Slingshot))) or + (logic_jabu_near_boss_explosives and + (has_bombchus or (Bombs and can_use(Hover_Boots))))" } } ] diff --git a/data/World/Overworld.json b/data/World/Overworld.json index d9c72fcd0..5c26e9464 100644 --- a/data/World/Overworld.json +++ b/data/World/Overworld.json @@ -92,7 +92,7 @@ (can_use(Hookshot) or (logic_adult_kokiri_gs and can_use(Hover_Boots)))", "KF Gossip Stone": "True", "Gossip Stone Fairy": "can_summon_gossip_fairy_without_suns and has_bottle", - "Bean Plant Fairy": "can_plant_bean and can_play(Song_of_Storms) and has_bottle" + "Bean Plant Fairy": "is_child and can_plant_bean and can_play(Song_of_Storms) and has_bottle" }, "exits": { "KF Links House": "True", @@ -219,7 +219,7 @@ "LW GS Bean Patch Near Bridge": "can_plant_bugs and can_child_attack", "LW Gossip Stone": "True", "Gossip Stone Fairy": "can_summon_gossip_fairy_without_suns and has_bottle", - "Bean Plant Fairy": "can_plant_bean and can_play(Song_of_Storms) and has_bottle", + "Bean Plant Fairy": "is_child and can_plant_bean and can_play(Song_of_Storms) and has_bottle", "Bug Shrub": "is_child and can_cut_shrubs and has_bottle" }, "exits": { @@ -393,7 +393,7 @@ "LH Gossip Stone (Southeast)": "True", "LH Gossip Stone (Southwest)": "True", "Gossip Stone Fairy": "can_summon_gossip_fairy and has_bottle", - "Bean Plant Fairy": "can_plant_bean and can_play(Song_of_Storms) and has_bottle", + "Bean Plant Fairy": "is_child and can_plant_bean and can_play(Song_of_Storms) and has_bottle", "Butterfly Fairy": "can_use(Sticks) and has_bottle", "Bug Shrub": "is_child and can_cut_shrubs and has_bottle" }, @@ -491,7 +491,7 @@ "GV Cow": "is_child and can_play(Eponas_Song)", "GV Gossip Stone": "True", "Gossip Stone Fairy": "can_summon_gossip_fairy and has_bottle", - "Bean Plant Fairy": "can_plant_bean and can_play(Song_of_Storms) and has_bottle" + "Bean Plant Fairy": "is_child and can_plant_bean and can_play(Song_of_Storms) and has_bottle" }, "exits": { "GV Lower Stream": "True" @@ -753,7 +753,9 @@ "ToT Gossip Stone (Left-Center)": "True", "ToT Gossip Stone (Right)": "True", "ToT Gossip Stone (Right-Center)": "True", - "Gossip Stone Fairy": "can_summon_gossip_fairy_without_suns and has_bottle" + "Gossip Stone Fairy": " + (can_summon_gossip_fairy_without_suns or (is_adult and can_play(Suns_Song))) and + has_bottle" }, "exits": { "Market": "True", @@ -1024,9 +1026,8 @@ "Kak GS Guards House": "is_child and at_night", "Kak GS Tree": "is_child and at_night", "Kak GS Watchtower": " - is_child and (Slingshot or has_bombchus or - (logic_kakariko_tower_gs and (Sticks or Kokiri_Sword) and - can_take_damage)) and at_night", + is_child and at_night and (Slingshot or has_bombchus or + (logic_kakariko_tower_gs and (Sticks or Kokiri_Sword)))", "Bug Rock": "has_bottle" }, "exits": { @@ -1049,7 +1050,7 @@ can_use(Hookshot) or (logic_man_on_roof and (is_adult or at_day or Slingshot or has_bombchus or - (logic_kakariko_tower_gs and (Sticks or Kokiri_Sword) and can_take_damage)))", + (logic_kakariko_tower_gs and (Sticks or Kokiri_Sword))))", "Kak Backyard": "is_adult or at_day", "Graveyard": "True", "Kak Behind Gate": "is_adult or 'Kakariko Village Gate Open'" @@ -1247,7 +1248,7 @@ "Graveyard GS Wall": "can_use(Boomerang) and at_night", "Graveyard GS Bean Patch": "can_plant_bugs and can_child_attack", "Butterfly Fairy": "can_use(Sticks) and at_day and has_bottle", - "Bean Plant Fairy": "can_plant_bean and can_play(Song_of_Storms) and has_bottle", + "Bean Plant Fairy": "is_child and can_plant_bean and can_play(Song_of_Storms) and has_bottle", "Bug Rock": "has_bottle" }, "exits": { @@ -1356,7 +1357,7 @@ (logic_dmt_bombable and is_child and Progressive_Strength_Upgrade)", "DMT Freestanding PoH": " can_take_damage or can_use(Hover_Boots) or - (is_adult and here(can_plant_bean and (has_explosives or Progressive_Strength_Upgrade)))", + (is_adult and here(can_plant_bean and (plant_beans or has_explosives or Progressive_Strength_Upgrade)))", "DMT GS Bean Patch": " can_plant_bugs and can_child_attack and (has_explosives or Progressive_Strength_Upgrade or @@ -1367,9 +1368,10 @@ (can_use(Megaton_Hammer) or (logic_trail_gs_lower_hookshot and can_use(Hookshot)) or (logic_trail_gs_lower_hovers and can_use(Hover_Boots)) or - (logic_trail_gs_lower_bean and here(can_plant_bean and (has_explosives or Progressive_Strength_Upgrade))))", + (logic_trail_gs_lower_bean and + here(can_plant_bean and (plant_beans or has_explosives or Progressive_Strength_Upgrade))))", "Bean Plant Fairy": " - can_plant_bean and can_play(Song_of_Storms) and has_bottle and + is_child and can_plant_bean and can_play(Song_of_Storms) and has_bottle and (has_explosives or Progressive_Strength_Upgrade)" }, "exits": { @@ -1377,8 +1379,8 @@ "Goron City": "True", "Death Mountain Summit": " here(can_blast_or_smash) or - (is_adult and here(can_plant_bean and Progressive_Strength_Upgrade)) or - (logic_dmt_climb_hovers and can_use(Hover_Boots))", + (is_adult and here(can_plant_bean and (plant_beans or Progressive_Strength_Upgrade))) or + (logic_dmt_climb_hovers and can_use(Hover_Boots))", "Dodongos Cavern Beginning": " has_explosives or Progressive_Strength_Upgrade or is_adult", "DMT Storms Grotto": "can_open_storm_grotto" @@ -1522,9 +1524,8 @@ "exits": { "GC Grotto": "True", "Goron City": " - (damage_multiplier != 'ohko' and damage_multiplier != 'quadruple') or - can_use(Goron_Tunic) or can_use(Nayrus_Love) or - (can_play(Song_of_Time) and can_use(Longshot))" + (damage_multiplier != 'ohko' and (damage_multiplier != 'quadruple' or can_use(Goron_Tunic))) or + can_use(Nayrus_Love) or (can_play(Song_of_Time) and can_use(Longshot))" } }, { @@ -1587,8 +1588,9 @@ "exits": { "DMC Upper Nearby": "is_adult", "DMC Lower Nearby": " - can_use(Hover_Boots) or - (logic_crater_upper_to_lower and can_use(Megaton_Hammer))" + can_use(Hover_Boots) or at('DMC Lower Nearby', can_use(Megaton_Hammer)) or + ((logic_crater_boulder_jumpslash or logic_crater_boulder_skip) and can_use(Megaton_Hammer)) or + (logic_crater_boulder_skip and can_use(Goron_Tunic))" } }, { @@ -1611,7 +1613,9 @@ "exits": { "DMC Lower Nearby": "True", "DMC Ladder Area Nearby": "True", - "DMC Central Nearby": "can_use(Hover_Boots) or can_use(Hookshot)", + "DMC Central Nearby": " + can_use(Hover_Boots) or can_use(Hookshot) or + (logic_crater_bolero_jump and can_use(Goron_Tunic) and (is_adult and can_shield))", "DMC Fire Temple Entrance": " (can_use(Hover_Boots) or can_use(Hookshot)) and (logic_fewer_tunic_requirements or can_use(Goron_Tunic))" @@ -1640,7 +1644,7 @@ "hint": "Death Mountain Crater", "locations": { "DMC GS Bean Patch": "can_plant_bugs and can_child_attack", - "Bean Plant Fairy": "can_plant_bean and can_play(Song_of_Storms) and has_bottle" + "Bean Plant Fairy": "is_child and can_plant_bean and can_play(Song_of_Storms) and has_bottle" }, "exits": { "DMC Central Nearby": "True", @@ -1711,19 +1715,19 @@ can_play(Song_of_Time) and can_play(Song_of_Storms)", "ZR Frogs in the Rain": "is_child and can_play(Song_of_Storms)", "ZR Near Open Grotto Freestanding PoH": " - is_child or can_use(Hover_Boots) or (is_adult and logic_zora_river_lower)", + is_child or here(can_plant_bean) or Hover_Boots or logic_zora_river_lower", "ZR Near Domain Freestanding PoH": " - is_child or can_use(Hover_Boots) or (is_adult and logic_zora_river_upper)", + is_child or Hover_Boots or logic_zora_river_upper", "ZR GS Ladder": "is_child and at_night and can_child_attack", "ZR GS Near Raised Grottos": "can_use(Hookshot) and at_night", "ZR GS Above Bridge": "can_use(Hookshot) and at_night", "ZR Near Grottos Gossip Stone": "True", "ZR Near Domain Gossip Stone": "True", "Gossip Stone Fairy": "can_summon_gossip_fairy and has_bottle", - "Bean Plant Fairy": "can_plant_bean and can_play(Song_of_Storms) and has_bottle", + "Bean Plant Fairy": "is_child and can_plant_bean and can_play(Song_of_Storms) and has_bottle", "Butterfly Fairy": "can_use(Sticks) and has_bottle", "Bug Shrub": " - (is_child or can_use(Hover_Boots) or (is_adult and logic_zora_river_lower)) and + (is_child or here(can_plant_bean) or Hover_Boots or logic_zora_river_lower) and can_cut_shrubs and has_bottle" }, "exits": { @@ -1935,15 +1939,6 @@ "Lon Lon Ranch": "True" } }, - { - "region_name": "Ganons Castle Tower", - "dungeon": "Ganons Castle", - "locations": { - "Ganons Tower Boss Key Chest": "True", - "Ganondorf Hint": "Boss_Key_Ganons_Castle", - "Ganon": "Boss_Key_Ganons_Castle and can_use(Light_Arrows)" - } - }, { "region_name": "GF Storms Grotto", "scene": "GF Storms Grotto", diff --git a/data/World/Spirit Temple MQ.json b/data/World/Spirit Temple MQ.json index d27d6797a..a28ff2367 100644 --- a/data/World/Spirit Temple MQ.json +++ b/data/World/Spirit Temple MQ.json @@ -58,8 +58,8 @@ }, "exits": { "Lower Adult Spirit Temple": " - Mirror_Shield and (can_use(Fire_Arrows) or - (logic_spirit_mq_lower_adult and can_use(Dins_Fire) and Bow))", + Mirror_Shield and + (can_use(Fire_Arrows) or (logic_spirit_mq_lower_adult and can_use(Dins_Fire)))", "Spirit Temple Shared": "True", "Spirit Temple Boss Area": " (Small_Key_Spirit_Temple, 6) and can_play(Zeldas_Lullaby) and Megaton_Hammer", diff --git a/data/World/Water Temple MQ.json b/data/World/Water Temple MQ.json index 817832d14..fc6c909b5 100644 --- a/data/World/Water Temple MQ.json +++ b/data/World/Water Temple MQ.json @@ -59,7 +59,8 @@ "dungeon": "Water Temple", "locations": { "Water Temple MQ Freestanding Key": " - Hover_Boots or can_use(Scarecrow) or logic_water_north_basement_ledge_jump", + Hover_Boots or can_use(Scarecrow) or logic_water_north_basement_ledge_jump or + (logic_water_mq_locked_gs and (Small_Key_Water_Temple, 2))", "Water Temple MQ GS Triple Wall Torch": " can_use(Fire_Arrows) and (Hover_Boots or can_use(Scarecrow))", "Water Temple MQ GS Freestanding Key Area": " diff --git a/data/World/Water Temple.json b/data/World/Water Temple.json index 311ba745d..82a6aac09 100644 --- a/data/World/Water Temple.json +++ b/data/World/Water Temple.json @@ -54,7 +54,7 @@ }, "exits": { "Water Temple Cracked Wall": " - can_play(Zeldas_Lullaby) and (can_use(Hookshot) or can_use(Hover_Boots)) and + can_play(Zeldas_Lullaby) and Raise_Water_Level and (logic_water_cracked_wall_nothing or (logic_water_cracked_wall_hovers and can_use(Hover_Boots)))", "Water Temple Middle Water Level": " (Bow or can_use(Dins_Fire) or diff --git a/data/presets_default.json b/data/presets_default.json index 34b39392a..16c64766d 100644 --- a/data/presets_default.json +++ b/data/presets_default.json @@ -706,6 +706,7 @@ "logic_forest_first_gs", "logic_forest_well_swim", "logic_forest_mq_hallway_switch_jumpslash", + "logic_forest_mq_hallway_switch_boomerang", "logic_dmt_bombable", "logic_goron_city_pot_with_strength", "logic_adult_kokiri_gs", @@ -757,7 +758,9 @@ "logic_trail_gs_lower_hookshot", "logic_trail_gs_lower_hovers", "logic_trail_gs_lower_bean", - "logic_crater_upper_to_lower", + "logic_crater_boulder_jumpslash", + "logic_crater_boulder_skip", + "logic_crater_bolero_jump", "logic_zora_with_hovers", "logic_domain_gs", "logic_king_zora_skip", @@ -776,6 +779,8 @@ "logic_shadow_mq_gap", "logic_lost_woods_gs_bean", "logic_jabu_boss_hover", + "logic_jabu_near_boss_explosives", + "logic_jabu_near_boss_ranged", "logic_kakariko_rooftop_gs", "logic_graveyard_poh", "logic_castle_storms_gs",