Crafting/Item simplification

I realize it would probably take a fair amount of time and effort, but I think it would be worthwhile to simplify the current crafting system.

Items would be defined in the code with tags like “sharp” or “container” or “explosive” along with the material they are made of (I believe materials are already implemented?)

This would allow crafting recipes to call for a specific kind of item instead of a bunch of OR’s and every possible item.

So crafting for example, a grenade, would require “1 [metal] [container], 200 units of [explosive], Nails OR BBs, and 1 [fastener]” instead of the current mess of ORs it is now.

This would also make it easier to keep compatibility as new items or recipes are added. So if, for example, a hunting knife is added, the tags would allow it to be used in recipes already calling for any knife-life object.

Sounds like a good addition, but it hits a snag when you consider deconstruction, and knowing what to give back. Unless all crafted items fully track their component items, rather than the recipe used, could be exploity. Could be that full crafted tracking is done/in progress, though to me, that might be a bit over the top for detail.

Deconstruction can just return a generic pile of scrap, eg metal chunks, metal scraps, instead of specific usable items, so it can be not-so-exploity.

This idea is nice up to a point. Tags would simplify adding new items, but would also generate some strange cases. For example, scissors or a machete would probably have the sharp tag and could probably both do well at chopping string or whatever. A machete wouldn’t be great for chopping up clothes and scissors probably couldn’t sharpen a wood spear.

It’s a good idea, just most of the tools seem too differentiated. I would be all for merging tin and aluminum cans though :slight_smile:

I think you can still do it. Just add more tags. I really like this idea.
[Sharp - Wood] would be a tag for something that let’s you work wood.
[Sharp - Cloth] would be a tag for something that let’s you work cloth.
Though I doubt I’d call this a simplification. The system itself would be harder to code (thus being more complex) it’d just be easier to maintain.