From 227edca502baf95c184f6f3e747b9aa3cd157996 Mon Sep 17 00:00:00 2001 From: Malin Freeborn <malinfreeborn@posteo.net> Date: Sun, 19 Mar 2023 22:43:17 +0100 Subject: [PATCH] recompute XP totals (yet again) --- stats.sty | 76 +++++++++++++++++++++++++++---------------------------- 1 file changed, 37 insertions(+), 39 deletions(-) diff --git a/stats.sty b/stats.sty index a924906e..3115d8b6 100644 --- a/stats.sty +++ b/stats.sty @@ -462,7 +462,7 @@ You don't need to fall unconscious when making a Vitality check)% } \ifnumcomp{\value{dr}}{>}{0}{DR \arabic{dr}~\armourtype, }{} \ifnum\value{mp}>0% - \addtocounter{mp}{\value{wts}}% + \addtocounter{mp}{\value{int}}% \noindent\mbox{ \ifnum\value{mpb}=0% \arabic{mp}~MP% @@ -476,6 +476,7 @@ You don't need to fall unconscious when making a Vitality check)% } \fi \addtocounter{hp}{6} + \addtocounter{damage}{4} \noindent\mbox{\arabic{hp} HP \iftoggle{bestiarychapter}{}{% \ {\large\Repeat{\value{hp}}{\sqn}}% }% @@ -504,52 +505,49 @@ You don't need to fall unconscious when making a Vitality check)% %% \newcommand{\calculateXP}{ \vspace{.1cm} - % Sanitize numbers to avoid zeros, and ensure bonuses don't change things drastically. - \addtocounter{damage}{3} - \addtocounter{dr}{3} - % spd already received a +3 bonus to make it AP - - \setcounter{attackXPtotal}{\value{damage}} - - \multiply\value{attackXPtotal} by \value{spd} - \addtocounter{spd}{-\value{heft}} - \ifnum\value{spd}>0 - \multiply\value{attackXPtotal} by \value{spd} - \fi - - \setcounter{defenceXPtotal}{\value{hp}} - \multiply\value{defenceXPtotal} by \value{dr} + + %%% 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}} - \addtocounter{att}{-4} - \multiply\value{xp} by \value{att} - \addtocounter{xp}{-100} - \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}, mp: \arabic{mp} Grand Total: \arabic{xp}}{\hrulefill} + \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} \iftoggle{examplecharacter}% {}% { - % MP time - \addtocounter{mp}{\value{wts}} - \stepcounter{int} - \multiply\value{mp} by \value{int} - \multiply\value{mp} by 20 - \ifnum\value{mp}>0 - \addtocounter{xp}{\value{mp}} - \fi - - \ifnumcomp{\value{xp}}{<}{160}% - {\ifnumcomp{\value{xp}}{<}{100}% - {$1/2$ XP}{1 XP}}% + \ifnumcomp{\value{xp}}{<}{60}% + {\ifnumcomp{\value{xp}}{<}{30}% + {$\frac{1}{3}$ XP}{$\frac{1}{2}$ XP}}% { - \divide\value{xp} by 160% - \addtocounter{xp}{\value{xpbonus}}% - \arabic{xp} XP% + \addtocounter{xp}{-60}% + \divide\value{xp} by 13% + \addtocounter{xp}{\value{xpbonus}}% + \arabic{xp} XP% }% - % if {mind} print fate points. - % + % 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 % -- GitLab