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

Item Pool Customization #68

Open
SiriusAshling opened this issue Dec 21, 2021 · 4 comments
Open

Item Pool Customization #68

SiriusAshling opened this issue Dec 21, 2021 · 4 comments

Comments

@SiriusAshling
Copy link
Member

Managing the item pool through headers is a rather poor user experience if one wants heavy customization or to change specific small details that don't correlate to an official header.

The item pool could be better managed through a specialized interface. The Blind Forest randomizer has an example of this.

Additional complications for this game arise through headers defining custom items.
Initially a customization for the "normal" items would already be helpful and a definite improvement. To properly interface with the header selection some problems will have to be solved though.

Below a suggestion on how the concept could be implemented:

Initial State

There is a defined default item pool which reflects the seedgen default item pool. The initial state of the item pool tab is these items and their corresponding amounts, plus a set of common pickups we may want to present, but don't have in the default item pool, such as the teleporters with a zero count.

Header modifiers

Headers can increase or decrease the count of items in the pool, this is applied to the default item pool.
As per #7 headers should be able to define groups - headers of the "item pool" group should be displayed in the item pool tab for clarity and visibility, including custom headers tagged as such.
For the user they represent buttons that quickly and easily modify the item pool, akin to the presets presented in the blind forest counterpart, but modular in that the presets aren't always mutually exclusive.
If a header adds an item that is not already in the list, it could get added at the top and using the !!name command entry from the header as a display name if given (item code otherwise).

User modifiers

The user can do manual modifications of item counts. When generating the seed, this will be added to the custom header part as !!add and !!remove commands (It may be useful to track the state as how much the user has modified the item counts instead of tracking absolute numbers).
Lowest amount should always be zero, which has to be accounted for when e.g. the user removes a teleporter manually, but then removes the teleporter header entirely, which should not drop it to minus one.
At the top of the list there could be a plus button to add new entries with a name and an item code (using the headerlang extension if possible), the first could be used as a !!name command in the resulting header.

Save a custom item pool

To avoid having to reenter the item pool details every time, a "save this item pool" button could be presented, which performs the conversion into a header as when generating the seed, but then saves it as a custom header tagged to be listed in the item pool tab. The button press could show a modal to name the resulting header before confirmation.

Custom Presets

In Custom Presets (#11) there is no field for arbitrary header code. Either such a field would have to be added, or the routine described in 4) would be used, asking to name the custom item pool and saving it as a custom header when attempting to create a custom preset form the current settings, then including that header in the preset.

@timoschwarzer
Copy link
Member

In Custom Presets (#11) there is no field for arbitrary header code. Either such a field would have to be added, or the routine described in 4) would be used, asking to name the custom item pool and saving it as a custom header when attempting to create a custom preset form the current settings, then including that header in the preset.

The UI and the server don't use the preset functionality from seedgen. Preset settings are applied before generating the seed.

@SiriusAshling
Copy link
Member Author

Well right now the UI doesn't have custom presets at all.
When it supports them, I would rather have it use the already existing functionality from seedgen instead of creating a separate unrelated system to achieve the same goal.
Otherwise it would further extend the issues around the interface behaving different than using seedgen directly.

@MunWolf
Copy link
Contributor

MunWolf commented Feb 8, 2022

This feature would be pretty great to have so we should prioritize it pretty highly,
in the same vein as header categories.

@SiriusAshling
Copy link
Member Author

Reaaaaally weird case are warps which will add a subset of possible items, say 8 out of 40 possible choices.
Probably fine to not care about that for a while :p

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

No branches or pull requests

3 participants