Skip to content

Commit a0e1efe

Browse files
committed
Merge 'Logic Definitions are Out of Date' (#1573)
2 parents 505c5e0 + 906ed43 commit a0e1efe

14 files changed

Lines changed: 222 additions & 146 deletions

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@ do that.
148148
* Fix ice traps cloaked as major items not giving the slow chest opening cutscenes when `Fast Chest Cutscenes` is disabled.
149149
* Tunics and shields can now spawn in any room when the game attempts to spawn them.
150150
* Fix a crash when certain settings related to Light Arrow hints are combined.
151+
* Many minor logic bugs have been corrected.
151152

152153
#### Other changes
153154
* Added an auto-tracker context area to memory, so auto-trackers can find certain symbols much easier.

SettingsList.py

Lines changed: 99 additions & 63 deletions
Large diffs are not rendered by default.

data/World/Bosses.json

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,8 @@
138138
"Water Temple Clear": "can_use(Hookshot)"
139139
},
140140
"locations": {
141-
"Morpha": "'Water Temple Clear'",
142-
"Water Temple Morpha Heart": "'Water Temple Clear'"
141+
"Morpha": "can_use(Hookshot)",
142+
"Water Temple Morpha Heart": "can_use(Hookshot)"
143143
},
144144
"exits": {
145145
"Water Temple Boss Door": "True"
@@ -190,5 +190,14 @@
190190
"exits": {
191191
"Spirit Temple Boss Door": "True"
192192
}
193+
},
194+
{
195+
"region_name": "Ganons Castle Tower",
196+
"dungeon": "Ganons Castle",
197+
"locations": {
198+
"Ganons Tower Boss Key Chest": "True",
199+
"Ganondorf Hint": "Boss_Key_Ganons_Castle",
200+
"Ganon": "Boss_Key_Ganons_Castle and can_use(Light_Arrows)"
201+
}
193202
}
194203
]

