@@ -177,6 +177,7 @@ def validate_conditions(
177
177
if condition not in {
178
178
"npc" ,
179
179
"calamity" ,
180
+ "grindy" ,
180
181
"pickaxe" ,
181
182
"hammer" ,
182
183
"mech_boss" ,
@@ -221,62 +222,60 @@ def mark_progression(
221
222
mark_progression (conditions , progression , rules , rule_indices , loc_to_item )
222
223
223
224
224
- def read_data () -> (
225
- Tuple [
226
- # Goal to rule index that ends that goal's range and the locations required
227
- List [Tuple [int , Set [str ]]],
228
- # Rules
229
- List [
230
- Tuple [
231
- # Rule
232
- str ,
233
- # Flag to flag arg
234
- Dict [str , Union [str , int , None ]],
235
- # True = or, False = and, None = N/A
236
- Union [bool , None ],
237
- # Conditions
238
- List [
239
- Tuple [
240
- # True = positive, False = negative
241
- bool ,
242
- # Condition type
243
- int ,
244
- # Condition name or list (True = or, False = and, None = N/A) (list shares type with outer)
245
- Union [str , Tuple [Union [bool , None ], List ]],
246
- # Condition arg
247
- Union [str , int , None ],
248
- ]
249
- ],
250
- ]
251
- ],
252
- # Rule to rule index
253
- Dict [str , int ],
254
- # Label to rewards
255
- Dict [str , List [str ]],
256
- # Reward to flags
257
- Dict [str , Set [str ]],
258
- # Item name to ID
259
- Dict [str , int ],
260
- # Location name to ID
261
- Dict [str , int ],
262
- # NPCs
263
- List [str ],
264
- # Pickaxe to pick power
265
- Dict [str , int ],
266
- # Hammer to hammer power
267
- Dict [str , int ],
268
- # Mechanical bosses
269
- List [str ],
270
- # Calamity final bosses
271
- List [str ],
272
- # Progression rules
273
- Set [str ],
274
- # Armor to minion count,
275
- Dict [str , int ],
276
- # Accessory to minion count,
277
- Dict [str , int ],
278
- ]
279
- ):
225
+ def read_data () -> Tuple [
226
+ # Goal to rule index that ends that goal's range and the locations required
227
+ List [Tuple [int , Set [str ]]],
228
+ # Rules
229
+ List [
230
+ Tuple [
231
+ # Rule
232
+ str ,
233
+ # Flag to flag arg
234
+ Dict [str , Union [str , int , None ]],
235
+ # True = or, False = and, None = N/A
236
+ Union [bool , None ],
237
+ # Conditions
238
+ List [
239
+ Tuple [
240
+ # True = positive, False = negative
241
+ bool ,
242
+ # Condition type
243
+ int ,
244
+ # Condition name or list (True = or, False = and, None = N/A) (list shares type with outer)
245
+ Union [str , Tuple [Union [bool , None ], List ]],
246
+ # Condition arg
247
+ Union [str , int , None ],
248
+ ]
249
+ ],
250
+ ]
251
+ ],
252
+ # Rule to rule index
253
+ Dict [str , int ],
254
+ # Label to rewards
255
+ Dict [str , List [str ]],
256
+ # Reward to flags
257
+ Dict [str , Set [str ]],
258
+ # Item name to ID
259
+ Dict [str , int ],
260
+ # Location name to ID
261
+ Dict [str , int ],
262
+ # NPCs
263
+ List [str ],
264
+ # Pickaxe to pick power
265
+ Dict [str , int ],
266
+ # Hammer to hammer power
267
+ Dict [str , int ],
268
+ # Mechanical bosses
269
+ List [str ],
270
+ # Calamity final bosses
271
+ List [str ],
272
+ # Progression rules
273
+ Set [str ],
274
+ # Armor to minion count,
275
+ Dict [str , int ],
276
+ # Accessory to minion count,
277
+ Dict [str , int ],
278
+ ]:
280
279
next_id = 0x7E0000
281
280
item_name_to_id = {}
282
281
0 commit comments