repair cost formula fixed

This commit is contained in:
2025-01-05 20:05:41 -06:00
parent f73ed17c05
commit 76eed79b0a
2 changed files with 10 additions and 18 deletions
+6 -17
View File
@@ -1681,23 +1681,12 @@ public class ClientMessagePump implements NetMsgHandler {
return;
}
//int cost = ((int)((toRepair.getMagicValue()/max*(max - dur)) + (npc.getSpecialPrice() * npc.buyPercent))) + (int)(npc.getSpecialPrice() * (max - dur));
double repairRate = 0.067; // A proportional repair rate based on example
int maxRepairCost = (int)(toRepair.getMagicValue() * repairRate);
// Calculate the percentage of the durability that is damaged
double damageRatio = (double)(toRepair.getDurabilityMax() - toRepair.getDurabilityCurrent()) / toRepair.getDurabilityMax();
// Calculate the repair cost based on the damage ratio and item value
int cost = (int)(maxRepairCost * damageRatio);
//int pointsToRepair = max - dur;
//int magicValue = toRepair.getMagicValue();
//if(magicValue == 0)
// magicValue = 1;
//int calculatedValue = toRepair.getDurabilityMax() * magicValue;
//float costPerPoint = (magicValue / max) * ( 1 + npc.buyPercent);
//cost = (int)(pointsToRepair * costPerPoint) + npc.getSpecialPrice();
int pointsToRepair = max - dur;
double damageRatio = (double)1.0d - (toRepair.getDurabilityMax() - toRepair.getDurabilityCurrent()) / toRepair.getDurabilityMax();
int modifiedValue = (int)(damageRatio * toRepair.getMagicValue());
int costPerPoint = modifiedValue / toRepair.getDurabilityMax();
int modifiedRepairCost = (int)(pointsToRepair * costPerPoint)+ npc.getSpecialPrice();
int cost = (int)(modifiedRepairCost * 1 + npc.buyPercent) + npc.getSpecialPrice();
Building b = (!npc.isStatic()) ? npc.getBuilding() : null;
if (b != null)
+4 -1
View File
@@ -1227,7 +1227,10 @@ public class Item extends AbstractWorldObject {
}
public final int getMagicValue() {
return this.magicValue;
int val = this.calcMagicValue();
if(val == 0)
val = 1;
return val + this.getItemBase().getMagicValue();
}
public int getBaseValue() {