Do not modify dungeon internal savewarps in decoupled boss shuffle #27
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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
orAdultBoss
. Without decoupled entrances, this works as expected. With decoupled entrances, there is an extraBossReverse
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.