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