-
Notifications
You must be signed in to change notification settings - Fork 751
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
DS3: Fix health locations setting not enabling #2147
Conversation
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.
My suggestion to avoid future pain would be to decouple healing items from progressive items 1 (even though it would cause short term pain in affecting the location IDs). Right now, the fact that there is filtering happening in 2 places in world initialization based on the possible combinations of options means there is coupling that shouldn't be there at the data level. The options seem independent in the YAML but one is a subset of the other, which just leads to confusion.
The fix in this PR will work. We just have to be aware that it's likely "tech debt" if the integration is ever to be pushed further.
Yeah, that's the more proper fix, but I'd like to avoid changing location ids for a bugfix if I can help it. Though, I suppose the only consumers of location ids at the moment other than the data package are the mod and the tracker. And the mod won't care because it correlates location ids to memory addresses via Thoughts, @Br00ty? |
it really shouldn't affect anything if the items in the 'Progressive Items' locations get moved around ID wise. probably wouldn't be a bad idea to have them in their own category separate from the rest of the consumables and such. it wont effect any of the 'important locations' ids at least. looking through the code, it should be easy enough to move the estus/bone shards to the end of the locations, and tie all the health stuff together by themselves, without affecting really anything |
Moved them to their own table then. Again, generated with all 4 combinations to make sure the expected locations were included in the spoiler logs. |
Rolled and played some seeds to verify it definitely works in a game: Everything worked as expected. Locations were randomized when they were supposed to be and vanilla when they weren't, pickups were sent to the server correctly, and items were received from the client correctly. No mismatches or anything. |
Oh i forgot. If it changes IDs, you should also change the data_version in init.py |
Right. Thanks for catching that. |
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.
Should be fine. Thanks!
* DS3: Fix health locations setting not enabling * DS3: Move health locations to their own table * DS3: Bump data version
* DS3: Fix health locations setting not enabling * DS3: Move health locations to their own table * DS3: Bump data version
What is this fixing or adding?
Health items (estus shards and undead bone shards) are contained within the progressive item tables. So if progressive items aren't enabled, health items can never be added to the multiworld, even if the player has them turned on using
enable_health_upgrade_locations
. The only way to have health locations added is to turn on bothenable_health_upgrade_locations
andenable_progressive_locations
.This moves health item locations to their own table so they can be added to the list of progressive items separately from the rest of the consumables. This changes the location ids of just these locations, but nothing we know of checks these location ids. The client will work with any location ids out of the box, and the tracker doesn't monitor progressive locations.
How was this tested?
Generating a game for each combination of
enable_health_upgrade_locations
andenable_progressive_locations
to verify that the expected locations are enabled.