diff --git a/bind.sty b/bind.sty index 16d75a964f4a91a17ae830ce976952524f34b3df..58dc84245c8e15fdf4f1dca17aee982cc9d3e833 100644 --- a/bind.sty +++ b/bind.sty @@ -3,6 +3,7 @@ \input{config/rules/charts.tex} \RequirePackage{config/csCommands} \RequirePackage{config/seasons} +\RequirePackage{config/magic} \RequirePackage{config/loot} \RequirePackage{config/arms} \RequirePackage{config/stats} diff --git a/layout.sty b/layout.sty index 41aa84410f3a80c488327bea7367d6b6eff020a8..910bb33075b7cfafdbb2e36447f0cdd1b27387e9 100644 --- a/layout.sty +++ b/layout.sty @@ -817,142 +817,6 @@ interior code={ \path[tcb fill interior] ([xshift=-2mm]interior.west) \newcolumntype{Y}{>{\centering\arraybackslash}X} \newcolumntype{L}{>{\raggedright\arraybackslash}X} -%%%%% Magic %%%%% - -\newcommand\mFate{Fate\settoggle{insubstantial}{true}} -\newcommand\mEarth{Earth} -\newcommand\mAir{Air\settoggle{insubstantial}{true}} -\newcommand\mFire{Fire} -\newcommand\mWater{Water} - -% 1 = Name -% 2 = Spheres -% 3 = Action -% 4 = Enhancements -% 5 = Skill -% 6 = Description - - -\newcommand{\spell}[6]{ - \settoggle{distant}{false}% - \settoggle{insubstantial}{false} - \setcounter{spelllevel}{1}% - \foreach \s in {#4}{% - \stepcounter{spelllevel}% - }% - \subsubsection[\textbf{#1}: #6. (\textit{#5})]{#1}% - - (#3 - #4 - #2), - \glsentrytext{mp} Cost:~\arabic{spelllevel}, - \setRange% - Range:~\spellRange, - \iftoggle{duplicated}{% - \setArea% - Targets:~\spellArea,% - }{}% - \underline{Skill:~#5} - \vspace{.5em}\afterparnoindent - \index[spells]{\textbf{#1}: \iftoggle{duplicated}{\spellArea targets}{Have target} #6. (Cost:~\arabic{spelllevel}, Spheres:~#2, Skill:~#5, \mbox{Range: \spellRange})} -} - - -\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}{6}% - \addtocounter{track}{-\value{spelllevel}}% - \ifnum\value{track}<1% - \renewcommand\spellRange{touch}% - \else% - \renewcommand\spellRange{\arabic{track} steps}% - \fi% - }% -} - - -%%% -\newcommand\spellArea{} -\newcounter{spellArea} - -\newcommand\setArea{% - \setcounter{spellArea}{\value{spelllevel}}% - \multiply\value{spellArea} by \value{spelllevel}% - \iftoggle{insubstantial}{% - \multiply\value{spellArea} by \value{spelllevel}% - \addtocounter{spellArea}{0}% - }{}% - \renewcommand\spellArea{% - \arabic{spellArea}, % - }% -} - -%%% - -\newtoggle{insubstantial} - \settoggle{insubstantial}{false} -\newtoggle{distant} - \settoggle{distant}{false} -\newtoggle{duplicated} - \settoggle{duplicated}{false} - -\newcommand\detailed{Detailed} - -\newcommand\duplicated{% - \settoggle{duplicated}{true}% - Duplicated% -} - -\newcommand\divergent{Divergent} - -\newcommand\distant{% - \settoggle{distant}{true}% - Distant% -} - -\newcommand{\magicitem}[7]{% - \vspace{1em}\needspace{1em}\noindent\textbf{#1}% - \index{Magical Item!#1} - - \noindent - \textit{Spells: #2, }% - \textit{Path: #3, }% - \textit{Duration: #4, }% - \textit{Type: #5, }% - \textit{Potency: +#6, }% - \textit{MP: #7}% - % Type can be 'Pocket Spell', 'Talisman', or 'Artefact'. - \needspace{2em}% -} - -\newcommand{\manalake}[8]{ - \subsection{#1 (Level #8)} - - \textit{Spells: #2, }\textit{Path: #3, }\textit{Duration: #4, }\textit{Type: #5, }\textit{Potence: #6, }\textit{#7 MP}% Type can be 'pocket spell', 'magical item', or 'artefact'. - \index{Mana Lakes!#1} - \vspace{.3em} -} - - -% Toggles for knacks %%%%%%%%%%%%%%%%%%%% Environments %%%%%%%%%%%%%%%%%%%% diff --git a/magic.sty b/magic.sty new file mode 100644 index 0000000000000000000000000000000000000000..715916164e45830c7cc68dde76abe3c6009f052d --- /dev/null +++ b/magic.sty @@ -0,0 +1,139 @@ +% +% __ __ _ +% | \/ | __ _ __ _(_) ___ +% | |\/| |/ _` |/ _` | |/ __| +% | | | | (_| | (_| | | (__ +% |_| |_|\__,_|\__, |_|\___| +% |___/ + +\newcommand\mFate{Fate\settoggle{insubstantial}{true}} +\newcommand\mEarth{Earth} +\newcommand\mAir{Air\settoggle{insubstantial}{true}} +\newcommand\mFire{Fire} +\newcommand\mWater{Water} + +% 1 = Name +% 2 = Spheres +% 3 = Action +% 4 = Enhancements +% 5 = Skill +% 6 = Description + + +\newcommand{\spell}[6]{ + \settoggle{distant}{false}% + \settoggle{insubstantial}{false} + \setcounter{spelllevel}{1}% + \foreach \s in {#4}{% + \stepcounter{spelllevel}% + }% + \subsubsection[\textbf{#1}: #6. (\textit{#5})]{#1}% + + (#3 + #4 + #2), + \glsentrytext{mp} Cost:~\arabic{spelllevel}, + \setRange% + Range:~\spellRange, + \iftoggle{duplicated}{% + \setArea% + Targets:~\spellArea, % + }{}% + \underline{Skill:~#5} + \vspace{.5em}\afterparnoindent + \index[spells]{\textbf{#1}: \iftoggle{duplicated}{\spellArea~targets}{Have target} #6. (Cost:~\arabic{spelllevel}, Spheres:~#2, Skill:~#5, \mbox{Range: \spellRange})} +} + +\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}{6}% + \addtocounter{track}{-\value{spelllevel}}% + \ifnum\value{track}<1% + \renewcommand\spellRange{touch}% + \else% + \renewcommand\spellRange{\arabic{track} steps}% + \fi% + }% +} + + +%%% +\newcommand\spellArea{} +\newcounter{spellArea} + +\newcommand\setArea{% + \setcounter{spellArea}{\value{spelllevel}}% + \multiply\value{spellArea} by \value{spelllevel}% + \iftoggle{insubstantial}{% + \multiply\value{spellArea} by \value{spelllevel}% + \addtocounter{spellArea}{0}% + }{}% + \renewcommand\spellArea{% + \arabic{spellArea}% + }% +} + +%%% + +\newtoggle{insubstantial} + \settoggle{insubstantial}{false} +\newtoggle{distant} + \settoggle{distant}{false} +\newtoggle{duplicated} + \settoggle{duplicated}{false} + +\newcommand\detailed{Detailed} + +\newcommand\duplicated{% + \settoggle{duplicated}{true}% + Duplicated% +} + +\newcommand\divergent{Divergent} + +\newcommand\distant{% + \settoggle{distant}{true}% + Distant% +} + +\newcommand{\magicitem}[7]{% + \vspace{1em}\needspace{1em}\noindent\textbf{#1}% + \index{Magical Item!#1} + + \noindent + \textit{Spells: #2, }% + \textit{Path: #3, }% + \textit{Duration: #4, }% + \textit{Type: #5, }% + \textit{Potency: +#6, }% + \textit{MP: #7}% + % Type can be 'Pocket Spell', 'Talisman', or 'Artefact'. + \needspace{2em}% +} + +\newcommand{\manalake}[8]{ + \subsection{#1 (Level #8)} + + \textit{Spells: #2, }\textit{Path: #3, }\textit{Duration: #4, }\textit{Type: #5, }\textit{Potence: #6, }\textit{#7 MP}% Type can be 'pocket spell', 'magical item', or 'artefact'. + \index{Mana Lakes!#1} + \vspace{.3em} +} + + diff --git a/stats.sty b/stats.sty index a19560cb160b52ee12f792aacee6be6418791978..eca6a0fa605f26a99572ec09dc65c27306f18462 100644 --- a/stats.sty +++ b/stats.sty @@ -64,17 +64,19 @@ \newcommand{\dmg}[1]{% \setcounter{damagebonus}{\value{#1}}% \setcounter{numberofdice}{1}% - \whileboolexpr{test {\ifnumcomp{\value{damagebonus}}{>}{3}}}{% - \addtocounter{damagebonus}% - {-4}\addtocounter{numberofdice}{1}% + \whileboolexpr{% + test {\ifnumcomp{\value{damagebonus}}{>}{3}}% + }{% + \addtocounter{damagebonus}{-4}% + \addtocounter{numberofdice}{1}% }% {\arabic{numberofdice}D6% \ifnumcomp{\value{damagebonus}}{>}{0}% {+\arabic{damagebonus}}% {% \ifnumcomp{\value{damagebonus}}{<}{0}{% - \arabic{damagebonus}}% - {}% + \arabic{damagebonus}% + }{}% }% }% }