From 796171ab4dc882ff640a374d6d44d358bcc5c92c Mon Sep 17 00:00:00 2001 From: codemann8 Date: Tue, 9 Nov 2021 18:46:06 -0600 Subject: [PATCH] Fixed issue with Whirlpool Shuffle with Grouped OW Crossed --- OverworldShuffle.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/OverworldShuffle.py b/OverworldShuffle.py index a422b45a..0f3b2a5e 100644 --- a/OverworldShuffle.py +++ b/OverworldShuffle.py @@ -197,28 +197,31 @@ def link_overworld(world, player): connect_simple(world, to_whirlpool, from_region, player) else: whirlpool_candidates = [[],[]] + world.owwhirlpools[player] = [None] * 8 for (from_owid, from_whirlpool, from_region), (to_owid, to_whirlpool, to_region) in default_whirlpool_connections: if world.owCrossed[player] == 'polar' and world.owMixed[player] and from_owid == 0x55: # connect the 2 DW whirlpools in Polar Mixed connect_simple(world, from_whirlpool, to_region, player) connect_simple(world, to_whirlpool, from_region, player) + world.owwhirlpools[player][7] = from_owid + world.owwhirlpools[player][6] = to_owid + world.spoiler.set_overworld(from_whirlpool, to_whirlpool, 'both', player) else: - if (world.owCrossed[player] == 'none' and (world.get_region(from_region, player).type == RegionType.LightWorld)) \ - or world.owCrossed[player] not in ['none', 'grouped'] \ + if ((world.owCrossed[player] == 'none' or (world.owCrossed[player] == 'polar' and not world.owMixed[player])) and (world.get_region(from_region, player).type == RegionType.LightWorld)) \ + or world.owCrossed[player] not in ['none', 'polar', 'grouped'] \ or (world.owCrossed[player] == 'grouped' and ((from_owid < 0x40) == (from_owid not in ow_crossed_tiles[0]))): whirlpool_candidates[0].append(tuple((from_owid, from_whirlpool, from_region))) else: whirlpool_candidates[1].append(tuple((from_owid, from_whirlpool, from_region))) - if (world.owCrossed[player] == 'none' and (world.get_region(to_region, player).type == RegionType.LightWorld)) \ - or world.owCrossed[player] not in ['none', 'grouped'] \ + if ((world.owCrossed[player] == 'none' or (world.owCrossed[player] == 'polar' and not world.owMixed[player])) and (world.get_region(to_region, player).type == RegionType.LightWorld)) \ + or world.owCrossed[player] not in ['none', 'polar', 'grouped'] \ or (world.owCrossed[player] == 'grouped' and ((to_owid < 0x40) == (to_owid not in ow_crossed_tiles[0]))): whirlpool_candidates[0].append(tuple((to_owid, to_whirlpool, to_region))) else: whirlpool_candidates[1].append(tuple((to_owid, to_whirlpool, to_region))) # shuffle happens here - world.owwhirlpools[player] = [None] * 8 whirlpool_map = [ 0x35, 0x0f, 0x15, 0x33, 0x12, 0x3f, 0x55, 0x7f ] for whirlpools in whirlpool_candidates: random.shuffle(whirlpools)