Fast item drop

This is a simple idea I had, the player can go to fast item drop and much faster than normal, throws the selected items below them, and with a medium to high risk of items that can be damaged being damaged due to be hastily grabbed or throw onto the floor beneath you.

not a bad idea, but it seems a bit micro-manage-y to have seperate commands for “drop on the floor” vs “carefully place on the floor”

Well it would be, but I feel the risk vs. reward in combat may work, since the insta death turns to drop your bag to fight that brute, you die before you drop them. With this I hope it will let you have a chance of breaking your items in order to survive against the brute.

While the “drop versus place carefully” idea has merit, and can probably be used in the interim (as my skill grind cap), I think it’s imperative that the DF-like system of “items within containers” be given some development priority. So that when you’re running around with a duffel bag filled with stuff and you’re chased by a dog, you can do the sensible thing and drop the bag, instead of dropping all items individually.

Hmm, actually that gives me an idea for a stopgap interim solution.
When multidropping, we could track if some of the dropped items decrease your carrying space - i.e. separately drop the “worn” items and the “carried” items. Store up the cumulative carrying volume of the “worn” items dropped first, and do not count the drop AP cost of “carried” items that fit within that volume. Kind of a simulation of dropping a bag of items, except you drop a bag with items, and the game gives you a drop time discount.

Like any good idea, it seems it’s been implemented already. Well, I guess that until we’re going to actually assign items to containers, this will serve well enough.

B’coz I’m such a horder, and had regularly used them to create batteries in previously editions, I save all of my aluminum can at my base. Turns out I have something like 400 of them. Anyhoo, prior to discovering it’s much easier just to craft a cupboard and move it onto their tile in order to relocate them, I had moved them with a pair of duffel bags in a more conventional manner. Now, I get why it would take a significant amount of time to pick them up, but what doesn’t make as much sense for me is how it literally took me over 30-minutes game time to drop them. Made me wonder if my character refused to part with them unless she stacked them into an elaborate castle-like structure.

Obviously it would be alot easier if associated with a container, but I kind of feel like the time units spent to drop something should be lessened. As it is I suppose it’s emulating me unzipping my duffel, pulling out the can, placing it on the ground, zipping up the duffel… unzipping the duffel, pulling out another can, placing it… ad nauseam (or, rather, 400-times! lol).

Or, at least, have the opportunity to be interrupted and get the prompt to stop if you’re hurt.

Inventory probably needs a do over with a system that breaks down the volume of each container you’re carrying and allows you to mark what’s in each container up to full. That’s micromanagey, but also extremely important, and would allow the code to know what’s in what bag and what you’re dropping. You could probably use an interface similar to the clothing-layering system, I’d imagine. At least that’s the first thing that comes to mind.

Another thought is a separate inventory management screen where, instead of ‘order by type’ it’s 'order by container.

You’d also need code to default pickups to fill your bags as you pick stuff up. So say you pick something up, iit defaults to going into bag a, and then when it can’t fit it into bag a, it fits into bag B, and so on until all volume in both bags is used up.

Just thinking about it, and I’m not a programmer, makes me feel like you’d need to a lot of new infrastructural coding.

And I totally did not see the ‘tie object to st orage container’ thread until just now.


It turns out the “brilliant” stopgap idea I had is already implemented.

// calculate the time (in player::moves) it takes to drop the // items in dropped and dropped_worn. // Items in dropped come from the main inventory (or the wielded weapon) // Items in dropped_worn are cloth that had been worn. // All items in dropped that fit into the removed storage space // (freed_volume_capacity) do not take time to drop. // Example: dropping five 2x4 (volume 5*6) and a worn backpack // (storage 40) will take only the time for dropping the backpack // dropping two more 2x4 takes the time for dropping the backpack and // dropping the remaining 2x4 that does not fit into the backpack. int game::calculate_drop_cost(std::vector<item> &dropped, const std::vector<item> &dropped_worn, int freed_volume_capacity) const { // Prefer to put small items into the backpack std::sort(dropped.begin(), dropped.end(), compare_items_by_lesser_volume); int drop_item_cnt = dropped_worn.size(); int total_volume_dropped = 0; for(size_t i = 0; i < dropped.size(); i++) { total_volume_dropped += dropped[i].volume(); if(freed_volume_capacity == 0 || total_volume_dropped > freed_volume_capacity) { drop_item_cnt++; } } return drop_item_cnt * 100; }So if you want to drop a lot of items fast, then drop them as usual, and drop a worn container large enough to fit them along with it. Probably not realistic to do the same thing for pickups, but I think this solves the problem neatly. Just need to make the advanced inventory multidrop use the same rules as regular multidrop… though that’d require that “worn” items are included in the advanced inventory screen first, I guess.

Yea, that was Ian that added that I think, previously if you dropped a worn container it would leave you super-encumbered, so you had to ridiculously micromanage dropping enough individual items to let you drop the container without becoming encumbered. The problem of course is that it randomly chooses items to drop since items are in no way tied to containers.
By the way, a post from last February on the subject :stuck_out_tongue:
I think I’ve said a LOT on the topic, but it was all quite a while ago.

Alas, we still don’t have a “You have been hurt, stop dropping?” text yet.