From 42956dcd8c61e477fd26f69ffeb8b87e3de6fa0b Mon Sep 17 00:00:00 2001 From: Daniel Leong Date: Sat, 16 Feb 2019 20:30:46 -0500 Subject: [PATCH] Add some ideas for campaigns and for campaign note syntax Refs #69 --- notes.txt | 14 ++++++++++++++ save-syntax.edn | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) diff --git a/notes.txt b/notes.txt index 85925867..0f84eb4c 100644 --- a/notes.txt +++ b/notes.txt @@ -64,3 +64,17 @@ Custom backgrounds get: - 1 background feature - 1 set of background characteristics (for choosing things like Personality Traits, Ideals, Bonds, Flaws) + + +* ======= Campaigns ======================================= + +- Custom monsters, items, etc. live in a Data Source +- NPCs work like "item instances"; they can be based on a monster, or + completely custom and in-sheet; they have state tracking (HP, etc.) + as well as a simple note field. +- Notes support markdown; they should be organizable and easily locatable. + - Notes should be able to *link* to things, esp Encounters, other notes/note folders + - "Placemarker" within a note to indicate progress within a campaign/session +- Encounters should support "groups" of combatants that can be added separately + - They can reference specific NPCs, or any declared monsters directly + - Override any stats, including max HP diff --git a/save-syntax.edn b/save-syntax.edn index 260209df..c3fae0ac 100644 --- a/save-syntax.edn +++ b/save-syntax.edn @@ -54,3 +54,38 @@ :notes [[1234 "Note"]]} +; campaign-specific +{; ... + + ; set of player's sheet IDs + :players #{:sheet-id} + + :npcs {:ancient-red-dragon/thordak {:id :ancient-red-dragon + :name "Thordak" + :notes "Etc." + ; or whatever other state: + :hp 2700} + :custom/mreynolds {:id :mreynolds + :name "Mal Reynolds" + + ; monster def inline + :abilities {:str 15}}} + + ; we don't want to impose any specific method of organization on a GM's + ; campaign notes. But, we want to support many options, while being as + ; space-efficient as possible, so here we go: + ; + ; :notes is a map whose keys are IDs and the values are notes + ; The ID of a note ALWAYS has the namespace `n` + :notes {:n/id [{:n "Note Name" + :m modified-timestamp} + [:link]]} + + ; :folders is a map whose keys are IDs and the values are folders + ; the ID of a folder ALWAYS has the namespace `f` + :folders {:f/id [{:n "Folder name" + :s :sort-type} + :n/1 + :n/2 + :f/3]} + }