Many game items share the same images. The reason for that, as was explained, a RAM limitations. To overcome this technically I suggest making game icons two-layered, so that each image is composed from two textures, front one drawn above the back one with a help of transparency. Basic, right?
For example, a fire, poison or frost bows all may share the same front image of the bow, but have different backgrounds showing flames, poison drops or snowflakes. Those "backgrounds" may similarly be used for swords as well or even some armor. For example the Breastplate of the Forge can really benefit of a generic flames background layer to be distinct from a Platemail Vest.
Imagine we have 400 items. With individual textures for each one the 400 textures will be needed. But with 2-layered approach in best case one may be good with just 20+20=40 textures thanks to combination possibility.
For example, a fire, poison or frost bows all may share the same front image of the bow, but have different backgrounds showing flames, poison drops or snowflakes. Those "backgrounds" may similarly be used for swords as well or even some armor. For example the Breastplate of the Forge can really benefit of a generic flames background layer to be distinct from a Platemail Vest.
Imagine we have 400 items. With individual textures for each one the 400 textures will be needed. But with 2-layered approach in best case one may be good with just 20+20=40 textures thanks to combination possibility.