Files

197 lines
5.3 KiB
Markdown
Raw Permalink 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.
---
Level_of_Influence: -1
Faction: "[[House Elidari]]"
Tags:
- npc
Intel:
- date: 2025-11-24
type: report
summary: "[[Eosef Tenrae]] and [[Ronan Elidari]] will be going to the summer solistice ball, but will not be staying for the entire event."
session: "[[Session 11 - A Session]]"
source: "[[Kite]]"
reliability: C
credibility: 5
tags:
- npc
Knows About HQ: "False"
---
# Ronan Elidari
*Captain in the City Guard*
## 🎨 Artwork
![[Ronan Elidari.png]]
*Optional caption / alt text*
---
## 🧑 NPC Overview
- **Full Name:** Ronan Elidari
- **Race / Ancestry:** Elf
- **Gender / Pronouns:** He/Him
- **Occupation / Role:** Captain of the Guard
- **Faction / Allegiance:** [[House Elidari]]
- **Notable Traits:** (quirks, mannerisms, appearance)
- **First Impression:** Asshole
---
## 🤝 Relationship with Party
- **Level of Influence:** = this.Level_of_Influence (10 to +10)
- **Notes on Influence:** (what actions improve/worsen standing)
- ***Discovery Skills***
- DC 14 Warfare Lore
- DC 16 Y'athyr Lore
- DC 17 Society
- DC 19 Crafting
- DC 19 Perception
- ***Influence Skills***
- DC 24 Deception or Intimidation
- DC 22 Diplomacy
- DC 20 Y'ahtyr Lore or Althetics
- ***Weaknesses***
- ***Resistances***
- ***Biases***
- Doesn't like commoners or those not working with the City. -1 to Influence or Discovery
- Likes people who are martially minded: +2 to Influence Checks
- Speaking Positively about [[House Elidari]] or the direction that the city is taking nets a +2 to Influence Checks.
---
## 🧠 Intel (auto)
```dataviewjs
const THIS = dv.current();
const thisName = String(THIS.file.name);
const thisLC = thisName.toLowerCase();
// Scan faction & NPC notes that have Intel arrays
const pages = dv.pages("#npc or #faction").where(p => p.Intel);
// Does an Intel entry reference THIS NPC?
function mentionsThisNPC(entry) {
const sum = String(entry.summary ?? "");
// 1) Explicit wikilink in summary
if (sum.includes(`[[${thisName}]]`) || sum.includes(`[[${thisName}|`)) return true;
// 2) Source field (string/link/list)
const src = entry.source;
const arr = Array.isArray(src) ? src : (src ? [src] : []);
for (const s of arr) {
if (typeof s === "string") {
// quoted link or plain text
const unq = s.replace(/^"+|"+$/g, ""); // drop surrounding quotes if any
if (unq.includes(`[[${thisName}]]`) || unq.includes(`[[${thisName}|`)) return true;
// if they typed just the name
if (unq.replace(/\[\[|\]\]/g, "").trim().toLowerCase() === thisLC) return true;
} 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;
}
}
// Optional (looser): plain text mention in summary
// return sum.toLowerCase().includes(thisLC);
return false;
}
// Collect rows: 1) own Intel, 2) mentions from other notes
const rows = [];
// Own Intel (from this NPC note)
for (const it of (THIS.Intel ?? [])) {
rows.push({
from: THIS.file.link,
date: it.date ?? "",
type: it.type ?? "",
summary: String(it.summary ?? ""),
session: it.session ?? "",
source: it.source ?? "",
rel: it.reliability ?? "",
cred: it.credibility ?? "",
tags: Array.isArray(it.tags) ? it.tags.join(", ") : (it.tags ?? "")
});
}
// Mentions elsewhere
for (const p of pages.where(p => p.file.path !== THIS.file.path)) {
for (const it of (p.Intel ?? [])) {
if (mentionsThisNPC(it)) {
rows.push({
from: p.file.link,
date: it.date ?? "",
type: it.type ?? "",
summary: String(it.summary ?? ""),
session: it.session ?? "",
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.paragraph(`_Entries: ${rows.length} (own ${(THIS.Intel ?? []).length} + mentions ${Math.max(0, rows.length - (THIS.Intel ?? []).length)})_`);
dv.table(
["From Note","Date","Type","Summary","Session","Source","Rel","Cred","Tags"],
rows.map(r => [r.from, r.date, r.type, r.summary, r.session, r.source, r.rel, r.cred, r.tags])
);
}
```
```button
name Add Intel
type command
action Templater: Insert Add Intel Entry to NPC
```
---
## 🏛️ Relations & Factions
- **Primary Faction:** [[House Elidari]]
- **Allied Factions:** [[Faction A]], [[Faction B]]
- **Rival Factions:** [[House Valrora]]
- **Personal Enemies / Allies:** [[Faylen Valora]]
---
## 📖 History & Background
- **Origin / Past:**
- **Known Motivations:**
- **Secrets / Rumors:**
- Involved in an affair with [[Amity Cornwallis]]
---
## 🎭 Roleplay Notes
- **Personality:** (e.g., stern, practical, loyal)
- **Speech Style / Quirks:** (catchphrases, accent, tics)
- **Appearance Details:** (clothing, scars, distinguishing features)
---
## 🗺️ Miscellaneous
- **Current Location:**
- **Important Items / Assets:**
- **Plot Hooks / Ties to PCs:**
- **Session Notes / Updates:**
- 2025-10-02: …
---
## 🔗 Connections
- **Related NPCs:**
- [[NPC A]] (Mentor)
- [[NPC B]] (Rival)
- **PC Ties:** (how the party knows them)