diff options
| -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)) |
