-
Notifications
You must be signed in to change notification settings - Fork 527
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: The Pilgrim Update #2884
Conversation
The Colorful did not actually properly split into individual doors when progressive colorful was off. This change refactors the code that handles special cases with progressive items to make things clearer (which is important because I will be introducing another one).
Also fixed a classic lambda capture bug, and an over-eager event capture issue, that was making pilgrimage detection completely break.
We are no longer using sub-states to determine pilgrimage access. Instead, five additional subgraphs are created, each containing entrances with the same access rules as the original map, but filtered so only allowable connections exist. The only location in each subgraph is an event (possibly with an access rule) saying whether the end of the pilgrimage segment is reachable. This change was needed because on vanilla doors, the sub-states would assume that you couldn't open doors if there was no way to open it without using warps, even though in reality you can just open the door before starting the pilgrimage. Items have been refactored a bit too. player_logic is more responsible for which items get instantiated. This was needed because sunwarps are technically doors, but are separate from the shuffle_doors option; you can shuffle sunwarps and not shuffle doors. The sun painting is another special case.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reviewed the code (not the logic files), nothing looked weird. Did many test generations with some settings set to random, no failures. Asserts on invalid settings combos.
Did not test it with client.
Instead of each graph being completely separate, the graphs lead into each other at the sunwarps. No event items are needed at all.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Did not look at Ruby code. if entrance_name in self.world.multiworld.regions.entrance_cache[self.player]
is pretty ugly, but it might also be the best option right now, which is upsetting, so I made this PR #3052 lol
What is this fixing or adding?
A number of features related to sunwarps and the pilgrimage have been added.
How was this tested?
pytest and test runs. A beta test sync was conducted successfully.
Prerelease versions of the client and tracker are available for testing too:
Apworld: lingo.zip (Rename this to lingo.apworld)
Client: archipelago-sunwarps-beta4.zip
Tracker: lingo-ap-tracker-sunwarps-beta3-win64.zip