From 7030ff01be58dc914c2e8f4928d9dce74a5cd806 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 | 4 +++- source/overworld/EntranceShuffle2.py | 8 ++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 5abff4a8..a2486806 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -109,7 +109,9 @@ These are now independent of retro mode and have three options: None, Random, an # Bug Fixes and Notes -* * 1.2.0.22u +* 1.2.0.22u + * ? + * ER: Minor fix for Link's House on DM in Insanity (escape cave should not be re-used) * Fixed logic issues: * Self-locking key not allowed in Sanctuary in standard (typo fixed) * More advanced bunny-walking logic in dungeons (multiple paths considred) diff --git a/source/overworld/EntranceShuffle2.py b/source/overworld/EntranceShuffle2.py index da71c661..9f7ee90a 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)