From f21441c9e1e8bd961e2771c1122f6504a19751f0 Mon Sep 17 00:00:00 2001
From: Malin Freeborn <malinfreeborn@posteo.net>
Date: Tue, 24 Jan 2023 02:51:10 +0100
Subject: [PATCH] place statblock items around corners

---
 layout.sty | 47 +++++++++++++-------------
 stats.sty  | 97 ++++++++++++++++++++++++++----------------------------
 2 files changed, 70 insertions(+), 74 deletions(-)

diff --git a/layout.sty b/layout.sty
index b7cee63c..05ea144f 100644
--- a/layout.sty
+++ b/layout.sty
@@ -252,30 +252,9 @@ bookmarks=true]%
   \end{figure*}
 }
 
-
-% sidebling
-% This command automatically adds little decorations to boxes.
-
 \newcounter{blingNo}
 \setcounter{blingNo}{0}
 
-\newcommand\sidebling{
-    \ifnum\value{dr}>2
-    \addtocounter{dr}{-2}
-      \includesvg[width=\thedr ex]{config/images/l1}
-      \hspace{-30pt}
-    \fi
-    \ifnum\value{mp}>1
-      \addtocounter{mp}{7}
-      \includesvg[angle=-20,width=\themp pt]{config/images/b1}
-      \hspace{-20pt}
-    \fi
-    \ifnum\value{attb}>10
-      \addtocounter{attb}{-9}
-      \includesvg[angle=55,width=\theattb ex]{config/images/s1}
-      \hspace{-30pt}
-    \fi
-}
 
 % Define the 'ornamentedbox' environment
 
@@ -363,8 +342,30 @@ bookmarks=true]%
     \draw[ornamented frame inner, use path=ornament 1];
     \draw[ornamented frame inner, use path=ornament 2];
     %
-    \node at ([xshift=-20pt,yshift=\thedr-5pt] north east)
-      {\iftoggle{bling}{\sidebling}{}};
+    \iftoggle{bling}{
+      \node at ([xshift=-25pt,yshift=\thedr+5pt] south east)
+        {\ifnum\value{dr}>2
+          \addtocounter{dr}{7}\multiply\value{dr} by 2\includesvg[width=\thedr pt]{config/images/l1}
+          \hspace{-30pt}
+        \fi
+     };
+    \node at ([xshift=-20pt,yshift=-\themp] north east)
+      {\ifnum\value{mp}>1
+        \addtocounter{mp}{2}
+        \multiply\value{mp} by 2
+        \includesvg[angle=270,width=\themp pt]{config/images/b1}
+        \hspace{-20pt}
+      \fi
+      };
+    \node at ([xshift=-5pt,yshift=35pt] south west)
+      {\ifnum\value{attb}>7
+        \addtocounter{attb}{-4}
+        \multiply\value{attb} by 2
+        \includesvg[angle=340,width=\theattb pt]{config/images/s1}
+        \hspace{-30pt}
+      \fi
+    };
+    }{}
   }
 }
 
diff --git a/stats.sty b/stats.sty
index a96927ca..65e05656 100644
--- a/stats.sty
+++ b/stats.sty
@@ -476,57 +476,52 @@
 %%  /  \|  __/ 
 %% /_/\_\_|    
 %%  
-\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}
-
-	\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}
-
-% 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}
+\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}
+
+    \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}
+
+  % 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}
 
 }
 %
-- 
GitLab