Files

227 lines
5.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
Reputation: 0
Faction_Type: High House
Motto:
Ideology:
Symbol:
Colors:
Headquarters:
Territories:
-
Allies:
-
Rivals:
-
SMH_Acronym:
Intel:
- date: 2025-10-22
type: interaction
summary: We learn that [[House Gille]] was also impacted by the [[Yeth Hounds]]. They had a few workers that were injured, but nobody was killed or dissapeared.
source: "[[Deidre Gille]]"
reliability: A
credibility: 5
tags: []
Tags:
- faction
---
# House Gille
*One-line role/description — e.g., “Elven High House controlling Yathirs docks.”*
---
## 🎨 Artwork
![[House Gille.png]]
*Optional caption / artist credit*
---
## 🧭 Identity & Heraldry
- **Motto:** `= default(this.Motto, "—")`
- **Symbol:** `= default(this.Symbol, "—")`
- **Colors:** `= default(this.Colors, "—")`
- **Headquarters:** `= default(this.Headquarters, "—")`
- **Territories:** `= this.Territories`
---
## 📜 Ideology & Goals
- **Ideology / Alignment:** `= default(this.Ideology, "—")`
- **Primary Goals:**
-
- **Taboos / Anathema:**
-
---
## 🤝 Relationship with Party
- **Reputation:** `= this.Reputation`
---
## 🧑‍💼 Leadership & Structure
- **Leader(s):** [[Vault/Dungeons and Dragons/A Legacy Forged/People, Factions and Relationships/NPCs/Deidre Gille]]
- **Structure:** (council, hierarchy, cells, chapters)
- **Key Offices:** (Intelligence, Logistics, Priory, Treasury, etc.)
---
## 🧰 Assets & Operations
- **Resources:** (coin, troops, mages, ships, safehouses, contacts)
- **Notable Holdings:**
- Starlight Ridge, a Vineyard outside of Y'athyr
- **Typical Ops / Tactics:**
---
## 🕊️ Diplomacy & Relations
- **Allies:** `= this.Allies`
- **Rivals:** `= this.Rivals`
- **Stance toward “SMH” (their wording):** `= default(this.SMH_Acronym, "—")`
---
## 🧠 Intelligence & Mentions
```button
name Add Intel
type command
action Templater: Insert Add Intel Entry to Faction
```
```dataviewjs
const THIS = dv.current();
const thisName = String(THIS.file.name);
const thisLC = thisName.toLowerCase();
const factions = dv.pages("#faction");
// mention detector (same logic as your table)
function mentionsThisFaction(entry) {
const sum = String(entry.summary ?? "");
if (sum.includes(`[[${thisName}]]`) || sum.includes(`[[${thisName}|`)) return true;
const src = entry.source;
const list = Array.isArray(src) ? src : (src ? [src] : []);
for (const s of list) {
if (typeof s === "string") {
if (s.includes(`[[${thisName}]]`) || s.includes(`[[${thisName}|`)) return true;
if (s.toLowerCase() === thisLC) return true;
} else if (s && typeof s === "object" && s.path) {
const base = s.path.split("/").pop().replace(/\.md$/i,"").toLowerCase();
if (base === thisLC) return true;
}
}
return false;
}
const own = (THIS.Intel ?? []).length;
let mentions = 0;
for (const p of factions.where(p => p.file.name !== thisName)) {
for (const it of (p.Intel ?? [])) if (mentionsThisFaction(it)) mentions++;
}
dv.paragraph(`_Entries: ${own + mentions} (own ${own} + mentions ${mentions})_`);
```
```dataviewjs
// Current faction
const THIS = dv.current();
const thisName = String(THIS.file.name);
const thisLC = thisName.toLowerCase();
// All faction pages (including this one)
const factions = dv.pages("#faction");
// Mention detector: summary has [[This Faction]] OR source points at this faction
function mentionsThisFaction(entry) {
const sum = String(entry.summary ?? "");
if (sum.includes(`[[${thisName}]]`) || sum.includes(`[[${thisName}|`)) return true;
const src = entry.source;
const list = Array.isArray(src) ? src : (src ? [src] : []);
for (const s of list) {
if (typeof s === "string") {
if (s.includes(`[[${thisName}]]`) || s.includes(`[[${thisName}|`)) return true;
if (s.toLowerCase() === thisLC) return true; // fallback: plain text match
} else if (s && typeof s === "object" && s.path) { // wikilink object
const base = s.path.split("/").pop().replace(/\.md$/i,"").toLowerCase();
if (base === thisLC) return true;
}
}
return false;
}
// Collect rows
const rows = [];
// 1) Own intel
for (const it of (THIS.Intel ?? [])) {
rows.push({
date: it.date ?? "",
from: THIS.file.link,
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 ?? "")
});
}
// 2) Mentions from other factions
for (const p of factions.where(p => p.file.name !== thisName)) {
for (const it of (p.Intel ?? [])) {
if (mentionsThisFaction(it)) {
rows.push({
date: it.date ?? "",
from: p.file.link,
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 ?? "")
});
}
}
}
// Sort newest first
rows.sort((a,b) => String(b.date).localeCompare(String(a.date)));
if (!rows.length) {
dv.paragraph("_No intel yet._");
} else {
dv.table(
["Date","From Faction","Type","Summary","Source","Rel","Cred","Tags"],
rows.map(r => [r.date, r.from, r.type, r.summary, r.source, r.rel, r.cred, r.tags])
);
}
```
> Add new entries in the **frontmatter** under `Intel:` (keep newest on top). Suggested fields: `date, type, summary, source, reliability, credibility, tags`.
---
## 🔗 Related NPCs (auto)
```dataview
TABLE link(file.name) AS NPC, number(Level_of_Influence) AS Influence, default(SMH_Acronym, "—") AS SMH
FROM #npc
WHERE file.name != "NPC Template"
AND (
Faction = this.file.link
OR lower(string(Faction)) = lower(this.file.name)
OR contains(lower(string(Faction)), lower(this.file.name))
)
SORT number(Level_of_Influence) DESC
```
---
## 📌 Plot Hooks & Notes
-
-
---
## 🗒 Session Updates
- 2025-10-08: …