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

Do not modify dungeon internal savewarps in decoupled boss shuffle #27

Merged
merged 2 commits into from
Jun 13, 2024

Conversation

mracsys
Copy link

@mracsys mracsys commented Jun 13, 2024

Handle decoupled entrances when boss shuffle is enabled.

The savewarp updating routine for boss rooms to ensure they point to their connected entrance works by looping through all shuffled entrance pools and filtering for entrances of type ChildBoss or AdultBoss. Without decoupled entrances, this works as expected. With decoupled entrances, there is an extra BossReverse pool containing the boss room exits which have the same type as the main entrances. This led to those entrances being checked for savewarps to modify, which catches the savewarps on the dungeon side of each boss door. These should not be edited.

The fix checks for the primary property of each entrance instead of the parent pool. This handles mixed pools gracefully by filtering out all reverse entrances regardless of type.

Note that I never got the new unit test in this to run (always failed on entrance shuffle before the assert), but I did get seeds to generate outside the test. The setting combination used is very unstable. I tried locking the seed and some of the settings in place to no avail. To verify only the boss room savewarps are changed, print the savewarp name after each reconnection at EntranceShuffle.py#L819.

@fenhl fenhl merged commit 1f36c6b into fenhl:dev-fenhl Jun 13, 2024
3 checks passed
@mracsys mracsys deleted the decoupled-boss-savewarps-fix branch October 5, 2024 22:55
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