data/World/Fire Temple MQ.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,12 +77,12 @@
7777
"Fire Temple MQ Lizalfos Maze Upper Chest": "True",
7878
"Fire Temple MQ Compass Chest": "has_explosives",
7979
"Fire Temple MQ GS Skull On Fire": "
80-
(can_play(Song_of_Time) and can_use(Hookshot) and (has_explosives or logic_rusted_switches)) or
81-
can_use(Longshot)",
80+
(can_use(Longshot) or (can_play(Song_of_Time) and can_use(Hookshot))) and
81+
(has_explosives or logic_rusted_switches or (can_use(Longshot) and logic_fire_scarecrow))",
8282
"Wall Fairy": "
8383
has_bottle and
84-
((can_play(Song_of_Time) and can_use(Hookshot) and (has_explosives or logic_rusted_switches)) or
85-
can_use(Longshot))",
84+
(can_use(Longshot) or (can_play(Song_of_Time) and can_use(Hookshot))) and
85+
(has_explosives or logic_rusted_switches or (can_use(Longshot) and logic_fire_scarecrow))",
8686
"Fairy Pot": "has_bottle and (Small_Key_Fire_Temple, 3)"
8787
},
8888
"exits": {

data/World/Forest Temple MQ.json

Lines changed: 26 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,20 +22,39 @@
2222
(can_play(Song_of_Time) or is_child) and
2323
(is_adult or can_use(Dins_Fire) or
2424
can_use(Sticks) or can_use(Slingshot) or Kokiri_Sword)",
25-
"Forest Temple MQ GS Block Push Room": "is_adult or Kokiri_Sword",
2625
"Fairy Pot": "has_bottle and (can_play(Song_of_Time) or is_child)"
2726
},
2827
"exits": {
2928
"Forest Temple NW Outdoors": "can_use(Bow) or can_use(Slingshot)",
3029
"Forest Temple NE Outdoors": "can_use(Bow) or can_use(Slingshot)",
31-
# End of the road for child
30+
"Forest Temple Before Block Puzzle": "here(is_adult or Kokiri_Sword)",
31+
"Forest Temple Before Boss": "
32+
(Forest_Temple_Jo_and_Beth and Forest_Temple_Amy_and_Meg) or forest_temple_shortcuts"
33+
}
34+
},
35+
{
36+
"region_name": "Forest Temple Before Block Puzzle",
37+
"dungeon": "Forest Temple",
38+
"locations": {
39+
"Forest Temple MQ GS Block Push Room": "True"
40+
},
41+
"exits": {
3242
"Forest Temple After Block Puzzle": "
3343
is_adult and (Progressive_Strength_Upgrade or
34-
(logic_forest_mq_block_puzzle and has_bombchus and can_use(Hookshot)))",
44+
(logic_forest_mq_block_puzzle and has_bombchus and Hookshot))",
45+
# Child cannot climb these large blocks
3546
"Forest Temple Outdoor Ledge": "
36-
(logic_forest_mq_hallway_switch_jumpslash and can_use(Hover_Boots))",
37-
"Forest Temple Before Boss": "
38-
(Forest_Temple_Jo_and_Beth and Forest_Temple_Amy_and_Meg) or forest_temple_shortcuts"
47+
(at('Forest Temple Outdoor Ledge', True) or
48+
here((logic_forest_mq_hallway_switch_boomerang and can_use(Boomerang)) or
49+
(logic_forest_mq_hallway_switch_jumpslash and
50+
(can_use(Hover_Boots) or
51+
(((logic_forest_mq_block_puzzle and has_bombchus) or
52+
(Progressive_Strength_Upgrade and (is_adult or Slingshot))) and
53+
(Progressive_Strength_Upgrade or can_use(Hookshot)) and
54+
(is_adult or Sticks)))))) and
55+
(can_use(Hover_Boots) or can_use(Hookshot) or
56+
(Progressive_Strength_Upgrade and
57+
logic_forest_outside_backdoor and can_jumpslash))"
3958
}
4059
},
4160
{
@@ -46,10 +65,7 @@
4665
},
4766
"exits": {
4867
"Forest Temple Bow Region": "(Small_Key_Forest_Temple, 4)",
49-
"Forest Temple Outdoor Ledge": "
50-
(Small_Key_Forest_Temple, 3) or
51-
(logic_forest_mq_hallway_switch_jumpslash and
52-
(can_use(Hookshot) or logic_forest_outside_backdoor))",
68+
"Forest Temple Outdoor Ledge": "(Small_Key_Forest_Temple, 3)",
5369
"Forest Temple NW Outdoors": "(Small_Key_Forest_Temple, 2)"
5470
# Only 2 keys because you must have had access to falling ceiling room to have wasted a key there
5571
# and access to falling ceiling room means you must also have had to access to the lower area of this courtyard

data/World/Forest Temple.json

Lines changed: 26 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,29 @@
44
"dungeon": "Forest Temple",
55
"locations": {
66
"Forest Temple First Room Chest": "True",
7-
"Forest Temple First Stalfos Chest": "is_adult or Kokiri_Sword",
87
"Forest Temple GS First Room": "
98
(is_adult and (Hookshot or Bow or Bombs)) or (is_child and (Boomerang or Slingshot)) or
10-
has_bombchus or can_use(Dins_Fire) or (logic_forest_first_gs and (Bombs or
11-
(can_jumpslash and can_take_damage)))",
12-
"Forest Temple GS Lobby": "can_use(Hookshot) or can_use(Boomerang)",
13-
"Fairy Pot": "has_bottle and (is_adult or can_child_attack or Nuts)"
9+
has_bombchus or can_use(Dins_Fire) or (logic_forest_first_gs and (Bombs or can_jumpslash))"
1410
},
1511
"exits": {
1612
"SFM Forest Temple Entrance Ledge": "True",
13+
"Forest Temple Central Area": "is_adult or can_child_attack or Nuts"
14+
}
15+
},
16+
{
17+
"region_name": "Forest Temple Central Area",
18+
"dungeon": "Forest Temple",
19+
"locations": {
20+
"Forest Temple First Stalfos Chest": "is_adult or Kokiri_Sword",
21+
"Forest Temple GS Lobby": "can_use(Hookshot) or can_use(Boomerang)",
22+
"Fairy Pot": "has_bottle"
23+
},
24+
"exits": {
1725
"Forest Temple NW Outdoors": "can_play(Song_of_Time) or is_child",
1826
"Forest Temple NE Outdoors": "can_use(Bow) or can_use(Slingshot)",
1927
"Forest Temple Block Push Room": "(Small_Key_Forest_Temple, 1)",
20-
"Forest Temple Before Boss": "(Forest_Temple_Jo_and_Beth and Forest_Temple_Amy_and_Meg) or
21-
forest_temple_shortcuts"
28+
"Forest Temple Before Boss": "
29+
(Forest_Temple_Jo_and_Beth and Forest_Temple_Amy_and_Meg) or forest_temple_shortcuts"
2230
}
2331
},
2432
{
@@ -27,29 +35,28 @@
2735
"locations": {
2836
"Forest Temple GS Level Island Courtyard": "
2937
can_use(Longshot) or
30-
at('Forest Temple Outside Upper Ledge', can_use(Hookshot))",
38+
at('Forest Temple Outside Upper Ledge', can_use(Hookshot) or can_use(Boomerang))",
3139
"Deku Baba Sticks": "is_adult or Kokiri_Sword or Boomerang",
3240
"Deku Baba Nuts": "
3341
is_adult or Slingshot or Sticks or
3442
has_explosives or Kokiri_Sword or can_use(Dins_Fire)"
3543
},
3644
"exits": {
3745
"Forest Temple NE Outdoors": "(Progressive_Scale, 2)",
38-
#Other methods of crossing through the well are not currently relevant.
46+
# Other methods of crossing through the well are not currently relevant.
3947
"Forest Temple Outdoors High Balconies": "
4048
here(is_adult or has_explosives or
41-
((Boomerang or Nuts or Deku_Shield) and
42-
(Sticks or Kokiri_Sword or Slingshot)))"
49+
((Boomerang or Nuts or Deku_Shield) and (Sticks or Kokiri_Sword or Slingshot)))"
4350
}
4451
},
4552
{
4653
"region_name": "Forest Temple NE Outdoors",
4754
"dungeon": "Forest Temple",
4855
"locations": {
4956
"Forest Temple Raised Island Courtyard Chest": "
50-
can_use(Hookshot) or
51-
at('Forest Temple Falling Room', True) or
52-
(logic_forest_outdoors_ledge and can_use(Hover_Boots) and at('Forest Temple Outdoors High Balconies', True))",
57+
can_use(Hookshot) or at('Forest Temple Falling Room', True) or
58+
(logic_forest_outdoors_ledge and can_use(Hover_Boots) and
59+
at('Forest Temple Outdoors High Balconies', True))",
5360
"Forest Temple GS Raised Island Courtyard": "
5461
can_use(Hookshot) or (logic_forest_outdoor_east_gs and can_use(Boomerang)) or
5562
at('Forest Temple Falling Room', can_use(Bow) or can_use(Dins_Fire) or has_explosives)",
@@ -61,7 +68,6 @@
6168
"exits": {
6269
"Forest Temple Outdoors High Balconies": "
6370
can_use(Longshot) or (logic_forest_vines and can_use(Hookshot))",
64-
#Longshot can grab some very high up vines to drain the well.
6571
"Forest Temple NW Outdoors": "can_use(Iron_Boots) or (Progressive_Scale, 2)",
6672
"Forest Temple Lobby": "True"
6773
}
@@ -101,13 +107,14 @@
101107
Progressive_Strength_Upgrade and (can_use(Bow) or can_use(Slingshot))"
102108
},
103109
"exits": {
104-
#end of the road for child forest. No hovers and too short to climb push blocks
105110
"Forest Temple Outside Upper Ledge": "
106-
can_use(Hover_Boots) or (logic_forest_outside_backdoor and is_adult and Progressive_Strength_Upgrade)",
111+
can_use(Hover_Boots) or
112+
(logic_forest_outside_backdoor and Progressive_Strength_Upgrade and can_jumpslash)",
107113
"Forest Temple Bow Region": "
108114
Progressive_Strength_Upgrade and (Small_Key_Forest_Temple, 3) and is_adult",
109115
"Forest Temple Straightened Hall": "
110116
Progressive_Strength_Upgrade and (Small_Key_Forest_Temple, 2) and can_use(Bow)"
117+
# Child cannot climb these large blocks
111118
}
112119
},
113120
{
@@ -143,14 +150,14 @@
143150
},
144151
"exits": {
145152
"Forest Temple Falling Room": "
146-
(Small_Key_Forest_Temple, 5) and (Bow or can_use(Dins_Fire))"
153+
(Small_Key_Forest_Temple, 5) and (Bow or can_use(Dins_Fire))"
147154
}
148155
},
149156
{
150157
"region_name": "Forest Temple Before Boss",
151158
"dungeon": "Forest Temple",
152159
"locations": {
153-
"Forest Temple Basement Chest": "is_adult or can_child_attack or Nuts",
160+
"Forest Temple Basement Chest": "True",
154161
"Forest Temple GS Basement": "can_use(Hookshot) or can_use(Boomerang)"
155162
},
156163
"exits": {

data/World/Jabu Jabus Belly MQ.json

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,12 @@
4848
"Jabu Jabus Belly MQ GS Invisible Enemies Room": "
4949
(at('Jabu Jabus Belly Depths', True) or jabu_shortcuts) and
5050
((can_use(Hookshot) and can_use(Hover_Boots)) or
51-
(here((logic_lens_jabu_mq or can_use(Lens_of_Truth)) and
52-
(can_use(Slingshot) or can_use(Bow) or can_use(Longshot) or
53-
(can_use(Hookshot) and can_use(Iron_Boots) and logic_lens_jabu_mq))) and
54-
(can_use(Boomerang) or (can_use(Hookshot) and can_use(Iron_Boots)))))"
51+
(here((logic_lens_jabu_mq or can_use(Lens_of_Truth)) and
52+
(can_use(Slingshot) or can_use(Bow) or can_use(Longshot) or
53+
(can_use(Hookshot) and can_use(Iron_Boots) and logic_lens_jabu_mq))) and
54+
(can_use(Boomerang) or (can_use(Hookshot) and can_use(Iron_Boots)))))"
55+
# Lens of Truth cannot be used underwater.
56+
# Adult's legs are too long to swim directly onto the Hookshot pillar.
5557
},
5658
"exits": {
5759
"Jabu Jabus Belly Elevator Room": "True",
@@ -91,7 +93,8 @@
9193
"dungeon": "Jabu Jabus Belly",
9294
"locations": {
9395
"Jabu Jabus Belly MQ Near Boss Chest": "can_use(Slingshot)",
94-
"Jabu Jabus Belly MQ GS Near Boss": "can_use(Boomerang) or can_use(Longshot)",
96+
"Jabu Jabus Belly MQ GS Near Boss": "
97+
can_use(Boomerang) or (logic_jabu_near_boss_ranged and can_use(Hookshot))",
9598
"Fairy Pot": "has_bottle"
9699
},
97100
"exits": {

data/World/Jabu Jabus Belly.json

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,11 @@
5151
"exits": {
5252
"Jabu Jabus Belly Main": "True",
5353
"Jabu Jabus Belly Boss Door": "
54-
can_use(Boomerang) or (logic_jabu_boss_door_bow and (can_use(Bow) or can_use(Slingshot)) or
55-
(logic_jabu_boss_door_chus and has_bombchus))"
54+
can_use(Boomerang) or
55+
(logic_jabu_near_boss_ranged and
56+
(can_use(Hookshot) or can_use(Bow) or can_use(Slingshot))) or
57+
(logic_jabu_near_boss_explosives and
58+
(has_bombchus or (Bombs and can_use(Hover_Boots))))"
5659
}
5760
}
5861
]

0 commit comments

Comments
 (0)