summary refs log tree commit diff stats
path: root/apworld
diff options
context:
space:
mode:
Diffstat (limited to 'apworld')
-rw-r--r--apworld/player_logic.py14
1 files changed, 11 insertions, 3 deletions
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:
166 reqs.items.add(self.world.static_logic.get_door_item_name(door.id)) 166 reqs.items.add(self.world.static_logic.get_door_item_name(door.id))
167 else: 167 else:
168 # TODO: complete_at, control_center_color, switches, keyholders 168 # TODO: complete_at, control_center_color, switches, keyholders
169 for proxy in door.panels: 169 if not door.HasField("complete_at") or door.complete_at == 0:
170 panel_reqs = self.get_panel_reqs(proxy.panel, proxy.answer if proxy.HasField("answer") else None) 170 for proxy in door.panels:
171 reqs.merge(panel_reqs) 171 panel_reqs = self.get_panel_reqs(proxy.panel, proxy.answer if proxy.HasField("answer") else None)
172 reqs.merge(panel_reqs)
173 elif door.complete_at == 1:
174 reqs.or_logic.append([self.get_panel_reqs(proxy.panel,
175 proxy.answer if proxy.HasField("answer") else None)
176 for proxy in door.panels])
177 else:
178 # TODO: Handle complete_at > 1
179 pass
172 180
173 for room in door.rooms: 181 for room in door.rooms:
174 reqs.rooms.add(self.world.static_logic.get_room_region_name(room)) 182 reqs.rooms.add(self.world.static_logic.get_room_region_name(room))