vault backup: 2025-10-02 17:18

This commit is contained in:
Jason McPherson
2025-10-02 17:18:20 -05:00
parent e7964ffd75
commit 8f95bf75eb
50 changed files with 3645 additions and 0 deletions
@@ -0,0 +1,251 @@
---
Reputation: 0
Faction_Type: Gang
Motto:
Ideology:
Symbol: Hammer & Chisel
Colors:
Headquarters:
Territories:
- Whitewater
Allies:
-
Rivals:
-
SMH_Acronym:
Intel:
- date: 2025-10-02
type: interaction
summary: Vaust informs us that [[House Tenrae]] has been using [[The Archmasons]] as pseudo-mercenaries.
source: "[[Lord Ellin Vaust]]"
reliability: B
credibility: 4
tags: []
- date: 2025-10-02
type: rumor
summary: Fritch would be our best vector of getting further information on [[The Archmasons]]
source: "[[Kite]]"
reliability: C
credibility: 4
tags: []
- date: 2025-10-02
type: rumor
summary: "They are undertaking an ongoing project to excavate under the arch to build out carved out homes and save those for who are loyal or can offer something to [[The Archmasons]]. Anyone who can offer services is often compensated and provided those homes. "
source: "[[Calen]]"
reliability: B
credibility: 4
tags: []
- date: 2025-10-02
type: rumor
summary: People in Whitewater are walking on eggshells to avoid injury - it's not uncommon for someone in the way of the Arch masons getting hurt. Most could benefit from Magical Healing. Disease is not uncommon here, but most people hope for the best.
source: "[[Calen]]"
reliability: B
credibility: 4
tags: []
Tags:
- faction
---
# The Archmasons
*Ruling Faction of the Whitewater District*
---
## 🎨 Artwork
![[The Archmasons.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:**
- Runs a Protection Racket in Whitewater
- **Taboos / Anathema:**
-
---
## 🤝 Relationship with Party
- **Reputation:** `= this.Reputation`
---
## 🧑‍💼 Leadership & Structure
- **Leader(s):** [[NPC A]], [[NPC B]]
- **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:**
- Protection Rackets
---
## 🕊️ 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-02: …