% File: rpgicons-pgf.sty
% Copyright 2024-2025 Jasper Habicht (mail(at)jasperhabicht.de).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
% available at http://www.latex-project.org/lppl/.
%
% This file is part of the `rpgicons'  package (The Work in LPPL)
% and all files in that bundle must be distributed together.
%
% This work has the LPPL maintenance status `maintained'.
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{rpgicons-pgf}[2025-10-10 RPG Icons Package (PGF Variant) (2.0.2)]

% provide pics option
\newif\ifrpgicons@pics\rpgicons@picsfalse
\DeclareOption{pics}{\rpgicons@picstrue}
\ProcessOptions\relax

\RequirePackage{tikz}
\newlength{\rpgicons@beforesep}
\newlength{\rpgicons@aftersep}
\newlength{\rpgicons@baseline}

\def\rpgicons@allshapes{%
  twoside, fourside, sixside, eightside, tenside, twelveside, twentyside, hundredside,
  fudge, sixside one, sixside two, sixside three, sixside four, sixside five,
  sixside six, sixside seven, sixside eight, sixside nine, fudge plus, fudge minus,
  strength, dexterity, dexterity alt, constitution, intelligence, wisdom, charisma,
  resilience, sanity, perception, luck, armor, proficiency,
  linear, conic, quadratic, cubic, spheric, cylindric, verbal, somatic, material, focus,
  abjuration, conjuration, divination, enchantment, evocation, illusion, necromancy, transmutation,
  acid, bludgeoning, cold, fire, force, lightning, necrotic, piercing, poison, psychic,
  radiant, slashing, thunder, healing,
  melee, ranged, magic, singlehanded, doublehanded,
  buff, blinded, charmed, deafened, exhausted, frightened, grappled, incapacitated, invisible,
  paralyzed, petrified, poisoned, prone, restrained, stunned, unconscious, hearing, seeing%
}

\tikzset{
  rpg icons/background color/.code={
    \colorlet{rpgicons@bg}{#1}
  },
  rpg icons/background color={white},
  rpg icons/before sep/.code={
    \setlength{\rpgicons@beforesep}{#1}
  },
  rpg icons/before sep={.05em},
  rpg icons/after sep/.code={
    \setlength{\rpgicons@aftersep}{#1}
  },
  rpg icons/after sep={.05em},
  rpg icons/baseline/.code={
    \setlength{\rpgicons@baseline}{#1}
  },
  rpg icons/baseline={-3.5pt},
  rpg icons/.style={},
  rpg icons/.append style={
    every node/.style={
      line cap=round,
      line join=round
    }
  },
  %
  rpg icons/every die/.style={},
  rpg icons/every ability/.style={},
  rpg icons/every saving/.style={},
  rpg icons/every spell/.style={},
  rpg icons/every spellschool/.style={},
  rpg icons/every damage/.style={},
  rpg icons/every attack/.style={},
  rpg icons/every condition/.style={},
  %
  rpg icons/create every style/.code={
    \tikzset{
      rpg icons/every #1/.style={}
    }
  },
  rpg icons/create every style/.list/.expanded={%
    \rpgicons@allshapes%
  }
}

% temporary fix to allow for tagging
\pgfkeysifassignable{/tikz/actualtext}{}{
  \pgfkeysdef{/tikz/actualtext}{}
}

% make tikz icons usable inside tikz environments
\NewDocumentCommand{\provideprotectedrpgicon}{ m o m O{} m }{%
  \expandafter\newsavebox\csname rpgicons@protectbox@#5\endcsname%
  \expandafter\savebox\csname rpgicons@protectbox@#5\endcsname{%
    \IfValueTF{#2}{%
      \csname #1\endcsname[#2]{#3}[#4]{}%
    }{%
      \csname #1\endcsname{#3}[#4]{}%
    }%
  }%
}

\NewDocumentCommand{\useprotectedrpgicon}{ m }{%
  \expandafter\usebox\csname rpgicons@protectbox@#1\endcsname%
}

% DICE

% disc
\pgfdeclareshape{twoside}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0cm}{.25cm}}{\pgfpoint{.425cm}{0cm}}
  }
}

% tetrahedron
\pgfdeclareshape{fourside}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{0cm}{.35cm}}
    \pgfpathlineto{\pgfpoint{.433cm}{-.4cm}}
    \pgfpathlineto{\pgfpoint{-.433cm}{-.4cm}}
    \pgfpathclose
  }
}

% cube
\pgfdeclareshape{sixside}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathrectanglecorners{\pgfpoint{.4cm}{.4cm}}{\pgfpoint{-.4cm}{-.4cm}}
  }
}

% octahedron
\pgfdeclareshape{eightside}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{0cm}{.5cm}}
    \pgfpathlineto{\pgfpoint{.433cm}{.25cm}}
    \pgfpathlineto{\pgfpoint{.433cm}{-.25cm}}
    \pgfpathlineto{\pgfpoint{0cm}{-.5cm}}
    \pgfpathlineto{\pgfpoint{-.433cm}{-.25cm}}
    \pgfpathlineto{\pgfpoint{-.433cm}{.25cm}}
    \pgfpathclose
    \pgfpathlineto{\pgfpoint{.433cm}{-.25cm}}
    \pgfpathlineto{\pgfpoint{-.433cm}{-.25cm}}
    \pgfpathclose
  }
}

% decahedron
\pgfdeclareshape{tenside}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{0cm}{.5cm}}
    \pgfpathlineto{\pgfpoint{.475cm}{.1cm}}
    \pgfpathlineto{\pgfpoint{.475cm}{-.1cm}}
    \pgfpathlineto{\pgfpoint{0cm}{-.5cm}}
    \pgfpathlineto{\pgfpoint{-.475cm}{-.1cm}}
    \pgfpathlineto{\pgfpoint{-.475cm}{.1cm}}
    \pgfpathclose
    \pgfpathlineto{\pgfpoint{.294cm}{-.154cm}}
    \pgfpathlineto{\pgfpoint{0cm}{-.3cm}}
    \pgfpathlineto{\pgfpoint{-.294cm}{-.154cm}}
    \pgfpathclose
    \pgfpathmoveto{\pgfpoint{.294cm}{-.154cm}}
    \pgfpathlineto{\pgfpoint{.475cm}{-.1cm}}
    \pgfpathmoveto{\pgfpoint{-.475cm}{-.1cm}}
    \pgfpathlineto{\pgfpoint{-.294cm}{-.154cm}}
    \pgfpathmoveto{\pgfpoint{0cm}{-.5cm}}
    \pgfpathlineto{\pgfpoint{0cm}{-.3cm}}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% dodecahedron
\pgfdeclareshape{twelveside}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{0cm}{.5cm}}
    \pgfpathlineto{\pgfpoint{0.294cm}{.405cm}}
    \pgfpathlineto{\pgfpoint{.475cm}{.173cm}}
    \pgfpathlineto{\pgfpoint{.475cm}{-.173cm}}
    \pgfpathlineto{\pgfpoint{.294cm}{-.405cm}}
    \pgfpathlineto{\pgfpoint{0cm}{-.5cm}}
    \pgfpathlineto{\pgfpoint{-.294cm}{-.405cm}}
    \pgfpathlineto{\pgfpoint{-.475cm}{-.173cm}}
    \pgfpathlineto{\pgfpoint{-.475cm}{.173cm}}
    \pgfpathlineto{\pgfpoint{-.294cm}{.405cm}}
    \pgfpathclose
    \pgfpathmoveto{\pgfpoint{0cm}{.349cm}}
    \pgfpathlineto{\pgfpoint{.332cm}{.108cm}}
    \pgfpathlineto{\pgfpoint{.205cm}{-.282cm}}
    \pgfpathlineto{\pgfpoint{-.205cm}{-.282cm}}
    \pgfpathlineto{\pgfpoint{-.332cm}{.108cm}}
    \pgfpathclose
    \pgfpathlineto{\pgfpoint{0cm}{.5cm}}
    \pgfpathmoveto{\pgfpoint{.475cm}{.173cm}}
    \pgfpathlineto{\pgfpoint{.332cm}{.108cm}}
    \pgfpathmoveto{\pgfpoint{.294cm}{-.405cm}}
    \pgfpathlineto{\pgfpoint{.205cm}{-.282cm}}
    \pgfpathmoveto{\pgfpoint{-.294cm}{-.405cm}}
    \pgfpathlineto{\pgfpoint{-.205cm}{-.282cm}}
    \pgfpathmoveto{\pgfpoint{-.475cm}{.173cm}}
    \pgfpathlineto{\pgfpoint{-.332cm}{.108cm}}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% icosahedron
\pgfdeclareshape{twentyside}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{0cm}{.5cm}}
    \pgfpathlineto{\pgfpoint{.454cm}{.262cm}}
    \pgfpathlineto{\pgfpoint{.454cm}{-.262cm}}
    \pgfpathlineto{\pgfpoint{0cm}{-.5cm}}
    \pgfpathlineto{\pgfpoint{-.454cm}{-.262cm}}
    \pgfpathlineto{\pgfpoint{-.454cm}{.262cm}}
    \pgfpathclose
    \pgfpathmoveto{\pgfpoint{0cm}{.292cm}}
    \pgfpathlineto{\pgfpoint{.253cm}{-.146cm}}
    \pgfpathlineto{\pgfpoint{-.253cm}{-.146cm}}
    \pgfpathclose
    \pgfpathlineto{\pgfpoint{.454cm}{.262cm}}
    \pgfpathlineto{\pgfpoint{.253cm}{-.146cm}}
    \pgfpathlineto{\pgfpoint{0cm}{-.5cm}}
    \pgfpathlineto{\pgfpoint{-.253cm}{-.146cm}}
    \pgfpathlineto{\pgfpoint{-.454cm}{.262cm}}
    \pgfpathclose
    \pgfpathlineto{\pgfpoint{0cm}{.5cm}}
    \pgfpathmoveto{\pgfpoint{.454cm}{-.262cm}}
    \pgfpathlineto{\pgfpoint{.253cm}{-.146cm}}
    \pgfpathmoveto{\pgfpoint{-.454cm}{-.262cm}}
    \pgfpathlineto{\pgfpoint{-.253cm}{-.146cm}}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% sphere
\pgfdeclareshape{hundredside}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathcircle{\pgfpointorigin}{.425cm}
    \pgfpathmoveto{\pgfpoint{.425cm}{0cm}}
    \pgfpatharc{180}{50}{-.425cm and -.2cm}
    \pgfpathmoveto{\pgfpoint{0cm}{-.425cm}}
    \pgfpatharc{270}{140}{-.2cm and .425cm}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% cube (one)
\pgfdeclareshape{sixside one}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \behindbackgroundpath{
    \foreach \x/\y in {
        0cm/0cm
    } {
        \pgfpathcircle{\pgfpoint{\x}{\y}}{2pt}
    }
    \pgfusepath{fill} 
  }
  \backgroundpath{
    \pgfpathrectanglecorners{\pgfpoint{.4cm}{.4cm}}{\pgfpoint{-.4cm}{-.4cm}}
  }
}

% cube (two)
\pgfdeclareshape{sixside two}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \behindbackgroundpath{
    \foreach \x/\y in {
        .2cm/-.2cm, -.2cm/.2cm
    } {
        \pgfpathcircle{\pgfpoint{\x}{\y}}{2pt}
    }
    \pgfusepath{fill}
  }
  \backgroundpath{
    \pgfpathrectanglecorners{\pgfpoint{.4cm}{.4cm}}{\pgfpoint{-.4cm}{-.4cm}}
  }
}

% cube (three)
\pgfdeclareshape{sixside three}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \behindbackgroundpath{
    \foreach \x/\y in {
        .2cm/-.2cm, 0cm/0cm, -.2cm/.2cm
    } {
        \pgfpathcircle{\pgfpoint{\x}{\y}}{2pt}
    }
    \pgfusepath{fill}
  }
  \backgroundpath{
    \pgfpathrectanglecorners{\pgfpoint{.4cm}{.4cm}}{\pgfpoint{-.4cm}{-.4cm}}
  }
}

% cube (four)
\pgfdeclareshape{sixside four}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \behindbackgroundpath{
    \foreach \x/\y in {
        -.2cm/.2cm, .2cm/.2cm,
        -.2cm/-.2cm, .2cm/-.2cm
    } {
        \pgfpathcircle{\pgfpoint{\x}{\y}}{2pt}
    }
    \pgfusepath{fill}
  }
  \backgroundpath{
    \pgfpathrectanglecorners{\pgfpoint{.4cm}{.4cm}}{\pgfpoint{-.4cm}{-.4cm}}
  }
}

% cube (five)
\pgfdeclareshape{sixside five}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \behindbackgroundpath{
    \foreach \x/\y in {
        -.2cm/.2cm, .2cm/.2cm,
        0cm/0cm,
        -.2cm/-.2cm, .2cm/-.2cm
    } {
        \pgfpathcircle{\pgfpoint{\x}{\y}}{2pt}
    }
    \pgfusepath{fill}
  }
  \backgroundpath{
    \pgfpathrectanglecorners{\pgfpoint{.4cm}{.4cm}}{\pgfpoint{-.4cm}{-.4cm}}
  }
}

% cube (six)
\pgfdeclareshape{sixside six}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \behindbackgroundpath{
    \foreach \x/\y in {
        -.2cm/.2cm, .2cm/.2cm,
        -.2cm/0cm, .2cm/0cm,
        -.2cm/-.2cm, .2cm/-.2cm
    } {
        \pgfpathcircle{\pgfpoint{\x}{\y}}{2pt}
    }
    \pgfusepath{fill}
  }
  \backgroundpath{
    \pgfpathrectanglecorners{\pgfpoint{.4cm}{.4cm}}{\pgfpoint{-.4cm}{-.4cm}}
  }
}

% cube (seven)
\pgfdeclareshape{sixside seven}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \behindbackgroundpath{
    \foreach \x/\y in {
        -.2cm/.2cm, .2cm/.2cm,
        -.2cm/0cm, 0cm/0cm, .2cm/0cm,
        -.2cm/-.2cm, .2cm/-.2cm
    } {
        \pgfpathcircle{\pgfpoint{\x}{\y}}{2pt}
    }
    \pgfusepath{fill}
  }
  \backgroundpath{
    \pgfpathrectanglecorners{\pgfpoint{.4cm}{.4cm}}{\pgfpoint{-.4cm}{-.4cm}}
  }
}

% cube (eight)
\pgfdeclareshape{sixside eight}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \behindbackgroundpath{
    \foreach \x/\y in {
        -.2cm/.2cm, 0cm/.2cm, .2cm/.2cm,
        -.2cm/0cm, .2cm/0cm,
        -.2cm/-.2cm, 0cm/-.2cm, .2cm/-.2cm
    } {
        \pgfpathcircle{\pgfpoint{\x}{\y}}{2pt}
    }
    \pgfusepath{fill}
  }
  \backgroundpath{
    \pgfpathrectanglecorners{\pgfpoint{.4cm}{.4cm}}{\pgfpoint{-.4cm}{-.4cm}}
  }
}

% cube (nine)
\pgfdeclareshape{sixside nine}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \behindbackgroundpath{
    \foreach \x/\y in {
        -.2cm/.2cm, 0cm/.2cm, .2cm/.2cm,
        -.2cm/0cm, 0cm/0cm, .2cm/0cm,
        -.2cm/-.2cm, 0cm/-.2cm, .2cm/-.2cm
    } {
        \pgfpathcircle{\pgfpoint{\x}{\y}}{2pt}
    }
    \pgfusepath{fill}
  }
  \backgroundpath{
    \pgfpathrectanglecorners{\pgfpoint{.4cm}{.4cm}}{\pgfpoint{-.4cm}{-.4cm}}
  }
}

% cube (fudge)
\pgfdeclareshape{fudge}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \behindbackgroundpath{
    \pgfpathmoveto{\pgfpoint{-.15cm}{.1cm}}
    \pgfpathlineto{\pgfpoint{.15cm}{.1cm}}
    \pgfpathmoveto{\pgfpoint{0cm}{.25cm}}
    \pgfpathlineto{\pgfpoint{0cm}{-.05cm}}
    \pgfpathmoveto{\pgfpoint{-.15cm}{-.2cm}}
    \pgfpathlineto{\pgfpoint{.15cm}{-.2cm}}
    \pgfusepath{draw}
  }
  \backgroundpath{
    \pgfpathrectanglecorners{\pgfpoint{.4cm}{.4cm}}{\pgfpoint{-.4cm}{-.4cm}}
  }
}

% cube (fudge plus)
\pgfdeclareshape{fudge plus}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \behindbackgroundpath{
    \pgfpathmoveto{\pgfpoint{0cm}{.15cm}}
    \pgfpathlineto{\pgfpoint{0cm}{-.15cm}}
    \pgfpathmoveto{\pgfpoint{-.15cm}{0cm}}
    \pgfpathlineto{\pgfpoint{.15cm}{0cm}}
    \pgfusepath{draw}
  }
  \backgroundpath{
    \pgfpathrectanglecorners{\pgfpoint{.4cm}{.4cm}}{\pgfpoint{-.4cm}{-.4cm}}
  }
}

% cube (fudge)
\pgfdeclareshape{fudge minus}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \behindbackgroundpath{
    \pgfpathmoveto{\pgfpoint{-.15cm}{0cm}}
    \pgfpathlineto{\pgfpoint{.15cm}{0cm}}
    \pgfusepath{draw}
  }
  \backgroundpath{
    \pgfpathrectanglecorners{\pgfpoint{.4cm}{.4cm}}{\pgfpoint{-.4cm}{-.4cm}}
  }
}

\ExplSyntaxOn
\NewDocumentCommand{\rpgicons@ifEmptyF}{ m m }{
    \tl_if_empty:nF { #1 } { #2 }
}
\ExplSyntaxOff

\NewDocumentCommand{\rpgiconsdie}{ O{normal} m O{} m }{%
  \edef\rpgicons@diceiconnrmlrg{#1}%
  \edef\rpgicons@diceiconlrg{large}%
  \ifx\rpgicons@diceiconnrmlrg\rpgicons@diceiconlrg%
    \def\rpgicons@diceiconfg{fglrg}\else%
    \def\rpgicons@diceiconfg{fgnrm}\fi%
  \ifx\rpgicons@diceiconnrmlrg\rpgicons@diceiconlrg\else\rpgicons@ifEmptyF{#4}{#4\,}\fi%
  \hspace{\rpgicons@beforesep}%
  \tikz[rpg icons, rpg icons/every die, rpg icons/every #2,
    baseline=\rpgicons@baseline, fgnrm/.style={scale=.333}, fglrg/.style={scale=.675}, #3] {
    \node[#2, draw, \rpgicons@diceiconfg, font={\footnotesize}] at (0cm,0cm)
      {\ifx\rpgicons@diceiconnrmlrg\rpgicons@diceiconlrg\textbf{#4}\fi};
    \path[draw=none, \rpgicons@diceiconfg] ([yshift=-1pt].425cm,.425cm) rectangle ([yshift=1pt]-.425cm,-.425cm);
  }%
  \hspace{\rpgicons@aftersep}%
}
\@ifundefined{die}{\NewCommandCopy\die\rpgiconsdie}{}

% ABILITIES

% strength
\pgfdeclareshape{strength}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpointadd{\pgfpoint{0cm}{-.075cm}}{\pgfpointpolar{90}{.425cm}}}
    \pgfpatharc{90}{60}{.425cm}
    \pgfpatharc{200}{-40}{.1cm}
    \pgfpathmoveto{\pgfpointadd{\pgfpoint{0cm}{-.075cm}}{\pgfpointpolar{45}{.425cm}}}
    \pgfpatharc{45}{-20}{.425cm}
    \pgfpatharc{-50}{-80}{.35cm}
    \pgfpathmoveto{\pgfpointadd{\pgfpoint{0cm}{-.075cm}}{\pgfpointpolar{90}{.425cm}}}
    \pgfpatharc{90}{120}{.425cm}
    \pgfpatharc{-20}{220}{.1cm}
    \pgfpathmoveto{\pgfpointadd{\pgfpoint{0cm}{-.075cm}}{\pgfpointpolar{135}{.425cm}}}
    \pgfpatharc{135}{200}{.425cm}
    \pgfpatharc{230}{260}{.35cm}
    \pgfpathmoveto{\pgfpoint{-.2cm}{-.025cm}}
    \pgfpathlineto{\pgfpoint{-.1cm}{-.05cm}}
    \pgfpathlineto{\pgfpoint{-.125cm}{-.325cm}}
    \pgfpatharc{180}{360}{.125cm and .1cm}
    \pgfpathlineto{\pgfpoint{.1cm}{-.05cm}}
    \pgfpathlineto{\pgfpoint{.2cm}{-.025cm}}
    \pgfpathmoveto{\pgfpoint{0cm}{-.3cm}}
    \pgfpatharc{90}{70}{.1cm}
    \pgfpathmoveto{\pgfpoint{0cm}{-.3cm}}
    \pgfpatharc{90}{110}{.1cm}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% dexterity
\pgfdeclareshape{dexterity}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpointadd{\pgfpoint{0cm}{-.075cm}}{\pgfpointpolar{90}{.425cm}}}
    \pgfpatharc{90}{65}{.425cm}
    \pgfpatharc{200}{90}{.1cm and .075cm}
    \pgfpatharc{90}{-30}{.1cm and .075cm}
    \pgfpathmoveto{\pgfpointadd{\pgfpoint{0cm}{-.075cm}}{\pgfpointpolar{45}{.425cm}}}
    \pgfpatharc{45}{-20}{.425cm and .35cm}
    \pgfpatharc{110}{160}{.175cm}
    \pgfpathmoveto{\pgfpointadd{\pgfpoint{0cm}{-.075cm}}{\pgfpointpolar{90}{.425cm}}}
    \pgfpatharc{90}{115}{.425cm}
    \pgfpatharc{-20}{90}{.1cm and .075cm}
    \pgfpatharc{90}{220}{.1cm and .075cm}
    \pgfpathmoveto{\pgfpointadd{\pgfpoint{0cm}{-.075cm}}{\pgfpointpolar{135}{.425cm}}}
    \pgfpatharc{135}{200}{.425cm and .35cm}
    \pgfpatharc{70}{20}{.175cm}
    \pgfpathmoveto{\pgfpoint{-.075cm}{-.175cm}}
    \pgfpatharc{180}{360}{.075cm and .05cm}
    \pgfpathmoveto{\pgfpoint{0cm}{-.225cm}}
    \pgfpathlineto{\pgfpoint{0cm}{-.25cm}}
    \pgfpathmoveto{\pgfpoint{-.2cm}{.025cm}}
    \pgfpathlineto{\pgfpoint{-.075cm}{0cm}}
    \pgfpathlineto{\pgfpoint{-.125cm}{-.075cm}}
    \pgfpathmoveto{\pgfpoint{.125cm}{-.075cm}}
    \pgfpathlineto{\pgfpoint{.075cm}{0cm}}
    \pgfpathlineto{\pgfpoint{.2cm}{.025cm}}
    \pgfpathmoveto{\pgfpoint{0cm}{-.25cm}}
    \pgfpatharc{360}{140}{.1cm and .075cm}
    \pgfpathmoveto{\pgfpoint{0cm}{-.25cm}}
    \pgfpatharc{180}{400}{.1cm and .075cm}
    \pgfpathmoveto{\pgfpoint{-.1cm}{-.325cm}}
    \pgfpathlineto{\pgfpoint{-.1cm}{-.375cm}}
    \pgfpatharc{180}{360}{.1cm and .05cm}
    \pgfpathlineto{\pgfpoint{.1cm}{-.325cm}}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% dexterity alt
\pgfdeclareshape{dexterity alt}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpointadd{\pgfpoint{0cm}{-.15cm}}{\pgfpointpolar{90}{.425cm}}}
    \pgfpatharc{90}{75}{.425cm}
    \pgfpathmoveto{\pgfpointadd{\pgfpoint{0cm}{-.15cm}}{\pgfpointpolar{90}{.425cm}}}
    \pgfpatharc{90}{105}{.425cm}
    \pgfpathmoveto{\pgfpoint{.125cm}{.175cm}}
    \pgfpathlineto{\pgfpoint{.375cm}{.425cm}}
    \pgfpatharc{30}{-20}{.25cm}
    \pgfpathlineto{\pgfpointadd{\pgfpoint{0cm}{-.1cm}}{\pgfpointpolar{30}{.425cm}}}
    \pgfpatharc{30}{-45}{.425cm and .35cm}
    \pgfpathmoveto{\pgfpoint{-.125cm}{.175cm}}
    \pgfpathlineto{\pgfpoint{-.375cm}{.425cm}}
    \pgfpatharc{150}{200}{.25cm}
    \pgfpathlineto{\pgfpointadd{\pgfpoint{0cm}{-.1cm}}{\pgfpointpolar{150}{.425cm}}}
    \pgfpatharc{150}{225}{.425cm and .35cm}
    \pgfpathmoveto{\pgfpoint{.075cm}{-.075cm}}
    \pgfpatharc{170}{90}{.15cm and .05cm}
    \pgfpathmoveto{\pgfpoint{-.075cm}{-.075cm}}
    \pgfpatharc{10}{90}{.15cm and .05cm}
    \pgfpathmoveto{\pgfpoint{0cm}{-.275cm}}
    \pgfpatharc{0}{90}{.075cm and .05cm}
    \pgfpathmoveto{\pgfpoint{0cm}{-.275cm}}
    \pgfpatharc{180}{90}{.075cm and .05cm}
    \pgfpathmoveto{\pgfpoint{0cm}{-.275cm}}
    \pgfpatharc{360}{180}{.1cm and .075cm}
    \pgfpathmoveto{\pgfpoint{0cm}{-.275cm}}
    \pgfpatharc{180}{360}{.1cm and .075cm}
    \pgfpathmoveto{\pgfpoint{-.1cm}{-.35cm}}
    \pgfpathlineto{\pgfpoint{-.1cm}{-.375cm}}
    \pgfpatharc{180}{360}{.1cm and .05cm}
    \pgfpathlineto{\pgfpoint{.1cm}{-.35cm}}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% constitution
\pgfdeclareshape{constitution}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{0cm}{.25cm}}
    \pgfpathlineto{\pgfpoint{.125cm}{.25cm}}
    \pgfpatharc{-90}{-30}{.325cm}
    \pgfpatharc{0}{-80}{.3cm}
    \pgfpathmoveto{\pgfpoint{0cm}{.25cm}}
    \pgfpathlineto{\pgfpoint{-.125cm}{.25cm}}
    \pgfpatharc{270}{210}{.325cm}
    \pgfpatharc{180}{260}{.3cm}
    \pgfpathmoveto{\pgfpoint{.325cm}{.1cm}}
    \pgfpathlineto{\pgfpoint{.425cm}{.075cm}}
    \pgfpatharc{0}{-90}{.175cm and .1cm}
    \pgfpathlineto{\pgfpoint{.2cm}{-.15cm}}
    \pgfpathmoveto{\pgfpoint{-.325cm}{.1cm}}
    \pgfpathlineto{\pgfpoint{-.425cm}{.075cm}}
    \pgfpatharc{180}{270}{.175cm and .1cm}
    \pgfpathlineto{\pgfpoint{-.2cm}{-.15cm}}
    \pgfpathmoveto{\pgfpoint{-.15cm}{-.225cm}}
    \pgfpatharc{90}{270}{.1cm}
    \pgfpathlineto{\pgfpoint{.15cm}{-.425cm}}
    \pgfpatharc{-90}{90}{.1cm}
    \pgfpathmoveto{\pgfpoint{-.125cm}{-.35cm}}
    \pgfpatharc{-90}{0}{.05cm}
    \pgfpathmoveto{\pgfpoint{.125cm}{-.35cm}}
    \pgfpatharc{90}{0}{-.05cm}
    \pgfpathmoveto{\pgfpoint{-.125cm}{-.025cm}}
    \pgfpathlineto{\pgfpoint{-.075cm}{-.05cm}}
    \pgfpathlineto{\pgfpoint{-.075cm}{-.1cm}}
    \pgfpathmoveto{\pgfpoint{.125cm}{-.025cm}}
    \pgfpathlineto{\pgfpoint{.075cm}{-.05cm}}
    \pgfpathlineto{\pgfpoint{.075cm}{-.1cm}}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% intelligence
\pgfdeclareshape{intelligence}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpointadd{\pgfpoint{0cm}{-.2cm}}{\pgfpointpolar{90}{.425cm}}}
    \pgfpatharc{90}{60}{.25cm}
    \pgfpathlineto{\pgfpointadd{\pgfpoint{0cm}{-.1cm}}{\pgfpointpolar{60}{.6cm}}}
    \pgfpatharc{40}{-2.5}{.425cm}
    \pgfpathmoveto{\pgfpointadd{\pgfpoint{0cm}{-.2cm}}{\pgfpointpolar{90}{.425cm}}}
    \pgfpatharc{90}{120}{.25cm}
    \pgfpathlineto{\pgfpointadd{\pgfpoint{0cm}{-.1cm}}{\pgfpointpolar{120}{.6cm}}}
    \pgfpatharc{140}{182.5}{.425cm}
    \pgfpathmoveto{\pgfpointadd{\pgfpoint{0cm}{-.2cm}}{\pgfpointpolar{45}{.425cm}}}
    \pgfpatharc{45}{0}{.425cm}
    \pgfpathlineto{\pgfpoint{.2cm}{-.275cm}}
    \pgfpathmoveto{\pgfpointadd{\pgfpoint{0cm}{-.2cm}}{\pgfpointpolar{135}{.425cm}}}
    \pgfpatharc{135}{180}{.425cm}
    \pgfpathlineto{\pgfpoint{-.2cm}{-.275cm}}
    \pgfpathmoveto{\pgfpoint{-.2cm}{-.075cm}}
    \pgfpathlineto{\pgfpoint{-.1cm}{-.1cm}}
    \pgfpathlineto{\pgfpoint{-.075cm}{-.375cm}}
    \pgfpatharc{180}{360}{.075cm and .05cm}
    \pgfpathlineto{\pgfpoint{.1cm}{-.1cm}}
    \pgfpathlineto{\pgfpoint{.2cm}{-.075cm}}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% wisdom
\pgfdeclareshape{wisdom}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{0cm}{.175cm}}
    \pgfpatharc{60}{90}{.425cm}
    \pgfpatharc{270}{240}{.425cm}
    \pgfpathmoveto{\pgfpoint{0cm}{.175cm}}
    \pgfpatharc{120}{90}{.425cm}
    \pgfpatharc{270}{300}{.425cm}
    \pgfpathcircle{\pgfpoint{-.175cm}{0cm}}{.075cm}
    \pgfpathcircle{\pgfpoint{.175cm}{0cm}}{.075cm}
    \pgfpathmoveto{\pgfpoint{.075cm}{-.125cm}}
    \pgfpathlineto{\pgfpoint{0cm}{-.325cm}}
    \pgfpathlineto{\pgfpoint{-.075cm}{-.125cm}}
    \pgfpathmoveto{\pgfpoint{-.375cm}{.125cm}}
    \pgfpatharc{150}{270}{.25cm}
    \pgfpathmoveto{\pgfpoint{.375cm}{.125cm}}
    \pgfpatharc{30}{-90}{.25cm}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% charisma
