From 9fa0c51cee6d34dcb213f070ee74972c774d44d5 Mon Sep 17 00:00:00 2001 From: Chomp Date: Mon, 20 Oct 2025 12:59:28 +0100 Subject: [PATCH] Improved how offers are gathered prior to iteration --- .../Helpers/RagfairOfferHelper.cs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Libraries/SPTarkov.Server.Core/Helpers/RagfairOfferHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/RagfairOfferHelper.cs index 65d80fa7..25104012 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/RagfairOfferHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/RagfairOfferHelper.cs @@ -232,12 +232,13 @@ public class RagfairOfferHelper( var tieredFlea = RagfairConfig.TieredFlea; var tieredFleaLimitTypes = tieredFlea.UnlocksType; - foreach (var desiredItemTpl in searchRequest.BuildItems) + // Clone offers when tiered flea enabled as we may modify the offer + var buildItems = tieredFlea.Enabled + ? cloner.Clone(searchRequest.BuildItems.Keys.ToDictionary(key => key, ragfairOfferService.GetOffersOfType)) + : searchRequest.BuildItems.Keys.ToDictionary(key => key, ragfairOfferService.GetOffersOfType); + + foreach (var (desiredItemTpl, matchingOffers) in buildItems) { - // Clone offers when tiered flea enabled as we may modify the offer - var matchingOffers = tieredFlea.Enabled - ? cloner.Clone(ragfairOfferService.GetOffersOfType(desiredItemTpl.Key)) - : ragfairOfferService.GetOffersOfType(desiredItemTpl.Key); if (matchingOffers is null) // No offers found for this item, skip {