<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">% 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-01-22 RPG Icons Package (PGF Variant) (1.8.6)]

% 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%
    }
}

% 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}}

  \foregroundpath{
    \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0cm}{.25cm}}{\pgfpoint{.425cm}{0cm}}
    \pgfusepath{draw} % draw ellipse
  }
}

% 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}}

  \foregroundpath{
    \pgfpathmoveto{\pgfpoint{0cm}{.35cm}}
    \pgfpathlineto{\pgfpoint{.433cm}{-.4cm}}
    \pgfpathlineto{\pgfpoint{-.433cm}{-.4cm}}
    \pgfpathclose
    \pgfusepath{draw} % draw triangle
  }
}

% 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}}

  \foregroundpath{
    \pgfpathrectanglecorners{\pgfpoint{.4cm}{.4cm}}{\pgfpoint{-.4cm}{-.4cm}}
    \pgfusepath{draw} % draw rectangle
  }
}

% 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}}

  \foregroundpath{
    \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
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \pgfpathcircle{\pgfpointorigin}{.425cm}
    \pgfpathmoveto{\pgfpoint{.425cm}{0cm}}
    \pgfpatharc{180}{50}{-.425cm and -.2cm}
    \pgfpathmoveto{\pgfpoint{0cm}{-.425cm}}
    \pgfpatharc{270}{140}{-.2cm and .425cm}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \pgfpathrectanglecorners{\pgfpoint{.4cm}{.4cm}}{\pgfpoint{-.4cm}{-.4cm}}
    \pgfusepath{draw} % draw rectangle
    \foreach \x/\y in {
        0cm/0cm
    } {
        \pgfpathcircle{\pgfpoint{\x}{\y}}{2pt}
    }
    \pgfusepath{fill}
  }
}

% 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}}

  \foregroundpath{
    \pgfpathrectanglecorners{\pgfpoint{.4cm}{.4cm}}{\pgfpoint{-.4cm}{-.4cm}}
    \pgfusepath{draw} % draw rectangle
    \foreach \x/\y in {
        .2cm/-.2cm, -.2cm/.2cm
    } {
        \pgfpathcircle{\pgfpoint{\x}{\y}}{2pt}
    }
    \pgfusepath{fill}
  }
}

% 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}}

  \foregroundpath{
    \pgfpathrectanglecorners{\pgfpoint{.4cm}{.4cm}}{\pgfpoint{-.4cm}{-.4cm}}
    \pgfusepath{draw} % draw rectangle
    \foreach \x/\y in {
        .2cm/-.2cm, 0cm/0cm, -.2cm/.2cm
    } {
        \pgfpathcircle{\pgfpoint{\x}{\y}}{2pt}
    }
    \pgfusepath{fill}
  }
}

% 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}}

  \foregroundpath{
    \pgfpathrectanglecorners{\pgfpoint{.4cm}{.4cm}}{\pgfpoint{-.4cm}{-.4cm}}
    \pgfusepath{draw} % draw rectangle
    \foreach \x/\y in {
        -.2cm/.2cm, .2cm/.2cm,
        -.2cm/-.2cm, .2cm/-.2cm
    } {
        \pgfpathcircle{\pgfpoint{\x}{\y}}{2pt}
    }
    \pgfusepath{fill}
  }
}

% 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}}

  \foregroundpath{
    \pgfpathrectanglecorners{\pgfpoint{.4cm}{.4cm}}{\pgfpoint{-.4cm}{-.4cm}}
    \pgfusepath{draw} % draw rectangle
    \foreach \x/\y in {
        -.2cm/.2cm, .2cm/.2cm,
        0cm/0cm,
        -.2cm/-.2cm, .2cm/-.2cm
    } {
        \pgfpathcircle{\pgfpoint{\x}{\y}}{2pt}
    }
    \pgfusepath{fill}
  }
}

% 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}}

  \foregroundpath{
    \pgfpathrectanglecorners{\pgfpoint{.4cm}{.4cm}}{\pgfpoint{-.4cm}{-.4cm}}
    \pgfusepath{draw} % draw rectangle
    \foreach \x/\y in {
        -.2cm/.2cm, .2cm/.2cm,
        -.2cm/0cm, .2cm/0cm,
        -.2cm/-.2cm, .2cm/-.2cm
    } {
        \pgfpathcircle{\pgfpoint{\x}{\y}}{2pt}
    }
    \pgfusepath{fill}
  }
}

% 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}}

  \foregroundpath{
    \pgfpathrectanglecorners{\pgfpoint{.4cm}{.4cm}}{\pgfpoint{-.4cm}{-.4cm}}
    \pgfusepath{draw} % draw rectangle
    \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}
  }
}

% 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}}

  \foregroundpath{
    \pgfpathrectanglecorners{\pgfpoint{.4cm}{.4cm}}{\pgfpoint{-.4cm}{-.4cm}}
    \pgfusepath{draw} % draw rectangle
    \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}
  }
}

% 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}}

  \foregroundpath{
    \pgfpathrectanglecorners{\pgfpoint{.4cm}{.4cm}}{\pgfpoint{-.4cm}{-.4cm}}
    \pgfusepath{draw} % draw rectangle
    \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}
  }
}

% 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}}

  \foregroundpath{
    \pgfpathrectanglecorners{\pgfpoint{.4cm}{.4cm}}{\pgfpoint{-.4cm}{-.4cm}}
    \pgfusepath{draw} % draw rectangle
    \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}
  }
}

% 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}}

  \foregroundpath{
    \pgfpathrectanglecorners{\pgfpoint{.4cm}{.4cm}}{\pgfpoint{-.4cm}{-.4cm}}
    \pgfusepath{draw} % draw rectangle
    \pgfpathmoveto{\pgfpoint{0cm}{.15cm}}
    \pgfpathlineto{\pgfpoint{0cm}{-.15cm}}
    \pgfpathmoveto{\pgfpoint{-.15cm}{0cm}}
    \pgfpathlineto{\pgfpoint{.15cm}{0cm}}
    \pgfusepath{draw}
  }
}

% 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}}

  \foregroundpath{
    \pgfpathrectanglecorners{\pgfpoint{.4cm}{.4cm}}{\pgfpoint{-.4cm}{-.4cm}}
    \pgfusepath{draw} % draw rectangle
    \pgfpathmoveto{\pgfpoint{-.15cm}{0cm}}
    \pgfpathlineto{\pgfpoint{.15cm}{0cm}}
    \pgfusepath{draw}
  }
}

\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, \rpgicons@diceiconfg, font={\footnotesize}] (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}}

  \foregroundpath{
    \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}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}}
    \pgfusepath{draw} % draw shape
   }
}

% 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}}

  \foregroundpath{
    \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}}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}}
    \pgfusepath{draw} % draw shape
  }
}

\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] (0cm,0cm) {};
    \else
      \node[#2, \rpgicons@abilityiconfg, scale=.333] (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] (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}}

  \foregroundpath{
    \pgfpathmoveto{\pgfpoint{-.4cm}{0cm}}
    \pgfpathlineto{\pgfpoint{.4cm}{0cm}}
    \pgfusepath{draw} % draw shape
    \pgfpathcircle{\pgfpoint{-.4cm}{0cm}}{2pt}
    \pgfusepath{fill} % draw origin
  }
}

% 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}}

  \foregroundpath{
    \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}}
    \pgfusepath{draw} % draw shape
    \pgfpathcircle{\pgfpoint{-.425cm}{0cm}}{2pt}
    \pgfusepath{fill} % draw origin
  }
}

% 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}}

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

% 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}}

  \foregroundpath{
    \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}}
    \pgfusepath{draw} % draw shape
    \pgfpathcircle{\pgfpoint{.1125cm}{-.1125cm}}{2pt}
    \pgfusepath{fill} % draw origin
  }
}

% 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}}

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

% 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}}

  \foregroundpath{
    \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}}
    \pgfusepath{draw} % draw shape
    \pgfpathcircle{\pgfpoint{0cm}{-.2125cm}}{2pt}
    \pgfusepath{fill} % draw origin
  }
}

% 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}}

  \foregroundpath{
    \pgfpathmoveto{\pgfpoint{-.35cm}{0cm}}
    \pgfpatharc{180}{-115}{.35cm}
    \pgfpathlineto{\pgfpoint{-.4cm}{-.4cm}}
    \pgfpathlineto{\pgfpointpolar{215}{.35cm}}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \pgfpathmoveto{\pgfpoint{-.425cm}{0cm}}
    \pgfpatharc{0}{270}{-.425cm and -.2cm}
    \pgfpathmoveto{\pgfpoint{0cm}{-.425cm}}
    \pgfpatharc{90}{360}{-.2cm and -.425cm}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}}
    \pgfusepath{draw} % draw shape
  }
}

\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] (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}}

  \foregroundpath{
    \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}}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \pgfpathmoveto{\pgfpointpolar{210}{.25cm}}
    \pgfpatharc{210}{-30}{.25cm}
    \pgfpatharc{150}{390}{.1cm}
    \pgfpathmoveto{\pgfpointpolar{210}{.25cm}}
    \pgfpatharc{390}{150}{.1cm}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}
    \pgfusepath{draw} % draw shape
  }
}

\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, scale=.225, \rpgicons@spellschooliconfg] (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}}

  \foregroundpath{
    \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}}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \pgfpathmoveto{\pgfpoint{0cm}{.425cm}}
    \pgfpathlineto{\pgfpoint{-.25cm}{-.15cm}}
    \pgfpathlineto{\pgfpoint{.25cm}{.15cm}}
    \pgfpathlineto{\pgfpoint{0cm}{-.425cm}}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \pgfpathmoveto{\pgfpoint{0cm}{.125cm}}
    \pgfpatharc{0}{225}{.2cm}
    \pgfpathlineto{\pgfpoint{0cm}{-.375cm}}
    \pgfpathmoveto{\pgfpoint{0cm}{.125cm}}
    \pgfpatharc{180}{-45}{.2cm}
    \pgfpathlineto{\pgfpoint{0cm}{-.375cm}}
    \pgfusepath{draw} % draw shape
  }
}

\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] (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}}

  \foregroundpath{
    \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}}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}}}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \pgfpathmoveto{\pgfpoint{-.225cm}{-.425cm}}
    \pgflineto{\pgfpoint{-.425cm}{-.225cm}}
    \pgflineto{\pgfpoint{-.3cm}{-.1cm}}
    \pgflineto{\pgfpoint{-.3cm}{.125cm}}
    \pgflineto{\pgfpoint{0cm}{.425cm}}
    \pgfpatharc{405}{315}{.1cm}
    \pgflineto{\pgfpoint{-.15cm}{.1cm}}
    \pgflineto{\pgfpoint{-.15cm}{-.05cm}}
    \pgfpatharc{180}{360}{.05cm}
    \pgflineto{\pgfpoint{-.05cm}{0cm}}
    \pgfpatharc{180}{90}{.1cm}
    \pgflineto{\pgfpoint{.05cm}{-.1cm}}
    \pgfpatharc{360}{315}{.125cm}
    \pgfpathclose
    \pgfpathmoveto{\pgfpoint{-.225cm}{-.25cm}}
    \pgflineto{\pgfpoint{-.325cm}{-.15cm}}
    \pgfpathmoveto{\pgfpoint{.2cm}{.2cm}}
    \pgfpatharc{180}{360}{.1cm}
    \pgfpatharc{0}{45}{.1cm}
    \pgfpatharc{225}{180}{.2cm}
    \pgfpathcircle{\pgfpoint{.3cm}{-.075cm}}{.075cm}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \pgfpathmoveto{\pgfpoint{-.25cm}{-.425cm}}
    \pgflineto{\pgfpoint{.025cm}{-.425cm}}
    \pgflineto{\pgfpoint{.325cm}{-.125cm}}
    \pgfpatharc{45}{135}{.1cm}
    \pgflineto{\pgfpoint{0cm}{-.275cm}}
    \pgflineto{\pgfpoint{-.15cm}{-.275cm}}
    \pgfpatharc{270}{90}{.05cm}
    \pgflineto{\pgfpoint{-.1cm}{-.175cm}}
    \pgfpatharc{270}{360}{.1cm}
    \pgflineto{\pgfpoint{-.2cm}{-.075cm}}
    \pgfpatharc{90}{135}{.125cm}
    \pgflineto{\pgfpoint{-.425cm}{-.25cm}}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \pgfpathmoveto{\pgfpoint{-.25cm}{-.425cm}}
    \pgflineto{\pgfpoint{.025cm}{-.425cm}}
    \pgflineto{\pgfpoint{.325cm}{-.125cm}}
    \pgfpatharc{45}{135}{.1cm}
    \pgflineto{\pgfpoint{0cm}{-.275cm}}
    \pgflineto{\pgfpoint{-.15cm}{-.275cm}}
    \pgfpatharc{270}{90}{.05cm}
    \pgflineto{\pgfpoint{-.1cm}{-.175cm}}
    \pgfpatharc{270}{360}{.1cm}
    \pgflineto{\pgfpoint{-.2cm}{-.075cm}}
    \pgfpatharc{90}{135}{.125cm}
    \pgflineto{\pgfpoint{-.425cm}{-.25cm}}
    \pgfpathmoveto{\pgfpoint{.25cm}{.425cm}}
    \pgflineto{\pgfpoint{-.025cm}{.425cm}}
    \pgflineto{\pgfpoint{-.325cm}{.125cm}}
    \pgfpatharc{225}{315}{.1cm}
    \pgflineto{\pgfpoint{0cm}{.275cm}}
    \pgflineto{\pgfpoint{.15cm}{.275cm}}
    \pgfpatharc{450}{270}{.05cm}
    \pgflineto{\pgfpoint{.1cm}{.175cm}}
    \pgfpatharc{90}{180}{.1cm}
    \pgflineto{\pgfpoint{.2cm}{.075cm}}
    \pgfpatharc{270}{315}{.125cm}
    \pgflineto{\pgfpoint{.425cm}{.25cm}}
    \pgfusepath{draw} % draw shape
  }
}

