-
Notifications
You must be signed in to change notification settings - Fork 717
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
Bug: CollectionState.sweep_for_events() semantics may have been accidentally changed in #361 #3680
Comments
@Berserker66 I suppose |
Mysteryem
added a commit
to Mysteryem/Archipelago-ahit
that referenced
this issue
Jul 25, 2024
The filters may be incorrect, see ArchipelagoMW#3680.
Mysteryem
added a commit
to Mysteryem/Archipelago-ahit
that referenced
this issue
Jul 25, 2024
The filters may be incorrect, see ArchipelagoMW#3680.
related fix: #2239 |
Mysteryem
added a commit
to Mysteryem/Archipelago-ahit
that referenced
this issue
Jul 27, 2024
I think it's clear now that the change to location filtering semantics was a bug because it was allowing the `key_only=True` case to have locations which did not contain an advancement item.
So is this fixed now? |
#2239 was merged which removes the |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
What happened?
I was looking at the history of
CollectionState.sweep_for_events()
to try to understand it better and noticed that the semantics changed in #361 (cebd7fb) and the change does not look intentional to me.The semantics for
reachable_events
were previously equivalent to:A and ((not B) or C) and D
But in #361 (cebd7fb), the semantics changed to be equivalent to:
((A and (not B)) or C) and D
This change in semantics is still present in the
sweep_for_events()
implementation today (https://github.com/ArchipelagoMW/Archipelago/blob/9c2933f8033c8e8b9d9acdd341b043d7eca89d76/BaseClasses.py#L688C9-L689C91):Going by the code prior to #361, this should likely instead be
I'm not sure what the implications of this being an unintended change are. There appear to be only two places which use
key_only=True
, so these and any items for whichlocked_dungeon_item
exists and returnsTrue
, are likely the only places affected by the change in semantics.Archipelago/BaseClasses.py
Line 1294 in 9c2933f
and
Archipelago/Fill.py
Line 649 in 9c2933f
What were the expected results?
#361 seems to have been intended as a performance change, not one that should have changed semantics.
Software
Local generation
The text was updated successfully, but these errors were encountered: