Improvements to hints
Removed irrelevant hints in Lite/Lean ER Added Links House hint in ER
This commit is contained in:
101
Rom.py
101
Rom.py
@@ -2161,14 +2161,14 @@ def write_strings(rom, world, player, team):
|
|||||||
else:
|
else:
|
||||||
hint_count = 4
|
hint_count = 4
|
||||||
for entrance in all_entrances:
|
for entrance in all_entrances:
|
||||||
if entrance.name in entrances_to_hint:
|
if hint_count > 0:
|
||||||
if hint_count > 0:
|
if entrance.name in entrances_to_hint:
|
||||||
this_hint = entrances_to_hint[entrance.name] + ' leads to ' + hint_text(entrance.connected_region) + '.'
|
this_hint = entrances_to_hint[entrance.name] + ' leads to ' + hint_text(entrance.connected_region) + '.'
|
||||||
tt[hint_locations.pop(0)] = this_hint
|
tt[hint_locations.pop(0)] = this_hint
|
||||||
entrances_to_hint.pop(entrance.name)
|
entrances_to_hint.pop(entrance.name)
|
||||||
hint_count -= 1
|
hint_count -= 1
|
||||||
else:
|
else:
|
||||||
break
|
break
|
||||||
|
|
||||||
#Next we handle hints for randomly selected other entrances, curating the selection intelligently based on shuffle.
|
#Next we handle hints for randomly selected other entrances, curating the selection intelligently based on shuffle.
|
||||||
if world.shuffle[player] not in ['simple', 'restricted', 'restricted_legacy']:
|
if world.shuffle[player] not in ['simple', 'restricted', 'restricted_legacy']:
|
||||||
@@ -2180,9 +2180,15 @@ def write_strings(rom, world, player, team):
|
|||||||
entrances_to_hint.update({'Agahnims Tower': 'The sealed castle door'})
|
entrances_to_hint.update({'Agahnims Tower': 'The sealed castle door'})
|
||||||
elif world.shuffle[player] == 'restricted':
|
elif world.shuffle[player] == 'restricted':
|
||||||
entrances_to_hint.update(ConnectorEntrances)
|
entrances_to_hint.update(ConnectorEntrances)
|
||||||
entrances_to_hint.update(OtherEntrances)
|
entrances_to_hint.update(ItemEntrances)
|
||||||
|
if world.shuffle[player] not in ['lite', 'lean']:
|
||||||
|
entrances_to_hint.update(ShopEntrances)
|
||||||
|
entrances_to_hint.update(OtherEntrances)
|
||||||
|
elif world.shopsanity[player]:
|
||||||
|
entrances_to_hint.update(ShopEntrances)
|
||||||
|
if world.shufflelinks[player] and world.shuffle[player] not in ['vanilla', 'dungeonssimple', 'dungeonsfull']:
|
||||||
|
entrances_to_hint.update({'Links House': 'The hero\'s old residence'})
|
||||||
entrances_to_hint.update({'Dark Sanctuary Hint': 'The dark sanctuary cave'})
|
entrances_to_hint.update({'Dark Sanctuary Hint': 'The dark sanctuary cave'})
|
||||||
entrances_to_hint.update({'Big Bomb Shop': 'The old bomb shop'})
|
|
||||||
if world.shuffle[player] in ['insanity', 'madness_legacy', 'insanity_legacy']:
|
if world.shuffle[player] in ['insanity', 'madness_legacy', 'insanity_legacy']:
|
||||||
entrances_to_hint.update(InsanityEntrances)
|
entrances_to_hint.update(InsanityEntrances)
|
||||||
if world.shuffle_ganon:
|
if world.shuffle_ganon:
|
||||||
@@ -2254,17 +2260,15 @@ def write_strings(rom, world, player, team):
|
|||||||
else:
|
else:
|
||||||
this_hint = location + ' contains ' + hint_text(world.get_location(location, player).item) + '.'
|
this_hint = location + ' contains ' + hint_text(world.get_location(location, player).item) + '.'
|
||||||
tt[hint_locations.pop(0)] = this_hint
|
tt[hint_locations.pop(0)] = this_hint
|
||||||
|
|
||||||
# Adding a guaranteed hint for the Flute in overworld shuffle.
|
# Lastly we write hints to show where certain interesting items are. It is done the way it is to re-use the silver code and also to give one hint per each type of item regardless of how many exist. This supports many settings well.
|
||||||
|
items_to_hint = RelevantItems.copy()
|
||||||
if world.owShuffle[player] != 'vanilla' or world.owMixed[player]:
|
if world.owShuffle[player] != 'vanilla' or world.owMixed[player]:
|
||||||
|
# Adding a guaranteed hint for the Flute in overworld shuffle.
|
||||||
this_location = world.find_items_not_key_only('Ocarina', player)
|
this_location = world.find_items_not_key_only('Ocarina', player)
|
||||||
if this_location:
|
if this_location:
|
||||||
this_hint = this_location[0].item.hint_text + ' can be found ' + hint_text(this_location[0]) + '.'
|
this_hint = this_location[0].item.hint_text + ' can be found ' + hint_text(this_location[0]) + '.'
|
||||||
tt[hint_locations.pop(0)] = this_hint
|
tt[hint_locations.pop(0)] = this_hint
|
||||||
|
|
||||||
# Lastly we write hints to show where certain interesting items are. It is done the way it is to re-use the silver code and also to give one hint per each type of item regardless of how many exist. This supports many settings well.
|
|
||||||
items_to_hint = RelevantItems.copy()
|
|
||||||
if world.owShuffle[player] != 'vanilla' or world.owMixed[player]:
|
|
||||||
items_to_hint.remove('Ocarina')
|
items_to_hint.remove('Ocarina')
|
||||||
if world.keyshuffle[player]:
|
if world.keyshuffle[player]:
|
||||||
items_to_hint.extend(SmallKeys)
|
items_to_hint.extend(SmallKeys)
|
||||||
@@ -2273,7 +2277,7 @@ def write_strings(rom, world, player, team):
|
|||||||
random.shuffle(items_to_hint)
|
random.shuffle(items_to_hint)
|
||||||
hint_count = 5 if world.shuffle[player] not in ['vanilla', 'dungeonssimple', 'dungeonsfull'] else 8
|
hint_count = 5 if world.shuffle[player] not in ['vanilla', 'dungeonssimple', 'dungeonsfull'] else 8
|
||||||
hint_count += 2 if world.doorShuffle[player] == 'crossed' else 0
|
hint_count += 2 if world.doorShuffle[player] == 'crossed' else 0
|
||||||
hint_count += 1 if world.owShuffle[player] != 'vanilla' or world.owMixed[player] else 0
|
hint_count += 1 if world.owShuffle[player] != 'vanilla' or world.owCrossed[player] != 'none' or world.owMixed[player] else 0
|
||||||
while hint_count > 0:
|
while hint_count > 0:
|
||||||
this_item = items_to_hint.pop(0)
|
this_item = items_to_hint.pop(0)
|
||||||
this_location = world.find_items_not_key_only(this_item, player)
|
this_location = world.find_items_not_key_only(this_item, player)
|
||||||
@@ -2734,16 +2738,46 @@ DungeonEntrances = {'Eastern Palace': 'Eastern Palace',
|
|||||||
'Desert Palace Entrance (North)': 'The northmost cave in the desert'
|
'Desert Palace Entrance (North)': 'The northmost cave in the desert'
|
||||||
}
|
}
|
||||||
|
|
||||||
OtherEntrances = {'Blinds Hideout': 'Blind\'s old house',
|
ItemEntrances = {'Blinds Hideout': 'Blind\'s old house',
|
||||||
'Lake Hylia Fairy': 'A cave NE of Lake Hylia',
|
'Chicken House': 'The chicken lady\'s house',
|
||||||
|
'Aginahs Cave': 'The open desert cave',
|
||||||
|
'Sahasrahlas Hut': 'The house near armos',
|
||||||
|
'Blacksmiths Hut': 'The old smithery',
|
||||||
|
'Sick Kids House': 'The central house in Kakariko',
|
||||||
|
'Mini Moldorm Cave': 'The cave south of Lake Hylia',
|
||||||
|
'Ice Rod Cave': 'The sealed cave SE Lake Hylia',
|
||||||
|
'Library': 'The old library',
|
||||||
|
'Potion Shop': 'The witch\'s building',
|
||||||
|
'Dam': 'The old dam',
|
||||||
|
'Waterfall of Wishing': 'Going behind the waterfall',
|
||||||
|
'Bonk Rock Cave': 'The rock pile near Sanctuary',
|
||||||
|
'Graveyard Cave': 'The graveyard ledge',
|
||||||
|
'Checkerboard Cave': 'The NE desert ledge',
|
||||||
|
'Cave 45': 'The ledge south of haunted grove',
|
||||||
|
'Kings Grave': 'The northeastmost grave',
|
||||||
|
'C-Shaped House': 'The NE house in Village of Outcasts',
|
||||||
|
'Mire Shed': 'The western hut in the mire',
|
||||||
|
'Spike Cave': 'The ledge cave on west dark DM',
|
||||||
|
'Hype Cave': 'The cave south of the old bomb shop',
|
||||||
|
'Brewery': 'The Village of Outcasts building with no door',
|
||||||
|
'Chest Game': 'The westmost building in the Village of Outcasts',
|
||||||
|
'Big Bomb Shop': 'The old bomb shop'
|
||||||
|
}
|
||||||
|
|
||||||
|
ShopEntrances = {'Cave Shop (Lake Hylia)': 'The cave NW Lake Hylia',
|
||||||
|
'Kakariko Shop': 'The old Kakariko shop',
|
||||||
|
'Capacity Upgrade': 'The cave on the island',
|
||||||
|
'Dark Lake Hylia Shop': 'The building NW dark Lake Hylia',
|
||||||
|
'Dark World Shop': 'The hammer sealed building',
|
||||||
|
'Red Shield Shop': 'The fenced in building',
|
||||||
|
'Cave Shop (Dark Death Mountain)': 'The base of east dark DM',
|
||||||
|
'Dark World Potion Shop': 'The building near the catfish',
|
||||||
|
'Dark World Lumberjack Shop': 'The northmost Dark World building'
|
||||||
|
}
|
||||||
|
|
||||||
|
OtherEntrances = {'Lake Hylia Fairy': 'A cave NE of Lake Hylia',
|
||||||
'Light Hype Fairy': 'The cave south of your house',
|
'Light Hype Fairy': 'The cave south of your house',
|
||||||
'Desert Fairy': 'The cave near the desert',
|
'Desert Fairy': 'The cave near the desert',
|
||||||
'Chicken House': 'The chicken lady\'s house',
|
|
||||||
'Aginahs Cave': 'The open desert cave',
|
|
||||||
'Sahasrahlas Hut': 'The house near armos',
|
|
||||||
'Cave Shop (Lake Hylia)': 'The cave NW Lake Hylia',
|
|
||||||
'Blacksmiths Hut': 'The old smithery',
|
|
||||||
'Sick Kids House': 'The central house in Kakariko',
|
|
||||||
'Lost Woods Gamble': 'A tree trunk door',
|
'Lost Woods Gamble': 'A tree trunk door',
|
||||||
'Fortune Teller (Light)': 'A building NE of Kakariko',
|
'Fortune Teller (Light)': 'A building NE of Kakariko',
|
||||||
'Snitch Lady (East)': 'A house guarded by a snitch',
|
'Snitch Lady (East)': 'A house guarded by a snitch',
|
||||||
@@ -2751,49 +2785,24 @@ OtherEntrances = {'Blinds Hideout': 'Blind\'s old house',
|
|||||||
'Bush Covered House': 'A house with an uncut lawn',
|
'Bush Covered House': 'A house with an uncut lawn',
|
||||||
'Tavern (Front)': 'A building with a backdoor',
|
'Tavern (Front)': 'A building with a backdoor',
|
||||||
'Light World Bomb Hut': 'A Kakariko building with no door',
|
'Light World Bomb Hut': 'A Kakariko building with no door',
|
||||||
'Kakariko Shop': 'The old Kakariko shop',
|
|
||||||
'Mini Moldorm Cave': 'The cave south of Lake Hylia',
|
|
||||||
'Long Fairy Cave': 'The eastmost portal cave',
|
'Long Fairy Cave': 'The eastmost portal cave',
|
||||||
'Good Bee Cave': 'The open cave SE Lake Hylia',
|
'Good Bee Cave': 'The open cave SE Lake Hylia',
|
||||||
'20 Rupee Cave': 'The rock SE Lake Hylia',
|
'20 Rupee Cave': 'The rock SE Lake Hylia',
|
||||||
'50 Rupee Cave': 'The rock near the desert',
|
'50 Rupee Cave': 'The rock near the desert',
|
||||||
'Ice Rod Cave': 'The sealed cave SE Lake Hylia',
|
|
||||||
'Library': 'The old library',
|
|
||||||
'Potion Shop': 'The witch\'s building',
|
|
||||||
'Dam': 'The old dam',
|
|
||||||
'Lumberjack House': 'The lumberjack house',
|
'Lumberjack House': 'The lumberjack house',
|
||||||
'Lake Hylia Fortune Teller': 'The building NW Lake Hylia',
|
'Lake Hylia Fortune Teller': 'The building NW Lake Hylia',
|
||||||
'Kakariko Gamble Game': 'The old Kakariko gambling den',
|
'Kakariko Gamble Game': 'The old Kakariko gambling den',
|
||||||
'Waterfall of Wishing': 'Going behind the waterfall',
|
|
||||||
'Capacity Upgrade': 'The cave on the island',
|
|
||||||
'Bonk Rock Cave': 'The rock pile near Sanctuary',
|
|
||||||
'Graveyard Cave': 'The graveyard ledge',
|
|
||||||
'Checkerboard Cave': 'The NE desert ledge',
|
|
||||||
'Cave 45': 'The ledge south of haunted grove',
|
|
||||||
'Kings Grave': 'The northeastmost grave',
|
|
||||||
'Bonk Fairy (Light)': 'The rock pile near your home',
|
'Bonk Fairy (Light)': 'The rock pile near your home',
|
||||||
'Hookshot Fairy': 'The left paired cave on east DM',
|
'Hookshot Fairy': 'The left paired cave on east DM',
|
||||||
'Bonk Fairy (Dark)': 'The rock pile near the old bomb shop',
|
'Bonk Fairy (Dark)': 'The rock pile near the old bomb shop',
|
||||||
'Dark Lake Hylia Fairy': 'The cave NE dark Lake Hylia',
|
'Dark Lake Hylia Fairy': 'The cave NE dark Lake Hylia',
|
||||||
'C-Shaped House': 'The NE house in Village of Outcasts',
|
|
||||||
'Dark Death Mountain Fairy': 'The SW cave on dark DM',
|
'Dark Death Mountain Fairy': 'The SW cave on dark DM',
|
||||||
'Dark Lake Hylia Shop': 'The building NW dark Lake Hylia',
|
|
||||||
'Dark World Shop': 'The hammer sealed building',
|
|
||||||
'Red Shield Shop': 'The fenced in building',
|
|
||||||
'Mire Shed': 'The western hut in the mire',
|
|
||||||
'East Dark World Hint': 'The dark cave near the eastmost portal',
|
'East Dark World Hint': 'The dark cave near the eastmost portal',
|
||||||
'Dark Desert Hint': 'The cave east of the mire',
|
'Dark Desert Hint': 'The cave east of the mire',
|
||||||
'Spike Cave': 'The ledge cave on west dark DM',
|
|
||||||
'Palace of Darkness Hint': 'The building south of Kiki',
|
'Palace of Darkness Hint': 'The building south of Kiki',
|
||||||
'Dark Lake Hylia Ledge Spike Cave': 'The rock SE dark Lake Hylia',
|
'Dark Lake Hylia Ledge Spike Cave': 'The rock SE dark Lake Hylia',
|
||||||
'Cave Shop (Dark Death Mountain)': 'The base of east dark DM',
|
|
||||||
'Dark World Potion Shop': 'The building near the catfish',
|
|
||||||
'Archery Game': 'The old archery game',
|
'Archery Game': 'The old archery game',
|
||||||
'Dark World Lumberjack Shop': 'The northmost Dark World building',
|
|
||||||
'Hype Cave': 'The cave south of the old bomb shop',
|
|
||||||
'Brewery': 'The Village of Outcasts building with no door',
|
|
||||||
'Dark Lake Hylia Ledge Hint': 'The open cave SE dark Lake Hylia',
|
'Dark Lake Hylia Ledge Hint': 'The open cave SE dark Lake Hylia',
|
||||||
'Chest Game': 'The westmost building in the Village of Outcasts',
|
|
||||||
'Dark Desert Fairy': 'The eastern hut in the mire',
|
'Dark Desert Fairy': 'The eastern hut in the mire',
|
||||||
'Dark Lake Hylia Ledge Fairy': 'The sealed cave SE dark Lake Hylia',
|
'Dark Lake Hylia Ledge Fairy': 'The sealed cave SE dark Lake Hylia',
|
||||||
'Fortune Teller (Dark)': 'The building NE the Village of Outcasts'
|
'Fortune Teller (Dark)': 'The building NE the Village of Outcasts'
|
||||||
|
|||||||
Reference in New Issue
Block a user