Fix MultiTracker breaking after Hint is used

This commit is contained in:
Fabian Dill 2021-04-12 00:06:27 +02:00
parent 4292cdddd5
commit 764e6e7926
2 changed files with 3 additions and 1 deletions

View File

@ -390,7 +390,7 @@ class RestrictedUnpickler(pickle.Unpickler):
def find_class(self, module, name):
if module == "builtins" and name in safe_builtins:
return getattr(builtins, name)
if module == "NetUtils" and name in {"NetworkItem", "ClientStatus"}:
if module == "NetUtils" and name in {"NetworkItem", "ClientStatus", "Hint"}:
import NetUtils
return getattr(NetUtils, name)
# Forbid everything else.

View File

@ -60,6 +60,7 @@ def get_shapes(world: MultiWorld, player: int) -> Dict[str, List[str]]:
previous_slice = []
while len(tech_names) > slice_size:
slice = tech_names[:slice_size]
world.random.shuffle(slice)
tech_names = tech_names[slice_size:]
for i, tech_name in enumerate(previous_slice):
prerequisites.setdefault(slice[i], set()).add(tech_name)
@ -84,6 +85,7 @@ def get_shapes(world: MultiWorld, player: int) -> Dict[str, List[str]]:
previous_slice = []
while slice_size:
slice = tech_names[:slice_size]
world.random.shuffle(slice)
tech_names = tech_names[slice_size:]
if previous_slice:
for i, tech_name in enumerate(slice):