diasurgical / devilutionX

Diablo build for modern operating systems
Other
8.08k stars 795 forks source link

[Feature Request]: Alternate Belt Auto-Fill #6826

Open tunbridgep opened 12 months ago

tunbridgep commented 12 months ago

Feature Type

Quality of Life

Describe

Belt autofill is quite nice, however I tend to find quite often that my belt fills up with crap.

Ideally I would like to have 4 or so slots for health potions, a few for mana potions, maybe a rune, and a scroll of some sort, or maybe half and half Health and Mana potions.

Currently, autofill just fills up the belt whenever it can, including with scrolls, etc. I like to meticulously manage my belt, and have to choose between either completely filling the belt manually and turning off autofill, or putting up with empty slots being filled with crap. This is usually an issue when I run out of potions, the slots become empty and can be filled by whatever, usually stuff I don't want on my belt.

I feel like a setting should be added, called "alternate belt auto fill", which, when enabled, will give more fine-grained control over what goes into your belt

The way it would work is like this:

  1. Place an item in a belt slot, such as a healing potion.
  2. When the item in that type is used up, and is not automatically refilled, the slot becomes "grayed out", showing a transparent version of the item.
  3. Only other items of the same type can be automatically added to that belt slot, either through inventory autofill, or by picking one up off the floor.
  4. Right-clicking on the grayed out slot will remove the filter and make it act as it normally does already.

This should be relatively easy to understand for players, intuitive, and very flexible for different people's needs surrounding the belt.

Trihedraf commented 12 months ago

Turning on auto fill belt doesn't add stuff to your belt that you pick up. It auto replaces the potion you use in your belt with one in your inventory. Your belt filling with the stuff as you run out is vanilla Diablo behavior.

AJenbo commented 12 months ago

How do you gray out a gray square :thinking:

AJenbo commented 12 months ago

I think the way to facilitate this would be to add a way for Lua to evaluate if an item should be placed in the belt.

To make it possible to make the described interactions work (which could make the mod more user friendly) we could have to also expose a way to draw the item sprites and receive mouse events. Both of these mess well with the goal of being able to implement interfaces via Lua.

FitzRoyX commented 11 months ago

To me this just seems like an inferior version of potion stacking. You would need ugly colored gui overlays to mark what type of item you want in each slot, and then there would be lots of misclick potential where you accidentally "reassign" an empty slot when trying to pick up a belt item.

The existing auto refill feature does a pretty darn good job of simulating potion stacking as it is. How is junk getting into your empty belt slots unless you've depleted your potions? If you've depleted your potions, isn't that town portal restock time anyway?

AJenbo commented 11 months ago

Why a colored overlay, a ghost version of the pod should work (like the left side of a 2 handed weapon)

FitzRoyX commented 11 months ago

Couldn't that be confusing in a game this dark, a bunch of ghost potions might look at a glance like they're real? But also, needing to have an item to set a slot, and then right-clicking to unset it when right-click is also bound to using potions? That system would also result in annoying misclicks.

AJenbo commented 11 months ago

The don't enable the mod, besides the panels aren't dark

julealgon commented 11 months ago

Another (perhaps more elaborate) idea would be to expose some sort of belt configuration menu/UI where the player could configure what each slot in the belt could carry.

For example:

Once configured, all game pickup and "move-to-belt" routines would respect these settings, and player attempts at placing different items in them manually by dragging would also be conditionally blocked.

Configuration could also potentially define a "priority". Take slot1 as an example there: when the potion is consumed, and "fill from inventory" is enabled, it could prioritize filling the slot with a Full Healing potion instead of a Full Rejuvenation potion if both are available for refill.

Could even make it so that this configuration was performed by Griswold or something, with an additional vendor UI page.

Obviously, this setup would be per-character and have to live as part of the save file using one of those extension file add-in things that you guys have.

qndel commented 11 months ago

newbeltfeature I added a "ghost" row in tchernobog that lets you select item type that goes there

tunbridgep commented 8 months ago

@qndel That looks awesome. I should really check out tchernobog at some point. However, having something like this work with vanilla could be good too.

qndel commented 8 months ago

@qndel That looks awesome. I should really check out tchernobog at some point. However, having something like this work with vanilla could be good too.

d1's belt is so limited I don't really see a point 😅