What programming language are you using? I will respond as though you are using Game Maker because that is what I use, but the concepts should be able to be applied to whatever you are using. Also, I am not entirely sure I am understanding your situation... But.
It might be a good idea to make your weapon inventory into a list of lists... By this I mean.
Every time you pick up a new weapon instead of just storing the ID of the weapon to the list, store a list of its attributes to the list. This could be done in a number of ways and I can't say that I know which would be the most efficient, but what I might try to do is something like this.
Instead of just reserving a spot in the list for the ID of the weapon, you can reserve say... 10 slots in the list for the weapons ID and then its special attributes. So when you add the newly acquired weapon you will write the ID to the list and then all of its attributes in the same list. Then when you need to read the information from the list you will have to remember how many slots of data are allotted per weapon and then just loop through and read all the data from the one list.
Alternatively you could store each weapon and its attributes to its own mini list, and then store all the ID's of the different weapon lists to a larger master list. Then when you need to call the data you can call the correct weapon list from the master list and then read the weapon ID and attributes from that list. An example of what you might store in you mini list would be...
[ 0] = Weapon ID;
[1] = Level of Polish;
[2] = Sharpness;
[3] = Age of Equipment;
[4] = Fire Attribute;
[5] = Water Attribute;
[6] = Lightening Attribute;
The default value for each of the attributes would be 0. Then you can store a value anywhere from -1 to 1 indicating that the knife is either completely dull (-1) or as sharp as it could possibly be (1). Then when you build your equations that determine how much the weapon hurts the enemy, you will need to make sure that each of the attributes are worked into the equation.
This methode is assuming that you have stored somewhere else the base damage or strength of the particular weapon... However you could also store this information in the above list as well, kind of like this.
[ 0] = Weapon ID;
[1] = Power of Weapon;
[2] = Weapon/Armor Defense
...
...
[3] = Level of Polish;
[4] = Sharpness;
[5] = Age of Equipment;
[6] = Fire Attribute;
[7] = Water Attribute;
[8] = Lightening Attribute;
...
...
...
Not sure if this makes sense, but it would be one way of doing it if I am understanding your problem correctly. Hope it helped.