Update find_accessible_entrances to work with lobby shuffle

This commit is contained in:
compiling
2020-11-02 11:22:03 +11:00
parent 31c0540cc8
commit 5442f05a79
2 changed files with 22 additions and 6 deletions

View File

@@ -12,7 +12,7 @@ from Dungeons import dungeon_regions, region_starts, standard_starts, split_regi
from Dungeons import dungeon_bigs, dungeon_keys, dungeon_hints from Dungeons import dungeon_bigs, dungeon_keys, dungeon_hints
from Items import ItemFactory from Items import ItemFactory
from RoomData import DoorKind, PairedDoor from RoomData import DoorKind, PairedDoor
from DungeonGenerator import ExplorationState, convert_regions, generate_dungeon, pre_validate, determine_required_paths from DungeonGenerator import ExplorationState, convert_regions, generate_dungeon, pre_validate, determine_required_paths, drop_entrances
from DungeonGenerator import create_dungeon_builders, split_dungeon_builder, simple_dungeon_builder, default_dungeon_entrances from DungeonGenerator import create_dungeon_builders, split_dungeon_builder, simple_dungeon_builder, default_dungeon_entrances
from DungeonGenerator import dungeon_portals, dungeon_drops from DungeonGenerator import dungeon_portals, dungeon_drops
from KeyDoorShuffle import analyze_dungeon, validate_vanilla_key_logic, build_key_layout, validate_key_layout from KeyDoorShuffle import analyze_dungeon, validate_vanilla_key_logic, build_key_layout, validate_key_layout
@@ -1570,12 +1570,12 @@ def find_inaccessible_regions(world, player):
def find_accessible_entrances(world, player, builder): def find_accessible_entrances(world, player, builder):
# todo: lobby shuffle entrances = [region.name for region in (portal.door.entrance.parent_region for portal in world.dungeon_portals[player]) if region.dungeon.name == builder.name]
if world.mode[player] == 'standard' and builder.name == 'Hyrule Castle': entrances.extend(drop_entrances[builder.name])
return ['Hyrule Castle Lobby']
entrances = default_dungeon_entrances[builder.name]
if world.mode[player] != 'inverted': if world.mode[player] == 'standard' and builder.name == 'Hyrule Castle':
start_regions = ['Hyrule Castle Courtyard']
elif world.mode[player] != 'inverted':
start_regions = ['Links House', 'Sanctuary'] start_regions = ['Links House', 'Sanctuary']
else: else:
start_regions = ['Inverted Links House', 'Inverted Dark Sanctuary'] start_regions = ['Inverted Links House', 'Inverted Dark Sanctuary']

View File

@@ -3795,6 +3795,22 @@ default_dungeon_entrances = {
'Ganons Tower': ['GT Lobby'] 'Ganons Tower': ['GT Lobby']
} }
drop_entrances = {
'Hyrule Castle': ['Sewers Rat Path'],
'Eastern Palace': [],
'Desert Palace': [],
'Tower of Hera': [],
'Agahnims Tower': [],
'Palace of Darkness': [],
'Swamp Palace': [],
'Skull Woods': ['Skull Pinball', 'Skull Left Drop', 'Skull Pot Circle', 'Skull Back Drop'],
'Thieves Town': [],
'Ice Palace': [],
'Misery Mire': [],
'Turtle Rock': [],
'Ganons Tower': []
}
# todo: calculate these for ER - the multi entrance dungeons anyway # todo: calculate these for ER - the multi entrance dungeons anyway
dungeon_dead_end_allowance = { dungeon_dead_end_allowance = {