From f870bb3fad77ddb3d53d9b50392d4d2e4cbb20ec Mon Sep 17 00:00:00 2001 From: Fabian Dill Date: Fri, 25 Jun 2021 21:04:37 +0200 Subject: [PATCH] MultiServer: implement a hint recheck that triggers on get_save() Still torn if I want a single hint list per team and filter on demand, or have filtered lists and re_check on demand. --- MultiServer.py | 8 ++++++++ Mystery.py | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/MultiServer.py b/MultiServer.py index 9d51352f..45363b24 100644 --- a/MultiServer.py +++ b/MultiServer.py @@ -244,7 +244,15 @@ class Context(Node): import atexit atexit.register(self._save, True) # make sure we save on exit too + def recheck_hints(self): + for team, slot in self.hints: + self.hints[team, slot] = { + hint.re_check(self, team) for hint in + self.hints[team, slot] + } + def get_save(self) -> dict: + self.recheck_hints() d = { "connect_names": self.connect_names, "received_items": self.received_items, diff --git a/Mystery.py b/Mystery.py index b0dc1f35..0109e515 100644 --- a/Mystery.py +++ b/Mystery.py @@ -550,7 +550,7 @@ def roll_settings(weights: dict, plando_options: typing.Set[str] = frozenset(("b roll_alttp_settings(ret, game_weights, plando_options) elif ret.game == "Hollow Knight": for option_name, option in Options.hollow_knight_options.items(): - setattr(ret, option_name, option.from_any(get_choice(option_name, game_weights, True))) + setattr(ret, option_name, option.from_any(get_choice(option_name, game_weights))) elif ret.game == "Factorio": for option_name, option in Options.factorio_options.items(): if option_name in game_weights: