From ea671d2092d6d8a594d3bc2f0fcb7531c3e846f6 Mon Sep 17 00:00:00 2001 From: Chomp Date: Mon, 24 Feb 2025 17:18:25 +0000 Subject: [PATCH] Make use of handbook item cache to speed up `AdjustUnreasonablePrice` --- Libraries/Core/Services/RagfairPriceService.cs | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/Libraries/Core/Services/RagfairPriceService.cs b/Libraries/Core/Services/RagfairPriceService.cs index 96745d23..e900cd3f 100644 --- a/Libraries/Core/Services/RagfairPriceService.cs +++ b/Libraries/Core/Services/RagfairPriceService.cs @@ -288,7 +288,6 @@ public class RagfairPriceService( } price = AdjustUnreasonablePrice( - _databaseService.GetHandbook().Items, value, itemTemplateId, price @@ -316,25 +315,23 @@ public class RagfairPriceService( /// /// using data from config, adjust an items price to be relative to its handbook price /// - /// Prices of items in handbook /// Change object from config /// Item being adjusted /// Current price of item /// Adjusted price of item protected double AdjustUnreasonablePrice( - List handbookPrices, UnreasonableModPrices unreasonableItemChange, string itemTpl, double price) { - var itemHandbookPrice = handbookPrices.FirstOrDefault(handbookItem => handbookItem.Id == itemTpl); - if (itemHandbookPrice is not null) + var itemHandbookPrice = _handbookHelper.GetTemplatePrice(itemTpl); + if (itemHandbookPrice > 0) { return price; } // Flea price is over handbook price - if (price > itemHandbookPrice.Price * unreasonableItemChange.HandbookPriceOverMultiplier) + if (price > itemHandbookPrice * unreasonableItemChange.HandbookPriceOverMultiplier) { // Skip extreme values if (price <= 1) @@ -343,7 +340,7 @@ public class RagfairPriceService( } // Price is over limit, adjust - return itemHandbookPrice.Price.Value * unreasonableItemChange.NewPriceHandbookMultiplier; + return itemHandbookPrice * unreasonableItemChange.NewPriceHandbookMultiplier; } return price;