From f6e92a18de0b5cccd8a5b439f951c24ebfff6489 Mon Sep 17 00:00:00 2001 From: Aaron Wagener Date: Wed, 4 Oct 2023 11:23:29 -0500 Subject: [PATCH] The Messenger: Fix items accessibility region rule (#2263) --- worlds/messenger/Rules.py | 3 ++- worlds/messenger/test/TestAccess.py | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/worlds/messenger/Rules.py b/worlds/messenger/Rules.py index c24f60fb..664bf5f6 100644 --- a/worlds/messenger/Rules.py +++ b/worlds/messenger/Rules.py @@ -263,5 +263,6 @@ def set_self_locking_items(multiworld: MultiWorld, player: int) -> None: allow_self_locking_items(multiworld.get_location("Elemental Skylands Seal - Water", player), "Currents Master") # add these locations when seals and shards aren't shuffled elif not multiworld.shuffle_shards[player]: - allow_self_locking_items(multiworld.get_region("Cloud Ruins Right", player), "Ruxxtin's Amulet") + for entrance in multiworld.get_region("Cloud Ruins", player).entrances: + entrance.access_rule = lambda state: state.has("Wingsuit", player) or state.has("Rope Dart", player) allow_self_locking_items(multiworld.get_region("Forlorn Temple", player), *PHOBEKINS) diff --git a/worlds/messenger/test/TestAccess.py b/worlds/messenger/test/TestAccess.py index 452ed118..e95a81c5 100644 --- a/worlds/messenger/test/TestAccess.py +++ b/worlds/messenger/test/TestAccess.py @@ -163,6 +163,8 @@ class ItemsAccessTest(MessengerTestBase): "Forlorn Temple - Demon King": PHOBEKINS } + self.multiworld.state = self.multiworld.get_all_state(True) + self.remove_by_name(location_lock_pairs.values()) for loc in location_lock_pairs: for item_name in location_lock_pairs[loc]: item = self.get_item_by_name(item_name)