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