Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Shuffle dungeon rewards #1833

Closed
9 of 11 tasks
fenhl opened this issue Dec 23, 2022 · 10 comments · Fixed by #2034
Closed
9 of 11 tasks

Shuffle dungeon rewards #1833

fenhl opened this issue Dec 23, 2022 · 10 comments · Fixed by #2034
Labels
Component: Algorithm Search, Fill, Playthrough, etc Component: ASM/C Changes some internals of the ASM/C libraries Component: Hints related to how we help the player Component: Setting specific to setting(s) Type: Enhancement New feature or request
Milestone

Comments

@fenhl
Copy link
Collaborator

fenhl commented Dec 23, 2022

This is a duplicate of #229 and #544, which were closed in favor of Triforce Hunt due to the complexities outlined below. The community has learned more about the game since then and the feature seems within the realm of the possible now, so I am opening this issue as an overview of what still needs to be done for it to land. Anyone opposed to the setting being added may want to read this defence by Revven.

The feature

A new setting is added (probably at the top of the “Shuffle Dungeon Items” section) that controls where dungeon rewards (Medallions and Spiritual Stones) can be found. The current behavior, i.e. shuffled among each other, becomes the option “Dungeon Reward Locations”, and the other options are the usual ones for dungeon items: “Vanilla Locations”, “Own Dungeon”, “Regional”, “Overworld Only”, “Any Dungeon”, and “Anywhere”. If one of the new options (other than “Vanilla Locations”) is enabled, each blue warp grants a randomized item the first time it is used.

Links Pocket

