Slime Squisher
Posts: 392
Joined: Sunday, 11th September 2016, 17:21
Streamlined Stash Proposal
Add 2 new configuration options:
1) An equipment quality threshold, with 5 options: "damaged", "mundane", "magical", "artefact", and "none", set to "magical" by default as it would be most convenient in the general case and should alert players to the option's existence by demonstrating a difference in behavior. Autoexplore would be modified to move to and stop at tiles containing weapons and armour of the specified quality or higher, without picking them up. "Magical" would treat unidentified cursed equipment as if it were magical equipment, as configuration options shouldn't provide the player with new information. (Optionally, this filter can be applied to jewellery as well as weapons and armour, and weapons and armour could be added to the valid autopickup types, to allow more nuanced filtering, in which case I would suggest that any item to which both filters apply that passes one and fails the other should be handled with the default behavior).
2) A default behavior, with 2 options: "seek" and "ignore", set to "ignore" by default as it's the more turn-efficient option, and players rarely care about equipment below a certain quality level anyway. This would define whether autoexplore should move the player towards and through tiles containing only equipment that falls below the threshold or is not flagged to autopickup. Essentially, this determines whether autopickup should expend any extra turns stashing junk items.
When autoexploring through or from a tile containing items, those items are automatically placed in the player's stash without consuming any time. By the time this happens, autopickup should already have triggered and the player should have had the opportunity to manually pick up any equipment they're immediately interested in.
I suppose having a "stash" key to manually stash select items in the player's tile (again without consuming time) might be useful in some cases, particularly for speed runners or other players who avoid use of autoexplore. This would also help to alert new players to the existence of the stash.
When dropping items, they go into the stash rather than onto the floor, costing the same amount of time as normal. This could optionally be combined into a single operation with manual stashing, as there's already precedent for menus offering players the choice between items in inventory and on the floor, e.g. reading scrolls.
Autopickup would be modified to not pickup non-stackable newly discovered items of a type already in the player's stash, because one would assume that if the player has some of that item in their stash, then they already have as many such items in their inventory as they want and the new ones should go into the stash. This can be applied to weapons and armour by considering a new one to be a duplicate of one already in the inventory if it shares the same base item type, cursed status, and brand/ego, and if it has an equal or lesser enchantment level, however this should perhaps not be done with weapons because a player may want to consider picking up several of the same weapon type in case they want to try to use scrolls of brand weapon to obtain a variety of brands for the same base weapon type.
Optionally, modify CTRL+F to present the option to toggle between items in shops, items in the stash, and items on the floor, possibly also with a default option to show all.
Once an item is in the stash, there are 2 ways to retrieve it:
1) Enable autopickup on the items, in which case autoexplore will cause the player to automatically retrieve applicable items from their stash (assuming they don't already have any identical items in inventory that can't be stacked with the items in stash).
2) Select the items from CTRL+F as one normally would when backtracking to pick up items left behind. This would work like the current use case of searching for the items, selecting one to automove to, automoving to it, stopping on the item, and then picking it up, with some major improvements. Any number of items could be selected at once and no automovement would be involved.
With either method, retrieving items from the stash would be functionally identical to picking up items from the floor, and could use the same code for placing items into the inventory.
I'd recommend also modifying default autopickup configuration to include all forms of evokables, and possibly increase the types of ammo enabled for autopickup by default. Reason being, if the player picks up an item they're not interested in, they can drop it into the stash, and from that point on all similar items will go into the stash where they can be conveniently retrieved should the player ever decide to invest in the appropriate skills for them. On the other hand, if autopickup is not enabled for those items and the default behavior is set to "ignore", some of those items may be left behind, in the event the player doesn't coincidentally move through them, and if the player later decided to invest in training the appropriate skill, they would need to backtrack to fetch the items if they wanted access to them. So, players would have a choice between a minor inconvenience early on with more autopickups enabled or a potential major inconvenience later, with the added possibility of losing access to the items entirely if they were discovered an a temporary location such as timed portals and the Abyss, using the traditional list.