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

Inventory Enhancements and Nestable Containers #10926

Closed
1 of 9 tasks
DavidKeaton opened this issue Jan 19, 2015 · 21 comments
Closed
1 of 9 tasks

Inventory Enhancements and Nestable Containers #10926

DavidKeaton opened this issue Jan 19, 2015 · 21 comments
Labels
<Enhancement / Feature> New features, or enhancements on existing Game: Mechanics Change Code that changes how major features work Info / User Interface Game - player communication, menus, etc. (P5 - Long-term) Long-term WIP, may stay on the list for a while.

Comments

@DavidKeaton
Copy link
Contributor

Hello all, so while my medical stuff is still in design, I figured I would tackle some other things...
As always all comments, suggestions, constructive criticism are very welcome! Let's help me make this system kick ass!

Also, git reviewers and devs, bare with me a bit too. This is the biggest addition I have both started on and actually done a good bit of work to. I can always fix any issues you have with my code, so don't toss me to the curb over how I do things. :-)

Introduction

So, as many of you are aware, the inventory system needs a bit of upgrading. I would love to add some great things I have considered and seen on the forums, but all are welcome to add!
I plan on reworking the inventory system to bring it up to speed with the rest of the game. AIM is amazing, and I use it for 99% of my inventory management, but even it has shortfalls! gasp

So therefore, this is happening. Bags will no longer simply "increase your volume" allowing a cluttered inventory. All items will need to be in a contianer/bag/pocket/etc. Gone are the times where you carry everything in your hands!

Notes

  • I use bags and containers fairly interchangeably in discussions, but the code will be clear.
  • Volume, Storage, Weight, and Capacity will go nowhere, just be reworked or expanded.
  • No 0 volume items in a bag. Even if you roll up a backpack and shove it in a duffel bag, that backpack still needs to take up space!
  • Any item placed in a "child" bag will take up the correct space in both its "parent" container[s] and the root container.
  • Bags will be able to be searched recursively, filterable, have auto-sort/auto-contain rules [such as 'all non-weapons or tools go in here' kinda stuff], and essentially be as streamlined as possible, so you don't just need to do manual item management. This system will be integrated so it's there when you realize it, and just works otherwise. No one wants to spend too much time simply having to shove each item into a bag, your PC should know where stuff goes, as should you!
  • I plan on reworking a lot of the code to be less if(is_container()) then do_stuff_with_liquids(), liquids aren't the only thing in containers now!
  • There will be various UI improvements to the default inventory screen, as well as AIM, however this is to take place after nestable containers are in and working well.
  • Using/Storing/Taking items from/into bags will use moves, and will vary depending on certain factors. Such factors may [or may not] be things like:
    • Is your bag already getting full? Needing to find a spot for your item in your bag may take extra time if that is the case, as getting the most "volume" from a bag requires sorting it. [however, I may add a sweet option on a container allowing you to just throw things in without sorting, but incurring a storage capacity penalty as you aren't taking advantage of the bag's space]
    • Is the bag on your back already? That would mean you need to take it off to throw stuff in [unless it's a fanny pack or something similar].
    • Wearing/Removing the backpack may take longer depending on weight, but I consider it more realistic to only apply to "wearing", as letting it slide off you [to drop] is fairly quick.
  • I also think adding things to certain items [like backpacks] like side netting for bottled water [or the like] would be lovely. Fast retrieval, cleaner inventory.

TODO

  • Add framework for nestable containers. [currently this is working, albeit basic]
  • Rework AIM to handle nestable containers. [kinda done in a test branch, needs more work]
  • Ensure that any item takes space in the container. [inability to infinitely hold bags in bags]
  • Rework storage, volume, etc. systems to work well with this new system.
  • Add ability to tag bags with certain features or flags, such as marking a bag as a "loot bag", thus ensuring the bag will auto-sort items you pick up into its appropriate bag.
  • Labeling bags, so you know what bag is what. [think labels on vehicle tiles, makes it obvious what bag is for what]
  • Searching into nested containers. [thus allowing you to always find your item, regardless where it is at]
  • Update things like the action menu, iexamine, iuse, etc. to work using items in containers. [no need to have knife in inventory to cut things if you can merely pull it out of a bag]
  • Move counters updated appropriately based on magic variables that are totally black magic and you can't see them without wizard eyes.

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

@DavidKeaton DavidKeaton mentioned this issue Jan 19, 2015
5 tasks
@Dozed12
Copy link
Contributor

Dozed12 commented Jan 19, 2015

Seems interesting and a step further as long as it doesnt get boring\uncessary and I do agree just adding volume isnt realistic.

@KA101 KA101 added <Enhancement / Feature> New features, or enhancements on existing Info / User Interface Game - player communication, menus, etc. Game: Mechanics Change Code that changes how major features work labels Jan 19, 2015
@kevingranade
Copy link
Member

A few top level points:
If we're going with nestable containers, it should apply to everything,
completely replacing the old system. It's not worthwhile IMO to have two
separate inventory systems, so this should apply to backpacks, bags,
pockets, sticking things in boots, bindles, boxes and anything else that
can hold stuff. In the end, your options for having something in your
inventory should be:
You're holding it
You're wearing it
It's in a container that's worn or held.

As we discussed on IRC, I don't want to land a system with an incomplete
UI. Having a unwieldy interface where you can only insert/remove items in
containers manually is worse than not having nestable containers at all.

@DavidKeaton
Copy link
Contributor Author

Agreed, and noted. The system will only have nestables.

I will get to the point where it isn't strictly inserting/removing manually, but I needed a jumping off point.

Edit: I have updated the intro to point out that "volume" in inv will change, as Kevin stated.

@EricFedrowisch
Copy link
Contributor

This looks really promising. I would love to cut down on the time I spend micro-managing my inventory to prepare for different purposed excursions. It would be great to be able to create different kits of gear ahead of time, basically once, by packing them into containers. This could also make melee characters more attractive to me as a play style. Currently I shy away as I find ranged characters can deal with encumberance more easily. If a melee character can drop their backpack and get unencumbered conveniently to be ready for combat, that would be great. Perhaps a "ditch" flag could facilitate that? If set on a container, you drop it when a key is pressed, and perhaps pick it back up and wear it when you walk back over it if no enemies are within safe mode range? Or at least, if the container labels were allowed as valid input for auto-pickup rules, you could ditch your bag and then pick it back up automatically. Just some random input.

@DavidKeaton
Copy link
Contributor Author

I really like that idea. A quick "battle mode" key then? :-)

