From 687fe11ac1d109df6ce6522470c0167fd7ec9c13 Mon Sep 17 00:00:00 2001
From: Malin Freeborn <malinfreeborn@posteo.net>
Date: Fri, 1 Sep 2023 18:17:56 +0200
Subject: [PATCH] replace unique skill bonuses with resistances

Instead of an Air spell being cast with Charisma + Seafaring, it now
casts with Charisma + Air at all times.

The \spell function now uses the fifth argument to show what kinds of
thing resist the spell.

If the spell is resisted by a person, you can enter
\roll{Strength}{Athletics} to show it being resisted by 'Strength +
Athletics'.  Otherwise, input 'the wind speed', and this will read 'the
TN depends on the wind speed'.
---
 docs.tex         | 22 ++--------------------
 magic.sty        | 41 ++++++++++++++++++++++++++++-------------
 spells/air1.tex  | 12 ++++++------
 spells/mind2.tex |  4 ++--
 4 files changed, 38 insertions(+), 41 deletions(-)

diff --git a/docs.tex b/docs.tex
index d81d3b3e..89e1993d 100644
--- a/docs.tex
+++ b/docs.tex
@@ -159,29 +159,11 @@ title={Spell Summaries},columns=2]
 
 After inputting that, you can get the spell, and the `printindex' command will create a spell-list by using a special index, just for spells.
 
-\spell{Quake}% Name
-  {Earth}% Spheres
-  {Wane}% Action
-  {\distant, \duplicated}% Enhancements
-  {Caving}% Skill
-  {Ground shakes}% Short Description
-  {Brrrrrr}% Long Description
-
 In non-verbose mode, the same spell presents differently, and belong in the \verb"description" environment.
 
-\settoggle{verbose}{false}
-
-\begin{description}
-
-\spell{Quake}% Name
-  {Earth}% Spheres
-  {Wane}% Action
-  {\distant, \duplicated}% Enhancements
-  {Caving}% Skill
-  {Ground shakes}% Short Description
-  {Brrrrrr}% Long Description
+\settoggle{genExamples}{true}
 
-\end{description}
+\showSpells{mind2}
 
 Alternatively, pull in a bunch of spells from a sphere at a particular level with:
 
diff --git a/magic.sty b/magic.sty
index a8764384..1f2ad5fc 100644
--- a/magic.sty
+++ b/magic.sty
@@ -12,15 +12,17 @@
 \newcommand\mFire{Fire}
 \newcommand\mWater{Water}
 
+% We use spellPotency to track spell effects which are typically larger than the spell's level.
+\newcounter{spellPotency}
+
 % 1 = Name
 % 2 = Spheres
 % 3 = Action
 % 4 = Enhancements
-% 5 = Skill
+% 5 = Resistance
 % 6 = Description
 % 7 = Longer notes
 
-
 \newcommand{\spell}[7]{
   \global\settoggle{distant}{false}%
   \global\settoggle{duplicated}{false}%
@@ -29,9 +31,9 @@
   \foreach \s in {#4}{%
     \stepcounter{spelllevel}%
   }%
-  \iftoggle{verbose}{
-    \setcounter{age}{\value{spelllevel}}%
-    \addtocounter{age}{6}%
+  \setcounter{spellPotency}{\value{spelllevel}}%
+  \addtocounter{spellPotency}{2}%
+  \iftoggle{genExamples}{
     \subsubsection{#1}%
     \label{#1}%
 
@@ -45,12 +47,23 @@
     \iftoggle{duplicated}{%
       Targets:~\spellArea, %
     }{}%
-    \tn[\arabic{age}],
-    Skill:~\underline{#5}
-    \vspace{.5em}\afterparnoindent
-    \index[spells]{\textbf{#1}: #6. (Cost:~\arabic{spelllevel}, Spheres:~#2, Range: \spellRange\iftoggle{duplicated}{, Targets: \spellArea}{}, \tn[\arabic{age}], Skill:~#5)}
+    Resistance:~#5
+    \par
+    \afterparnoindent
 
     #7
+
+    \ifdefparam{#5}{
+      The \glsentrytext{tn} equals 7 plus the target's #5.
+    }{
+      The \glsentrytext{tn} equals 7, with modifiers for #5.
+    }
+
+    %\ifcsmacro{#5}{
+    %  The \glsentrytext{tn} equals 7 plus the opponent's #5.
+    %}{
+    %  The \glsentrytext{tn} depends upon #5.
+    %}
   }{
     \item[\textbf{#1}]
     \hphantom{#4}%
@@ -154,19 +167,21 @@
   \vspace{.3em}
 }
 
-\newcommand\shortSpells[1]{
+\newcommand\creatureSpells[1]{
   \begin{description}
-    \settoggle{verbose}{false}
+    \settoggle{genExamples}{false}
     \foreach \s in {#1}{
       \input{config/spells/\s.tex}
     }
   \end{description}
 }
 
-\newcommand\longSpells[1]{
-    \settoggle{verbose}{true}
+\newcommand\showSpells[1]{
+    \needspace{3em}\bigLine
+    \settoggle{genExamples}{true}
     \foreach \s in {#1}{
       \input{config/spells/\s.tex}
     }
+    \bigLine
 }
 
diff --git a/spells/air1.tex b/spells/air1.tex
index 22d1dd4a..8679ab7a 100644
--- a/spells/air1.tex
+++ b/spells/air1.tex
@@ -2,7 +2,7 @@
   {\mAir}% Spheres
   {Wax}% Action
   {}% Enhancements
-  {Seafaring}% Skill
+  {\roll{Strength}{Athletics}}% Skill
   {targets lose \arabic{spelllevel} \gls{ap} and get pushed back \arabic{spelllevel}~\glspl{ap} minus Strength}% Description
   {
     The mage blasts the target with chilled wind, draining them of \arabic{spelllevel} \gls{ap}.
@@ -13,13 +13,13 @@
   {\mAir}% Spheres
   {Wane}% Action
   {}% Enhancements
-  {Crafts}% Skill
-  {a pocket of foul air inflicts 3~\glspl{fatigue} each round}% Description
+  {the wind speed}% Skill
+  {a pocket of foul air inflicts \arabic{spellPotency}~\glspl{fatigue} each round}% Description
   {
     The caster pollutes the air, making it stink, and caustic to breath.
-    Anyone can attempt to hold their breath, but those not expecting the nauseating fumes suffer 3 \glspl{fatigue}.
+    Anyone can attempt to hold their breath, but those not expecting the nauseating fumes suffer \arabic{spellPotency}~\glspl{fatigue}.
 
-    The air only covers 1 square -- enough for a doorway, or small tunnel.
+    The air only covers \arabic{spelllevel} square -- enough for a doorway, or small tunnel.
     It dissipates after a couple of turns, or less if wind is present.
   }
 
@@ -27,7 +27,7 @@
   {\mAir}% Spheres
   {Warp}% Action
   {}% Enhancements
-  {Seafaring}% Skill
+  {the density of the liquid}% Skill
   {a small bubble surrounds the caster}% Description
   {
     A bubble, around 1 metre in diameter, gains a wobbly `shell', which holds it in place.
diff --git a/spells/mind2.tex b/spells/mind2.tex
index ba11d018..d455cbcf 100644
--- a/spells/mind2.tex
+++ b/spells/mind2.tex
@@ -2,7 +2,7 @@
   {\mWater, \mFate}% Spheres
   {Wane}% Action
   {\duplicated}% Enhancements
-  {Deceit}% Skill
+  {\roll{Wits}{Academics}}% Skill
   {\spellArea\ targets suffer -\arabic{spelllevel}~\glspl{ap}}% Description
   {
     \spellArea\ targets within \spellRange\ become confused about what they're doing, and suffer a minus \arabic{spelllevel} penalty to all actions based on Mental Attributes.
@@ -16,7 +16,7 @@
   {\mWater, \mFate}% Spheres
   {Wane}% Action
   {\divergent}% Enhancements
-  {Performance}% Skill
+  {\roll{Wits}{Academics}}% Skill
   {the target loses -\arabic{spelllevel}~\glspl{ap} and $1D6 + 1$ \glspl{fp}}% Description
   {
     The caster explains to the target their imminent death.
-- 
GitLab