summary refs log tree commit diff stats
path: root/apworld/static_logic.py
diff options
context:
space:
mode:
Diffstat (limited to 'apworld/static_logic.py')
-rw-r--r--apworld/static_logic.py20
1 files changed, 15 insertions, 5 deletions
diff --git a/apworld/static_logic.py b/apworld/static_logic.py index 9cd3ced..965ce3e 100644 --- a/apworld/static_logic.py +++ b/apworld/static_logic.py
@@ -18,7 +18,7 @@ class Lingo2StaticLogic:
18 18
19 for door in self.objects.doors: 19 for door in self.objects.doors:
20 if door.type in [data_pb2.DoorType.STANDARD, data_pb2.DoorType.LOCATION_ONLY, data_pb2.DoorType.GRAVESTONE]: 20 if door.type in [data_pb2.DoorType.STANDARD, data_pb2.DoorType.LOCATION_ONLY, data_pb2.DoorType.GRAVESTONE]:
21 location_name = f"{self.objects.maps[door.map_id].name} - {door.name}" 21 location_name = f"{self.get_map_object_map_name(door)} - {door.name}"
22 self.location_id_to_name[door.ap_id] = location_name 22 self.location_id_to_name[door.ap_id] = location_name
23 23
24 if door.type not in [data_pb2.DoorType.EVENT, data_pb2.DoorType.LOCATION_ONLY, data_pb2.DoorType.GRAVESTONE]: 24 if door.type not in [data_pb2.DoorType.EVENT, data_pb2.DoorType.LOCATION_ONLY, data_pb2.DoorType.GRAVESTONE]:
@@ -27,16 +27,20 @@ class Lingo2StaticLogic:
27 27
28 for letter in self.objects.letters: 28 for letter in self.objects.letters:
29 letter_name = f"{letter.key.upper()}{'2' if letter.level2 else '1'}" 29 letter_name = f"{letter.key.upper()}{'2' if letter.level2 else '1'}"
30 location_name = f"{self.objects.maps[self.objects.rooms[letter.room_id].map_id].name} - {letter_name}" 30 location_name = f"{self.get_room_object_map_name(letter)} - {letter_name}"
31 self.location_id_to_name[letter.ap_id] = location_name 31 self.location_id_to_name[letter.ap_id] = location_name
32 32
33 if not letter.level2: 33 if not letter.level2:
34 self.item_id_to_name[letter.ap_id] = letter_name 34 self.item_id_to_name[letter.ap_id] = letter_name
35 35
36 for mastery in self.objects.masteries: 36 for mastery in self.objects.masteries:
37 location_name = f"{self.objects.maps[self.objects.rooms[mastery.room_id].map_id].name} - Mastery" 37 location_name = f"{self.get_room_object_map_name(mastery)} - Mastery"
38 self.location_id_to_name[mastery.ap_id] = location_name 38 self.location_id_to_name[mastery.ap_id] = location_name
39 39
40 for ending in self.objects.endings:
41 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
43
40 self.item_id_to_name[self.objects.special_ids["Nothing"]] = "Nothing" 44 self.item_id_to_name[self.objects.special_ids["Nothing"]] = "Nothing"
41 45
42 self.item_name_to_id = {name: ap_id for ap_id, name in self.item_id_to_name.items()} 46 self.item_name_to_id = {name: ap_id for ap_id, name in self.item_id_to_name.items()}
@@ -44,8 +48,14 @@ class Lingo2StaticLogic:
44 48
45 def get_door_item_name(self, door_id: int) -> str: 49 def get_door_item_name(self, door_id: int) -> str:
46 door = self.objects.doors[door_id] 50 door = self.objects.doors[door_id]
47 return f"{self.objects.maps[door.map_id].name} - {door.name}" 51 return f"{self.get_map_object_map_name(door)} - {door.name}"
48 52
49 def get_room_region_name(self, room_id: int) -> str: 53 def get_room_region_name(self, room_id: int) -> str:
50 room = self.objects.rooms[room_id] 54 room = self.objects.rooms[room_id]
51 return f"{self.objects.maps[room.map_id].name} - {room.name}" 55 return f"{self.get_map_object_map_name(room)} - {room.name}"
56
57 def get_map_object_map_name(self, obj) -> str:
58 return self.objects.maps[obj.map_id].display_name
59
60 def get_room_object_map_name(self, obj) -> str:
61 return self.get_map_object_map_name(self.objects.rooms[obj.room_id])