Skip to content

Conversation

@Pepper0ni
Copy link
Contributor

@Pepper0ni Pepper0ni commented Jun 10, 2025

If you do not have the money to pay for the Keaton mask when you return it, the happy mask salesman won't let you borrow the skull mask (instead kicking you out), meaning skull mask requires a wallet that was not accounted for. This PR fixes that.

I also changed it to be fully handled by events, removing a potential source of playthrough jank.

Build Artifacts

EventAccess(&logic->MaskOfTruth, []{return logic->MaskOfTruth || (logic->SkullMask && (ctx->GetOption(RSK_COMPLETE_MASK_QUEST) || (ChildCanAccess(RR_THE_LOST_WOODS) && logic->CanUse(RG_SARIAS_SONG) && RegionTable(RR_THE_GRAVEYARD)->childDay && ChildCanAccess(RR_HYRULE_FIELD) && logic->StoneCount() == 3)));}),
//Currently, mask swap in menu doesn't need access to the mask shop
//If it is forced on/a setting, a copy of these events should be added to root
//it also doesn't need you to open kak gate, but that might be best treated as a bug
Copy link
Contributor

Choose a reason for hiding this comment

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

might be simpler to make this an enforced rando qol thing, especially since with Shuffle Climb it's possible to need Zelda's Letter to reach Great Fairy's Fountain at Hyrule Castle, which wouldn't be allowed logically if player lost Zelda's Letter

Copy link
Contributor

Choose a reason for hiding this comment

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

Don't the changes Pablo made to the child trade select allow the letter to persist after being used at kak gate?

Copy link
Contributor

Choose a reason for hiding this comment

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

Yes. Wasn't sure if that's sometimes disabled

//Locations
LOCATION(RC_DEKU_THEATER_SKULL_MASK, logic->IsChild && logic->SkullMask),
LOCATION(RC_DEKU_THEATER_MASK_OF_TRUTH, logic->IsChild && logic->MaskOfTruth),
LOCATION(RC_DEKU_THEATER_SKULL_MASK, logic->IsChild && logic->BorrowSkullMask),
Copy link
Contributor

Choose a reason for hiding this comment

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

#5536 makes these logic->CanUse(RG_MASK...)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Right, this is a quick fix targetted at Blair. I'm not sure if we should be using events to represent masks with SCL but maybe @Malkierian has an opinion on that.

Regardless, not an issue for this PR

Copy link
Contributor

Choose a reason for hiding this comment

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

I was recently running into an issue regarding the use of the weird chicken to wake up Talon as the way to gate Talon's Chickens and Song from Malon. I tried setting up an event access in Castle Grounds for it, but in live logic it would always return true once the area was accessible because it was based on inventory, and the event check inf lookup never mattered. I don't know, maybe I was doing it the wrong way. Ideally, we'd figure out a way of mapping a logic check to short circuit ones like that when logic is live, but I don't know that that applies in this instance.

@Malkierian Malkierian merged commit b564148 into HarbourMasters:develop-blair Jun 19, 2025
6 checks passed
krazyjakee pushed a commit to krazyjakee/OOT that referenced this pull request Sep 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants