Well, that was part of the “maybe” there - it’s a problem I have to study in more depth. But the implementation right now just seems bad. At the very least I’d like to reduce definition dependencies like “ammo” and the inability to have multipurpose items, like a tool or weapon you can ‘wear’.
It may end up just involving reimplementing a better, more sensible subclass system in the end, but at the very least I want to get rid of the whole “tool” and “ammo” subclasses - any item should be able to be assigned a ‘use’ action (even if it’s just some silly message about how using this like that would be ill advised), and it would be trivial to handle well, and every item should be valid ammo if something really wants to use it for that, without having to change the definition of the ammo item itself. Something that, I’ll note, will mean a lot of headaches with the proposed mod-manager I want to implement if it is not changed.
Subclasses like ‘guns’ could very well stick around when I finish my analysis, but having multiple subclasses makes Artifacts… weird. Because artifacts are weird, admittedly, but it would be better, I think, to have it work in a different way.
I definitely agree about polymorphism and subobjects being potentially valuable. I’ll certainly be taking your suggestions into account, as I’ve not done much here except getting frustrated with the limitations of the system as-is.