Fix item sell formula for Ammo and Ability items

This commit is contained in:
Yury
2025-03-25 18:51:55 +02:00
parent 4e0b6440d9
commit 36d797b391
@@ -117,11 +117,11 @@ public class SellItemsClientFunction : ICloudScriptFunction<SellItemsClientReque
continue; continue;
} }
var blueprintData = blueprints[inventoryItem.BaseItemId]; var blueprintData = blueprints[inventoryItem.BaseItemId];
// TODO: Probably better to decide based on item kind instead // NOTE: Ammo and consumables have reverse price mapping.
if (inventoryItem.Durability == -1) { if (blueprintData.Kind == "Ammo" || blueprintData.Kind == "Ability") {
factionProgression += (int)((float)blueprintData.OverrideScrappingReputation / blueprintData.MaxAmountPerStack * inventoryItem.Amount); factionProgression += (int)((float)blueprintData.OverrideScrappingReputation / blueprintData.MaxAmountPerStack * inventoryItem.Amount);
balance.SoftCurrency += (int)((float)blueprintData.OverrideScrappingReturns / blueprintData.MaxAmountPerStack * inventoryItem.Amount); balance.SoftCurrency += (int)((float)blueprintData.OverrideScrappingReturns / blueprintData.MaxAmountPerStack * inventoryItem.Amount);
} else { } else if (blueprintData.Kind == "Armor") {
factionProgression += (int)Math.Max( factionProgression += (int)Math.Max(
(float)inventoryItem.Durability / blueprintData.DurabilityMax * blueprintData.OverrideScrappingReputation, (float)inventoryItem.Durability / blueprintData.DurabilityMax * blueprintData.OverrideScrappingReputation,
blueprintData.OverrideScrappingReputation * blueprintData.DurabilityBrokenScrappingReturnModifier blueprintData.OverrideScrappingReputation * blueprintData.DurabilityBrokenScrappingReturnModifier
@@ -130,6 +130,9 @@ public class SellItemsClientFunction : ICloudScriptFunction<SellItemsClientReque
(float)inventoryItem.Durability / blueprintData.DurabilityMax * blueprintData.OverrideScrappingReturns, (float)inventoryItem.Durability / blueprintData.DurabilityMax * blueprintData.OverrideScrappingReturns,
blueprintData.OverrideScrappingReturns * blueprintData.DurabilityBrokenScrappingReturnModifier blueprintData.OverrideScrappingReturns * blueprintData.DurabilityBrokenScrappingReturnModifier
); );
} else {
factionProgression += blueprintData.OverrideScrappingReputation * inventoryItem.Amount;
balance.SoftCurrency += blueprintData.OverrideScrappingReturns * inventoryItem.Amount;
} }
scrappedItemIds.Add(itemId); scrappedItemIds.Add(itemId);