Skip to content
Snippets Groups Projects
stats.sty 17.2 KiB
Newer Older
  • Learn to ignore specific revisions
  • \ProvidesPackage{config/stats}
    
    Malin Freeborn's avatar
    Malin Freeborn committed
    %%%%%%%%%%%%%%%%%%%% Introduction
    % This is a list of monster-commands.  You put in the command, like "\dragon", and a dragon will be conjured unto your pdf.
    % If you're unhapy with your dragon, copy-paste the bit where it says \dragon{blah}{bla}, then change those numbers.
    
    %%%%%%%%%%%%%%%%%%%% LOOT %%%%%%%%%%%%%%%%%%%%
    \newtoggle{bestiarychapter}
    \settoggle{bestiarychapter}{false}
    
    \newcommand{\lootSmall}{%
    \iftoggle{bestiarychapter}{%
    \ifodd\value{r2}$3D6$\else$2D6$\fi cp}{
    \randomdozen\arabic{r12} cp}%
    }
    
    \newcommand{\lootMedium}{%
    \iftoggle{bestiarychapter}{%
    \ifodd\value{r2}$3D6$\else$2D6$\fi~sp}{%
    \addtocounter{gold}{\thepage}\divide\value{gold} by \value{r4}%
    \ifnum\value{gold}<4%
    	\setcounter{gold}{7}\fi%
    \arabic{gold}~sp}%
    }
    
    \newcommand{\lootBig}{%
    \iftoggle{bestiarychapter}{%
    \ifodd\thepage $3D6-2$\else$2D6+4$\fi gp}{%
    \randomdozen\addtocounter{r12}{8}\arabic{r12}gp}%
    }
    
    \newcommand{\lootMagic}{%
    	\iftoggle{team}{Mana stone holding 2 MP}%
    	{\iftoggle{bestiarychapter}{}%
    	{\ifnumcomp{\value{r2}}{>}{1}%
    	{\ifodd\value{r3}%
    		\ifodd\value{r4}%
    			\ifodd\value{r3b}%
    				Sorcerer's Eye%
    			\else%
    		Deck of Cards\fi\else Wild Seeds\fi\else\ifodd\value{r2b}Bag of Holding%
    		\else%
    			Defensive Heart%
    		\fi%
    	\fi}%
    	{\ifodd\value{r3}%
    		\ifodd\value{r4}%
    			Portal Scroll%
    		\else%
    			Sleeping Dust%
    		\fi%
    	\else%
    		\ifodd\value{r2b}%
    			\ifnum\value{dr}>0%
    				Ring of Asphyxiation%
    			\else
    				Ghost Shield%
    			\fi%
    		\else%
    			Bag of Tricks%
    		\fi%
    	\fi}%
    }}}
    
    \newcommand{\lootJewellery}{%
    \iftoggle{bestiarychapter}{jewellery worth \ifodd\value{r2}$3D6$sp\else$1D6+2$gp\fi}%
    	{\ifnumcomp{\value{r2}}{>}{1}{\ifodd\value{r3}%
    		\ifodd\value{r4}%
    			golden necklace worth \arabic{r12}~sp\else%
    			golden ring worth \thechapter~sp\fi\else%
    		jewel encrusted dagger worth \thepage~sp\fi}%
    	{\ifodd\value{r3}%
    		\ifodd\value{r4}%
    			ornate silver earrings worth 1 gp\else
    			gem encrusted broach worth \thechapter gp\fi\else%
    		\randomthreeB saphire pendant worth \arabic{r3b}gp\fi}}}
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %                           _
    % _ __ ___   ___  _ __  ___| |_ ___ _ __
    %| '_ ` _ \ / _ \| '_ \/ __| __/ _ \ '__|
    %| | | | | | (_) | | | \__ \ ||  __/ |
    %|_| |_| |_|\___/|_| |_|___/\__\___|_|
    %
    %     _        _
    % ___| |_ __ _| |_ ___
    %/ __| __/ _` | __/ __|
    %\__ \ || (_| | |_\__ \
    %|___/\__\__,_|\__|___/
    %
    
    \newtoggle{mind}
    \newtoggle{examplecharacter}
    \settoggle{examplecharacter}{false}
    \newtoggle{debug}\settoggle{debug}{false}
    \newcommand{\ent}[1]{\textbf{#1}}
    \newcommand{\test}{}
    \newcommand{\skills}{}
    \newcommand{\equipment}{}
    \newcommand{\mods}{}
    \newcommand{\printknacks}{}
    \newcommand{\weaponknackone}{}
    \newcommand{\weaponknacktwo}{}
    
    \newcommand{\calculatedamage}[1]{%
    	\setcounter{damagebonus}{#1}%
    	\setcounter{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}$}{$}}}%
    	}
    
    
    %%%%%%%%%%%%%%%%%%%% Character Generation %%%%%%%%%%%%%%%%%%%%
    %
    %                       _                
    %  ___ ___  _   _ _ __ | |_ ___ _ __ ___ 
    % / __/ _ \| | | | '_ \| __/ _ \ '__/ __|
    %| (_| (_) | |_| | | | | ||  __/ |  \__ \
    % \___\___/ \__,_|_| |_|\__\___|_|  |___/
    %                                        
    %
    % Attributes: str, dex, spd, int, wts, cha
    % secondary str, dex and spd
    \newcounter{str}
    \newcounter{dex}
    \newcounter{spd}
    \newcounter{int}
    \newcounter{wts}
    \newcounter{cha}
    \newcounter{att}
    \newcounter{dam}
    \newcounter{dr}
    \newcounter{knacks}
    \newcounter{foxhop}% set to '1' if the character has fox hop
    \setcounter{foxhop}{0}
    
    
    \newcounter{strb}
    \newcounter{dexb}
    \newcounter{spdb}
    \newcounter{attb}
    \newcounter{damb}
    % 
    % Extras: MP hp fp
    % Derived: dicenumber, dicebonus,
    \newcounter{mp}
    \newcounter{mpb}
    \newcounter{sp}
    \newcounter{hp}
    \newcounter{fp}
    \newcounter{numberofdice}
    \newcounter{damagebonus}
    \newcounter{xp}
    \newcounter{xpbonus}
    \newcounter{attackXPtotal}
    \newcounter{defenceXPtotal}
    
    %                                                _
    %   ___ ___  _ __ ___  _ __ ___   __ _ _ __   __| |___
    %  / __/ _ \| '_ ` _ \| '_ ` _ \ / _` | '_ \ / _` / __|
    % | (_| (_) | | | | | | | | | | | (_| | | | | (_| \__ \
    %  \___\___/|_| |_| |_|_| |_| |_|\__,_|_| |_|\__,_|___/
    % 
    
    
    
    % magic
    \newcommand{\mana}[1]{\setcounter{mp}{#1}}
    
    Malin Freeborn's avatar
    Malin Freeborn committed
    \newcommand{\aldaron}{\addtocounter{mp}{3}Aldaron}
    \newcommand{\conjuration}{\addtocounter{mp}{3}Conjuration}
    \newcommand{\enchantment}{\addtocounter{mp}{3}Enchantment}
    \newcommand{\fate}{\addtocounter{mp}{3}Fate}
    \newcommand{\force}{\addtocounter{mp}{3}Force}
    \newcommand{\invocation}{\addtocounter{mp}{3}Invocation}
    \newcommand{\illusion}{\addtocounter{mp}{3}Illusion}
    \newcommand{\necromancy}{\addtocounter{mp}{3}Necromancy}
    \newcommand{\polymorph}{\addtocounter{mp}{3}Polymorph}
    \newcommand{\saurecanta}{\addtocounter{mp}{3}Saurecanta}
    
    Malin Freeborn's avatar
    Malin Freeborn committed
    \newcommand{\lockedmana}[1]{\setcounter{mpb}{-#1}}
    \newcommand{\armourtype}{N}
    
    \newcommand{\knacks}[1]{ \\
    	\ent{Knacks:} & #1 
    }
    
    %%%%%%%%%%%%%%%%%%%%% Knacks
    %
    \newcommand{\adrenalinesurge}{Adrenaline Surge\addtocounter{strb}{1}\addtocounter{knacks}{1}}
    \newcommand{\disarm}{Disarm\addtocounter{knacks}{1}\addtocounter{xpbonus}{1}}
    \newcommand{\guardian}{Guardian\addtocounter{knacks}{1}}
    \newcommand{\furiousblows}{Furious Blows\addtocounter{knacks}{1}}
    \newcommand{\firststrike}{First Strike\addtocounter{spd}{1}\addtocounter{spdb}{2}\addtocounter{knacks}{1}}
    \newcommand{\specialist}[1]{Specialist (#1)\addtocounter{knacks}{1}}
    \newcommand{\bloodcaster}{Blood Caster\addtocounter{knacks}{1}}
    \newcommand{\combatcaster}{Combat Caster\addtocounter{knacks}{1}}
    \newcommand{\backtothewall}{Back to the Wall\addtocounter{knacks}{1}}
    \newcommand{\laststand}{Last Stand\addtocounter{knacks}{1}}
    \newcommand{\perfectsneakattack}{Perfect Sneak Attack\addtocounter{knacks}{1}\addtocounter{strb}{\value{knacks}}\addtocounter{strb}{2}}
    \newcommand{\precisestrike}{Precise Strike\addtocounter{knacks}{1}}
    \newcommand{\quickshot}{Quick Shot\addtocounter{knacks}{1}}
    \newcommand{\stunningstrike}{Stunning Strike\addtocounter{knacks}{1}\addtocounter{xpbonus}{1}}
    \newcommand{\charge}{\addtocounter{knacks}{1}\setcounter{track}{\value{knacks}}\addtocounter{track}{1}\divide\value{track} by 2\addtocounter{attb}{\value{track}}\addtocounter{strb}{\value{track}}\addtocounter{spdb}{\value{track}}Extreme Charge}
    \newcommand{\snapshot}{Snap Shot\addtocounter{knacks}{1}\addtocounter{strb}{2}}
    \newcommand{\defender}{Defender\addtocounter{knacks}{1}\addtocounter{xpbonus}{1}}
    \newcommand{\dodger}{Dodger\addtocounter{knacks}{1}}
    \newcommand{\foxhop}{Fox Hop\addtocounter{knacks}{1}\setcounter{foxhop}{1}}
    \newcommand{\mightydraw}{Mighty Draw\addtocounter{knacks}{1}}
    \newcommand{\finishingblow}{Finishing Blow\addtocounter{knacks}{1}}
    \newcommand{\unstoppable}{Unstoppable\addtocounter{hp}{2}\addtocounter{knacks}{1}}
    
    %%%%% Weapons
    
    \newcommand{\javelin}{Javelin\addtocounter{str}{1}\addtocounter{spd}{2}}
    \newcommand{\Dagger}{Dagger\addtocounter{str}{1}}
    \newcommand{\shortsword}{Shortsword\addtocounter{str}{1}\addtocounter{spd}{1}\addtocounter{dex}{2}}
    \newcommand{\club}{Club\addtocounter{str}{2}\addtocounter{spd}{1}\addtocounter{dex}{1}}
    \newcommand{\rapier}{Rapier\addtocounter{str}{1}\addtocounter{spd}{2}\addtocounter{dex}{1}}
    \newcommand{\longsword}{Longsword\addtocounter{str}{1}\addtocounter{spd}{1}\addtocounter{dex}{3}}
    \newcommand{\greatsword}{Greatsword\addtocounter{str}{2}\addtocounter{spd}{1}\addtocounter{dex}{2}}
    \newcommand{\spear}{Spear\addtocounter{str}{1}\addtocounter{spd}{1}\addtocounter{dex}{2}\addtocounter{spdb}{2}}
    \newcommand{\quarterstaff}{Quarterstaff\addtocounter{spd}{1}\addtocounter{dex}{2}\addtocounter{spdb}{2}}
    \newcommand{\greataxe}{Greataxe\addtocounter{str}{3}\addtocounter{spd}{1}\addtocounter{dex}{1}}
    \newcommand{\woodaxe}{Wood axe\addtocounter{str}{2}\addtocounter{dex}{1}}
    \newcommand{\greatclub}{Greatclub\addtocounter{str}{4}\addtocounter{spd}{1}\addtocounter{dex}{1}}
    \newcommand{\longbow}{Longbow}
    \newcommand{\shield}{\addtocounter{dex}{1}shield}
    \newcommand{\bucklar}{\addtocounter{dex}{1}bucklar shield}
    
    % ARMOUR
    
    
    %% For perfect armour, stick \perfectArmour in the additional notes category of a \person (#9).
    
    \newcommand{\perfectArmour}{\gdef\armourtype{(Perfect)}}
    
    
    Malin Freeborn's avatar
    Malin Freeborn committed
    \newcommand{\partialelvish}{partial leather armour%
    	\ifnumcomp{\value{dr}}{>}{2}%
    	{\addtocounter{dr}{1}}%
    	{\divide\value{dr} by 2 \addtocounter{dr}{2}}%
    }
    
    \newcommand{\partialleather}{partial leather armour%
    	\ifnumcomp{\value{dr}}{>}{3}%
    	{\addtocounter{dr}{2}}%
    	{\divide\value{dr} by 2 \addtocounter{dr}{3}}%
    }
    
    \newcommand{\completeleather}{full leather armour\gdef\armourtype{C}%
    	\ifnumcomp{\value{dr}}{>}{3}%
    	{\addtocounter{dr}{2}}%
    	{\divide\value{dr} by 2 \addtocounter{dr}{3}}%
    }
    
    \newcommand{\partialchain}{partial chainmail%
    	\ifnumcomp{\value{dr}}{>}{4}%
    	{\addtocounter{dr}{2}}%
    	{\divide\value{dr} by 2 \addtocounter{dr}{4}}%
    }
    
    \newcommand{\completechain}{complete chain armour\gdef\armourtype{C}%
    	\ifnumcomp{\value{dr}}{>}{4}%
    	{\addtocounter{dr}{2}}%
    	{\divide\value{dr} by 2 \addtocounter{dr}{4}}%
    }
    
    \newcommand{\partialplate}{partial plate armour%
    	\ifnumcomp{\value{dr}}{>}{5}%
    	{\addtocounter{dr}{3}}%
    	{\divide\value{dr} by 2 \addtocounter{dr}{5}}%
    }
    
    \newcommand{\completeplate}{complete plate armour\gdef\armourtype{C}%
    	\ifnumcomp{\value{dr}}{>}{5}%
    	{\addtocounter{dr}{3}}%
    	{\divide\value{dr} by 2 \addtocounter{dr}{5}}%
    }
    
    % 
    % _ __   ___ _ __ ___  ___  _ __  
    %| '_ \ / _ \ '__/ __|/ _ \| '_ \ 
    %| |_) |  __/ |  \__ \ (_) | | | |
    %| .__/ \___|_|  |___/\___/|_| |_|
    %|_|                              
    % 
    %
    %       _                          _            
    %%  ___| |__   __ _ _ __ __ _  ___| |_ ___ _ __ 
    %% / __| '_ \ / _` | '__/ _` |/ __| __/ _ \ '__|
    %%| (__| | | | (_| | | | (_| | (__| ||  __/ |   
    %% \___|_| |_|\__,_|_|  \__,_|\___|\__\___|_|   
    %%                                              
    %%  optional counters, such as mana, are cleaned
    %%  clear: weaponsknack1 and 2, 
    %% 
    %
    \newcommand{\mind}[3]{
    \setcounter{int}{#1}\setcounter{wts}{#2}\setcounter{cha}{#3}
    }
    %
    
    %%%%%%%%%%% Person
    %
    \newcommand{\person}[9]{\settoggle{mind}{true}
    \setcounter{str}{#1}
    \setcounter{dex}{#2}
    \setcounter{spd}{#3}
    \mind#4
    \setcounter{dr}{#5}
    \setcounter{att}{#6}
    \renewcommand{\skills}{#7}
    \renewcommand{\equipment}{#8}
    \renewcommand{\mods}{#9}
    
    \clean
    
    \renewcommand{\armourtype}{P}
    \gdef\armourtype{P}
    
    \begin{tcolorbox}[title={\name}, before upper={\parindent0pt}, halign=flush left, left=2mm, watermark text=\npcsymbol]
    
    \iftoggle{personality}{
    
    \textbf{Archetype:} \archetype
    
    \textbf{Personality:} \personality
    
    \textbf{Mannerism:} \mannerism
    
    \vspace{1em}
    
    \settoggle{personality}{false}}%
    {}
    \creaturestats
    
    \derivedstats
    \end{tcolorbox}
    	\settoggle{debug}{false}
    	\settoggle{examplecharacter}{false}
    
    }
    
    \newcommand{\animal}[9]{\settoggle{mind}{false}
    \setcounter{str}{#1}
    \setcounter{dex}{#2}
    \setcounter{spd}{#3}
    \setcounter{wts}{#4}
    \setcounter{dr}{#5}
    \setcounter{att}{#6}
    \renewcommand{\skills}{#7}
    \renewcommand{\abilities}{#8}
    \renewcommand{\mods}{#9}
    
    \clean
    
    \renewcommand{\armourtype}{C}
    
    \begin{tcolorbox}[title={\name},before upper={\parindent0pt},watermark text=\npcsymbol]
    
    \iftoggle{personality}{
    
    \textbf{Personality:} \personality
    
    \textbf{Mannerism:} \mannerism
    
    \vspace{1em}
    
    \settoggle{personality}{false}}%
    {}
    \creaturestats
    
    \derivedstats
    
    \end{tcolorbox}
    
    }
    
    \newcommand{\clean}{
    	\setcounter{fp}{5}
    	\setcounter{sp}{0}
    	\setcounter{knacks}{0}
    	\renewcommand{\armourtype}{N}
    	\renewcommand{\weaponknackone}{}
    	\renewcommand{\weaponknacktwo}{}
    	\setcounter{mp}{0}
    	\setcounter{mpb}{0}
    	\setcounter{xpbonus}{0}
    	\settoggle{team}{false}
    
    }
    
    %%       _   _        _ _           _            
    %%  __ _| |_| |_ _ __(_) |__  _   _| |_ ___  ___ 
    %% / _` | __| __| '__| | '_ \| | | | __/ _ \/ __|
    %%| (_| | |_| |_| |  | | |_) | |_| | ||  __/\__ \
    %% \__,_|\__|\__|_|  |_|_.__/ \__,_|\__\___||___/
    %% 
    %% Print the line,
    %% print the attributes.
    %% print the skills
    %% print the knacks
    %% print the equipment
    %
    \newcommand{\creaturestats}{
    	\vspace{.1cm}
    
    
    % Reference versions (which always are non-verbose) don't
    % have the space for full-sized stats.
    
    \iftoggle{verbose}{}{
    	\begin{footnotesize}
    }
    
    
    Malin Freeborn's avatar
    Malin Freeborn committed
    \setcounter{strb}{0}
    \setcounter{spdb}{0}
    \setcounter{dexb}{0}
    
    
    \begin{tabularx}{\textwidth}{lr|lr|lr}
    
    Malin Freeborn's avatar
    Malin Freeborn committed
    
    % the tcolorbox has coloured rows (xcolor package)
    % but that doesn't work with creature stats, so we suppress it here
    \hiderowcolors
    
    
    	\iftoggle{verbose}{Strength}{STR} & \arabic{str} & \iftoggle{verbose}{Dexterity}{DEX} & \arabic{dex} & \iftoggle{verbose}{Speed}{SPD} & \arabic{spd} \\
    \iftoggle{mind}{
    	\iftoggle{verbose}{Intelligence}{INT} & \arabic{int}  & \iftoggle{verbose}{Wits}{WTS} & \arabic{wts} & \iftoggle{verbose}{Charisma}{CHA} & \arabic{cha}  \\}{%
    
    	&& \iftoggle{verbose}{Wits}{WTS} & \arabic{wts} \\
    
    Malin Freeborn's avatar
    Malin Freeborn committed
    	}
    	\setcounter{hp}{\value{str}}
    \end{tabularx}
    
    Malin Freeborn's avatar
    Malin Freeborn committed
    \hrule
    	\addtocounter{hp}{6}
    
    	\iftoggle{examplecharacter}{}{
    		\addtocounter{dex}{7}
    }
    \vspace{.1cm}
    \raggedright
    \noindent\begin{tabular}{p{.3\textwidth}>{\raggedright\arraybackslash}p{.65\textwidth}}
    
    	\ent{Skills:} & \ifnumcomp{\value{att}}{=}{0}{\setcounter{att}{-1}}{\iftoggle{mind}{Combat \arabic{att}, }{Aggression \arabic{att}, }} \skills \\
    	\iftoggle{mind}{\ent{Equipment:} & \equipment \\}{\ent{Abilities:} & \abilities \\}
    
    	\addtocounter{strb}{\value{str}}
    	\addtocounter{dexb}{\value{dex}}
    	\addtocounter{spdb}{\value{spd}}
    	\setcounter{damb}{\value{dam}}
    	\setcounter{attb}{\value{att}}
    
    	\mods
    
    \end{tabular}
    
    	\weaponknackone
    	\weaponknacktwo
    
    \iftoggle{examplecharacter}{}{
    	\addtocounter{att}{8}
    	\addtocounter{attb}{8}
    }
    
    \vspace{.1cm}
    
    
    \iftoggle{verbose}{}{
    	\end{footnotesize}
    }
    
    Malin Freeborn's avatar
    Malin Freeborn committed
    }
    
    %%     _               _        _
    %%  __| | ___ _ __ ___| |_ __ _| |_ ___ 
    %% / _` |/ _ \ '__/ __| __/ _` | __/ __|
    %%| (_| |  __/ |  \__ \ || (_| | |_\__ \
    %% \__,_|\___|_|  |___/\__\__,_|\__|___/
    %% 
    %% 
    %% dice instead of Damage
    %% print out att, spd, DAM, dex, dr (type), str
    %%
    %
    \newcommand{\derivedstats}{
    	\iftoggle{debug}{str is \arabic{str}, strb is \arabic{strb}.}{}
    
    	\hrule
    
    	\vspace{.1cm}
    
    \noindent Attack \arabic{att}\ifnumcomp{\value{att}}{=}{\value{attb}}{}{ (\arabic{attb})},
    	Initiative \arabic{spd}\ifnumcomp{\value{spd}}{=}{\value{spdb}}{}{ (\arabic{spdb})},
    	Damage \calculatedamage{\value{str}}\ifnumcomp{\value{str}}{=}{\value{strb}}{}{ (\calculatedamage{\value{strb}})}, 
    	\iftoggle{examplecharacter}{\mbox{Defence \arabic{dex},} }{
    	TN \arabic{dex}%
    
    	\ifnumcomp{\value{dr}}{>}{0}{
    		\ifnum\pdfstrcmp{\armourtype}{P}=0
    			\addtocounter{dexb}{3} (\arabic{dexb})
    		\fi
    		\ifnum\pdfstrcmp{\armourtype}{C}=0
    			\addtocounter{dexb}{5} (\arabic{dexb})
    		\fi
    		\ifnum\pdfstrcmp{\armourtype}{C}=0
    			\addtocounter{dexb}{5} (\arabic{dexb})
    		\fi
    	}{}, 
    
    Malin Freeborn's avatar
    Malin Freeborn committed
    	}%
    	\ifnumcomp{\value{dr}}{>}{0}{DR \arabic{dr}~\armourtype, }{}%
    	\ifnum\value{mp}>0%
    
    		\addtocounter{mp}{\value{wts}}%
    
    Malin Freeborn's avatar
    Malin Freeborn committed
    		\mbox{
    		\ifnum\value{mpb}=0%
    			\arabic{mp}~MP%
    		\else%
    			\addtocounter{mpb}{\value{mp}}%
    			\arabic{mpb} / \arabic{mp} MP%
    		\fi
    		\iftoggle{bestiarychapter}%
    			{, }%
    			{ \Repeat{\value{mp}}{\ding{111}}, }%
    		}
    	\fi
    	\mbox{\arabic{hp} HP \iftoggle{bestiarychapter}{}{%
    	\ \Repeat{\value{hp}}{\ding{111}}%
    		}%
    	}%
    	\ifnumcomp{\value{sp}}{>}{0}%
    		{, \mbox{%
    			\arabic{sp} SP %
    			\iftoggle{bestiarychapter}{}{\Repeat{\value{sp}}{\ding{111}}}%
    		}%
    		}%
    	{}%
    \iftoggle{examplecharacter}{\addtocounter{fp}{\value{cha}}, \arabic{fp} FP}{}
    
    
    
    
    	\iftoggle{examplecharacter}{}{
    		\calculateXP
    	}
    	}
    %
    %
    %% __  ______  
    %% \ \/ /  _ \ 
    %%  \  /| |_) |
    %%  /  \|  __/ 
    %% /_/\_\_|    
    %%  
    	\newcommand{\calculateXP}{
    %% Sanitize: init+5, dam+5, 
    	\addtocounter{spdb}{5}
    	\addtocounter{strb}{5}
    	\addtocounter{dex}{5}
    	\addtocounter{dr}{2}
    
    
    % Sanitize: dex+5, dr+1,  
    % attackXPtotal= strb x spdb x damb
    \vspace{.1cm}
    
    \hrule
    \vspace{.1cm}
    	\setcounter{attackXPtotal}{\value{attb}}
    
    	\multiply\value{attackXPtotal} by \value{spdb}
    
    	
    	\multiply\value{attackXPtotal} by \value{strb}
    
    	\iftoggle{debug}{Attack total: \arabic{attackXPtotal}}{}
     
    % defenceXPtotal= dex x dr x hp
    	\setcounter{defenceXPtotal}{\value{dex}}
    	\multiply\value{defenceXPtotal} by \value{dr}
    	\multiply\value{defenceXPtotal} by \value{hp}
    
    \iftoggle{debug}{Defence total: \arabic{defenceXPtotal}}{}
    
    % XP = attackXPtotal + defenceXPtotal
    	\setcounter{xp}{\value{attackXPtotal}}
    	\addtocounter{xp}{\value{defenceXPtotal}}
    	\addtocounter{xp}{-350}
    	\multiply\value{mp} by 100
    	\addtocounter{xp}{\value{mp}}
    \ifnumcomp{\value{xp}}{<}{120}{\ifnumcomp{\value{xp}}{>}{100}{$1/2$ XP}{$1/3$}}{%
    	\divide\value{xp} by 120%
    	\addtocounter{xp}{\value{xpbonus}}%
    \arabic{xp} XP}%
    % if {mind} print fate points.
    %
    \iftoggle{examplecharacter}{%
    }{
    	\iftoggle{mind}%
    		{\addtocounter{fp}{\value{cha}} \arabic{fp} FP %
    		\iftoggle{bestiarychapter}%
    			{}%
    			{\Repeat{\value{fp}}{\ding{111}}}
    }{}
    	\vspace{.1cm}
    	\hrule
    }
    
    	\vspace{.1cm}
    
    	}
    %
    %%%%%%%%%%%%%%%%%%%% Creature Abilities
    
    \newcommand{\abilities}[1]{ \\
    	\ent{Abilities:} & #1 
    	}
    
    \newcommand{\claws}{
    	Claws (+1 Damage) \addtocounter{str}{1}
    	}
    
    \newcommand{\quadraped}{%
    	Quadraped (double movement)%
    }
    
    \newcommand{\teeth}{%
    	Teeth (+1 Damage after grapple)\addtocounter{str}{1}%
    }
    
    	\newcommand{\web}{
    		\setcounter{track}{6}\addtocounter{track}{\value{str}}
    		Web (Strength + Athletics, TN \arabic{track} to break free as a movement action)
    		}
    
    
    %%%%%%%%%%%%%%%%%%%%% Magic Path
    \newcommand{\Path}[2]{ \\
    	\raggedright \ent{Path of #1:} & #2
    	}