using Core.Annotations; using Core.Models.Common; using Core.Models.Eft.Common.Tables; using Core.Models.Spt.Config; namespace Core.Services; [Injectable(InjectionType.Singleton)] public class RagfairPriceService { /// /// Generate static (handbook) and dynamic (prices.json) flea prices, store inside class as dictionaries /// public async Task OnLoadAsync() { throw new NotImplementedException(); } public string GetRoute() { throw new NotImplementedException(); } /// /// Iterate over all items of type "Item" in db and get template price, store in cache /// public void RefreshStaticPrices() { throw new NotImplementedException(); } /// /// Copy the prices.json data into our dynamic price dictionary /// public void RefreshDynamicPrices() { throw new NotImplementedException(); } /// /// Get the dynamic price for an item. If value doesn't exist, use static (handbook) value. /// if no static value, return 1 /// /// Item tpl id to get price for /// price in roubles public double GetFleaPriceForItem(string tplId) { throw new NotImplementedException(); } /// /// Get the flea price for an offers items + children /// /// offer item + children to process /// Rouble price public double GetFleaPriceForOfferItems(List offerItems) { throw new NotImplementedException(); } /// /// get the dynamic (flea) price for an item /// /// item template id to look up /// price in roubles public double GetDynamicPriceForItem(string itemTpl) { throw new NotImplementedException(); } /// /// Grab the static (handbook) for an item by its tplId /// /// item template id to look up /// price in roubles public double GetStaticPriceForItem(string itemTpl) { throw new NotImplementedException(); } /// /// Get prices for all items on flea, prioritize handbook prices first, use prices from prices.json if missing /// This will refresh the caches prior to building the output /// /// Dictionary of item tpls and rouble cost public Dictionary GetAllFleaPrices() { throw new NotImplementedException(); } public Dictionary GetAllStaticPrices() { throw new NotImplementedException(); } /// /// Get the percentage difference between two values /// /// numerical value a /// numerical value b /// different in percent protected double GetPriceDifference(double a, double b) { throw new NotImplementedException(); } /// /// Get the rouble price for an assorts barter scheme /// /// /// Rouble price public double GetBarterPrice(List barterScheme) { throw new NotImplementedException(); } /// /// Generate a currency cost for an item and its mods /// /// Item with mods to get price for /// Currency price desired in /// Price is for a pack type offer /// cost of item in desired currency public double GetDynamicOfferPriceForOffer(List offerItems, string desiredCurrency, bool isPackOffer) { throw new NotImplementedException(); } /// /// /// items tpl value /// Currency to return result in /// Item object (used for weapon presets) /// /// /// public double GetDynamicItemPrice(string itemTemplateId, string desiredCurrency, Item item = null, List offerItems = null, bool? isPackOffer = null) { throw new NotImplementedException(); } /// /// 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 decimal AdjustUnreasonablePrice( List handbookPrices, UnreasonableModPrices unreasonableItemChange, string itemTpl, decimal price) { throw new NotImplementedException(); } /// /// Get different min/max price multipliers for different offer types (preset/pack/default) /// /// Offer is a preset /// Offer is a pack /// MinMax values protected MinMax GetOfferTypeRangeValues(bool isPreset, bool isPack) { throw new NotImplementedException(); } /// /// Check to see if an items price is below its handbook price and adjust according to values set to config/ragfair.json /// /// price of item /// item template Id being checked /// adjusted price value in roubles protected decimal AdjustPriceIfBelowHandbook(decimal itemPrice, string itemTpl) { throw new NotImplementedException(); } /// /// Multiply the price by a randomised curve where n = 2, shift = 2 /// /// price to alter /// min and max to adjust price by /// multiplied price protected decimal RandomiseOfferPrice(decimal existingPrice, MinMax rangeValues) { throw new NotImplementedException(); } /// /// Calculate the cost of a weapon preset by adding together the price of its mods + base price of default weapon preset /// /// base weapon /// weapon plus mods /// price of existing base weapon /// price of weapon in roubles protected decimal GetWeaponPresetPrice(Item weaponRootItem, List weaponWithChildren, decimal existingPrice) { throw new NotImplementedException(); } /// /// Get the highest price for an item that is stored in handbook or trader assorts /// /// Item to get highest price of /// rouble cost protected decimal GetHighestHandbookOrTraderPriceAsRouble(string itemTpl) { throw new NotImplementedException(); } /// /// Attempt to get the default preset for a weapon, failing that get the first preset in the array /// (assumes default = has encyclopedia entry) /// /// weapon presets to choose from /// Default preset object protected object GetWeaponPreset(Item weapon) { throw new NotImplementedException(); } }