OoT-Randomizer icon indicating copy to clipboard operation
OoT-Randomizer copied to clipboard

Redesign Other Tab in Generator

Open aofengen opened this issue 5 months ago • 11 comments

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

aofengen avatar Feb 21 '24 21:02 aofengen

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.

fenhl avatar Feb 21 '24 21:02 fenhl

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.

aofengen avatar Feb 21 '24 21:02 aofengen

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.

fenhl avatar Feb 21 '24 22:02 fenhl

I think I like a hints section better. Will work on that

aofengen avatar Feb 21 '24 22:02 aofengen

@fenhl moved one major item to other tab and redesigned tab to look like this: image

Also re-ordered some items in SettingsList.py to match the order of settings_mapping.json

aofengen avatar Feb 21 '24 23:02 aofengen

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.

fenhl avatar Feb 22 '24 00:02 fenhl

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

aofengen avatar Feb 22 '24 00:02 aofengen

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.

fenhl avatar Feb 22 '24 00:02 fenhl

fair enough. Was viewing those as entirely different settings

aofengen avatar Feb 22 '24 00:02 aofengen

image

Current proposal

aofengen avatar Feb 22 '24 17:02 aofengen

image

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: image

jdunn596 avatar Apr 11 '24 23:04 jdunn596