diff --git a/layout.sty b/layout.sty index 8bfe36097e19678ac4ed9314c0434a2a3679e5d3..8366c5bf2a57d2c02eede3cb317e3d700d91b33e 100644 --- a/layout.sty +++ b/layout.sty @@ -969,10 +969,43 @@ Roll & Result \\ %%%%% Character Sheet Commands +\newcounter{statCircles} +\newcounter{statDots} + \newcommand\statCircle{\ding{109}} +\newcommand\statDot{\ding{108}} +\newcommand\currentCircle{} \newcommand{\weeline}{\line(1,0){30} \hspace{.6cm}} -\newcommand{\attributecircles}{\raisebox{0pt}{--} \Repeat{4}{\statCircle}\raisebox{-2pt}{\Large\statCircle}\Repeat{4}{\statCircle}\raisebox{0pt}{ +}} -\newcommand{\skill}[1]{#1 \dotfill & \Repeat{3}{\statCircle}\\ + +\newcommand\attributeDisplay[2]{ +\setcounter{enc}{-5} +\setcounter{statDots}{\value{#2}} +#1 & +\raisebox{2pt}{--} +\Repeat{9}{& +\ifnum\value{enc}<\value{statDots}\renewcommand\currentCircle{\statDot}\else\renewcommand\currentCircle{\statCircle}\fi% This decides to use either a statDot (showing a stat value) or an empty statCircle (showing a potential dot) +\ifnum\value{enc}=-1\Large\currentCircle\else\raisebox{2pt}{\currentCircle}\fi% Most circles need a raisebox to appear nicely on a line. The dot representing '0' is large, and doesn't need raised. +\stepcounter{enc} +}% +&\raisebox{2pt}{+} +\\ +} +\newcommand{\attributecircles}[1][-5]{\raisebox{0pt}{--}% +\setcounter{statDots}{#1} +\setcounter{statCircles}{0}% +\addtocounter{statCircles}{-#1}% +\ifnum#1>-1% +\Repeat{4}{\statDot}% +\else% +\Repeat{\value{statDots}}{\statDot}% +\Repeat{\value{statCircles}}{\statCircle}% +\fi% +\raisebox{-2pt}{\Large\ifnum#1>-1\statDot\else\statCircle\fi}% +\Repeat{4}{\statCircle}\raisebox{0pt}{ +}} +\newcommand{\skill}[2][0]{ + \setcounter{statCircles}{3} + \addtocounter{statCircles}{-#1} + #2 \dotfill & \Repeat{#1}{\statDot}\Repeat{\value{statCircles}}{\statCircle}\\ } \newcommand\hint[1]{\small\textcolor{gray}{(#1)}}