From 08fdd14fa29648645ea4f726d090997b3200cf1f Mon Sep 17 00:00:00 2001 From: codemann8 Date: Sun, 17 Apr 2022 10:20:24 -0500 Subject: [PATCH] Simplified rules on when Sanc/Castle/Links can swap in Mixed OW --- OverworldShuffle.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/OverworldShuffle.py b/OverworldShuffle.py index f9ea6b9d..b2b39421 100644 --- a/OverworldShuffle.py +++ b/OverworldShuffle.py @@ -557,12 +557,15 @@ def shuffle_tiles(world, groups, result_list, player): return swapped_edges def reorganize_tile_groups(world, player): + def can_shuffle_group(name, group): + return name not in ['Castle', 'Links', 'Central Bonk Rocks'] \ + or world.mode[player] == 'inverted' \ + or (world.mode[player] == 'open' and (name in ['Links House', 'Central Bonk Rocks'] or world.doorShuffle[player] == 'crossed' or world.shuffle[player] not in ['vanilla', 'dungeonssimple', 'dungeonsfull'])) \ + or (world.shuffle[player] in ['lean', 'crossed', 'insanity'] and name == 'Castle' and groupType == 'Entrance') + groups = {} for (name, groupType, whirlpoolGroup) in OWTileGroups.keys(): - if world.mode[player] == 'inverted' \ - or (world.mode[player] == 'open' and (world.doorShuffle[player] == 'crossed' or world.shuffle[player] not in ['vanilla', 'dungeonssimple', 'dungeonsfull'] or not (name == 'Castle' and groupType == 'Entrance'))) \ - or name not in ['Castle', 'Links', 'Central Bonk Rocks'] \ - or (world.mode[player] == 'standard' and world.shuffle[player] in ['lean', 'crossed', 'insanity'] and name == 'Castle' and groupType == 'Entrance'): + if can_shuffle_group(name, groupType): if world.shuffle[player] in ['vanilla', 'dungeonssimple', 'dungeonsfull', 'simple', 'restricted']: if world.owWhirlpoolShuffle[player] or world.owCrossed[player] != 'none': groups[(name, whirlpoolGroup)] = ([], [], []) @@ -575,10 +578,7 @@ def reorganize_tile_groups(world, player): groups[(name, groupType)] = ([], [], []) for (name, groupType, whirlpoolGroup) in OWTileGroups.keys(): - if world.mode[player] == 'inverted' \ - or (world.mode[player] == 'open' and (world.doorShuffle[player] == 'crossed' or world.shuffle[player] not in ['vanilla', 'dungeonssimple', 'dungeonsfull'] or not (name == 'Castle' and groupType == 'Entrance'))) \ - or name not in ['Castle', 'Links', 'Central Bonk Rocks'] \ - or (world.mode[player] == 'standard' and world.shuffle[player] in ['lean', 'crossed', 'insanity'] and name == 'Castle' and groupType == 'Entrance'): + if can_shuffle_group(name, groupType): (lw_owids, dw_owids) = OWTileGroups[(name, groupType, whirlpoolGroup)] if world.shuffle[player] in ['vanilla', 'dungeonssimple', 'dungeonsfull', 'simple', 'restricted']: if world.owWhirlpoolShuffle[player] or world.owCrossed[player] != 'none':