diff --git a/Libraries/SPTarkov.Server.Assets/SPT_Data/database/bots/types/bear.json b/Libraries/SPTarkov.Server.Assets/SPT_Data/database/bots/types/bear.json index ef45a895..b66bfc3d 100644 --- a/Libraries/SPTarkov.Server.Assets/SPT_Data/database/bots/types/bear.json +++ b/Libraries/SPTarkov.Server.Assets/SPT_Data/database/bots/types/bear.json @@ -2978,7 +2978,8 @@ "chrispawl89", "hulkhan", "LycorisOni", - "Quik" + "Quik", + "Badger" ], "generation": { "items": { diff --git a/Libraries/SPTarkov.Server.Assets/SPT_Data/database/bots/types/usec.json b/Libraries/SPTarkov.Server.Assets/SPT_Data/database/bots/types/usec.json index d3bf68d3..8052449f 100644 --- a/Libraries/SPTarkov.Server.Assets/SPT_Data/database/bots/types/usec.json +++ b/Libraries/SPTarkov.Server.Assets/SPT_Data/database/bots/types/usec.json @@ -2969,7 +2969,8 @@ "chrispawl89", "hulkhan", "LycorisOni", - "Quik" + "Quik", + "Badger" ], "generation": { "items": { diff --git a/Libraries/SPTarkov.Server.Assets/SPT_Data/database/templates/items.json b/Libraries/SPTarkov.Server.Assets/SPT_Data/database/templates/items.json index 11d2dd92..df4bb233 100644 --- a/Libraries/SPTarkov.Server.Assets/SPT_Data/database/templates/items.json +++ b/Libraries/SPTarkov.Server.Assets/SPT_Data/database/templates/items.json @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5312d5454b1702f8ad1495d7635e07cec2b70941d46e819f236c5eb084bbe5aa -size 19115860 +oid sha256:3f35bd85bc19c6c224e0dcc0a05120b7cba412ec885c4f73613c615092a2fe96 +size 19116421 diff --git a/Libraries/SPTarkov.Server.Core/Callbacks/AchievementCallbacks.cs b/Libraries/SPTarkov.Server.Core/Callbacks/AchievementCallbacks.cs index 10f2e995..92775532 100644 --- a/Libraries/SPTarkov.Server.Core/Callbacks/AchievementCallbacks.cs +++ b/Libraries/SPTarkov.Server.Core/Callbacks/AchievementCallbacks.cs @@ -20,7 +20,7 @@ public class AchievementCallbacks(AchievementController achievementController, H } /// - /// Handle client/achievement/statistic + /// Handle client/achievement/statistic /// /// public ValueTask Statistic(string url, EmptyRequestData _, MongoId sessionID) diff --git a/Libraries/SPTarkov.Server.Core/Extensions/ProfileExtensions.cs b/Libraries/SPTarkov.Server.Core/Extensions/ProfileExtensions.cs index 46b265e2..97dfaec9 100644 --- a/Libraries/SPTarkov.Server.Core/Extensions/ProfileExtensions.cs +++ b/Libraries/SPTarkov.Server.Core/Extensions/ProfileExtensions.cs @@ -324,4 +324,14 @@ public static class ProfileExtensions // No trader data on player profile, fail check return false; } + + /// + /// Get Ids of traders with an unlocked status of "false" + /// + /// Player profile + /// Hashset of Trader ids + public static HashSet GetLockedTraderIds(this PmcData pmcData) + { + return pmcData.TradersInfo?.Where(trader => trader.Value.Unlocked == false).Select(t => t.Key).ToHashSet() ?? []; + } } diff --git a/Libraries/SPTarkov.Server.Core/Helpers/RagfairOfferHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/RagfairOfferHelper.cs index 25104012..8e9afc30 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/RagfairOfferHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/RagfairOfferHelper.cs @@ -237,6 +237,7 @@ public class RagfairOfferHelper( ? cloner.Clone(searchRequest.BuildItems.Keys.ToDictionary(key => key, ragfairOfferService.GetOffersOfType)) : searchRequest.BuildItems.Keys.ToDictionary(key => key, ragfairOfferService.GetOffersOfType); + var lockedTraders = pmcData.GetLockedTraderIds(); foreach (var (desiredItemTpl, matchingOffers) in buildItems) { if (matchingOffers is null) @@ -266,6 +267,12 @@ public class RagfairOfferHelper( if (offer.IsTraderOffer()) { + // Player hasn't unlocked trader selling this offer, skip + if (lockedTraders.Contains(offer.User.Id)) + { + continue; + } + if (TraderBuyRestrictionReached(offer)) { continue; diff --git a/Libraries/SPTarkov.Server.Core/Services/RagfairPriceService.cs b/Libraries/SPTarkov.Server.Core/Services/RagfairPriceService.cs index 494fd6c3..f379c948 100644 --- a/Libraries/SPTarkov.Server.Core/Services/RagfairPriceService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/RagfairPriceService.cs @@ -389,10 +389,6 @@ public class RagfairPriceService( protected double AdjustUnreasonablePrice(UnreasonableModPrices unreasonableItemChange, MongoId itemTpl, double price) { var itemHandbookPrice = handbookHelper.GetTemplatePrice(itemTpl); - if (itemHandbookPrice > 0) - { - return price; - } // Flea price is over handbook price if (price > itemHandbookPrice * unreasonableItemChange.HandbookPriceOverMultiplier)