Newer
Older
%%%%%%%%%%%%%%%%%%%% Introduction
\newtoggle{bestiarychapter}
\settoggle{bestiarychapter}{false}
\newtoggle{allyCharacter}
\settoggle{allyCharacter}{false}
% _ _
% ___| |_ __ _| |_
% / __| __/ _` | __|
% \__ \ || (_| | |_
% |___/\__\__,_|\__|
%
%
% _ _ _
% | |__ | | ___ ___| | _____
% | '_ \| |/ _ \ / __| |/ / __|
% | |_) | | (_) | (__| <\__ \
% |_.__/|_|\___/ \___|_|\_\___/
%
% This file makes stat blocks for monsters.
%
% The writer feeds in something like this:
%
% \npc{\M}{Patrick the Pyromanacer}
%
% \person{0}% STRENGTH
% {0}% DEXTERITY
% {0}% SPEED
% {{0}% INTELLIGENCE
% {0}% WITS
% {0}}% CHARISMA
% {0}% DR
% {0}% COMBAT
% {}% SKILLS
% {Nothing}% EQUIPMENT
% {}
%
% The \person command takes various stats, and
% inside that 'SKILLS' variable (variable no. 8),
% we can add additional things, like
% \Path{Blood}{\invocation{2}}, which gives your
% wizzard 'invocation 2'.
%
% Most of the rest of the commands deal with
% properly calculating derived stats, like the TN
% to hit the creature.
\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}{}
% we calculate damage here because we can't display 1d6+6 damage - it has to turn into 2d6+2 damage.
\setcounter{numberofdice}{1}%
\whileboolexpr{test {\ifnumcomp{\value{damagebonus}}{>}{3}}}{%
\addtocounter{damagebonus}%
\newcommand\showBoxes{
\ifnum\value{mp}<1
\HPHPboxes
\else
\HPHPHPboxes
\fi
\fi
\else
\ifnum\value{sp}<1
\HPMPboxes
\else
\HPMPSPboxes
\fi
\fi
}
\newcommand\boxStat[2][0]{%
\addtocounter{#2}{-#1}%
\Repeat{#1}{\sqr}%
\Repeat{\value{#2}}{\sqn}%
}
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
\newcommand\HPboxes{
\begin{tabular}{r}
HP \arabic{hp}
\Repeat{\value{noAppearing}}{
\boxStat{hp} \\
}
\end{tabular}
}
\newcommand\HPHPboxes{
\begin{tabular}{rr}
HP \arabic{hp}
\whileboolexpr{test {\ifnumcomp{\value{noAppearing}}{>}{0}}}{%
\ifnumodd{\value{noAppearing}}{ & \boxStat{hp} \\}{\boxStat{hp}}%
\addtocounter{noAppearing}{-1}
}
\end{tabular}
}
\newcommand\HPHPHPboxes{
\begin{tabular}{rrr}
HP \arabic{hp}
\whileboolexpr{test {\ifnumcomp{\value{noAppearing}}{>}{0}}}{%
\boxStat{hp}
\addtocounter{noAppearing}{-1}
&
\ifnum\value{noAppearing}>0\boxStat{hp}\fi
&
\ifnum\value{noAppearing}>0\boxStat{hp}\fi
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
\\
}
\end{tabular}
}
\newcommand\HPMPboxes{
\setcounter{enc}{\value{hp}}
\addtocounter{enc}{\value{mp}}
\ifnum\value{enc}<20
\begin{tabular}{rr}
\Repeat{\value{noAppearing}}{
HP \arabic{hp}
\boxStat{hp}
&
MP \arabic{mp}
\boxStat{mp}
\\
}
\end{tabular}
\else
\begin{tabular}{r}
\Repeat{\value{noAppearing}}{
HP \arabic{hp} \boxStat{hp} \\
MP \arabic{mp} \boxStat{mp} \\
}
\end{tabular}
\fi
}
\newcommand\HPMPSPboxes{
\setcounter{enc}{\value{hp}}
\addtocounter{enc}{\value{mp}}
\addtocounter{enc}{\value{sp}}
\ifnum\value{enc}<20
\begin{tabular}{rrr}
\Repeat{\value{noAppearing}}{
HP \arabic{hp}
\boxStat{hp}
&
MP \arabic{mp}
\boxStat{mp}
&
SP \arabic{sp}
\boxStat{sp}
\\
}
\end{tabular}
\else
\ifnum\value{enc}<10
\begin{tabular}{rr}
\Repeat{\value{noAppearing}}{
HP \arabic{hp} \boxStat{hp} &
MP \arabic{mp} \boxStat{mp} \\
& SP \arabic{sp} \boxStat{sp} \\
}
\end{tabular}
\else
\begin{tabular}{r}
\Repeat{\value{noAppearing}}{
MP \arabic{mp} \boxStat{mp} \\
SP \arabic{sp} \boxStat{sp} \\
}
\end{tabular}
\fi
\fi
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
%%%%%%%%%%%%%%%%%%%% 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{dr}
\newcounter{knacks}
\newcounter{strb}
\newcounter{dexb}
\newcounter{spdb}
% Extras: MP hp fp
% Derived: dicenumber, dicebonus,
\newcounter{mp}
\newcounter{mpLocked}
\newcounter{mpFree}
\newcounter{sp}
\newcounter{hp}
\newcounter{fp}
\newcounter{numberofdice}
\newcounter{damagebonus}
\newcounter{xp}
\newcounter{xpbonus}
\newcounter{attackXPtotal}
\newcounter{initiative}
\newcounter{weight}
\newcounter{damage}
\newcounter{shieldBonus}
\newcounter{shieldWeight}
\newcounter{shieldInit}
\newcounter{cost}
\newcounter{heft}% used to see how many AP points to swing a weapon
\newcounter{encumbrance}
\setcounter{encumbrance}{0}
% _
% ___ ___ _ __ ___ _ __ ___ __ _ _ __ __| |___
% / __/ _ \| '_ ` _ \| '_ ` _ \ / _` | '_ \ / _` / __|
% | (_| (_) | | | | | | | | | | | (_| | | | | (_| \__ \
% \___\___/|_| |_| |_|_| |_| |_|\__,_|_| |_|\__,_|___/
%
% magic
\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}
\newcommand{\lockedmana}[1]{\setcounter{mpLocked}{#1}}
\newcommand{\armourtype}{N}
\newcommand{\knacks}[1]{ \\
\ent{Knacks:} & #1
}
%%%%%%%%%%%%%%%%%%%%% Knacks
%
\newcommand{\adrenalinesurge}{Adrenaline Surge\addtocounter{strb}{1}\addtocounter{knacks}{1}%
\iftoggle{examplecharacter}{ (+1 Str. once per \ifnum\value{knacks}>2 combat\else round, \arabic{knacks} uses per combat\fi)}{}}
\newcommand{\berserker}{Berserker\addtocounter{spdb}{1}\addtocounter{strb}{1}\addtocounter{knacks}{1}%
\iftoggle{examplecharacter}{ (+1 Str. on round 2 of combat, +1 Spd. on round 3)}{}}
\newcommand{\brawler}{Brawler\addtocounter{dexb}{2}\addtocounter{knacks}{1}%
\iftoggle{examplecharacter}{ (+2 to unarmed attacks)}{}}
\newcommand{\charge}{\addtocounter{knacks}{1}\setcounter{track}{\value{knacks}}\addtocounter{track}{1}\divide\value{track} by 2\addtocounter{dexb}{\value{track}}\addtocounter{strb}{\value{track}}\addtocounter{spdb}{\value{track}}Extreme Charge%
\iftoggle{examplecharacter}{\setcounter{enc}{\value{knacks}\roundUp{enc} (+\arabic{enc} to all body Attributes for 1 attack after charging 6 squares)}{}}}
\newcommand{\disarm}{Disarm\addtocounter{knacks}{1}\addtocounter{xpbonus}{1}%
\iftoggle{examplecharacter}{ (when attacking with more AP than opponent, take a -1 penalty to disarm opponent)}{}}
\newcommand{\dodger}{Dodger\addtocounter{knacks}{1}}
\newcommand{\finishingblow}{Finishing Blow\addtocounter{knacks}{1}}
\newcommand{\guardian}{Guardian\addtocounter{knacks}{1}%
\iftoggle{examplecharacter}{ (spend only 0 AP to guard someone, and gain +1 while guarding)}{}}
\newcommand{\laststand}{Last Stand\addtocounter{knacks}{1}%
\iftoggle{examplecharacter}{ (when losing HP, the character gains \setcounter{enc}{2}\addtocounter{enc}{\value{knacks}}\arabic{enc} AP)}{}}
\newcommand{\perfectsneakattack}{Perfect Sneak Attack\addtocounter{knacks}{1}\addtocounter{strb}{\value{knacks}}\addtocounter{strb}{2}%
\iftoggle{examplecharacter}{ (+\arabic{knacks} Damage for sneak attacks)}{}}
\newcommand{\precisestrike}{Precise Strike\addtocounter{knacks}{1}%
\iftoggle{examplecharacter}{ (you need 1 less to acheive a Vitals shot)}{}}
\newcommand{\specialist}[1]{Specialist \addtocounter{knacks}{1}
\iftoggle{examplecharacter}{ (+2 when using any #1)}{(#1)}}
\newcommand{\stunningstrike}{Stunning Strike\addtocounter{knacks}{1}\addtocounter{xpbonus}{1}%
\iftoggle{examplecharacter}{ (take -1 penalty, and opponent's AP reduces by half Damage)}{}}
\newcommand{\snapshot}{Snap Shot\addtocounter{knacks}{1}\addtocounter{strb}{2}%
\iftoggle{examplecharacter}{ (Pay 0 AP to reload arrow or draw weapon)}{}}
\newcommand{\mightydraw}{Mighty Draw\addtocounter{knacks}{1}%
\iftoggle{examplecharacter}{\setcounter{enc}{knacks}\roundUp{enc} (reduce cost to draw longbow by \arabic{enc} AP)}{}}
\newcommand{\unstoppable}{Unstoppable\addtocounter{hp}{2}\addtocounter{knacks}{1}%
\iftoggle{examplecharacter}{%
\setcounter{enc}{\value{knacks}}\roundUp{enc}%
(Gain +2 HP permanently.
Gain +\arabic{enc} on Vitality check.
You don't need to fall unconscious when making a Vitality check)%
}{}}
\newcommand{\vengeful}{Vengeful\addtocounter{knacks}{1}%
\iftoggle{examplecharacter}{ (+2 Intelligence after losing HP)}{}}
\newcommand{\weaponmaster}[1]{Weapon Master \addtocounter{att}{1}\addtocounter{knacks}{1}%
\iftoggle{examplecharacter}{(+1 Bonus to {#1}s)}{(#1)}}
\newcommand{\snapcaster}{Snap Caster\addtocounter{knacks}{1}%
\iftoggle{examplecharacter}{ (spells cost 1 AP less)}{}}
\newcommand{\extremefocus}{Extreme Focus\addtocounter{knacks}{1}%
\iftoggle{examplecharacter}{\setcounter{enc}{knacks}\roundUp{enc} (with time to focus, gain +\arabic{enc} to spells)}{}}
\newcommand{\alchemist}{Alchemist\addtocounter{knacks}{1}\renewcommand{\magicPath}{Alchemist}}
\newcommand{\bloodCaster}{Blood Caster\addtocounter{knacks}{1}\renewcommand{\magicPath}{Blood}\iftoggle{examplecharacter}{ (allows the character to learn magic spheres)}{}}
\newcommand{\divineCaster}{Divine Caster\addtocounter{knacks}{1}\renewcommand{\magicPath}{Divinity}
\iftoggle{examplecharacter}{ (allows the caster to cast spells through devotion to a god)}{}}
\newcommand{\nuraCaster}{Nura Caster\addtocounter{knacks}{1}\renewcommand{\magicPath}{Nura}}
\newcommand{\runeCaster}{Rune Caster\addtocounter{knacks}{1}\renewcommand{\magicPath}{Runes}%
\iftoggle{examplecharacter}{ (allows the caster to cast spells by slowly painting or carving runes)}{}}
\newcommand{\songCaster}{Song Caster\addtocounter{knacks}{1}\renewcommand{\magicPath}{Song}%
\iftoggle{examplecharacter}{ (allows the caster to cast spells by slowly, through song)}{}}
\newcommand{\combatcaster}{Combat Caster\addtocounter{knacks}{1}}
\newcommand\chosenEnemy[1]{Chosen Enemy (#1)\addtocounter{knacks}{1}}
%
% _ __ ___ _ __ ___ ___ _ __
%| '_ \ / _ \ '__/ __|/ _ \| '_ \
%| |_) | __/ | \__ \ (_) | | | |
%| .__/ \___|_| |___/\___/|_| |_|
%|_|
%
%
% _ _
%% ___| |__ __ _ _ __ __ _ ___| |_ ___ _ __
%% / __| '_ \ / _` | '__/ _` |/ __| __/ _ \ '__|
%%| (__| | | | (_| | | | (_| | (__| || __/ |
%% \___|_| |_|\__,_|_| \__,_|\___|\__\___|_|
%%
%% optional counters, such as mana, are cleaned
%% clear: weaponsknack1 and 2,
%%
%
\newcommand{\mind}[3]{
\setcounter{int}{#1}\setcounter{wts}{#2}\setcounter{cha}{#3}
}
%
%%%%%%%%%%% Person
%
\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}[
before upper={\parindent0pt},
halign=flush left,
left=10pt,
\settoggle{personality}{false}}%
{}
\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}
\begin{tcolorbox}[title={\name},
before upper={\parindent0pt},
halign=flush left,
left=10pt,
right=15pt,
\settoggle{personality}{false}}%
{}
\creaturestats
}
\newcommand{\clean}{
\setcounter{fp}{5}
\setcounter{strb}{0}
\setcounter{dexb}{0}
\setcounter{spdb}{0}
\setcounter{knacks}{0}
\renewcommand{\armourtype}{N}
\renewcommand{\weaponknackone}{}
\renewcommand{\weaponknacktwo}{}
\setcounter{mp}{0}
\setcounter{xpbonus}{0}
}
%% _ _ _ _ _
%% __ _| |_| |_ _ __(_) |__ _ _| |_ ___ ___
%% / _` | __| __| '__| | '_ \| | | | __/ _ \/ __|
%%| (_| | |_| |_| | | | |_) | |_| | || __/\__ \
%% \__,_|\__|\__|_| |_|_.__/ \__,_|\__\___||___/
%%
%% Print the line,
%% print the attributes.
%% print the skills
%% print the knacks
%% print the equipment
%
\newcommand{\creaturestats}{
% Reference versions (which always are non-verbose) don't
% have the space for full-sized stats.
\iftoggle{verbose}{
\begin{small}%
}{%
\begin{tabularx}{\textwidth}{lr|lr|lr}
% 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} \\
}
\setcounter{hp}{\value{str}}
\end{tabularx}
\begin{tabularx}{\linewidth}{p{.20\textwidth}>{\raggedright\arraybackslash}p{.70\textwidth}}
\ent{Skills} & \ifnumcomp{\value{att}}{=}{0}{}{\iftoggle{mind}{Combat \arabic{att}, }{Aggression \arabic{att}, }} \skills \\
\iftoggle{mind}{\ent{Equipment} & \equipment \\}{\ent{Abilities} & \abilities \\}
\iftoggle{verbose}{%
\end{small}%
}{%
\end{footnotesize}%
}%
}
%% _ _ _
%% __| | ___ _ __ ___| |_ __ _| |_ ___
%% / _` |/ _ \ '__/ __| __/ _` | __/ __|
%%| (_| | __/ | \__ \ || (_| | |_\__ \
%% \__,_|\___|_| |___/\__\__,_|\__|___/
%%
%%
%% dice instead of Damage
%% print out att, spd, DAM, dex, dr (type), str
%%
%
\newcommand{\derivedstats}{
\setlength\topsep{0pt}
\setlength\parskip{0pt}
\iftoggle{debug}{str: \arabic{str}, strb: \arabic{strb}, dex: \arabic{dex}, dexb: \arabic{dexb}, spd: \arabic{spd}, spdb: \arabic{spdb},att: \arabic{att}, damage: \arabic{damage}, Attack total: \arabic{attackXPtotal}, Def Total: \arabic{defenceXPtotal}}{}
% Stats for allies don't need to show Combat +1 as 'TN 8 to hit', they just need to show '+1'.
\iftoggle{allyCharacter}{}{
\addtocounter{att}{7}
}
\addtocounter{spd}{3}
\ifnum\value{weight}>\value{str}% now to compute encumbrance
\addtocounter{str}{5}% we can't have negative values affecting results
\addtocounter{weight}{5}
\addtocounter{spd}{-\value{weight}}
\addtocounter{spd}{\value{str}}
\addtocounter{str}{-5}% now we return strand weight to the original values
\scshape Att %
\iftoggle{allyCharacter}{$2D6$\ifnum\value{att}>-1 +\fi}{}%
\arabic{att}%
\setcounter{enc}{\value{att}}%
\ifdefstring{\armourtype}{C}{%
\addtocounter{enc}{5} (\arabic{enc}!)%
}{%
\ifdefstring{\armourtype}{P}{\addtocounter{enc}{3} (\arabic{enc}!)}{}%
},
\ifnumcomp{\value{dexb}}{>}{0}{\addtocounter{att}{\value{dexb}} (\arabic{att}) }{}
AP \arabic{spd}\ifnumcomp{\value{spdb}}{>}{0}%
{\addtocounter{spd}{\value{spdb}} (\arabic{spd})}{}\ifnumcomp{\value{heft}}{>}{1}{: \arabic{heft}}{},
\addtocounter{damage}{\value{strb}} (\calculatedamage{damage})}{},
\ifnumcomp{\value{dr}}{>}{0}{\mbox{DR \arabic{dr}~\armourtype,} }{}%
\addtocounter{hp}{6}%
\addtocounter{damage}{4}%
\ifnum\value{mp}>0%
\addtocounter{mp}{\value{int}}%
\setcounter{mpFree}{\value{mp}}
\addtocounter{mpFree}{-\value{mpLocked}}%
MP
\ifnum\value{mpLocked}>0%
\arabic{mpFree} / \arabic{mp},
\else%
\arabic{mp},
\fi%
\fi%
\ifnum\value{sp}>0%
SP \arabic{sp},
\fi%
}{
\iftoggle{allyCharacter}{}{
\calculateXP
}
%
%
%% __ ______
%% \ \/ / _ \
%% \ /| |_) |
%% / \| __/
%% /_/\_\_|
%%
\newcommand{\calculateXP}{
\vspace{.1cm}
%%% Now to get the XP value of the creature's attack ability.
%%% = Attack (TN) * Dam + max((spd-hef),mp)^2
\setcounter{attackXPtotal}{\value{att}}%
\multiply\value{attackXPtotal} by \value{damage}%
\addtocounter{spd}{-\value{heft}}%
\ifnum\value{spd}>\value{mp}%
\setcounter{enc}{\value{spd}}
\else%
\setcounter{enc}{\value{mp}}
\fi%
\multiply\value{enc} by\value{enc}%
\addtocounter{attackXPtotal}{\value{enc}}%
%%% And now the XP defence total.
%%% = (att - 7 + dr) x hp
\ifnum\value{att}>7%
\setcounter{defenceXPtotal}{\value{att}}%
\addtocounter{defenceXPtotal}{-7}
\else
\setcounter{defenceXPtotal}{0}
\fi
\addtocounter{defenceXPtotal}{\value{dr}}%
\multiply\value{defenceXPtotal} by\value{hp}\addtocounter{defenceXPtotal}{0}%
% XP = attackXPtotal + defenceXPtotal
\setcounter{xp}{\value{attackXPtotal}}%
\addtocounter{xp}{\value{defenceXPtotal}}%
\iftoggle{debug}{str: \arabic{str}, strb: \arabic{strb}, dex: \arabic{dex}, dexb: \arabic{dexb}, spd: \arabic{spd}, spdb: \arabic{spdb}, att: \arabic{att}, damage: \arabic{damage}, XP Bonus: \arabic{xpbonus}, Attack total: \arabic{attackXPtotal}, Def Total: \arabic{defenceXPtotal}, mp: \arabic{mp} Grand Total: \arabic{xp}}{\hrulefill}
\ifnumcomp{\value{xp}}{<}{73}%
{\ifnumcomp{\value{xp}}{<}{40}%
{\arabic{xpbonus} XP}{$\frac{1}{2}$ XP}}%
\addtocounter{xp}{-60}%
\divide\value{xp} by 13%
\addtocounter{xp}{\value{xpbonus}}%
\arabic{xp} XP%
% if the creature has a mind, print fate points (if any).
\iftoggle{mind}%
{\addtocounter{fp}{\value{cha}}%
\ifnum\value{fp}>2\ignorespaces, \arabic{fp}~FP %
\iftoggle{bestiarychapter}%
{}%
%
%%%%%%%%%%%%%%%%%%%% Creature Abilities
\newcommand{\abilities}[1]{ \\
\addtocounter{str}{-2}Acidic spray (spray for \calculatedamage{str} Damage per turn)%
\addtocounter{str}{2}%
}
\newcommand{\acidBody}{%
Acidic Body (inflict \calculatedamage{str} Damage each turn)%
}
\newcommand{\gelRegen}{%
Regeneration (1 HP/ round, max. \setcounter{hp}{\value{str}}\addtocounter{hp}{6}\roundUp{hp} \arabic{hp})%
}
\newcommand{\amphibious}{
amphibious%
}
claws (grapple inflicts standard damage)%
}
\newcommand{\flight}{%
}
\newcommand{\web}{%
\setcounter{track}{6}\addtocounter{track}{\value{str}}%
Web (Strength + Athletics, TN \arabic{track} to break free as a movement action)%
\newcommand{\Path}[1]{ \\
\raggedright \ent{Spheres:} & #1