@KA101
Copy link
Contributor

KA101 commented Jan 20, 2015

Or at least, if the container labels were allowed as valid input for auto-pickup rules, you could ditch your bag and then pick it back up automatically.

Oops, you auto-pickup your bag during combat. (Unless you turn off auto-pickup during the fight.) Friendly reminder that we try to have the program anticipate some common deaths-by-boredom, but we can't anticipate and check for every player preference. Don't get too comfy.

@DavidKeaton
Copy link
Contributor Author

Noted noted! So leave some duty to the player! Any ideas that would be nice to tie in?

@kevingranade
Copy link
Member

For that I'd say make auto-pickup of dropped stuff be opt-in rather than
opt-out.

@DavidKeaton
Copy link
Contributor Author

Yeah was thinking the same, otherwise peeps would be wondering where the hell there pickups were going.

@DavidKeaton
Copy link
Contributor Author

Okay, so still on the warpath, but I am definitely understanding where I shouldn't and should put stuff. A lot of stuff needs to be rewritten, but I'm on the case!

@Rivet-the-Zombie
Copy link
Member

Good luck, Kemosabe.

@DavidKeaton
Copy link
Contributor Author

Thanks Rivet! :-)

@Barhandar
Copy link
Contributor

Wooo sticking potatoes into canvas sacks!

I hope at least a majority of container management will be in background instead of explicit. I want to play a scavenger roguelike, not inventory management game.

As in, inventory is still looking mostly the same as now, except if you take a worn container with background-assigned items off and you have no space for the entire container on you, you're presented with the option to 'w'ield the container, and if you refuse, to drop the items on the floor (if container itself can still fit) or drop it altogether (if it can't).

So you don't have to waste time putting things into backpacks, bags, pouches and pockets manually or switching their container if you take one of them off.

However there still should be option to exempt a container from background assignment, resulting in it being manually-managed (or even auto-stocked for things like wielding items! Put a knife in a sheath, wield it, take it off, it goes back in that sheath instead of any other container).

@DavidKeaton
Copy link
Contributor Author

This is going to be where I'm putting my updates on this, as it has sat too long and i want this done before next version! Come and chat! Enjoy a drink! Tell me what I screwed up!

@Shoes01
Copy link
Contributor

Shoes01 commented Jul 3, 2015

This is a feature I would like to see realized. If you need help testing or anything let me know what I can do to help!

@DavidKeaton
Copy link
Contributor Author

This is the addition I would most love to see as well! I just have a few fixes to the latest AIM update...

I love this update though! I can't wait to get it done. :-)

@l0master
Copy link

I wonder whether nestable containers have been implemented yet?

@Zireael07
Copy link
Contributor

@l0master: Nope, not yet.

@MehMuffin
Copy link
Contributor

Assuming this one is dead, though, correct? Unless David is still working on it in stealth mode somewhere?

@DavidKeaton
Copy link
Contributor Author

Exams coming up, not to mention the extra shifts on ICU... Not likely. :-(

@illi-kun illi-kun changed the title [WIP] Inventory Enhancements and Nestable Containers Inventory Enhancements and Nestable Containers Nov 18, 2016
@illi-kun illi-kun added the (P5 - Long-term) Long-term WIP, may stay on the list for a while. label Nov 18, 2016
@Night-Pryanik
Copy link
Contributor

Similar to #3671.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
<Enhancement / Feature> New features, or enhancements on existing Game: Mechanics Change Code that changes how major features work Info / User Interface Game - player communication, menus, etc. (P5 - Long-term) Long-term WIP, may stay on the list for a while.
Projects
None yet
Development

No branches or pull requests