Add option to place progress items on boss locations#418
Open
tanjo3 wants to merge 2 commits into
Open
Conversation
73cf51d to
53fbbe7
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This PR adds a new option,
prioritize_required_bosses, that places progress items at the required bosses' locations (i.e., their Heart Container locations). This option can only be enabled if Required Bosses Mode (RBM) is on. When playing with RBM, feedback from some players was that defeating the required bosses didn't feel as rewarding as it used to when they guaranteed dropped Triforce Shards. Rather than reverting to the original implementation, this option places progress items on required bosses. The item is, of course, not guaranteed to be useful to beat the seed, but it should feel more rewarding than getting a Red Rupee or Joy Necklace from defeating bosses.This implementation has two parts. First, during forward fill, if a boss location is made accessible, a progress item must be placed on it. However, this does not guarantee all bosses will have progress items, as some bosses are made accessible after all progress items have been placed. So, after all locations are filled, a pass through all boss locations without a progress item is done. For each boss item, we attempt to swap it with a placed progress item and verify the seed's validity.
If no valid swaps are possible, an error is thrown. I ran a bulk test of 100 seeds with default settings and another 100 with all options, and didnt run into any generation failures. I also checked that the boss locations actually had a progress item. For this reason, I didn't add any additional tests for this option.