OoT: ER fixes
Don't allow beatable only to influence priority placements Shuffle spawns after warp songs to prevent spawn points going to Desert Colossus Prevent child spawn from priority placing at Colossus if overworld ER is off
This commit is contained in:
parent
f8009e4b84
commit
8d260708d3
|
@ -365,15 +365,15 @@ def shuffle_random_entrances(ootworld):
|
|||
|
||||
if ootworld.owl_drops:
|
||||
one_way_entrance_pools['OwlDrop'] = ootworld.get_shufflable_entrances(type='OwlDrop')
|
||||
if ootworld.spawn_positions:
|
||||
one_way_entrance_pools['Spawn'] = ootworld.get_shufflable_entrances(type='Spawn')
|
||||
if ootworld.warp_songs:
|
||||
one_way_entrance_pools['WarpSong'] = ootworld.get_shufflable_entrances(type='WarpSong')
|
||||
if world.accessibility[player].current_key != 'minimal' and ootworld.logic_rules == 'glitchless':
|
||||
if ootworld.logic_rules == 'glitchless':
|
||||
one_way_priorities['Bolero'] = priority_entrance_table['Bolero']
|
||||
one_way_priorities['Nocturne'] = priority_entrance_table['Nocturne']
|
||||
if not ootworld.shuffle_dungeon_entrances and not ootworld.shuffle_overworld_entrances:
|
||||
one_way_priorities['Requiem'] = priority_entrance_table['Requiem']
|
||||
if ootworld.spawn_positions:
|
||||
one_way_entrance_pools['Spawn'] = ootworld.get_shufflable_entrances(type='Spawn')
|
||||
|
||||
if ootworld.shuffle_dungeon_entrances:
|
||||
entrance_pools['Dungeon'] = ootworld.get_shufflable_entrances(type='Dungeon', only_primary=True)
|
||||
|
@ -577,11 +577,16 @@ def place_one_way_priority_entrance(ootworld, priority_name, allowed_regions, al
|
|||
for entrance in avail_pool:
|
||||
if entrance.replaces:
|
||||
continue
|
||||
# With mask hints, child needs to be able to access the gossip stone.
|
||||
if entrance.parent_region.name == 'Adult Spawn' and (priority_name != 'Nocturne' or ootworld.hints == 'mask'):
|
||||
continue
|
||||
# With dungeons unshuffled, adult needs to be able to access Shadow Temple.
|
||||
if not ootworld.shuffle_dungeon_entrances and priority_name == 'Nocturne':
|
||||
if entrance.type != 'WarpSong' and entrance.parent_region.name != 'Adult Spawn':
|
||||
continue
|
||||
# With overworld unshuffled, child can't spawn at Desert Colossus
|
||||
if not ootworld.shuffle_overworld_entrances and priority_name == 'Requiem' and entrance.parent_region.name == 'Child Spawn':
|
||||
continue
|
||||
for target in one_way_target_entrance_pools[entrance.type]:
|
||||
if target.connected_region and target.connected_region.name in allowed_regions:
|
||||
if replace_entrance(ootworld, entrance, target, rollbacks, locations_to_ensure_reachable, all_state, none_state):
|
||||
|
|
Loading…
Reference in New Issue