Repair Calculation

06/04/2010 02:19 kinshi88#1
Here is the correct gold calculation for repairing an item:

Code:
                int nRecoverDurability = Math.Max(0, Item.Stats.Durability - Item.CurDurability);
                if (nRecoverDurability == 0)
                    return;

                byte Quality = ItemManipulation.GetQuality((int)Item.Stats.ID);
                double QualityMultipier = 0;

                switch (Quality)
                {
                    case 9: QualityMultipier = 1.125; break;
                    case 8: QualityMultipier = 0.975; break;
                    case 7: QualityMultipier = 0.9; break;
                    case 6: QualityMultipier = 0.825; break;
                    default: QualityMultipier = 0.75; break;
                }

                int nRepairCost = 0;
                if (Item.Item.ShopBuyPrice > 0)
                    nRepairCost = (int)Math.Ceiling((Item.Stats.ShopBuyPrice * nRecoverDurability / Item.Stats.Durability) * QualityMultipier);

                nRepairCost = Math.Max(1, nRepairCost);