diff --git a/OverworldShuffle.py b/OverworldShuffle.py index c9cc6c24..bf3217e2 100644 --- a/OverworldShuffle.py +++ b/OverworldShuffle.py @@ -590,234 +590,152 @@ def reorganize_groups(world, groups, player): new_grouping[(region, axis, terrain)] = (exist_forward_edges, exist_back_edges) return list(new_grouping.values()) - elif world.owShuffle[player] == 'parallel': - if world.owCrossed[player]: - if world.owKeepSimilar[player]: - if world.mode[player] == 'standard': - # tuple goes to (A,_,C,D,E,F) - for grouping in (groups,): - new_grouping = {} - - for group in grouping.keys(): - (std, _, axis, terrain, parallel, count) = group - new_grouping[(std, axis, terrain, parallel, count)] = ([], []) - - for group in grouping.keys(): - (std, _, axis, terrain, parallel, count) = group - (forward_edges, back_edges) = grouping[group] - (exist_forward_edges, exist_back_edges) = new_grouping[(std, axis, terrain, parallel, count)] - exist_forward_edges.extend(forward_edges) - exist_back_edges.extend(back_edges) - new_grouping[(std, axis, terrain, parallel, count)] = (exist_forward_edges, exist_back_edges) - - return list(new_grouping.values()) - else: - # tuple goes to (_,_,C,D,E,F) - for grouping in (groups,): - new_grouping = {} - - for group in grouping.keys(): - (_, _, axis, terrain, parallel, count) = group - new_grouping[(axis, terrain, parallel, count)] = ([], []) - - for group in grouping.keys(): - (_, _, axis, terrain, parallel, count) = group - (forward_edges, back_edges) = grouping[group] - (exist_forward_edges, exist_back_edges) = new_grouping[(axis, terrain, parallel, count)] - exist_forward_edges.extend(forward_edges) - exist_back_edges.extend(back_edges) - new_grouping[(axis, terrain, parallel, count)] = (exist_forward_edges, exist_back_edges) - - return list(new_grouping.values()) - else: - if world.mode[player] == 'standard': - # tuple goes to (A,_,C,D,E,_) - for grouping in (groups,): - new_grouping = {} - - for group in grouping.keys(): - (std, _, axis, terrain, parallel, _) = group - new_grouping[(std, axis, terrain, parallel)] = ([], []) - - for group in grouping.keys(): - (std, _, axis, terrain, parallel, _) = group - (forward_edges, back_edges) = grouping[group] - forward_edges = [[i] for l in forward_edges for i in l] - back_edges = [[i] for l in back_edges for i in l] - - (exist_forward_edges, exist_back_edges) = new_grouping[(std, axis, terrain, parallel)] - exist_forward_edges.extend(forward_edges) - exist_back_edges.extend(back_edges) - new_grouping[(std, axis, terrain, parallel)] = (exist_forward_edges, exist_back_edges) - - return list(new_grouping.values()) - else: - # tuple goes to (_,_,C,D,E,_) - for grouping in (groups,): - new_grouping = {} - - for group in grouping.keys(): - (_, _, axis, terrain, parallel, _) = group - new_grouping[(axis, terrain, parallel)] = ([], []) - - for group in grouping.keys(): - (_, _, axis, terrain, parallel, _) = group - (forward_edges, back_edges) = grouping[group] - forward_edges = [[i] for l in forward_edges for i in l] - back_edges = [[i] for l in back_edges for i in l] - - (exist_forward_edges, exist_back_edges) = new_grouping[(axis, terrain, parallel)] - exist_forward_edges.extend(forward_edges) - exist_back_edges.extend(back_edges) - new_grouping[(axis, terrain, parallel)] = (exist_forward_edges, exist_back_edges) - - return list(new_grouping.values()) - else: - if world.owKeepSimilar[player]: - if world.mode[player] == 'standard': - # tuple stays (A,B,C,D,E,F) - for grouping in (groups,): - return list(grouping.values()) - else: - # tuple goes to (_,B,C,D,E,F) - for grouping in (groups,): - new_grouping = {} - - for group in grouping.keys(): - (_, region, axis, terrain, parallel, count) = group - new_grouping[(region, axis, terrain, parallel, count)] = ([], []) - - for group in grouping.keys(): - (_, region, axis, terrain, parallel, count) = group - (forward_edges, back_edges) = grouping[group] - (exist_forward_edges, exist_back_edges) = new_grouping[(region, axis, terrain, parallel, count)] - exist_forward_edges.extend(forward_edges) - exist_back_edges.extend(back_edges) - new_grouping[(region, axis, terrain, parallel, count)] = (exist_forward_edges, exist_back_edges) - - return list(new_grouping.values()) - else: - if world.mode[player] == 'standard': - # tuple goes to (A,B,C,D,E,_) - for grouping in (groups,): - new_grouping = {} - - for group in grouping.keys(): - (std, region, axis, terrain, parallel, _) = group - new_grouping[(std, region, axis, terrain, parallel)] = ([], []) - - for group in grouping.keys(): - (std, region, axis, terrain, parallel, _) = group - (forward_edges, back_edges) = grouping[group] - forward_edges = [[i] for l in forward_edges for i in l] - back_edges = [[i] for l in back_edges for i in l] - - (exist_forward_edges, exist_back_edges) = new_grouping[(std, region, axis, terrain, parallel)] - exist_forward_edges.extend(forward_edges) - exist_back_edges.extend(back_edges) - new_grouping[(std, region, axis, terrain, parallel)] = (exist_forward_edges, exist_back_edges) - - return list(new_grouping.values()) - else: - # tuple goes to (_,B,C,D,E,_) - for grouping in (groups,): - new_grouping = {} - - for group in grouping.keys(): - (_, region, axis, terrain, parallel, _) = group - new_grouping[(region, axis, terrain, parallel)] = ([], []) - - for group in grouping.keys(): - (_, region, axis, terrain, parallel, _) = group - (forward_edges, back_edges) = grouping[group] - forward_edges = [[i] for l in forward_edges for i in l] - back_edges = [[i] for l in back_edges for i in l] - - (exist_forward_edges, exist_back_edges) = new_grouping[(region, axis, terrain, parallel)] - exist_forward_edges.extend(forward_edges) - exist_back_edges.extend(back_edges) - new_grouping[(region, axis, terrain, parallel)] = (exist_forward_edges, exist_back_edges) - - return list(new_grouping.values()) - elif world.owShuffle[player] == 'vanilla' and world.owCrossed[player]: + elif world.owShuffle[player] == 'parallel' and world.owCrossed[player]: if world.owKeepSimilar[player]: if world.mode[player] == 'standard': - # tuple goes to (A,B,C,D,_,F) + # tuple goes to (A,_,C,D,E,F) for grouping in (groups,): new_grouping = {} for group in grouping.keys(): - (std, region, axis, terrain, _, count) = group - new_grouping[(std, region, axis, terrain, count)] = ([], []) + (std, _, axis, terrain, parallel, count) = group + new_grouping[(std, axis, terrain, parallel, count)] = ([], []) for group in grouping.keys(): - (std, region, axis, terrain, _, count) = group + (std, _, axis, terrain, parallel, count) = group (forward_edges, back_edges) = grouping[group] - (exist_forward_edges, exist_back_edges) = new_grouping[(std, region, axis, terrain, count)] + (exist_forward_edges, exist_back_edges) = new_grouping[(std, axis, terrain, parallel, count)] exist_forward_edges.extend(forward_edges) exist_back_edges.extend(back_edges) - new_grouping[(std, region, axis, terrain, count)] = (exist_forward_edges, exist_back_edges) + new_grouping[(std, axis, terrain, parallel, count)] = (exist_forward_edges, exist_back_edges) return list(new_grouping.values()) else: - # tuple goes to (_,B,C,D,_,F) + # tuple goes to (_,_,C,D,E,F) for grouping in (groups,): new_grouping = {} for group in grouping.keys(): - (_, region, axis, terrain, _, count) = group - new_grouping[(region, axis, terrain, count)] = ([], []) + (_, _, axis, terrain, parallel, count) = group + new_grouping[(axis, terrain, parallel, count)] = ([], []) for group in grouping.keys(): - (_, region, axis, terrain, _, count) = group + (_, _, axis, terrain, parallel, count) = group (forward_edges, back_edges) = grouping[group] - (exist_forward_edges, exist_back_edges) = new_grouping[(region, axis, terrain, count)] + (exist_forward_edges, exist_back_edges) = new_grouping[(axis, terrain, parallel, count)] exist_forward_edges.extend(forward_edges) exist_back_edges.extend(back_edges) - new_grouping[(region, axis, terrain, count)] = (exist_forward_edges, exist_back_edges) + new_grouping[(axis, terrain, parallel, count)] = (exist_forward_edges, exist_back_edges) return list(new_grouping.values()) else: if world.mode[player] == 'standard': - # tuple goes to (A,B,C,D,_,_) + # tuple goes to (A,_,C,D,E,_) for grouping in (groups,): new_grouping = {} for group in grouping.keys(): - (std, region, axis, terrain, _, _) = group - new_grouping[(std, region, axis, terrain)] = ([], []) + (std, _, axis, terrain, parallel, _) = group + new_grouping[(std, axis, terrain, parallel)] = ([], []) for group in grouping.keys(): - (std, region, axis, terrain, _, _) = group + (std, _, axis, terrain, parallel, _) = group (forward_edges, back_edges) = grouping[group] forward_edges = [[i] for l in forward_edges for i in l] back_edges = [[i] for l in back_edges for i in l] - (exist_forward_edges, exist_back_edges) = new_grouping[(std, region, axis, terrain)] + (exist_forward_edges, exist_back_edges) = new_grouping[(std, axis, terrain, parallel)] exist_forward_edges.extend(forward_edges) exist_back_edges.extend(back_edges) - new_grouping[(std, region, axis, terrain)] = (exist_forward_edges, exist_back_edges) + new_grouping[(std, axis, terrain, parallel)] = (exist_forward_edges, exist_back_edges) return list(new_grouping.values()) else: - # tuple goes to (_,B,C,D,_,_) + # tuple goes to (_,_,C,D,E,_) for grouping in (groups,): new_grouping = {} for group in grouping.keys(): - (_, region, axis, terrain, _, _) = group - new_grouping[(region, axis, terrain)] = ([], []) + (_, _, axis, terrain, parallel, _) = group + new_grouping[(axis, terrain, parallel)] = ([], []) for group in grouping.keys(): - (_, region, axis, terrain, _, _) = group + (_, _, axis, terrain, parallel, _) = group (forward_edges, back_edges) = grouping[group] forward_edges = [[i] for l in forward_edges for i in l] back_edges = [[i] for l in back_edges for i in l] - (exist_forward_edges, exist_back_edges) = new_grouping[(region, axis, terrain)] + (exist_forward_edges, exist_back_edges) = new_grouping[(axis, terrain, parallel)] exist_forward_edges.extend(forward_edges) exist_back_edges.extend(back_edges) - new_grouping[(region, axis, terrain)] = (exist_forward_edges, exist_back_edges) + new_grouping[(axis, terrain, parallel)] = (exist_forward_edges, exist_back_edges) + + return list(new_grouping.values()) + elif world.owShuffle[player] == 'parallel' or (world.owShuffle[player] == 'vanilla' and world.owCrossed[player]): + if world.owKeepSimilar[player]: + if world.mode[player] == 'standard': + # tuple stays (A,B,C,D,E,F) + for grouping in (groups,): + return list(grouping.values()) + else: + # tuple goes to (_,B,C,D,E,F) + for grouping in (groups,): + new_grouping = {} + + for group in grouping.keys(): + (_, region, axis, terrain, parallel, count) = group + new_grouping[(region, axis, terrain, parallel, count)] = ([], []) + + for group in grouping.keys(): + (_, region, axis, terrain, parallel, count) = group + (forward_edges, back_edges) = grouping[group] + (exist_forward_edges, exist_back_edges) = new_grouping[(region, axis, terrain, parallel, count)] + exist_forward_edges.extend(forward_edges) + exist_back_edges.extend(back_edges) + new_grouping[(region, axis, terrain, parallel, count)] = (exist_forward_edges, exist_back_edges) + + return list(new_grouping.values()) + else: + if world.mode[player] == 'standard': + # tuple goes to (A,B,C,D,E,_) + for grouping in (groups,): + new_grouping = {} + + for group in grouping.keys(): + (std, region, axis, terrain, parallel, _) = group + new_grouping[(std, region, axis, terrain, parallel)] = ([], []) + + for group in grouping.keys(): + (std, region, axis, terrain, parallel, _) = group + (forward_edges, back_edges) = grouping[group] + forward_edges = [[i] for l in forward_edges for i in l] + back_edges = [[i] for l in back_edges for i in l] + + (exist_forward_edges, exist_back_edges) = new_grouping[(std, region, axis, terrain, parallel)] + exist_forward_edges.extend(forward_edges) + exist_back_edges.extend(back_edges) + new_grouping[(std, region, axis, terrain, parallel)] = (exist_forward_edges, exist_back_edges) + + return list(new_grouping.values()) + else: + # tuple goes to (_,B,C,D,E,_) + for grouping in (groups,): + new_grouping = {} + + for group in grouping.keys(): + (_, region, axis, terrain, parallel, _) = group + new_grouping[(region, axis, terrain, parallel)] = ([], []) + + for group in grouping.keys(): + (_, region, axis, terrain, parallel, _) = group + (forward_edges, back_edges) = grouping[group] + forward_edges = [[i] for l in forward_edges for i in l] + back_edges = [[i] for l in back_edges for i in l] + + (exist_forward_edges, exist_back_edges) = new_grouping[(region, axis, terrain, parallel)] + exist_forward_edges.extend(forward_edges) + exist_back_edges.extend(back_edges) + new_grouping[(region, axis, terrain, parallel)] = (exist_forward_edges, exist_back_edges) return list(new_grouping.values()) else: