diff options
Diffstat (limited to 'apworld/static_logic.py')
| -rw-r--r-- | apworld/static_logic.py | 9 |
1 files changed, 7 insertions, 2 deletions
| diff --git a/apworld/static_logic.py b/apworld/static_logic.py index 702f30b..8a84111 100644 --- a/apworld/static_logic.py +++ b/apworld/static_logic.py | |||
| @@ -15,6 +15,9 @@ class Lingo2StaticLogic: | |||
| 15 | 15 | ||
| 16 | letter_weights: dict[str, int] | 16 | letter_weights: dict[str, int] |
| 17 | 17 | ||
| 18 | door_id_by_ap_id: dict[int, int] | ||
| 19 | port_id_by_ap_id: dict[int, int] | ||
| 20 | |||
| 18 | def __init__(self): | 21 | def __init__(self): |
| 19 | self.item_id_to_name = {} | 22 | self.item_id_to_name = {} |
| 20 | self.location_id_to_name = {} | 23 | self.location_id_to_name = {} |
| @@ -31,8 +34,7 @@ class Lingo2StaticLogic: | |||
| 31 | location_name = self.get_door_location_name(door) | 34 | location_name = self.get_door_location_name(door) |
| 32 | self.location_id_to_name[door.ap_id] = location_name | 35 | self.location_id_to_name[door.ap_id] = location_name |
| 33 | 36 | ||
| 34 | if door.type not in [data_pb2.DoorType.EVENT, data_pb2.DoorType.LOCATION_ONLY, data_pb2.DoorType.GRAVESTONE, | 37 | if door.type not in [data_pb2.DoorType.EVENT, data_pb2.DoorType.LOCATION_ONLY, data_pb2.DoorType.GRAVESTONE]: |
| 35 | data_pb2.DoorType.LEGACY_LOCATION]: | ||
| 36 | item_name = self.get_door_item_name(door) | 38 | item_name = self.get_door_item_name(door) |
| 37 | self.item_id_to_name[door.ap_id] = item_name | 39 | self.item_id_to_name[door.ap_id] = item_name |
| 38 | 40 | ||
| @@ -84,6 +86,9 @@ class Lingo2StaticLogic: | |||
| 84 | for letter in panel.answer.upper(): | 86 | for letter in panel.answer.upper(): |
| 85 | self.letter_weights[letter] = self.letter_weights.get(letter, 0) + 1 | 87 | self.letter_weights[letter] = self.letter_weights.get(letter, 0) + 1 |
| 86 | 88 | ||
| 89 | self.door_id_by_ap_id = {door.ap_id: door.id for door in self.objects.doors if door.HasField("ap_id")} | ||
| 90 | self.port_id_by_ap_id = {port.ap_id: port.id for port in self.objects.ports if port.HasField("ap_id")} | ||
| 91 | |||
| 87 | def get_door_item_name(self, door: data_pb2.Door) -> str: | 92 | def get_door_item_name(self, door: data_pb2.Door) -> str: |
| 88 | return f"{self.get_map_object_map_name(door)} - {door.name}" | 93 | return f"{self.get_map_object_map_name(door)} - {door.name}" |
| 89 | 94 | ||
