diff options
Diffstat (limited to 'apworld')
-rw-r--r-- | apworld/player_logic.py | 14 |
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)) |