Various shuffled links house fixes
This commit is contained in:
@@ -414,7 +414,7 @@ def choose_portals(world, player):
|
|||||||
info.sole_entrance = inaccessible_portals[0]
|
info.sole_entrance = inaccessible_portals[0]
|
||||||
info.required_passage.clear()
|
info.required_passage.clear()
|
||||||
else:
|
else:
|
||||||
raise Exception('please inspect this case')
|
raise Exception(f'No reachable entrances for {dungeon}')
|
||||||
if len(reachable_portals) == 1:
|
if len(reachable_portals) == 1:
|
||||||
info.sole_entrance = reachable_portals[0]
|
info.sole_entrance = reachable_portals[0]
|
||||||
info_map[dungeon] = info
|
info_map[dungeon] = info
|
||||||
@@ -521,7 +521,7 @@ def analyze_portals(world, player):
|
|||||||
info.sole_entrance = inaccessible_portals[0]
|
info.sole_entrance = inaccessible_portals[0]
|
||||||
info.required_passage.clear()
|
info.required_passage.clear()
|
||||||
else:
|
else:
|
||||||
raise Exception('please inspect this case')
|
raise Exception(f'No reachable entrances for {dungeon}')
|
||||||
if len(reachable_portals) == 1:
|
if len(reachable_portals) == 1:
|
||||||
info.sole_entrance = reachable_portals[0]
|
info.sole_entrance = reachable_portals[0]
|
||||||
if world.intensity[player] < 2 and world.doorShuffle[player] == 'basic' and dungeon == 'Desert Palace':
|
if world.intensity[player] < 2 and world.doorShuffle[player] == 'basic' and dungeon == 'Desert Palace':
|
||||||
|
|||||||
@@ -3186,7 +3186,13 @@ mandatory_connections = [('Links House S&Q', 'Links House'),
|
|||||||
('Graveyard Ledge Mirror Spot', 'Graveyard Ledge'),
|
('Graveyard Ledge Mirror Spot', 'Graveyard Ledge'),
|
||||||
('Ganon Drop', 'Bottom of Pyramid'),
|
('Ganon Drop', 'Bottom of Pyramid'),
|
||||||
('Pyramid Drop', 'East Dark World'),
|
('Pyramid Drop', 'East Dark World'),
|
||||||
('Maze Race Ledge Drop', 'Light World')
|
('Maze Race Ledge Drop', 'Light World'),
|
||||||
|
('Graveyard Ledge Drop', 'Light World'),
|
||||||
|
('Cave 45 Ledge Drop', 'Light World'),
|
||||||
|
('Checkerboard Ledge Drop', 'Light World'),
|
||||||
|
('Desert Ledge Drop', 'Light World'),
|
||||||
|
('Hyrule Castle Main Gate (North)', 'Light World'),
|
||||||
|
('Hyrule Castle Ledge Drop', 'Light World'),
|
||||||
]
|
]
|
||||||
|
|
||||||
inverted_mandatory_connections = [('Links House S&Q', 'Inverted Links House'),
|
inverted_mandatory_connections = [('Links House S&Q', 'Inverted Links House'),
|
||||||
|
|||||||
@@ -152,7 +152,7 @@ Same as above but both small keys and bigs keys of the dungeon are not allowed o
|
|||||||
* Added MSU Resume option
|
* Added MSU Resume option
|
||||||
* Ensured pots in TR Dark Ride need lamp
|
* Ensured pots in TR Dark Ride need lamp
|
||||||
* Fix for GT Crystal Conveyor not requiring Somaria/Bombs to get through
|
* Fix for GT Crystal Conveyor not requiring Somaria/Bombs to get through
|
||||||
* Fix for Links House being at Maze Race (did not generate)
|
* Fixes for Links House being at certain entrances (did not generate)
|
||||||
* 1.0.1.10
|
* 1.0.1.10
|
||||||
* More location count fixes
|
* More location count fixes
|
||||||
* Add major_only algorithm to code
|
* Add major_only algorithm to code
|
||||||
|
|||||||
12
Regions.py
12
Regions.py
@@ -74,9 +74,9 @@ def create_regions(world, player):
|
|||||||
create_cave_region(player, 'Lost Woods Hideout (bottom)', 'a drop\'s exit', None, ['Lost Woods Hideout Exit']),
|
create_cave_region(player, 'Lost Woods Hideout (bottom)', 'a drop\'s exit', None, ['Lost Woods Hideout Exit']),
|
||||||
create_cave_region(player, 'Lumberjack Tree (top)', 'a drop\'s exit', ['Lumberjack Tree'], ['Lumberjack Tree (top to bottom)']),
|
create_cave_region(player, 'Lumberjack Tree (top)', 'a drop\'s exit', ['Lumberjack Tree'], ['Lumberjack Tree (top to bottom)']),
|
||||||
create_cave_region(player, 'Lumberjack Tree (bottom)', 'a drop\'s exit', None, ['Lumberjack Tree Exit']),
|
create_cave_region(player, 'Lumberjack Tree (bottom)', 'a drop\'s exit', None, ['Lumberjack Tree Exit']),
|
||||||
create_lw_region(player, 'Cave 45 Ledge', None, ['Cave 45']),
|
create_lw_region(player, 'Cave 45 Ledge', None, ['Cave 45', 'Cave 45 Ledge Drop']),
|
||||||
create_cave_region(player, 'Cave 45', 'a cave with an item', ['Cave 45']),
|
create_cave_region(player, 'Cave 45', 'a cave with an item', ['Cave 45']),
|
||||||
create_lw_region(player, 'Graveyard Ledge', None, ['Graveyard Cave']),
|
create_lw_region(player, 'Graveyard Ledge', None, ['Graveyard Cave', 'Graveyard Ledge Drop']),
|
||||||
create_cave_region(player, 'Graveyard Cave', 'a cave with an item', ['Graveyard Cave']),
|
create_cave_region(player, 'Graveyard Cave', 'a cave with an item', ['Graveyard Cave']),
|
||||||
create_cave_region(player, 'Checkerboard Cave', 'a cave with an item', ['Checkerboard Cave']),
|
create_cave_region(player, 'Checkerboard Cave', 'a cave with an item', ['Checkerboard Cave']),
|
||||||
create_cave_region(player, 'Long Fairy Cave', 'a fairy fountain'),
|
create_cave_region(player, 'Long Fairy Cave', 'a fairy fountain'),
|
||||||
@@ -96,15 +96,15 @@ def create_regions(world, player):
|
|||||||
create_cave_region(player, 'Two Brothers House', 'a connector', None, ['Two Brothers House Exit (East)', 'Two Brothers House Exit (West)']),
|
create_cave_region(player, 'Two Brothers House', 'a connector', None, ['Two Brothers House Exit (East)', 'Two Brothers House Exit (West)']),
|
||||||
create_lw_region(player, 'Maze Race Ledge', ['Maze Race'], ['Two Brothers House (West)', 'Maze Race Ledge Drop'], 'a race against time'),
|
create_lw_region(player, 'Maze Race Ledge', ['Maze Race'], ['Two Brothers House (West)', 'Maze Race Ledge Drop'], 'a race against time'),
|
||||||
create_cave_region(player, '50 Rupee Cave', 'a cave with some cash'),
|
create_cave_region(player, '50 Rupee Cave', 'a cave with some cash'),
|
||||||
create_lw_region(player, 'Desert Ledge', ['Desert Ledge'], ['Desert Palace Entrance (North) Rocks', 'Desert Palace Entrance (West)'], 'the desert ledge'),
|
create_lw_region(player, 'Desert Ledge', ['Desert Ledge'], ['Desert Palace Entrance (North) Rocks', 'Desert Palace Entrance (West)', 'Desert Ledge Drop'], 'the desert ledge'),
|
||||||
create_lw_region(player, 'Desert Ledge (Northeast)', None, ['Checkerboard Cave']),
|
create_lw_region(player, 'Desert Ledge (Northeast)', None, ['Checkerboard Cave', 'Checkerboard Ledge Drop']),
|
||||||
create_lw_region(player, 'Desert Palace Stairs', None, ['Desert Palace Entrance (South)']),
|
create_lw_region(player, 'Desert Palace Stairs', None, ['Desert Palace Entrance (South)']),
|
||||||
create_lw_region(player, 'Desert Palace Lone Stairs', None, ['Desert Palace Stairs Drop', 'Desert Palace Entrance (East)'], 'a sandy vista'),
|
create_lw_region(player, 'Desert Palace Lone Stairs', None, ['Desert Palace Stairs Drop', 'Desert Palace Entrance (East)'], 'a sandy vista'),
|
||||||
create_lw_region(player, 'Desert Palace Entrance (North) Spot', None, ['Desert Palace Entrance (North)', 'Desert Ledge Return Rocks'], 'the desert ledge'),
|
create_lw_region(player, 'Desert Palace Entrance (North) Spot', None, ['Desert Palace Entrance (North)', 'Desert Ledge Return Rocks'], 'the desert ledge'),
|
||||||
create_lw_region(player, 'Master Sword Meadow', ['Master Sword Pedestal']),
|
create_lw_region(player, 'Master Sword Meadow', ['Master Sword Pedestal']),
|
||||||
create_cave_region(player, 'Lost Woods Gamble', 'a game of chance'),
|
create_cave_region(player, 'Lost Woods Gamble', 'a game of chance'),
|
||||||
create_lw_region(player, 'Hyrule Castle Courtyard', None, ['Hyrule Castle Secret Entrance Stairs', 'Hyrule Castle Entrance (South)']),
|
create_lw_region(player, 'Hyrule Castle Courtyard', None, ['Hyrule Castle Secret Entrance Stairs', 'Hyrule Castle Entrance (South)', 'Hyrule Castle Main Gate (North)']),
|
||||||
create_lw_region(player, 'Hyrule Castle Ledge', None, ['Hyrule Castle Entrance (East)', 'Hyrule Castle Entrance (West)', 'Agahnims Tower', 'Hyrule Castle Ledge Courtyard Drop'], 'the castle rampart'),
|
create_lw_region(player, 'Hyrule Castle Ledge', None, ['Hyrule Castle Entrance (East)', 'Hyrule Castle Entrance (West)', 'Agahnims Tower', 'Hyrule Castle Ledge Courtyard Drop', 'Hyrule Castle Ledge Drop'], 'the castle rampart'),
|
||||||
create_dungeon_region(player, 'Sewer Drop', 'a drop\'s exit', None, ['Sewer Drop']), # This exists only to be referenced for access checks
|
create_dungeon_region(player, 'Sewer Drop', 'a drop\'s exit', None, ['Sewer Drop']), # This exists only to be referenced for access checks
|
||||||
|
|
||||||
create_cave_region(player, 'Old Man Cave', 'a connector', ['Old Man'], ['Old Man Cave Exit (East)']),
|
create_cave_region(player, 'Old Man Cave', 'a connector', ['Old Man'], ['Old Man Cave Exit (East)']),
|
||||||
|
|||||||
3
Rules.py
3
Rules.py
@@ -817,6 +817,7 @@ def default_rules(world, player):
|
|||||||
set_rule(world.get_entrance('Palace of Darkness', player), lambda state: state.has_Pearl(player)) # kiki needs pearl
|
set_rule(world.get_entrance('Palace of Darkness', player), lambda state: state.has_Pearl(player)) # kiki needs pearl
|
||||||
set_rule(world.get_entrance('Hyrule Castle Ledge Mirror Spot', player), lambda state: state.has_Mirror(player))
|
set_rule(world.get_entrance('Hyrule Castle Ledge Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||||
set_rule(world.get_entrance('Hyrule Castle Main Gate', player), lambda state: state.has_Mirror(player))
|
set_rule(world.get_entrance('Hyrule Castle Main Gate', player), lambda state: state.has_Mirror(player))
|
||||||
|
set_rule(world.get_entrance('Hyrule Castle Main Gate (North)', player), lambda state: state.has_Mirror(player))
|
||||||
set_rule(world.get_entrance('Dark Lake Hylia Drop (East)', player), lambda state: (state.has_Pearl(player) and state.has('Flippers', player) or state.has_Mirror(player))) # Overworld Bunny Revival
|
set_rule(world.get_entrance('Dark Lake Hylia Drop (East)', player), lambda state: (state.has_Pearl(player) and state.has('Flippers', player) or state.has_Mirror(player))) # Overworld Bunny Revival
|
||||||
set_rule(world.get_location('Bombos Tablet', player), lambda state: state.has('Book of Mudora', player) and state.has_beam_sword(player))
|
set_rule(world.get_location('Bombos Tablet', player), lambda state: state.has('Book of Mudora', player) and state.has_beam_sword(player))
|
||||||
set_rule(world.get_entrance('Dark Lake Hylia Drop (South)', player), lambda state: state.has_Pearl(player) and state.has('Flippers', player)) # ToDo any fake flipper set up?
|
set_rule(world.get_entrance('Dark Lake Hylia Drop (South)', player), lambda state: state.has_Pearl(player) and state.has('Flippers', player)) # ToDo any fake flipper set up?
|
||||||
@@ -1245,6 +1246,8 @@ def standard_rules(world, player):
|
|||||||
entrance = world.get_portal(portal_name, player).door.entrance
|
entrance = world.get_portal(portal_name, player).door.entrance
|
||||||
set_rule(entrance, lambda state: state.has('Zelda Delivered', player))
|
set_rule(entrance, lambda state: state.has('Zelda Delivered', player))
|
||||||
set_rule(world.get_entrance('Sanctuary Exit', player), lambda state: state.has('Zelda Delivered', player))
|
set_rule(world.get_entrance('Sanctuary Exit', player), lambda state: state.has('Zelda Delivered', player))
|
||||||
|
set_rule(world.get_entrance('Hyrule Castle Ledge Drop', player), lambda state: state.has('Zelda Delivered', player))
|
||||||
|
set_rule(world.get_entrance('Hyrule Castle Main Gate (North)', player), lambda state: state.has('Zelda Delivered', player))
|
||||||
# zelda should be saved before agahnim is in play
|
# zelda should be saved before agahnim is in play
|
||||||
add_rule(world.get_location('Agahnim 1', player), lambda state: state.has('Zelda Delivered', player))
|
add_rule(world.get_location('Agahnim 1', player), lambda state: state.has('Zelda Delivered', player))
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user