From 741ec36ee11033caf7060a10e0bafcc99a6c4b1f Mon Sep 17 00:00:00 2001 From: Fabian Dill Date: Fri, 18 Jun 2021 23:17:12 +0200 Subject: [PATCH] all requires to be modified by trigggers and linked options --- Mystery.py | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/Mystery.py b/Mystery.py index 4f56ee14..947a67fb 100644 --- a/Mystery.py +++ b/Mystery.py @@ -453,22 +453,6 @@ def get_plando_bosses(boss_shuffle: str, plando_options: typing.Set[str]) -> str def roll_settings(weights: dict, plando_options: typing.Set[str] = frozenset(("bosses",))): - requirements = weights.get("requires", {}) - if requirements: - version = requirements.get("version", __version__) - if tuplize_version(version) > version_tuple: - raise Exception(f"Settings reports required version of generator is at least {version}, " - f"however generator is of version {__version__}") - required_plando_options = requirements.get("plando", "") - required_plando_options = set(option.strip() for option in required_plando_options.split(",")) - required_plando_options -= plando_options - if required_plando_options: - if len(required_plando_options) == 1: - raise Exception(f"Settings reports required plando module {', '.join(required_plando_options)}, " - f"which is not enabled.") - else: - raise Exception(f"Settings reports required plando modules {', '.join(required_plando_options)}, " - f"which are not enabled.") if "pre_rolled" in weights: pre_rolled = weights["pre_rolled"] @@ -506,6 +490,23 @@ def roll_settings(weights: dict, plando_options: typing.Set[str] = frozenset(("b if "triggers" in weights: weights = roll_triggers(weights) + requirements = weights.get("requires", {}) + if requirements: + version = requirements.get("version", __version__) + if tuplize_version(version) > version_tuple: + raise Exception(f"Settings reports required version of generator is at least {version}, " + f"however generator is of version {__version__}") + required_plando_options = requirements.get("plando", "") + required_plando_options = set(option.strip() for option in required_plando_options.split(",")) + required_plando_options -= plando_options + if required_plando_options: + if len(required_plando_options) == 1: + raise Exception(f"Settings reports required plando module {', '.join(required_plando_options)}, " + f"which is not enabled.") + else: + raise Exception(f"Settings reports required plando modules {', '.join(required_plando_options)}, " + f"which are not enabled.") + ret = argparse.Namespace() ret.name = get_choice('name', weights) ret.accessibility = get_choice('accessibility', weights)