-
Notifications
You must be signed in to change notification settings - Fork 466
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
Expose Thieves' Hideout selection for keyrings in randomizer settings #2890
Merged
leggettc18
merged 5 commits into
HarbourMasters:develop
from
Archez:support-thieves-hideout-keyring
May 26, 2023
Merged
Changes from 1 commit
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
5244cda
expose thieves hideout selection for keyrings in randomizer settings
Archez 8f5538a
Adds validation to GF Key Ring and Key Ring Count settings.
leggettc18 1351334
Remove magic numbers and fix formatting.
leggettc18 f6b9c22
Fixes bad Key Ring Count under certain conditions.
leggettc18 015c30d
Merge pull request #2 from leggettc18/gf-keyring
Archez File filter
Filter by extension
Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this comment here is why this didn’t go in with the rest, I don’t think I was sure how to properly handle this
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yeah, i feel like we probably want to expose this more clearly than just having a tooltip here. right now, if a player picks count 3, there will definitely be 3 keyrings in the pool. adding this into the mix makes it so there may only be 2 depending on their GF key settings.
i think to implement this we should make sure the UI communicates the setting interaction (should probably do a similar thing for start with and vanilla dungeon keys, but that feels less likely to confuse people)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@briaguya-ai I'm not completely opposed to changing the UI, but am weary of the changes needed to track all that both in the randomizer menu, and in the 3drando code.
Before I go that approach, I'm curious if adjusting the tooltip description would be sufficient to account for any oddities. Here is one example I came up
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As far as I can tell from looking at the 3drando code, Gerudo Fortress is not included in the dungeons that can be randomly selected from the count to have keyrings. The code that picks the random dungeons to give key rings to is around
settings.cpp L2969
pulls fromdungeonList
, filters out dungeons with no keys, shuffles that list, and then gives key rings to the firstkeyRingCount
dungeons in the shuffled list. SaiddungeonList
does not have Gerudo Fortress.Meanwhile whether or not to add a Gerudo's Fortress keying to the pool is handled separately from everything else in
item_pool.cpp L828-872
. So whether it has a key ring or not is handled entirely independently of all the other dungeons, and it having or not having a key ring will not affect the key ring count of the other dungeons.Therefore, the only thing to actually track for whether or not to show this option is what Gerudo Fortress access is set to. We should hide this option if it is set to either Open, Vanilla, or Fast, as those options either remove Gerudo Fortress keys altogether, or they require the Gerudo Fortress keys to be in their vanilla locations. Otherwise we show the keyring option.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So TL;DR
@briaguya-ai, the key ring count would not be affected by the possibility of GF getting randomly selected and not being able to have a key ring, because it actually can't be randomly selected at all, see above.
@Archez The logic for hiding or showing the GF Key Ring option should be pretty simple and only dependent on GF access settings, see above.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can ImGui handle the max number of the slider changing at runtime? If so, I think it shouldn't be too hard to actually just decrease the max count to 8 if we get in a situation where Gerudo Fortress can't have a KeyRing (i.e. if GerudoFortress is at anything other than Normal) and also hide the checkbox for Gerudo Fortress key ring. Then in 3drando we can start with keyRingOptions not having RingFortress in it, and pushing it onto that vector before setting key rings on or off according to the keyRingCount if we can have a GerudoFortressKeyring
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IIRC yes
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I PR'ed a fix to the Archez's branch that adds this extra validation to disable the check box and change the max key ring count. Archez#2
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the PR, assuming this will resolve our concerns related to the wording now 👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Provided everyone else is fine with how I did it, then yes.