From ff1afed0726230e663af7261ecfc61cf97eda136 Mon Sep 17 00:00:00 2001 From: jdunn596 <82658083+jdunn596@users.noreply.github.com> Date: Sun, 17 Aug 2025 22:34:17 -0400 Subject: [PATCH 1/5] exclude hint areas with unshuffled checks --- Hints.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Hints.py b/Hints.py index 201be11eb8..b9b980a2a4 100644 --- a/Hints.py +++ b/Hints.py @@ -1148,7 +1148,8 @@ def get_important_check_hint(spoiler: Spoiler, world: World, checked: set[str]) for location in world.get_filled_locations(): if (HintArea.at(location).text(world.settings.clearer_hints) not in top_level_locations and (HintArea.at(location).text(world.settings.clearer_hints) + ' Important Check') not in checked - and HintArea.at(location) != HintArea.ROOT): + and HintArea.at(location) != HintArea.ROOT + and not location.locked): # prevent areas with unshuffled checks from being hinted top_level_locations.append(HintArea.at(location).text(world.settings.clearer_hints)) hint_loc = random.choice(top_level_locations) item_count = 0 From 39b67603b04895f722a4e9efc9038490adc6dcb0 Mon Sep 17 00:00:00 2001 From: jdunn596 <82658083+jdunn596@users.noreply.github.com> Date: Mon, 18 Aug 2025 06:17:26 -0400 Subject: [PATCH 2/5] prevent pre-completed dungeons from being hinted --- Hints.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Hints.py b/Hints.py index b9b980a2a4..0049d71c3c 100644 --- a/Hints.py +++ b/Hints.py @@ -1145,10 +1145,12 @@ def get_junk_hint(spoiler: Spoiler, world: World, checked: set[str]) -> HintRetu def get_important_check_hint(spoiler: Spoiler, world: World, checked: set[str]) -> HintReturn: top_level_locations = [] + empty_dungeons = [dungeon for dungeon in world.precompleted_dungeons if world.precompleted_dungeons[dungeon]] for location in world.get_filled_locations(): if (HintArea.at(location).text(world.settings.clearer_hints) not in top_level_locations and (HintArea.at(location).text(world.settings.clearer_hints) + ' Important Check') not in checked and HintArea.at(location) != HintArea.ROOT + and HintArea.at(location).dungeon_name not in empty_dungeons # prevent pre-completed dungeons from being hinted and not location.locked): # prevent areas with unshuffled checks from being hinted top_level_locations.append(HintArea.at(location).text(world.settings.clearer_hints)) hint_loc = random.choice(top_level_locations) From 2d58c76e2b1a6ce0c56221cb5e7c91f84d422dcf Mon Sep 17 00:00:00 2001 From: jdunn596 <82658083+jdunn596@users.noreply.github.com> Date: Sun, 24 Aug 2025 09:38:56 -0400 Subject: [PATCH 3/5] allow filler hints if no available locations --- Hints.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Hints.py b/Hints.py index 0049d71c3c..26b03eed47 100644 --- a/Hints.py +++ b/Hints.py @@ -1153,14 +1153,14 @@ def get_important_check_hint(spoiler: Spoiler, world: World, checked: set[str]) and HintArea.at(location).dungeon_name not in empty_dungeons # prevent pre-completed dungeons from being hinted and not location.locked): # prevent areas with unshuffled checks from being hinted top_level_locations.append(HintArea.at(location).text(world.settings.clearer_hints)) + if not top_level_locations: + return None hint_loc = random.choice(top_level_locations) item_count = 0 for location in world.get_filled_locations(): region = HintArea.at(location).text(world.settings.clearer_hints) if region == hint_loc: if (location.item.majoritem - # exclude locked items - and not location.locked # exclude triforce pieces as it defeats the idea of a triforce hunt and not location.item.name == 'Triforce Piece' and not (location.name == 'Song from Impa' and 'Zeldas Letter' in world.settings.starting_items and 'Zeldas Letter' not in world.settings.shuffle_child_trade) From bca868ce1d01ae81b74f6fa920d2246685905e9f Mon Sep 17 00:00:00 2001 From: jdunn596 <82658083+jdunn596@users.noreply.github.com> Date: Sun, 24 Aug 2025 10:08:59 -0400 Subject: [PATCH 4/5] remove doubled color tag --- Hints.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Hints.py b/Hints.py index 26b03eed47..6bf7ed896e 100644 --- a/Hints.py +++ b/Hints.py @@ -1191,7 +1191,7 @@ def get_important_check_hint(spoiler: Spoiler, world: World, checked: set[str]) else: numcolor = 'Green' - return GossipText('#%s# has #%d# major item%s.' % (hint_loc, item_count, "s" if item_count != 1 else ""), ['Green', numcolor]), None + return GossipText('%s has #%d# major item%s.' % (hint_loc, item_count, "s" if item_count != 1 else ""), ['Green', numcolor]), None hint_func: dict[str, HintFunc | BarrenFunc] = { From df4b1b4839342ca2a34c64850b617211bc5514c2 Mon Sep 17 00:00:00 2001 From: jdunn596 <82658083+jdunn596@users.noreply.github.com> Date: Sun, 24 Aug 2025 13:42:27 -0400 Subject: [PATCH 5/5] code review --- Hints.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Hints.py b/Hints.py index 6bf7ed896e..45014fcc6a 100644 --- a/Hints.py +++ b/Hints.py @@ -1161,6 +1161,8 @@ def get_important_check_hint(spoiler: Spoiler, world: World, checked: set[str]) region = HintArea.at(location).text(world.settings.clearer_hints) if region == hint_loc: if (location.item.majoritem + # exclude locked items + and not location.locked # exclude triforce pieces as it defeats the idea of a triforce hunt and not location.item.name == 'Triforce Piece' and not (location.name == 'Song from Impa' and 'Zeldas Letter' in world.settings.starting_items and 'Zeldas Letter' not in world.settings.shuffle_child_trade)