From 01572943835e014247f476d48354ee34cd2e7aac Mon Sep 17 00:00:00 2001 From: Fabian Dill Date: Wed, 7 Oct 2020 20:19:31 +0200 Subject: [PATCH] Fix sprite array crashing yaml_output Fix "Torches" toggle misname --- Mystery.py | 16 +++++++++------- Rules.py | 2 +- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/Mystery.py b/Mystery.py index 3be2bb30..0e849e0e 100644 --- a/Mystery.py +++ b/Mystery.py @@ -189,13 +189,15 @@ def main(args=None, callback=ERmain): important = {} for option, player_settings in vars(erargs).items(): if type(player_settings) == dict: - if len(set(player_settings.values())) > 1: - important[option] = {player: value for player, value in player_settings.items() if - player <= args.yaml_output} - elif len(set(player_settings.values())) > 0: - important[option] = player_settings[1] - else: - logging.debug(f"No player settings defined for option '{option}'") + if all(type(value) != list for value in player_settings.values()): + if len(frozenset(player_settings.values())) > 1: + important[option] = {player: value for player, value in player_settings.items() if + player <= args.yaml_output} + elif len(frozenset(player_settings.values())) > 0: + important[option] = player_settings[1] + else: + logging.debug(f"No player settings defined for option '{option}'") + else: if player_settings != "": # is not empty name important[option] = player_settings diff --git a/Rules.py b/Rules.py index 2af3d301..c2a4744d 100644 --- a/Rules.py +++ b/Rules.py @@ -127,7 +127,7 @@ def add_rule(spot, rule, combine='and'): def add_lamp_requirement(world: World, spot, player: int, has_accessible_torch: bool = False): if world.dark_room_logic[player] == "lamp": add_rule(spot, lambda state: state.has('Lamp', player)) - elif world.dark_room_logic[player] == "torch": # implicitly lamp as well + elif world.dark_room_logic[player] == "torches": # implicitly lamp as well if has_accessible_torch: add_rule(spot, lambda state: state.has('Lamp', player) or state.has('Fire Rod', player)) else: