mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 20:21:32 -06:00
Merge branch 'master' into pull/58
# Conflicts: # AdjusterMain.py # BaseClasses.py # EntranceShuffle.py # Gui.py # InvertedRegions.py # ItemList.py # Main.py # Plando.py # Rom.py # Rules.py
This commit is contained in:
@@ -19,17 +19,17 @@ def link_entrances(world, player):
|
||||
connect_simple(world, exitname, regionname, player)
|
||||
|
||||
# if we do not shuffle, set default connections
|
||||
if world.shuffle == 'vanilla':
|
||||
if world.shuffle[player] == 'vanilla':
|
||||
for exitname, regionname in default_connections:
|
||||
connect_simple(world, exitname, regionname, player)
|
||||
for exitname, regionname in default_dungeon_connections:
|
||||
connect_simple(world, exitname, regionname, player)
|
||||
elif world.shuffle == 'dungeonssimple':
|
||||
elif world.shuffle[player] == 'dungeonssimple':
|
||||
for exitname, regionname in default_connections:
|
||||
connect_simple(world, exitname, regionname, player)
|
||||
|
||||
simple_shuffle_dungeons(world, player)
|
||||
elif world.shuffle == 'dungeonsfull':
|
||||
elif world.shuffle[player] == 'dungeonsfull':
|
||||
for exitname, regionname in default_connections:
|
||||
connect_simple(world, exitname, regionname, player)
|
||||
|
||||
@@ -39,7 +39,7 @@ def link_entrances(world, player):
|
||||
lw_entrances = list(LW_Dungeon_Entrances)
|
||||
dw_entrances = list(DW_Dungeon_Entrances)
|
||||
|
||||
if world.mode == 'standard':
|
||||
if world.mode[player] == 'standard':
|
||||
# must connect front of hyrule castle to do escape
|
||||
connect_two_way(world, 'Hyrule Castle Entrance (South)', 'Hyrule Castle Exit (South)', player)
|
||||
else:
|
||||
@@ -52,14 +52,14 @@ def link_entrances(world, player):
|
||||
dw_entrances.append('Ganons Tower')
|
||||
dungeon_exits.append('Ganons Tower Exit')
|
||||
|
||||
if world.mode == 'standard':
|
||||
if world.mode[player] == 'standard':
|
||||
# rest of hyrule castle must be in light world, so it has to be the one connected to east exit of desert
|
||||
connect_mandatory_exits(world, lw_entrances, [('Hyrule Castle Exit (West)', 'Hyrule Castle Exit (East)')], list(LW_Dungeon_Entrances_Must_Exit), player)
|
||||
else:
|
||||
connect_mandatory_exits(world, lw_entrances, dungeon_exits, list(LW_Dungeon_Entrances_Must_Exit), player)
|
||||
connect_mandatory_exits(world, dw_entrances, dungeon_exits, list(DW_Dungeon_Entrances_Must_Exit), player)
|
||||
connect_caves(world, lw_entrances, dw_entrances, dungeon_exits, player)
|
||||
elif world.shuffle == 'simple':
|
||||
elif world.shuffle[player] == 'simple':
|
||||
simple_shuffle_dungeons(world, player)
|
||||
|
||||
old_man_entrances = list(Old_Man_Entrances)
|
||||
@@ -130,7 +130,7 @@ def link_entrances(world, player):
|
||||
|
||||
# place remaining doors
|
||||
connect_doors(world, single_doors, door_targets, player)
|
||||
elif world.shuffle == 'restricted':
|
||||
elif world.shuffle[player] == 'restricted':
|
||||
simple_shuffle_dungeons(world, player)
|
||||
|
||||
lw_entrances = list(LW_Entrances + LW_Single_Cave_Doors + Old_Man_Entrances)
|
||||
@@ -201,7 +201,7 @@ def link_entrances(world, player):
|
||||
|
||||
# place remaining doors
|
||||
connect_doors(world, doors, door_targets, player)
|
||||
elif world.shuffle == 'restricted_legacy':
|
||||
elif world.shuffle[player] == 'restricted_legacy':
|
||||
simple_shuffle_dungeons(world, player)
|
||||
|
||||
lw_entrances = list(LW_Entrances)
|
||||
@@ -256,7 +256,7 @@ def link_entrances(world, player):
|
||||
|
||||
# place remaining doors
|
||||
connect_doors(world, single_doors, door_targets, player)
|
||||
elif world.shuffle == 'full':
|
||||
elif world.shuffle[player] == 'full':
|
||||
skull_woods_shuffle(world, player)
|
||||
|
||||
lw_entrances = list(LW_Entrances + LW_Dungeon_Entrances + LW_Single_Cave_Doors + Old_Man_Entrances)
|
||||
@@ -273,7 +273,7 @@ def link_entrances(world, player):
|
||||
# tavern back door cannot be shuffled yet
|
||||
connect_doors(world, ['Tavern North'], ['Tavern'], player)
|
||||
|
||||
if world.mode == 'standard':
|
||||
if world.mode[player] == 'standard':
|
||||
# must connect front of hyrule castle to do escape
|
||||
connect_two_way(world, 'Hyrule Castle Entrance (South)', 'Hyrule Castle Exit (South)', player)
|
||||
else:
|
||||
@@ -309,7 +309,7 @@ def link_entrances(world, player):
|
||||
pass
|
||||
else: #if the cave wasn't placed we get here
|
||||
connect_caves(world, lw_entrances, [], old_man_house, player)
|
||||
if world.mode == 'standard':
|
||||
if world.mode[player] == 'standard':
|
||||
# rest of hyrule castle must be in light world
|
||||
connect_caves(world, lw_entrances, [], [('Hyrule Castle Exit (West)', 'Hyrule Castle Exit (East)')], player)
|
||||
|
||||
@@ -361,7 +361,7 @@ def link_entrances(world, player):
|
||||
|
||||
# place remaining doors
|
||||
connect_doors(world, doors, door_targets, player)
|
||||
elif world.shuffle == 'crossed':
|
||||
elif world.shuffle[player] == 'crossed':
|
||||
skull_woods_shuffle(world, player)
|
||||
|
||||
entrances = list(LW_Entrances + LW_Dungeon_Entrances + LW_Single_Cave_Doors + Old_Man_Entrances + DW_Entrances + DW_Dungeon_Entrances + DW_Single_Cave_Doors)
|
||||
@@ -376,7 +376,7 @@ def link_entrances(world, player):
|
||||
# tavern back door cannot be shuffled yet
|
||||
connect_doors(world, ['Tavern North'], ['Tavern'], player)
|
||||
|
||||
if world.mode == 'standard':
|
||||
if world.mode[player] == 'standard':
|
||||
# must connect front of hyrule castle to do escape
|
||||
connect_two_way(world, 'Hyrule Castle Entrance (South)', 'Hyrule Castle Exit (South)', player)
|
||||
else:
|
||||
@@ -392,7 +392,7 @@ def link_entrances(world, player):
|
||||
#place must-exit caves
|
||||
connect_mandatory_exits(world, entrances, caves, must_exits, player)
|
||||
|
||||
if world.mode == 'standard':
|
||||
if world.mode[player] == 'standard':
|
||||
# rest of hyrule castle must be dealt with
|
||||
connect_caves(world, entrances, [], [('Hyrule Castle Exit (West)', 'Hyrule Castle Exit (East)')], player)
|
||||
|
||||
@@ -437,7 +437,7 @@ def link_entrances(world, player):
|
||||
|
||||
# place remaining doors
|
||||
connect_doors(world, entrances, door_targets, player)
|
||||
elif world.shuffle == 'full_legacy':
|
||||
elif world.shuffle[player] == 'full_legacy':
|
||||
skull_woods_shuffle(world, player)
|
||||
|
||||
lw_entrances = list(LW_Entrances + LW_Dungeon_Entrances + Old_Man_Entrances)
|
||||
@@ -451,7 +451,7 @@ def link_entrances(world, player):
|
||||
blacksmith_doors = list(Blacksmith_Single_Cave_Doors)
|
||||
door_targets = list(Single_Cave_Targets)
|
||||
|
||||
if world.mode == 'standard':
|
||||
if world.mode[player] == 'standard':
|
||||
# must connect front of hyrule castle to do escape
|
||||
connect_two_way(world, 'Hyrule Castle Entrance (South)', 'Hyrule Castle Exit (South)', player)
|
||||
else:
|
||||
@@ -471,7 +471,7 @@ def link_entrances(world, player):
|
||||
else:
|
||||
connect_mandatory_exits(world, dw_entrances, caves, dw_must_exits, player)
|
||||
connect_mandatory_exits(world, lw_entrances, caves, lw_must_exits, player)
|
||||
if world.mode == 'standard':
|
||||
if world.mode[player] == 'standard':
|
||||
# rest of hyrule castle must be in light world
|
||||
connect_caves(world, lw_entrances, [], [('Hyrule Castle Exit (West)', 'Hyrule Castle Exit (East)')], player)
|
||||
|
||||
@@ -513,7 +513,7 @@ def link_entrances(world, player):
|
||||
|
||||
# place remaining doors
|
||||
connect_doors(world, single_doors, door_targets, player)
|
||||
elif world.shuffle == 'madness_legacy':
|
||||
elif world.shuffle[player] == 'madness_legacy':
|
||||
# here lie dragons, connections are no longer two way
|
||||
lw_entrances = list(LW_Entrances + LW_Dungeon_Entrances + Old_Man_Entrances)
|
||||
dw_entrances = list(DW_Entrances + DW_Dungeon_Entrances)
|
||||
@@ -552,7 +552,7 @@ def link_entrances(world, player):
|
||||
('Lumberjack Tree Exit', 'Lumberjack Tree (top)'),
|
||||
(('Skull Woods Second Section Exit (East)', 'Skull Woods Second Section Exit (West)'), 'Skull Woods Second Section (Drop)')]
|
||||
|
||||
if world.mode == 'standard':
|
||||
if world.mode[player] == 'standard':
|
||||
# cannot move uncle cave
|
||||
connect_entrance(world, 'Hyrule Castle Secret Entrance Drop', 'Hyrule Castle Secret Entrance', player)
|
||||
connect_exit(world, 'Hyrule Castle Secret Entrance Exit', 'Hyrule Castle Secret Entrance Stairs', player)
|
||||
@@ -606,7 +606,7 @@ def link_entrances(world, player):
|
||||
connect_entrance(world, hole, target, player)
|
||||
|
||||
# hyrule castle handling
|
||||
if world.mode == 'standard':
|
||||
if world.mode[player] == 'standard':
|
||||
# must connect front of hyrule castle to do escape
|
||||
connect_entrance(world, 'Hyrule Castle Entrance (South)', 'Hyrule Castle Exit (South)', player)
|
||||
connect_exit(world, 'Hyrule Castle Exit (South)', 'Hyrule Castle Entrance (South)', player)
|
||||
@@ -755,7 +755,7 @@ def link_entrances(world, player):
|
||||
|
||||
# place remaining doors
|
||||
connect_doors(world, single_doors, door_targets, player)
|
||||
elif world.shuffle == 'insanity':
|
||||
elif world.shuffle[player] == 'insanity':
|
||||
# beware ye who enter here
|
||||
|
||||
entrances = LW_Entrances + LW_Dungeon_Entrances + DW_Entrances + DW_Dungeon_Entrances + Old_Man_Entrances + ['Skull Woods Second Section Door (East)', 'Skull Woods First Section Door', 'Kakariko Well Cave', 'Bat Cave Cave', 'North Fairy Cave', 'Sanctuary', 'Lost Woods Hideout Stump', 'Lumberjack Tree Cave']
|
||||
@@ -792,7 +792,7 @@ def link_entrances(world, player):
|
||||
# tavern back door cannot be shuffled yet
|
||||
connect_doors(world, ['Tavern North'], ['Tavern'], player)
|
||||
|
||||
if world.mode == 'standard':
|
||||
if world.mode[player] == 'standard':
|
||||
# cannot move uncle cave
|
||||
connect_entrance(world, 'Hyrule Castle Secret Entrance Drop', 'Hyrule Castle Secret Entrance', player)
|
||||
connect_exit(world, 'Hyrule Castle Secret Entrance Exit', 'Hyrule Castle Secret Entrance Stairs', player)
|
||||
@@ -825,7 +825,7 @@ def link_entrances(world, player):
|
||||
connect_entrance(world, hole, hole_targets.pop(), player)
|
||||
|
||||
# hyrule castle handling
|
||||
if world.mode == 'standard':
|
||||
if world.mode[player] == 'standard':
|
||||
# must connect front of hyrule castle to do escape
|
||||
connect_entrance(world, 'Hyrule Castle Entrance (South)', 'Hyrule Castle Exit (South)', player)
|
||||
connect_exit(world, 'Hyrule Castle Exit (South)', 'Hyrule Castle Entrance (South)', player)
|
||||
@@ -902,8 +902,8 @@ def link_entrances(world, player):
|
||||
|
||||
# place remaining doors
|
||||
connect_doors(world, doors, door_targets, player)
|
||||
elif world.shuffle == 'insanity_legacy':
|
||||
world.fix_fake_world = False
|
||||
elif world.shuffle[player] == 'insanity_legacy':
|
||||
world.fix_fake_world[player] = False
|
||||
# beware ye who enter here
|
||||
|
||||
entrances = LW_Entrances + LW_Dungeon_Entrances + DW_Entrances + DW_Dungeon_Entrances + Old_Man_Entrances + ['Skull Woods Second Section Door (East)', 'Skull Woods First Section Door', 'Kakariko Well Cave', 'Bat Cave Cave', 'North Fairy Cave', 'Sanctuary', 'Lost Woods Hideout Stump', 'Lumberjack Tree Cave']
|
||||
@@ -927,7 +927,7 @@ def link_entrances(world, player):
|
||||
hole_targets = ['Kakariko Well (top)', 'Bat Cave (right)', 'North Fairy Cave', 'Lost Woods Hideout (top)', 'Lumberjack Tree (top)', 'Sewer Drop', 'Skull Woods Second Section (Drop)',
|
||||
'Skull Woods First Section (Left)', 'Skull Woods First Section (Right)', 'Skull Woods First Section (Top)']
|
||||
|
||||
if world.mode == 'standard':
|
||||
if world.mode[player] == 'standard':
|
||||
# cannot move uncle cave
|
||||
connect_entrance(world, 'Hyrule Castle Secret Entrance Drop', 'Hyrule Castle Secret Entrance', player)
|
||||
connect_exit(world, 'Hyrule Castle Secret Entrance Exit', 'Hyrule Castle Secret Entrance Stairs', player)
|
||||
@@ -960,7 +960,7 @@ def link_entrances(world, player):
|
||||
connect_entrance(world, hole, hole_targets.pop(), player)
|
||||
|
||||
# hyrule castle handling
|
||||
if world.mode == 'standard':
|
||||
if world.mode[player] == 'standard':
|
||||
# must connect front of hyrule castle to do escape
|
||||
connect_entrance(world, 'Hyrule Castle Entrance (South)', 'Hyrule Castle Exit (South)', player)
|
||||
connect_exit(world, 'Hyrule Castle Exit (South)', 'Hyrule Castle Entrance (South)', player)
|
||||
@@ -1079,17 +1079,17 @@ def link_inverted_entrances(world, player):
|
||||
connect_simple(world, exitname, regionname, player)
|
||||
|
||||
# if we do not shuffle, set default connections
|
||||
if world.shuffle == 'vanilla':
|
||||
if world.shuffle[player] == 'vanilla':
|
||||
for exitname, regionname in inverted_default_connections:
|
||||
connect_simple(world, exitname, regionname, player)
|
||||
for exitname, regionname in inverted_default_dungeon_connections:
|
||||
connect_simple(world, exitname, regionname, player)
|
||||
elif world.shuffle == 'dungeonssimple':
|
||||
elif world.shuffle[player] == 'dungeonssimple':
|
||||
for exitname, regionname in inverted_default_connections:
|
||||
connect_simple(world, exitname, regionname, player)
|
||||
|
||||
simple_shuffle_dungeons(world, player)
|
||||
elif world.shuffle == 'dungeonsfull':
|
||||
elif world.shuffle[player] == 'dungeonsfull':
|
||||
for exitname, regionname in inverted_default_connections:
|
||||
connect_simple(world, exitname, regionname, player)
|
||||
|
||||
@@ -1151,7 +1151,7 @@ def link_inverted_entrances(world, player):
|
||||
remaining_lw_entrances = [i for i in all_dungeon_entrances if i in lw_entrances]
|
||||
connect_caves(world, remaining_lw_entrances, remaining_dw_entrances, dungeon_exits, player)
|
||||
|
||||
elif world.shuffle == 'simple':
|
||||
elif world.shuffle[player] == 'simple':
|
||||
simple_shuffle_dungeons(world, player)
|
||||
|
||||
old_man_entrances = list(Inverted_Old_Man_Entrances)
|
||||
@@ -1160,7 +1160,7 @@ def link_inverted_entrances(world, player):
|
||||
|
||||
single_doors = list(Single_Cave_Doors)
|
||||
bomb_shop_doors = list(Inverted_Bomb_Shop_Single_Cave_Doors)
|
||||
blacksmith_doors = list(Inverted_Blacksmith_Single_Cave_Doors)
|
||||
blacksmith_doors = list(Blacksmith_Single_Cave_Doors)
|
||||
door_targets = list(Inverted_Single_Cave_Targets)
|
||||
|
||||
# we shuffle all 2 entrance caves as pairs as a start
|
||||
@@ -1191,6 +1191,8 @@ def link_inverted_entrances(world, player):
|
||||
bomb_shop_doors.remove(links_house)
|
||||
if links_house in blacksmith_doors:
|
||||
blacksmith_doors.remove(links_house)
|
||||
if links_house in old_man_entrances:
|
||||
old_man_entrances.remove(links_house)
|
||||
|
||||
# place dark sanc
|
||||
sanc_doors = [door for door in Inverted_Dark_Sanctuary_Doors if door in bomb_shop_doors]
|
||||
@@ -1243,7 +1245,7 @@ def link_inverted_entrances(world, player):
|
||||
# place remaining doors
|
||||
connect_doors(world, single_doors, door_targets, player)
|
||||
|
||||
elif world.shuffle == 'restricted':
|
||||
elif world.shuffle[player] == 'restricted':
|
||||
simple_shuffle_dungeons(world, player)
|
||||
|
||||
lw_entrances = list(Inverted_LW_Entrances + Inverted_LW_Single_Cave_Doors)
|
||||
@@ -1253,7 +1255,7 @@ def link_inverted_entrances(world, player):
|
||||
caves = list(Cave_Exits + Cave_Three_Exits + Old_Man_House)
|
||||
single_doors = list(Single_Cave_Doors)
|
||||
bomb_shop_doors = list(Inverted_Bomb_Shop_Single_Cave_Doors + Inverted_Bomb_Shop_Multi_Cave_Doors)
|
||||
blacksmith_doors = list(Inverted_Blacksmith_Single_Cave_Doors + Blacksmith_Multi_Cave_Doors)
|
||||
blacksmith_doors = list(Blacksmith_Single_Cave_Doors + Blacksmith_Multi_Cave_Doors)
|
||||
door_targets = list(Inverted_Single_Cave_Targets)
|
||||
|
||||
# place links house
|
||||
@@ -1326,7 +1328,7 @@ def link_inverted_entrances(world, player):
|
||||
doors = lw_entrances + dw_entrances
|
||||
# place remaining doors
|
||||
connect_doors(world, doors, door_targets, player)
|
||||
elif world.shuffle == 'full':
|
||||
elif world.shuffle[player] == 'full':
|
||||
skull_woods_shuffle(world, player)
|
||||
|
||||
lw_entrances = list(Inverted_LW_Entrances + Inverted_LW_Dungeon_Entrances + Inverted_LW_Single_Cave_Doors)
|
||||
@@ -1335,7 +1337,7 @@ def link_inverted_entrances(world, player):
|
||||
old_man_entrances = list(Inverted_Old_Man_Entrances + Old_Man_Entrances + ['Inverted Agahnims Tower', 'Tower of Hera'])
|
||||
caves = list(Cave_Exits + Dungeon_Exits + Cave_Three_Exits) # don't need to consider three exit caves, have one exit caves to avoid parity issues
|
||||
bomb_shop_doors = list(Inverted_Bomb_Shop_Single_Cave_Doors + Inverted_Bomb_Shop_Multi_Cave_Doors)
|
||||
blacksmith_doors = list(Inverted_Blacksmith_Single_Cave_Doors + Blacksmith_Multi_Cave_Doors)
|
||||
blacksmith_doors = list(Blacksmith_Single_Cave_Doors + Blacksmith_Multi_Cave_Doors)
|
||||
door_targets = list(Inverted_Single_Cave_Targets)
|
||||
old_man_house = list(Old_Man_House)
|
||||
|
||||
@@ -1477,7 +1479,7 @@ def link_inverted_entrances(world, player):
|
||||
|
||||
# place remaining doors
|
||||
connect_doors(world, doors, door_targets, player)
|
||||
elif world.shuffle == 'crossed':
|
||||
elif world.shuffle[player] == 'crossed':
|
||||
skull_woods_shuffle(world, player)
|
||||
|
||||
entrances = list(Inverted_LW_Entrances + Inverted_LW_Dungeon_Entrances + Inverted_LW_Single_Cave_Doors + Inverted_Old_Man_Entrances + Inverted_DW_Entrances + Inverted_DW_Dungeon_Entrances + Inverted_DW_Single_Cave_Doors)
|
||||
@@ -1486,7 +1488,7 @@ def link_inverted_entrances(world, player):
|
||||
old_man_entrances = list(Inverted_Old_Man_Entrances + Old_Man_Entrances + ['Inverted Agahnims Tower', 'Tower of Hera'])
|
||||
caves = list(Cave_Exits + Dungeon_Exits + Cave_Three_Exits + Old_Man_House) # don't need to consider three exit caves, have one exit caves to avoid parity issues
|
||||
bomb_shop_doors = list(Inverted_Bomb_Shop_Single_Cave_Doors + Inverted_Bomb_Shop_Multi_Cave_Doors)
|
||||
blacksmith_doors = list(Inverted_Blacksmith_Single_Cave_Doors + Blacksmith_Multi_Cave_Doors)
|
||||
blacksmith_doors = list(Blacksmith_Single_Cave_Doors + Blacksmith_Multi_Cave_Doors)
|
||||
door_targets = list(Inverted_Single_Cave_Targets)
|
||||
|
||||
# randomize which desert ledge door is a must-exit
|
||||
@@ -1587,7 +1589,7 @@ def link_inverted_entrances(world, player):
|
||||
|
||||
# place remaining doors
|
||||
connect_doors(world, entrances, door_targets, player)
|
||||
elif world.shuffle == 'insanity':
|
||||
elif world.shuffle[player] == 'insanity':
|
||||
# beware ye who enter here
|
||||
|
||||
entrances = Inverted_LW_Entrances + Inverted_LW_Dungeon_Entrances + Inverted_DW_Entrances + Inverted_DW_Dungeon_Entrances + Inverted_Old_Man_Entrances + Old_Man_Entrances + ['Skull Woods Second Section Door (East)', 'Skull Woods Second Section Door (West)', 'Skull Woods First Section Door', 'Kakariko Well Cave', 'Bat Cave Cave', 'North Fairy Cave', 'Sanctuary', 'Lost Woods Hideout Stump', 'Lumberjack Tree Cave', 'Hyrule Castle Entrance (South)']
|
||||
@@ -1610,7 +1612,7 @@ def link_inverted_entrances(world, player):
|
||||
# bomb shop logic for.
|
||||
# Specifically we could potentially add: 'Dark Death Mountain Ledge (East)' and doors associated with pits
|
||||
bomb_shop_doors = list(Inverted_Bomb_Shop_Single_Cave_Doors + Inverted_Bomb_Shop_Multi_Cave_Doors + ['Turtle Rock Isolated Ledge Entrance', 'Hookshot Cave Back Entrance'])
|
||||
blacksmith_doors = list(Inverted_Blacksmith_Single_Cave_Doors + Blacksmith_Multi_Cave_Doors)
|
||||
blacksmith_doors = list(Blacksmith_Single_Cave_Doors + Blacksmith_Multi_Cave_Doors)
|
||||
door_targets = list(Inverted_Single_Cave_Targets)
|
||||
|
||||
random.shuffle(doors)
|
||||
@@ -1764,7 +1766,7 @@ def connect_simple(world, exitname, regionname, player):
|
||||
world.get_entrance(exitname, player).connect(world.get_region(regionname, player))
|
||||
|
||||
|
||||
def connect_entrance(world, entrancename, exitname, player):
|
||||
def connect_entrance(world, entrancename: str, exitname: str, player: int):
|
||||
entrance = world.get_entrance(entrancename, player)
|
||||
# check if we got an entrance or a region to connect to
|
||||
try:
|
||||
@@ -1831,7 +1833,7 @@ def scramble_holes(world, player):
|
||||
else:
|
||||
hole_targets.append(('Pyramid Exit', 'Pyramid'))
|
||||
|
||||
if world.mode == 'standard':
|
||||
if world.mode[player] == 'standard':
|
||||
# cannot move uncle cave
|
||||
connect_two_way(world, 'Hyrule Castle Secret Entrance Stairs', 'Hyrule Castle Secret Entrance Exit', player)
|
||||
connect_entrance(world, 'Hyrule Castle Secret Entrance Drop', 'Hyrule Castle Secret Entrance', player)
|
||||
@@ -1840,14 +1842,14 @@ def scramble_holes(world, player):
|
||||
hole_targets.append(('Hyrule Castle Secret Entrance Exit', 'Hyrule Castle Secret Entrance'))
|
||||
|
||||
# do not shuffle sanctuary into pyramid hole unless shuffle is crossed
|
||||
if world.shuffle == 'crossed':
|
||||
if world.shuffle[player] == 'crossed':
|
||||
hole_targets.append(('Sanctuary Exit', 'Sewer Drop'))
|
||||
if world.shuffle_ganon:
|
||||
random.shuffle(hole_targets)
|
||||
exit, target = hole_targets.pop()
|
||||
connect_two_way(world, 'Pyramid Entrance', exit, player)
|
||||
connect_entrance(world, 'Pyramid Hole', target, player)
|
||||
if world.shuffle != 'crossed':
|
||||
if world.shuffle[player] != 'crossed':
|
||||
hole_targets.append(('Sanctuary Exit', 'Sewer Drop'))
|
||||
|
||||
random.shuffle(hole_targets)
|
||||
@@ -1882,14 +1884,14 @@ def scramble_inverted_holes(world, player):
|
||||
hole_targets.append(('Hyrule Castle Secret Entrance Exit', 'Hyrule Castle Secret Entrance'))
|
||||
|
||||
# do not shuffle sanctuary into pyramid hole unless shuffle is crossed
|
||||
if world.shuffle == 'crossed':
|
||||
if world.shuffle[player] == 'crossed':
|
||||
hole_targets.append(('Sanctuary Exit', 'Sewer Drop'))
|
||||
if world.shuffle_ganon:
|
||||
random.shuffle(hole_targets)
|
||||
exit, target = hole_targets.pop()
|
||||
connect_two_way(world, 'Inverted Pyramid Entrance', exit, player)
|
||||
connect_entrance(world, 'Inverted Pyramid Hole', target, player)
|
||||
if world.shuffle != 'crossed':
|
||||
if world.shuffle[player] != 'crossed':
|
||||
hole_targets.append(('Sanctuary Exit', 'Sewer Drop'))
|
||||
|
||||
random.shuffle(hole_targets)
|
||||
@@ -1931,11 +1933,11 @@ def connect_mandatory_exits(world, entrances, caves, must_be_exits, player, dp_m
|
||||
if len(cave) == 2:
|
||||
entrance = entrances.pop()
|
||||
# ToDo Better solution, this is a hot fix. Do not connect both sides of trock/desert ledge only to each other
|
||||
if world.mode != 'inverted' and entrance == 'Dark Death Mountain Ledge (West)':
|
||||
if world.mode[player] != 'inverted' and entrance == 'Dark Death Mountain Ledge (West)':
|
||||
new_entrance = entrances.pop()
|
||||
entrances.append(entrance)
|
||||
entrance = new_entrance
|
||||
if world.mode == 'inverted' and entrance == dp_must_exit:
|
||||
if world.mode[player] == 'inverted' and entrance == dp_must_exit:
|
||||
new_entrance = entrances.pop()
|
||||
entrances.append(entrance)
|
||||
entrance = new_entrance
|
||||
@@ -2006,7 +2008,7 @@ def simple_shuffle_dungeons(world, player):
|
||||
dungeon_entrances = ['Eastern Palace', 'Tower of Hera', 'Thieves Town', 'Skull Woods Final Section', 'Palace of Darkness', 'Ice Palace', 'Misery Mire', 'Swamp Palace']
|
||||
dungeon_exits = ['Eastern Palace Exit', 'Tower of Hera Exit', 'Thieves Town Exit', 'Skull Woods Final Section Exit', 'Palace of Darkness Exit', 'Ice Palace Exit', 'Misery Mire Exit', 'Swamp Palace Exit']
|
||||
|
||||
if world.mode != 'inverted':
|
||||
if world.mode[player] != 'inverted':
|
||||
if not world.shuffle_ganon:
|
||||
connect_two_way(world, 'Ganons Tower', 'Ganons Tower Exit', player)
|
||||
else:
|
||||
@@ -2021,13 +2023,13 @@ def simple_shuffle_dungeons(world, player):
|
||||
|
||||
# mix up 4 door dungeons
|
||||
multi_dungeons = ['Desert', 'Turtle Rock']
|
||||
if world.mode == 'open' or (world.mode == 'inverted' and world.shuffle_ganon):
|
||||
if world.mode[player] == 'open' or (world.mode[player] == 'inverted' and world.shuffle_ganon):
|
||||
multi_dungeons.append('Hyrule Castle')
|
||||
random.shuffle(multi_dungeons)
|
||||
|
||||
dp_target = multi_dungeons[0]
|
||||
tr_target = multi_dungeons[1]
|
||||
if world.mode not in ['open', 'inverted'] or (world.mode == 'inverted' and world.shuffle_ganon is False):
|
||||
if world.mode[player] not in ['open', 'inverted'] or (world.mode[player] == 'inverted' and world.shuffle_ganon is False):
|
||||
# place hyrule castle as intended
|
||||
hc_target = 'Hyrule Castle'
|
||||
else:
|
||||
@@ -2035,7 +2037,7 @@ def simple_shuffle_dungeons(world, player):
|
||||
|
||||
# ToDo improve this?
|
||||
|
||||
if world.mode != 'inverted':
|
||||
if world.mode[player] != 'inverted':
|
||||
if hc_target == 'Hyrule Castle':
|
||||
connect_two_way(world, 'Hyrule Castle Entrance (South)', 'Hyrule Castle Exit (South)', player)
|
||||
connect_two_way(world, 'Hyrule Castle Entrance (East)', 'Hyrule Castle Exit (East)', player)
|
||||
@@ -2646,8 +2648,6 @@ Inverted_Bomb_Shop_Multi_Cave_Doors = ['Hyrule Castle Entrance (South)',
|
||||
'Desert Palace Entrance (West)',
|
||||
'Desert Palace Entrance (North)']
|
||||
|
||||
Inverted_Blacksmith_Multi_Cave_Doors = [] # same as non-inverted
|
||||
|
||||
Inverted_LW_Single_Cave_Doors = LW_Single_Cave_Doors + ['Inverted Big Bomb Shop']
|
||||
|
||||
Inverted_DW_Single_Cave_Doors = ['Bonk Fairy (Dark)',
|
||||
@@ -2715,39 +2715,8 @@ Inverted_Bomb_Shop_Single_Cave_Doors = ['Waterfall of Wishing',
|
||||
'Bumper Cave (Top)',
|
||||
'Mimic Cave',
|
||||
'Dark Lake Hylia Shop',
|
||||
'Inverted Links House']
|
||||
|
||||
Inverted_Blacksmith_Single_Cave_Doors = ['Blinds Hideout',
|
||||
'Lake Hylia Fairy',
|
||||
'Light Hype Fairy',
|
||||
'Desert Fairy',
|
||||
'Chicken House',
|
||||
'Aginahs Cave',
|
||||
'Sahasrahlas Hut',
|
||||
'Cave Shop (Lake Hylia)',
|
||||
'Blacksmiths Hut',
|
||||
'Sick Kids House',
|
||||
'Lost Woods Gamble',
|
||||
'Fortune Teller (Light)',
|
||||
'Snitch Lady (East)',
|
||||
'Snitch Lady (West)',
|
||||
'Bush Covered House',
|
||||
'Tavern (Front)',
|
||||
'Light World Bomb Hut',
|
||||
'Kakariko Shop',
|
||||
'Mini Moldorm Cave',
|
||||
'Long Fairy Cave',
|
||||
'Good Bee Cave',
|
||||
'20 Rupee Cave',
|
||||
'50 Rupee Cave',
|
||||
'Ice Rod Cave',
|
||||
'Library',
|
||||
'Potion Shop',
|
||||
'Dam',
|
||||
'Lumberjack House',
|
||||
'Lake Hylia Fortune Teller',
|
||||
'Kakariko Gamble Game',
|
||||
'Inverted Big Bomb Shop']
|
||||
'Inverted Links House',
|
||||
'Inverted Big Bomb Shop']
|
||||
|
||||
|
||||
Inverted_Single_Cave_Targets = ['Blinds Hideout',
|
||||
@@ -3020,7 +2989,7 @@ inverted_mandatory_connections = [('Lake Hylia Central Island Pier', 'Lake Hylia
|
||||
('Lake Hylia Island Pier', 'Lake Hylia Island'),
|
||||
('Lake Hylia Warp', 'Northeast Light World'),
|
||||
('Northeast Light World Warp', 'Light World'),
|
||||
('Zoras River', 'Zoras River'),
|
||||
('Zoras River', 'Zoras River'),
|
||||
('Kings Grave Outer Rocks', 'Kings Grave Area'),
|
||||
('Kings Grave Inner Rocks', 'Light World'),
|
||||
('Kakariko Well (top to bottom)', 'Kakariko Well (bottom)'),
|
||||
|
||||
Reference in New Issue
Block a user