Skip to content
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
51 changes: 29 additions & 22 deletions World.py
Original file line number Diff line number Diff line change
Expand Up @@ -1023,32 +1023,39 @@ def set_goals(self) -> None:

# To avoid too many goals in the hint selection phase,
# trials are reduced to one goal with six items to obtain.
if not self.skipped_trials['Forest']:
trial_goal.items.append({'name': 'Forest Trial Clear', 'quantity': 1, 'minimum': 1, 'hintable': True})
trials.goal_count += 1
if not self.skipped_trials['Fire']:
trial_goal.items.append({'name': 'Fire Trial Clear', 'quantity': 1, 'minimum': 1, 'hintable': True})
trials.goal_count += 1
if not self.skipped_trials['Water']:
trial_goal.items.append({'name': 'Water Trial Clear', 'quantity': 1, 'minimum': 1, 'hintable': True})
trials.goal_count += 1
if not self.skipped_trials['Shadow']:
trial_goal.items.append({'name': 'Shadow Trial Clear', 'quantity': 1, 'minimum': 1, 'hintable': True})
trials.goal_count += 1
if not self.skipped_trials['Spirit']:
trial_goal.items.append({'name': 'Spirit Trial Clear', 'quantity': 1, 'minimum': 1, 'hintable': True})
trials.goal_count += 1
if not self.skipped_trials['Light']:
trial_goal.items.append({'name': 'Light Trial Clear', 'quantity': 1, 'minimum': 1, 'hintable': True})
if self.settings.shuffle_ganon_tower:
trial_goal.items.append({'name': 'Ganons Tower Access', 'quantity': 1, 'minimum': 1, 'hintable': True})
trials.goal_count += 1

# Trials category is finalized and saved only if at least one trial is on
# If random trials are on and one world in multiworld gets 0 trials, still
# add the goal to prevent key errors. Since no items fulfill the goal, it
# will always be invalid for that world and not generate hints.
if self.settings.trials > 0 or self.settings.trials_random:
trials.add_goal(trial_goal)
self.goal_categories[trials.name] = trials
else:
if not self.skipped_trials['Forest']:
trial_goal.items.append({'name': 'Forest Trial Clear', 'quantity': 1, 'minimum': 1, 'hintable': True})
trials.goal_count += 1
if not self.skipped_trials['Fire']:
trial_goal.items.append({'name': 'Fire Trial Clear', 'quantity': 1, 'minimum': 1, 'hintable': True})
trials.goal_count += 1
if not self.skipped_trials['Water']:
trial_goal.items.append({'name': 'Water Trial Clear', 'quantity': 1, 'minimum': 1, 'hintable': True})
trials.goal_count += 1
if not self.skipped_trials['Shadow']:
trial_goal.items.append({'name': 'Shadow Trial Clear', 'quantity': 1, 'minimum': 1, 'hintable': True})
trials.goal_count += 1
if not self.skipped_trials['Spirit']:
trial_goal.items.append({'name': 'Spirit Trial Clear', 'quantity': 1, 'minimum': 1, 'hintable': True})
trials.goal_count += 1
if not self.skipped_trials['Light']:
trial_goal.items.append({'name': 'Light Trial Clear', 'quantity': 1, 'minimum': 1, 'hintable': True})
trials.goal_count += 1

# Trials category is finalized and saved only if at least one trial is on
# If random trials are on and one world in multiworld gets 0 trials, still
# add the goal to prevent key errors. Since no items fulfill the goal, it
# will always be invalid for that world and not generate hints.
if self.settings.trials > 0 or self.settings.trials_random:
trials.add_goal(trial_goal)
self.goal_categories[trials.name] = trials

# In glitched logic or if trials are off, it's possible that some items required to beat the game
# (such as bow, magic, light arrows, or anything required to reach Ganon's Castle)
Expand Down
4 changes: 4 additions & 0 deletions data/Glitched World/Overworld.json
Original file line number Diff line number Diff line change
Expand Up @@ -1234,6 +1234,10 @@
{
"region_name": "Ganons Castle Tower",
"dungeon": "Ganons Castle",
"events": {
# Used for the "path to the tower" goal
"Ganons Tower Access": "is_adult"
},
"locations": {
"Ganons Tower Boss Key Chest": "True",
"Ganondorf Hint": "Boss_Key_Ganons_Castle",
Expand Down
4 changes: 4 additions & 0 deletions data/World/Bosses.json
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,10 @@
"region_name": "Ganons Castle Tower",
"scene": "Ganons Castle Tower",
"is_boss_room": true,
"events": {
# Used for the "path to the tower" goal
"Ganons Tower Access": "is_adult"
},
"locations": {
"Ganons Tower Boss Key Chest": "is_adult or Kokiri_Sword"
},
Expand Down