Fixed issue with Whirlpool Shuffle with Grouped OW Crossed
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user