OoT-Randomizer
OoT-Randomizer copied to clipboard
Redesign Other Tab in Generator
The One Major Item per Dungeon setting is designed to make all dungeons similar in value relative to both each other and the world in general. While it does this job extremely effectively, its very nature makes it almost incompatible with many settings, and effectively causing any seed rolled with Randomize Main Settings to fail close to 50% of the time if this option hits as True (it is possible to have a successful generation with the option turned on, but the likelihood drops dramatically).
In moving the setting from the Main Rules to the Detailed Logic tab, the functionality of the setting is preserved while eliminating the detrimental effects on the Randomize Main Rules setting. I believe that One Major Item per Dungeon fits better in the Detailed Logic tab than in the Other tab because it is not a timesaver and still has a large effect on logic anytime it is used. That said, if others feel differently, it can be moved to the Other tab with little issue.
EDIT - Updating PR name since this turned into a full redesign of the generator's Other Tab
I think this should be in the “Other” tab. The “Detailed Logic” tab currently only contains settings that exclusively affect logic, and while the distinction between shuffle and logic settings may not be obvious to everyone, I think it's worth maintaining for the benefit of users who do know it. You're right that it's not a timesaver but it could go in the “Misc” section.
As I've detailed on Discord, I think it would make sense for a new setting that works similarly but handles different setting combinations more gracefully (by considering items that have their own shuffle settings separately and placing the vanilla amount of items from each pool in each dungeon) to replace this setting in the “Main Rules” tab. It might be worth coordinating these two changes as a cohesive feature update, maybe not necessarily merging them at the same time but at least in the same dev cycle. I intend to start working on the implementation of this new setting soon.
The majority of the settings in the Misc section do not affect logic - the only items in that group that do affect logic are Damage Multiplier, Bonks Do Damage, Starting time of day, Blue Fire Arrows, and Fix Broken Drops. I wonder if it would make more sense to create a new category on the Other tab for those settings and one major item instead of leaving them somewhat mismatched with settings that do not affect logic at all.
As for your setting proposal, I would agree that the two settings are conceptually similar. Given the negative effects that one major item has on seed generation at present, however, that may be reason enough to accelerate this PR's implementation. I have no strong feelings either way, so will leave that decision to you and the other maintainers.
There is a lot of room below the “Item Pool” section. Maybe we could just have another “Shuffle” section in the “Other” tab. Or maybe we could move the information-related settings (hints, CAMC, etc.) into their own section.
I think I like a hints section better. Will work on that
@fenhl moved one major item to other tab and redesigned tab to look like this:
Also re-ordered some items in SettingsList.py to match the order of settings_mapping.json
I'm not a fan of the distinction between “Non-Logical Gameplay Changes” and “Other Logic Adjustments”. Whether any given setting affects logic feels like a minor detail to me, not something that should determine the GUI layout. For one thing, some of these are in the wrong section: “Randomize Ocarina Melodies” does affect logic, while “Hero Mode” and “Dungeons Have One Major Item” do not. And there are plans for both “Chest Appearance Matches Contents” and “Invisible Chests” to affect logic in the future, at which point we would have to move them if this categorization were to be used.
I would prefer to move the check appearance settings to the “Hints” section (maybe call it “Information” or “Hints and Information” instead), and keep a single “Misc” section with the remaining settings.
fair points. The way the tab is set up, it's hard to space things properly while having less groups, but can re-arrange them slightly. Randomize ocarina melodies does not affect logic though - it's only changing the notes of the songs
Randomize ocarina melodies does not affect logic though - it's only changing the notes of the songs
…which influences the access conditions of song checks, affecting where ocarina note button items can be placed.
fair enough. Was viewing those as entirely different settings
Current proposal
one_item_per_dungeon
(last item in line 599) needs to be removed for this to properly exclude the setting from being selected when randomize_settings
is enabled. This dict is used to build which settings will be randomized when randomize_settings
is True in world.py
Reference:
There seem to be some discrepancies in SettingsList.py
beyond the reordering, probably caused by Dev updates happening in the meantime. Investigating.
There seem to be some discrepancies in
SettingsList.py
beyond the reordering, probably caused by Dev updates happening in the meantime. Investigating.
@fenhl any update on this?
No, sorry. Could use some help on this. The comparison is a bit tricky.
Will look more tonight - was a pretty big conflict, but looked like things had been righted.
Maybe it would make sense to redo the changes from current Dev?
can do after work tomorrow
Closing and will reopen on new branch