Handle accepting quests via 'PickupQuestId' if NPC offers multiple quests
authorLiza Carvelli <liza@carvel.li>
Fri, 30 Aug 2024 19:40:42 +0000 (21:40 +0200)
committerLiza Carvelli <liza@carvel.li>
Fri, 30 Aug 2024 19:40:42 +0000 (21:40 +0200)
Questionable/Controller/GameUi/InteractionUiController.cs

index e630d7d6d24f2150b840f3837b534085bf4d2b91..21c95d29de58c5e3a35ebba5746a01e1016fcc09 100644 (file)
@@ -235,6 +235,16 @@ internal sealed class InteractionUiController : IDisposable
             _logger.LogInformation("Checking if current quest {Name} is on the list", currentQuest.Quest.Info.Name);
             if (CheckQuestSelection(addonSelectIconString, currentQuest.Quest, answers))
                 return;
+
+            var sequence = currentQuest.Quest.FindSequence(currentQuest.Sequence);
+            QuestStep? step = sequence?.FindStep(currentQuest.Step);
+            if (step is { InteractionType: EInteractionType.AcceptQuest, PickUpQuestId: not null } &&
+                _questRegistry.TryGetQuest(step.PickUpQuestId, out Quest? pickupQuest))
+            {
+                _logger.LogInformation("Checking if current picked-up {Name} is on the list", pickupQuest.Info.Name);
+                if (CheckQuestSelection(addonSelectIconString, pickupQuest, answers))
+                    return;
+            }
         }
 
         var nextQuest = _questController.NextQuest;