Skip to content

Commit 775bdbf

Browse files
espeon65536EmilyV99
authored andcommitted
OoT: Entrance Spoiler Fixes (ArchipelagoMW#2500)
1 parent aeac41b commit 775bdbf

File tree

1 file changed

+27
-25
lines changed

1 file changed

+27
-25
lines changed

worlds/oot/__init__.py

+27-25
Original file line numberDiff line numberDiff line change
@@ -1034,6 +1034,31 @@ def prefill_state(base_state):
10341034

10351035

10361036
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+
10371062
if self.hints != 'none':
10381063
self.hint_data_available.wait()
10391064

@@ -1229,38 +1254,15 @@ def get_entrance_to_region(region):
12291254

12301255
def write_spoiler(self, spoiler_handle: typing.TextIO) -> None:
12311256
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"
12321259
spoiler_handle.write(f"\n\nTrials ({self.multiworld.get_player_name(self.player)}): {required_trials_str}\n")
12331260

12341261
if self.shopsanity != 'off':
12351262
spoiler_handle.write(f"\nShop Prices ({self.multiworld.get_player_name(self.player)}):\n")
12361263
for k, v in self.shop_prices.items():
12371264
spoiler_handle.write(f"{k}: {v} Rupees\n")
12381265

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-
12641266

12651267
# Key ring handling:
12661268
# Key rings are multiple items glued together into one, so we need to give

0 commit comments

Comments
 (0)