Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Logic Definitions are Out of Date #1573

Merged
merged 4 commits into from
Jun 16, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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