From 8ea8aef094f73ff6d16f209267c4037399a9a3e7 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Fri, 17 Oct 2025 18:17:28 -0400 Subject: Fixed deep copy when merging requirements --- apworld/player_logic.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apworld/player_logic.py b/apworld/player_logic.py index 84c93c8..5271ed1 100644 --- a/apworld/player_logic.py +++ b/apworld/player_logic.py @@ -73,7 +73,7 @@ class AccessRequirements: self.cyans = self.cyans or other.cyans for disjunction in other.or_logic: - self.or_logic.append(disjunction) + self.or_logic.append([sub_req.copy() for sub_req in disjunction]) if other.complete_at is not None: # Merging multiple requirements that use complete_at sucks, and is part of why we want to minimize use of @@ -84,7 +84,7 @@ class AccessRequirements: left_req = AccessRequirements() left_req.complete_at = self.complete_at - left_req.possibilities = self.possibilities + left_req.possibilities = [sub_req.copy() for sub_req in self.possibilities] self.or_logic.append([left_req]) self.complete_at = None @@ -92,11 +92,11 @@ class AccessRequirements: right_req = AccessRequirements() right_req.complete_at = other.complete_at - right_req.possibilities = other.possibilities + right_req.possibilities = [sub_req.copy() for sub_req in other.possibilities] self.or_logic.append([right_req]) else: self.complete_at = other.complete_at - self.possibilities = other.possibilities + self.possibilities = [sub_req.copy() for sub_req in other.possibilities] def is_empty(self) -> bool: return (len(self.items) == 0 and len(self.progressives) == 0 and len(self.rooms) == 0 and len(self.letters) == 0 -- cgit 1.4.1