Files

234 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-11-24
type: report
summary: "[[Marcellus Magunna]] is an Knight Atache for [[House Elidari]] and is an Archmeister who graduated from the Esoterium"
source: "[[Kite]]"
reliability: A
credibility: 5
tags: []
- date: 2025-10-02
type: interaction
summary: We're told by [[Fenric Draycott]] that [[House Elidari]] has been threatening to adopt a new chief enforcer.
source: "[[Draycott Family]]"
reliability: A
credibility: 5
tags: []
Tags:
- faction
---
# House Elidari
*Current Ruling House of Y'athyr*
---
## 🎨 Artwork
![[House Elidari.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):** [[Cormac Elidari]]
- **Structure:** (council, hierarchy, cells, chapters)
- **Key Offices:** (Intelligence, Logistics, Priory, Treasury, etc.)
---
## 🧰 Assets & Operations
- **Resources:** (coin, troops, mages, ships, safehouses, contacts)
- **Notable Holdings:**
- **Typical Ops / Tactics:**
---
## 🕊️ Diplomacy & Relations
- **Allies:** `= this.Allies`
- **Rivals:** `= this.Rivals`
- **Stance toward “SMH” (their wording):** `= default(this.SMH_Acronym, "—")`
---
## 🧠 Inte
lligence & 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-02: …