@@ -1034,6 +1034,31 @@ def prefill_state(base_state):
1034
1034
1035
1035
1036
1036
def generate_output (self , output_directory : str ):
1037
+
1038
+ # Write entrances to spoiler log
1039
+ all_entrances = self .get_shuffled_entrances ()
1040
+ all_entrances .sort (reverse = True , key = lambda x : (x .type , x .name ))
1041
+ if not self .decouple_entrances :
1042
+ while all_entrances :
1043
+ loadzone = all_entrances .pop ()
1044
+ if loadzone .type != 'Overworld' :
1045
+ if loadzone .primary :
1046
+ entrance = loadzone
1047
+ else :
1048
+ entrance = loadzone .reverse
1049
+ if entrance .reverse is not None :
1050
+ self .multiworld .spoiler .set_entrance (entrance , entrance .replaces .reverse , 'both' , self .player )
1051
+ else :
1052
+ self .multiworld .spoiler .set_entrance (entrance , entrance .replaces , 'entrance' , self .player )
1053
+ else :
1054
+ reverse = loadzone .replaces .reverse
1055
+ if reverse in all_entrances :
1056
+ all_entrances .remove (reverse )
1057
+ self .multiworld .spoiler .set_entrance (loadzone , reverse , 'both' , self .player )
1058
+ else :
1059
+ for entrance in all_entrances :
1060
+ self .multiworld .spoiler .set_entrance (entrance , entrance .replaces , 'entrance' , self .player )
1061
+
1037
1062
if self .hints != 'none' :
1038
1063
self .hint_data_available .wait ()
1039
1064
@@ -1229,38 +1254,15 @@ def get_entrance_to_region(region):
1229
1254
1230
1255
def write_spoiler (self , spoiler_handle : typing .TextIO ) -> None :
1231
1256
required_trials_str = ", " .join (t for t in self .skipped_trials if not self .skipped_trials [t ])
1257
+ if required_trials_str == "" :
1258
+ required_trials_str = "None"
1232
1259
spoiler_handle .write (f"\n \n Trials ({ self .multiworld .get_player_name (self .player )} ): { required_trials_str } \n " )
1233
1260
1234
1261
if self .shopsanity != 'off' :
1235
1262
spoiler_handle .write (f"\n Shop Prices ({ self .multiworld .get_player_name (self .player )} ):\n " )
1236
1263
for k , v in self .shop_prices .items ():
1237
1264
spoiler_handle .write (f"{ k } : { v } Rupees\n " )
1238
1265
1239
- # Write entrances to spoiler log
1240
- all_entrances = self .get_shuffled_entrances ()
1241
- all_entrances .sort (reverse = True , key = lambda x : x .name )
1242
- all_entrances .sort (reverse = True , key = lambda x : x .type )
1243
- if not self .decouple_entrances :
1244
- while all_entrances :
1245
- loadzone = all_entrances .pop ()
1246
- if loadzone .type != 'Overworld' :
1247
- if loadzone .primary :
1248
- entrance = loadzone
1249
- else :
1250
- entrance = loadzone .reverse
1251
- if entrance .reverse is not None :
1252
- self .multiworld .spoiler .set_entrance (entrance , entrance .replaces .reverse , 'both' , self .player )
1253
- else :
1254
- self .multiworld .spoiler .set_entrance (entrance , entrance .replaces , 'entrance' , self .player )
1255
- else :
1256
- reverse = loadzone .replaces .reverse
1257
- if reverse in all_entrances :
1258
- all_entrances .remove (reverse )
1259
- self .multiworld .spoiler .set_entrance (loadzone , reverse , 'both' , self .player )
1260
- else :
1261
- for entrance in all_entrances :
1262
- self .multiworld .spoiler .set_entrance (entrance , entrance .replaces , 'entrance' , self .player )
1263
-
1264
1266
1265
1267
# Key ring handling:
1266
1268
# Key rings are multiple items glued together into one, so we need to give
0 commit comments