Lingo: Fix number hunt issues on panels mode #4342
Merged
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.
What is this fixing or adding?
There is an issue with how LL1.yaml is parsed to create the world's static logic. Most panel door objects are in the same room as all of their panels, but there are some cases where panel doors control access to panels in various parts of the map, most notably the number hunt, the orange tower, and the Incomparable. The parsing issue caused all panels that were defined earlier in the file than their panel doors to not be marked as being part of that panel door. This issue only appears to have affected the number hunt, and not every panel in it, but there's still a significant number of panels that the generator believes require one fewer Progressive Number Hunt than they really need:
This is most noticeable in panelsanity, since every panel becomes a location and the game may expect you to have access to one of these panels earlier than expected. It doesn't impact normal locations mode nearly as much, because the number hunt locations require the combination of the requirements of each panel therein, and the number panels in the main hallway all have correct access requirements set, meaning that the overall locations do too. However, it can still impact slots using normal locations mode because the generator may expect the player to be able to access the LEVEL 2 check earlier than expected.
This was remedied by changing the parsing script to process all panel doors before processing starting over and processing the rest of each room object.
Neither the client nor the tracker are affected by this bug. Both have been updated to reflect the generator's broken logic as a workaround before this fix can be released.
Fixed world (rename to
lingo.apworld
): lingo.zipHow was this tested?
A unit test was added that verifies that the panel door on one of the affected panels is properly set. Test generations were done under the following options:
Without the change, the generator internally considers Outside The Agreeable - FIVE (1) to only require three Progressive Number Hunts, and it can be seen in the spoiler log that this item appears in a sphere after getting three such items instead of four. After the change, the logic is changed to require four, and the spoiler log reflects this.
If this makes graphical changes, please attach screenshots.