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

Lingo: Fix number hunt issues on panels mode #4342

Merged
merged 1 commit into from
Dec 10, 2024

Conversation

hatkirby
Copy link
Collaborator

@hatkirby hatkirby commented Dec 8, 2024

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:

Hub Room - FOUR is used in Outside The Undeterred - FOUR
Dead End Area - FOUR is used in Outside The Undeterred - FOUR
The Traveled - FOUR is used in Outside The Undeterred - FOUR
Outside The Agreeable - FIVE (1) is used in Number Hunt - FIVE
Outside The Agreeable - FIVE (2) is used in Number Hunt - FIVE
Outside The Bold - SIX is used in Number Hunt - SIX
Outside The Initiated - SEVEN (1) is used in Number Hunt - SEVEN
Outside The Initiated - SEVEN (2) is used in Number Hunt - SEVEN
Dead End Area - EIGHT is used in Number Hunt - EIGHT
Crossroads - EIGHT is used in Number Hunt - EIGHT
Hot Crusts Area - EIGHT is used in Number Hunt - EIGHT
Outside The Initiated - EIGHT is used in Number Hunt - EIGHT
Amen Name Area - NINE is used in Number Hunt - NINE
Yellow Backside Area - NINE is used in Number Hunt - NINE
Outside The Initiated - NINE is used in Number Hunt - NINE
Outside The Bold - NINE is used in Number Hunt - NINE
Orange Tower Fifth Floor - NINE is used in Number Hunt - NINE

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.zip

How 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:

game: Lingo
Lingo:
  shuffle_doors: panels
  location_checks: insanity
  shuffle_colors: true
  victory_condition: level_2
  early_color_hallways: true
  shuffle_postgame: false
  level_2_requirement: 800
  plando_items:
    - item: Progressive Number Hunt
      location: "Outside The Agreeable - FIVE (1)"
      force: true

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.

@hatkirby hatkirby added is: bug/fix Issues that are reporting bugs or pull requests that are fixing bugs. affects: release/blocker Issues/PRs that must be addressed before next official release. waiting-on: peer-review Issue/PR has not been reviewed by enough people yet. labels Dec 8, 2024
Copy link
Member

@Exempt-Medic Exempt-Medic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested with the same that was running into the problem and it's now fixed. The changes are simple and LGTM and there's even a new test for it!

@NewSoupVi NewSoupVi merged commit 925fb96 into ArchipelagoMW:main Dec 10, 2024
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
affects: release/blocker Issues/PRs that must be addressed before next official release. is: bug/fix Issues that are reporting bugs or pull requests that are fixing bugs. waiting-on: peer-review Issue/PR has not been reviewed by enough people yet.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants