@@ -12,7 +12,7 @@ class NoitaLocation(Location):
12
12
class LocationData (NamedTuple ):
13
13
id : int
14
14
flag : int = 0
15
- ltype : str = "shop "
15
+ ltype : str = "Shop "
16
16
17
17
18
18
class LocationFlag (IntEnum ):
@@ -25,7 +25,7 @@ class LocationFlag(IntEnum):
25
25
26
26
# Mapping of items in each region.
27
27
# Only the first Hidden Chest and Pedestal are mapped here, the others are created in Regions.
28
- # ltype key: "chest " = Hidden Chests, "pedestal " = Pedestals, "boss " = Boss, "orb " = Orb.
28
+ # ltype key: "Chest " = Hidden Chests, "Pedestal " = Pedestals, "Boss " = Boss, "Orb " = Orb.
29
29
# 110000-110671
30
30
location_region_mapping : Dict [str , Dict [str , LocationData ]] = {
31
31
"Coal Pits Holy Mountain" : {
@@ -91,117 +91,118 @@ class LocationFlag(IntEnum):
91
91
"Secret Shop Item 4" : LocationData (110045 ),
92
92
},
93
93
"The Sky" : {
94
- "Kivi" : LocationData (110670 , LocationFlag .main_world , "boss " ),
94
+ "Kivi" : LocationData (110670 , LocationFlag .main_world , "Boss " ),
95
95
},
96
96
"Floating Island" : {
97
- "Floating Island Orb" : LocationData (110658 , LocationFlag .main_path , "orb " ),
97
+ "Floating Island Orb" : LocationData (110658 , LocationFlag .main_path , "Orb " ),
98
98
},
99
99
"Pyramid" : {
100
- "Kolmisilmän Koipi" : LocationData (110649 , LocationFlag .main_world , "boss " ),
101
- "Pyramid Orb" : LocationData (110659 , LocationFlag .main_world , "orb " ),
102
- "Sandcave Orb" : LocationData (110662 , LocationFlag .main_world , "orb " ),
100
+ "Kolmisilmän Koipi" : LocationData (110649 , LocationFlag .main_world , "Boss " ),
101
+ "Pyramid Orb" : LocationData (110659 , LocationFlag .main_world , "Orb " ),
102
+ "Sandcave Orb" : LocationData (110662 , LocationFlag .main_world , "Orb " ),
103
103
},
104
104
"Overgrown Cavern" : {
105
- "Overgrown Cavern Chest" : LocationData (110526 , LocationFlag .main_world , "chest " ),
106
- "Overgrown Cavern Pedestal" : LocationData (110546 , LocationFlag .main_world , "pedestal " ),
105
+ "Overgrown Cavern Chest" : LocationData (110526 , LocationFlag .main_world , "Chest " ),
106
+ "Overgrown Cavern Pedestal" : LocationData (110546 , LocationFlag .main_world , "Pedestal " ),
107
107
},
108
108
"Lake" : {
109
- "Syväolento" : LocationData (110651 , LocationFlag .main_world , "boss " ),
110
- "Tapion vasalli" : LocationData (110669 , LocationFlag .main_world , "boss " ),
109
+ "Syväolento" : LocationData (110651 , LocationFlag .main_world , "Boss " ),
110
+ "Tapion vasalli" : LocationData (110669 , LocationFlag .main_world , "Boss " ),
111
111
},
112
112
"Frozen Vault" : {
113
- "Frozen Vault Orb" : LocationData (110660 , LocationFlag .main_world , "orb " ),
114
- "Frozen Vault Chest" : LocationData (110566 , LocationFlag .main_world , "chest " ),
115
- "Frozen Vault Pedestal" : LocationData (110586 , LocationFlag .main_world , "pedestal " ),
113
+ "Frozen Vault Orb" : LocationData (110660 , LocationFlag .main_world , "Orb " ),
114
+ "Frozen Vault Chest" : LocationData (110566 , LocationFlag .main_world , "Chest " ),
115
+ "Frozen Vault Pedestal" : LocationData (110586 , LocationFlag .main_world , "Pedestal " ),
116
116
},
117
117
"Mines" : {
118
- "Mines Chest" : LocationData (110046 , LocationFlag .main_path , "chest " ),
119
- "Mines Pedestal" : LocationData (110066 , LocationFlag .main_path , "pedestal " ),
118
+ "Mines Chest" : LocationData (110046 , LocationFlag .main_path , "Chest " ),
119
+ "Mines Pedestal" : LocationData (110066 , LocationFlag .main_path , "Pedestal " ),
120
120
},
121
121
# Collapsed Mines is a very small area, combining it with the Mines. Leaving this here as a reminder
122
+
122
123
"Ancient Laboratory" : {
123
- "Ylialkemisti" : LocationData (110656 , LocationFlag .side_path , "boss " ),
124
+ "Ylialkemisti" : LocationData (110656 , LocationFlag .side_path , "Boss " ),
124
125
},
125
126
"Abyss Orb Room" : {
126
- "Sauvojen Tuntija" : LocationData (110650 , LocationFlag .side_path , "boss " ),
127
- "Abyss Orb" : LocationData (110665 , LocationFlag .main_path , "orb " ),
127
+ "Sauvojen Tuntija" : LocationData (110650 , LocationFlag .side_path , "Boss " ),
128
+ "Abyss Orb" : LocationData (110665 , LocationFlag .main_path , "Orb " ),
128
129
},
129
130
"Below Lava Lake" : {
130
- "Lava Lake Orb" : LocationData (110661 , LocationFlag .side_path , "orb " ),
131
+ "Lava Lake Orb" : LocationData (110661 , LocationFlag .side_path , "Orb " ),
131
132
},
132
133
"Coal Pits" : {
133
- "Coal Pits Chest" : LocationData (110126 , LocationFlag .main_path , "chest " ),
134
- "Coal Pits Pedestal" : LocationData (110146 , LocationFlag .main_path , "pedestal " ),
134
+ "Coal Pits Chest" : LocationData (110126 , LocationFlag .main_path , "Chest " ),
135
+ "Coal Pits Pedestal" : LocationData (110146 , LocationFlag .main_path , "Pedestal " ),
135
136
},
136
137
"Fungal Caverns" : {
137
- "Fungal Caverns Chest" : LocationData (110166 , LocationFlag .side_path , "chest " ),
138
- "Fungal Caverns Pedestal" : LocationData (110186 , LocationFlag .side_path , "pedestal " ),
138
+ "Fungal Caverns Chest" : LocationData (110166 , LocationFlag .side_path , "Chest " ),
139
+ "Fungal Caverns Pedestal" : LocationData (110186 , LocationFlag .side_path , "Pedestal " ),
139
140
},
140
141
"Snowy Depths" : {
141
- "Snowy Depths Chest" : LocationData (110206 , LocationFlag .main_path , "chest " ),
142
- "Snowy Depths Pedestal" : LocationData (110226 , LocationFlag .main_path , "pedestal " ),
142
+ "Snowy Depths Chest" : LocationData (110206 , LocationFlag .main_path , "Chest " ),
143
+ "Snowy Depths Pedestal" : LocationData (110226 , LocationFlag .main_path , "Pedestal " ),
143
144
},
144
145
"Magical Temple" : {
145
- "Magical Temple Orb" : LocationData (110663 , LocationFlag .side_path , "orb " ),
146
+ "Magical Temple Orb" : LocationData (110663 , LocationFlag .side_path , "Orb " ),
146
147
},
147
148
"Hiisi Base" : {
148
- "Hiisi Base Chest" : LocationData (110246 , LocationFlag .main_path , "chest " ),
149
- "Hiisi Base Pedestal" : LocationData (110266 , LocationFlag .main_path , "pedestal " ),
149
+ "Hiisi Base Chest" : LocationData (110246 , LocationFlag .main_path , "Chest " ),
150
+ "Hiisi Base Pedestal" : LocationData (110266 , LocationFlag .main_path , "Pedestal " ),
150
151
},
151
152
"Underground Jungle" : {
152
- "Suomuhauki" : LocationData (110648 , LocationFlag .main_path , "boss " ),
153
- "Underground Jungle Chest" : LocationData (110286 , LocationFlag .main_path , "chest " ),
154
- "Underground Jungle Pedestal" : LocationData (110306 , LocationFlag .main_path , "pedestal " ),
153
+ "Suomuhauki" : LocationData (110648 , LocationFlag .main_path , "Boss " ),
154
+ "Underground Jungle Chest" : LocationData (110286 , LocationFlag .main_path , "Chest " ),
155
+ "Underground Jungle Pedestal" : LocationData (110306 , LocationFlag .main_path , "Pedestal " ),
155
156
},
156
157
"Lukki Lair" : {
157
- "Lukki Lair Orb" : LocationData (110664 , LocationFlag .side_path , "orb " ),
158
- "Lukki Lair Chest" : LocationData (110326 , LocationFlag .side_path , "chest " ),
159
- "Lukki Lair Pedestal" : LocationData (110346 , LocationFlag .side_path , "pedestal " ),
158
+ "Lukki Lair Orb" : LocationData (110664 , LocationFlag .side_path , "Orb " ),
159
+ "Lukki Lair Chest" : LocationData (110326 , LocationFlag .side_path , "Chest " ),
160
+ "Lukki Lair Pedestal" : LocationData (110346 , LocationFlag .side_path , "Pedestal " ),
160
161
},
161
162
"The Vault" : {
162
- "The Vault Chest" : LocationData (110366 , LocationFlag .main_path , "chest " ),
163
- "The Vault Pedestal" : LocationData (110386 , LocationFlag .main_path , "pedestal " ),
163
+ "The Vault Chest" : LocationData (110366 , LocationFlag .main_path , "Chest " ),
164
+ "The Vault Pedestal" : LocationData (110386 , LocationFlag .main_path , "Pedestal " ),
164
165
},
165
166
"Temple of the Art" : {
166
- "Gate Guardian" : LocationData (110652 , LocationFlag .main_path , "boss " ),
167
- "Temple of the Art Chest" : LocationData (110406 , LocationFlag .main_path , "chest " ),
168
- "Temple of the Art Pedestal" : LocationData (110426 , LocationFlag .main_path , "pedestal " ),
167
+ "Gate Guardian" : LocationData (110652 , LocationFlag .main_path , "Boss " ),
168
+ "Temple of the Art Chest" : LocationData (110406 , LocationFlag .main_path , "Chest " ),
169
+ "Temple of the Art Pedestal" : LocationData (110426 , LocationFlag .main_path , "Pedestal " ),
169
170
},
170
171
"The Tower" : {
171
- "The Tower Chest" : LocationData (110606 , LocationFlag .main_world , "chest " ),
172
- "The Tower Pedestal" : LocationData (110626 , LocationFlag .main_world , "pedestal " ),
172
+ "The Tower Chest" : LocationData (110606 , LocationFlag .main_world , "Chest " ),
173
+ "The Tower Pedestal" : LocationData (110626 , LocationFlag .main_world , "Pedestal " ),
173
174
},
174
175
"Wizards' Den" : {
175
- "Mestarien Mestari" : LocationData (110655 , LocationFlag .main_world , "boss " ),
176
- "Wizards' Den Orb" : LocationData (110668 , LocationFlag .main_world , "orb " ),
177
- "Wizards' Den Chest" : LocationData (110446 , LocationFlag .main_world , "chest " ),
178
- "Wizards' Den Pedestal" : LocationData (110466 , LocationFlag .main_world , "pedestal " ),
176
+ "Mestarien Mestari" : LocationData (110655 , LocationFlag .main_world , "Boss " ),
177
+ "Wizards' Den Orb" : LocationData (110668 , LocationFlag .main_world , "Orb " ),
178
+ "Wizards' Den Chest" : LocationData (110446 , LocationFlag .main_world , "Chest " ),
179
+ "Wizards' Den Pedestal" : LocationData (110466 , LocationFlag .main_world , "Pedestal " ),
179
180
},
180
181
"Powerplant" : {
181
- "Kolmisilmän silmä" : LocationData (110657 , LocationFlag .main_world , "boss " ),
182
- "Power Plant Chest" : LocationData (110486 , LocationFlag .main_world , "chest " ),
183
- "Power Plant Pedestal" : LocationData (110506 , LocationFlag .main_world , "pedestal " ),
182
+ "Kolmisilmän silmä" : LocationData (110657 , LocationFlag .main_world , "Boss " ),
183
+ "Power Plant Chest" : LocationData (110486 , LocationFlag .main_world , "Chest " ),
184
+ "Power Plant Pedestal" : LocationData (110506 , LocationFlag .main_world , "Pedestal " ),
184
185
},
185
186
"Snow Chasm" : {
186
- "Unohdettu" : LocationData (110653 , LocationFlag .main_world , "boss " ),
187
- "Snow Chasm Orb" : LocationData (110667 , LocationFlag .main_world , "orb " ),
187
+ "Unohdettu" : LocationData (110653 , LocationFlag .main_world , "Boss " ),
188
+ "Snow Chasm Orb" : LocationData (110667 , LocationFlag .main_world , "Orb " ),
188
189
},
189
190
"Meat Realm" : {
190
- "Meat Realm Chest" : LocationData (110086 , LocationFlag .main_world , "chest " ),
191
- "Meat Realm Pedestal" : LocationData (110106 , LocationFlag .main_world , "pedestal " ),
192
- "Limatoukka" : LocationData (110647 , LocationFlag .main_world , "boss " ),
191
+ "Meat Realm Chest" : LocationData (110086 , LocationFlag .main_world , "Chest " ),
192
+ "Meat Realm Pedestal" : LocationData (110106 , LocationFlag .main_world , "Pedestal " ),
193
+ "Limatoukka" : LocationData (110647 , LocationFlag .main_world , "Boss " ),
193
194
},
194
195
"West Meat Realm" : {
195
- "Kolmisilmän sydän" : LocationData (110671 , LocationFlag .main_world , "boss " ),
196
+ "Kolmisilmän sydän" : LocationData (110671 , LocationFlag .main_world , "Boss " ),
196
197
},
197
198
"The Laboratory" : {
198
- "Kolmisilmä" : LocationData (110646 , LocationFlag .main_path , "boss " ),
199
+ "Kolmisilmä" : LocationData (110646 , LocationFlag .main_path , "Boss " ),
199
200
},
200
201
"Friend Cave" : {
201
- "Toveri" : LocationData (110654 , LocationFlag .main_world , "boss " ),
202
+ "Toveri" : LocationData (110654 , LocationFlag .main_world , "Boss " ),
202
203
},
203
204
"The Work (Hell)" : {
204
- "The Work (Hell) Orb" : LocationData (110666 , LocationFlag .main_world , "orb " ),
205
+ "The Work (Hell) Orb" : LocationData (110666 , LocationFlag .main_world , "Orb " ),
205
206
},
206
207
}
207
208
@@ -212,18 +213,20 @@ def make_location_range(location_name: str, base_id: int, amt: int) -> Dict[str,
212
213
return {f"{ location_name } { i + 1 } " : base_id + i for i in range (amt )}
213
214
214
215
215
- location_name_groups : Dict [str , Set [str ]] = {"shop " : set (), "orb " : set (), "boss " : set (), "chest " : set (),
216
- "pedestal " : set ()}
216
+ location_name_groups : Dict [str , Set [str ]] = {"Shop " : set (), "Orb " : set (), "Boss " : set (), "Chest " : set (),
217
+ "Pedestal " : set ()}
217
218
location_name_to_id : Dict [str , int ] = {}
218
219
219
220
220
- for location_group in location_region_mapping .values ():
221
+ for region_name , location_group in location_region_mapping .items ():
222
+ location_name_groups [region_name ] = set ()
221
223
for locname , locinfo in location_group .items ():
222
224
# Iterating the hidden chest and pedestal locations here to avoid clutter above
223
- amount = 20 if locinfo .ltype in ["chest " , "pedestal " ] else 1
225
+ amount = 20 if locinfo .ltype in ["Chest " , "Pedestal " ] else 1
224
226
entries = make_location_range (locname , locinfo .id , amount )
225
227
226
228
location_name_to_id .update (entries )
227
229
location_name_groups [locinfo .ltype ].update (entries .keys ())
230
+ location_name_groups [region_name ].update (entries .keys ())
228
231
229
232
shop_locations = {name for name in location_name_to_id .keys () if "Shop Item" in name }
0 commit comments