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();
}
}