Browse Source

Value is set as items as used or damaged. Not calculated on the fly.

combat-2
MagicBot 8 months ago
parent
commit
a7ed30130d
  1. 5
      src/engine/net/client/handlers/RepairMsgHandler.java
  2. 12
      src/engine/net/client/handlers/VendorSellMsgHandler.java
  3. 4
      src/engine/objects/CharacterItemManager.java
  4. 4
      src/engine/objects/Item.java

5
src/engine/net/client/handlers/RepairMsgHandler.java

@ -140,6 +140,11 @@ public class RepairMsgHandler extends AbstractClientMsgHandler {
if (!DbManager.ItemQueries.SET_DURABILITY(toRepair, max)) if (!DbManager.ItemQueries.SET_DURABILITY(toRepair, max))
return true; return true;
toRepair.value = (int) (toRepair.template.item_value * (toRepair.combat_health_current / toRepair.template.combat_health_full));
if (!DbManager.ItemQueries.UPDATE_VALUE(toRepair, toRepair.value))
return true;
//repair the item //repair the item
toRepair.setCombat_health_current(max); toRepair.setCombat_health_current(max);

12
src/engine/net/client/handlers/VendorSellMsgHandler.java

@ -105,17 +105,7 @@ public class VendorSellMsgHandler extends AbstractClientMsgHandler {
//get goldItem cost to sell //get goldItem cost to sell
cost = sell.template.item_value; cost = sell.value;
//apply damaged value reduction
float damagedModifier = sell.combat_health_current / sell.template.combat_health_full;
float chargeModifier = 1.0f;
if (sell.chargesRemaining != 0)
chargeModifier = sell.chargesRemaining * 1.0f / sell.template.item_initial_charges;
cost *= damagedModifier;
cost *= chargeModifier;
float bargain = player.getBargain(); float bargain = player.getBargain();
float profit = npc.getBuyPercent(player) + bargain; float profit = npc.getBuyPercent(player) + bargain;

4
src/engine/objects/CharacterItemManager.java

@ -2358,7 +2358,9 @@ public class CharacterItemManager {
if (!DbManager.ItemQueries.SET_DURABILITY(item, dur)) if (!DbManager.ItemQueries.SET_DURABILITY(item, dur))
return; return;
item.setCombat_health_current((short) dur); item.setCombat_health_current((short) dur);
item.value = (int) (item.template.item_value * (item.combat_health_current / item.template.combat_health_full));
if (!DbManager.ItemQueries.UPDATE_VALUE(item, item.value))
return;
} }
if (this.absCharacter.getObjectType().equals(GameObjectType.PlayerCharacter) == false) if (this.absCharacter.getObjectType().equals(GameObjectType.PlayerCharacter) == false)

4
src/engine/objects/Item.java

@ -52,7 +52,7 @@ public class Item extends AbstractWorldObject {
public Enum.EquipSlotType equipSlot; public Enum.EquipSlotType equipSlot;
private boolean canDestroy; private boolean canDestroy;
private boolean isRandom = false; private boolean isRandom = false;
private int value; public int value;
public OwnerType ownerType; public OwnerType ownerType;
public int templateID; public int templateID;
private long dateToUpgrade; private long dateToUpgrade;
@ -781,6 +781,8 @@ public class Item extends AbstractWorldObject {
if (this.chargesRemaining < 0) if (this.chargesRemaining < 0)
this.chargesRemaining = 0; this.chargesRemaining = 0;
DbManager.ItemQueries.UPDATE_REMAINING_CHARGES(this); DbManager.ItemQueries.UPDATE_REMAINING_CHARGES(this);
this.value = this.value * (this.chargesRemaining / this.template.item_initial_charges);
DbManager.ItemQueries.UPDATE_VALUE(this, this.value);
} }
public void zeroItem() { public void zeroItem() {

Loading…
Cancel
Save