about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorStar Rauchenberger <fefferburbia@gmail.com>2025-09-08 22:10:28 -0400
committerStar Rauchenberger <fefferburbia@gmail.com>2025-09-08 22:10:28 -0400
commit7a5d9d53da0b1c56a272dcfd535800e92dfd2e0b (patch)
tree6e8017a346e84d8c6c3f39102e9dca269f187869
parent52318e66adcb514d9d13c77640ca42e99ba7c20b (diff)
downloadlingo2-archipelago-7a5d9d53da0b1c56a272dcfd535800e92dfd2e0b.tar.gz
lingo2-archipelago-7a5d9d53da0b1c56a272dcfd535800e92dfd2e0b.tar.bz2
lingo2-archipelago-7a5d9d53da0b1c56a272dcfd535800e92dfd2e0b.zip
[Apworld] Added item/location groups
-rw-r--r--apworld/__init__.py2
-rw-r--r--apworld/static_logic.py10
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