From 1c11f117ffc28372362fb9081a71e5d4d50b538f Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Wed, 20 Aug 2025 15:43:00 -0400 Subject: Implemented complete_at=1 in the apworld --- apworld/player_logic.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'apworld') diff --git a/apworld/player_logic.py b/apworld/player_logic.py index 455e24f..edf8c4f 100644 --- a/apworld/player_logic.py +++ b/apworld/player_logic.py @@ -166,9 +166,17 @@ class Lingo2PlayerLogic: reqs.items.add(self.world.static_logic.get_door_item_name(door.id)) else: # TODO: complete_at, control_center_color, switches, keyholders - for proxy in door.panels: - panel_reqs = self.get_panel_reqs(proxy.panel, proxy.answer if proxy.HasField("answer") else None) - reqs.merge(panel_reqs) + if not door.HasField("complete_at") or door.complete_at == 0: + for proxy in door.panels: + panel_reqs = self.get_panel_reqs(proxy.panel, proxy.answer if proxy.HasField("answer") else None) + reqs.merge(panel_reqs) + elif door.complete_at == 1: + reqs.or_logic.append([self.get_panel_reqs(proxy.panel, + proxy.answer if proxy.HasField("answer") else None) + for proxy in door.panels]) + else: + # TODO: Handle complete_at > 1 + pass for room in door.rooms: reqs.rooms.add(self.world.static_logic.get_room_region_name(room)) -- cgit 1.4.1