\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] (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}}

  \foregroundpath{
    \pgfpathmoveto{\pgfpoint{-.425cm}{-.225cm}}
    \pgflineto{\pgfpoint{-.225cm}{-.425cm}}
    \pgflineto{\pgfpoint{-.1cm}{-.3cm}}
    \pgflineto{\pgfpoint{.125cm}{-.3cm}}
    \pgflineto{\pgfpoint{.425cm}{0cm}}
    \pgfpatharc{45}{135}{.1cm}
    \pgflineto{\pgfpoint{.1cm}{-.15cm}}
    \pgflineto{\pgfpoint{-.05cm}{-.15cm}}
    \pgfpatharc{270}{90}{.05cm}
    \pgflineto{\pgfpoint{0cm}{-.05cm}}
    \pgfpatharc{270}{360}{.1cm}
    \pgflineto{\pgfpoint{-.1cm}{.05cm}}
    \pgfpatharc{90}{135}{.125cm}
    \pgfpathclose
    \pgfpathmoveto{\pgfpoint{-.25cm}{-.225cm}}
    \pgflineto{\pgfpoint{-.15cm}{-.325cm}}
    \pgfpathmoveto{\pgfpoint{0cm}{.425cm}}
    \pgflineto{\pgfpoint{.25cm}{.425cm}}
    \pgflineto{\pgfpoint{.25cm}{.275cm}}
    \pgfpatharc{360}{180}{.125cm}
    \pgfpathclose
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}}
    \pgflineto{\pgfpoint{-.25cm}{-.25cm}}
    \pgfpathmoveto{\pgfpoint{0cm}{0cm}}
    \pgflineto{\pgfpoint{.425cm}{.425cm}}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \pgfpathmoveto{\pgfpoint{-.175cm}{-.275cm}}
    \pgfpatharc{180}{360}{.15cm}
    \pgflineto{\pgfpoint{.125cm}{-.225cm}}
    \pgfpatharc{180}{135}{.25cm}
    \pgfpatharc{315}{360}{.25cm}
    \pgfpatharc{0}{180}{.275cm}
    \pgfpathmoveto{\pgfpoint{-.15cm}{-.1cm}}
    \pgfpatharc{-90}{90}{.075cm}
    \pgflineto{\pgfpoint{-.15cm}{.125cm}}
    \pgfpatharc{180}{45}{.15cm}
    \pgfpathmoveto{\pgfpoint{-.425cm}{-.425cm}}
    \pgflineto{\pgfpoint{-.2cm}{-.2cm}}
    \pgfpathmoveto{\pgfpoint{0cm}{0cm}}
    \pgflineto{\pgfpoint{.425cm}{.425cm}}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \pgfpathcircle{\pgfpoint{0cm}{0cm}}{.425cm}
    \pgfpathmoveto{\pgfpoint{-.175cm}{-.225cm}}
    \pgfpatharc{180}{0}{.175cm}
    \pgfpathclose
    \pgfpathcircle{\pgfpoint{-.175cm}{.125cm}}{.075cm}
    \pgfpathcircle{\pgfpoint{.175cm}{.125cm}}{.075cm}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \pgfpathmoveto{\pgfpoint{-.175cm}{-.275cm}}
    \pgfpatharc{180}{360}{.15cm}
    \pgflineto{\pgfpoint{.125cm}{-.225cm}}
    \pgfpatharc{180}{135}{.25cm}
    \pgfpatharc{315}{360}{.25cm}
    \pgfpatharc{0}{180}{.275cm}
    \pgfpathmoveto{\pgfpoint{-.15cm}{-.1cm}}
    \pgfpatharc{-90}{90}{.075cm}
    \pgflineto{\pgfpoint{-.15cm}{.125cm}}
    \pgfpatharc{180}{45}{.15cm}
    \pgfusepath{draw} % draw shape
  }
}

% 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}}

  \foregroundpath{
    \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}
    \pgfusepath{draw} % draw shape
  }
}

\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] (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] (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] (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] (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] (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] (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

\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 }
      }
  }

}

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

\NewDocumentCommand{\rpgiconsroll}{ m }{
    \rpgicons_roll_syntax_parse:n {#1}
}

\ExplSyntaxOff

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

\endinput</pre></body></html>