170 lines
3.4 KiB
Markdown
170 lines
3.4 KiB
Markdown
---
|
|
Date: 2025-11-24
|
|
Session_Name: Session 11 - A Session
|
|
Tags:
|
|
- pf2e
|
|
- session
|
|
---
|
|
|
|
# Session 11 - A Session
|
|
|
|
> **Date:** `= this.Date` • **Name:** `= this.Session_Name`
|
|
|
|
---
|
|
|
|
## 📄 Session Summary (auto)
|
|
<!-- SUMMARY-START -->
|
|
*No summary yet — click “Generate Summary” below.*
|
|
<!-- SUMMARY-END -->
|
|
|
|
```button
|
|
name ✍️ Generate AI Summary
|
|
type template
|
|
action Templates/Generate AI Session Summary.md
|
|
templater true
|
|
```
|
|
|
|
## 🧭 Where / When
|
|
|
|
- **Region / Location:**
|
|
- Starlight Ridge, a Winery Owned by [[Deidre Gille]]
|
|
- **In-game Date / Time:**
|
|
- Day before the Summer Solstice, 726.
|
|
- **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:**
|
|
- [[Kite]] inquires with [[Deidre Gille]] with how we might best further poke our noses into [[House Gille]] - and Deidre is unsure. She doubts that the [[House Gille]] is in this on their own because at the end of the day, this was about Land Prices.
|
|
- [[Kite]] inquires about her relationship with Katerine Calil. She wouldn't be surprised if Katerine was involved in something like this.
|
|
- **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
|
|
|
|
- [ ]
|
|
|
|
- [ ]
|
|
|
|
- [ ]
|