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

Handle own dungeon item placement with Boss room shuffle #667

Merged
merged 1 commit into from
Apr 9, 2023

Conversation

Archez
Copy link
Contributor

@Archez Archez commented Apr 7, 2023

When dungeon items are set to "Own Dungeon", we grab the list of locations directly from the dungeon definition.

This was not accounting for Boss room shuffle, so for example if Water Temple had Bongo Bongo inside, it could be possible for Bongo to have the Shadow Temple boss key, meaning you would have to clear a different temple just to be able to clear Shadow. This "breaks" the definition of "Own Dungeon".

To address this, I have split the dungeon location definitions to move the boss room locations outside of the shared location list and into a separate list bossRoomLocations. (This wasn't needed directly for the fix, but I think can be useful in the future)

Then in RandomizeOwnDungeon during the fill process, rather than getting the dungeon item list from the dungeon definition itself via GetDungeonLocations, I am filtering all locations and comparing the locations parent region hint key with the dungeons hint key. This will grab all the locations that are "connected" to that dungeon, similar to how hints are done for interior regions.

This approach is similar to what N64 rando does here: https://github.com/OoTRandomizer/OoT-Randomizer/blob/ae1a3908ccfc37af88297eac6383b74217f6b519/Fill.py#L291-L297

@gymnast86 gymnast86 merged commit ffd8a62 into gamestabled:main Apr 9, 2023
@Archez Archez deleted the own-dungeon-items-boss-er branch April 9, 2023 16:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants