From b50eb3807f2fa04676c25e568160fcef214dd881 Mon Sep 17 00:00:00 2001 From: Jason McPherson Date: Thu, 23 Apr 2026 20:51:14 -0500 Subject: [PATCH] vault commit: 2026-04-23 20:51, 2 files changed --- .../NPCs/Iniana Asase.md | 4 +- .../Session 28 - Downtime Activities.md | 169 ++++++++++++++++++ 2 files changed, 171 insertions(+), 2 deletions(-) create mode 100644 Dungeons and Dragons/A Legacy Forged/Session Notes/Session 28 - Downtime Activities.md diff --git a/Dungeons and Dragons/A Legacy Forged/People, Factions and Relationships/NPCs/Iniana Asase.md b/Dungeons and Dragons/A Legacy Forged/People, Factions and Relationships/NPCs/Iniana Asase.md index e63bd9d..22bd947 100644 --- a/Dungeons and Dragons/A Legacy Forged/People, Factions and Relationships/NPCs/Iniana Asase.md +++ b/Dungeons and Dragons/A Legacy Forged/People, Factions and Relationships/NPCs/Iniana Asase.md @@ -1,5 +1,5 @@ --- -Level_of_Influence: 12 +Level_of_Influence: 13 Faction: "[[House Asase]]" Tags: - npc @@ -15,7 +15,7 @@ Intel: --- # Iniana Asase -*Daughter of [[House Asase]]* +*Daughter of [[House Asase]], Philanthropist and Proprietor of Soup Kitchen* ## 🎨 Artwork ![[Iniana Asase.png]] diff --git a/Dungeons and Dragons/A Legacy Forged/Session Notes/Session 28 - Downtime Activities.md b/Dungeons and Dragons/A Legacy Forged/Session Notes/Session 28 - Downtime Activities.md new file mode 100644 index 0000000..6c659a0 --- /dev/null +++ b/Dungeons and Dragons/A Legacy Forged/Session Notes/Session 28 - Downtime Activities.md @@ -0,0 +1,169 @@ +--- +Date: 2026-04-23 +Session_Name: Session 28 - Downtime Activities +Tags: + - pf2e + - session +--- + +# Session 28 - Downtime Activities + +> **Date:** `= this.Date` • **Name:** `= this.Session_Name` + +--- + +## 📄 Session Summary (auto) + +*No summary yet — click “Generate Summary” below.* + + +```button +name ✍️ Generate AI Summary +type template +action Templates/Generate AI Session Summary.md +templater true +``` + +## 🧭 Where / When + +- **Region / Location:** + +- **In-game Date / Time:** + +- **Weather / Conditions:** + + +--- + +## 👥 PCs Present / Absent + +- **Present:** + +- **Absent:** + + +--- + +## ⭐ Highlights (feed the auto-summary) + +> Add one or more `Highlight::` lines. The button will build a summary from these. + +- Highlight:: + +- Highlight:: + +- Highlight:: + + +--- + +## 🎯 Quests & Progress + +- **Active Objectives:** + +- **Progress / Resolutions:** + + +--- + +## 🗣️ NPCs Met / Factions + +- **NPCs:** [[ ]] [[ ]] [[ ]] + +- **Factions Touched:** [[ ]] [[ ]] + + +--- + +## ⚔️ Encounters + +- **Social / Exploration:** + - [[Val]] goes to meet with [[Iniana Asase]] and gets an update on how the meeting with [[Deidre Gille]] and [[Therin Asase]] went. She also states that she knows we've been stepping on alot of people's toes - and she finally inquires as to what we're up to. [[Val]] gives her the short and easy of what we're up to, but let's her in on the truth. It did however, seem like [[Therin Asase]] was going to investigate [[Deidre Gille]]'s situation. + - +- **Combat:** + +- **Outcome / Loot:** + + +--- + +## 🧠 Intel Captured (auto) + +```dataviewjs +const THIS = dv.current(); +const sessName = THIS.file.name; +const sessDate = THIS.Date ?? dv.current().file.frontmatter?.Date ?? ""; +const sessLC = sessName.toLowerCase(); + +const pages = dv.pages("#npc or #faction").where(p => p.Intel); + +function matchesSessionField(sessionField) { + const list = Array.isArray(sessionField) ? sessionField : [sessionField]; + for (const s of list) { + if (!s) continue; + if (typeof s === "object" && s.path) { + const base = s.path.split("/").pop().replace(/\.md$/i,""); + if (base.toLowerCase() === sessLC) return true; + } else { + const text = String(s); + if (text.includes(`[[${sessName}]]`)) return true; + if (text.toLowerCase() === sessLC) return true; + } + } + return false; +} + +const rows = []; +for (const p of pages) { + for (const it of p.Intel) { + let ok = false; + if (it.session) ok = matchesSessionField(it.session); + if (!ok && sessDate && it.date) ok = String(it.date) === String(sessDate); // fallback + if (ok) { + rows.push({ + from: p.file.link, + date: it.date ?? "", + type: it.type ?? "", + summary: String(it.summary ?? ""), + source: it.source ?? "", + rel: it.reliability ?? "", + cred: it.credibility ?? "", + tags: Array.isArray(it.tags) ? it.tags.join(", ") : (it.tags ?? "") + }); + } + } +} + +rows.sort((a,b)=> String(b.date).localeCompare(String(a.date))); + +if (!rows.length) { + dv.paragraph("_No intel captured for this session yet._"); +} else { + dv.table( + ["From", "Date", "Type", "Summary", "Source", "Rel", "Cred", "Tags"], + rows.map(r => [r.from, r.date, r.type, r.summary, r.source, r.rel, r.cred, r.tags]) + ); +} +``` + + +--- + +## 📦 Treasure & Rewards + +- **Items:** + +- **Coin:** + +- **XP / Milestones:** + + +--- + +## 🔜 Next Hooks / To-Dos + +- [ ] + +- [ ] + +- [ ]