\pgfdeclareshape{charisma}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{0cm}{.15cm}}
    \pgfpatharc{270}{190}{.15cm and .1cm}
    \pgfpatharc{10}{90}{.175cm and .225cm}
    \pgfpatharc{40}{0}{.125cm and .175cm}
    \pgfpathmoveto{\pgfpoint{0cm}{.15cm}}
    \pgfpatharc{270}{350}{.15cm and .1cm}
    \pgfpatharc{170}{90}{.175cm and .225cm}
    \pgfpatharc{140}{180}{.125cm and .175cm}
    \pgfpathmoveto{\pgfpoint{-.2cm}{.125cm}}
    \pgfpatharc{0}{90}{.175cm and .1cm}
    \pgfpatharc{180}{270}{.15cm and .2cm}
    \pgfpathlineto{\pgfpoint{-.25cm}{-.05cm}}
    \pgfpatharc{40}{0}{.45cm}
    \pgfpathlineto{\pgfpoint{0cm}{-.425cm}}
    \pgfpathmoveto{\pgfpoint{.2cm}{.125cm}}
    \pgfpatharc{180}{90}{.175cm and .1cm}
    \pgfpatharc{0}{-90}{.15cm and .2cm}
    \pgfpathlineto{\pgfpoint{.25cm}{-.05cm}}
    \pgfpatharc{140}{180}{.45cm}
    \pgfpathlineto{\pgfpoint{0cm}{-.425cm}}
    \pgfpathmoveto{\pgfpoint{-.05cm}{-.275cm}}
    \pgfpatharc{-30}{60}{.05cm}
    \pgfpathmoveto{\pgfpoint{.05cm}{-.275cm}}
    \pgfpatharc{210}{120}{.05cm}
    \pgfpathmoveto{\pgfpoint{-.125cm}{-.05cm}}
    \pgfpathlineto{\pgfpoint{-.05cm}{-.075cm}}
    \pgfpathmoveto{\pgfpoint{.125cm}{-.05cm}}
    \pgfpathlineto{\pgfpoint{.05cm}{-.075cm}}
    \pgfpathmoveto{\pgfpoint{-.35cm}{-.05cm}}
    \pgfpathlineto{\pgfpoint{-.425cm}{-.05cm}}
    \pgfpatharc{30}{-30}{.15cm}
    \pgfpatharc{80}{10}{.15cm}
    \pgfpathlineto{\pgfpoint{-.25cm}{-.275cm}}
    \pgfpathmoveto{\pgfpoint{.35cm}{-.05cm}}
    \pgfpathlineto{\pgfpoint{.425cm}{-.05cm}}
    \pgfpatharc{150}{210}{.15cm}
    \pgfpatharc{100}{170}{.15cm}
    \pgfpathlineto{\pgfpoint{.25cm}{-.275cm}}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% resilience
\pgfdeclareshape{resilience}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpointadd{\pgfpoint{-.425cm}{-.475cm}}{\pgfpointpolar{65}{.5cm}}}
    \pgfpatharc{65}{90}{.5cm}
    \pgfpathlineto{\pgfpointadd{\pgfpoint{0cm}{-.075cm}}{\pgfpointpolar{135}{.55cm}}}
    \pgfpatharc{135}{45}{.55cm}
    \pgfpathlineto{\pgfpoint{.425cm}{.025cm}}
    \pgfpatharc{90}{115}{.5cm}
    \pgfpathmoveto{\pgfpoint{.2cm}{.3cm}}
    \pgfpathlineto{\pgfpoint{.125cm}{.275cm}}
    \pgfpathlineto{\pgfpoint{.2cm}{.15cm}}
    \pgfpathmoveto{\pgfpoint{.125cm}{.075cm}}
    \pgfpathlineto{\pgfpoint{.05cm}{.05cm}}
    \pgfpathmoveto{\pgfpoint{.15cm}{-.1cm}}
    \pgfpatharc{200}{230}{.4cm}
    \pgfpathmoveto{\pgfpoint{-.2cm}{.3cm}}
    \pgfpathlineto{\pgfpoint{-.125cm}{.275cm}}
    \pgfpathlineto{\pgfpoint{-.2cm}{.15cm}}
    \pgfpathmoveto{\pgfpoint{-.125cm}{.075cm}}
    \pgfpathlineto{\pgfpoint{-.05cm}{.05cm}}
    \pgfpathmoveto{\pgfpoint{-.15cm}{-.1cm}}
    \pgfpatharc{340}{310}{.4cm}
    \pgfpathmoveto{\pgfpoint{-.065cm}{-.075cm}}
    \pgfpathlineto{\pgfpoint{-.045cm}{-.425cm}}
    \pgfpathlineto{\pgfpoint{.045cm}{-.425cm}}
    \pgfpathlineto{\pgfpoint{.065cm}{-.075cm}}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% sanity
\pgfdeclareshape{sanity}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpointadd{\pgfpoint{-.125cm + .175cm * sin(30)}{.425cm - .175cm * cos(30)}}
      {\pgfpointpolar{210}{.175cm}}}
    \pgfpatharc{210}{120}{.175cm}
    \pgfpathlineto{\pgfpointpolar{110}{.25cm}}
    \pgfpatharc{110}{70}{.25cm}
    \pgfpathlineto{\pgfpoint{.125cm}{.425cm}}
    \pgfpatharc{420}{330}{.175cm}
    \pgfpathmoveto{\pgfpoint{.25cm}{.1cm}}
    \pgfpatharc{390}{305}{.15cm}
    \pgfpathmoveto{\pgfpoint{-.25cm}{.1cm}}
    \pgfpatharc{150}{235}{.15cm}
    \pgfpathmoveto{\pgfpoint{-.15cm}{.075cm}}
    \pgfpathlineto{\pgfpoint{-.1cm}{.05cm}}
    \pgfpathlineto{\pgfpoint{-.1cm}{.025cm}}
    \pgfpathmoveto{\pgfpoint{.15cm}{.075cm}}
    \pgfpathlineto{\pgfpoint{.1cm}{.05cm}}
    \pgfpathlineto{\pgfpoint{.1cm}{.025cm}}
    \pgfpathmoveto{\pgfpointadd{\pgfpoint{-.55cm}{-.35cm}}
      {\pgfpointadd{\pgfpointpolar{135}{.125cm and .075cm}}{\pgfpointpolar{20}{.55cm}}}}
    \pgfpatharc{380}{360}{.55cm}
    \pgfpatharc{135}{405}{.125cm and .075cm}
    \pgfpatharc{180}{160}{.55cm}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% perception
\pgfdeclareshape{perception}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpointadd{\pgfpoint{0cm}{.35cm}}{\pgfpointpolar{150}{.125cm}}}
    \pgfpatharc{150}{390}{.125cm}
    \pgfpathmoveto{\pgfpoint{-.3cm}{.425cm}}
    \pgfpatharc{180}{360}{.3cm and .2cm}
    \pgfpathmoveto{\pgfpointadd{\pgfpoint{0cm}{.425cm}}{\pgfpointpolar{330}{.3cm and .2cm}}}
    \pgfpatharc{270}{350}{.15cm and .1cm}
    \pgfpathmoveto{\pgfpointadd{\pgfpoint{0cm}{.425cm}}{\pgfpointpolar{210}{.3cm and .2cm}}}
    \pgfpatharc{270}{190}{.15cm and .1cm}
    \pgfpathmoveto{\pgfpoint{-.2cm}{.15cm}}
    \pgfpathlineto{\pgfpoint{-.375cm}{.125cm}}
    \pgfpatharc{210}{250}{.225cm}
    \pgfpathmoveto{\pgfpoint{.2cm}{.15cm}}
    \pgfpathlineto{\pgfpoint{.375cm}{.125cm}}
    \pgfpatharc{330}{290}{.225cm}
    \pgfpathmoveto{\pgfpoint{-.15cm}{0cm}}
    \pgfpathlineto{\pgfpoint{-.075cm}{-.025cm}}
    \pgfpathlineto{\pgfpoint{-.075cm}{-.05cm}}
    \pgfpathmoveto{\pgfpoint{.15cm}{0cm}}
    \pgfpathlineto{\pgfpoint{.075cm}{-.025cm}}
    \pgfpathlineto{\pgfpoint{.075cm}{-.05cm}}
    \pgfpathmoveto{\pgfpointadd{\pgfpoint{-.075cm}{-.35cm + .075cm * ( 2 + sqrt(3) )}}
      {\pgfpointpolar{195}{.1cm and .075cm}}}
    \pgfpathlineto{\pgfpointadd{\pgfpoint{0cm}{-.35cm}}{\pgfpointpolar{195}{.1cm and .075cm}}}
    \pgfpatharc{195}{345}{.1cm and .075cm}
    \pgfpathlineto{\pgfpointadd{\pgfpoint{.075cm}{-.35cm + .075cm * ( 2 + sqrt(3) )}}
      {\pgfpointpolar{345}{.1cm and .075cm}}}
    \pgfpathmoveto{\pgfpoint{.025cm}{-.325cm}}
    \pgfpatharc{0}{180}{.025cm}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% luck
\pgfdeclareshape{luck}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{.1cm}{.15cm}}
    \pgfpathlineto{\pgfpoint{.1cm}{-.05cm}}
    \pgfpatharc{-75}{-15}{.425cm}
    \pgfpatharc{40}{85}{.425cm}
    \pgfpathmoveto{\pgfpoint{-.1cm}{.15cm}}
    \pgfpathlineto{\pgfpoint{-.1cm}{-.05cm}}
    \pgfpatharc{-105}{-165}{.425cm}
    \pgfpatharc{140}{95}{.425cm}
    \pgfpathmoveto{\pgfpointadd{\pgfpoint{0cm}{-.05cm}}{\pgfpointpolar{15}{.425cm}}}
    \pgfpatharc{15}{-55}{.425cm and .3cm}
    \pgfpathmoveto{\pgfpointadd{\pgfpoint{0cm}{-.05cm}}{\pgfpointpolar{165}{.425cm}}}
    \pgfpatharc{165}{235}{.425cm and .3cm}
    \pgfpathmoveto{\pgfpoint{0cm}{-.175cm}}
    \pgfpatharc{90}{250}{.175cm and .125cm}
    \pgfpathlineto{\pgfpoint{-.05cm}{-.325cm}}
    \pgfpathmoveto{\pgfpoint{0cm}{-.175cm}}
    \pgfpatharc{90}{-70}{.175cm and .125cm}
    \pgfpathlineto{\pgfpoint{.05cm}{-.325cm}}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% armor
\pgfdeclareshape{armor}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{-.25cm}{-.425cm}}
    \pgfpathlineto{\pgfpoint{.25cm}{-.425cm}}
    \pgfpathlineto{\pgfpoint{.2cm}{-.225cm}}
    \pgfpathlineto{\pgfpoint{.25cm}{.125cm}}
    \pgfpathlineto{\pgfpoint{.425cm}{.125cm}}
    \pgfpatharc{0}{90}{.3cm}
    \pgfpathlineto{\pgfpoint{.125cm}{.35cm}}
    \pgfpatharc{360}{180}{.125cm}
    \pgfpathlineto{\pgfpoint{-.125cm}{.425cm}}
    \pgfpatharc{90}{180}{.3cm}
    \pgfpathlineto{\pgfpoint{-.25cm}{.125cm}}
    \pgfpathlineto{\pgfpoint{-.2cm}{-.225cm}}
    \pgfpathclose
    \pgfpathmoveto{\pgfpoint{.125cm}{.425cm}}
    \pgfpathlineto{\pgfpoint{.125cm}{.25cm}}
    \pgfpatharc{180}{270}{.125cm}
    \pgfpathmoveto{\pgfpoint{-.125cm}{.425cm}}
    \pgfpathlineto{\pgfpoint{-.125cm}{.25cm}}
    \pgfpatharc{360}{270}{.125cm}
    \pgfpathmoveto{\pgfpoint{0cm}{.225cm}}
    \pgfpathlineto{\pgfpoint{0cm}{-.275cm}}
    \pgfpathmoveto{\pgfpoint{-.2cm}{-.225cm}}
    \pgfpathlineto{\pgfpoint{0cm}{-.275cm}}
    \pgfpathlineto{\pgfpoint{.2cm}{-.225cm}}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% proficiency
