Skip to content

Commit

Permalink
Merge 'Logic Definitions are Out of Date' (#1573)
Browse files Browse the repository at this point in the history
  • Loading branch information
cjohnson57 committed Jun 16, 2022
2 parents 505c5e0 + 906ed43 commit a0e1efe
Show file tree
Hide file tree
Showing 14 changed files with 222 additions and 146 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,7 @@ do that.
* Fix ice traps cloaked as major items not giving the slow chest opening cutscenes when `Fast Chest Cutscenes` is disabled.
* Tunics and shields can now spawn in any room when the game attempts to spawn them.
* Fix a crash when certain settings related to Light Arrow hints are combined.
* Many minor logic bugs have been corrected.

#### Other changes
* Added an auto-tracker context area to memory, so auto-trackers can find certain symbols much easier.
Expand Down
162 changes: 99 additions & 63 deletions SettingsList.py

Large diffs are not rendered by default.

13 changes: 11 additions & 2 deletions data/World/Bosses.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -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)"
}
}
]
8 changes: 4 additions & 4 deletions data/World/Fire Temple MQ.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": {
Expand Down
36 changes: 26 additions & 10 deletions data/World/Forest Temple MQ.json
Original file line number Diff line number Diff line change
Expand Up @@ -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))"
}
},
{
Expand All @@ -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
Expand Down
45 changes: 26 additions & 19 deletions data/World/Forest Temple.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
}
},
{
Expand All @@ -27,29 +35,28 @@
"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
has_explosives or Kokiri_Sword or can_use(Dins_Fire)"
},
"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)))"
}
},
{
"region_name": "Forest Temple NE Outdoors",
"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)",
Expand All @@ -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"
}
Expand Down Expand Up @@ -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
}
},
{
Expand Down Expand Up @@ -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": {
Expand Down
13 changes: 8 additions & 5 deletions data/World/Jabu Jabus Belly MQ.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down Expand Up @@ -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": {
Expand Down
7 changes: 5 additions & 2 deletions data/World/Jabu Jabus Belly.json
Original file line number Diff line number Diff line change
Expand Up @@ -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))))"
}
}
]
Loading

0 comments on commit a0e1efe

Please sign in to comment.