Restructuring parallel_links in OWR
This commit is contained in:
@@ -14,17 +14,19 @@ version_branch = '-u'
|
|||||||
|
|
||||||
__version__ = '%s%s' % (version_number, version_branch)
|
__version__ = '%s%s' % (version_number, version_branch)
|
||||||
|
|
||||||
|
parallel_links_new = None # needs to be globally available, reset every new generation/player
|
||||||
|
|
||||||
def link_overworld(world, player):
|
def link_overworld(world, player):
|
||||||
|
global parallel_links_new
|
||||||
|
|
||||||
# setup mandatory connections
|
# setup mandatory connections
|
||||||
for exitname, regionname in mandatory_connections:
|
for exitname, regionname in mandatory_connections:
|
||||||
connect_simple(world, exitname, regionname, player)
|
connect_simple(world, exitname, regionname, player)
|
||||||
|
|
||||||
def performSwap(groups, swaps):
|
def performSwap(groups, swaps):
|
||||||
def getParallel(edgename):
|
def getParallel(edgename):
|
||||||
if edgename in parallel_links:
|
if edgename in parallel_links_new:
|
||||||
return parallel_links[edgename]
|
return parallel_links_new[edgename]
|
||||||
elif edgename in parallel_links.inverse:
|
|
||||||
return parallel_links.inverse[edgename][0]
|
|
||||||
else:
|
else:
|
||||||
raise Exception('No parallel edge found for edge %s', edgename)
|
raise Exception('No parallel edge found for edge %s', edgename)
|
||||||
|
|
||||||
@@ -112,16 +114,19 @@ def link_overworld(world, player):
|
|||||||
swapped_edges = list()
|
swapped_edges = list()
|
||||||
|
|
||||||
# restructure Maze Race/Suburb/Frog/Dig Game manually due to NP/P relationship
|
# restructure Maze Race/Suburb/Frog/Dig Game manually due to NP/P relationship
|
||||||
|
parallel_links_new = bidict(parallel_links) # shallow copy is enough (deep copy is broken)
|
||||||
if world.owKeepSimilar[player]:
|
if world.owKeepSimilar[player]:
|
||||||
|
del parallel_links_new['Maze Race ES']
|
||||||
|
del parallel_links_new['Kakariko Suburb WS']
|
||||||
for group in trimmed_groups.keys():
|
for group in trimmed_groups.keys():
|
||||||
(std, region, axis, terrain, parallel, _) = group
|
(std, region, axis, terrain, parallel, _) = group
|
||||||
if parallel == IsParallel.Yes:
|
if parallel == IsParallel.Yes:
|
||||||
(forward_edges, back_edges) = trimmed_groups[group]
|
(forward_edges, back_edges) = trimmed_groups[group]
|
||||||
if ['Maze Race ES'] in forward_edges:
|
if ['Maze Race ES'] in forward_edges:
|
||||||
forward_edges = list(filter((['Maze Race ES']).__ne__, forward_edges))
|
forward_edges.remove(['Maze Race ES'])
|
||||||
trimmed_groups[(std, region, axis, terrain, IsParallel.No, 1)][0].append(['Maze Race ES'])
|
trimmed_groups[(std, region, axis, terrain, IsParallel.No, 1)][0].append(['Maze Race ES'])
|
||||||
if ['Kakariko Suburb WS'] in back_edges:
|
if ['Kakariko Suburb WS'] in back_edges:
|
||||||
back_edges = list(filter((['Kakariko Suburb WS']).__ne__, back_edges))
|
back_edges.remove(['Kakariko Suburb WS'])
|
||||||
trimmed_groups[(std, region, axis, terrain, IsParallel.No, 1)][1].append(['Kakariko Suburb WS'])
|
trimmed_groups[(std, region, axis, terrain, IsParallel.No, 1)][1].append(['Kakariko Suburb WS'])
|
||||||
trimmed_groups[group] = (forward_edges, back_edges)
|
trimmed_groups[group] = (forward_edges, back_edges)
|
||||||
else:
|
else:
|
||||||
@@ -129,14 +134,15 @@ def link_overworld(world, player):
|
|||||||
(std, region, axis, terrain, _, _) = group
|
(std, region, axis, terrain, _, _) = group
|
||||||
(forward_edges, back_edges) = trimmed_groups[group]
|
(forward_edges, back_edges) = trimmed_groups[group]
|
||||||
if ['Dig Game EC', 'Dig Game ES'] in forward_edges:
|
if ['Dig Game EC', 'Dig Game ES'] in forward_edges:
|
||||||
forward_edges = list(filter((['Dig Game EC', 'Dig Game ES']).__ne__, forward_edges))
|
forward_edges.remove(['Dig Game EC', 'Dig Game ES'])
|
||||||
trimmed_groups[(std, region, axis, terrain, IsParallel.Yes, 1)][0].append(['Dig Game ES'])
|
trimmed_groups[(std, region, axis, terrain, IsParallel.Yes, 1)][0].append(['Dig Game ES'])
|
||||||
trimmed_groups[(std, region, axis, terrain, IsParallel.No, 1)][0].append(['Dig Game EC'])
|
trimmed_groups[(std, region, axis, terrain, IsParallel.No, 1)][0].append(['Dig Game EC'])
|
||||||
if ['Frog WC', 'Frog WS'] in back_edges:
|
if ['Frog WC', 'Frog WS'] in back_edges:
|
||||||
back_edges = list(filter((['Frog WC', 'Frog WS']).__ne__, back_edges))
|
back_edges.remove(['Frog WC', 'Frog WS'])
|
||||||
trimmed_groups[(std, region, axis, terrain, IsParallel.Yes, 1)][1].append(['Frog WS'])
|
trimmed_groups[(std, region, axis, terrain, IsParallel.Yes, 1)][1].append(['Frog WS'])
|
||||||
trimmed_groups[(std, region, axis, terrain, IsParallel.No, 1)][1].append(['Frog WC'])
|
trimmed_groups[(std, region, axis, terrain, IsParallel.No, 1)][1].append(['Frog WC'])
|
||||||
trimmed_groups[group] = (forward_edges, back_edges)
|
trimmed_groups[group] = (forward_edges, back_edges)
|
||||||
|
parallel_links_new = {**dict(parallel_links_new), **dict({e:p[0] for e, p in parallel_links_new.inverse.items()})}
|
||||||
|
|
||||||
connected_edges = []
|
connected_edges = []
|
||||||
if world.owShuffle[player] != 'vanilla':
|
if world.owShuffle[player] != 'vanilla':
|
||||||
@@ -201,19 +207,13 @@ def link_overworld(world, player):
|
|||||||
logging.getLogger('').debug('Crossing overworld edges')
|
logging.getLogger('').debug('Crossing overworld edges')
|
||||||
crossed_edges = list()
|
crossed_edges = list()
|
||||||
|
|
||||||
# more Maze Race/Suburb/Frog/Dig Game fixes
|
|
||||||
parallel_links_new = bidict(parallel_links) # shallow copy is enough (deep copy is broken)
|
|
||||||
if world.owKeepSimilar[player]:
|
|
||||||
del parallel_links_new['Maze Race ES']
|
|
||||||
del parallel_links_new['Kakariko Suburb WS']
|
|
||||||
|
|
||||||
#TODO: Revisit with changes to Limited/Allowed
|
#TODO: Revisit with changes to Limited/Allowed
|
||||||
if world.owCrossed[player] not in ['none', 'grouped', 'polar', 'chaos']:
|
if world.owCrossed[player] not in ['none', 'grouped', 'polar', 'chaos']:
|
||||||
for edge in swapped_edges:
|
for edge in swapped_edges:
|
||||||
if edge not in parallel_links_new and edge not in parallel_links_new.inverse:
|
|
||||||
crossed_edges.append(edge)
|
crossed_edges.append(edge)
|
||||||
|
|
||||||
if world.owCrossed[player] in ['grouped', 'limited'] or (world.owShuffle[player] == 'vanilla' and world.owCrossed[player] == 'chaos'):
|
if world.owCrossed[player] in ['grouped', 'limited'] or (world.owShuffle[player] == 'vanilla' and world.owCrossed[player] == 'chaos'):
|
||||||
|
if edge not in parallel_links_new:
|
||||||
if world.owCrossed[player] == 'grouped':
|
if world.owCrossed[player] == 'grouped':
|
||||||
# the idea is to XOR the new flips with the ones from Mixed so that non-parallel edges still work
|
# the idea is to XOR the new flips with the ones from Mixed so that non-parallel edges still work
|
||||||
# Polar corresponds to Grouped with no flips in ow_crossed_tiles_mask
|
# Polar corresponds to Grouped with no flips in ow_crossed_tiles_mask
|
||||||
@@ -244,13 +244,13 @@ def link_overworld(world, player):
|
|||||||
(mode, wrld, dir, terrain, parallel, count) = group
|
(mode, wrld, dir, terrain, parallel, count) = group
|
||||||
if wrld == WorldType.Light and mode != OpenStd.Standard:
|
if wrld == WorldType.Light and mode != OpenStd.Standard:
|
||||||
for (forward_set, back_set) in zip(trimmed_groups[group][0], trimmed_groups[group][1]):
|
for (forward_set, back_set) in zip(trimmed_groups[group][0], trimmed_groups[group][1]):
|
||||||
if forward_set[0] in parallel_links_new or forward_set[0] in parallel_links_new.inverse:
|
|
||||||
if world.owKeepSimilar[player]:
|
if world.owKeepSimilar[player]:
|
||||||
if world.owCrossed[player] == 'chaos' and random.randint(0, 1):
|
if world.owCrossed[player] == 'chaos' and random.randint(0, 1):
|
||||||
for edge in forward_set:
|
for edge in forward_set:
|
||||||
crossed_edges.append(edge)
|
crossed_edges.append(edge)
|
||||||
elif world.owCrossed[player] == 'limited':
|
elif world.owCrossed[player] == 'limited':
|
||||||
crossed_candidates.append(forward_set)
|
crossed_candidates.append(forward_set)
|
||||||
|
if forward_set[0] in parallel_links_new:
|
||||||
else:
|
else:
|
||||||
for edge in forward_set:
|
for edge in forward_set:
|
||||||
if world.owCrossed[player] == 'chaos' and random.randint(0, 1):
|
if world.owCrossed[player] == 'chaos' and random.randint(0, 1):
|
||||||
@@ -667,12 +667,11 @@ def connect_custom(world, connected_edges, groups, player):
|
|||||||
remove_pair_from_pool(edgename1, edgename2)
|
remove_pair_from_pool(edgename1, edgename2)
|
||||||
connect_two_way(world, edgename1, edgename2, player, connected_edges)
|
connect_two_way(world, edgename1, edgename2, player, connected_edges)
|
||||||
# resolve parallel
|
# resolve parallel
|
||||||
if (world.owShuffle[player] == 'parallel' and
|
|
||||||
(edgename1 in parallel_links.keys() or edgename1 in parallel_links.inverse.keys())):
|
|
||||||
parallel_forward_edge = parallel_links[edgename1] if edgename1 in parallel_links.keys() else parallel_links.inverse[edgename1][0]
|
|
||||||
parallel_back_edge = parallel_links[edgename2] if edgename2 in parallel_links.keys() else parallel_links.inverse[edgename2][0]
|
|
||||||
remove_pair_from_pool(parallel_forward_edge, parallel_back_edge)
|
remove_pair_from_pool(parallel_forward_edge, parallel_back_edge)
|
||||||
elif not edge1.dest or not edge2.dest or edge1.dest.name != edgename2 or edge2.dest.name != edgename1:
|
elif not edge1.dest or not edge2.dest or edge1.dest.name != edgename2 or edge2.dest.name != edgename1:
|
||||||
|
if world.owShuffle[player] == 'parallel' and edge1.name in parallel_links_new:
|
||||||
|
parallel_forward_edge = parallel_links_new[edge1.name]
|
||||||
|
parallel_back_edge = parallel_links_new[edge2.name]
|
||||||
raise GenerationException('OW Edge already connected: \'%s\' <-> \'%s\'', edgename1, edgename2)
|
raise GenerationException('OW Edge already connected: \'%s\' <-> \'%s\'', edgename1, edgename2)
|
||||||
# connect leftover similars
|
# connect leftover similars
|
||||||
for forward_pool, back_pool in unresolved_similars:
|
for forward_pool, back_pool in unresolved_similars:
|
||||||
@@ -716,10 +715,10 @@ def connect_two_way(world, edgename1, edgename2, player, connected_edges=None):
|
|||||||
|
|
||||||
# connecting parallel connections
|
# connecting parallel connections
|
||||||
if world.owShuffle[player] in ['vanilla', 'parallel']:
|
if world.owShuffle[player] in ['vanilla', 'parallel']:
|
||||||
if (edgename1 in parallel_links.keys() or edgename1 in parallel_links.inverse.keys()):
|
if edgename1 in parallel_links_new:
|
||||||
try:
|
try:
|
||||||
parallel_forward_edge = parallel_links[edgename1] if edgename1 in parallel_links.keys() else parallel_links.inverse[edgename1][0]
|
parallel_forward_edge = parallel_links_new[edgename1]
|
||||||
parallel_back_edge = parallel_links[edgename2] if edgename2 in parallel_links.keys() else parallel_links.inverse[edgename2][0]
|
parallel_back_edge = parallel_links_new[edgename2]
|
||||||
if not (parallel_forward_edge in connected_edges) and not (parallel_back_edge in connected_edges):
|
if not (parallel_forward_edge in connected_edges) and not (parallel_back_edge in connected_edges):
|
||||||
connect_two_way(world, parallel_forward_edge, parallel_back_edge, player, connected_edges)
|
connect_two_way(world, parallel_forward_edge, parallel_back_edge, player, connected_edges)
|
||||||
except KeyError:
|
except KeyError:
|
||||||
@@ -2075,7 +2074,8 @@ mirror_connections = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
parallelsimilar_connections = [('Maze Race ES', 'Kakariko Suburb WS'),
|
parallelsimilar_connections = [('Maze Race ES', 'Kakariko Suburb WS'),
|
||||||
('Dig Game EC', 'Frog WC')
|
('Dig Game EC', 'Frog WC'),
|
||||||
|
('Dig Game ES', 'Frog WS')
|
||||||
]
|
]
|
||||||
|
|
||||||
# non shuffled overworld
|
# non shuffled overworld
|
||||||
|
|||||||
72
docs/ideas/shufflehorizontal.yaml
Normal file
72
docs/ideas/shufflehorizontal.yaml
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
settings:
|
||||||
|
1:
|
||||||
|
ow_mixed: false
|
||||||
|
ow-edges:
|
||||||
|
1:
|
||||||
|
two-way:
|
||||||
|
Lost Woods NW: Master Sword Meadow SC
|
||||||
|
Lost Woods SW: Lost Woods Pass NW
|
||||||
|
Lost Woods SC: Lost Woods Pass NE
|
||||||
|
Lost Woods SE: Kakariko Fortune NE
|
||||||
|
Skull Woods SW: Skull Woods Pass NW
|
||||||
|
Skull Woods SC: Skull Woods Pass NE
|
||||||
|
Skull Woods SE: Dark Fortune NE
|
||||||
|
Lumberjack SW: Mountain Pass NW
|
||||||
|
Dark Lumberjack SW: Bumper Cave NW
|
||||||
|
Mountain Pass SE: Kakariko Pond NE
|
||||||
|
Bumper Cave SE: Outcast Pond NE
|
||||||
|
Zora Waterfall NE: Zoras Domain SW
|
||||||
|
Zora Waterfall SE: Zora Approach NE
|
||||||
|
Catfish SE: Catfish Approach NE
|
||||||
|
Lost Woods Pass SW: Kakariko NW
|
||||||
|
Lost Woods Pass SE: Kakariko NC
|
||||||
|
Skull Woods Pass SW: Village of Outcasts NW
|
||||||
|
Skull Woods Pass SE: Village of Outcasts NC
|
||||||
|
Kakariko Fortune SC: Kakariko NE
|
||||||
|
Dark Fortune SC: Village of Outcasts NE
|
||||||
|
Kakariko Pond SW: Forgotten Forest NW
|
||||||
|
Kakariko Pond SE: Forgotten Forest NE
|
||||||
|
Outcast Pond SW: Shield Shop NW
|
||||||
|
Outcast Pond SE: Shield Shop NE
|
||||||
|
River Bend SW: Wooden Bridge NW
|
||||||
|
River Bend SC: Wooden Bridge NC
|
||||||
|
River Bend SE: Wooden Bridge NE
|
||||||
|
Qirn Jump SW: Broken Bridge NW
|
||||||
|
Qirn Jump SC: Broken Bridge NC
|
||||||
|
Qirn Jump SE: Broken Bridge NE
|
||||||
|
Kakariko SE: Kakariko Suburb NE
|
||||||
|
Village of Outcasts SE: Frog NE
|
||||||
|
Hyrule Castle SW: Central Bonk Rocks NW
|
||||||
|
Hyrule Castle SE: Links House NE
|
||||||
|
Pyramid SW: Dark Bonk Rocks NW
|
||||||
|
Pyramid SE: Big Bomb Shop NE
|
||||||
|
Wooden Bridge SW: Sand Dunes NW
|
||||||
|
Broken Bridge SW: Dark Dunes NW
|
||||||
|
Eastern Palace SW: Tree Line NW
|
||||||
|
Eastern Palace SE: Eastern Nook NE
|
||||||
|
Palace of Darkness SW: Dark Tree Line NW
|
||||||
|
Palace of Darkness SE: Palace of Darkness Nook NE
|
||||||
|
Sand Dunes SC: Stone Bridge NC
|
||||||
|
Dark Dunes SC: Hammer Bridge NC
|
||||||
|
Flute Boy SW: Flute Boy Approach NW
|
||||||
|
Flute Boy SC: Flute Boy Approach NC
|
||||||
|
Stumpy SW: Stumpy Approach NW
|
||||||
|
Stumpy SC: Stumpy Approach NC
|
||||||
|
Central Bonk Rocks SW: C Whirlpool NW
|
||||||
|
Dark Bonk Rocks SW: Dark C Whirlpool NW
|
||||||
|
Links House SC: Statues NC
|
||||||
|
Big Bomb Shop SC: Hype Cave NC
|
||||||
|
Stone Bridge SC: Lake Hylia NW
|
||||||
|
Hammer Bridge SC: Ice Lake NW
|
||||||
|
Tree Line SC: Lake Hylia NC
|
||||||
|
Tree Line SE: Lake Hylia NE
|
||||||
|
Dark Tree Line SC: Ice Lake NC
|
||||||
|
Dark Tree Line SE: Ice Lake NE
|
||||||
|
C Whirlpool SC: Dam NC
|
||||||
|
Dark C Whirlpool SC: Swamp NC
|
||||||
|
Statues SC: South Pass NC
|
||||||
|
Hype Cave SC: Dark South Pass NC
|
||||||
|
Ice Cave SW: Octoballoon NW
|
||||||
|
Ice Cave SE: Octoballoon NE
|
||||||
|
Shopping Mall SW: Bomber Corner NW
|
||||||
|
Shopping Mall SE: Bomber Corner NE
|
||||||
96
docs/ideas/shufflelargescreens.yaml
Normal file
96
docs/ideas/shufflelargescreens.yaml
Normal file
@@ -0,0 +1,96 @@
|
|||||||
|
settings:
|
||||||
|
1:
|
||||||
|
ow_whirlpool: false
|
||||||
|
ow-edges:
|
||||||
|
1:
|
||||||
|
two-way:
|
||||||
|
Lumberjack SW*: Mountain Pass NW*
|
||||||
|
Dark Lumberjack SW*: Bumper Cave NW*
|
||||||
|
Mountain Pass SE*: Kakariko Pond NE*
|
||||||
|
Bumper Cave SE*: Outcast Pond NE*
|
||||||
|
Zora Waterfall SE*: Zora Approach NE*
|
||||||
|
Catfish SE*: Catfish Approach NE*
|
||||||
|
Kakariko Fortune EN*: Kakariko Pond WN*
|
||||||
|
Kakariko Fortune ES*: Kakariko Pond WS*
|
||||||
|
Dark Fortune EN*: Outcast Pond WN*
|
||||||
|
Dark Fortune ES*: Outcast Pond WS*
|
||||||
|
Kakariko Pond EN*: Sanctuary WN*
|
||||||
|
Kakariko Pond ES*: Sanctuary WS*
|
||||||
|
Kakariko Pond SW*: Forgotten Forest NW*
|
||||||
|
Kakariko Pond SE*: Forgotten Forest NE*
|
||||||
|
Outcast Pond EN*: Dark Chapel WN*
|
||||||
|
Outcast Pond ES*: Dark Chapel WS*
|
||||||
|
Outcast Pond SW*: Shield Shop NW*
|
||||||
|
Outcast Pond SE*: Shield Shop NE*
|
||||||
|
Sanctuary EC*: Graveyard WC*
|
||||||
|
Dark Chapel EC*: Dark Graveyard WC*
|
||||||
|
Graveyard EC*: River Bend WC*
|
||||||
|
Dark Graveyard EC*: Qirn Jump WC*
|
||||||
|
River Bend EN*: Potion Shop WN*
|
||||||
|
River Bend EC*: Potion Shop WC*
|
||||||
|
River Bend ES*: Potion Shop WS*
|
||||||
|
River Bend SW*: Wooden Bridge NW*
|
||||||
|
River Bend SC*: Wooden Bridge NC*
|
||||||
|
River Bend SE*: Wooden Bridge NE*
|
||||||
|
Qirn Jump EN*: Dark Witch WN*
|
||||||
|
Qirn Jump EC*: Dark Witch WC*
|
||||||
|
Qirn Jump ES*: Dark Witch WS*
|
||||||
|
Qirn Jump SW*: Broken Bridge NW*
|
||||||
|
Qirn Jump SC*: Broken Bridge NC*
|
||||||
|
Qirn Jump SE*: Broken Bridge NE*
|
||||||
|
Potion Shop EN*: Zora Approach WN*
|
||||||
|
Potion Shop EC*: Zora Approach WC*
|
||||||
|
Dark Witch EN*: Catfish Approach WN*
|
||||||
|
Dark Witch EC*: Catfish Approach WC*
|
||||||
|
Wooden Bridge SW*: Sand Dunes NW*
|
||||||
|
Broken Bridge SW*: Dark Dunes NW*
|
||||||
|
Sand Dunes SC*: Stone Bridge NC*
|
||||||
|
Dark Dunes SC*: Hammer Bridge NC*
|
||||||
|
Maze Race ES: Kakariko Suburb WS
|
||||||
|
Dig Game EC: Frog WC
|
||||||
|
Dig Game ES: Frog WS
|
||||||
|
Kakariko Suburb ES*: Flute Boy WS*
|
||||||
|
Frog ES*: Stumpy WS*
|
||||||
|
Flute Boy SW*: Flute Boy Approach NW*
|
||||||
|
Flute Boy SC*: Flute Boy Approach NC*
|
||||||
|
Stumpy SW*: Stumpy Approach NW*
|
||||||
|
Stumpy SC*: Stumpy Approach NC*
|
||||||
|
Central Bonk Rocks EN*: Links House WN*
|
||||||
|
Central Bonk Rocks EC*: Links House WC*
|
||||||
|
Central Bonk Rocks ES*: Links House WS*
|
||||||
|
Central Bonk Rocks SW*: C Whirlpool NW*
|
||||||
|
Dark Bonk Rocks EN*: Big Bomb Shop WN*
|
||||||
|
Dark Bonk Rocks EC*: Big Bomb Shop WC*
|
||||||
|
Dark Bonk Rocks ES*: Big Bomb Shop WS*
|
||||||
|
Dark Bonk Rocks SW*: Dark C Whirlpool NW*
|
||||||
|
Links House SC*: Statues NC*
|
||||||
|
Links House ES*: Stone Bridge WS8
|
||||||
|
Big Bomb Shop SC*: Hype Cave NC*
|
||||||
|
Big Bomb Shop ES*: Hammer Bridge WS*
|
||||||
|
Stone Bridge WC: Hobo EC
|
||||||
|
Stone Bridge EN*: Tree Line WN*
|
||||||
|
Stone Bridge EC*: Tree Line WC*
|
||||||
|
Hammer Bridge EN*: Dark Tree Line WN*
|
||||||
|
Hammer Bridge EC*: Dark Tree Line WC*
|
||||||
|
Flute Boy Approach EC*: C Whirlpool WC*
|
||||||
|
Stumpy Approach EC*: Dark C Whirlpool WC*
|
||||||
|
C Whirlpool EN*: Statues WN*
|
||||||
|
C Whirlpool EC*: Statues WC*
|
||||||
|
C Whirlpool ES*: Statues WS*
|
||||||
|
C Whirlpool SC*: Dam NC*
|
||||||
|
Dark C Whirlpool EN*: Hype Cave WN*
|
||||||
|
Dark C Whirlpool EC*: Hype Cave WC*
|
||||||
|
Dark C Whirlpool ES*: Hype Cave WS*
|
||||||
|
Dark C Whirlpool SC*: Swamp NC*
|
||||||
|
Statues SC*: South Pass NC*
|
||||||
|
Hype Cave SC*: Dark South Pass NC*
|
||||||
|
Ice Cave SW*: Octoballoon NW*
|
||||||
|
Ice Cave SE*: Octoballoon NE*
|
||||||
|
Shopping Mall SW*: Bomber Corner NW*
|
||||||
|
Shopping Mall SE*: Bomber Corner NE*
|
||||||
|
Desert Pass EC*: Dam WC*
|
||||||
|
Desert Pass ES*: Dam WS*
|
||||||
|
Swamp Nook EC*: Swamp WC*
|
||||||
|
Swamp Nook ES*: Swamp WS*
|
||||||
|
Dam EC*: South Pass WC*
|
||||||
|
Swamp EC*: Dark South Pass WC*
|
||||||
90
docs/ideas/shufflelight.yaml
Normal file
90
docs/ideas/shufflelight.yaml
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
meta:
|
||||||
|
players: 1
|
||||||
|
settings:
|
||||||
|
1:
|
||||||
|
ow_shuffle: full
|
||||||
|
ow_whirlpool: true
|
||||||
|
ow_crossed: none
|
||||||
|
ow_keepsimilar: false
|
||||||
|
ow_swapped: false
|
||||||
|
ow_terrain: true
|
||||||
|
ow_decoupled: none
|
||||||
|
ow_mixed: false
|
||||||
|
ow_fluteshuffle: vanilla
|
||||||
|
ow-edges:
|
||||||
|
1:
|
||||||
|
two-way:
|
||||||
|
Skull Woods EN: Dark Lumberjack WN
|
||||||
|
Skull Woods SW: Skull Woods Pass NW
|
||||||
|
Skull Woods SC: Skull Woods Pass NE
|
||||||
|
Skull Woods SE: Dark Fortune NE
|
||||||
|
Dark Lumberjack SW: Bumper Cave NW
|
||||||
|
West Dark Death Mountain EN: East Dark Death Mountain WN
|
||||||
|
West Dark Death Mountain ES: East Dark Death Mountain WS
|
||||||
|
East Dark Death Mountain EN: Turtle Rock WN
|
||||||
|
Bumper Cave SE: Outcast Pond NE
|
||||||
|
Catfish SE: Catfish Approach NE
|
||||||
|
Skull Woods Pass SW: Village of Outcasts NW
|
||||||
|
Skull Woods Pass SE: Village of Outcasts NC
|
||||||
|
Dark Fortune EN: Outcast Pond WN
|
||||||
|
Dark Fortune ES: Outcast Pond WS
|
||||||
|
Dark Fortune SC: Village of Outcasts NE
|
||||||
|
Outcast Pond EN: Dark Chapel WN
|
||||||
|
Outcast Pond ES: Dark Chapel WS
|
||||||
|
Outcast Pond SW: Shield Shop NW
|
||||||
|
Outcast Pond SE: Shield Shop NE
|
||||||
|
Dark Chapel EC: Dark Graveyard WC
|
||||||
|
Dark Graveyard EC: Qirn Jump WC
|
||||||
|
Qirn Jump EN: Dark Witch WN
|
||||||
|
Qirn Jump EC: Dark Witch WC
|
||||||
|
Qirn Jump ES: Dark Witch WS
|
||||||
|
Qirn Jump SW: Broken Bridge NW
|
||||||
|
Qirn Jump SC: Broken Bridge NC
|
||||||
|
Qirn Jump SE: Broken Bridge NE
|
||||||
|
Dark Witch EN: Catfish Approach WN
|
||||||
|
Dark Witch EC: Catfish Approach WC
|
||||||
|
Village of Outcasts ES: Hammer Pegs WS
|
||||||
|
Village of Outcasts SE: Frog NE
|
||||||
|
Pyramid ES: Dark Dunes WN
|
||||||
|
Pyramid SW: Dark Bonk Rocks NW
|
||||||
|
Pyramid SE: Big Bomb Shop NE
|
||||||
|
Broken Bridge SW: Dark Dunes NW
|
||||||
|
Palace of Darkness SW: Dark Tree Line NW
|
||||||
|
Palace of Darkness SE: Palace of Darkness Nook NE
|
||||||
|
Dark Dunes SC: Hammer Bridge NC
|
||||||
|
Dig Game EC: Frog WC
|
||||||
|
Dig Game ES: Frog WS
|
||||||
|
Frog ES: Stumpy WS
|
||||||
|
Stumpy SW: Stumpy Approach NW
|
||||||
|
Stumpy SC: Stumpy Approach NC
|
||||||
|
Dark Bonk Rocks EN: Big Bomb Shop WN
|
||||||
|
Dark Bonk Rocks EC: Big Bomb Shop WC
|
||||||
|
Dark Bonk Rocks ES: Big Bomb Shop WS
|
||||||
|
Dark Bonk Rocks SW: Dark C Whirlpool NW
|
||||||
|
Big Bomb Shop SC: Hype Cave NC
|
||||||
|
Big Bomb Shop ES: Hammer Bridge WS
|
||||||
|
Hammer Bridge EN: Dark Tree Line WN
|
||||||
|
Hammer Bridge EC: Dark Tree Line WC
|
||||||
|
Hammer Bridge SC: Ice Lake NW
|
||||||
|
Dark Tree Line SC: Ice Lake NC
|
||||||
|
Dark Tree Line SE: Ice Lake NE
|
||||||
|
Stumpy Approach EC: Dark C Whirlpool WC
|
||||||
|
Dark C Whirlpool EN: Hype Cave WN
|
||||||
|
Dark C Whirlpool EC: Hype Cave WC
|
||||||
|
Dark C Whirlpool ES: Hype Cave WS
|
||||||
|
Dark C Whirlpool SC: Swamp NC
|
||||||
|
Hype Cave SC: Dark South Pass NC
|
||||||
|
Ice Lake WS: Dark South Pass ES
|
||||||
|
Ice Lake EC: Bomber Corner WC
|
||||||
|
Ice Lake ES: Bomber Corner WS
|
||||||
|
Shopping Mall SW: Bomber Corner NW
|
||||||
|
Shopping Mall SE: Bomber Corner NE
|
||||||
|
Swamp Nook EC: Swamp WC
|
||||||
|
Swamp Nook ES: Swamp WS
|
||||||
|
Swamp EC: Dark South Pass WC
|
||||||
|
one-way: []
|
||||||
|
ow-whirlpools:
|
||||||
|
1:
|
||||||
|
two-way:
|
||||||
|
Qirn Jump Whirlpool: Bomber Corner Whirlpool
|
||||||
|
one-way: []
|
||||||
58
docs/ideas/shufflesmallscreens.yaml
Normal file
58
docs/ideas/shufflesmallscreens.yaml
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
ow-edges:
|
||||||
|
1:
|
||||||
|
two-way:
|
||||||
|
Lost Woods NW: Master Sword Meadow SC
|
||||||
|
Lost Woods EN*: Lumberjack WN*
|
||||||
|
Lost Woods SW*: Lost Woods Pass NW*
|
||||||
|
Lost Woods SC*: Lost Woods Pass NE*
|
||||||
|
Lost Woods SE*: Kakariko Fortune NE*
|
||||||
|
Skull Woods EN*: Dark Lumberjack WN*
|
||||||
|
Skull Woods SW*: Skull Woods Pass NW*
|
||||||
|
Skull Woods SC*: Skull Woods Pass NE*
|
||||||
|
Skull Woods SE*: Dark Fortune NE*
|
||||||
|
West Death Mountain EN*: East Death Mountain WN*
|
||||||
|
West Death Mountain ES*: East Death Mountain WS*
|
||||||
|
West Dark Death Mountain EN*: East Dark Death Mountain WN*
|
||||||
|
West Dark Death Mountain ES*: East Dark Death Mountain WS*
|
||||||
|
East Death Mountain EN*: Death Mountain TR Pegs WN*
|
||||||
|
East Dark Death Mountain EN*: Turtle Rock WN*
|
||||||
|
Zora Waterfall NE: Zoras Domain SW
|
||||||
|
Lost Woods Pass SW*: Kakariko NW*
|
||||||
|
Lost Woods Pass SE*: Kakariko NC*
|
||||||
|
Skull Woods Pass SW*: Village of Outcasts NW*
|
||||||
|
Skull Woods Pass SE*: Village of Outcasts NC*
|
||||||
|
Kakariko Fortune SC*: Kakariko NE*
|
||||||
|
Dark Fortune SC*: Village of Outcasts NE*
|
||||||
|
Kakariko ES*: Blacksmith WS*
|
||||||
|
Kakariko SE*: Kakariko Suburb NE*
|
||||||
|
Village of Outcasts ES*: Hammer Pegs WS*
|
||||||
|
Village of Outcasts SE*: Frog NE*
|
||||||
|
Forgotten Forest ES: Hyrule Castle WN
|
||||||
|
Hyrule Castle ES*: Sand Dunes WN*
|
||||||
|
Hyrule Castle SW*: Central Bonk Rocks NW*
|
||||||
|
Hyrule Castle SE*: Links House NE*
|
||||||
|
Pyramid ES*: Dark Dunes WN*
|
||||||
|
Pyramid SW*: Dark Bonk Rocks NW*
|
||||||
|
Pyramid SE*: Big Bomb Shop NE*
|
||||||
|
Eastern Palace SW*: Tree Line NW*
|
||||||
|
Eastern Palace SE*: Eastern Nook NE*
|
||||||
|
Palace of Darkness SW*: Dark Tree Line NW*
|
||||||
|
Palace of Darkness SE*: Palace of Darkness Nook NE*
|
||||||
|
Stone Bridge SC*: Lake Hylia NW*
|
||||||
|
Hammer Bridge SC*: Ice Lake NW*
|
||||||
|
Tree Line SC*: Lake Hylia NC*
|
||||||
|
Tree Line SE*: Lake Hylia NE*
|
||||||
|
Dark Tree Line SC*: Ice Lake NC*
|
||||||
|
Dark Tree Line SE*: Ice Lake NE*
|
||||||
|
Desert EC: Desert Pass WC
|
||||||
|
Desert ES: Desert Pass WS
|
||||||
|
Lake Hylia WS*: South Pass ES*
|
||||||
|
Lake Hylia EC*: Octoballoon WC*
|
||||||
|
Lake Hylia ES*: Octoballoon WS*
|
||||||
|
Ice Lake WS*: Dark South Pass ES*
|
||||||
|
Ice Lake EC*: Bomber Corner WC*
|
||||||
|
Ice Lake ES*: Bomber Corner WS*
|
||||||
|
ow-whirlpools:
|
||||||
|
1:
|
||||||
|
two-way:
|
||||||
|
Zora Whirlpool: Lake Hylia Whirlpool
|
||||||
81
docs/ideas/shufflevertical.yaml
Normal file
81
docs/ideas/shufflevertical.yaml
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
settings:
|
||||||
|
1:
|
||||||
|
ow_mixed: false
|
||||||
|
ow-edges:
|
||||||
|
1:
|
||||||
|
two-way:
|
||||||
|
Lost Woods EN: Lumberjack WN
|
||||||
|
Skull Woods EN: Dark Lumberjack WN
|
||||||
|
West Death Mountain EN: East Death Mountain WN
|
||||||
|
West Death Mountain ES: East Death Mountain WS
|
||||||
|
West Dark Death Mountain EN: East Dark Death Mountain WN
|
||||||
|
West Dark Death Mountain ES: East Dark Death Mountain WS
|
||||||
|
East Death Mountain EN: Death Mountain TR Pegs WN
|
||||||
|
East Dark Death Mountain EN: Turtle Rock WN
|
||||||
|
Kakariko Fortune EN: Kakariko Pond WN
|
||||||
|
Kakariko Fortune ES: Kakariko Pond WS
|
||||||
|
Dark Fortune EN: Outcast Pond WN
|
||||||
|
Dark Fortune ES: Outcast Pond WS
|
||||||
|
Kakariko Pond EN: Sanctuary WN
|
||||||
|
Kakariko Pond ES: Sanctuary WS
|
||||||
|
Outcast Pond EN: Dark Chapel WN
|
||||||
|
Outcast Pond ES: Dark Chapel WS
|
||||||
|
Sanctuary EC: Graveyard WC
|
||||||
|
Dark Chapel EC: Dark Graveyard WC
|
||||||
|
Graveyard EC: River Bend WC
|
||||||
|
Dark Graveyard EC: Qirn Jump WC
|
||||||
|
River Bend EN: Potion Shop WN
|
||||||
|
River Bend EC: Potion Shop WC
|
||||||
|
River Bend ES: Potion Shop WS
|
||||||
|
Qirn Jump EN: Dark Witch WN
|
||||||
|
Qirn Jump EC: Dark Witch WC
|
||||||
|
Qirn Jump ES: Dark Witch WS
|
||||||
|
Potion Shop EN: Zora Approach WN
|
||||||
|
Potion Shop EC: Zora Approach WC
|
||||||
|
Dark Witch EN: Catfish Approach WN
|
||||||
|
Dark Witch EC: Catfish Approach WC
|
||||||
|
Kakariko ES: Blacksmith WS
|
||||||
|
Village of Outcasts ES: Hammer Pegs WS
|
||||||
|
Forgotten Forest ES: Hyrule Castle WN
|
||||||
|
Hyrule Castle ES: Sand Dunes WN
|
||||||
|
Pyramid ES: Dark Dunes WN
|
||||||
|
Maze Race ES: Kakariko Suburb WS
|
||||||
|
Dig Game EC: Frog WC
|
||||||
|
Dig Game ES: Frog WS
|
||||||
|
Kakariko Suburb ES: Flute Boy WS
|
||||||
|
Frog ES: Stumpy WS
|
||||||
|
Central Bonk Rocks EN: Links House WN
|
||||||
|
Central Bonk Rocks EC: Links House WC
|
||||||
|
Central Bonk Rocks ES: Links House WS
|
||||||
|
Dark Bonk Rocks EN: Big Bomb Shop WN
|
||||||
|
Dark Bonk Rocks EC: Big Bomb Shop WC
|
||||||
|
Dark Bonk Rocks ES: Big Bomb Shop WS
|
||||||
|
Links House ES: Stone Bridge WS
|
||||||
|
Big Bomb Shop ES: Hammer Bridge WS
|
||||||
|
Stone Bridge WC: Hobo EC
|
||||||
|
Stone Bridge EN: Tree Line WN
|
||||||
|
Stone Bridge EC: Tree Line WC
|
||||||
|
Hammer Bridge EN: Dark Tree Line WN
|
||||||
|
Hammer Bridge EC: Dark Tree Line WC
|
||||||
|
Desert EC: Desert Pass WC
|
||||||
|
Desert ES: Desert Pass WS
|
||||||
|
Flute Boy Approach EC: C Whirlpool WC
|
||||||
|
Stumpy Approach EC: Dark C Whirlpool WC
|
||||||
|
C Whirlpool EN: Statues WN
|
||||||
|
C Whirlpool EC: Statues WC
|
||||||
|
C Whirlpool ES: Statues WS
|
||||||
|
Dark C Whirlpool EN: Hype Cave WN
|
||||||
|
Dark C Whirlpool EC: Hype Cave WC
|
||||||
|
Dark C Whirlpool ES: Hype Cave WS
|
||||||
|
Lake Hylia WS: South Pass ES
|
||||||
|
Lake Hylia EC: Octoballoon WC
|
||||||
|
Lake Hylia ES: Octoballoon WS
|
||||||
|
Ice Lake WS: Dark South Pass ES
|
||||||
|
Ice Lake EC: Bomber Corner WC
|
||||||
|
Ice Lake ES: Bomber Corner WS
|
||||||
|
Desert Pass EC: Dam WC
|
||||||
|
Desert Pass ES: Dam WS
|
||||||
|
Swamp Nook EC: Swamp WC
|
||||||
|
Swamp Nook ES: Swamp WS
|
||||||
|
Dam EC: South Pass WC
|
||||||
|
Swamp EC: Dark South Pass WC
|
||||||
Reference in New Issue
Block a user