From 8cac03f4a3d2b0684440b7882e0db8ddfd4feb4d Mon Sep 17 00:00:00 2001 From: aerinon Date: Fri, 7 Feb 2020 08:45:21 -0700 Subject: [PATCH] Minor bug fixes --E-W fixed on interior door in Aga Tower --Crossed+Enemizer bug with GT minibosses --Vanilla bug with pre-open stonewall flag --- DoorShuffle.py | 4 ++-- Doors.py | 4 ++-- KeyDoorShuffle.py | 2 +- Regions.py | 4 ++-- Rom.py | 15 ++++++++------- 5 files changed, 15 insertions(+), 14 deletions(-) diff --git a/DoorShuffle.py b/DoorShuffle.py index c8072586..d7ab5e26 100644 --- a/DoorShuffle.py +++ b/DoorShuffle.py @@ -1642,7 +1642,7 @@ interior_doors = [ ('Tower Dark Pits EN', 'Tower Dark Archers WN'), ('Tower Red Spears WN', 'Tower Red Guards EN'), ('Tower Red Guards SW', 'Tower Circle of Pots NW'), - ('Tower Circle of Pots WS', 'Tower Pacifist Run ES'), + ('Tower Circle of Pots ES', 'Tower Pacifist Run WS'), ('Tower Push Statue WS', 'Tower Catwalk ES'), ('Tower Antechamber NW', 'Tower Altar SW'), ('PoD Lobby N', 'PoD Middle Cage S'), @@ -1812,7 +1812,7 @@ default_small_key_doors = { 'Tower Room 03 Up Stairs', ('Tower Dark Maze ES', 'Tower Dark Chargers WS'), 'Tower Dark Archers Up Stairs', - ('Tower Circle of Pots WS', 'Tower Pacifist Run ES'), + ('Tower Circle of Pots ES', 'Tower Pacifist Run WS'), ], 'Palace of Darkness': [ ('PoD Middle Cage N', 'PoD Pit Room S'), diff --git a/Doors.py b/Doors.py index b57f9a2c..da15bce2 100644 --- a/Doors.py +++ b/Doors.py @@ -290,8 +290,8 @@ def create_doors(world, player): create_door(player, 'Tower Red Guards EN', Intr).dir(Ea, 0xb0, Top, High).pos(1), create_door(player, 'Tower Red Guards SW', Intr).dir(So, 0xb0, Left, High).pos(0), create_door(player, 'Tower Circle of Pots NW', Intr).dir(No, 0xb0, Left, High).pos(0), - create_door(player, 'Tower Circle of Pots WS', Intr).dir(We, 0xb0, Bot, High).small_key().pos(2), - create_door(player, 'Tower Pacifist Run ES', Intr).dir(Ea, 0xb0, Bot, High).small_key().pos(2), + create_door(player, 'Tower Circle of Pots ES', Intr).dir(Ea, 0xb0, Bot, High).small_key().pos(2), + create_door(player, 'Tower Pacifist Run WS', Intr).dir(We, 0xb0, Bot, High).small_key().pos(2), create_door(player, 'Tower Pacifist Run Up Stairs', Sprl).dir(Up, 0xb0, 2, LTH).ss(X, 0x33, 0x8c, True, True), create_door(player, 'Tower Push Statue Down Stairs', Sprl).dir(Dn, 0x40, 0, HTL).ss(X, 0x12, 0xa0, True, True).kill(), create_door(player, 'Tower Push Statue WS', Intr).dir(We, 0x40, Bot, Low).pos(0), diff --git a/KeyDoorShuffle.py b/KeyDoorShuffle.py index 337204c5..e39015dd 100644 --- a/KeyDoorShuffle.py +++ b/KeyDoorShuffle.py @@ -1123,7 +1123,7 @@ def val_tower(key_logic, world, player): val_rule(key_logic.door_rules['Tower Room 03 Up Stairs'], 1) val_rule(key_logic.door_rules['Tower Dark Maze ES'], 2) val_rule(key_logic.door_rules['Tower Dark Archers Up Stairs'], 3) - val_rule(key_logic.door_rules['Tower Circle of Pots WS'], 4) + val_rule(key_logic.door_rules['Tower Circle of Pots ES'], 4) def val_pod(key_logic, world, player): diff --git a/Regions.py b/Regions.py index 42cd523a..47ed025b 100644 --- a/Regions.py +++ b/Regions.py @@ -331,8 +331,8 @@ def create_dungeon_regions(world, player): create_dungeon_region(player, 'Tower Dark Archers', 'Castle Tower', ['Castle Tower - Dark Archer Key Drop'], ['Tower Dark Archers WN', 'Tower Dark Archers Up Stairs']), create_dungeon_region(player, 'Tower Red Spears', 'Castle Tower', None, ['Tower Red Spears Down Stairs', 'Tower Red Spears WN']), create_dungeon_region(player, 'Tower Red Guards', 'Castle Tower', None, ['Tower Red Guards EN', 'Tower Red Guards SW']), - create_dungeon_region(player, 'Tower Circle of Pots', 'Castle Tower', ['Castle Tower - Circle of Pots Key Drop'], ['Tower Circle of Pots NW', 'Tower Circle of Pots WS']), - create_dungeon_region(player, 'Tower Pacifist Run', 'Castle Tower', None, ['Tower Pacifist Run ES', 'Tower Pacifist Run Up Stairs']), + create_dungeon_region(player, 'Tower Circle of Pots', 'Castle Tower', ['Castle Tower - Circle of Pots Key Drop'], ['Tower Circle of Pots NW', 'Tower Circle of Pots ES']), + create_dungeon_region(player, 'Tower Pacifist Run', 'Castle Tower', None, ['Tower Pacifist Run WS', 'Tower Pacifist Run Up Stairs']), create_dungeon_region(player, 'Tower Push Statue', 'Castle Tower', None, ['Tower Push Statue Down Stairs', 'Tower Push Statue WS']), create_dungeon_region(player, 'Tower Catwalk', 'Castle Tower', None, ['Tower Catwalk ES', 'Tower Catwalk North Stairs']), create_dungeon_region(player, 'Tower Antechamber', 'Castle Tower', None, ['Tower Antechamber South Stairs', 'Tower Antechamber NW']), diff --git a/Rom.py b/Rom.py index dd86f846..e4d4ed40 100644 --- a/Rom.py +++ b/Rom.py @@ -241,9 +241,9 @@ def patch_enemizer(world, player, rom, baserom_path, enemizercli, shufflepots, r 'IcePalace': world.get_dungeon("Ice Palace", player).boss.enemizer_name, 'MiseryMire': world.get_dungeon("Misery Mire", player).boss.enemizer_name, 'TurtleRock': world.get_dungeon("Turtle Rock", player).boss.enemizer_name, - 'GanonsTower1': world.get_dungeon('Ganons Tower', player).bosses['bottom'].enemizer_name, - 'GanonsTower2': world.get_dungeon('Ganons Tower', player).bosses['middle'].enemizer_name, - 'GanonsTower3': world.get_dungeon('Ganons Tower', player).bosses['top'].enemizer_name, + 'GanonsTower1': [x for x in world.dungeons if x.player == player and 'bottom' in x.bosses.keys()][0].bosses['bottom'].enemizer_name, + 'GanonsTower2': [x for x in world.dungeons if x.player == player and 'middle' in x.bosses.keys()][0].bosses['middle'].enemizer_name, + 'GanonsTower3': [x for x in world.dungeons if x.player == player and 'top' in x.bosses.keys()][0].bosses['top'].enemizer_name, 'GanonsTower4': 'Agahnim2', 'Ganon': 'Ganon', } @@ -612,10 +612,11 @@ def patch_rom(world, rom, player, team, enemized): for paired_door in world.paired_doors[player]: rom.write_bytes(paired_door.address_a(world, player), paired_door.rom_data_a(world, player)) rom.write_bytes(paired_door.address_b(world, player), paired_door.rom_data_b(world, player)) - for builder in world.dungeon_layouts[player].values(): - if builder.pre_open_stonewall: - if builder.pre_open_stonewall.name == 'Desert Wall Slide NW': - dr_flags |= DROptions.Open_Desert_Wall + if world.doorShuffle[player] != 'vanilla': + for builder in world.dungeon_layouts[player].values(): + if builder.pre_open_stonewall: + if builder.pre_open_stonewall.name == 'Desert Wall Slide NW': + dr_flags |= DROptions.Open_Desert_Wall rom.write_byte(0x139006, dr_flags.value) # fix skull woods exit, if not fixed during exit patching