\pgfdeclareshape{proficiency}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpointpolar{90}{.35cm}}
    \pgfpathlineto{\pgfpointpolar{126}{.15cm}}
    \pgfpathlineto{\pgfpointpolar{162}{.35cm}}
    \pgfpathlineto{\pgfpointpolar{198}{.15cm}}
    \pgfpathlineto{\pgfpointpolar{234}{.35cm}}
    \pgfpathlineto{\pgfpointpolar{270}{.15cm}}
    \pgfpathlineto{\pgfpointpolar{306}{.35cm}}
    \pgfpathlineto{\pgfpointpolar{342}{.15cm}}
    \pgfpathlineto{\pgfpointpolar{18}{.35cm}}
    \pgfpathlineto{\pgfpointpolar{54}{.15cm}}
    \pgfpathclose
    \pgfpathmoveto{\pgfpointpolar{270}{.35cm}}
    \pgfpathlineto{\pgfpointpolar{270}{.425cm}}
    \pgfpathmoveto{\pgfpointpolar{342}{.35cm}}
    \pgfpathlineto{\pgfpointpolar{342}{.425cm}}
    \pgfpathmoveto{\pgfpointpolar{54}{.35cm}}
    \pgfpathlineto{\pgfpointpolar{54}{.425cm}}
    \pgfpathmoveto{\pgfpointpolar{126}{.35cm}}
    \pgfpathlineto{\pgfpointpolar{126}{.425cm}}
    \pgfpathmoveto{\pgfpointpolar{198}{.35cm}}
    \pgfpathlineto{\pgfpointpolar{198}{.425cm}}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

\NewDocumentCommand{\rpgiconsability}{ O{positive} m O{} }{%
  \edef\rpgicons@abilityiconposneg{#1}%
  \edef\rpgicons@abilityiconneg{negative}%
  \ifx\rpgicons@abilityiconposneg\rpgicons@abilityiconneg%
    \def\rpgicons@abilityiconfg{fgneg}\else%
    \def\rpgicons@abilityiconfg{fgpos}\fi%
  \hspace{\rpgicons@beforesep}%
  \tikz[rpg icons, rpg icons/every ability, rpg icons/every #2,
    baseline=\rpgicons@baseline, fgpos/.style={draw}, fgneg/.style={draw=rpgicons@bg, line width=.6pt}, #3] {
    \ifx\rpgicons@abilityiconposneg\rpgicons@abilityiconneg%
      \path[scale=.333, fill] (0cm,0cm) circle[radius=.45cm];
      \node[#2, \rpgicons@abilityiconfg, scale=.225] at (0cm,0cm) {};
    \else
      \node[#2, \rpgicons@abilityiconfg, scale=.333] at (0cm,0cm) {};
    \fi%
    \path[draw=none, scale=.333] ([yshift=-1pt].425cm,.425cm) rectangle ([yshift=1pt]-.425cm,-.425cm);
  }%
  \hspace{\rpgicons@aftersep}%
}
\@ifundefined{ability}{\NewCommandCopy\ability\rpgiconsability}{}

\NewDocumentCommand{\rpgiconssaving}{ O{normal} m O{} }{%
  \edef\rpgicons@abilityiconnrmemp{#1}%
  \edef\rpgicons@abilityiconemp{empty}%
  \ifx\rpgicons@abilityiconnrmemp\rpgicons@abilityiconemp%
    \def\rpgicons@savingstyle{}\else%
    \def\rpgicons@savingstyle{rpg icons/every #2}\fi%
  \hspace{\rpgicons@beforesep}%
  \tikz[rpg icons, rpg icons/every saving, \rpgicons@savingstyle,
    baseline=\rpgicons@baseline, #3] {
    \path[draw, scale=.333] (-.45cm,.45cm) -- (.45cm,.45cm) -- (.45cm,-.05cm)
      arc[start angle=360, end angle=180, radius=.45cm] -- cycle;
    \ifx\rpgicons@abilityiconnrmemp\rpgicons@abilityiconemp\else%
      \node[#2, draw, scale=.225] at (0cm,0cm) {};
    \fi%
    \path[draw=none, scale=.333] ([yshift=-1pt].425cm,.425cm) rectangle ([yshift=1pt]-.425cm,-.425cm);
  }%
  \hspace{\rpgicons@aftersep}%
}
\@ifundefined{saving}{\NewCommandCopy\saving\rpgiconssaving}{}

% SPELLS

% line
\pgfdeclareshape{linear}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \behindbackgroundpath{
    \pgfpathcircle{\pgfpoint{-.4cm}{0cm}}{2pt}
    \pgfusepath{fill} % draw origin  
  }
  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{-.4cm}{0cm}}
    \pgfpathlineto{\pgfpoint{.4cm}{0cm}}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% cone
\pgfdeclareshape{conic}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \behindbackgroundpath{
    \pgfpathcircle{\pgfpoint{-.425cm}{0cm}}{2pt}
    \pgfusepath{fill} % draw origin
  }
  \backgroundpath{
    \def\rx{.425cm}
    \def\ry{.2cm}
    \def\z{(.425cm+.2125cm)}
    \pgfpathellipse{\pgfpoint{\z-.425cm}{0cm}}{\pgfpoint{\ry}{0cm}}{\pgfpoint{0cm}{\rx}}
    \pgfmathparse{asin(\ry/\z)}
    \let\angle\pgfmathresult
    \pgfmathparse{-\rx*cos(\angle)}
    \let\coordya\pgfmathresult
    \pgfmathparse{\rx*cos(\angle)}
    \let\coordyb\pgfmathresult
    \pgfmathparse{\z-\ry*sin(\angle)}
    \let\coordx\pgfmathresult
    \pgfpathmoveto{\pgfpoint{\coordx-.425cm}{\coordya}}
    \pgfpathlineto{\pgfpoint{-.425cm}{0cm}}
    \pgfpathlineto{\pgfpoint{\coordx-.425cm}{\coordyb}}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% square
\pgfdeclareshape{quadratic}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \behindbackgroundpath{
    \pgfpathcircle{\pgfpointorigin}{2pt}
    \pgfusepath{fill} % draw origin
  }
  \backgroundpath{
    \pgfpathrectanglecorners{\pgfpoint{.4cm}{.4cm}}{\pgfpoint{-.4cm}{-.4cm}}
  }
}

% cube
\pgfdeclareshape{cubic}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \behindbackgroundpath{
    \pgfpathcircle{\pgfpoint{.1125cm}{-.1125cm}}{2pt}
    \pgfusepath{fill} % draw origin
  }
  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{-.425cm}{.425cm}}
    \pgfpathlineto{\pgfpoint{-.425cm}{-.2cm}}
    \pgfpathlineto{\pgfpoint{-.2cm}{-.425cm}}
    \pgfpathlineto{\pgfpoint{.425cm}{-.425cm}}
    \pgfpathlineto{\pgfpoint{.425cm}{.2cm}}
    \pgfpathlineto{\pgfpoint{.2cm}{.425cm}}
    \pgfpathclose
    \pgfpathlineto{\pgfpoint{-.2cm}{.2cm}}
    \pgfpathlineto{\pgfpoint{-.2cm}{-.425cm}}
    \pgfpathmoveto{\pgfpoint{-.2cm}{.2cm}}
    \pgfpathlineto{\pgfpoint{.425cm}{.2cm}}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% sphere
\pgfdeclareshape{spheric}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \behindbackgroundpath{
    \pgfpathcircle{\pgfpointorigin}{2pt}
    \pgfusepath{fill} % draw origin
  }
  \backgroundpath{
    \pgfpathcircle{\pgfpointorigin}{.425cm}
    \pgfpathmoveto{\pgfpoint{.425cm}{0cm}}
    \pgfpatharc{180}{50}{-.425cm and -.2cm}
    \pgfpathmoveto{\pgfpoint{0cm}{-.425cm}}
    \pgfpatharc{270}{140}{-.2cm and .425cm}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% cylinder
\pgfdeclareshape{cylindric}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \behindbackgroundpath{
    \pgfpathcircle{\pgfpoint{0cm}{-.2125cm}}{2pt}
    \pgfusepath{fill} % draw origin
  }
  \backgroundpath{
    \pgfpathellipse{\pgfpoint{0cm}{.2125cm}}{\pgfpoint{0cm}{.2cm}}{\pgfpoint{.425cm}{0cm}}
    \pgfpathmoveto{\pgfpoint{-.425cm}{.2125cm}}
    \pgfpathlineto{\pgfpoint{-.425cm}{-.2125cm}}
    \pgfpatharc{0}{180}{-.425cm and -.2cm}
    \pgfpathlineto{\pgfpoint{.425cm}{.2125cm}}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% verbal
\pgfdeclareshape{verbal}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{-.35cm}{0cm}}
    \pgfpatharc{180}{-115}{.35cm}
    \pgfpathlineto{\pgfpoint{-.4cm}{-.4cm}}
    \pgfpathlineto{\pgfpointpolar{215}{.35cm}}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% somatic
\pgfdeclareshape{somatic}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{-.425cm}{0cm}}
    \pgfpatharc{0}{270}{-.425cm and -.2cm}
    \pgfpathmoveto{\pgfpoint{0cm}{-.425cm}}
    \pgfpatharc{90}{360}{-.2cm and -.425cm}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% material
\pgfdeclareshape{material}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{-.4cm}{.2cm}}
    \pgfpathlineto{\pgfpoint{-.4cm}{-.2cm}}
    \pgfpathlineto{\pgfpoint{0cm}{-.4cm}}
    \pgfpathlineto{\pgfpoint{.4cm}{-.2cm}}
    \pgfpathlineto{\pgfpoint{.4cm}{.2cm}}
    \pgfpathlineto{\pgfpoint{0cm}{.4cm}}
    \pgfpathclose
    \pgfpathlineto{\pgfpoint{0cm}{0cm}}
    \pgfpathlineto{\pgfpoint{.4cm}{.2cm}}
    \pgfpathmoveto{\pgfpoint{0cm}{0cm}}
    \pgfpathlineto{\pgfpoint{0cm}{-.4cm}}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% focus
\pgfdeclareshape{focus}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathcircle{\pgfpointorigin}{.35cm}
    \pgfpathmoveto{\pgfpoint{-.15cm}{0cm}}
    \pgfpathlineto{\pgfpoint{-.425cm}{0cm}}
    \pgfpathmoveto{\pgfpoint{.15cm}{0cm}}
    \pgfpathlineto{\pgfpoint{.425cm}{0cm}}
    \pgfpathmoveto{\pgfpoint{0cm}{-.15cm}}
    \pgfpathlineto{\pgfpoint{0cm}{-.425cm}}
    \pgfpathmoveto{\pgfpoint{0cm}{.15cm}}
    \pgfpathlineto{\pgfpoint{0cm}{.425cm}}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

\NewDocumentCommand{\rpgiconsspell}{ m O{} }{%
  \hspace{\rpgicons@beforesep}%
  \tikz[rpg icons, rpg icons/every spell, rpg icons/every #1,
    baseline=\rpgicons@baseline, #2] {
    \node[#1, draw, scale=.333] at (0cm,0cm) {};
    \path[draw=none, scale=.333] ([yshift=-1pt].425cm,.425cm) rectangle ([yshift=1pt]-.425cm,-.425cm);
  }%
  \hspace{\rpgicons@aftersep}%
}
\@ifundefined{spell}{\NewCommandCopy\spell\rpgiconsspell}{}

% SPELLSCHOOLS

% abjuration
\pgfdeclareshape{abjuration}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{0cm}{.025cm}}
    \pgfpatharc{270}{390}{.275cm and .175cm}
    \pgfpatharc{210}{120}{.095cm}
    \pgfpathmoveto{\pgfpoint{0cm}{.025cm}}
    \pgfpatharc{270}{150}{.275cm and .175cm}
    \pgfpatharc{-30}{60}{.095cm}
    \pgfpathmoveto{\pgfpoint{0cm}{.25cm}}
    \pgfpathlineto{\pgfpoint{0cm}{-.425cm}}
    \pgfpathmoveto{\pgfpoint{-.25cm}{-.125cm}}
    \pgfpathlineto{\pgfpoint{.25cm}{-.125cm}}
    \pgfpathmoveto{\pgfpoint{-.25cm}{-.3cm}}
    \pgfpathlineto{\pgfpoint{.25cm}{-.3cm}}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% conjuration
\pgfdeclareshape{conjuration}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{-.425cm}{.425cm}}
    \pgfpathlineto{\pgfpoint{0cm}{-.425cm}}
    \pgfpathlineto{\pgfpoint{.425cm}{.425cm}}
    \pgfpathmoveto{\pgfpoint{-.225cm}{.05cm}}
    \pgfpathlineto{\pgfpoint{.225cm}{.05cm}}
    \pgfpathmoveto{\pgfpoint{0cm}{-.15cm}}
    \pgfpatharc{110}{70}{.5cm}
    \pgfpathmoveto{\pgfpoint{0cm}{-.15cm}}
    \pgfpatharc{110}{70}{-.5cm}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% divination
\pgfdeclareshape{divination}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{-.35cm}{-.175cm}}
    \pgfpatharc{180}{0}{.15cm and -.25cm}
    \pgfpatharc{180}{90}{.4cm}
    \pgfpathmoveto{\pgfpoint{-.05cm}{-.175cm}}
    \pgfpathlineto{\pgfpoint{-.05cm}{0cm}}
    \pgfpatharc{180}{90}{.4cm}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% enchantment
\pgfdeclareshape{enchantment}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{-.2cm}{-.425cm}}
    \pgfpathlineto{\pgfpoint{-.2cm}{.425cm}}
    \pgfpathmoveto{\pgfpoint{-.425cm}{.175cm}}
    \pgfpathlineto{\pgfpoint{.025cm}{.175cm}}
    \pgfpathmoveto{\pgfpoint{-.2cm}{-.225cm}}
    \pgfpatharc{180}{0}{.1cm and .2cm}
    \pgfpatharc{180}{0}{.1cm and .2cm}
    \pgfpatharc{180}{0}{.1cm and -.2cm}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% evocation
\pgfdeclareshape{evocation}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathellipse{\pgfpointorigin}{\pgfpoint{.325cm}{0cm}}{\pgfpoint{0cm}{.225cm}}
    \pgfpathmoveto{\pgfpoint{0cm}{.425cm}}
    \pgfpathlineto{\pgfpoint{0cm}{-.425cm}}
    \pgfpathmoveto{\pgfpoint{-.425cm}{0cm}}
    \pgfpathlineto{\pgfpoint{.425cm}{0cm}}
    \pgfpathmoveto{\pgfpointpolar{30}{.325cm and .225cm}}
    \pgfpathlineto{\pgfpointpolar{30}{.4cm}}
    \pgfpathmoveto{\pgfpointpolar{60}{.325cm and .225cm}}
    \pgfpathlineto{\pgfpointpolar{60}{.4cm}}
    \pgfpathmoveto{\pgfpointpolar{120}{.325cm and .225cm}}
    \pgfpathlineto{\pgfpointpolar{120}{.4cm}}
    \pgfpathmoveto{\pgfpointpolar{150}{.325cm and .225cm}}
    \pgfpathlineto{\pgfpointpolar{150}{.4cm}}
    \pgfpathmoveto{\pgfpointpolar{210}{.325cm and .225cm}}
    \pgfpathlineto{\pgfpointpolar{210}{.4cm}}
    \pgfpathmoveto{\pgfpointpolar{240}{.325cm and .225cm}}
    \pgfpathlineto{\pgfpointpolar{240}{.4cm}}
    \pgfpathmoveto{\pgfpointpolar{300}{.325cm and .225cm}}
    \pgfpathlineto{\pgfpointpolar{300}{.4cm}}
    \pgfpathmoveto{\pgfpointpolar{330}{.325cm and .225cm}}
    \pgfpathlineto{\pgfpointpolar{330}{.4cm}}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% illusion
\pgfdeclareshape{illusion}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{0cm}{.225cm}}
    \pgfpatharc{90}{30}{.45cm}
    \pgfpatharc{330}{210}{.45cm}
    \pgfpatharc{150}{90}{.45cm}
    \pgfpathmoveto{\pgfpointadd{\pgfpoint{0cm}{.225cm}}{\pgfpointpolar{270}{.45cm}}}
    \pgfpathlineto{\pgfpointpolar{270}{.35cm}}
    \pgfpathmoveto{\pgfpointadd{\pgfpoint{0cm}{.225cm}}{\pgfpointpolar{240}{.45cm}}}
    \pgfpathlineto{\pgfpointpolar{225}{.4cm}}
    \pgfpathmoveto{\pgfpointadd{\pgfpoint{0cm}{.225cm}}{\pgfpointpolar{300}{.45cm}}}
    \pgfpathlineto{\pgfpointpolar{315}{.4cm}}
    \pgfpathmoveto{\pgfpoint{0cm}{.225cm}}
    \pgfpathcircle{\pgfpoint{0cm}{.075cm}}{.15cm}
  }
}

% necromancy
\pgfdeclareshape{necromancy}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpointpolar{210}{.25cm}}
    \pgfpatharc{210}{-30}{.25cm}
    \pgfpatharc{150}{390}{.1cm}
    \pgfpathmoveto{\pgfpointpolar{210}{.25cm}}
    \pgfpatharc{390}{150}{.1cm}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% transmutation
\pgfdeclareshape{transmutation}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{-.25cm}{.35cm}}
    \pgfpathlineto{\pgfpoint{-.25cm}{-.35cm}}
    \pgfpathmoveto{\pgfpoint{0cm}{.35cm}}
    \pgfpathlineto{\pgfpoint{0cm}{-.35cm}}
    \pgfpathmoveto{\pgfpoint{-.425cm}{.35cm}}
    \pgfpathlineto{\pgfpoint{.15cm}{.35cm}}
    \pgfpatharc{90}{-45}{.1cm}
    \pgfpatharc{135}{360}{.1cm}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

\NewDocumentCommand{\rpgiconsspellschool}{ O{negative} m O{} }{%
  \edef\rpgicons@spellschooliconposneg{#1}%
  \edef\rpgicons@spellschooliconpos{positive}%
  \ifx\rpgicons@spellschooliconposneg\rpgicons@spellschooliconpos%
    \def\rpgicons@spellschooliconfg{fgneg}\else%
    \def\rpgicons@spellschooliconfg{fgpos}\fi%
  \ifx\rpgicons@spellschooliconposneg\rpgicons@spellschooliconpos%
    \def\rpgicons@spellschooliconbg{bgneg}\else%
    \def\rpgicons@spellschooliconbg{bgpos}\fi%
  \hspace{\rpgicons@beforesep}%
  \tikz[rpg icons, rpg icons/every spellschool, rpg icons/every #2,
    baseline=\rpgicons@baseline, fgpos/.style={draw=rpgicons@bg, line width=.6pt}, fgneg/.style={draw},
    bgpos/.style={fill}, bgneg/.style={draw}, #3] {
    \path[scale=.333, \rpgicons@spellschooliconbg] (-.475cm,.35cm)
      -- (-.35cm,.475cm) -- (.35cm,.475cm) -- (.475cm,.35cm) -- (.425cm,-.375cm) -- (0cm,-.475cm) -- (-.425cm,-.375cm) -- cycle;
    \node[#2, \rpgicons@spellschooliconfg, scale=.225] at (0cm,0cm) {};
    \path[draw=none, scale=.333] ([yshift=-1pt].425,.425) rectangle ([yshift=1pt]-.425cm,-.425cm);
  }%
  \hspace{\rpgicons@aftersep}%
}
\@ifundefined{spellschool}{\NewCommandCopy\spellschool\rpgiconsspellschool}{}

% DAMAGES

% acid
\pgfdeclareshape{acid}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpointadd{\pgfpoint{-.175cm}{.05cm}}{\pgfpointpolar{-20}{.175}}}
    \pgfpatharc{-20}{200}{-.175cm}
    \pgfpathlineto{\pgfpoint{0cm}{.425cm}}
    \pgfpathclose
    \newdimen\rpgicons@py
    \pgfextracty{\rpgicons@py}{\pgfpointadd{\pgfpoint{0cm}{-.175cm}}{\pgfpointpolar{20}{-.25cm}}}
    \pgfpathmoveto{\pgfpoint{-.425cm}{\rpgicons@py}}
    \pgfpathlineto{\pgfpointadd{\pgfpoint{0cm}{-.175cm}}{\pgfpointpolar{20}{-.25cm}}}
    \pgfpatharc{20}{160}{-.25cm}
    \pgfpathlineto{\pgfpoint{.425cm}{\rpgicons@py}}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% bludgeoning
\pgfdeclareshape{bludgeoning}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{-.2cm}{.225cm}}
    \pgfpathlineto{\pgfpoint{0cm}{.425cm}}
    \pgfpathlineto{\pgfpoint{.425cm}{0cm}}
    \pgfpathlineto{\pgfpoint{.225cm}{-.2cm}}
    \pgfpathclose
    \pgfpathmoveto{\pgfpoint{.05cm}{-.025cm}}
    \pgfpathlineto{\pgfpoint{-.35cm}{-.425cm}}
    \pgfpathlineto{\pgfpoint{-.425cm}{-.35cm}}
    \pgfpathlineto{\pgfpoint{-.025cm}{.05cm}}
    \pgfpathmoveto{\pgfpoint{.2375cm}{.1875cm}}
    \pgfpatharc{135}{315}{-.05cm}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% cold
\pgfdeclareshape{cold}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpointpolar{90}{.425cm}}
    \pgfpathlineto{\pgfpointpolar{270}{.425cm}}
    \pgfpathmoveto{\pgfpointpolar{110}{.35cm}}
    \pgfpathlineto{\pgfpointpolar{90}{.25cm}}
    \pgfpathlineto{\pgfpointpolar{70}{.35cm}}
    \pgfpathmoveto{\pgfpointpolar{250}{.35cm}}
    \pgfpathlineto{\pgfpointpolar{270}{.25cm}}
    \pgfpathlineto{\pgfpointpolar{290}{.35cm}}
    \pgfpathmoveto{\pgfpointpolar{30}{.425cm}}
    \pgfpathlineto{\pgfpointpolar{210}{.425cm}}
    \pgfpathmoveto{\pgfpointpolar{50}{.35cm}}
    \pgfpathlineto{\pgfpointpolar{30}{.25cm}}
    \pgfpathlineto{\pgfpointpolar{10}{.35cm}}
    \pgfpathmoveto{\pgfpointpolar{190}{.35cm}}
    \pgfpathlineto{\pgfpointpolar{210}{.25cm}}
    \pgfpathlineto{\pgfpointpolar{230}{.35cm}}
    \pgfpathmoveto{\pgfpointpolar{150}{.425cm}}
    \pgfpathlineto{\pgfpointpolar{330}{.425cm}}
    \pgfpathmoveto{\pgfpointpolar{130}{.35cm}}
    \pgfpathlineto{\pgfpointpolar{150}{.25cm}}
    \pgfpathlineto{\pgfpointpolar{170}{.35cm}}
    \pgfpathmoveto{\pgfpointpolar{310}{.35cm}}
    \pgfpathlineto{\pgfpointpolar{330}{.25cm}}
    \pgfpathlineto{\pgfpointpolar{350}{.35cm}}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% fire
\pgfdeclareshape{fire}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{.15cm}{-.425cm}}
    \pgfpatharc{-60}{0}{.45cm and .375cm}
    \pgfpathcurveto{\pgfpoint{.375cm}{.15cm}}{\pgfpoint{.15cm}{.375cm}}{\pgfpoint{-.05cm}{.425cm}}
    \pgfpathmoveto{\pgfpoint{-.15cm}{-.425cm}}
    \pgfpatharc{240}{135}{.45cm and .35cm}
    \pgfpathcurveto{\pgfpoint{-.15cm}{.2cm}}{\pgfpoint{0cm}{.25cm}}{\pgfpoint{-.05cm}{.425cm}}
    \pgfpathmoveto{\pgfpoint{.075cm}{-.3cm}}
    \pgfpathcurveto{\pgfpoint{.2cm}{-.2cm}}{\pgfpoint{.2cm}{-.05cm}}{\pgfpoint{.05cm}{.1cm}}
    \pgfpathmoveto{\pgfpoint{-.075cm}{-.3cm}}
    \pgfpatharc{220}{150}{.35cm and .2cm}
    \pgfpathcurveto{\pgfpoint{0cm}{-.2cm}}{\pgfpoint{.05cm}{-.1cm}}{\pgfpoint{.05cm}{.1cm}}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% force
\pgfdeclareshape{force}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpointpolar{90}{.425cm}}
    \pgfpathlineto{\pgfpointpolar{120}{.15cm}}
    \pgfpathlineto{\pgfpointpolar{150}{.425cm}}
    \pgfpathlineto{\pgfpointpolar{180}{.15cm}}
    \pgfpathlineto{\pgfpointpolar{210}{.425cm}}
    \pgfpathlineto{\pgfpointpolar{240}{.15cm}}
    \pgfpathlineto{\pgfpointpolar{270}{.425cm}}
    \pgfpathlineto{\pgfpointpolar{300}{.15cm}}
    \pgfpathlineto{\pgfpointpolar{330}{.425cm}}
    \pgfpathlineto{\pgfpointpolar{0}{.15cm}}
    \pgfpathlineto{\pgfpointpolar{30}{.425cm}}
    \pgfpathlineto{\pgfpointpolar{60}{.15cm}}
    \pgfpathclose
  }
}

% lightning
\pgfdeclareshape{lightning}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{0cm}{.425cm}}
    \pgfpathlineto{\pgfpoint{-.25cm}{-.15cm}}
    \pgfpathlineto{\pgfpoint{.25cm}{.15cm}}
    \pgfpathlineto{\pgfpoint{0cm}{-.425cm}}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% necrotic
\pgfdeclareshape{necrotic}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{-.35cm}{-.425cm}}
    \pgfpathlineto{\pgfpoint{-.35cm}{.075cm}}
    \pgfpatharc{180}{0}{.35cm}
    \pgfpathlineto{\pgfpoint{.35cm}{-.425cm}}
    \pgfpathclose
    \pgfpathmoveto{\pgfpoint{0cm}{-.2cm}}
    \pgfpathlineto{\pgfpoint{0cm}{.25cm}}
    \pgfpathmoveto{\pgfpoint{-.15cm}{.1cm}}
    \pgfpathlineto{\pgfpoint{.15cm}{.1cm}}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% piercing
\pgfdeclareshape{piercing}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{-.425cm}{.075cm}}
    \pgfpathlineto{\pgfpoint{.3cm}{.075cm}}
    \pgfpathlineto{\pgfpoint{.425cm}{0cm}}
    \pgfpathlineto{\pgfpoint{.3cm}{-.075cm}}
    \pgfpathlineto{\pgfpoint{-.425cm}{-.075cm}}
    \pgfpathmoveto{\pgfpoint{.25cm}{.2cm}}
    \pgfpathlineto{\pgfpoint{-.05cm}{.35cm}}
    \pgfpathmoveto{\pgfpoint{.25cm}{-.2cm}}
    \pgfpathlineto{\pgfpoint{-.05cm}{-.35cm}}
    \pgfpathmoveto{\pgfpoint{.425cm}{.15cm}}
    \pgfpathlineto{\pgfpoint{.25cm}{.425cm}}
    \pgfpathmoveto{\pgfpoint{.425cm}{-.15cm}}
    \pgfpathlineto{\pgfpoint{.25cm}{-.425cm}}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% poison
\pgfdeclareshape{poison}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpointadd{\pgfpoint{0cm}{.175cm}}{\pgfpointpolar{-40}{.25cm}}}
    \pgfpatharc{-40}{220}{.25cm}
    \pgfpathlineto{\pgfpoint{-.15cm}{-.1cm}}
    \pgfpathlineto{\pgfpoint{.15cm}{-.1cm}}
    \pgfpathclose
    \pgfpathcircle{\pgfpoint{-.1cm}{.15cm}}{.05cm}
    \pgfpathcircle{\pgfpoint{.1cm}{.15cm}}{.05cm}
    \pgfpathmoveto{\pgfpoint{.425cm}{-.2cm}}
    \pgfpathlineto{\pgfpoint{-.425cm}{-.425cm}}
    \pgfpathmoveto{\pgfpoint{-.425cm}{-.2cm}}
    \pgfpathlineto{\pgfpoint{.425cm}{-.425cm}}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% psychic
\pgfdeclareshape{psychic}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{.075cm}{.4cm}}
    \pgfpatharc{90}{180}{.425cm}
    \pgfpatharc{180}{270}{.375cm}
    \pgfpatharc{270}{360}{.325cm}
    \pgfpatharc{0}{90}{.275cm}
    \pgfpatharc{90}{180}{.225cm}
    \pgfpatharc{180}{270}{.175cm}
    \pgfpatharc{270}{360}{.125cm}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% radiant
\pgfdeclareshape{radiant}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathcircle{\pgfpointorigin}{.225cm}
    \pgfpathmoveto{\pgfpointpolar{15}{.425cm}}
    \pgfpatharc{15}{45}{.425cm}
    \pgfpathmoveto{\pgfpointpolar{75}{.425cm}}
    \pgfpatharc{75}{105}{.425cm}
    \pgfpathmoveto{\pgfpointpolar{135}{.425cm}}
    \pgfpatharc{135}{165}{.425cm}
    \pgfpathmoveto{\pgfpointpolar{195}{.425cm}}
    \pgfpatharc{195}{225}{.425cm}
    \pgfpathmoveto{\pgfpointpolar{255}{.425cm}}
    \pgfpatharc{255}{285}{.425cm}
    \pgfpathmoveto{\pgfpointpolar{315}{.425cm}}
    \pgfpatharc{315}{345}{.425cm}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% slashing
\pgfdeclareshape{slashing}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{-.15cm}{.225cm}}
    \pgfpathlineto{\pgfpoint{-.275cm}{.35cm}}
    \pgfpatharc{0}{240}{.075cm}
    \pgfpathlineto{\pgfpoint{-.35cm}{.275cm}}
    \pgfpathlineto{\pgfpoint{-.225cm}{.15cm}}
    \pgfpathlineto{\pgfpoint{-.425cm}{-.05cm}}
    \pgfpathlineto{\pgfpoint{-.35cm}{-.125cm}}
    \pgfpathlineto{\pgfpoint{.125cm}{.35cm}}
    \pgfpathlineto{\pgfpoint{.05cm}{.425cm}}
    \pgfpathclose
    \pgfpathmoveto{\pgfpoint{-.2cm}{.025cm}}
    \pgfpathlineto{\pgfpoint{.225cm}{-.425cm}}
    \pgfpathlineto{\pgfpoint{.425cm}{-.425cm}}
    \pgfpathlineto{\pgfpoint{.425cm}{-.225cm}}
    \pgfpathlineto{\pgfpoint{-.025cm}{.2cm}}
    \pgfpathmoveto{\pgfpoint{.325cm}{-.325cm}}
    \pgfpathlineto{\pgfpoint{0cm}{0cm}}
    \pgfpathmoveto{\pgfpoint{.425cm}{.3cm}}
    \pgfpathlineto{\pgfpoint{.425cm}{0cm}}
    \pgfpathmoveto{\pgfpoint{.275cm}{.425cm}}
    \pgfpathlineto{\pgfpoint{.275cm}{.1cm}}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% thunder
\pgfdeclareshape{thunder}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{.225cm}{-.075cm}}
    \pgfpatharc{-90}{120}{.2cm}
    \pgfpatharc{30}{180}{.225cm}
    \newdimen\rpgicons@qy
    \pgfmathparse{.125cm+cos(30)*.2cm-sin(30)*.225cm}
    \rpgicons@qy=\pgfmathresult pt
    \pgfpathlineto{\pgfpoint{-.3cm}{\rpgicons@qy}}
    \pgfpatharc{90}{180}{.125cm}
    \pgfpathlineto{\pgfpoint{-.425cm}{.05cm}}
    \pgfpatharc{180}{270}{.125cm}
    \pgfpathclose
    \pgfpathmoveto{\pgfpoint{-.1cm}{-.225cm}}
    \pgfpatharc{240}{300}{.3cm}
    \pgfpathmoveto{\pgfpoint{-.2cm}{-.35cm}}
    \pgfpatharc{240}{300}{.5cm}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% healing
\pgfdeclareshape{healing}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{0cm}{.125cm}}
    \pgfpatharc{0}{225}{.2cm}
    \pgfpathlineto{\pgfpoint{0cm}{-.375cm}}
    \pgfpathmoveto{\pgfpoint{0cm}{.125cm}}
    \pgfpatharc{180}{-45}{.2cm}
    \pgfpathlineto{\pgfpoint{0cm}{-.375cm}}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

\NewDocumentCommand{\rpgiconsdamage}{ m O{} }{%
  \hspace{\rpgicons@beforesep}%
  \tikz[rpg icons, rpg icons/every damage, rpg icons/every #1,
    baseline=\rpgicons@baseline, #2] {
    \path[draw, scale=.333] (0cm,0cm) circle[radius=.5cm];
    \node[#1, draw, scale=.225] at (0cm,0cm) {};
    \path[draw=none, scale=.333] ([yshift=-1pt].425cm,.425cm) rectangle ([yshift=1pt]-.425cm,-.425cm);
  }%
  \hspace{\rpgicons@aftersep}%
}
\@ifundefined{damage}{\NewCommandCopy\damage\rpgiconsdamage}{}

% ATTACKS

% melee
\pgfdeclareshape{melee}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{-.15cm}{-.225cm}}
    \pgfpathlineto{\pgfpoint{-.275cm}{-.35cm}}
    \pgfpatharc{360}{90}{.075cm}
    \pgfpathlineto{\pgfpoint{-.35cm}{-.275cm}}
    \pgfpathlineto{\pgfpoint{-.225cm}{-.15cm}}
    \pgfpathlineto{\pgfpoint{-.425cm}{.05cm}}
    \pgfpathlineto{\pgfpoint{-.35cm}{.125cm}}
    \pgfpathlineto{\pgfpoint{.125cm}{-.35cm}}
    \pgfpathlineto{\pgfpoint{.05cm}{-.425cm}}
    \pgfpathclose
    \pgfpathmoveto{\pgfpoint{-.2cm}{-.025cm}}
    \pgfpathlineto{\pgfpoint{.225cm}{.425cm}}
    \pgfpathlineto{\pgfpoint{.425cm}{.425cm}}
    \pgfpathlineto{\pgfpoint{.425cm}{.225cm}}
    \pgfpathlineto{\pgfpoint{-.025cm}{-.2cm}}
    \pgfpathmoveto{\pgfpoint{.325cm}{.325cm}}
    \pgfpathlineto{\pgfpoint{0cm}{0cm}}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% ranged
\pgfdeclareshape{ranged}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{0cm}{0cm}}
    \pgfpathlineto{\pgfpoint{0cm}{-.225cm}}
    \pgfpatharc{0}{-30}{.4cm}
    \pgfpatharc{-45}{0}{.6cm}
    \pgfpathmoveto{\pgfpoint{0cm}{0cm}}
    \pgfpathlineto{\pgfpoint{0cm}{.225cm}}
    \pgfpatharc{0}{30}{.4cm}
    \pgfpatharc{45}{0}{.6cm}
    \pgfpathmoveto{\pgfpoint{-.425cm}{0cm}}
    \pgfpathlineto{\pgfpoint{.425cm}{0cm}}
    \pgfpathmoveto{\pgfpoint{.275cm}{.1cm}}
    \pgfpathlineto{\pgfpoint{.425cm}{0cm}}
    \pgfpathlineto{\pgfpoint{.275cm}{-.1cm}}
    \pgfpathmoveto{\pgfpointadd{\pgfpoint{-.4cm}{-.225cm}}{\pgfpointpolar{-20}{.4cm}}}
    \pgfpathlineto{\pgfpoint{-.425cm}{0cm}}
    \pgfpathlineto{\pgfpointadd{\pgfpoint{-.4cm}{.225cm}}{\pgfpointpolar{20}{.4cm}}}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% magic
\pgfdeclareshape{magic}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{-.225cm}{-.425cm}}
    \pgfpathlineto{\pgfpoint{-.425cm}{-.225cm}}
    \pgfpathlineto{\pgfpoint{-.3cm}{-.1cm}}
    \pgfpathlineto{\pgfpoint{-.3cm}{.125cm}}
    \pgfpathlineto{\pgfpoint{0cm}{.425cm}}
    \pgfpatharc{405}{315}{.1cm}
    \pgfpathlineto{\pgfpoint{-.15cm}{.1cm}}
    \pgfpathlineto{\pgfpoint{-.15cm}{-.05cm}}
    \pgfpatharc{180}{360}{.05cm}
    \pgfpathlineto{\pgfpoint{-.05cm}{0cm}}
    \pgfpatharc{180}{90}{.1cm}
    \pgfpathlineto{\pgfpoint{.05cm}{-.1cm}}
    \pgfpatharc{360}{315}{.125cm}
    \pgfpathclose
    \pgfpathmoveto{\pgfpoint{-.225cm}{-.25cm}}
    \pgfpathlineto{\pgfpoint{-.325cm}{-.15cm}}
    \pgfpathmoveto{\pgfpoint{.2cm}{.2cm}}
    \pgfpatharc{180}{360}{.1cm}
    \pgfpatharc{0}{45}{.1cm}
    \pgfpatharc{225}{180}{.2cm}
    \pgfpathcircle{\pgfpoint{.3cm}{-.075cm}}{.075cm}
  }
}

% single-handed
\pgfdeclareshape{singlehanded}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{-.25cm}{-.425cm}}
    \pgfpathlineto{\pgfpoint{.025cm}{-.425cm}}
    \pgfpathlineto{\pgfpoint{.325cm}{-.125cm}}
    \pgfpatharc{45}{135}{.1cm}
    \pgfpathlineto{\pgfpoint{0cm}{-.275cm}}
    \pgfpathlineto{\pgfpoint{-.15cm}{-.275cm}}
    \pgfpatharc{270}{90}{.05cm}
    \pgfpathlineto{\pgfpoint{-.1cm}{-.175cm}}
    \pgfpatharc{270}{360}{.1cm}
    \pgfpathlineto{\pgfpoint{-.2cm}{-.075cm}}
    \pgfpatharc{90}{135}{.125cm}
    \pgfpathlineto{\pgfpoint{-.425cm}{-.25cm}}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% double-handed
\pgfdeclareshape{doublehanded}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{-.25cm}{-.425cm}}
    \pgfpathlineto{\pgfpoint{.025cm}{-.425cm}}
    \pgfpathlineto{\pgfpoint{.325cm}{-.125cm}}
    \pgfpatharc{45}{135}{.1cm}
    \pgfpathlineto{\pgfpoint{0cm}{-.275cm}}
    \pgfpathlineto{\pgfpoint{-.15cm}{-.275cm}}
    \pgfpatharc{270}{90}{.05cm}
    \pgfpathlineto{\pgfpoint{-.1cm}{-.175cm}}
    \pgfpatharc{270}{360}{.1cm}
    \pgfpathlineto{\pgfpoint{-.2cm}{-.075cm}}
    \pgfpatharc{90}{135}{.125cm}
    \pgfpathlineto{\pgfpoint{-.425cm}{-.25cm}}
    \pgfpathmoveto{\pgfpoint{.25cm}{.425cm}}
    \pgfpathlineto{\pgfpoint{-.025cm}{.425cm}}
    \pgfpathlineto{\pgfpoint{-.325cm}{.125cm}}
    \pgfpatharc{225}{315}{.1cm}
    \pgfpathlineto{\pgfpoint{0cm}{.275cm}}
    \pgfpathlineto{\pgfpoint{.15cm}{.275cm}}
    \pgfpatharc{450}{270}{.05cm}
    \pgfpathlineto{\pgfpoint{.1cm}{.175cm}}
    \pgfpatharc{90}{180}{.1cm}
    \pgfpathlineto{\pgfpoint{.2cm}{.075cm}}
    \pgfpatharc{270}{315}{.125cm}
    \pgfpathlineto{\pgfpoint{.425cm}{.25cm}}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

\NewDocumentCommand{\rpgiconsattack}{ m O{} }{%
  \hspace{\rpgicons@beforesep}%
  \tikz[rpg icons, rpg icons/every attack, rpg icons/every #1,
    baseline=\rpgicons@baseline, #2] {
    \node[#1, draw, scale=.333] at (0cm,0cm) {};
    \path[draw=none, scale=.333] ([yshift=-1pt].425cm,.425cm) rectangle ([yshift=1pt]-.425cm,-.425cm);
  }%
  \hspace{\rpgicons@aftersep}%
}
\@ifundefined{attack}{\NewCommandCopy\attack\rpgiconsattack}{}

% CONDITIONS

% buff
\pgfdeclareshape{buff}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{-.425cm}{-.225cm}}
    \pgfpathlineto{\pgfpoint{-.225cm}{-.425cm}}
    \pgfpathlineto{\pgfpoint{-.1cm}{-.3cm}}
    \pgfpathlineto{\pgfpoint{.125cm}{-.3cm}}
    \pgfpathlineto{\pgfpoint{.425cm}{0cm}}
    \pgfpatharc{45}{135}{.1cm}
    \pgfpathlineto{\pgfpoint{.1cm}{-.15cm}}
    \pgfpathlineto{\pgfpoint{-.05cm}{-.15cm}}
    \pgfpatharc{270}{90}{.05cm}
    \pgfpathlineto{\pgfpoint{0cm}{-.05cm}}
    \pgfpatharc{270}{360}{.1cm}
    \pgfpathlineto{\pgfpoint{-.1cm}{.05cm}}
    \pgfpatharc{90}{135}{.125cm}
    \pgfpathclose
    \pgfpathmoveto{\pgfpoint{-.25cm}{-.225cm}}
    \pgfpathlineto{\pgfpoint{-.15cm}{-.325cm}}
    \pgfpathmoveto{\pgfpoint{0cm}{.425cm}}
    \pgfpathlineto{\pgfpoint{.25cm}{.425cm}}
    \pgfpathlineto{\pgfpoint{.25cm}{.275cm}}
    \pgfpatharc{360}{180}{.125cm}
    \pgfpathclose
  }
}

% blinded
\pgfdeclareshape{blinded}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{0cm}{.225cm}}
    \pgfpatharc{90}{30}{.45cm}
    \pgfpatharc{330}{210}{.45cm}
    \pgfpatharc{150}{90}{.45cm}
    \pgfpathmoveto{\pgfpoint{0cm}{.225cm}}
    \pgfpathcircle{\pgfpoint{0cm}{0cm}}{.15cm}
    \pgfpathmoveto{\pgfpoint{-.425cm}{-.425cm}}
    \pgfpathlineto{\pgfpoint{-.25cm}{-.25cm}}
    \pgfpathmoveto{\pgfpoint{0cm}{0cm}}
    \pgfpathlineto{\pgfpoint{.425cm}{.425cm}}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% charmed
\pgfdeclareshape{charmed}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathcircle{\pgfpoint{0cm}{0cm}}{.425cm}
    \pgfpathmoveto{\pgfpoint{-.175cm}{-.1cm}}
    \pgfpatharc{180}{360}{.175cm}
    \pgfpathclose
    \pgfpathmoveto{\pgfpoint{-.175cm}{.15cm}}
    \pgfpatharc{0}{225}{.0625cm}
    \pgfpathlineto{\pgfpoint{-.175cm}{0cm}}
    \pgfpathmoveto{\pgfpoint{-.175cm}{.15cm}}
    \pgfpatharc{180}{-45}{.0625cm}
    \pgfpathlineto{\pgfpoint{-.175cm}{0cm}}
    \pgfpathmoveto{\pgfpoint{.175cm}{.15cm}}
    \pgfpatharc{0}{225}{.0625cm}
    \pgfpathlineto{\pgfpoint{.175cm}{0cm}}
    \pgfpathmoveto{\pgfpoint{.175cm}{.15cm}}
    \pgfpatharc{180}{-45}{.0625cm}
    \pgfpathlineto{\pgfpoint{.175cm}{0cm}}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% deafened
\pgfdeclareshape{deafened}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{-.175cm}{-.275cm}}
    \pgfpatharc{180}{360}{.15cm}
    \pgfpathlineto{\pgfpoint{.125cm}{-.225cm}}
    \pgfpatharc{180}{135}{.25cm}
    \pgfpatharc{315}{360}{.25cm}
    \pgfpatharc{0}{180}{.275cm}
    \pgfpathmoveto{\pgfpoint{-.15cm}{-.1cm}}
    \pgfpatharc{-90}{90}{.075cm}
    \pgfpathlineto{\pgfpoint{-.15cm}{.125cm}}
    \pgfpatharc{180}{45}{.15cm}
    \pgfpathmoveto{\pgfpoint{-.425cm}{-.425cm}}
    \pgfpathlineto{\pgfpoint{-.2cm}{-.2cm}}
    \pgfpathmoveto{\pgfpoint{0cm}{0cm}}
    \pgfpathlineto{\pgfpoint{.425cm}{.425cm}}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% exhausted
\pgfdeclareshape{exhausted}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathcircle{\pgfpoint{0cm}{0cm}}{.425cm}
    \pgfpathmoveto{\pgfpoint{-.175cm}{-.225cm}}
    \pgfpatharc{180}{0}{.175cm}
    \pgfpathclose
    \pgfpathmoveto{\pgfpoint{.275cm}{.15cm}}
    \pgfpatharc{180}{0}{-.1cm}
    \pgfpathmoveto{\pgfpoint{-.075cm}{.15cm}}
    \pgfpatharc{180}{0}{-.1cm}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% frightened
\pgfdeclareshape{frightened}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathcircle{\pgfpoint{0cm}{0cm}}{.425cm}
    \pgfpathmoveto{\pgfpoint{-.175cm}{-.225cm}}
    \pgfpatharc{180}{0}{.175cm}
    \pgfpathclose
    \pgfpathcircle{\pgfpoint{-.175cm}{.125cm}}{.075cm}
    \pgfpathcircle{\pgfpoint{.175cm}{.125cm}}{.075cm}
  }
}

% grappled
\pgfdeclareshape{grappled}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{-.25cm}{.3cm}}
    \pgfpatharc{90}{-90}{.075cm}
    \pgfpathlineto{\pgfpoint{-.35cm}{.15cm}}
    \pgfpatharc{270}{90}{.075cm}
    \pgfpathclose
    \pgfpathmoveto{\pgfpoint{-.2cm}{.15cm}}
    \pgfpatharc{90}{-90}{.075cm}
    \pgfpathlineto{\pgfpoint{-.35cm}{0cm}}
    \pgfpatharc{270}{90}{.075cm}
    \pgfpathclose
    \pgfpathmoveto{\pgfpoint{-.2cm}{0cm}}
    \pgfpatharc{90}{-90}{.075cm}
    \pgfpathlineto{\pgfpoint{-.35cm}{-.15cm}}
    \pgfpatharc{270}{90}{.075cm}
    \pgfpathclose
    \pgfpathmoveto{\pgfpoint{-.2cm}{-.15cm}}
    \pgfpatharc{90}{-90}{.075cm}
    \pgfpathlineto{\pgfpoint{-.3cm}{-.3cm}}
    \pgfpatharc{270}{90}{.075cm}
    \pgfpathclose
    \pgfpathmoveto{\pgfpoint{.425cm}{.05cm}}
    \pgfpatharc{0}{90}{.25cm}
    \pgfpathlineto{\pgfpoint{-.05cm}{.3cm}}
    \pgfpatharc{180}{270}{.15cm}
    \pgfpathlineto{\pgfpoint{.175cm}{.15cm}}
    \pgfpathlineto{\pgfpoint{.175cm}{-.425cm}}
    \pgfpathmoveto{\pgfpoint{.175cm}{-.275cm}}
    \pgfpathlineto{\pgfpoint{.425cm}{-.275cm}}
    \pgfpathmoveto{\pgfpoint{.175cm}{.3cm}}
    \pgfpathlineto{\pgfpoint{.175cm}{.425cm}}
    \pgfpathmoveto{\pgfpoint{-.3cm}{.3cm}}
    \pgfpathlineto{\pgfpoint{-.3cm}{.425cm}}
    \pgfpathmoveto{\pgfpoint{-.3cm}{-.3cm}}
    \pgfpathlineto{\pgfpoint{-.3cm}{-.425cm}}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% incapacitated
\pgfdeclareshape{incapacitated}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpointpolar{30}{.425cm}}
    \pgfpatharc{270}{210}{.425cm}
    \pgfpathlineto{\pgfpointpolar{90}{-.425cm}}
    \pgfpatharc{30}{90}{.425cm}
    \pgfpathmoveto{\pgfpointpolar{90}{.425cm}}
    \pgfpatharc{330}{270}{.425cm}
    \pgfpathlineto{\pgfpointpolar{150}{-.425cm}}
    \pgfpatharc{90}{150}{.425cm}
    \pgfpathmoveto{\pgfpointpolar{150}{.425cm}}
    \pgfpatharc{30}{-30}{.425cm}
    \pgfpathlineto{\pgfpointpolar{210}{-.425cm}}
    \pgfpatharc{150}{210}{.425cm}
    \pgfpathmoveto{\pgfpointpolar{30}{.25cm}}
    \pgfpatharc{270}{210}{.25cm}
    \pgfpatharc{330}{270}{.25cm}
    \pgfpatharc{30}{-30}{.25cm}
    \pgfpatharc{90}{30}{.25cm}
    \pgfpatharc{150}{90}{.25cm}
    \pgfpatharc{210}{150}{.25cm}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% invisible
\pgfdeclareshape{invisible}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpointpolar{-15}{.425cm}}
    \pgfpatharc{-15}{15}{.425cm}
    \pgfpathmoveto{\pgfpointpolar{30}{.425cm}}
    \pgfpatharc{30}{60}{.425cm}
    \pgfpathmoveto{\pgfpointpolar{75}{.425cm}}
    \pgfpatharc{75}{105}{.425cm}
    \pgfpathmoveto{\pgfpointpolar{120}{.425cm}}
    \pgfpatharc{120}{150}{.425cm}
    \pgfpathmoveto{\pgfpointpolar{165}{.425cm}}
    \pgfpatharc{165}{195}{.425cm}
    \pgfpathmoveto{\pgfpointpolar{210}{.425cm}}
    \pgfpatharc{210}{240}{.425cm}
    \pgfpathmoveto{\pgfpointpolar{255}{.425cm}}
    \pgfpatharc{255}{285}{.425cm}
    \pgfpathmoveto{\pgfpointpolar{300}{.425cm}}
    \pgfpatharc{300}{330}{.425cm}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% paralyzed
\pgfdeclareshape{paralyzed}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathcircle{\pgfpoint{0cm}{0cm}}{.425cm}
    \pgfpathmoveto{\pgfpoint{-.175cm}{-.225cm}}
    \pgfpatharc{180}{0}{.175cm}
    \pgfpathclose
    \pgfpathmoveto{\pgfpoint{.25cm}{.2cm}}
    \pgfpathlineto{\pgfpoint{.1cm}{.05cm}}
    \pgfpathmoveto{\pgfpoint{.25cm}{.05cm}}
    \pgfpathlineto{\pgfpoint{.1cm}{.2cm}}
    \pgfpathmoveto{\pgfpoint{-.25cm}{.2cm}}
    \pgfpathlineto{\pgfpoint{-.1cm}{.05cm}}
    \pgfpathmoveto{\pgfpoint{-.25cm}{.05cm}}
    \pgfpathlineto{\pgfpoint{-.1cm}{.2cm}}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% petrified
\pgfdeclareshape{petrified}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpointpolar{45}{.425cm}}
    \pgfpathlineto{\pgfpointpolar{100}{.425cm}}
    \pgfpathlineto{\pgfpointpolar{135}{.425cm}}
    \pgfpathlineto{\pgfpointpolar{190}{.425cm}}
    \pgfpathlineto{\pgfpointpolar{230}{.425cm}}
    \pgfpathlineto{\pgfpointpolar{250}{.425cm}}
    \pgfpathlineto{\pgfpointpolar{300}{.425cm}}
    \pgfpathlineto{\pgfpointpolar{350}{.425cm}}
    \pgfpathclose
    \pgfpathmoveto{\pgfpointpolar{135}{.425cm}}
    \pgfpathlineto{\pgfpointpolar{130}{.35cm}}
    \pgfpathlineto{\pgfpoint{-.25cm}{.075cm}}
    \pgfpathlineto{\pgfpointpolar{220}{.2cm}}
    \pgfpathlineto{\pgfpointpolar{240}{.325cm}}
    \pgfpathmoveto{\pgfpointpolar{300}{.425cm}}
    \pgfpathlineto{\pgfpointpolar{330}{.3cm}}
    \pgfpathlineto{\pgfpointpolar{350}{.225cm}}
    \pgfpathmoveto{\pgfpointpolar{45}{.425cm}}
    \pgfpathlineto{\pgfpointpolar{60}{.3cm}}
    \pgfpathlineto{\pgfpointpolar{130}{.35cm}}
    \pgfpathmoveto{\pgfpoint{-.15cm}{-.175cm}}
    \pgfpathlineto{\pgfpoint{.075cm}{-.15cm}}
    \pgfpathlineto{\pgfpoint{.125cm}{-.2cm}}
    \pgfpathmoveto{\pgfpoint{-.25cm}{.075cm}}
    \pgfpathlineto{\pgfpoint{-.1cm}{.1cm}}
    \pgfpathmoveto{\pgfpoint{.25cm}{.075cm}}
    \pgfpathlineto{\pgfpoint{.1cm}{.1cm}}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% poisoned
\pgfdeclareshape{poisoned}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathcircle{\pgfpoint{0cm}{0cm}}{.425cm}
    \pgfpathmoveto{\pgfpoint{-.15cm}{-.2cm}}
    \pgfpathlineto{\pgfpoint{-.075cm}{-.125cm}}
    \pgfpathlineto{\pgfpoint{0cm}{-.2cm}}
    \pgfpathlineto{\pgfpoint{.075cm}{-.125cm}}
    \pgfpathlineto{\pgfpoint{.15cm}{-.2cm}}
    \pgfpathmoveto{\pgfpoint{.25cm}{.175cm}}
    \pgfpathlineto{\pgfpoint{.1cm}{.1cm}}
    \pgfpathlineto{\pgfpoint{.25cm}{.025cm}}
    \pgfpathmoveto{\pgfpoint{-.25cm}{.175cm}}
    \pgfpathlineto{\pgfpoint{-.1cm}{.1cm}}
    \pgfpathlineto{\pgfpoint{-.25cm}{.025cm}}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% prone
\pgfdeclareshape{prone}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathcircle{\pgfpoint{.2cm}{-.125cm}}{.125cm}
    \pgfpathmoveto{\pgfpoint{-.425cm}{0cm}}
    \pgfpathlineto{\pgfpoint{-.15cm}{0cm}}
    \pgfpatharc{90}{-90}{.125cm}
    \pgfpathlineto{\pgfpoint{-.425cm}{-.25cm}}

    \pgfpathmoveto{\pgfpoint{.225cm}{.15cm}}
    \pgfpatharc{270}{360}{.1cm}
    \pgfpatharc{180}{270}{.1cm}
    \pgfpatharc{90}{180}{.1cm}
    \pgfpatharc{0}{90}{.1cm}
    \pgfpathmoveto{\pgfpoint{0cm}{.25cm}}
    \pgfpatharc{270}{360}{.1cm}
    \pgfpatharc{180}{270}{.1cm}
    \pgfpatharc{90}{180}{.1cm}
    \pgfpatharc{0}{90}{.1cm}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% restrained
\pgfdeclareshape{restrained}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{-.075cm}{-.225cm}}
    \pgfpathlineto{\pgfpoint{-.075cm}{.225cm}}
    \pgfpatharc{90}{180}{.125cm}
    \pgfpathlineto{\pgfpoint{-.2cm}{0cm}}
    \pgfpatharc{270}{180}{.1cm}
    \pgfpathlineto{\pgfpoint{-.3cm}{.3cm}}
    \pgfpatharc{0}{90}{.125cm}
    \pgfpathlineto{\pgfpoint{-.425cm}{-.075cm}}
    \pgfpatharc{180}{235}{.1cm}
    \pgfpathlineto{\pgfpoint{-.3cm}{-.225cm}}
    \pgfpathmoveto{\pgfpoint{.075cm}{-.225cm}}
    \pgfpathlineto{\pgfpoint{.075cm}{.225cm}}
    \pgfpatharc{90}{0}{.125cm}
    \pgfpathlineto{\pgfpoint{.2cm}{0cm}}
    \pgfpatharc{-90}{0}{.1cm}
    \pgfpathlineto{\pgfpoint{.3cm}{.3cm}}
    \pgfpatharc{180}{90}{.125cm}
    \pgfpathlineto{\pgfpoint{.425cm}{-.075cm}}
    \pgfpatharc{360}{330}{.1cm}
    \pgfpathlineto{\pgfpoint{.3cm}{-.225cm}}
    \pgfpathmoveto{\pgfpoint{.35cm}{-.225cm}}
    \pgfpatharc{90}{-90}{.05cm}
    \pgfpathlineto{\pgfpoint{-.35cm}{-.325cm}}
    \pgfpatharc{270}{90}{.05cm}
    \pgfpathclose
    \pgfpathmoveto{\pgfpoint{.35cm}{-.325cm}}
    \pgfpatharc{90}{-90}{.05cm}
    \pgfpathlineto{\pgfpoint{-.35cm}{-.425cm}}
    \pgfpatharc{270}{90}{.05cm}
    \pgfpathclose
  }
}

% stunned
\pgfdeclareshape{stunned}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathcircle{\pgfpoint{0cm}{0cm}}{.425cm}
    \pgfpathellipse{\pgfpoint{0cm}{-.175cm}}{\pgfpoint{0cm}{.1cm}}{\pgfpoint{.175cm}{0cm}}
    \pgfpathmoveto{\pgfpointadd{\pgfpoint{-.175cm}{.125cm}}{\pgfpointpolar{90}{.125cm}}}
    \pgfpathlineto{\pgfpointadd{\pgfpoint{-.175cm}{.125cm}}{\pgfpointpolar{126}{.05cm}}}
    \pgfpathlineto{\pgfpointadd{\pgfpoint{-.175cm}{.125cm}}{\pgfpointpolar{162}{.125cm}}}
    \pgfpathlineto{\pgfpointadd{\pgfpoint{-.175cm}{.125cm}}{\pgfpointpolar{198}{.05cm}}}
    \pgfpathlineto{\pgfpointadd{\pgfpoint{-.175cm}{.125cm}}{\pgfpointpolar{234}{.125cm}}}
    \pgfpathlineto{\pgfpointadd{\pgfpoint{-.175cm}{.125cm}}{\pgfpointpolar{270}{.05cm}}}
    \pgfpathlineto{\pgfpointadd{\pgfpoint{-.175cm}{.125cm}}{\pgfpointpolar{306}{.125cm}}}
    \pgfpathlineto{\pgfpointadd{\pgfpoint{-.175cm}{.125cm}}{\pgfpointpolar{342}{.05cm}}}
    \pgfpathlineto{\pgfpointadd{\pgfpoint{-.175cm}{.125cm}}{\pgfpointpolar{18}{.125cm}}}
    \pgfpathlineto{\pgfpointadd{\pgfpoint{-.175cm}{.125cm}}{\pgfpointpolar{54}{.05cm}}}
    \pgfpathclose
    \pgfpathmoveto{\pgfpointadd{\pgfpoint{.175cm}{.125cm}}{\pgfpointpolar{90}{.125cm}}}
    \pgfpathlineto{\pgfpointadd{\pgfpoint{.175cm}{.125cm}}{\pgfpointpolar{126}{.05cm}}}
    \pgfpathlineto{\pgfpointadd{\pgfpoint{.175cm}{.125cm}}{\pgfpointpolar{162}{.125cm}}}
    \pgfpathlineto{\pgfpointadd{\pgfpoint{.175cm}{.125cm}}{\pgfpointpolar{198}{.05cm}}}
    \pgfpathlineto{\pgfpointadd{\pgfpoint{.175cm}{.125cm}}{\pgfpointpolar{234}{.125cm}}}
    \pgfpathlineto{\pgfpointadd{\pgfpoint{.175cm}{.125cm}}{\pgfpointpolar{270}{.05cm}}}
    \pgfpathlineto{\pgfpointadd{\pgfpoint{.175cm}{.125cm}}{\pgfpointpolar{306}{.125cm}}}
    \pgfpathlineto{\pgfpointadd{\pgfpoint{.175cm}{.125cm}}{\pgfpointpolar{342}{.05cm}}}
    \pgfpathlineto{\pgfpointadd{\pgfpoint{.175cm}{.125cm}}{\pgfpointpolar{18}{.125cm}}}
    \pgfpathlineto{\pgfpointadd{\pgfpoint{.175cm}{.125cm}}{\pgfpointpolar{54}{.05cm}}}
    \pgfpathclose
  }
}

% unconscious
\pgfdeclareshape{unconscious}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{0cm}{.15cm}}
    \pgfpatharc{90}{-30}{.425cm and .15cm}
    \pgfpathmoveto{\pgfpoint{0cm}{-.15cm}}
    \pgfpatharc{270}{150}{.425cm and .15cm}
    \pgfpathmoveto{\pgfpoint{-.35cm}{.15cm}}
    \pgfpatharc{270}{360}{.125cm}
    \pgfpatharc{180}{270}{.125cm}
    \pgfpatharc{90}{180}{.125cm}
    \pgfpatharc{0}{90}{.125cm}
    \pgfpathmoveto{\pgfpoint{.1cm}{-.15cm}}
    \pgfpatharc{270}{360}{.125cm}
    \pgfpatharc{180}{270}{.125cm}
    \pgfpatharc{90}{180}{.125cm}
    \pgfpatharc{0}{90}{.125cm}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% hearing
\pgfdeclareshape{hearing}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{-.175cm}{-.275cm}}
    \pgfpatharc{180}{360}{.15cm}
    \pgfpathlineto{\pgfpoint{.125cm}{-.225cm}}
    \pgfpatharc{180}{135}{.25cm}
    \pgfpatharc{315}{360}{.25cm}
    \pgfpatharc{0}{180}{.275cm}
    \pgfpathmoveto{\pgfpoint{-.15cm}{-.1cm}}
    \pgfpatharc{-90}{90}{.075cm}
    \pgfpathlineto{\pgfpoint{-.15cm}{.125cm}}
    \pgfpatharc{180}{45}{.15cm}
    \pgfsetarrowsstart{}
    \pgfsetarrowsend{}
  }
}

% seeing
\pgfdeclareshape{seeing}{
  \anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
  \anchor{text} % this is used to center the text in the node
    {\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}

  \backgroundpath{
    \pgfpathmoveto{\pgfpoint{0cm}{.225cm}}
    \pgfpatharc{90}{30}{.45cm}
    \pgfpatharc{330}{210}{.45cm}
    \pgfpatharc{150}{90}{.45cm}
    \pgfpathmoveto{\pgfpoint{0cm}{.225cm}}
    \pgfpathcircle{\pgfpoint{0cm}{0cm}}{.15cm}
  }
}

\NewDocumentCommand{\rpgiconscondition}{ m O{} }{%
  \hspace{\rpgicons@beforesep}%
  \tikz[rpg icons, rpg icons/every condition, rpg icons/every #1,
    baseline=\rpgicons@baseline, #2] {
    \node[#1, draw, scale=.333] at (0cm,0cm) {};
    \path[draw=none, scale=.333] ([yshift=-1pt].425cm,.425cm) rectangle ([yshift=1pt]-.425cm,-.425cm);
  }%
  \hspace{\rpgicons@aftersep}%
}
\@ifundefined{condition}{\NewCommandCopy\condition\rpgiconscondition}{}

% make tikz icons available as pics
\ifrpgicons@pics

\tikzset{
  rpg icons/create pic from shape/.code={%
    \tikzset{
      rpg icons #1/.pic={
        \begin{scope}[every node/.append style={#1}, rpg icons/every #1]
          \node[draw, scale=.333] at (0cm,0cm) (-node) {};
          \path[draw=none, scale=.333] ([yshift=-1pt].425cm,.425cm) rectangle ([yshift=1pt]-.425cm,-.425cm);
        \end{scope}
      },
    }%
  },
  rpg icons/create pic from ability shape/.code={%
    \tikzset{
      rpg icons #1 ability/.pic={
        \begin{scope}[every node/.append style={#1}, rpg icons/every ability, rpg icons/every #1]
          \path[scale=.333, pic actions] (0cm,0cm) circle[radius=.45cm];
          \node[draw, scale=.225] at (0cm,0cm) (-node) {};
          \path[draw=none, scale=.333] ([yshift=-1pt].425cm,.425cm) rectangle ([yshift=1pt]-.425cm,-.425cm);
        \end{scope}
      }
    }%
  },
  rpg icons/create pic from saving shape/.code={%
    \tikzset{
      rpg icons #1 saving/.pic={
        \begin{scope}[every node/.append style={#1}, rpg icons/every saving, rpg icons/every #1]
          \path[draw, scale=.333, pic actions] (-.45cm,.45cm) -- (.45cm,.45cm) -- (.45cm,-.05cm)
            arc[start angle=360, end angle=180, radius=.45cm] -- cycle;
          \node[#1, draw, scale=.225] at (0cm,0cm) (-node) {};
          \path[draw=none, scale=.333] ([yshift=-1pt].425cm,.425cm) rectangle ([yshift=1pt]-.425cm,-.425cm);
        \end{scope}
      }
    }%
  },
  rpg icons/create pic from spellschool shape/.code={%
    \tikzset{
      rpg icons #1 spellschool/.pic={
        \begin{scope}[every node/.append style={#1}, rpg icons/every spellschool, rpg icons/every #1]
          \path[draw, scale=.333, pic actions] (-.475cm,.35cm)
            -- (-.35cm,.475cm) -- (.35cm,.475cm) -- (.475cm,.35cm) -- (.425cm,-.375cm) -- (0cm,-.475cm) -- (-.425cm,-.375cm) -- cycle;
          \node[#1, draw, scale=.225] at (0cm,0cm) (-node) {};
          \path[draw=none, scale=.333] ([yshift=-1pt].425cm,.425cm) rectangle ([yshift=1pt]-.425cm,-.425cm);
        \end{scope}
      }
    }%
  },
  rpg icons/create pic from damage shape/.code={
    \tikzset{
      rpg icons #1 damage/.pic={
        \begin{scope}[every node/.append style={#1}, rpg icons/every damage, rpg icons/every #1]
          \path[draw, scale=.333, pic actions] (0cm,0cm) circle[radius=.5cm];
          \node[#1, draw, scale=.225] at (0cm,0cm) (-node) {};
          \path[draw=none, scale=.333] ([yshift=-1pt].425cm,.425cm) rectangle ([yshift=1pt]-.425cm,-.425cm);
        \end{scope}
      }
    }
  },
  rpg icons/create pic from shape/.list/.expanded={%
    \rpgicons@allshapes%
  },
  rpg icons/create pic from ability shape/.list={%
    strength, dexterity, dexterity alt, constitution, intelligence, wisdom, charisma,
    resilience, sanity, perception, luck, armor, proficiency%
  },
  rpg icons/create pic from saving shape/.list={%
    strength, dexterity, dexterity alt, constitution, intelligence, wisdom, charisma,
    resilience, sanity, perception, luck, armor, proficiency%
  },
  rpg icons/create pic from spellschool shape/.list={%
    abjuration, conjuration, divination, enchantment, evocation, illusion, necromancy, transmutation%
  },
  rpg icons/create pic from damage shape/.list={%
    acid, bludgeoning, cold, fire, force, lightning, necrotic, piercing, poison, psychic,
    radiant, slashing, thunder, healing%
  }
}

\fi

% ROLL SYNTAX

\ExplSyntaxOn

\msg_new:nnn { rpgicons } { tagging-unsupported } {
  This ~ LaTeX ~ version ~ does ~ not ~ support ~ tagging.
}

\cs_if_exist:NTF \NewTaggingSocket {
  \NewTaggingSocket { rpgicons/roll/before } { 1 } 
  \NewTaggingSocketPlug { rpgicons/roll/before } { actualtext } {
    \tag_mc_end_push:
    \tag_struct_begin:n {
      tag = Span ,
      actualtext = { ~ #1 ~ }
    }
    \tag_mc_begin:n { }
  }
  \AssignTaggingSocketPlug { rpgicons/roll/before } { actualtext }

  \NewTaggingSocket { rpgicons/roll/after } { 0 } 
  \NewTaggingSocketPlug { rpgicons/roll/after } { actualtext } {
    \tag_mc_end:
    \tag_struct_end:
    \tag_mc_begin_pop:n { }
  }
  \AssignTaggingSocketPlug { rpgicons/roll/after } { actualtext }
} {
  \msg_warning:nn { rpgicons } { tagging-unsupported }
  \cs_if_exist:NF \tag_socket_use:n {
    \cs_new:Npn \tag_socket_use:n #1 { }
  }
  \cs_if_exist:NF \tag_socket_use:nn {
    \cs_new:Npn \tag_socket_use:nn #1#2 { }
  }
  \cs_if_exist:NF \tag_suspend:n {
    \cs_new:Npn \tag_suspend:n #1 { }
  }
  \cs_if_exist:NF \tag_resume:n {
    \cs_new:Npn \tag_resume:n #1 { }
  }
}

\cs_if_exist:NF \rpgicons_roll_syntax_parse:n {

  \bool_new:N \l__rpgicons_unicode_mode_bool
  \sys_if_engine_luatex:T {
      \bool_set_true:N \l__rpgicons_unicode_mode_bool
  }
  \sys_if_engine_xetex:T {
      \bool_set_true:N \l__rpgicons_unicode_mode_bool
  }

  \regex_new:N \l__rpgicons_roll_syntax_die_regex
  \cs_generate_variant:Nn \regex_set:Nn { Ne }
  \cs_new_protected:Npn \rpgicons_roll_syntax_die_set:n #1 {
      \regex_set:Ne \l__rpgicons_roll_syntax_die_regex { [ \clist_use:nn {#1} { } ] }
  }

  \cs_new:Npn \rpgicons_roll_syntax_convert:n #1 {
      \str_case:nnF {#1} {
          { 2 } { twoside }
          { 4 } { fourside }
          { 6 } { sixside }
          { 8 } { eightside }
          { 10 } { tenside }
          { 12 } { twelveside }
          { 20 } { twentyside }
          { 100 } { hundredside }
          { F } { fudge }
      }
      {#1}
  }

  \seq_new:N \l__rpgicons_roll_syntax_seq
  \tl_new:N \l__rpgicons_roll_syntax_part_tl
  \regex_new:N \l__rpgicons_roll_syntax_split_regex
  \regex_new:N \l__rpgicons_roll_syntax_plusminus_regex
  \regex_new:N \l__rpgicons_roll_syntax_times_regex
  \bool_if:NTF \l__rpgicons_unicode_mode_bool {
      \regex_set:Nn \l__rpgicons_roll_syntax_split_regex { \s*([\+\-\x{2212}x\*\x{00D7}])\s* }
      \regex_set:Nn \l__rpgicons_roll_syntax_plusminus_regex { \A([\+\-\x{2212}])\Z }
      \regex_set:Nn \l__rpgicons_roll_syntax_times_regex { \A([x\*\x{00D7}])\Z }
  } {
      \regex_set:Nn \l__rpgicons_roll_syntax_split_regex { \s*([\+\-x\*\x{00D7}])\s* }
      \regex_set:Nn \l__rpgicons_roll_syntax_plusminus_regex { \A([\+\-])\Z }
      \regex_set:Nn \l__rpgicons_roll_syntax_times_regex { \A([x\*\x{00D7}])\Z }
  }
  \regex_new:N \l__rpgicons_roll_syntax_dice_regex
  \cs_new_protected:Npn \rpgicons_roll_syntax_parse:n #1 {
      \regex_set:Nn \l__rpgicons_roll_syntax_dice_regex { \A(\d*)\ur{l__rpgicons_roll_syntax_die_regex}([F\d]+)\Z }
      \regex_split:NnN \l__rpgicons_roll_syntax_split_regex {#1} \l__rpgicons_roll_syntax_seq
      \seq_map_inline:Nn \l__rpgicons_roll_syntax_seq {
          \tl_set:Ne \l__rpgicons_roll_syntax_part_tl {##1}
          \regex_replace_case_once:nNTF {
              { \l__rpgicons_roll_syntax_plusminus_regex } { \c{,} $\1$ \c{,} }
              { \l__rpgicons_roll_syntax_times_regex } { \c{,} $\c{times}$ \c{,} }
              { \l__rpgicons_roll_syntax_dice_regex }
                  { \c{ rpgiconsdie } { \c{ rpgicons_roll_syntax_convert:n } { \2 } } { \1 } }
          } \l__rpgicons_roll_syntax_part_tl
          { \tl_use:N \l__rpgicons_roll_syntax_part_tl }
          { \tl_use:N \l__rpgicons_roll_syntax_part_tl }
      }
  }

  \cs_generate_variant:Nn \rpgicons_roll_syntax_parse:n { e }

}

\tikzset{
  rpg ~ icons/roll ~ syntax/.code={
    \rpgicons_roll_syntax_die_set:n {#1}
  },
  rpg ~ icons/roll ~ syntax={d,D}
}

\NewDocumentCommand{\rpgiconsroll}{ m }{
  \tag_socket_use:nn { rpgicons/roll/before } {#1}
  \tag_suspend:n { \rpgiconsroll }
  \rpgicons_roll_syntax_parse:e {#1}
  \tag_resume:n { \rpgiconsroll }
  \tag_socket_use:n { rpgicons/roll/after }
}

\ExplSyntaxOff

\@ifundefined{roll}{\NewCommandCopy\roll\rpgiconsroll}{}

\endinput
