From dc7295dde3dd06414700a11fd4523c82da8f6b2f Mon Sep 17 00:00:00 2001
From: Jonas <jonas.zohren@tu-dortmund.de>
Date: Wed, 10 Mar 2021 12:43:57 +0100
Subject: [PATCH] Collect all facts in dialogSet for debugger

---
 src/Debugger.svelte | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/src/Debugger.svelte b/src/Debugger.svelte
index 108c791..247fb85 100644
--- a/src/Debugger.svelte
+++ b/src/Debugger.svelte
@@ -8,10 +8,23 @@
   $: dialogNames = Object.keys(dialogSet.dialogs)
   export let selectedDialogName: string
 
+  /**
+   * Collect all facts referenced in these dialogs
+   */
   function getDialogFacts(dialogMap: DialogMap): String[] {
-      const dialogs = [];
+    const dialogs: Dialog[] = [];
       for (const dmKey of Object.keys(dialogMap)) dialogs.push(dialogMap[dmKey]);
-      return dialogs.map(dialog => [...(dialog.addFacts || []), ...(dialog.removeFacts || [])]).flat()
+    const allFacts = dialogs
+      .map((dialog) => [
+        ...(dialog.addFacts || []),
+        ...(dialog.removeFacts || []),
+        ...dialog.options.map((opt) => opt.requiredFacts).flat(),
+        ...dialog.options.map((opt) => opt.forbiddenFacts).flat(),
+      ])
+      .flat();
+    // Deduplicate entries
+    const factsSet = new Set(allFacts);
+    return [...factsSet];
   }
 
   let seenFactIds = new Set<String>([...$gameFactsStore, ...getDialogFacts(dialogSet.dialogs)]);
-- 
GitLab