The dungeon reward location corresponding to the vanilla Light Medallion, currently called Links Pocket, is special in that it is currently always a “skipped” location, similar to the locations skipped by the “Skip Child Zelda” and “Pre-completed Dungeons” settings. If this behavior were to be kept, shuffling dungeon rewards would start each seed with a random item (which may be junk), so I think this is also a good opportunity to consider changing the behavior. Some possibilities:

  • Remove the special handling and return the check to the Beyond Door of Time region. For convenience, instead of requiring a Master Sword pull (which means two long cutscenes if you're already adult), we may want to change the check to simply be given to Link if he's in the region, similar to how Sheik at Temple works. Renaming the location to something like Reward from Rauru would make sense.
  • Make this change only when dungeon rewards are shuffled.
  • Add a setting controlling whether the location is skipped, which is disabled when dungeon rewards aren't shuffled. I'm told this is what OoT3DR does.
  • Just leave it up to a setting regardless of dungeon reward shuffle. This is my preferred option since it allows the most flexibility, people have expressed interest in a “one random starting item” mode recently, and there's no technical reason I'm aware of for gating the change in behavior behind dungeon reward shuffle.

Components

  • The fill algorithm needs to be adjusted to handle dungeon rewards and their locations as regular items, while still shuffling them before entrances if they're on vanilla/reward locations. This can be achieved by treating them like regular dungeon items and skipping the fill_bosses call in Main.
  • Medallion and Spritual Stone models need to be added as regular item models for freestandings and the get item cutscene. Working thanks to the splitter script from OoTMM and a PR from @mracsys.
  • Blue warps need to be modified to give normal items when dungeon rewards are shuffled. See also Get medallion repeatedly from Spirit Temple #265.
  • Dungeon rewards need to be defined as major items in the randomizer code. See also Don't count dungeons with rewards on altar as already hinted #1730.
  • The Sheik in Kakariko cutscene currently only triggers when you enter Kakariko Village, not when you're already there (e.g. when receiving the last of the 3 required medallions from Anju or from another world). We need to decide if we want to change this behavior. We might also want to test Sheik at Temple to make sure it works correctly. (LACS and the rainbow bridge are presumably fine since there are already settings where you can receive the last required item while inside the trigger. The OoT cutscene in Hyrule Field has been tested and works.) Tracked as Trigger Sheik in Kakariko cutscene while already in Kakariko #2226.
  • We need to decide what do do with the Links Pocket location, as outlined above, and implement the decision. Tracked as Option to force skipped reward from Rauru to be a dungeon reward #2225.
  • We should consider adding dual hints for boss hearts and blue warps.
  • Goals need to be adjusted when dungeon rewards are shuffled.
  • Plentiful and ludicrous item pools should add extra dungeon rewards as appropriate.
  • The item model in the Big Octo cutscene needs to be updated to support non-dungeon-reward items.
  • We may want to treat compasses that give info like misc. item hint locations, counting dungeon rewards as “already hinted” if the compass is reachable without the reward.

I have a work-in-progress version of dungeon reward shuffle on my branch. Components checked off above are already implemented there.

@fenhl
Copy link
Collaborator Author

fenhl commented Dec 23, 2022

I translated the file splitting script from OoTMM into Python at https://github.com/fenhl/OoT-Randomizer/tree/dev-fenhl-medallion-models but haven't verified whether it works correctly. Flashing lights warning for freestanding dungeon rewards, presumably due to the missing draw table entry.

@RawZ06
Copy link

RawZ06 commented Dec 23, 2022

I have a question about this feature, it can be possible to preserve actual bridge goal by splitting it with medaillons/stones and beat bosses ? The random reward impact only songs : Song from Ocarina of Time, Sheik in Kakariko and Sheik at Temple of Time and LACS but we need to beat some bosses to open bridge to Ganon Tower.

@fenhl
Copy link
Collaborator Author

fenhl commented Dec 23, 2022

Adding a bridge condition for defeating bosses should be possible if the dev team wants to include that as a feature.

@NeunEinser
Copy link

Isn't this it already?
grafik

@fenhl
Copy link
Collaborator Author

fenhl commented Dec 24, 2022

This is collecting dungeon rewards, not defeating bosses. The option name should probably be clarified when dungeon reward shuffle is added.

@cjohnson57
Copy link
Collaborator

cjohnson57 commented Jan 31, 2023

In regard to Link's Pocket, here's my opinion:

  • Change it to be received by being in the beyond DoT region, as others have said it'd be annoying to swap ages just for the check
  • This part I'm less certain about, but I think I'm in agreeance with making it its own dropdown setting where you can choose to either:
    • Move the check to beyond DoT (default)
    • Keep the check in Link's pocket
    • Keep it in his pocket, and guarantee a dungeon reward

Even with reward shuffle, I imagine there are many who'd like to still get a free starting reward. Ofc, with reward shuffle off, the latter 2 options are equivalent

And my reasoning for the default is that the whole pocket thing was basically invented as a convenience of the randomizer and difficulty of adding the check, to a new player they'd probably see no reason to keep the pocket check as the beyond DoT check is closer to what the check "should" be

As for the dual hints, I think that would be good for sure, since it's basically the same check for 2 items.

@fenhl
Copy link
Collaborator Author

fenhl commented Feb 21, 2023

A quick change I made on my branch just now: Dungeon rewards are added to the list of unhintable woth/goal items alongside Triforce pieces and gold skulltula tokens. This only matters if the dungeon rewards aren't already hinted (i.e. maps/compasses give info and are removed, or maps/compasses don't give info and altar misc. hint is off). I figure someone playing without the compass/altar hints probably also doesn't want the rewards to be hinted directly.

@r0bd0g
Copy link

r0bd0g commented Feb 22, 2023

I want to mention, last I checked "The Sheik in Kakariko cutscene currently only triggers when you enter Kakariko Village" doesn't actually work if you enter from a grotto, last I checked? but admittedly it was a while ago. (I guess technically it could be a problem if all of your exits from Kak are one way?)

@fenhl fenhl added Type: Enhancement New feature or request Status: Help Wanted Extra attention is needed Component: Algorithm Search, Fill, Playthrough, etc Component: ASM/C Changes some internals of the ASM/C libraries Component: Setting specific to setting(s) Component: Hints related to how we help the player labels Mar 6, 2023
@fenhl
Copy link
Collaborator Author

fenhl commented Mar 27, 2023

For anyone curious about the status of this feature, the current plan is to open a pull request once #1820 is merged.

@fenhl
Copy link
Collaborator Author

fenhl commented Jun 25, 2023

I want to mention, last I checked "The Sheik in Kakariko cutscene currently only triggers when you enter Kakariko Village" doesn't actually work if you enter from a grotto, last I checked? but admittedly it was a while ago. (I guess technically it could be a problem if all of your exits from Kak are one way?)

This is still the case.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Component: Algorithm Search, Fill, Playthrough, etc Component: ASM/C Changes some internals of the ASM/C libraries Component: Hints related to how we help the player Component: Setting specific to setting(s) Type: Enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants