From 759e9979da18e5038a63ffe7d3f5e70013709aa2 Mon Sep 17 00:00:00 2001 From: aerinon Date: Thu, 26 Aug 2021 15:51:12 -0600 Subject: [PATCH] Rule fix for bigkey shuffle, use the always_allow for the big key, but require it for every other item --- Rules.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Rules.py b/Rules.py index 28d627da..3114bde0 100644 --- a/Rules.py +++ b/Rules.py @@ -1950,9 +1950,11 @@ def add_key_logic_rules(world, player): forbid_item(location, d_logic.small_key_name, player) for door in d_logic.bk_doors: add_rule(world.get_entrance(door.name, player), create_rule(d_logic.bk_name, player)) - if len(d_logic.bk_doors) > 0 or len(d_logic.bk_chests) > 1: - for chest in d_logic.bk_chests: - add_rule(world.get_location(chest.name, player), create_rule(d_logic.bk_name, player)) + for chest in d_logic.bk_chests: + big_chest = world.get_location(chest.name, player) + add_rule(big_chest, create_rule(d_logic.bk_name, player)) + if len(d_logic.bk_doors) == 0 and len(d_logic.bk_chests) <= 1: + set_always_allow(big_chest, lambda state, item: item.name == d_logic.bk_name and item.player == player) if world.retro[player]: for d_name, layout in world.key_layout[player].items(): for door in layout.flat_prop: