maybe this isn’t applicable to your situation but when I have 2 tightly related classes I usually try to merge them into a single class, especially if they share a lot of dependencies or have a circular dependency on each other.
i’m just speaking from a general programming perspective here because i just got started with the engine, but…
why shouldn’t looting be just a function of the inventory? it’s the process of putting things into itself.
items intrinsically have attributes, it should be part of the item class shouldn’t it?