Newer
Older
%
% __ __ _
% | \/ | __ _ __ _(_) ___
% | |\/| |/ _` |/ _` | |/ __|
% | | | | (_| | (_| | | (__
% |_| |_|\__,_|\__, |_|\___|
% |___/
% Some spells inflict X fatigue, where X is the spell level plus 2.
\setcounter{spellCost}{1}
\newcounter{spellPlusTwo}
\setcounter{spellPlusTwo}{1}
\newcounter{castingBonus}
\setcounter{castingBonus}{1}
\newcommand\spellName{}
\newcommand\spellEnhancements{}
\newcommand\spellAction{}
\newcommand\spellSphere{}
\newcommand\spellResistance{}
\newcommand\spellSum{}
\newcommand\spellNotes{}
\newcounter{spellTargets}
\setcounter{spellTargets}{1}
\newcommand\calcSpell[7]{%
\renewcommand\spellName{#1}%
\setcounter{spellCost}{1}%
\setcounter{spellTargets}{1}%
\togglefalse{distant}%
\togglefalse{duplicated}%
\ifdefstring{\d}{distant}{\global\toggletrue{distant}}{}%
\ifdefstring{\d}{duplicated}{\global\toggletrue{duplicated}}{}%
\setcounter{spellPlusTwo}{\value{spellCost}}%
\addtocounter{spellPlusTwo}{2}%
\renewcommand\spellEnhancements{#2}%
\renewcommand\spellAction{#3}%
\renewcommand\spellSphere{#4}%
% What bonus does the caster receive? Some spells will display the caster's current Bonus, so we must calculate it. We start by setting it sky-high, then for each element in {Earth,Fire}, et c. we check if this is lower than the current castingBonus, if (if so), lower the bonus.
\setcounter{castingBonus}{10}%
\foreach \e in {#4}{%
\ifnum\value{\e}<\value{castingBonus}%
\setcounter{castingBonus}{\value{\e}}%
\fi%
}{}%
\iftoggle{snapCaster}{%
\addtocounter{castingBonus}{\value{Wits}}%
}{%
\addtocounter{castingBonus}{\value{Charisma}}%
}%
\renewcommand\spellResistance{#5}
\renewcommand\spellSum{#6}
\renewcommand\spellNotes{#7}
\multiply\value{spellTargets} by \value{spellCost}%
\multiply\value{spellTargets} by \value{spellCost}%
\addtocounter{spellTargets}{0}%
\iftoggle{distant}{%
\foreach \x in {1,...,\arabic{spellCost}}%
{\multiply\value{spellTargets} by 10\addtocounter{spellTargets}{0}}%
}{}%
\index[spells]{\textbf{#1} Cost: \arabic{spellCost}, \spellEnhancements\ \spellAction~\spellSphere, Range: \spellRange, Targets: \arabic{spellTargets}, Resisted by: \detokenize{#5}, \spellSum}
\paragraph{\spellName}
Cost: \arabic{spellCost},
\spellEnhancements,
\spellAction~
\spellSphere
Resisted by: \spellResistance,
Range: \spellRange
\ifnum\value{spellTargets}>1%
, Targets: \arabic{spellTargets}
\fi
\spellSum \
\spellNotes
}
\newcommand\spellIndex{\index[spells]{\textbf{\spellName} Cost: \arabic{spellCost}, \spellEnhancements, \spellAction~\spellSphere, Range: \spellRange, \ifnum\value{spellTargets}>1 Targets: \arabic{spellTargets}, \fi Resisted by: \detokenize{\spellResistance}, \spellSum \spellNotes }}
Resisted by: \spellResistance\ (\tn[\arabic{castingBonus}])
\iftoggle{fullSpells}{%
\fullSpell%
}{%
\shortSpell%
}%
\newcommand\spellRange{}
\newcommand\setRange{%
\iftoggle{distant}%
{%
\ifcase\value{spelllevel}\relax%
\renewcommand\spellRange{Error}%
\or%
\renewcommand\spellRange{Error}%
\or%
\renewcommand\spellRange{throwing distance}%
\or%
\renewcommand\spellRange{shouting distance}%
\or%
\renewcommand\spellRange{horizon}%
\else%
\renewcommand\spellRange{line of sight}%
\fi%
}%
{%
\setcounter{track}{20}%
\Repeat{\arabic{spelllevel}}{\addtocounter{track}{-4}}%
\ifnum\value{track}<1%
\renewcommand\spellRange{touch}%
\else%
\newtoggle{fullSpells}
\settoggle{fullSpells}{true}
\newtoggle{insubstantial}
\settoggle{insubstantial}{false}
\newtoggle{distant}
\settoggle{distant}{false}
\newtoggle{duplicated}
\settoggle{duplicated}{false}
\newcommand\showStdSpells{
\setcounter{enc}{0}
\begin{description}
\settoggle{fullSpells}{false}
\foreach\n in {3,2,1}{
\ifnum\value{enc}<3
\foreach \s in {Earth,Air,Fire,Water,Fate}{
\ifnumcomp{\value{\s}}{=}{\n}{
\input{config/spells/\s\n.tex}
\stepcounter{enc}
}{}
}
\fi
\textcolor{\pageSideColor}{\hrulefill\raisebox{-3pt}{\npcsymbol}}
\settoggle{fullSpells}{true}
\foreach \s in {#1}{
\input{config/spells/\s.tex}
}