From 2f61dceb0e6af90ba7aec2bd70400a5a9c43164d Mon Sep 17 00:00:00 2001 From: codemann8 Date: Fri, 3 Mar 2023 20:29:19 -0600 Subject: [PATCH] Placing Sanc Drop in DW if HC in DW and non-crossworld --- source/overworld/EntranceShuffle2.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/source/overworld/EntranceShuffle2.py b/source/overworld/EntranceShuffle2.py index fe3a2f89..349af41c 100644 --- a/source/overworld/EntranceShuffle2.py +++ b/source/overworld/EntranceShuffle2.py @@ -442,14 +442,18 @@ def do_holes_and_linked_drops(entrances, exits, avail, cross_world, keep_togethe hole_targets.append((target_exit, target_drop)) random.shuffle(hole_entrances) - if not cross_world and avail.is_sanc_forced_in_hc() and 'Sanctuary Grave' in holes_to_shuffle: - lw_entrance = next(entrance for entrance in hole_entrances if entrance[0] in LW_Entrances) - hole_entrances.remove(lw_entrance) + if not cross_world and 'Sanctuary Grave' in holes_to_shuffle: + hc = avail.world.get_entrance('Hyrule Castle Exit (South)', avail.player) + if hc.connected_region and hc.connected_region.type == RegionType.DarkWorld: + chosen_entrance = next(entrance for entrance in hole_entrances if entrance[0] in DW_Entrances) + if not chosen_entrance: + chosen_entrance = next(entrance for entrance in hole_entrances if entrance[0] in LW_Entrances) + hole_entrances.remove(chosen_entrance) sanc_interior = next(target for target in hole_targets if target[0] == 'Sanctuary Exit') hole_targets.remove(sanc_interior) - connect_two_way(lw_entrance[0], sanc_interior[0], avail) # two-way exit - connect_entrance(lw_entrance[1], sanc_interior[1], avail) # hole - remove_from_list(entrances, [lw_entrance[0], lw_entrance[1]]) + connect_two_way(chosen_entrance[0], sanc_interior[0], avail) # two-way exit + connect_entrance(chosen_entrance[1], sanc_interior[1], avail) # hole + remove_from_list(entrances, [chosen_entrance[0], chosen_entrance[1]]) remove_from_list(exits, [sanc_interior[0], sanc_interior[1]]) random.shuffle(hole_targets)