diff --git a/src/engine/objects/CharacterItemManager.java b/src/engine/objects/CharacterItemManager.java index 0a46b40a..0bd2fa07 100644 --- a/src/engine/objects/CharacterItemManager.java +++ b/src/engine/objects/CharacterItemManager.java @@ -1482,10 +1482,10 @@ public class CharacterItemManager { if (!purchasedItem.moveItemToInventory((PlayerCharacter) this.absCharacter)) return false; - if (purchasedItem.getValue() != purchasedItem.magicValue) { - DbManager.ItemQueries.UPDATE_VALUE(purchasedItem, 0); - purchasedItem.setValue(0); - } + // Reset value + purchasedItem.value = (int) (purchasedItem.template.item_value * (purchasedItem.combat_health_current / purchasedItem.template.combat_health_full)); + purchasedItem.value = purchasedItem.value * (purchasedItem.chargesRemaining / purchasedItem.template.item_initial_charges); + DbManager.ItemQueries.UPDATE_VALUE(purchasedItem, purchasedItem.value); // db transfer successfull, remove from this character // skip this check if this is a mobLoot item (which is not in any inventory) diff --git a/src/engine/objects/Item.java b/src/engine/objects/Item.java index 91382174..2fde1d9e 100644 --- a/src/engine/objects/Item.java +++ b/src/engine/objects/Item.java @@ -781,7 +781,7 @@ public class Item extends AbstractWorldObject { if (this.chargesRemaining < 0) this.chargesRemaining = 0; DbManager.ItemQueries.UPDATE_REMAINING_CHARGES(this); - this.value = this.value * (this.chargesRemaining / this.template.item_initial_charges); + this.value = this.template.item_value * (this.chargesRemaining / this.template.item_initial_charges); DbManager.ItemQueries.UPDATE_VALUE(this, this.value); }