Skip to content

Altar in child now give information about SoT and OoT#2338

Open
RawZ06 wants to merge 7 commits into
OoTRandomizer:Devfrom
RawZ06:child-altar-oot-hint
Open

Altar in child now give information about SoT and OoT#2338
RawZ06 wants to merge 7 commits into
OoTRandomizer:Devfrom
RawZ06:child-altar-oot-hint

Conversation

@RawZ06

@RawZ06 RawZ06 commented Dec 11, 2024

Copy link
Copy Markdown

This PR adds the ability to see the item on OoT and the Song at SoT on the Altar as a child. The goal is to make the child altar more useful, as it is rarely checked. The information about which dungeon corresponds to which specific stone isn’t very relevant since the three child dungeons can be deduced by reading the adult altar.

Additionally, this kind of information is crucial early in a seed and can completely change routing when, for example, you learn that Nocturne is on AD.

Currently, I’ve set the display to be conditional on misc_hints.altar being enabled. I’m not sure if I should create a specific option for this in misc_hints, such as altar-oot, for example.

image

@RawZ06 RawZ06 force-pushed the child-altar-oot-hint branch from 90fdd79 to dfbc636 Compare December 11, 2024 08:57
@fenhl

fenhl commented Dec 11, 2024

Copy link
Copy Markdown
Collaborator

This definitely needs to be a separate option.

@fenhl fenhl added Type: Enhancement New feature or request Status: Needs Review Someone should be looking at it Component: Hints related to how we help the player Status: Needs Testing Probably should be tested Status: Under Consideration Developers are considering whether to accept or decline the feature described Racing Impact Changes a mechanic in a way that impacts the balance of competitive racing. Component: Setting specific to setting(s) and removed Racing Impact Changes a mechanic in a way that impacts the balance of competitive racing. labels Dec 11, 2024
@RawZ06 RawZ06 force-pushed the child-altar-oot-hint branch from 3d3ed04 to 30b81ce Compare December 11, 2024 09:46
@RawZ06

RawZ06 commented Dec 11, 2024

Copy link
Copy Markdown
Author

I added an option in misc_hints.

@r0bd0g

r0bd0g commented Dec 11, 2024

Copy link
Copy Markdown

