From cac81f417d1b7060ea7b4a02537758d123be0945 Mon Sep 17 00:00:00 2001 From: Tyfon <29051038+tyfon7@users.noreply.github.com> Date: Thu, 30 Oct 2025 11:03:24 -0700 Subject: [PATCH] Account for compound items in DialogHelper.GetMessageItemContents --- Libraries/SPTarkov.Server.Core/Helpers/DialogueHelper.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Libraries/SPTarkov.Server.Core/Helpers/DialogueHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/DialogueHelper.cs index 39e9a442..37703808 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/DialogueHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/DialogueHelper.cs @@ -1,4 +1,5 @@ using SPTarkov.DI.Annotations; +using SPTarkov.Server.Core.Extensions; using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Eft.Profile; @@ -67,9 +68,10 @@ public class DialogueHelper(ISptLogger logger, ProfileHelper pro message.Items ??= new MessageItems(); message.Items.Data ??= []; - // Check reward count when item being moved isn't in reward list + // Check reward count when item being moved (and its children) isn't in reward list // If count is 0, it means after this move occurs the reward array will be empty and all rewards collected - var remainingItems = message.Items.Data.Where(x => x.Id != itemId); + var itemWithChildren = message.Items.Data.GetItemWithChildren(itemId); + var remainingItems = message.Items.Data.Except(itemWithChildren); if (!remainingItems.Any()) { message.RewardCollected = true;