Key logic error with odd_counter and child doors
Fix the Lone Pot doors (E/W) swapped
This commit is contained in:
@@ -2417,7 +2417,7 @@ interior_doors = [
|
|||||||
('Skull Pull Switch S', 'Skull Big Chest N'),
|
('Skull Pull Switch S', 'Skull Big Chest N'),
|
||||||
('Skull Left Drop ES', 'Skull Compass Room WS'),
|
('Skull Left Drop ES', 'Skull Compass Room WS'),
|
||||||
('Skull 2 East Lobby NW', 'Skull Big Key SW'),
|
('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 Small Hall WS', 'Skull 2 West Lobby ES'),
|
||||||
('Skull 2 West Lobby NW', 'Skull X Room SW'),
|
('Skull 2 West Lobby NW', 'Skull X Room SW'),
|
||||||
('Skull 3 Lobby EN', 'Skull East Bridge WN'),
|
('Skull 3 Lobby EN', 'Skull East Bridge WN'),
|
||||||
|
|||||||
4
Doors.py
4
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 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 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 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 Big Key EN', Intr).dir(Ea, 0x57, Top, High).pos(0),
|
||||||
create_door(player, 'Skull Lone Pot 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 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 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),
|
create_door(player, 'Skull 2 West Lobby S', Nrml).dir(So, 0x56, Left, High).pos(1).portal(Z, 0x00),
|
||||||
|
|||||||
@@ -579,7 +579,7 @@ def progressive_ctr(new_counter, last_counter):
|
|||||||
def unique_child_door(child, key_counter):
|
def unique_child_door(child, key_counter):
|
||||||
if child in key_counter.child_doors or child.dest in key_counter.child_doors:
|
if child in key_counter.child_doors or child.dest in key_counter.child_doors:
|
||||||
return False
|
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 False
|
||||||
if child.bigKey and key_counter.big_key_opened:
|
if child.bigKey and key_counter.big_key_opened:
|
||||||
return False
|
return False
|
||||||
@@ -589,7 +589,7 @@ def unique_child_door(child, key_counter):
|
|||||||
def unique_child_door_2(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:
|
if child in key_counter.child_doors or child.dest in key_counter.child_doors:
|
||||||
return False
|
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 False
|
||||||
return True
|
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)
|
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.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.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.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)
|
odd_counter.important_locations = dict_difference(next_counter.important_locations, parent_counter.important_locations)
|
||||||
for loc in odd_counter.other_locations:
|
for loc in odd_counter.other_locations:
|
||||||
|
|||||||
@@ -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 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 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 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 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 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 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 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']),
|
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']),
|
||||||
|
|||||||
Reference in New Issue
Block a user