Skip caching get_all_state while setting rules

Since rules have not been set for later worlds, the cache believes the completion condition is freely available if it had been placed previously, which breaks beatable-only key placement.
This commit is contained in:
espeon65536
2021-09-01 13:20:43 -05:00
committed by Fabian Dill
parent f74db254f6
commit 88451d4239
2 changed files with 4 additions and 3 deletions

View File

@@ -213,7 +213,7 @@ class MultiWorld():
except KeyError as e:
raise KeyError('No such dungeon %s for player %d' % (dungeonname, player)) from e
def get_all_state(self) -> CollectionState:
def get_all_state(self, save_cache=True) -> CollectionState:
cached = getattr(self, "_all_state", None)
if cached:
return cached.copy()
@@ -229,7 +229,8 @@ class MultiWorld():
subworld.collect(ret, item)
ret.sweep_for_events()
self._all_state = ret
if save_cache:
self._all_state = ret
return ret
def get_items(self) -> list: