ooh god it hurts :(...
Somewhere in your source you SHOULD have something to handle recalculating stats (called only when equipment or stats are changed!)
Inside this is where you should be doing your damn stat calculations...
eg
public void RecalculateAttack()
{
MinimumDamage = 0;
MaximumDamage = 0;
//etc... Set ALL stats to zero. We're doing a full recalculation
foreach(Item itm in Equipment.Values)//or however you manage your equipment. Personally I wrote an Equipment class but that's beside the pt
{
MinimumDamage += itm.Info.MinimumDamage;
//ETC
if(itm.CompositionData != null)
{
//Add all bonuses from the item being +'d!
}
if(itm.RefinerySoulData != null)
{
//Add all refinery and soul bonuses the item has to stats!
}
}
}
What you guys are showing in your get/set method is an infinite loop...
You're literally saying..
When X is assigned to (X = anything) set X = something for each item I have equipped. Not cool...