diff options
author | Star Rauchenberger <fefferburbia@gmail.com> | 2025-09-08 22:10:28 -0400 |
---|---|---|
committer | Star Rauchenberger <fefferburbia@gmail.com> | 2025-09-08 22:10:28 -0400 |
commit | 7a5d9d53da0b1c56a272dcfd535800e92dfd2e0b (patch) | |
tree | 6e8017a346e84d8c6c3f39102e9dca269f187869 | |
parent | 52318e66adcb514d9d13c77640ca42e99ba7c20b (diff) | |
download | lingo2-archipelago-7a5d9d53da0b1c56a272dcfd535800e92dfd2e0b.tar.gz lingo2-archipelago-7a5d9d53da0b1c56a272dcfd535800e92dfd2e0b.tar.bz2 lingo2-archipelago-7a5d9d53da0b1c56a272dcfd535800e92dfd2e0b.zip |
[Apworld] Added item/location groups
-rw-r--r-- | apworld/__init__.py | 2 | ||||
-rw-r--r-- | apworld/static_logic.py | 10 |
2 files changed, 12 insertions, 0 deletions
diff --git a/apworld/__init__.py b/apworld/__init__.py index c45e8b3..d05bd38 100644 --- a/apworld/__init__.py +++ b/apworld/__init__.py | |||
@@ -32,6 +32,8 @@ class Lingo2World(World): | |||
32 | static_logic = Lingo2StaticLogic() | 32 | static_logic = Lingo2StaticLogic() |
33 | item_name_to_id = static_logic.item_name_to_id | 33 | item_name_to_id = static_logic.item_name_to_id |
34 | location_name_to_id = static_logic.location_name_to_id | 34 | location_name_to_id = static_logic.location_name_to_id |
35 | item_name_groups = static_logic.item_name_groups | ||
36 | location_name_groups = static_logic.location_name_groups | ||
35 | 37 | ||
36 | player_logic: Lingo2PlayerLogic | 38 | player_logic: Lingo2PlayerLogic |
37 | 39 | ||
diff --git a/apworld/static_logic.py b/apworld/static_logic.py index 3f6cdea..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,17 +34,21 @@ 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 |
@@ -51,6 +60,7 @@ class Lingo2StaticLogic: | |||
51 | if keyholder.HasField("key"): | 60 | if keyholder.HasField("key"): |
52 | 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" |
53 | 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) | ||
54 | 64 | ||
55 | 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" |
56 | 66 | ||