Moved trader info lookup outside of loop - StripLockedLoyaltyAssort

This commit is contained in:
Chomp
2025-08-07 10:54:09 +01:00
parent ccfac42814
commit efe9472f8b
@@ -112,13 +112,17 @@ public class AssortHelper(ISptLogger<AssortHelper> logger, ServerLocalisationSer
return strippedAssort;
}
// Remove items restricted by loyalty levels above those reached by the player
foreach (var item in assort.LoyalLevelItems)
// Get trader info from profile
// Assumption - Assort is for single trader only
if (!pmcProfile.TradersInfo.TryGetValue(traderId, out var traderInfo))
{
if (pmcProfile.TradersInfo.TryGetValue(traderId, out var info) && assort.LoyalLevelItems[item.Key] > info.LoyaltyLevel)
{
strippedAssort = assort.RemoveItemFromAssort(item.Key);
}
return assort;
}
// Remove items restricted by loyalty levels above those reached by the player
foreach (var item in assort.LoyalLevelItems.Where(item => assort.LoyalLevelItems[item.Key] > traderInfo.LoyaltyLevel))
{
strippedAssort = assort.RemoveItemFromAssort(item.Key);
}
return strippedAssort;