diff options
Diffstat (limited to 'apworld/static_logic.py')
-rw-r--r-- | apworld/static_logic.py | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/apworld/static_logic.py b/apworld/static_logic.py index 0613474..a945bc0 100644 --- a/apworld/static_logic.py +++ b/apworld/static_logic.py | |||
@@ -44,6 +44,11 @@ class Lingo2StaticLogic: | |||
44 | for progressive in self.objects.progressives: | 44 | for progressive in self.objects.progressives: |
45 | self.item_id_to_name[progressive.ap_id] = progressive.name | 45 | self.item_id_to_name[progressive.ap_id] = progressive.name |
46 | 46 | ||
47 | for keyholder in self.objects.keyholders: | ||
48 | if keyholder.HasField("key"): | ||
49 | 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 | ||
51 | |||
47 | self.item_id_to_name[self.objects.special_ids["Nothing"]] = "Nothing" | 52 | self.item_id_to_name[self.objects.special_ids["Nothing"]] = "Nothing" |
48 | 53 | ||
49 | self.item_name_to_id = {name: ap_id for ap_id, name in self.item_id_to_name.items()} | 54 | self.item_name_to_id = {name: ap_id for ap_id, name in self.item_id_to_name.items()} |
@@ -57,13 +62,7 @@ class Lingo2StaticLogic: | |||
57 | return self.get_door_item_name(door_id) | 62 | return self.get_door_item_name(door_id) |
58 | 63 | ||
59 | def get_door_location_name(self, door: data_pb2.Door) -> str: | 64 | def get_door_location_name(self, door: data_pb2.Door) -> str: |
60 | game_map = self.objects.maps[door.map_id] | 65 | map_part = self.get_room_object_location_prefix(door) |
61 | room = self.objects.rooms[door.room_id] | ||
62 | |||
63 | if room.HasField("panel_display_name"): | ||
64 | map_part = f"{game_map.display_name} ({room.panel_display_name})" | ||
65 | else: | ||
66 | map_part = game_map.display_name | ||
67 | 66 | ||
68 | if door.HasField("location_name"): | 67 | if door.HasField("location_name"): |
69 | return f"{map_part} - {door.location_name}" | 68 | return f"{map_part} - {door.location_name}" |
@@ -129,3 +128,12 @@ class Lingo2StaticLogic: | |||
129 | 128 | ||
130 | def get_room_object_map_name(self, obj) -> str: | 129 | def get_room_object_map_name(self, obj) -> str: |
131 | return self.get_map_object_map_name(self.objects.rooms[obj.room_id]) | 130 | return self.get_map_object_map_name(self.objects.rooms[obj.room_id]) |
131 | |||
132 | def get_room_object_location_prefix(self, obj) -> str: | ||
133 | room = self.objects.rooms[obj.room_id] | ||
134 | game_map = self.objects.maps[room.map_id] | ||
135 | |||
136 | if room.HasField("panel_display_name"): | ||
137 | return f"{game_map.display_name} ({room.panel_display_name})" | ||
138 | else: | ||
139 | return game_map.display_name | ||