diff options
author | Karl Berry <karl@freefriends.org> | 2024-04-29 20:31:16 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2024-04-29 20:31:16 +0000 |
commit | 3f411203eb6e27a3662b30501d3e9ff747cf632a (patch) | |
tree | e47e34d0240c128d239eee1890e43f58d8cea782 /Master/texmf-dist/tex/latex/rpgicons/rpgicons-pgf.sty | |
parent | f4aedad08f1d45cfb3aaca3884d9aa56ecf30ce0 (diff) |
rpgicons (29apr24)
git-svn-id: svn://tug.org/texlive/trunk@71129 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/rpgicons/rpgicons-pgf.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/rpgicons/rpgicons-pgf.sty | 2596 |
1 files changed, 2596 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/rpgicons/rpgicons-pgf.sty b/Master/texmf-dist/tex/latex/rpgicons/rpgicons-pgf.sty new file mode 100644 index 00000000000..2b235beb48f --- /dev/null +++ b/Master/texmf-dist/tex/latex/rpgicons/rpgicons-pgf.sty @@ -0,0 +1,2596 @@ +% File: rpgicons-pgf.sty +% Copyright 2024 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}[2024-04-28 rpg Icons Package (PGF Variant) (1.8.2)] + +% provide pics option +\newif\ifrpgicons@pics\rpgicons@picsfalse +\DeclareOption{pics}{\rpgicons@picstrue} +\ProcessOptions\relax + +\RequirePackage{tikz} +\newlength{\rpgicons@beforesep} +\newlength{\rpgicons@aftersep} +\newlength{\rpgicons@baseline} + +\def\rpgicons@allshapes{% + twoside, fourside, sixside, eightside, tenside, twelveside, twentyside, hundredside, + fudge, sixside one, sixside two, sixside three, sixside four, sixside five, + sixside six, sixside seven, sixside eight, sixside nine, fudge plus, fudge minus, + strength, dexterity, dexterity alt, constitution, intelligence, wisdom, charisma, + resilience, sanity, perception, luck, armor, proficiency, + linear, conic, quadratic, cubic, spheric, cylindric, verbal, somatic, material, focus, + abjuration, conjuration, divination, enchantment, evocation, illusion, necromancy, transmutation, + acid, bludgeoning, cold, fire, force, lightning, necrotic, piercing, poison, psychic, + radiant, slashing, thunder, healing, + melee, ranged, magic, singlehanded, doublehanded, + buff, blinded, charmed, deafened, exhausted, frightened, grappled, incapacitated, invisible, + paralyzed, petrified, poisoned, prone, restrained, stunned, unconscious, hearing, seeing% +} + +\tikzset{ + rpg icons/background color/.code={ + \colorlet{rpgicons@bg}{#1} + }, + rpg icons/background color={white}, + rpg icons/before sep/.code={ + \setlength{\rpgicons@beforesep}{#1} + }, + rpg icons/before sep={.05em}, + rpg icons/after sep/.code={ + \setlength{\rpgicons@aftersep}{#1} + }, + rpg icons/after sep={.05em}, + rpg icons/baseline/.code={ + \setlength{\rpgicons@baseline}{#1} + }, + rpg icons/baseline={-3.5pt}, + rpg icons/.style={}, + rpg icons/.append style={ + every node/.style={ + line cap=round, + line join=round + } + }, + % + rpg icons/every die/.style={}, + rpg icons/every ability/.style={}, + rpg icons/every saving/.style={}, + rpg icons/every spell/.style={}, + rpg icons/every spellschool/.style={}, + rpg icons/every damage/.style={}, + rpg icons/every attack/.style={}, + rpg icons/every condition/.style={}, + % + rpg icons/create every style/.code={ + \tikzset{ + rpg icons/every #1/.style={} + } + }, + rpg icons/create every style/.list/.expanded={% + \rpgicons@allshapes% + } +} + +% 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: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: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
\ No newline at end of file |