Skip to content

Commit

Permalink
Merge 'Fix world confusion in effective starting items from precomple…
Browse files Browse the repository at this point in the history
…ted dungeons' (#2336)
  • Loading branch information
cjohnson57 committed Jan 5, 2025
2 parents d4051b9 + 27a2470 commit 5a604eb
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 11 deletions.
21 changes: 11 additions & 10 deletions Plandomizer.py
Original file line number Diff line number Diff line change
Expand Up @@ -1089,18 +1089,19 @@ def configure_effective_starting_items(self, worlds: list[World], world: World)
if iter_world.settings.empty_dungeons_mode != 'none':
skipped_locations_from_dungeons: list[Location] = []
if iter_world.settings.shuffle_dungeon_rewards in ('vanilla', 'reward'):
skipped_locations_from_dungeons += [world.get_location(loc_name) for loc_name in location_groups['Boss'] if loc_name != 'ToT Reward from Rauru']
elif world.settings.shuffle_dungeon_rewards == 'dungeon':
skipped_locations_from_dungeons += [iter_world.get_location(loc_name) for loc_name in location_groups['Boss'] if loc_name != 'ToT Reward from Rauru']
elif iter_world.settings.shuffle_dungeon_rewards == 'dungeon':
skipped_locations_from_dungeons += [location for location in iter_world.get_filled_locations() if location.item.type == 'DungeonReward']
if world.settings.shuffle_song_items == 'song':
skipped_locations_from_dungeons += [world.get_location(loc_name) for loc_name in location_groups['Song']]
elif world.settings.shuffle_song_items == 'dungeon':
skipped_locations_from_dungeons += [world.get_location(loc_name) for loc_name in location_groups['BossHeart']]
if iter_world.settings.shuffle_song_items == 'song':
skipped_locations_from_dungeons += [iter_world.get_location(loc_name) for loc_name in location_groups['Song']]
elif iter_world.settings.shuffle_song_items == 'dungeon':
skipped_locations_from_dungeons += [iter_world.get_location(loc_name) for loc_name in location_groups['BossHeart']]
for location in skipped_locations_from_dungeons:
hint_area = HintArea.at(location)
if hint_area.is_dungeon and iter_world.empty_dungeons[hint_area.dungeon_name].empty:
skipped_locations.append(location)
world.item_added_hint_types['barren'].append(location.item.name)
if location.item is not None and world.id == location.item.world.id:
hint_area = HintArea.at(location)
if hint_area.is_dungeon and iter_world.empty_dungeons[hint_area.dungeon_name].empty:
skipped_locations.append(location)
world.item_added_hint_types['barren'].append(location.item.name)
for location in skipped_locations:
if iter_world.id == world.id:
self.skipped_locations.append(location)
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,7 @@ issue. You should always Hard Reset to avoid this issue entirely.
* The randomizer no longer ignores errors when decompressing the base rom or compressing the randomized rom.
* Trade quest items from skipped locations are no longer lost when another trade item is found.
* Fix a crash when dungeon rewards are directly selected as starting items.
* Fix an error with pre-completed dungeon rewards in multiworld.

#### New Speedups
* The first text box from each carpenter in the Thieves' Hideout is skipped.
Expand Down
2 changes: 1 addition & 1 deletion version.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
__version__ = '8.2.45'
__version__ = '8.2.46'

# This is a supplemental version number for branches based off of main dev.
supplementary_version = 0
Expand Down

0 comments on commit 5a604eb

Please sign in to comment.