diff options
Diffstat (limited to 'apworld/static_logic.py')
-rw-r--r-- | apworld/static_logic.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/apworld/static_logic.py b/apworld/static_logic.py index b699d59..0cc7e55 100644 --- a/apworld/static_logic.py +++ b/apworld/static_logic.py | |||
@@ -8,9 +8,14 @@ class Lingo2StaticLogic: | |||
8 | item_name_to_id: dict[str, int] | 8 | item_name_to_id: dict[str, int] |
9 | location_name_to_id: dict[str, int] | 9 | location_name_to_id: dict[str, int] |
10 | 10 | ||
11 | item_name_groups: dict[str, list[str]] | ||
12 | location_name_groups: dict[str, list[str]] | ||
13 | |||
11 | def __init__(self): | 14 | def __init__(self): |
12 | self.item_id_to_name = {} | 15 | self.item_id_to_name = {} |
13 | self.location_id_to_name = {} | 16 | self.location_id_to_name = {} |
17 | self.item_name_groups = {} | ||
18 | self.location_name_groups = {} | ||
14 | 19 | ||
15 | file = pkgutil.get_data(__name__, "generated/data.binpb") | 20 | file = pkgutil.get_data(__name__, "generated/data.binpb") |
16 | self.objects = data_pb2.AllObjects() | 21 | self.objects = data_pb2.AllObjects() |
@@ -29,25 +34,33 @@ class Lingo2StaticLogic: | |||
29 | letter_name = f"{letter.key.upper()}{'2' if letter.level2 else '1'}" | 34 | letter_name = f"{letter.key.upper()}{'2' if letter.level2 else '1'}" |
30 | location_name = f"{self.get_room_object_map_name(letter)} - {letter_name}" | 35 | location_name = f"{self.get_room_object_map_name(letter)} - {letter_name}" |
31 | self.location_id_to_name[letter.ap_id] = location_name | 36 | self.location_id_to_name[letter.ap_id] = location_name |
37 | self.location_name_groups.setdefault("Letters", []).append(location_name) | ||
32 | 38 | ||
33 | if not letter.level2: | 39 | if not letter.level2: |
34 | self.item_id_to_name[letter.ap_id] = letter.key.upper() | 40 | self.item_id_to_name[letter.ap_id] = letter.key.upper() |
41 | self.item_name_groups.setdefault("Letters", []).append(letter.key.upper()) | ||
35 | 42 | ||
36 | for mastery in self.objects.masteries: | 43 | for mastery in self.objects.masteries: |
37 | location_name = f"{self.get_room_object_map_name(mastery)} - Mastery" | 44 | location_name = f"{self.get_room_object_map_name(mastery)} - Mastery" |
38 | self.location_id_to_name[mastery.ap_id] = location_name | 45 | self.location_id_to_name[mastery.ap_id] = location_name |
46 | self.location_name_groups.setdefault("Masteries", []).append(location_name) | ||
39 | 47 | ||
40 | for ending in self.objects.endings: | 48 | for ending in self.objects.endings: |
41 | location_name = f"{self.get_room_object_map_name(ending)} - {ending.name.title()} Ending" | 49 | location_name = f"{self.get_room_object_map_name(ending)} - {ending.name.title()} Ending" |
42 | self.location_id_to_name[ending.ap_id] = location_name | 50 | self.location_id_to_name[ending.ap_id] = location_name |
51 | self.location_name_groups.setdefault("Endings", []).append(location_name) | ||
43 | 52 | ||
44 | for progressive in self.objects.progressives: | 53 | for progressive in self.objects.progressives: |
45 | self.item_id_to_name[progressive.ap_id] = progressive.name | 54 | self.item_id_to_name[progressive.ap_id] = progressive.name |
46 | 55 | ||
56 | for door_group in self.objects.door_groups: | ||
57 | self.item_id_to_name[door_group.ap_id] = door_group.name | ||
58 | |||
47 | for keyholder in self.objects.keyholders: | 59 | for keyholder in self.objects.keyholders: |
48 | if keyholder.HasField("key"): | 60 | if keyholder.HasField("key"): |
49 | location_name = f"{self.get_room_object_location_prefix(keyholder)} - {keyholder.key.upper()} Keyholder" | 61 | location_name = f"{self.get_room_object_location_prefix(keyholder)} - {keyholder.key.upper()} Keyholder" |
50 | self.location_id_to_name[keyholder.ap_id] = location_name | 62 | self.location_id_to_name[keyholder.ap_id] = location_name |
63 | self.location_name_groups.setdefault("Keyholders", []).append(location_name) | ||
51 | 64 | ||
52 | self.item_id_to_name[self.objects.special_ids["A Job Well Done"]] = "A Job Well Done" | 65 | self.item_id_to_name[self.objects.special_ids["A Job Well Done"]] = "A Job Well Done" |
53 | 66 | ||