diff --git a/BaseClasses.py b/BaseClasses.py index d1b9b5f6d3..ccb8e0677f 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -788,9 +788,11 @@ class CollectionState(): self.multiworld.worlds[player].reached_region(self, new_region) # Retry connections if the new region can unblock them - for new_entrance in self.multiworld.indirect_connections.get(new_region, set()): - if new_entrance in blocked_connections and new_entrance not in queue: - queue.append(new_entrance) + entrances = self.multiworld.indirect_connections.get(new_region) + if entrances is not None: + relevant_entrances = entrances.intersection(blocked_connections) + relevant_entrances.difference_update(queue) + queue.extend(relevant_entrances) def _update_reachable_regions_auto_indirect_conditions(self, player: int, queue: deque[Entrance]): reachable_regions = self.reachable_regions[player]