Skip to content

Fix: Granny empty bottle check#3068

Merged
leggettc18 merged 1 commit intoHarbourMasters:develop-sulufrom
Archez:fix-granny-bottle-check
Jul 23, 2023
Merged

Fix: Granny empty bottle check#3068
leggettc18 merged 1 commit intoHarbourMasters:develop-sulufrom
Archez:fix-granny-bottle-check

Conversation

@Archez
Copy link
Contributor

@Archez Archez commented Jul 5, 2023

When Merchant shuffle is on, and Adult Trade shuffle is off, if you have not found the claim check yet the rando item trade offer should be skipped, and the Blue potion refill flow happens instead. The bug was that the "can buy" logic was missing a check for claim check, which meant that Granny was offering a blue potion refill, but the empty bottle check was skipped.

This PR abstracts the "can buy rando" item logic into a method and re-uses that in all the relevant places to avoid any inconsistent logic.

The tooltip for shuffle merchants is also updated to call out the behavior when shuffle adult trade is on/off.

Build Artifacts

@leggettc18
Copy link
Contributor

Are we certain the logic expects you to find the claim check before getting Granny's item with Merchant Shuffle? That restriction feels a little weird to me.

@Malkierian
Copy link
Contributor

Malkierian commented Jul 13, 2023

If I'm reading the logic right, all that's required when adult trade is shuffled is the OddMushroom:
LocationAccess(KAK_GRANNYS_SHOP, {[]{return IsAdult && OddMushroom && AdultsWallet;}}),
OddMushroom is defined as OddMushroom = OddMushroom || (!ShuffleAdultTradeQuest && OddPoultice); and that goes right up the chain to ClaimCheck if adult trade shuffle is off. Screw me if I can make sense of why this chain is what it is, though:

Eyedrops = Eyedrops || (!ShuffleAdultTradeQuest && ClaimCheck);

@Archez
Copy link
Contributor Author

Archez commented Jul 13, 2023

Are we certain the logic expects you to find the claim check before getting Granny's item with Merchant Shuffle? That restriction feels a little weird to me.

Yes this is how it was coded in the logic when it was introduced. It's to replicate the fact that the check is not available until after the odd mushroom is turned in. So in the case of trade shuffle off, having the claim check means you've "already turned in" the odd mushroom from the logic perspective (having a trade item implies you had the previous, etc)

This is how it was made in 3d rando and N64 rando.

@leggettc18 leggettc18 merged commit 855e744 into HarbourMasters:develop-sulu Jul 23, 2023
@Archez Archez deleted the fix-granny-bottle-check branch July 29, 2023 19:48
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