Allow multiple hints of the same item, only disallow if this would result in two of the exact same hints eg. allow hints for two separate bows on two different islands, but disallow hints for two separate bows on the same island
@@ -1005,7 +1005,7 @@ def update_savage_labyrinth_hint_tablet(self):
def update_randomly_chosen_hints(self):
hints = []
- unique_items_given_hint_for = []
+ unique_hints = []
possible_item_locations = list(self.logic.done_item_locations.keys())
self.rng.shuffle(possible_item_locations)
num_fishman_hints = 15
@@ -1038,9 +1038,6 @@ def update_randomly_chosen_hints(self):
continue
item_name = get_hint_item_name(item_name)
- if item_name in unique_items_given_hint_for:
- # Don't give hints for 2 instances of the same item (e.g. empty bottle, progressive bow, etc).
- continue
if item_name == "Bait Bag":
# Can't access fishmen hints until you already have the bait bag
continue
@@ -1054,8 +1051,8 @@ def update_randomly_chosen_hints(self):
is_savage = "Savage Labyrinth" in self.logic.item_locations[location_name]["Types"]
if zone_name in self.dungeon_and_cave_island_locations and (is_dungeon or is_puzzle_cave or is_combat_cave or is_savage):
# If the location is in a dungeon or cave, use the hint for whatever island the dungeon/cave is located on.
- island_name = self.dungeon_and_cave_island_locations[zone_name]
- island_hint_name = self.island_name_hints[island_name]
+ zone_name = self.dungeon_and_cave_island_locations[zone_name]
+ island_hint_name = self.island_name_hints[zone_name]
elif zone_name in self.island_name_hints:
island_hint_name = self.island_name_hints[zone_name]
elif zone_name in self.logic.DUNGEON_NAMES.values():
@@ -1063,11 +1060,14 @@ def update_randomly_chosen_hints(self):
else:
continue
+ if (item_name, zone_name) in unique_hints: # Don't give hint for same type of item in same zone
+ continue
+
item_hint_name = self.progress_item_hints[item_name]
hints.append((item_hint_name, island_hint_name))
- unique_items_given_hint_for.append(item_name)
+ unique_hints.append((item_name, zone_name))
update_big_octo_great_fairy_item_name_hint(self, hints[0])
update_fishmen_hints(self, hints[1:])
