From 876e6e09d7ae3b10d05493e87e7630cf0de63b58 Mon Sep 17 00:00:00 2001 From: aerinon Date: Wed, 15 Nov 2023 13:25:13 -0700 Subject: [PATCH] fix(ER): Links house on Dm won't allow a cave to be used twice anymore --- RELEASENOTES.md | 1 + source/overworld/EntranceShuffle2.py | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 027e22cf..54bb3a48 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -146,6 +146,7 @@ These are now independent of retro mode and have three options: None, Random, an * Fixed logic issues: * Self-locking key not allowed in Sanctuary in standard (typo fixed) * More advanced bunny-walking logic in dungeons (multiple paths considered) + * ER: Minor fix for Link's House on DM in Insanity (escape cave should not be re-used) * Various enemy bans * More Gibos near kiki and Old Man * Bumper obstacles diff --git a/source/overworld/EntranceShuffle2.py b/source/overworld/EntranceShuffle2.py index 86bac34e..c4fcc771 100644 --- a/source/overworld/EntranceShuffle2.py +++ b/source/overworld/EntranceShuffle2.py @@ -497,10 +497,14 @@ def do_links_house(entrances, exits, avail, cross_world): entrances.remove(chosen_dm_escape) entrances.remove(chosen_landing) else: - connect_entrance(chosen_dm_escape, chosen_cave.pop(0), avail) + chosen_cave_first = chosen_cave.pop(0) + connect_entrance(chosen_dm_escape, chosen_cave_first, avail) connect_exit(chosen_cave.pop(), chosen_landing, avail) entrances.remove(chosen_dm_escape) + avail.decoupled_exits.remove(chosen_cave_first) avail.decoupled_entrances.remove(chosen_landing) + # chosen cave has already been removed from exits + exits.add(chosen_cave_first) # this needs to be added back in if len(chosen_cave): exits.update([x for x in chosen_cave]) exits.update([x for item in multi_exit_caves for x in item]) @@ -1094,7 +1098,7 @@ def connect_entrance(entrancename, exit_name, avail): def connect_exit(exit_name, entrancename, avail): - world, player = avail.world, avail. player + world, player = avail.world, avail.player entrance = world.get_entrance(entrancename, player) exit = world.get_entrance(exit_name, player)