'Reuniting the stones' also maybe leads to 4 checks in the mask shop, or one check in the deku theatre, or maybe you're on stone bridge so it actually unlocks whatever's across that, so I'm not sure if 'Reuniting the stones' is the best way to word this text. I'm not sure the altar is the right place to hint these checks (I'm not sure where is the right place though), since the altar is supposed to be about your boss rewards and your win condition, and OoT, despite the amount of importance we players tend to place on it, is really just another check. If it's about what the dungeon rewards directly lead to, why aren't the Nocturne, LACS, or Prelude checks on the adult altar? Or if it's some flavour of dungeon reward bridge, why isn't the Ganon's entrance on the altar?

I'm not sure, I think you probably do need to do something, to have some sort of logic to have it so if your OoT misc hint is on and the altar hint is reachable, then no gossip stone hints for these checks appear in the seed.

I saw an image where it said in the text whether the checks were 'required' or 'not required' and I caution against the use of that kind of language. It's pretty easy to imagine, Requiem on OoT for a key in child side you don't actually need, and yet the text would say it's 'required'. Or imagine both checks are your only available Bows. Both would say 'not required' since logically you could get either one as your first bow, despite one of them definitely being required. We don't have a good way of calculating whether an item might be 'soft required' in cases like this. So this is why we use terms like "way of the hero" and "foolish choice" since determining what actually is or isn't required is not so simple.

@r0bd0g

r0bd0g commented Dec 19, 2024

Copy link
Copy Markdown

Just had a thought, I don't know that it's normal that a check would be hinted if it's not shuffled.

@cjohnson57

Copy link
Copy Markdown
Collaborator

This is pretty cool

@RawZ06

RawZ06 commented Jan 6, 2025

Copy link
Copy Markdown
Author

Sorry for the late response. To answer your question, Robdog, the phrase I used is the one from OoTxMM. I wasn’t sure what to put, so I went with that one. It seemed reasonable to me, considering the lore. We read the stone, so gathering the three stones on the pedestal means we have the Ocarina check and the corresponding song. However, if you have a better suggestion, I’m open to it.

I understand your point about Nocturne and Prelude—this addition will carry much more weight in RSL, especially with potential Ocarina shuffle.

That said, I do indeed need to add an element to the logic to remove the hint from the Gossip Stone if this miscellaneous hint is activated.

As for the required/not required part, that’s not covered by this PR. It was an idea I proposed directly on Discord. I haven’t worked on that part yet—just a proof of concept for this hint because it was the focus of my current work.

One last thing: the Ocarina is constant, which can be really useful in RSL. Outside of RSL, it doesn’t provide any information—similar to the bridge information as an adult.

@cjohnson57 cjohnson57 removed the Status: Under Consideration Developers are considering whether to accept or decline the feature described label Jan 13, 2025
@cjohnson57 cjohnson57 requested a review from fenhl January 13, 2025 22:31
@fenhl

fenhl commented Apr 20, 2025

Copy link
Copy Markdown
Collaborator

This needs to be properly integrated into hint logic. I think it would make the most sense to wait until #2343 is merged and then integrate this new hint into the system added there.

@fenhl fenhl added the Status: Blocked Waiting for something else to happen first label Apr 20, 2025
@fenhl fenhl added Status: Waiting for Author Changes or response requested and removed Status: Blocked Waiting for something else to happen first labels Jun 5, 2025
@fenhl

fenhl commented Jun 5, 2025

Copy link
Copy Markdown
Collaborator

#2343 is now merged.

@RawZ06 RawZ06 force-pushed the child-altar-oot-hint branch from 30b81ce to bd60885 Compare June 8, 2025 14:38
@RawZ06

RawZ06 commented Jun 8, 2025

Copy link
Copy Markdown
Author

Updated with hint logic
Dual hint
image

Simple hint (ocarina off)
image

@RawZ06 RawZ06 force-pushed the child-altar-oot-hint branch from 0b62205 to 46b0ee2 Compare June 9, 2025 11:59
@RawZ06

RawZ06 commented Jun 9, 2025

Copy link
Copy Markdown
Author

Resolve conflict with #2431

Comment thread HintList.py Outdated
'id': 0x707A,
'hint_location': 'Song from Ocarina of Time Hint',
'item_location': 'Song from Ocarina of Time',
'location_text': 'The song learned after the reunification of \x05\x41The Spiritual Stones\x05\x40 is \x05\x42{item}\x05\x40.',

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
'location_text': 'The song learned after the reunification of \x05\x41The Spiritual Stones\x05\x40 is \x05\x42{item}\x05\x40.',
'location_text': 'The song learned after the reunification of the \x05\x41Spiritual Stones\x05\x40 is \x05\x42{item}\x05\x40.',

Comment thread HintList.py Outdated
},
('ocarina_of_time', 'song_of_time'): {
'id': 0x707A,
'location_text': 'It is also written that reuniting \x05\x41The Spiritual Stones\x05\x40 leads to \x05\x42{item_1}\x05\x40 and \x05\x42{item_2}\x05\x40',

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The existing altar text is written as if you're reading it directly from the altar, so I think “it is also written” should be removed.

Suggested change
'location_text': 'It is also written that reuniting \x05\x41The Spiritual Stones\x05\x40 leads to \x05\x42{item_1}\x05\x40 and \x05\x42{item_2}\x05\x40',
'location_text': 'Reuniting the \x05\x41Spiritual Stones\x05\x40 leads to \x05\x42{item_1}\x05\x40 and \x05\x42{item_2}\x05\x40.',

Comment thread Hints.py Outdated
update_message_by_id(messages, data['id'], str(GossipText(text, ['Green'], prefix='')), data['text_style'])


def build_text_misc_dual_hints(world: World, data, hint_type1: str, hint_type2: str):

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
def build_text_misc_dual_hints(world: World, data, hint_type1: str, hint_type2: str):
def build_text_misc_dual_hints(world: World, data, hint_type1: str, hint_type2: str) -> str:

Comment thread Hints.py Outdated
Comment on lines +1865 to +1866
if text is not None:
update_message_by_id(messages, data['id'], str(GossipText(text, ['Green'], prefix='')), data['text_style'])

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The None check is not necessary because build_text_misc_dual_hints cannot return None.

Suggested change
if text is not None:
update_message_by_id(messages, data['id'], str(GossipText(text, ['Green'], prefix='')), data['text_style'])
update_message_by_id(messages, data['id'], str(GossipText(text, ['Green'], prefix='')), data['text_style'])

Comment thread SettingsList.py Outdated
Comment on lines +3613 to +3615
Reading the Temple of Time altar as a child will
tell you what rewards the Ocarina of Time or/and
the Song of Time lead to.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should clarify that this is talking about the locations with these vanilla items and not the items themselves, since misc. item hints also exist. Maybe “the item thrown into the moat by Zelda and/or the song learned upon collecting it”?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, you’re right, I’ll go back to the wording we usually find in the gossip hints.

Comment thread SettingsList.py Outdated
Comment on lines +3585 to +3587
'altar': 'Temple of Time Altar',
'ocarina_of_time': 'Ocarina of Time reward',
'song_of_time': 'Song of Time',

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
'altar': 'Temple of Time Altar',
'ocarina_of_time': 'Ocarina of Time reward',
'song_of_time': 'Song of Time',
'altar': 'Temple of Time Altar (Win Conditions)',
'ocarina_of_time': 'Temple of Time Altar (Ocarina of Time)',
'song_of_time': 'Temple of Time Altar (Song of Time)',

@RawZ06 RawZ06 force-pushed the child-altar-oot-hint branch from 46b0ee2 to c4d9a7c Compare July 17, 2025 18:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Component: Hints related to how we help the player Component: Setting specific to setting(s) Status: Needs Review Someone should be looking at it Status: Needs Testing Probably should be tested Status: Waiting for Author Changes or response requested Type: Enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants