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

LttP: free core of checks_in_area #1798

Merged
merged 9 commits into from
Jul 2, 2023
Merged

LttP: free core of checks_in_area #1798

merged 9 commits into from
Jul 2, 2023

Conversation

Berserker66
Copy link
Member

What is this fixing or adding?

extension to #1787, however, multiworlds generated with these changes will crash the web tracker without these changes.

How was this tested?

With LttP, Subnautica and Factorio worlds, using local webhost mostly.

If this makes graphical changes, please attach screenshots.

image

@@ -172,6 +172,7 @@ def FillDisabledShopSlots(world):
shop: Shop = location.parent_region.shop
location.item = ItemFactory(shop.inventory[location.shop_slot]['item'], location.player)
location.item_rule = lambda item: item.name == location.item.name and item.player == location.player
location.locked = True
Copy link
Member

Choose a reason for hiding this comment

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

this and

Copy link
Member Author

Choose a reason for hiding this comment

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

They normally get locked right after anyway, but this was due to timing guarenteed by it being in main.py. Since we can now get interjected by other worlds we lock as we place.

Copy link
Member Author

Choose a reason for hiding this comment

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

(It might not be needed, I added this one for safety)

@@ -278,6 +279,8 @@ def ShopSlotFill(multiworld):
if 'P' in multiworld.shop_shuffle[location.player]:
price_to_funny_price(multiworld, shop.inventory[location.shop_slot], location.player)

FillDisabledShopSlots(multiworld)
Copy link
Member

Choose a reason for hiding this comment

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

this might require some explanation. is shop kind of broken in current main?

Copy link
Member Author

Choose a reason for hiding this comment

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

It isn't, but it gets moved. FillDisabledShopSlots was originally in Main.py

Comment on lines +547 to +549
@classmethod
def stage_modify_multidata(cls, multiworld, multidata: dict):

Copy link
Member

Choose a reason for hiding this comment

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

this looks like it might break old seeds on new webhost and vice versa. what was tested? (i didn't test yet)

Copy link
Member Author

Choose a reason for hiding this comment

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

the seeds themselves shouldn't break, the webtracker definitely does though. Current webtracker can't load rooms made with this change.

Comment on lines +550 to +554
ordered_areas = (
'Light World', 'Dark World', 'Hyrule Castle', 'Agahnims Tower', 'Eastern Palace', 'Desert Palace',
'Tower of Hera', 'Palace of Darkness', 'Swamp Palace', 'Skull Woods', 'Thieves Town', 'Ice Palace',
'Misery Mire', 'Turtle Rock', 'Ganons Tower', "Total"
)
Copy link
Member

Choose a reason for hiding this comment

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

this looks like the list we have in main.py?

Copy link
Member Author

Choose a reason for hiding this comment

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

it should be removed from main.py with this though?

Copy link
Member

Choose a reason for hiding this comment

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

yeah, it is. i mixed up stuff

Copy link
Member

@black-sliver black-sliver left a comment

Choose a reason for hiding this comment

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

Only rolled a ton of seeds to see if anything breaks in generation and a single seed (that i did not play) for the tracker. Hope someone else properly tested the tracker side of things and hope people are OK with the tracker not working across versions.

@ThePhar ThePhar added is: bug/fix Issues that are reporting bugs or pull requests that are fixing bugs. affects: webhost Issues/PRs that touch webhost and may need additional validation. labels May 31, 2023
@Berserker66
Copy link
Member Author

We could stage this out over two updates if desired. First we make the tracker work with the new or old data, then in a subsequent release we switch to the new data.

@black-sliver
Copy link
Member

We could stage this out over two updates if desired. First we make the tracker work with the new or old data, then in a subsequent release we switch to the new data.

If you have the time to write that up, that would probably be better. If not then we "just" have some angry users :-D

@Berserker66
Copy link
Member Author

I kind of don't so I instead waited, reducing the time of brokenness.

@Berserker66 Berserker66 merged commit ee40312 into main Jul 2, 2023
@Berserker66 Berserker66 deleted the lttp_free_core branch July 2, 2023 11:00
FlySniper pushed a commit to FlySniper/Archipelago that referenced this pull request Nov 14, 2023
Jouramie pushed a commit to Jouramie/Archipelago that referenced this pull request Feb 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
affects: webhost Issues/PRs that touch webhost and may need additional validation. is: bug/fix Issues that are reporting bugs or pull requests that are fixing bugs.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants