diff --git a/DoorShuffle.py b/DoorShuffle.py index c2085c50..3a07ff1a 100644 --- a/DoorShuffle.py +++ b/DoorShuffle.py @@ -2417,7 +2417,7 @@ interior_doors = [ ('Skull Pull Switch S', 'Skull Big Chest N'), ('Skull Left Drop ES', 'Skull Compass Room WS'), ('Skull 2 East Lobby NW', 'Skull Big Key SW'), - ('Skull Big Key WN', 'Skull Lone Pot EN'), + ('Skull Big Key EN', 'Skull Lone Pot WN'), ('Skull Small Hall WS', 'Skull 2 West Lobby ES'), ('Skull 2 West Lobby NW', 'Skull X Room SW'), ('Skull 3 Lobby EN', 'Skull East Bridge WN'), diff --git a/Doors.py b/Doors.py index c3cc969d..af585bad 100644 --- a/Doors.py +++ b/Doors.py @@ -541,8 +541,8 @@ def create_doors(world, player): create_door(player, 'Skull 2 East Lobby WS', Nrml).dir(We, 0x57, Bot, High).pos(4), create_door(player, 'Skull 2 East Lobby NW', Intr).dir(No, 0x57, Left, High).pos(1), create_door(player, 'Skull Big Key SW', Intr).dir(So, 0x57, Left, High).pos(1), - create_door(player, 'Skull Big Key WN', Intr).dir(We, 0x57, Top, High).pos(0), - create_door(player, 'Skull Lone Pot EN', Intr).dir(Ea, 0x57, Top, High).pos(0), + create_door(player, 'Skull Big Key EN', Intr).dir(Ea, 0x57, Top, High).pos(0), + create_door(player, 'Skull Lone Pot WN', Intr).dir(We, 0x57, Top, High).pos(0), create_door(player, 'Skull Small Hall ES', Nrml).dir(Ea, 0x56, Bot, High).pos(3), create_door(player, 'Skull Small Hall WS', Intr).dir(We, 0x56, Bot, High).pos(2), create_door(player, 'Skull 2 West Lobby S', Nrml).dir(So, 0x56, Left, High).pos(1).portal(Z, 0x00), diff --git a/KeyDoorShuffle.py b/KeyDoorShuffle.py index becf6bf8..1a4e1469 100644 --- a/KeyDoorShuffle.py +++ b/KeyDoorShuffle.py @@ -579,7 +579,7 @@ def progressive_ctr(new_counter, last_counter): def unique_child_door(child, key_counter): if child in key_counter.child_doors or child.dest in key_counter.child_doors: return False - if child in key_counter.open_doors or child.dest in key_counter.child_doors: + if child in key_counter.open_doors or child.dest in key_counter.open_doors: return False if child.bigKey and key_counter.big_key_opened: return False @@ -589,7 +589,7 @@ def unique_child_door(child, key_counter): def unique_child_door_2(child, key_counter): if child in key_counter.child_doors or child.dest in key_counter.child_doors: return False - if child in key_counter.open_doors or child.dest in key_counter.child_doors: + if child in key_counter.open_doors or child.dest in key_counter.open_doors: return False return True @@ -1463,7 +1463,10 @@ def create_odd_key_counter(door, parent_counter, key_layout, world, player): next_counter = find_next_counter(door, parent_counter, key_layout) odd_counter.free_locations = dict_difference(next_counter.free_locations, parent_counter.free_locations) odd_counter.key_only_locations = dict_difference(next_counter.key_only_locations, parent_counter.key_only_locations) - odd_counter.child_doors = dict_difference(next_counter.child_doors, parent_counter.child_doors) + odd_counter.child_doors = {} + for d in next_counter.child_doors: + if d not in parent_counter.child_doors and (d.type == DoorType.SpiralStairs or d.dest not in parent_counter.child_doors): + odd_counter.child_doors[d] = None odd_counter.other_locations = dict_difference(next_counter.other_locations, parent_counter.other_locations) odd_counter.important_locations = dict_difference(next_counter.important_locations, parent_counter.important_locations) for loc in odd_counter.other_locations: diff --git a/Regions.py b/Regions.py index 5d8a1769..87451e6b 100644 --- a/Regions.py +++ b/Regions.py @@ -472,8 +472,8 @@ def create_dungeon_regions(world, player): create_dungeon_region(player, 'Skull Compass Room', 'Skull Woods', ['Skull Woods - Compass Chest'], ['Skull Compass Room NE', 'Skull Compass Room ES', 'Skull Compass Room WS']), create_dungeon_region(player, 'Skull Left Drop', 'Skull Woods', None, ['Skull Left Drop ES']), create_dungeon_region(player, 'Skull 2 East Lobby', 'Skull Woods', None, ['Skull 2 East Lobby NW', 'Skull 2 East Lobby WS', 'Skull 2 East Lobby SW']), - create_dungeon_region(player, 'Skull Big Key', 'Skull Woods', ['Skull Woods - Big Key Chest'], ['Skull Big Key SW', 'Skull Big Key WN']), - create_dungeon_region(player, 'Skull Lone Pot', 'Skull Woods', None, ['Skull Lone Pot EN']), + create_dungeon_region(player, 'Skull Big Key', 'Skull Woods', ['Skull Woods - Big Key Chest'], ['Skull Big Key SW', 'Skull Big Key EN']), + create_dungeon_region(player, 'Skull Lone Pot', 'Skull Woods', None, ['Skull Lone Pot WN']), create_dungeon_region(player, 'Skull Small Hall', 'Skull Woods', None, ['Skull Small Hall ES', 'Skull Small Hall WS']), create_dungeon_region(player, 'Skull Back Drop', 'Skull Woods', None, ['Skull Back Drop Star Path', ]), create_dungeon_region(player, 'Skull 2 West Lobby', 'Skull Woods', ['Skull Woods - West Lobby Pot Key'], ['Skull 2 West Lobby ES', 'Skull 2 West Lobby NW', 'Skull 2 West Lobby S']),