You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
From a debugger, it can be seen that the completion_condition function is still set to the lambda state: True lambda that gets set by default in MultiWorld.__init__().
Modifying the code to set the completion condition first also results in the beatable check failing every time when the completion conditions requires getting the "Triforce" event item because the new_all_state returned by new_all_state = ootworld.get_state_with_complete_itempool() specifically does not collect event items:
# Specifically ensures that only real items are gotten, not any events.
The beatable check seems to be irrelevant in general because the state created by get_state_with_complete_itempool() is an empty state that has been made to collect all items in the OOT item pool and pre-fill items, which is unaffected by shuffling entrances.
What were the expected results?
The completion condition should be set before checking if the game is beatable.
If the intent is to check if the arrangement of entrances results in a beatable seed, the check for the seed being beatable shouldn't be entirely independent from how the entrances were shuffled.
Software
Local generation
The text was updated successfully, but these errors were encountered:
What happened?
At the very end of
EntranceShuffle.shuffle_random_entrances()
, OOT checks if it can beat the game with how the entrances were shuffled:Archipelago/worlds/oot/EntranceShuffle.py
Line 631 in 77e3f9f
But, the completion condition is set in
Rules.set_rules()
, which is run afterEntranceShuffle.shuffle_random_entrances()
inOOTWorld.set_rules()
From a debugger, it can be seen that the
completion_condition
function is still set to thelambda state: True
lambda that gets set by default inMultiWorld.__init__()
.Modifying the code to set the completion condition first also results in the beatable check failing every time when the completion conditions requires getting the
"Triforce"
event item because thenew_all_state
returned bynew_all_state = ootworld.get_state_with_complete_itempool()
specifically does not collect event items:Archipelago/worlds/oot/__init__.py
Line 1383 in 77e3f9f
The beatable check seems to be irrelevant in general because the state created by
get_state_with_complete_itempool()
is an empty state that has been made to collect all items in the OOT item pool and pre-fill items, which is unaffected by shuffling entrances.What were the expected results?
The completion condition should be set before checking if the game is beatable.
If the intent is to check if the arrangement of entrances results in a beatable seed, the check for the seed being beatable shouldn't be entirely independent from how the entrances were shuffled.
Software
Local generation
The text was updated successfully, but these errors were encountered: