From bea1a2a6b80646998a5edffd0467bcba76f85d7c Mon Sep 17 00:00:00 2001 From: Howard Abrams Date: Mon, 21 Feb 2022 22:29:17 -0800 Subject: [PATCH] Reorganized the tables into hierarchy And removed the plurals. --- README.org | 44 +++++++-------- example.org | 2 +- rpgdm-ironsworn.el | 52 +++++++++++------- tables/.DS_Store | Bin 0 -> 10244 bytes tables/{actions.org => action.org} | 0 .../activity.org} | 0 .../descriptor.org} | 0 .../disposition.org} | 0 .../goal.org} | 0 .../role.org} | 0 tables/{dangers.org => danger.org} | 24 ++++---- tables/danger/domain/barrow.org | 7 +++ tables/danger/domain/cavern.org | 7 +++ tables/danger/domain/frozen-cavern.org | 7 +++ tables/danger/domain/icereach.org | 7 +++ tables/danger/domain/mine.org | 7 +++ tables/danger/domain/pass.org | 7 +++ tables/danger/domain/ruin.org | 7 +++ tables/danger/domain/sea-cave.org | 7 +++ tables/danger/domain/shadowfen.org | 7 +++ tables/danger/domain/stronghold.org | 7 +++ tables/danger/domain/tanglewood.org | 7 +++ tables/danger/domain/underkeep.org | 7 +++ tables/danger/theme/ancient.org | 16 ++++++ tables/danger/theme/corrupted.org | 16 ++++++ tables/danger/theme/fortified.org | 15 +++++ tables/danger/theme/hallowed.org | 15 +++++ tables/danger/theme/haunted.org | 15 +++++ tables/danger/theme/infested.org | 15 +++++ tables/danger/theme/ravaged.org | 15 +++++ tables/danger/theme/wild.org | 15 +++++ .../aspect.org} | 0 tables/feature/domain/barrow.org | 15 +++++ tables/feature/domain/cavern.org | 15 +++++ tables/feature/domain/frozen-cavern.org | 15 +++++ tables/feature/domain/icereach.org | 15 +++++ tables/feature/domain/mine.org | 15 +++++ tables/feature/domain/pass.org | 15 +++++ tables/feature/domain/ruin.org | 15 +++++ tables/feature/domain/sea-cave.org | 15 +++++ tables/feature/domain/shadowfen.org | 15 +++++ tables/feature/domain/stronghold.org | 15 +++++ tables/feature/domain/tanglewood.org | 15 +++++ tables/feature/domain/underkeep.org | 15 +++++ .../{feature-focus.org => feature/focus.org} | 0 tables/feature/theme/ancient.org | 9 +++ tables/feature/theme/corrupted.org | 8 +++ tables/feature/theme/fortified.org | 8 +++ tables/feature/theme/hallowed.org | 8 +++ tables/feature/theme/haunted.org | 8 +++ tables/feature/theme/infested.org | 8 +++ tables/feature/theme/ravaged.org | 8 +++ tables/feature/theme/wild.org | 8 +++ ...waters.org => location-coastal-waters.org} | 0 tables/{locations.org => location.org} | 0 tables/{names-elf.org => name/elf.org} | 0 tables/{names-giant.org => name/giant.org} | 0 .../ironlander.org} | 0 tables/{names-troll.org => name/troll.org} | 0 tables/{names-varou.org => name/varou.org} | 0 tables/{regions.org => region.org} | 0 ...runes-augmented.org => rune-augmented.org} | 0 tables/{runes.org => rune.org} | 0 .../name.org} | 0 .../prefix.org} | 0 .../suffix.org} | 0 .../trouble.org} | 0 tables/{site-domain.org => site/domain.org} | 0 .../name/description.org} | 0 .../name/detail.org} | 0 .../name/namesake.org} | 0 .../name/place/barrow.org} | 0 .../name/place/cavern.org} | 0 .../name/place/icereach.org} | 0 .../name/place/mine.org} | 0 .../name/place/pass.org} | 0 .../name/place/ruin.org} | 0 .../name/place/sea-cave.org} | 0 .../name/place/shadowfen.org} | 0 .../name/place/stronghold.org} | 0 .../name/place/tanglewood.org} | 0 .../name/place/underkeep.org} | 0 .../name/place/unknown.org} | 0 tables/{site-theme.org => site/theme.org} | 0 tables/{themes.org => theme.org} | 0 .../burgeoning-conflict.org} | 0 .../category.org} | 0 .../cursed-site.org} | 0 .../environmental-calamity.org} | 0 .../malignant-plague.org} | 0 .../power-hungry-mystic.org} | 0 .../rampaging-creature.org} | 0 .../ravaging-horde.org} | 0 .../scheming-leader.org} | 0 .../zealous-cult.org} | 0 95 files changed, 517 insertions(+), 56 deletions(-) create mode 100644 tables/.DS_Store rename tables/{actions.org => action.org} (100%) rename tables/{character-activity.org => character/activity.org} (100%) rename tables/{character-descriptor.org => character/descriptor.org} (100%) rename tables/{character-disposition.org => character/disposition.org} (100%) rename tables/{character-goal.org => character/goal.org} (100%) rename tables/{character-role.org => character/role.org} (100%) rename tables/{dangers.org => danger.org} (59%) create mode 100644 tables/danger/domain/barrow.org create mode 100644 tables/danger/domain/cavern.org create mode 100644 tables/danger/domain/frozen-cavern.org create mode 100644 tables/danger/domain/icereach.org create mode 100644 tables/danger/domain/mine.org create mode 100644 tables/danger/domain/pass.org create mode 100644 tables/danger/domain/ruin.org create mode 100644 tables/danger/domain/sea-cave.org create mode 100644 tables/danger/domain/shadowfen.org create mode 100644 tables/danger/domain/stronghold.org create mode 100644 tables/danger/domain/tanglewood.org create mode 100644 tables/danger/domain/underkeep.org create mode 100644 tables/danger/theme/ancient.org create mode 100644 tables/danger/theme/corrupted.org create mode 100644 tables/danger/theme/fortified.org create mode 100644 tables/danger/theme/hallowed.org create mode 100644 tables/danger/theme/haunted.org create mode 100644 tables/danger/theme/infested.org create mode 100644 tables/danger/theme/ravaged.org create mode 100644 tables/danger/theme/wild.org rename tables/{feature-aspect.org => feature/aspect.org} (100%) create mode 100644 tables/feature/domain/barrow.org create mode 100644 tables/feature/domain/cavern.org create mode 100644 tables/feature/domain/frozen-cavern.org create mode 100644 tables/feature/domain/icereach.org create mode 100644 tables/feature/domain/mine.org create mode 100644 tables/feature/domain/pass.org create mode 100644 tables/feature/domain/ruin.org create mode 100644 tables/feature/domain/sea-cave.org create mode 100644 tables/feature/domain/shadowfen.org create mode 100644 tables/feature/domain/stronghold.org create mode 100644 tables/feature/domain/tanglewood.org create mode 100644 tables/feature/domain/underkeep.org rename tables/{feature-focus.org => feature/focus.org} (100%) create mode 100644 tables/feature/theme/ancient.org create mode 100644 tables/feature/theme/corrupted.org create mode 100644 tables/feature/theme/fortified.org create mode 100644 tables/feature/theme/hallowed.org create mode 100644 tables/feature/theme/haunted.org create mode 100644 tables/feature/theme/infested.org create mode 100644 tables/feature/theme/ravaged.org create mode 100644 tables/feature/theme/wild.org rename tables/{locations-coastal-waters.org => location-coastal-waters.org} (100%) rename tables/{locations.org => location.org} (100%) rename tables/{names-elf.org => name/elf.org} (100%) rename tables/{names-giant.org => name/giant.org} (100%) rename tables/{names-ironlander.org => name/ironlander.org} (100%) rename tables/{names-troll.org => name/troll.org} (100%) rename tables/{names-varou.org => name/varou.org} (100%) rename tables/{regions.org => region.org} (100%) rename tables/{runes-augmented.org => rune-augmented.org} (100%) rename tables/{runes.org => rune.org} (100%) rename tables/{settlement-names.org => settlement/name.org} (100%) rename tables/{settlement-prefix.org => settlement/prefix.org} (100%) rename tables/{settlement-suffix.org => settlement/suffix.org} (100%) rename tables/{settlement-trouble.org => settlement/trouble.org} (100%) rename tables/{site-domain.org => site/domain.org} (100%) rename tables/{site-name-description.org => site/name/description.org} (100%) rename tables/{site-name-detail.org => site/name/detail.org} (100%) rename tables/{site-name-namesake.org => site/name/namesake.org} (100%) rename tables/{site-name-place-barrow.org => site/name/place/barrow.org} (100%) rename tables/{site-name-place-cavern.org => site/name/place/cavern.org} (100%) rename tables/{site-name-place-icereach.org => site/name/place/icereach.org} (100%) rename tables/{site-name-place-mine.org => site/name/place/mine.org} (100%) rename tables/{site-name-place-pass.org => site/name/place/pass.org} (100%) rename tables/{site-name-place-ruin.org => site/name/place/ruin.org} (100%) rename tables/{site-name-place-sea-cave.org => site/name/place/sea-cave.org} (100%) rename tables/{site-name-place-shadowfen.org => site/name/place/shadowfen.org} (100%) rename tables/{site-name-place-stronghold.org => site/name/place/stronghold.org} (100%) rename tables/{site-name-place-tanglewood.org => site/name/place/tanglewood.org} (100%) rename tables/{site-name-place-underkeep.org => site/name/place/underkeep.org} (100%) rename tables/{site-name-place-unknown.org => site/name/place/unknown.org} (100%) rename tables/{site-theme.org => site/theme.org} (100%) rename tables/{themes.org => theme.org} (100%) rename tables/{threat-burgeoning-conflict.org => threat/burgeoning-conflict.org} (100%) rename tables/{threat-category.org => threat/category.org} (100%) rename tables/{threat-cursed-site.org => threat/cursed-site.org} (100%) rename tables/{threat-environmental-calamity.org => threat/environmental-calamity.org} (100%) rename tables/{threat-malignant-plague.org => threat/malignant-plague.org} (100%) rename tables/{threat-power-hungry-mystic.org => threat/power-hungry-mystic.org} (100%) rename tables/{threat-rampaging-creature.org => threat/rampaging-creature.org} (100%) rename tables/{threat-ravaging-horde.org => threat/ravaging-horde.org} (100%) rename tables/{threat-scheming-leader.org => threat/scheming-leader.org} (100%) rename tables/{threat-zealous-cult.org => threat/zealous-cult.org} (100%) diff --git a/README.org b/README.org index d6230a7..2a32396 100644 --- a/README.org +++ b/README.org @@ -31,7 +31,7 @@ Or better yet, use something like [[https://github.com/raxod502/straight.el][str '(el-patch :type git :host gitlab :repo "howardabrams/emacs-rpgdm")) (straight-use-package - '(el-patch :type git :host gitlab :repo "howardabrams/emacs-ironsworn")) + '(el-patch :type git :host gitlab :repo "howardabrams/rpgdm-ironsworn")) #+END_SRC Next, create an org file, and either turn on the =rpgdm-mode= (minor mode), or simply define a globally accessible shortcut: @@ -146,7 +146,7 @@ We also need the name of the directory for this project, so that we can load tab #+BEGIN_SRC emacs-lisp (defvar rpgdm-ironsworn-project (file-name-directory load-file-name) - "The root directory to the emacs-ironsworn project") + "The root directory to the rpgdm-ironsworn project") #+END_SRC ** Dice Roller In *Ironsworn*, all dice rolls follow a pattern where you set the challenge level for a check by rolling /challenge dice/ (two d10s) and compare that against rolling an /action die/ (a single d6 ... adding all modifiers to that six-sided die). You always three possible values: @@ -954,8 +954,8 @@ This function displays an entry from both the [[file:tables/actions.org][actions (defun rpgdm-ironsworn-oracle-action-theme () "Rolls on two tables at one time." (interactive) - (let ((action (rpgdm-tables-choose "actions")) - (theme (rpgdm-tables-choose "themes"))) + (let ((action (rpgdm-tables-choose "action")) + (theme (rpgdm-tables-choose "theme"))) (rpgdm-message "%s / %s" action theme))) (puthash "action-and-theme :: Roll on both tables" @@ -970,12 +970,12 @@ This function display a single entry of all the character-specific tables, inclu "Roll on all the character-related tables and show them together. You'll need to pick and choose what works and discard what doesn't." (interactive) - (let ((name (rpgdm-tables-choose "names-ironlander")) - (goal (rpgdm-tables-choose "character-goal")) - (role (rpgdm-tables-choose "character-role")) - (activity (rpgdm-tables-choose "character-activity")) - (description (rpgdm-tables-choose "character-descriptor")) - (disposition (rpgdm-tables-choose "character-disposition"))) + (let ((name (rpgdm-tables-choose "name/ironlander")) + (goal (rpgdm-tables-choose "character/goal")) + (role (rpgdm-tables-choose "character/role")) + (activity (rpgdm-tables-choose "character/activity")) + (description (rpgdm-tables-choose "character/descriptor")) + (disposition (rpgdm-tables-choose "character/disposition"))) (rpgdm-message "%s, %s %s (Activity: %s Disposition: %s Goal: %s)" name description role activity disposition goal))) @@ -1010,8 +1010,8 @@ This function combines the [[file:tables/feature-aspect.org][aspect]] and [[file (defun rpgdm-ironsworn-oracle-feature () "Rolls on two tables at one time for a Site's feature." (interactive) - (let ((aspect (rpgdm-tables-choose "feature-aspect")) - (focus (rpgdm-tables-choose "feature-focus"))) + (let ((aspect (rpgdm-tables-choose "feature/aspect")) + (focus (rpgdm-tables-choose "feature/focus"))) (rpgdm-message "%s / %s" aspect focus))) (puthash "feature-aspect-and-focus :: Roll on both feature tables" @@ -1024,7 +1024,7 @@ And a Waypoint is similar: (defun rpgdm-ironsworn-oracle-waypoint () "Rolls on two tables at one time for a Site's feature." (interactive) - (let ((location (rpgdm-tables-choose "locations")) + (let ((location (rpgdm-tables-choose "location")) (description (rpgdm-tables-choose "location-descriptors"))) (rpgdm-message "%s %s" description (downcase location)))) @@ -1042,8 +1042,8 @@ Notice we also generate a name for the place. (defun rpgdm-ironsworn-oracle-site-nature () "Rolls on two tables at one time for a random Site." (interactive) - (let* ((theme (rpgdm-tables-choose "site-theme")) - (domain (rpgdm-tables-choose "site-domain")) + (let* ((theme (rpgdm-tables-choose "site/theme")) + (domain (rpgdm-tables-choose "site/domain")) (place (downcase domain)) (name (rpgdm-ironsworn-oracle-site-name place))) (rpgdm-message "%s %s :: %s" theme domain name))) @@ -1060,14 +1060,14 @@ Requires a =place-type= to help limit the values that can be in /place/ and then "Rolling on multiple tables to return a random site name." (interactive (list (completing-read "Place type: " '(barrow cavern icereach mine pass ruin - sea-cave shadowfen stronghold - tanglewood underkeep)))) + sea-cave shadowfen stronghold + tanglewood underkeep)))) (unless place-type (setq place-type "unknown")) - (let ((description (rpgdm-tables-choose "site-name-description")) - (detail (rpgdm-tables-choose "site-name-detail")) - (namesake (rpgdm-tables-choose "site-name-namesake")) - (place (rpgdm-tables-choose (format "site-name-place-%s" place-type))) + (let ((description (rpgdm-tables-choose "site/name/description")) + (detail (rpgdm-tables-choose "site/name/detail")) + (namesake (rpgdm-tables-choose "site/name/namesake")) + (place (rpgdm-tables-choose (format "site/name/place/%s" place-type))) (roll (rpgdm--roll-die 100))) (rpgdm-message (cond @@ -1114,7 +1114,7 @@ Generate a random threat and its motivations by coding the threat, but using the (interactive (list (completing-read "Threat: " rpgdm-ironsworn-oracle-threats))) (unless category (setq category (seq-random-elt rpgdm-ironsworn-oracle-threats))) - (let ((table-name (format "threat-%s" (downcase (string-replace " " "-" category))))) + (let ((table-name (format "threat/%s" (downcase (string-replace " " "-" category))))) (rpgdm-message "%s: %s" category (rpgdm-tables-choose table-name)))) (puthash "threat-goal :: Generate a goal for a particular threat" diff --git a/example.org b/example.org index 0be49fd..28a60e5 100644 --- a/example.org +++ b/example.org @@ -5,7 +5,7 @@ #+TAGS: rpg ironsworn # Local Variables: -# eval: (progn (require 'rpgdm-ironsworn) (rpgdm-mode) (rpgdm-tables-load (concat rpgdm-ironsworn-project "tables"))) +# eval: (progn (require 'rpgdm-ironsworn) (rpgdm-mode) (rpgdm-tables-load (concat rpgdm-ironsworn-project "tables")) # End: * Travels of Kannan :PROPERTIES: diff --git a/rpgdm-ironsworn.el b/rpgdm-ironsworn.el index 10bfea9..cfa109c 100644 --- a/rpgdm-ironsworn.el +++ b/rpgdm-ironsworn.el @@ -4,7 +4,7 @@ (require 'rpgdm) (defvar rpgdm-ironsworn-project (file-name-directory load-file-name) - "The root directory to the emacs-ironsworn project") + "The root directory to the rpgdm-ironsworn project") (defun rpgdm-ironsworn--results (action modifier one-challenge two-challenge &optional momentum) @@ -528,8 +528,8 @@ to rolling two d10 challenge dice." (defun rpgdm-ironsworn-oracle-action-theme () "Rolls on two tables at one time." (interactive) - (let ((action (rpgdm-tables-choose "actions")) - (theme (rpgdm-tables-choose "themes"))) + (let ((action (rpgdm-tables-choose "action")) + (theme (rpgdm-tables-choose "theme"))) (rpgdm-message "%s / %s" action theme))) (puthash "action-and-theme :: Roll on both tables" @@ -540,12 +540,12 @@ to rolling two d10 challenge dice." "Roll on all the character-related tables and show them together. You'll need to pick and choose what works and discard what doesn't." (interactive) - (let ((name (rpgdm-tables-choose "names-ironlander")) - (goal (rpgdm-tables-choose "character-goal")) - (role (rpgdm-tables-choose "character-role")) - (activity (rpgdm-tables-choose "character-activity")) - (description (rpgdm-tables-choose "character-descriptor")) - (disposition (rpgdm-tables-choose "character-disposition"))) + (let ((name (rpgdm-tables-choose "name/ironlander")) + (goal (rpgdm-tables-choose "character/goal")) + (role (rpgdm-tables-choose "character/role")) + (activity (rpgdm-tables-choose "character/activity")) + (description (rpgdm-tables-choose "character/descriptor")) + (disposition (rpgdm-tables-choose "character/disposition"))) (rpgdm-message "%s, %s %s (Activity: %s Disposition: %s Goal: %s)" name description role activity disposition goal))) @@ -565,18 +565,28 @@ You'll need to pick and choose what works and discard what doesn't." (defun rpgdm-ironsworn-oracle-feature () "Rolls on two tables at one time for a Site's feature." (interactive) - (let ((aspect (rpgdm-tables-choose "feature-aspect")) - (focus (rpgdm-tables-choose "feature-focus"))) + (let ((aspect (rpgdm-tables-choose "feature/aspect")) + (focus (rpgdm-tables-choose "feature/focus"))) (rpgdm-message "%s / %s" aspect focus))) -(puthash "feature-aspect-and-focus :: Roll on both feature tables for a waypoint" +(puthash "feature-aspect-and-focus :: Roll on both feature tables" 'rpgdm-ironsworn-oracle-feature rpgdm-tables) +(defun rpgdm-ironsworn-oracle-waypoint () + "Rolls on two tables at one time for a Site's feature." + (interactive) + (let ((location (rpgdm-tables-choose "location")) + (description (rpgdm-tables-choose "location-descriptors"))) + (rpgdm-message "%s %s" description (downcase location)))) + +(puthash "location-and-descriptor :: Roll on two tables for a waypoint" + 'rpgdm-ironsworn-oracle-waypoint rpgdm-tables) + (defun rpgdm-ironsworn-oracle-site-nature () "Rolls on two tables at one time for a random Site." (interactive) - (let* ((theme (rpgdm-tables-choose "site-theme")) - (domain (rpgdm-tables-choose "site-domain")) + (let* ((theme (rpgdm-tables-choose "site/theme")) + (domain (rpgdm-tables-choose "site/domain")) (place (downcase domain)) (name (rpgdm-ironsworn-oracle-site-name place))) (rpgdm-message "%s %s :: %s" theme domain name))) @@ -588,14 +598,14 @@ You'll need to pick and choose what works and discard what doesn't." "Rolling on multiple tables to return a random site name." (interactive (list (completing-read "Place type: " '(barrow cavern icereach mine pass ruin - sea-cave shadowfen stronghold - tanglewood underkeep)))) + sea-cave shadowfen stronghold + tanglewood underkeep)))) (unless place-type (setq place-type "unknown")) - (let ((description (rpgdm-tables-choose "site-name-description")) - (detail (rpgdm-tables-choose "site-name-detail")) - (namesake (rpgdm-tables-choose "site-name-namesake")) - (place (rpgdm-tables-choose (format "site-name-place-%s" place-type))) + (let ((description (rpgdm-tables-choose "site/name/description")) + (detail (rpgdm-tables-choose "site/name/detail")) + (namesake (rpgdm-tables-choose "site/name/namesake")) + (place (rpgdm-tables-choose (format "site/name/place/%s" place-type))) (roll (rpgdm--roll-die 100))) (rpgdm-message (cond @@ -622,7 +632,7 @@ You'll need to pick and choose what works and discard what doesn't." (interactive (list (completing-read "Threat: " rpgdm-ironsworn-oracle-threats))) (unless category (setq category (seq-random-elt rpgdm-ironsworn-oracle-threats))) - (let ((table-name (format "threat-%s" (downcase (string-replace " " "-" category))))) + (let ((table-name (format "threat/%s" (downcase (string-replace " " "-" category))))) (rpgdm-message "%s: %s" category (rpgdm-tables-choose table-name)))) (puthash "threat-goal :: Generate a goal for a particular threat" diff --git a/tables/.DS_Store b/tables/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..b847cae12cae7220ce25f4da22a7c6367b374b16 GIT binary patch literal 10244 zcmeHM&2AGh5VqS;Hlff`DnLR=DVELWtj(&BNHE^-=S^e2)ifM3G=ywT%%8Ni(Mn)d%<6UvXg+_eEy3*Q9)xtN zI}yXWXNI;3j7#{DjDf@$-KXgIr+BOVUPt-rW3|(2_L7B#Pkd}Vw`*dz=M@Tty@k7# zM%=F?L9*Ig3c9!H+tnaxR8{+09Jhw;pnAO-_U}#4UW%h6XhvaI2si5?Snk|tM)kPA z6t710p3qZ~9iErZ=kHA)-q<*Ec5%)xmCkI=`5Wg>FU9exprB3ZXvg*6 z@^l)%9%rr6jaqR;4xzahbf;xF`WyK4Al%I!z{M28s|b-W9Tw#3RL~pT|EseNGcE2m zICO`fIPvx1E$Q$Pu5FiRb6K2j=rP=W1bHt;E+Hq%yjc{PC15?gp}bgRebI}xjCYwC zfbY|?(_xF&Izpuf-Cc~+fo{58&C*BtQr9;*qR&1L1ZYZb7P&BB55-tTj7qjrhD=~n zQ&?!#BSKdn{{Zwn7W_?EP!xH)hW()h?LA~#s}|a8QVSr5oET7c9$hG@Wi{lp#Llo! zkD3>?_OaVCYPA0Cc(L_cB4rBbbnqe1(2|aTQ3AWOt^1<+d_N=ua1*)>_?qx0U)RvK zYrvkybqxjZhuAfKv44x5RF|2749%3r3(#5-yI+Jkgqgb^_N&ym-cW~io}8jeAF}|T z({7l+|KZknX`hN6c3wj#2N^=s@I9x!Q|HTrhtQ)v+&&vfjK9+~PY4M@4r|z$1!g{e zA&b`%T`669guV2?t*Zz#c($V~i^mdaGng~|TI#@S@|O@r9eI&FXSW+UA@^LfWuK;F z``3?M7MP`E0lF&=0f&G?z#*{X5g3;i_IX|RM0LfI*=4^Q2xT70mkXx@>|>B TaOZz