diff --git a/Libraries/SPTarkov.Server.Assets/SPT_Data/configs/ragfair.json b/Libraries/SPTarkov.Server.Assets/SPT_Data/configs/ragfair.json index 01c5c325..4f92c947 100644 --- a/Libraries/SPTarkov.Server.Assets/SPT_Data/configs/ragfair.json +++ b/Libraries/SPTarkov.Server.Assets/SPT_Data/configs/ragfair.json @@ -462,5 +462,6 @@ "5ac3b934156ae10c4430e83c": true, "5c0647fdd443bc2504c2d371": true, "6617beeaa9cfa777ca915b7c": true - } + }, + "offerListingTaxMultiplier": -1 } diff --git a/Libraries/SPTarkov.Server.Core/Models/Spt/Config/RagfairConfig.cs b/Libraries/SPTarkov.Server.Core/Models/Spt/Config/RagfairConfig.cs index 9c4d7dc9..fafb706f 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Spt/Config/RagfairConfig.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Spt/Config/RagfairConfig.cs @@ -26,17 +26,23 @@ public record RagfairConfig : BaseConfig [JsonPropertyName("sell")] public required Sell Sell { get; set; } + [JsonPropertyName("dynamic")] + public required Dynamic Dynamic { get; set; } + + [JsonPropertyName("tieredFlea")] + public required TieredFlea TieredFlea { get; set; } + /// /// Trader ids + should their assorts be listed on flea /// [JsonPropertyName("traders")] public required Dictionary Traders { get; set; } - [JsonPropertyName("dynamic")] - public required Dynamic Dynamic { get; set; } - - [JsonPropertyName("tieredFlea")] - public required TieredFlea TieredFlea { get; set; } + /// + /// Flea tax multi, default is off (-1) + /// + [JsonPropertyName("offerListingTaxMultiplier")] + public int OfferListingTaxMultiplier { get; set; } } public record Sell diff --git a/Libraries/SPTarkov.Server.Core/Services/RagfairTaxService.cs b/Libraries/SPTarkov.Server.Core/Services/RagfairTaxService.cs index 7b0dbbc0..5a1979ee 100644 --- a/Libraries/SPTarkov.Server.Core/Services/RagfairTaxService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/RagfairTaxService.cs @@ -6,7 +6,9 @@ using SPTarkov.Server.Core.Models.Eft.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Eft.Ragfair; using SPTarkov.Server.Core.Models.Enums; +using SPTarkov.Server.Core.Models.Spt.Config; using SPTarkov.Server.Core.Models.Utils; +using SPTarkov.Server.Core.Servers; using SPTarkov.Server.Core.Utils.Cloners; using LogLevel = SPTarkov.Server.Core.Models.Spt.Logging.LogLevel; @@ -18,11 +20,14 @@ public class RagfairTaxService( DatabaseService databaseService, RagfairPriceService ragfairPriceService, ItemHelper itemHelper, + ConfigServer configServer, ICloner cloner ) { protected readonly Dictionary _playerOfferTaxCache = new(); + protected readonly RagfairConfig RagfairConfig = configServer.GetConfig(); + public void StoreClientOfferTaxValue(MongoId sessionId, StorePlayerOfferTaxAmountRequestData offer) { _playerOfferTaxCache[offer.Id.Value] = offer; @@ -113,6 +118,11 @@ public class RagfairTaxService( logger.Debug($"Tax Calculated to be: {taxValue}"); } + if (RagfairConfig.OfferListingTaxMultiplier != -1) + { + taxValue *= RagfairConfig.OfferListingTaxMultiplier; + } + return taxValue; }