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 | |
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')
-rw-r--r-- | Master/texmf-dist/tex/latex/rpgicons/rpgicons-l3.sty | 2025 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/rpgicons/rpgicons-pgf.sty | 2596 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/rpgicons/rpgicons.sty | 33 |
3 files changed, 4654 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/rpgicons/rpgicons-l3.sty b/Master/texmf-dist/tex/latex/rpgicons/rpgicons-l3.sty new file mode 100644 index 00000000000..491d05b17d0 --- /dev/null +++ b/Master/texmf-dist/tex/latex/rpgicons/rpgicons-l3.sty @@ -0,0 +1,2025 @@ +% File: rpgicons-l3.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'. +% +\ProvidesExplPackage {rpgicons-l3} {2024-04-28} {1.8.2} + {rpg Icons Package (l3 Variant)} + +\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 +} + +\bool_new:N \l__rpgicons_compat_mode_bool +\bool_new:N \l__rpgicons_use_opacity_bool +\keys_define:nn { rpgicons / package ~ options } { + compat .bool_set:N = \l__rpgicons_compat_mode_bool , + compat .default:n = { true } , + opacity .bool_set:N = \l__rpgicons_use_opacity_bool , + opacity .default:n = { true } , +} +\ProcessKeyOptions [ rpgicons / package ~ options ] + +\msg_new:nnn { rpgicons } { documentmetadata-missing } { + \msg_warning_text:n { dnicons } \iow_newline: + In ~ order ~ to ~ use ~ opacity, ~ \token_to_str:N \DocumentMetadata \c_space_tl must ~ be ~ set. +} +\msg_new:nnn { rpgicons } { opacity-option-missing } { + \msg_warning_text:n { dnicons } \iow_newline: + In ~ order ~ to ~ use ~ opacity, ~ the ~ package ~ must ~ be ~ loaded ~ with ~ the ~ `opacity' ~ option. +} +\msg_new:nnn { rpgicons } { l3draw-old } { + \msg_warning_text:n { dnicons } \iow_newline: + The ~ version ~ of ~ the ~ `l3draw' ~ package ~ is ~ older ~ than ~ 2024-03-14. ~ + Consider ~ using ~ the ~ `compat' ~ option. +} + +\bool_if:NT \l__rpgicons_use_opacity_bool { + \IfDocumentMetadataTF { } { + \msg_error:nn { rpgicons } { documentmetadata-missing } + } + \RequirePackage { l3opacity } + \bool_if:NT \l__rpgicons_compat_mode_bool { + % l3opacity fix + \tl_set:Nn \l__opacity_backend_fill_tl { 1 } + \tl_set:Nn \l__opacity_backend_stroke_tl { 1 } + } +} + +\RequirePackage { l3draw } + +\IfPackageAtLeastTF { l3draw } { 2024/03/14 } { } { + \bool_if:NF \l__rpgicons_compat_mode_bool { + \msg_warning:nn { rpgicons } { l3draw-old } + } +} + +% DICE + +\cs_new:Npn \rpgicons_draw_shape_twoside: { + \draw_path_ellipse:nnn { 0cm , 0cm } { 0cm , .25cm } { .425cm , 0cm } +} + +\cs_new:Npn \rpgicons_draw_shape_fourside: { + \draw_path_moveto:n { 0cm , .35cm } + \draw_path_lineto:n { .433cm , -.4cm } + \draw_path_lineto:n { -.433cm , -.4cm } + \draw_path_close: +} + +\cs_new:Npn \rpgicons_draw_shape_sixside: { + \bool_if:NTF \l__rpgicons_compat_mode_bool { + % l3draw rectangle fix + \draw_path_moveto:n { -.4cm , -.4cm } + \draw_path_lineto:n { -.4cm , .4cm } + \draw_path_lineto:n { .4cm , .4cm } + \draw_path_lineto:n { .4cm , -.4cm } + \draw_path_close: + } { + \draw_path_rectangle_corners:nn { -.4cm , -.4cm } { .4cm , .4cm } + } +} + +\cs_new:Npn \rpgicons_draw_shape_eightside: { + \draw_path_moveto:n { 0cm , .5cm } + \draw_path_lineto:n { .433cm , .25cm } + \draw_path_lineto:n { .433cm , -.25cm } + \draw_path_lineto:n { 0cm , -.5cm } + \draw_path_lineto:n { -.433cm , -.25cm } + \draw_path_lineto:n { -.433cm , .25cm } + \draw_path_close: + \draw_path_lineto:n { .433cm , -.25cm } + \draw_path_lineto:n { -.433cm , -.25cm } + \draw_path_close: +} + +\cs_new:Npn \rpgicons_draw_shape_tenside: { + \draw_path_moveto:n { 0cm , .5cm } + \draw_path_lineto:n { .475cm , .1cm } + \draw_path_lineto:n { .475cm , -.1cm } + \draw_path_lineto:n { 0cm , -.5cm } + \draw_path_lineto:n { -.475cm , -.1cm } + \draw_path_lineto:n { -.475cm , .1cm } + \draw_path_close: + \draw_path_lineto:n { .294cm , -.154cm } + \draw_path_lineto:n { 0cm , -.3cm } + \draw_path_lineto:n { -.294cm , -.154cm } + \draw_path_close: + \draw_path_moveto:n { .294cm , -.154cm } + \draw_path_lineto:n { .475cm , -.1cm } + \draw_path_moveto:n { -.475cm , -.1cm } + \draw_path_lineto:n { -.294cm , -.154cm } + \draw_path_moveto:n { 0cm , -.5cm } + \draw_path_lineto:n { 0cm , -.3cm } +} + +\cs_new:Npn \rpgicons_draw_shape_twelveside: { + \draw_path_moveto:n { 0cm , .5cm } + \draw_path_lineto:n { 0.294cm , .405cm } + \draw_path_lineto:n { .475cm , .173cm } + \draw_path_lineto:n { .475cm , -.173cm } + \draw_path_lineto:n { .294cm , -.405cm } + \draw_path_lineto:n { 0cm , -.5cm } + \draw_path_lineto:n { -.294cm , -.405cm } + \draw_path_lineto:n { -.475cm , -.173cm } + \draw_path_lineto:n { -.475cm , .173cm } + \draw_path_lineto:n { -.294cm , .405cm } + \draw_path_close: + \draw_path_moveto:n { 0cm , .349cm } + \draw_path_lineto:n { .332cm , .108cm } + \draw_path_lineto:n { .205cm , -.282cm } + \draw_path_lineto:n { -.205cm , -.282cm } + \draw_path_lineto:n { -.332cm , .108cm } + \draw_path_close: + \draw_path_lineto:n { 0cm , .5cm } + \draw_path_moveto:n { .475cm , .173cm } + \draw_path_lineto:n { .332cm , .108cm } + \draw_path_moveto:n { .294cm , -.405cm } + \draw_path_lineto:n { .205cm , -.282cm } + \draw_path_moveto:n { -.294cm , -.405cm } + \draw_path_lineto:n { -.205cm , -.282cm } + \draw_path_moveto:n { -.475cm , .173cm } + \draw_path_lineto:n { -.332cm , .108cm } +} + +\cs_new:Npn \rpgicons_draw_shape_twentyside: { + \draw_path_moveto:n { 0cm , .5cm } + \draw_path_lineto:n { .454cm , .262cm } + \draw_path_lineto:n { .454cm , -.262cm } + \draw_path_lineto:n { 0cm , -.5cm } + \draw_path_lineto:n { -.454cm , -.262cm } + \draw_path_lineto:n { -.454cm , .262cm } + \draw_path_close: + \draw_path_moveto:n { 0cm , .292cm } + \draw_path_lineto:n { .253cm , -.146cm } + \draw_path_lineto:n { -.253cm , -.146cm } + \draw_path_close: + \draw_path_lineto:n { .454cm , .262cm } + \draw_path_lineto:n { .253cm , -.146cm } + \draw_path_lineto:n { 0cm , -.5cm } + \draw_path_lineto:n { -.253cm , -.146cm } + \draw_path_lineto:n { -.454cm , .262cm } + \draw_path_close: + \draw_path_lineto:n { 0cm , .5cm } + \draw_path_moveto:n { .454cm , -.262cm } + \draw_path_lineto:n { .253cm , -.146cm } + \draw_path_moveto:n { -.454cm , -.262cm } + \draw_path_lineto:n { -.253cm , -.146cm } +} + +\cs_new:Npn \rpgicons_draw_shape_hundredside: { + \draw_path_circle:nn { 0cm, 0cm } { .425cm } + \draw_path_moveto:n { .425cm , 0cm } + \draw_path_arc:nnnn { 180 } { 50 } { -.425cm } { -.2cm } + \draw_path_moveto:n { 0cm , -.425cm } + \draw_path_arc:nnnn { 270 } { 140 } { -.2cm } { .425cm } +} + +\clist_new:N \l_rpgnicons_pips_clist +\fp_new:N \l_rpgnicons_pips_coordx_fp +\fp_new:N \l_rpgnicons_pips_coordy_fp +\cs_new:Npn \rpgicons_draw_shape_sixside_pips:n #1 { + \str_case:nn {#1} { + { one } { \clist_set:Nn \l_rpgnicons_pips_clist { + { 0cm , 0cm } + } } + { two } { \clist_set:Nn \l_rpgnicons_pips_clist { + { -.2cm , .2cm } , { .2cm , -.2cm } + } } + { three } { \clist_set:Nn \l_rpgnicons_pips_clist { + { -.2cm , .2cm } , { 0cm , 0cm } , { .2cm , -.2cm } + } } + { four } { \clist_set:Nn \l_rpgnicons_pips_clist { + { -.2cm , .2cm } , { .2cm , .2cm } , + { -.2cm , -.2cm } , { .2cm , -.2cm } + } } + { five } { \clist_set:Nn \l_rpgnicons_pips_clist { + { -.2cm , .2cm } , { .2cm , .2cm } , + { 0cm , 0cm } , + { -.2cm , -.2cm } , { .2cm , -.2cm } + } } + { six } { \clist_set:Nn \l_rpgnicons_pips_clist { + { -.2cm , .2cm } , { .2cm , .2cm } , + { -.2cm , 0cm } , { .2cm , 0cm } , + { -.2cm , -.2cm } , { .2cm , -.2cm } + } } + { seven } { \clist_set:Nn \l_rpgnicons_pips_clist { + { -.2cm , .2cm } , { .2cm , .2cm } , + { -.2cm , 0cm } , { 0cm , 0cm } , { .2cm , 0cm } , + { -.2cm , -.2cm } , { .2cm , -.2cm } + } } + { eight } { \clist_set:Nn \l_rpgnicons_pips_clist { + { -.2cm , .2cm } , { 0cm , .2cm } , { .2cm , .2cm } , + { -.2cm , 0cm } , { .2cm , 0cm } , + { -.2cm , -.2cm } , { 0cm , -.2cm } , { .2cm , -.2cm } + } } + { nine } { \clist_set:Nn \l_rpgnicons_pips_clist { + { -.2cm , .2cm } , { 0cm , .2cm } , { .2cm , .2cm } , + { -.2cm , 0cm } , { 0cm , 0cm } , { .2cm , 0cm } , + { -.2cm , -.2cm } , { 0cm , -.2cm } , { .2cm , -.2cm } + } } + } + \clist_map_inline:Nn \l_rpgnicons_pips_clist { + \fp_set:Nn \l_rpgnicons_pips_coordx_fp { \clist_item:nn {##1} { 1 } } + \fp_set:Nn \l_rpgnicons_pips_coordy_fp { \clist_item:nn {##1} { 2 } } + \draw_path_circle:nn { \l_rpgnicons_pips_coordx_fp , \l_rpgnicons_pips_coordy_fp } { 2pt } + } + \draw_path_use_clear:n { fill } + \rpgicons_draw_shape_sixside: +} + +\cs_new:Npn \rpgicons_draw_shape_fudge: { + \rpgicons_draw_shape_sixside: + \draw_path_moveto:n { -.15cm , .1cm } + \draw_path_lineto:n { .15cm , .1cm } + \draw_path_moveto:n { 0cm , .25cm } + \draw_path_lineto:n { 0cm , -.05cm } + \draw_path_moveto:n { -.15cm , -.2cm } + \draw_path_lineto:n { .15cm , -.2cm } +} + +\cs_new:Npn \rpgicons_draw_shape_fudge_plus: { + \rpgicons_draw_shape_sixside: + \draw_path_moveto:n { 0cm , .15cm } + \draw_path_lineto:n { 0cm , -.15cm } + \draw_path_moveto:n { -.15cm , 0cm } + \draw_path_lineto:n { .15cm , 0cm } +} + +\cs_new:Npn \rpgicons_draw_shape_fudge_minus: { + \rpgicons_draw_shape_sixside: + \draw_path_moveto:n { -.15cm , 0cm } + \draw_path_lineto:n { .15cm , 0cm } +} + +% ABILITIES + +\cs_new:Npn \rpgicons_draw_shape_strength: { + \draw_path_moveto:n { ( 0cm , -.075cm ) + ( \draw_point_polar:nn { .425cm } { 90 } ) } + \draw_path_arc:nnn { 90 } { 60 } { .425cm } + \draw_path_arc:nnn { 200 } { -40 } { .1cm } + \draw_path_moveto:n { ( 0cm , -.075cm ) + ( \draw_point_polar:nn { .425cm } { 45 } ) } + \draw_path_arc:nnn { 45 } { -20 } { .425cm } + \draw_path_arc:nnn { -50 } { -80 } { .35cm } + \draw_path_moveto:n { ( 0cm , -.075cm ) + ( \draw_point_polar:nn { .425cm } { 90 } ) } + \draw_path_arc:nnn { 90 } { 120 } { .425cm } + \draw_path_arc:nnn { -20 } { 220 } { .1cm } + \draw_path_moveto:n { ( 0cm , -.075cm ) + ( \draw_point_polar:nn { .425cm } { 135 } ) } + \draw_path_arc:nnn { 135 } { 200 } { .425cm } + \draw_path_arc:nnn { 230 } { 260 } { .35cm } + \draw_path_moveto:n { -.2cm , -.025cm } + \draw_path_lineto:n { -.1cm , -.05cm } + \draw_path_lineto:n { -.125cm , -.325cm } + \draw_path_arc:nnnn { 180 } { 360 } { .125cm } { .1cm } + \draw_path_lineto:n { .1cm , -.05cm } + \draw_path_lineto:n { .2cm , -.025cm } + \draw_path_moveto:n { 0cm , -.3cm } + \draw_path_arc:nnn { 90 } { 70 } { .1cm } + \draw_path_moveto:n { 0cm , -.3cm } + \draw_path_arc:nnn { 90 } { 110 } { .1cm } +} + +\cs_new:Npn \rpgicons_draw_shape_constitution: { + \draw_path_moveto:n { 0cm , .25cm } + \draw_path_lineto:n { .125cm , .25cm } + \draw_path_arc:nnn { -90 } { -30 } { .325cm } + \draw_path_arc:nnn { 0 } { -80 } { .3cm } + \draw_path_moveto:n { 0cm , .25cm } + \draw_path_lineto:n { -.125cm , .25cm } + \draw_path_arc:nnn { 270 } { 210 } { .325cm } + \draw_path_arc:nnn { 180 } { 260 } { .3cm } + \draw_path_moveto:n { .325cm , .1cm } + \draw_path_lineto:n { .425cm , .075cm } + \draw_path_arc:nnnn { 0 } { -90 } { .175cm } { .1cm } + \draw_path_lineto:n { .2cm , -.15cm } + \draw_path_moveto:n { -.325cm , .1cm } + \draw_path_lineto:n { -.425cm , .075cm } + \draw_path_arc:nnnn { 180 } { 270 } { .175cm } { .1cm } + \draw_path_lineto:n { -.2cm , -.15cm } + \draw_path_moveto:n { -.15cm , -.225cm } + \draw_path_arc:nnn { 90 } { 270 } { .1cm } + \draw_path_lineto:n { .15cm , -.425cm } + \draw_path_arc:nnn { -90 } { 90 } { .1cm } + \draw_path_moveto:n { -.125cm , -.35cm } + \draw_path_arc:nnn { -90 } { 0 } { .05cm } + \draw_path_moveto:n { .125cm , -.35cm } + \draw_path_arc:nnn { 90 } { 0 } { -.05cm } + \draw_path_moveto:n { -.125cm , -.025cm } + \draw_path_lineto:n { -.075cm , -.05cm } + \draw_path_lineto:n { -.075cm , -.1cm } + \draw_path_moveto:n { .125cm , -.025cm } + \draw_path_lineto:n { .075cm , -.05cm } + \draw_path_lineto:n { .075cm , -.1cm } +} + +\cs_new:Npn \rpgicons_draw_shape_wisdom: { + \draw_path_moveto:n { 0cm , .175cm } + \draw_path_arc:nnn { 60 } { 90 } { .425cm } + \draw_path_arc:nnn { 270 } { 240 } { .425cm } + \draw_path_moveto:n { 0cm , .175cm } + \draw_path_arc:nnn { 120 } { 90 } { .425cm } + \draw_path_arc:nnn { 270 } { 300 } { .425cm } + \draw_path_circle:nn { -.175cm , 0cm } { .075cm } + \draw_path_circle:nn { .175cm , 0cm } { .075cm } + \draw_path_moveto:n { .075cm , -.125cm } + \draw_path_lineto:n { 0cm , -.325cm } + \draw_path_lineto:n { -.075cm , -.125cm } + \draw_path_moveto:n { -.375cm , .125cm } + \draw_path_arc:nnn { 150 } { 270 } { .25cm } + \draw_path_moveto:n { .375cm , .125cm } + \draw_path_arc:nnn { 30 } { -90 } { .25cm } +} + +\cs_new:Npn \rpgicons_draw_shape_charisma: { + \draw_path_moveto:n { 0cm , .15cm } + \draw_path_arc:nnnn { 270 } { 190 } { .15cm } { .1cm } + \draw_path_arc:nnnn { 10 } { 90 } { .175cm } { .225cm } + \draw_path_arc:nnnn { 40 } { 0 } { .125cm } { .175cm } + \draw_path_moveto:n { 0cm , .15cm } + \draw_path_arc:nnnn { 270 } { 350 } { .15cm } { .1cm } + \draw_path_arc:nnnn { 170 } { 90 } { .175cm } { .225cm } + \draw_path_arc:nnnn { 140 } { 180 } { .125cm } { .175cm } + \draw_path_moveto:n { -.2cm , .125cm } + \draw_path_arc:nnnn { 0 } { 90 } { .175cm } { .1cm } + \draw_path_arc:nnnn { 180 } { 270 } { .15cm } { .2cm } + \draw_path_lineto:n { -.25cm , -.05cm } + \draw_path_arc:nnn { 40 } { 0 } { .45cm } + \draw_path_lineto:n { 0cm , -.425cm } + \draw_path_moveto:n { .2cm , .125cm } + \draw_path_arc:nnnn { 180 } { 90 } { .175cm } { .1cm } + \draw_path_arc:nnnn { 0 } { -90 } { .15cm } { .2cm } + \draw_path_lineto:n { .25cm , -.05cm } + \draw_path_arc:nnn { 140 } { 180 } { .45cm } + \draw_path_lineto:n { 0cm , -.425cm } + \draw_path_moveto:n { -.05cm , -.275cm } + \draw_path_arc:nnn { -30 } { 60 } { .05cm } + \draw_path_moveto:n { .05cm , -.275cm } + \draw_path_arc:nnn { 210 } { 120 } { .05cm } + \draw_path_moveto:n { -.125cm , -.05cm } + \draw_path_lineto:n { -.05cm , -.075cm } + \draw_path_moveto:n { .125cm , -.05cm } + \draw_path_lineto:n { .05cm , -.075cm } + \draw_path_moveto:n { -.35cm , -.05cm } + \draw_path_lineto:n { -.425cm , -.05cm } + \draw_path_arc:nnn { 30 } { -30 } { .15cm } + \draw_path_arc:nnn { 80 } { 10 } { .15cm } + \draw_path_lineto:n { -.25cm , -.275cm } + \draw_path_moveto:n { .35cm , -.05cm } + \draw_path_lineto:n { .425cm , -.05cm } + \draw_path_arc:nnn { 150 } { 210 } { .15cm } + \draw_path_arc:nnn { 100 } { 170 } { .15cm } + \draw_path_lineto:n { .25cm , -.275cm } +} + +\cs_new:Npn \rpgicons_draw_shape_dexterity: { + \draw_path_moveto:n { ( 0cm , -.075cm ) + ( \draw_point_polar:nn { .425cm } { 90 } ) } + \draw_path_arc:nnn { 90 } { 65 } { .425cm } + \draw_path_arc:nnnn { 200 } { 90 } { .1cm } { .075cm } + \draw_path_arc:nnnn { 90 } { -30 } { .1cm } { .075cm } + \draw_path_moveto:n { ( 0cm , -.075cm ) + ( \draw_point_polar:nn { .425cm } { 45 } ) } + \draw_path_arc:nnnn { 45 } { -20 } { .425cm } { .35cm } + \draw_path_arc:nnn { 110 } { 160 } { .175cm } + \draw_path_moveto:n { ( 0cm , -.075cm ) + ( \draw_point_polar:nn { .425cm } { 90 } ) } + \draw_path_arc:nnn { 90 } { 115 } { .425cm } + \draw_path_arc:nnnn { -20 } { 90 } { .1cm } { .075cm } + \draw_path_arc:nnnn { 90 } { 220 } { .1cm } { .075cm } + \draw_path_moveto:n { ( 0cm , -.075cm ) + ( \draw_point_polar:nn { .425cm } { 135 } ) } + \draw_path_arc:nnnn { 135 } { 200 } { .425cm } { .35cm } + \draw_path_arc:nnn { 70 } { 20 } { .175cm } + \draw_path_moveto:n { -.075cm , -.175cm } + \draw_path_arc:nnnn { 180 } { 360 } { .075cm } { .05cm } + \draw_path_moveto:n { 0cm , -.225cm } + \draw_path_lineto:n { 0cm , -.25cm } + \draw_path_moveto:n { -.2cm , .025cm } + \draw_path_lineto:n { -.075cm , 0cm } + \draw_path_lineto:n { -.125cm , -.075cm } + \draw_path_moveto:n { .125cm , -.075cm } + \draw_path_lineto:n { .075cm , 0cm } + \draw_path_lineto:n { .2cm , .025cm } + \draw_path_moveto:n { 0cm , -.25cm } + \draw_path_arc:nnnn { 360 } { 140 } { .1cm } { .075cm } + \draw_path_moveto:n { 0cm , -.25cm } + \draw_path_arc:nnnn { 180 } { 400 } { .1cm } { .075cm } + \draw_path_moveto:n { -.1cm , -.325cm } + \draw_path_lineto:n { -.1cm , -.375cm } + \draw_path_arc:nnnn { 180 } { 360 } { .1cm } { .05cm } + \draw_path_lineto:n { .1cm , -.325cm } +} + +\cs_new:Npn \rpgicons_draw_shape_dexterity_alt: { + \draw_path_moveto:n { ( 0cm , -.15cm ) + ( \draw_point_polar:nn { .425cm } { 90 } ) } + \draw_path_arc:nnn { 90 } { 75 } { .425cm } + \draw_path_moveto:n { ( 0cm , -.15cm ) + ( \draw_point_polar:nn { .425cm } { 90 } ) } + \draw_path_arc:nnn { 90 } { 105 } { .425cm } + \draw_path_moveto:n { .125cm , .175cm } + \draw_path_lineto:n { .375cm , .425cm } + \draw_path_arc:nnn { 30 } { -20 } { .25cm } + \draw_path_lineto:n { ( 0cm , -.1cm ) + ( \draw_point_polar:nn { .425cm } { 30 } ) } + \draw_path_arc:nnnn { 30 } { -45 } { .425cm } { .35cm } + \draw_path_moveto:n { -.125cm , .175cm } + \draw_path_lineto:n { -.375cm , .425cm } + \draw_path_arc:nnn { 150 } { 200 } { .25cm } + \draw_path_lineto:n { ( 0cm , -.1cm ) + ( \draw_point_polar:nn { .425cm } { 150 } ) } + \draw_path_arc:nnnn { 150 } { 225 } { .425cm } { .35cm } + \draw_path_moveto:n { .075cm , -.075cm } + \draw_path_arc:nnnn { 170 } { 90 } { .15cm } { .05cm } + \draw_path_moveto:n { -.075cm , -.075cm } + \draw_path_arc:nnnn { 10 } { 90 } { .15cm } { .05cm } + \draw_path_moveto:n { 0cm , -.275cm } + \draw_path_arc:nnnn { 0 } { 90 } { .075cm } { .05cm } + \draw_path_moveto:n { 0cm , -.275cm } + \draw_path_arc:nnnn { 180 } { 90 } { .075cm } { .05cm } + \draw_path_moveto:n { 0cm , -.275cm } + \draw_path_arc:nnnn { 360 } { 180 } { .1cm } { .075cm } + \draw_path_moveto:n { 0cm , -.275cm } + \draw_path_arc:nnnn { 180 } { 360 } { .1cm } { .075cm } + \draw_path_moveto:n { -.1cm , -.35cm } + \draw_path_lineto:n { -.1cm , -.375cm } + \draw_path_arc:nnnn { 180 } { 360 } { .1cm } { .05cm } + \draw_path_lineto:n { .1cm , -.35cm } +} + +\cs_new:Npn \rpgicons_draw_shape_intelligence: { + \draw_path_moveto:n { ( 0cm , -.2cm ) + ( \draw_point_polar:nn { .425cm } { 90 } ) } + \draw_path_arc:nnn { 90 } { 60 } { .25cm } + \draw_path_lineto:n { ( 0cm , -.1cm ) + ( \draw_point_polar:nn { .6cm } { 60 } ) } + \draw_path_arc:nnn { 40 } { -2.5 } { .425cm } + \draw_path_moveto:n { ( 0cm , -.2cm ) + ( \draw_point_polar:nn { .425cm } { 90 } ) } + \draw_path_arc:nnn { 90 } { 120 } { .25cm } + \draw_path_lineto:n { ( 0cm , -.1cm ) + ( \draw_point_polar:nn { .6cm } { 120 } ) } + \draw_path_arc:nnn { 140 } { 182.5 } { .425cm } + \draw_path_moveto:n { ( 0cm , -.2cm ) + ( \draw_point_polar:nn { .425cm } { 45 } ) } + \draw_path_arc:nnn { 45 } { 0 } { .425cm } + \draw_path_lineto:n { .2cm , -.275cm } + \draw_path_moveto:n { ( 0cm , -.2cm ) + ( \draw_point_polar:nn { .425cm } { 135 } ) } + \draw_path_arc:nnn { 135 } { 180 } { .425cm } + \draw_path_lineto:n { -.2cm , -.275cm } + \draw_path_moveto:n { -.2cm , -.075cm } + \draw_path_lineto:n { -.1cm , -.1cm } + \draw_path_lineto:n { -.075cm , -.375cm } + \draw_path_arc:nnnn { 180 } { 360 } { .075cm } { .05cm } + \draw_path_lineto:n { .1cm , -.1cm } + \draw_path_lineto:n { .2cm , -.075cm } +} + +\cs_new:Npn \rpgicons_draw_shape_resilience: { + \draw_path_moveto:n { ( -.425cm , -.475cm ) + ( \draw_point_polar:nn { .5cm } { 65 } ) } + \draw_path_arc:nnn { 65 } { 90 } { .5cm } + \draw_path_lineto:n { ( 0cm , -.075cm ) + ( \draw_point_polar:nn { .55cm } { 135 } ) } + \draw_path_arc:nnn { 135 } { 45 } { .55cm } + \draw_path_lineto:n { .425cm , .025cm } + \draw_path_arc:nnn { 90 } { 115 } { .5cm } + \draw_path_moveto:n { .2cm , .3cm } + \draw_path_lineto:n { .125cm , .275cm } + \draw_path_lineto:n { .2cm , .15cm } + \draw_path_moveto:n { .125cm , .075cm } + \draw_path_lineto:n { .05cm , .05cm } + \draw_path_moveto:n { .15cm , -.1cm } + \draw_path_arc:nnn { 200 } { 230 } { .4cm } + \draw_path_moveto:n { -.2cm , .3cm } + \draw_path_lineto:n { -.125cm , .275cm } + \draw_path_lineto:n { -.2cm , .15cm } + \draw_path_moveto:n { -.125cm , .075cm } + \draw_path_lineto:n { -.05cm , .05cm } + \draw_path_moveto:n { -.15cm , -.1cm } + \draw_path_arc:nnn { 340 } { 310 } { .4cm } + \draw_path_moveto:n { -.065cm , -.075cm } + \draw_path_lineto:n { -.045cm , -.425cm } + \draw_path_lineto:n { .045cm , -.425cm } + \draw_path_lineto:n { .065cm , -.075cm } +} + +\cs_new:Npn \rpgicons_draw_shape_sanity: { + \draw_path_moveto:n { ( -.125cm + .175cm * sind(30) , .425cm - .175cm * cosd(30) ) + + ( \draw_point_polar:nn { .175cm } { 210 } ) } + \draw_path_arc:nnn { 210 } { 120 } { .175cm } + \draw_path_lineto:n { \draw_point_polar:nn { .25cm } { 110 } } + \draw_path_arc:nnn { 110 } { 70 } { .25cm } + \draw_path_lineto:n { .125cm , .425cm } + \draw_path_arc:nnn { 420 } { 330 } { .175cm } + \draw_path_moveto:n { .25cm , .1cm } + \draw_path_arc:nnn { 390 } { 305 } { .15cm } + \draw_path_moveto:n { -.25cm , .1cm } + \draw_path_arc:nnn { 150 } { 235 } { .15cm } + \draw_path_moveto:n { -.15cm , .075cm } + \draw_path_lineto:n { -.1cm , .05cm } + \draw_path_lineto:n { -.1cm , .025cm } + \draw_path_moveto:n { .15cm , .075cm } + \draw_path_lineto:n { .1cm , .05cm } + \draw_path_lineto:n { .1cm , .025cm } + \draw_path_moveto:n { ( -.55cm , -.35cm ) + ( \draw_point_polar:nnn { .125cm } { .075cm} { 135 } ) + + ( \draw_point_polar:nn { .55cm } { 20 } ) } + \draw_path_arc:nnn { 380 } { 360 } { .55cm } + \draw_path_arc:nnnn { 135 } { 405 } { .125cm } { .075cm } + \draw_path_arc:nnn { 180 } { 160 } { .55cm } +} + +\cs_new:Npn \rpgicons_draw_shape_perception: { + \draw_path_moveto:n { ( 0cm , .35cm ) + ( \draw_point_polar:nn { .125cm } { 150 } ) } + \draw_path_arc:nnn { 150 } { 390 } { .125cm } + \draw_path_moveto:n { -.3cm , .425cm } + \draw_path_arc:nnnn { 180 } { 360 } { .3cm } { .2cm } + \draw_path_moveto:n { ( 0cm , .425cm ) + ( \draw_point_polar:nnn { .3cm } { .2cm } { 330 } ) } + \draw_path_arc:nnnn { 270 } { 350 } { .15cm } { .1cm } + \draw_path_moveto:n { ( 0cm , .425cm ) + ( \draw_point_polar:nnn { .3cm } { .2cm } { 210 } ) } + \draw_path_arc:nnnn { 270 } { 190 } { .15cm } { .1cm } + \draw_path_moveto:n { -.2cm , .15cm } + \draw_path_lineto:n { -.375cm , .125cm } + \draw_path_arc:nnn { 210 } { 250 } { .225cm } + \draw_path_moveto:n { .2cm , .15cm } + \draw_path_lineto:n { .375cm , .125cm } + \draw_path_arc:nnn { 330 } { 290 } { .225cm } + \draw_path_moveto:n { -.15cm , 0cm } + \draw_path_lineto:n { -.075cm , -.025cm } + \draw_path_lineto:n { -.075cm , -.05cm } + \draw_path_moveto:n { .15cm , 0cm } + \draw_path_lineto:n { .075cm , -.025cm } + \draw_path_lineto:n { .075cm , -.05cm } + \draw_path_moveto:n { ( -.075cm , ( -.35cm + .075cm * ( 2 + sqrt(3) ) ) ) + + ( \draw_point_polar:nnn { .1cm } { .075cm } { 195 } ) } + \draw_path_lineto:n { ( 0cm , -.35cm ) + ( \draw_point_polar:nnn { .1cm } { .075cm } { 195 } ) } + \draw_path_arc:nnnn { 195 } { 345 } { .1cm } { .075cm } + \draw_path_lineto:n { ( .075cm , ( -.35cm + .075cm * ( 2 + sqrt(3) ) ) ) + + ( \draw_point_polar:nnn { .1cm } { .075cm } { 345 } ) } + \draw_path_moveto:n { .025cm , -.325cm } + \draw_path_arc:nnn { 0 } { 180 } { .025cm } +} + +\cs_new:Npn \rpgicons_draw_shape_luck: { + \draw_path_moveto:n { .1cm , .15cm } + \draw_path_lineto:n { .1cm , -.05cm } + \draw_path_arc:nnn { -75 } { -15 } { .425cm } + \draw_path_arc:nnn { 40 } { 85 } { .425cm } + \draw_path_moveto:n { -.1cm , .15cm } + \draw_path_lineto:n { -.1cm , -.05cm } + \draw_path_arc:nnn { -105 } { -165 } { .425cm } + \draw_path_arc:nnn { 140 } { 95 } { .425cm } + \draw_path_moveto:n { ( 0cm , -.05cm ) + ( \draw_point_polar:nn { .425cm } { 15 } ) } + \draw_path_arc:nnnn { 15 } { -55 } { .425cm } { .3cm } + \draw_path_moveto:n { ( 0cm , -.05cm ) + ( \draw_point_polar:nn { .425cm } { 165 } ) } + \draw_path_arc:nnnn { 165 } { 235 } { .425cm } { .3cm } + \draw_path_moveto:n { 0cm , -.175cm } + \draw_path_arc:nnnn { 90 } { 250 } { .175cm } { .125cm } + \draw_path_lineto:n { -.05cm , -.325cm } + \draw_path_moveto:n { 0cm , -.175cm } + \draw_path_arc:nnnn { 90 } { -70 } { .175cm } { .125cm } + \draw_path_lineto:n { .05cm , -.325cm } +} + +\cs_new:Npn \rpgicons_draw_shape_armor: { + \draw_path_moveto:n { -.25cm , -.425cm } + \draw_path_lineto:n { .25cm , -.425cm } + \draw_path_lineto:n { .2cm , -.225cm } + \draw_path_lineto:n { .25cm , .125cm } + \draw_path_lineto:n { .425cm , .125cm } + \draw_path_arc:nnn { 0 } { 90 } { .3cm } + \draw_path_lineto:n { .125cm , .35cm } + \draw_path_arc:nnn { 360 } { 180 } { .125cm } + \draw_path_lineto:n { -.125cm , .425cm } + \draw_path_arc:nnn { 90 } { 180 } { .3cm } + \draw_path_lineto:n { -.25cm , .125cm } + \draw_path_lineto:n { -.2cm , -.225cm } + \draw_path_close: + \draw_path_moveto:n { .125cm , .425cm } + \draw_path_lineto:n { .125cm , .25cm } + \draw_path_arc:nnn { 180 } { 270 } { .125cm } + \draw_path_moveto:n { -.125cm , .425cm } + \draw_path_lineto:n { -.125cm , .25cm } + \draw_path_arc:nnn { 360 } { 270 } { .125cm } + \draw_path_moveto:n { 0cm , .225cm } + \draw_path_lineto:n { 0cm , -.275cm } + \draw_path_moveto:n { -.2cm , -.225cm } + \draw_path_lineto:n { 0cm , -.275cm } + \draw_path_lineto:n { .2cm , -.225cm } +} + +\cs_new:Npn \rpgicons_draw_shape_proficiency: { + \draw_path_moveto:n { \draw_point_polar:nn { .35cm} { 90 } } + \draw_path_lineto:n { \draw_point_polar:nn { .15cm} { 126 } } + \draw_path_lineto:n { \draw_point_polar:nn { .35cm} { 162 } } + \draw_path_lineto:n { \draw_point_polar:nn { .15cm} { 198 } } + \draw_path_lineto:n { \draw_point_polar:nn { .35cm} { 234 } } + \draw_path_lineto:n { \draw_point_polar:nn { .15cm} { 270 } } + \draw_path_lineto:n { \draw_point_polar:nn { .35cm} { 306 } } + \draw_path_lineto:n { \draw_point_polar:nn { .15cm} { 342 } } + \draw_path_lineto:n { \draw_point_polar:nn { .35cm} { 18 } } + \draw_path_lineto:n { \draw_point_polar:nn { .15cm} { 54 } } + \draw_path_close: + \draw_path_moveto:n { \draw_point_polar:nn { .35cm} { 270 } } + \draw_path_lineto:n { \draw_point_polar:nn { .425cm} { 270 } } + \draw_path_moveto:n { \draw_point_polar:nn { .35cm} { 342 } } + \draw_path_lineto:n { \draw_point_polar:nn { .425cm} { 342 } } + \draw_path_moveto:n { \draw_point_polar:nn { .35cm} { 54 } } + \draw_path_lineto:n { \draw_point_polar:nn { .425cm} { 54 } } + \draw_path_moveto:n { \draw_point_polar:nn { .35cm } { 126 }} + \draw_path_lineto:n { \draw_point_polar:nn { .425cm} { 126 } } + \draw_path_moveto:n { \draw_point_polar:nn { .35cm} { 198 } } + \draw_path_lineto:n { \draw_point_polar:nn { .425cm} { 198 } } +} + +\cs_new:Npn \rpgicons_draw_shape_linear: { + \draw_path_circle:nn { -.4cm , 0cm } { 2pt } + \draw_path_use_clear:n { fill } + \draw_path_moveto:n { -.4cm , 0cm } + \draw_path_lineto:n { .4cm , 0cm } +} + +\cs_new:Npn \rpgicons_draw_shape_conic: { + \draw_path_circle:nn { -.425cm , 0cm } { 2pt } + \draw_path_use_clear:n { fill } + \draw_path_ellipse:nnn { .2125cm , 0cm } { .2cm , 0cm } { 0cm , .425cm } + \draw_path_moveto:n { .2125cm - .2cm * sin( asin( .2cm / .6375cm ) ) , + -.425cm * cos( asin( .2cm / ( .6375cm ) ) ) } + \draw_path_lineto:n { -.425cm , 0cm } + \draw_path_lineto:n { .2125cm - .2cm * sin( asin( .2cm / .6375cm ) ) , + .425cm * cos( asin( .2cm / ( .6375cm ) ) ) } +} + +\cs_new:Npn \rpgicons_draw_shape_quadratic: { + \draw_path_circle:nn { 0cm , 0cm } { 2pt } + \draw_path_use_clear:n { fill } + \bool_if:NTF \l__rpgicons_compat_mode_bool { + % l3draw rectangle fix + \draw_path_moveto:n { -.4cm , -.4cm } + \draw_path_lineto:n { -.4cm , .4cm } + \draw_path_lineto:n { .4cm , .4cm } + \draw_path_lineto:n { .4cm , -.4cm } + \draw_path_close: + } { + \draw_path_rectangle_corners:nn { -.4cm , -.4cm } { .4cm , .4cm } + } +} + +\cs_new:Npn \rpgicons_draw_shape_cubic: { + \draw_path_circle:nn { .1125cm , -.1125cm } { 2pt } + \draw_path_use_clear:n { fill } + \draw_path_moveto:n { -.425cm , .425cm } + \draw_path_lineto:n { -.425cm , -.2cm } + \draw_path_lineto:n { -.2cm , -.425cm } + \draw_path_lineto:n { .425cm , -.425cm } + \draw_path_lineto:n { .425cm , .2cm } + \draw_path_lineto:n { .2cm , .425cm } + \draw_path_close: + \draw_path_lineto:n { -.2cm , .2cm } + \draw_path_lineto:n { -.2cm , -.425cm } + \draw_path_moveto:n { -.2cm , .2cm } + \draw_path_lineto:n { .425cm , .2cm } +} + +\cs_new:Npn \rpgicons_draw_shape_spheric: { + \draw_path_circle:nn { 0cm , 0cm } { 2pt } + \draw_path_use_clear:n { fill } + \draw_path_circle:nn { 0cm , 0cm } { .425cm } + \draw_path_moveto:n { .425cm , 0cm } + \draw_path_arc:nnnn { 180 } { 50 } { -.425cm } { -.2cm } + \draw_path_moveto:n { 0cm , -.425cm } + \draw_path_arc:nnnn { 270 } { 140 } { -.2cm } { .425cm } +} + +\cs_new:Npn \rpgicons_draw_shape_cylindric: { + \draw_path_circle:nn { 0cm , -.2125cm } { 2pt } + \draw_path_use_clear:n { fill } + \draw_path_ellipse:nnn { 0cm , .2125cm } { 0cm , .2cm } { .425cm , 0cm } + \draw_path_moveto:n { -.425cm , .2125cm } + \draw_path_lineto:n { -.425cm , -.2125cm } + \draw_path_arc:nnnn { 0 } { 180 } { -.425cm } { -.2cm } + \draw_path_lineto:n { .425cm , .2125cm } +} + +\cs_new:Npn \rpgicons_draw_shape_verbal: { + \draw_path_moveto:n { -.35cm , 0cm } + \draw_path_arc:nnn { 180 } { -115 } { .35cm } + \draw_path_lineto:n { -.4cm , -.4cm } + \draw_path_lineto:n { \draw_point_polar:nn { .35cm } { 215 } } +} + +\cs_new:Npn \rpgicons_draw_shape_somatic: { + \draw_path_moveto:n { -.425cm , 0cm } + \draw_path_arc:nnnn { 0 } { 270 } { -.425cm } { -.2cm } + \draw_path_moveto:n { 0cm , -.425cm } + \draw_path_arc:nnnn { 90 } { 360 } { -.2cm } { -.425cm } +} + +\cs_new:Npn \rpgicons_draw_shape_material: { + \draw_path_moveto:n { -.4cm , .2cm } + \draw_path_lineto:n { -.4cm , -.2cm } + \draw_path_lineto:n { 0cm , -.4cm } + \draw_path_lineto:n { .4cm , -.2cm } + \draw_path_lineto:n { .4cm , .2cm } + \draw_path_lineto:n { 0cm , .4cm } + \draw_path_close: + \draw_path_lineto:n { 0cm , 0cm } + \draw_path_lineto:n { .4cm , .2cm } + \draw_path_moveto:n { 0cm , 0cm } + \draw_path_lineto:n { 0cm , -.4cm } +} + +\cs_new:Npn \rpgicons_draw_shape_focus: { + \draw_path_circle:nn { 0cm , 0cm } { .35cm } + \draw_path_moveto:n { -.15cm , 0 } + \draw_path_lineto:n { -.425cm , 0 } + \draw_path_moveto:n { .15cm , 0 } + \draw_path_lineto:n { .425cm , 0 } + \draw_path_moveto:n { 0cm , -.15cm } + \draw_path_lineto:n { 0cm , -.425cm } + \draw_path_moveto:n { 0cm , .15cm } + \draw_path_lineto:n { 0cm , .425cm } +} + +% SPELLSCHOOLS + +\cs_new:Npn \rpgicons_draw_shape_abjuration: { + \draw_path_moveto:n { 0cm , .025cm } + \draw_path_arc:nnnn { 270 } { 390 } { .275cm } { .175cm } + \draw_path_arc:nnn { 210 } { 120 } { .095cm } + \draw_path_moveto:n { 0cm , .025cm } + \draw_path_arc:nnnn { 270 } { 150 } { .275cm } { .175cm } + \draw_path_arc:nnn { -30 } { 60 } { .095cm } + \draw_path_moveto:n { 0cm , .25cm } + \draw_path_lineto:n { 0cm , -.425cm } + \draw_path_moveto:n { -.25cm , -.125cm } + \draw_path_lineto:n { .25cm , -.125cm } + \draw_path_moveto:n { -.25cm , -.3cm } + \draw_path_lineto:n { .25cm , -.3cm } +} + +\cs_new:Npn \rpgicons_draw_shape_conjuration: { + \draw_path_moveto:n { -.425cm , .425cm } + \draw_path_lineto:n { 0cm , -.425cm } + \draw_path_lineto:n { .425cm , .425cm } + \draw_path_moveto:n { -.225cm , .05cm } + \draw_path_lineto:n { .225cm , .05cm } + \draw_path_moveto:n { 0cm , -.15cm } + \draw_path_arc:nnn { 110 } { 70 } { .5cm } + \draw_path_moveto:n { 0cm , -.15cm } + \draw_path_arc:nnn { 110 } { 70 } { -.5cm } +} + +\cs_new:Npn \rpgicons_draw_shape_divination: { + \draw_path_moveto:n { -.35cm , -.175cm } + \draw_path_arc:nnnn { 180 } { 0 } { .15cm } { -.25cm } + \draw_path_arc:nnn { 180 } { 90 } { .4cm } + \draw_path_moveto:n { -.05cm , -.175cm } + \draw_path_lineto:n { -.05cm , 0cm } + \draw_path_arc:nnn { 180 } { 90 } { .4cm } +} + +\cs_new:Npn \rpgicons_draw_shape_enchantment: { + \draw_path_moveto:n { -.2cm , -.425cm } + \draw_path_lineto:n { -.2cm , .425cm } + \draw_path_moveto:n { -.425cm , .175cm } + \draw_path_lineto:n { .025cm , .175cm } + \draw_path_moveto:n { -.2cm , -.225cm } + \draw_path_arc:nnnn { 180 } { 0 } { .1cm } { .2cm } + \draw_path_arc:nnnn { 180 } { 0 } { .1cm } { .2cm } + \draw_path_arc:nnnn { 180 } { 0 } { .1cm } { -.2cm } +} + +\cs_new:Npn \rpgicons_draw_shape_evocation: { + \draw_path_ellipse:nnn { 0cm , 0cm } { .325cm , 0cm } { 0cm , .225cm } + \draw_path_moveto:n { 0cm , .425cm } + \draw_path_lineto:n { 0cm , -.425cm } + \draw_path_moveto:n { -.425cm , 0cm } + \draw_path_lineto:n { .425cm , 0cm } + \draw_path_moveto:n { \draw_point_polar:nnn { 30 } { .325cm } { .225cm } } + \draw_path_lineto:n { \draw_point_polar:nn { 30 } { .4cm} } + \draw_path_moveto:n { \draw_point_polar:nnn { 60 } { .325cm } { .225cm } } + \draw_path_lineto:n { \draw_point_polar:nn { 60 } { .4cm} } + \draw_path_moveto:n { \draw_point_polar:nnn { 120 } { .325cm } { .225cm } } + \draw_path_lineto:n { \draw_point_polar:nn { 120 } { .4cm} } + \draw_path_moveto:n { \draw_point_polar:nnn { 150 } { .325cm } { .225cm } } + \draw_path_lineto:n { \draw_point_polar:nn { 150 } { .4cm} } + \draw_path_moveto:n { \draw_point_polar:nnn { 210 } { .325cm } { .225cm } } + \draw_path_lineto:n { \draw_point_polar:nn { 210 } { .4cm} } + \draw_path_moveto:n { \draw_point_polar:nnn { 240 } { .325cm } { .225cm } } + \draw_path_lineto:n { \draw_point_polar:nn { 240 } { .4cm} } + \draw_path_moveto:n { \draw_point_polar:nnn { 300 } { .325cm } { .225cm } } + \draw_path_lineto:n { \draw_point_polar:nn { 300 } { .4cm} } + \draw_path_moveto:n { \draw_point_polar:nnn { 330 } { .325cm } { .225cm } } + \draw_path_lineto:n { \draw_point_polar:nn { 330 } { .4cm} } +} + +\cs_new:Npn \rpgicons_draw_shape_illusion: { + \draw_path_moveto:n { 0cm , .225cm } + \draw_path_arc:nnn { 90 } { 30 } { .45cm } + \draw_path_arc:nnn { 330 } { 210 } { .45cm } + \draw_path_arc:nnn { 150 } { 90 } { .45cm } + \draw_path_moveto:n { ( 0cm , .225cm ) + ( \draw_point_polar:nn { .45cm } { 270 } ) } + \draw_path_lineto:n { \draw_point_polar:nn { .35cm} { 270 } } + \draw_path_moveto:n { ( 0cm , .225cm ) + ( \draw_point_polar:nn { .45cm } { 240 } ) } + \draw_path_lineto:n { \draw_point_polar:nn { .4cm} { 225 } } + \draw_path_moveto:n { ( 0cm , .225cm ) + ( \draw_point_polar:nn { .45cm } { 300 } ) } + \draw_path_lineto:n { \draw_point_polar:nn { .4cm} { 315 } } + \draw_path_moveto:n { 0cm , .225cm } + \draw_path_circle:nn { 0cm , .075cm } { .15cm } +} + +\cs_new:Npn \rpgicons_draw_shape_necromancy: { + \draw_path_moveto:n { \draw_point_polar:nn { .25cm} { 210 } } + \draw_path_arc:nnn { 210 } { -30 } { .25cm } + \draw_path_arc:nnn { 150 } { 390 } { .1cm } + \draw_path_moveto:n { \draw_point_polar:nn { .25cm} { 210 } } + \draw_path_arc:nnn { 390 } { 150 } { .1cm } +} + +\cs_new:Npn \rpgicons_draw_shape_transmutation: { + \draw_path_moveto:n { -.25cm , .35cm } + \draw_path_lineto:n { -.25cm , -.35cm } + \draw_path_moveto:n { 0cm , .35cm } + \draw_path_lineto:n { 0cm , -.35cm } + \draw_path_moveto:n { -.425cm , .35cm } + \draw_path_lineto:n { .15cm , .35cm } + \draw_path_arc:nnn { 90 } { -45 } { .1cm } + \draw_path_arc:nnn { 135 } { 360 } { .1cm } +} + +% DAMAGES + +\cs_new:Npn \rpgicons_draw_shape_acid: { + \draw_path_moveto:n { ( -.175cm , .05cm ) + ( \draw_point_polar:nn { .175 } { -20 } ) } + \draw_path_arc:nnn { -20 } { 200 } { -.175cm } + \draw_path_lineto:n { 0cm , .425cm } + \draw_path_close: + \draw_path_moveto:n { + \draw_point_intersect_lines:nnnn + { ( 0cm , -.175cm ) + ( \draw_point_polar:nn { -.25cm } { 20 } ) } + { ( 0cm , -.175cm ) + ( \draw_point_polar:nn { -.25cm } { 160 } ) } + { -.425cm , -.425cm } { -.425cm , .425cm } + } + \draw_path_lineto:n { ( 0cm , -.175cm ) + ( \draw_point_polar:nn { -.25cm } { 20 } ) } + \draw_path_arc:nnn { 20 } { 160 } { -.25cm } + \draw_path_lineto:n { + \draw_point_intersect_lines:nnnn + { ( 0cm , -.175cm ) + ( \draw_point_polar:nn { -.25cm } { 20 } ) } + { ( 0cm , -.175cm ) + ( \draw_point_polar:nn { -.25cm } { 160 } ) } + { .425cm , -.425cm } { .425cm , .425cm } + } +} + +\cs_new:Npn \rpgicons_draw_shape_bludgeoning: { + \draw_path_moveto:n { -.2cm , .225cm } + \draw_path_lineto:n { 0cm , .425cm } + \draw_path_lineto:n { .425cm , 0cm } + \draw_path_lineto:n { .225cm , -.2cm } + \draw_path_close: + \draw_path_moveto:n { .05cm , -.025cm } + \draw_path_lineto:n { -.35cm , -.425cm } + \draw_path_lineto:n { -.425cm , -.35cm } + \draw_path_lineto:n { -.025cm , .05cm } + \draw_path_moveto:n { .2375cm , .1875cm } + \draw_path_arc:nnn { 135 } { 315 } { -.05cm } +} + +\cs_new:Npn \rpgicons_draw_shape_cold: { + \draw_path_moveto:n { \draw_point_polar:nn { .425cm} { 90 } } + \draw_path_lineto:n { \draw_point_polar:nn { .425cm} { 270 } } + \draw_path_moveto:n { \draw_point_polar:nn { .35cm} { 110 } } + \draw_path_lineto:n { \draw_point_polar:nn { .25cm} { 90 } } + \draw_path_lineto:n { \draw_point_polar:nn { .35cm} { 70 } } + \draw_path_moveto:n { \draw_point_polar:nn { .35cm} { 250 } } + \draw_path_lineto:n { \draw_point_polar:nn { .25cm} { 270 } } + \draw_path_lineto:n { \draw_point_polar:nn { .35cm} { 290 } } + \draw_path_moveto:n { \draw_point_polar:nn { .425cm} { 30 } } + \draw_path_lineto:n { \draw_point_polar:nn { .425cm} { 210 } } + \draw_path_moveto:n { \draw_point_polar:nn { .35cm} { 50 } } + \draw_path_lineto:n { \draw_point_polar:nn { .25cm} { 30 } } + \draw_path_lineto:n { \draw_point_polar:nn { .35cm} { 10 } } + \draw_path_moveto:n { \draw_point_polar:nn { .35cm} { 190 } } + \draw_path_lineto:n { \draw_point_polar:nn { .25cm} { 210 } } + \draw_path_lineto:n { \draw_point_polar:nn { .35cm} { 230 } } + \draw_path_moveto:n { \draw_point_polar:nn { .425cm} { 150 } } + \draw_path_lineto:n { \draw_point_polar:nn { .425cm} { 330 } } + \draw_path_moveto:n { \draw_point_polar:nn { .35cm} { 130 } } + \draw_path_lineto:n { \draw_point_polar:nn { .25cm} { 150 } } + \draw_path_lineto:n { \draw_point_polar:nn { .35cm} { 170 } } + \draw_path_moveto:n { \draw_point_polar:nn { .35cm} { 310 } } + \draw_path_lineto:n { \draw_point_polar:nn { .25cm} { 330 } } + \draw_path_lineto:n { \draw_point_polar:nn { .35cm} { 350 } } +} + +\cs_new:Npn \rpgicons_draw_shape_fire: { + \draw_path_moveto:n { .15cm , -.425cm } + \draw_path_arc:nnnn { -60 } { 0 } { .45cm } { .375cm } + \draw_path_curveto:nnn { .375cm , .15cm } { .15cm , .375cm } { -.05cm , .425cm } + \draw_path_moveto:n { -.15cm , -.425cm } + \draw_path_arc:nnnn { 240 } { 135 } { .45cm } { .35cm } + \draw_path_curveto:nnn { -.15cm , .2cm } { 0cm , .25cm } { -.05cm , .425cm } + \draw_path_moveto:n { .075cm , -.3cm } + \draw_path_curveto:nnn { .2cm , -.2cm } { .2cm , -.05cm } { .05cm , .1cm } + \draw_path_moveto:n { -.075cm , -.3cm } + \draw_path_arc:nnnn { 220 } { 150 } { .35cm } { .2cm } + \draw_path_curveto:nnn { 0cm , -.2cm } { .05cm , -.1cm } { .05cm , .1cm } +} + +\cs_new:Npn \rpgicons_draw_shape_force: { + \draw_path_moveto:n { \draw_point_polar:nn { .425cm} { 90 } } + \draw_path_lineto:n { \draw_point_polar:nn { .15cm} { 120 } } + \draw_path_lineto:n { \draw_point_polar:nn { .425cm} { 150 } } + \draw_path_lineto:n { \draw_point_polar:nn { .15cm} { 180 } } + \draw_path_lineto:n { \draw_point_polar:nn { .425cm} { 210 } } + \draw_path_lineto:n { \draw_point_polar:nn { .15cm} { 240 } } + \draw_path_lineto:n { \draw_point_polar:nn { .425cm} { 270 } } + \draw_path_lineto:n { \draw_point_polar:nn { .15cm} { 300 } } + \draw_path_lineto:n { \draw_point_polar:nn { .425cm} { 330 } } + \draw_path_lineto:n { \draw_point_polar:nn { .15cm} { 0 } } + \draw_path_lineto:n { \draw_point_polar:nn { .425cm} { 30 } } + \draw_path_lineto:n { \draw_point_polar:nn { .15cm} { 60 } } + \draw_path_close: +} + +\cs_new:Npn \rpgicons_draw_shape_lightning: { + \draw_path_moveto:n { 0cm , .425cm } + \draw_path_lineto:n { -.25cm , -.15cm } + \draw_path_lineto:n { .25cm , .15cm } + \draw_path_lineto:n { 0cm , -.425cm } +} + +\cs_new:Npn \rpgicons_draw_shape_necrotic: { + \draw_path_moveto:n { -.35cm , -.425cm } + \draw_path_lineto:n { -.35cm , .075cm } + \draw_path_arc:nnn { 180 } { 0 } { .35cm } + \draw_path_lineto:n { .35cm , -.425cm } + \draw_path_close: + \draw_path_moveto:n { 0cm , -.2cm } + \draw_path_lineto:n { 0cm , .25cm } + \draw_path_moveto:n { -.15cm , .1cm } + \draw_path_lineto:n { .15cm , .1cm } +} + +\cs_new:Npn \rpgicons_draw_shape_piercing: { + \draw_path_moveto:n { -.425cm , .075cm } + \draw_path_lineto:n { .3cm , .075cm } + \draw_path_lineto:n { .425cm , 0cm } + \draw_path_lineto:n { .3cm , -.075cm } + \draw_path_lineto:n { -.425cm , -.075cm } + \draw_path_moveto:n { .25cm , .2cm } + \draw_path_lineto:n { -.05cm , .35cm } + \draw_path_moveto:n { .25cm , -.2cm } + \draw_path_lineto:n { -.05cm , -.35cm } + \draw_path_moveto:n { .425cm , .15cm } + \draw_path_lineto:n { .25cm , .425cm } + \draw_path_moveto:n { .425cm , -.15cm } + \draw_path_lineto:n { .25cm , -.425cm } +} + +\cs_new:Npn \rpgicons_draw_shape_poison: { + \draw_path_moveto:n { ( 0cm , .175cm ) + ( \draw_point_polar:nn { .25cm } { -40 } ) } + \draw_path_arc:nnn { -40 } { 220 } { .25cm } + \draw_path_lineto:n { -.15cm , -.1cm } + \draw_path_lineto:n { .15cm , -.1cm } + \draw_path_close: + \draw_path_circle:nn { -.1cm , .15cm } { .05cm } + \draw_path_circle:nn { .1cm , .15cm } { .05cm } + \draw_path_moveto:n { .425cm , -.2cm } + \draw_path_lineto:n { -.425cm , -.425cm } + \draw_path_moveto:n { -.425cm , -.2cm } + \draw_path_lineto:n { .425cm , -.425cm } +} + +\cs_new:Npn \rpgicons_draw_shape_psychic: { + \draw_path_moveto:n { .075cm , .4cm } + \draw_path_arc:nnn { 90 } { 180 } { .425cm } + \draw_path_arc:nnn { 180 } { 270 } { .375cm } + \draw_path_arc:nnn { 270 } { 360 } { .325cm } + \draw_path_arc:nnn { 0 } { 90 } { .275cm } + \draw_path_arc:nnn { 90 } { 180 } { .225cm } + \draw_path_arc:nnn { 180 } { 270 } { .175cm } + \draw_path_arc:nnn { 270 } { 360 } { .125cm } +} + +\cs_new:Npn \rpgicons_draw_shape_radiant: { + \draw_path_circle:nn { 0cm , 0cm } { .225cm } + \draw_path_moveto:n { \draw_point_polar:nn { .425cm} { 15 } } + \draw_path_arc:nnn { 15 } { 45 } { .425cm } + \draw_path_moveto:n { \draw_point_polar:nn { .425cm} { 75 } } + \draw_path_arc:nnn { 75 } { 105 } { .425cm } + \draw_path_moveto:n { \draw_point_polar:nn { .425cm} { 135 } } + \draw_path_arc:nnn { 135 } { 165 } { .425cm } + \draw_path_moveto:n { \draw_point_polar:nn { .425cm} { 195 } } + \draw_path_arc:nnn { 195 } { 225 } { .425cm } + \draw_path_moveto:n { \draw_point_polar:nn { .425cm} { 255 } } + \draw_path_arc:nnn { 255 } { 285 } { .425cm } + \draw_path_moveto:n { \draw_point_polar:nn { .425cm} { 315 } } + \draw_path_arc:nnn { 315 } { 345 } { .425cm } +} + +\cs_new:Npn \rpgicons_draw_shape_slashing: { + \draw_path_moveto:n { -.15cm , .225cm } + \draw_path_lineto:n { -.275cm , .35cm } + \draw_path_arc:nnn { 0 } { 240 } { .075cm } + \draw_path_lineto:n { -.35cm , .275cm } + \draw_path_lineto:n { -.225cm , .15cm } + \draw_path_lineto:n { -.425cm , -.05cm } + \draw_path_lineto:n { -.35cm , -.125cm } + \draw_path_lineto:n { .125cm , .35cm } + \draw_path_lineto:n { .05cm , .425cm } + \draw_path_close: + \draw_path_moveto:n { -.2cm , .025cm } + \draw_path_lineto:n { .225cm , -.425cm } + \draw_path_lineto:n { .425cm , -.425cm } + \draw_path_lineto:n { .425cm , -.225cm } + \draw_path_lineto:n { -.025cm , .2cm } + \draw_path_moveto:n { .325cm , -.325cm } + \draw_path_lineto:n { 0cm , 0cm } + \draw_path_moveto:n { .425cm , .3cm } + \draw_path_lineto:n { .425cm , 0cm } + \draw_path_moveto:n { .275cm , .425cm } + \draw_path_lineto:n { .275cm , .1cm } +} + +\cs_new:Npn \rpgicons_draw_shape_thunder: { + \draw_path_moveto:n { .225cm , -.075cm } + \draw_path_arc:nnn { -90 } { 120 } { .2cm } + \draw_path_arc:nnn { 30 } { 180 } { .225cm } + \draw_path_lineto:n { -.3cm , .125cm + cosd( 30 ) * .2cm - sind( 30 ) * .225cm } + \draw_path_arc:nnn { 90 } { 180 } { .125cm } + \draw_path_lineto:n { -.425cm , .05cm } + \draw_path_arc:nnn { 180 } { 270 } { .125cm } + \draw_path_close: + \draw_path_moveto:n { -.1cm , -.225cm } + \draw_path_arc:nnn { 240 } { 300 } { .3cm } + \draw_path_moveto:n { -.2cm , -.35cm } + \draw_path_arc:nnn { 240 } { 300 } { .5cm } +} + +\cs_new:Npn \rpgicons_draw_shape_healing: { + \draw_path_moveto:n { 0cm , .125cm } + \draw_path_arc:nnn { 0 } { 225 } { .2cm } + \draw_path_lineto:n { 0cm , -.375cm } + \draw_path_moveto:n { 0cm , .125cm } + \draw_path_arc:nnn { 180 } { -45 } { .2cm } + \draw_path_lineto:n { 0cm , -.375cm } +} + +% ATTACKS + +\cs_new:Npn \rpgicons_draw_shape_melee: { + \draw_path_moveto:n { -.15cm , -.225cm } + \draw_path_lineto:n { -.275cm , -.35cm } + \draw_path_arc:nnn { 360 } { 90 } { .075cm } + \draw_path_lineto:n { -.35cm , -.275cm } + \draw_path_lineto:n { -.225cm , -.15cm } + \draw_path_lineto:n { -.425cm , .05cm } + \draw_path_lineto:n { -.35cm , .125cm } + \draw_path_lineto:n { .125cm , -.35cm } + \draw_path_lineto:n { .05cm , -.425cm } + \draw_path_close: + \draw_path_moveto:n { -.2cm , -.025cm } + \draw_path_lineto:n { .225cm , .425cm } + \draw_path_lineto:n { .425cm , .425cm } + \draw_path_lineto:n { .425cm , .225cm } + \draw_path_lineto:n { -.025cm , -.2cm } + \draw_path_moveto:n { .325cm , .325cm } + \draw_path_lineto:n { 0cm , 0cm } +} + +\cs_new:Npn \rpgicons_draw_shape_ranged: { + \draw_path_moveto:n { 0cm , 0cm } + \draw_path_lineto:n { 0cm , -.225cm } + \draw_path_arc:nnn { 0 } { -30 } { .4cm } + \draw_path_arc:nnn { -45 } { 0 } { .6cm } + \draw_path_moveto:n { 0cm , 0cm } + \draw_path_lineto:n { 0cm , .225cm } + \draw_path_arc:nnn { 0 } { 30 } { .4cm } + \draw_path_arc:nnn { 45 } { 0 } { .6cm } + \draw_path_moveto:n { -.425cm , 0cm } + \draw_path_lineto:n { .425cm , 0cm } + \draw_path_moveto:n { .275cm , .1cm } + \draw_path_lineto:n { .425cm , 0cm } + \draw_path_lineto:n { .275cm , -.1cm } + \draw_path_moveto:n { ( -.4cm , -.225cm ) + ( \draw_point_polar:nn { .4cm } { -20 } ) } + \draw_path_lineto:n { -.425cm , 0cm } + \draw_path_lineto:n { ( -.4cm , .225cm ) + ( \draw_point_polar:nn { .4cm } { 20 } ) } +} + +\cs_new:Npn \rpgicons_draw_shape_magic: { + \draw_path_moveto:n { -.225cm , -.425cm } + \draw_path_lineto:n { -.425cm , -.225cm } + \draw_path_lineto:n { -.3cm , -.1cm } + \draw_path_lineto:n { -.3cm , .125cm } + \draw_path_lineto:n { 0cm , .425cm } + \draw_path_arc:nnn { 405 } { 315 } { .1cm } + \draw_path_lineto:n { -.15cm , .1cm } + \draw_path_lineto:n { -.15cm , -.05cm } + \draw_path_arc:nnn { 180 } { 360 } { .05cm } + \draw_path_lineto:n { -.05cm , 0cm } + \draw_path_arc:nnn { 180 } { 90 } { .1cm } + \draw_path_lineto:n { .05cm , -.1cm } + \draw_path_arc:nnn { 360 } { 315 } { .125cm } + \draw_path_close: + \draw_path_moveto:n { -.225cm , -.25cm } + \draw_path_lineto:n { -.325cm , -.15cm } + \draw_path_moveto:n { .2cm , .2cm } + \draw_path_arc:nnn { 180 } { 360 } { .1cm } + \draw_path_arc:nnn { 0 } { 45 } { .1cm } + \draw_path_arc:nnn { 225 } { 180 } { .2cm } + \draw_path_circle:nn { .3cm , -.075cm } { .075cm } +} + +\cs_new:Npn \rpgicons_draw_shape_singlehanded: { + \draw_path_moveto:n { -.25cm , -.425cm } + \draw_path_lineto:n { .025cm , -.425cm } + \draw_path_lineto:n { .325cm , -.125cm } + \draw_path_arc:nnn { 45 } { 135 } { .1cm } + \draw_path_lineto:n { 0cm , -.275cm } + \draw_path_lineto:n { -.15cm , -.275cm } + \draw_path_arc:nnn { 270 } { 90 } { .05cm } + \draw_path_lineto:n { -.1cm , -.175cm } + \draw_path_arc:nnn { 270 } { 360 } { .1cm } + \draw_path_lineto:n { -.2cm , -.075cm } + \draw_path_arc:nnn { 90 } { 135 } { .125cm } + \draw_path_lineto:n { -.425cm , -.25cm } +} + +\cs_new:Npn \rpgicons_draw_shape_doublehanded: { + \draw_path_moveto:n { -.25cm , -.425cm } + \draw_path_lineto:n { .025cm , -.425cm } + \draw_path_lineto:n { .325cm , -.125cm } + \draw_path_arc:nnn { 45 } { 135 } { .1cm } + \draw_path_lineto:n { 0cm , -.275cm } + \draw_path_lineto:n { -.15cm , -.275cm } + \draw_path_arc:nnn { 270 } { 90 } { .05cm } + \draw_path_lineto:n { -.1cm , -.175cm } + \draw_path_arc:nnn { 270 } { 360 } { .1cm } + \draw_path_lineto:n { -.2cm , -.075cm } + \draw_path_arc:nnn { 90 } { 135 } { .125cm } + \draw_path_lineto:n { -.425cm , -.25cm } + \draw_path_moveto:n { .25cm , .425cm } + \draw_path_lineto:n { -.025cm , .425cm } + \draw_path_lineto:n { -.325cm , .125cm } + \draw_path_arc:nnn { 225 } { 315 } { .1cm } + \draw_path_lineto:n { 0cm , .275cm } + \draw_path_lineto:n { .15cm , .275cm } + \draw_path_arc:nnn { 450 } { 270 } { .05cm } + \draw_path_lineto:n { .1cm , .175cm } + \draw_path_arc:nnn { 90 } { 180 } { .1cm } + \draw_path_lineto:n { .2cm , .075cm } + \draw_path_arc:nnn { 270 } { 315 } { .125cm } + \draw_path_lineto:n { .425cm , .25cm } +} + +% CONDITIONS + +\cs_new:Npn \rpgicons_draw_shape_buff: { + \draw_path_moveto:n { -.425cm , -.225cm } + \draw_path_lineto:n { -.225cm , -.425cm } + \draw_path_lineto:n { -.1cm , -.3cm } + \draw_path_lineto:n { .125cm , -.3cm } + \draw_path_lineto:n { .425cm , 0cm } + \draw_path_arc:nnn { 45 } { 135 } { .1cm } + \draw_path_lineto:n { .1cm , -.15cm } + \draw_path_lineto:n { -.05cm , -.15cm } + \draw_path_arc:nnn { 270 } { 90 } { .05cm } + \draw_path_lineto:n { 0cm , -.05cm } + \draw_path_arc:nnn { 270 } { 360 } { .1cm } + \draw_path_lineto:n { -.1cm , .05cm } + \draw_path_arc:nnn { 90 } { 135 } { .125cm } + \draw_path_close: + \draw_path_moveto:n { -.25cm , -.225cm } + \draw_path_lineto:n { -.15cm , -.325cm } + \draw_path_moveto:n { 0cm , .425cm } + \draw_path_lineto:n { .25cm , .425cm } + \draw_path_lineto:n { .25cm , .275cm } + \draw_path_arc:nnn { 360 } { 180 } { .125cm } + \draw_path_close: + +} + +\cs_new:Npn \rpgicons_draw_shape_blinded: { + \draw_path_moveto:n { 0cm , .225cm } + \draw_path_arc:nnn { 90 } { 30 } { .45cm } + \draw_path_arc:nnn { 330 } { 210 } { .45cm } + \draw_path_arc:nnn { 150 } { 90 } { .45cm } + \draw_path_moveto:n { 0cm , .225cm } + \draw_path_circle:nn { 0cm , 0cm } { .15cm } + \draw_path_moveto:n { -.425cm , -.425cm } + \draw_path_lineto:n { -.25cm , -.25cm } + \draw_path_moveto:n { 0cm , 0cm } + \draw_path_lineto:n { .425cm , .425cm } +} + +\cs_new:Npn \rpgicons_draw_shape_charmed: { + \draw_path_circle:nn { 0cm , 0cm } { .425cm } + \draw_path_moveto:n { -.175cm , -.1cm } + \draw_path_arc:nnn { 180 } { 360 } { .175cm } + \draw_path_close: + \draw_path_moveto:n { -.175cm , .15cm } + \draw_path_arc:nnn { 0 } { 225 } { .0625cm } + \draw_path_lineto:n { -.175cm , 0cm } + \draw_path_moveto:n { -.175cm , .15cm } + \draw_path_arc:nnn { 180 } { -45 } { .0625cm } + \draw_path_lineto:n { -.175cm , 0cm } + \draw_path_moveto:n { .175cm , .15cm } + \draw_path_arc:nnn { 0 } { 225 } { .0625cm } + \draw_path_lineto:n { .175cm , 0cm } + \draw_path_moveto:n { .175cm , .15cm } + \draw_path_arc:nnn { 180 } { -45 } { .0625cm } + \draw_path_lineto:n { .175cm , 0cm } +} + +\cs_new:Npn \rpgicons_draw_shape_deafened: { + \draw_path_moveto:n { -.175cm , -.275cm } + \draw_path_arc:nnn { 180 } { 360 } { .15cm } + \draw_path_lineto:n { .125cm , -.225cm } + \draw_path_arc:nnn { 180 } { 135 } { .25cm } + \draw_path_arc:nnn { 315 } { 360 } { .25cm } + \draw_path_arc:nnn { 0 } { 180 } { .275cm } + \draw_path_moveto:n { -.15cm , -.1cm } + \draw_path_arc:nnn { -90 } { 90 } { .075cm } + \draw_path_lineto:n { -.15cm , .125cm } + \draw_path_arc:nnn { 180 } { 45 } { .15cm } + \draw_path_moveto:n { -.425cm , -.425cm } + \draw_path_lineto:n { -.2cm , -.2cm } + \draw_path_moveto:n { 0cm , 0cm } + \draw_path_lineto:n { .425cm , .425cm } +} + +\cs_new:Npn \rpgicons_draw_shape_exhausted: { + \draw_path_circle:nn { 0cm , 0cm } { .425cm } + \draw_path_moveto:n { -.175cm , -.225cm } + \draw_path_arc:nnn { 180 } { 0 } { .175cm } + \draw_path_close: + \draw_path_moveto:n { .275cm , .15cm } + \draw_path_arc:nnn { 180 } { 0 } { -.1cm } + \draw_path_moveto:n { -.075cm , .15cm } + \draw_path_arc:nnn { 180 } { 0 } { -.1cm } +} + +\cs_new:Npn \rpgicons_draw_shape_frightened: { + \draw_path_circle:nn { 0cm , 0cm } { .425cm } + \draw_path_moveto:n { -.175cm , -.225cm } + \draw_path_arc:nnn { 180 } { 0 } { .175cm } + \draw_path_close: + \draw_path_circle:nn { -.175cm , .125cm } { .075cm } + \draw_path_circle:nn { .175cm , .125cm } { .075cm } +} + +\cs_new:Npn \rpgicons_draw_shape_grappled: { + \draw_path_moveto:n { -.25cm , .3cm } + \draw_path_arc:nnn { 90 } { -90 } { .075cm } + \draw_path_lineto:n { -.35cm , .15cm } + \draw_path_arc:nnn { 270 } { 90 } { .075cm } + \draw_path_close: + \draw_path_moveto:n { -.2cm , .15cm } + \draw_path_arc:nnn { 90 } { -90 } { .075cm } + \draw_path_lineto:n { -.35cm , 0cm } + \draw_path_arc:nnn { 270 } { 90 } { .075cm } + \draw_path_close: + \draw_path_moveto:n { -.2cm , 0cm } + \draw_path_arc:nnn { 90 } { -90 } { .075cm } + \draw_path_lineto:n { -.35cm , -.15cm } + \draw_path_arc:nnn { 270 } { 90 } { .075cm } + \draw_path_close: + \draw_path_moveto:n { -.2cm , -.15cm } + \draw_path_arc:nnn { 90 } { -90 } { .075cm } + \draw_path_lineto:n { -.3cm , -.3cm } + \draw_path_arc:nnn { 270 } { 90 } { .075cm } + \draw_path_close: + \draw_path_moveto:n { .425cm , .05cm } + \draw_path_arc:nnn { 0 } { 90 } { .25cm } + \draw_path_lineto:n { -.05cm , .3cm } + \draw_path_arc:nnn { 180 } { 270 } { .15cm } + \draw_path_lineto:n { .175cm , .15cm } + \draw_path_lineto:n { .175cm , -.425cm } + \draw_path_moveto:n { .175cm , -.275cm } + \draw_path_lineto:n { .425cm , -.275cm } + \draw_path_moveto:n { .175cm , .3cm } + \draw_path_lineto:n { .175cm , .425cm } + \draw_path_moveto:n { -.3cm , .3cm } + \draw_path_lineto:n { -.3cm , .425cm } + \draw_path_moveto:n { -.3cm , -.3cm } + \draw_path_lineto:n { -.3cm , -.425cm } +} + +\cs_new:Npn \rpgicons_draw_shape_incapacitated: { + \draw_path_moveto:n { \draw_point_polar:nn { .425cm} { 30 } } + \draw_path_arc:nnn { 270 } { 210 } { .425cm } + \draw_path_lineto:n { \draw_point_polar:nn { -.425cm} { 90 } } + \draw_path_arc:nnn { 30 } { 90 } { .425cm } + \draw_path_moveto:n { \draw_point_polar:nn { .425cm} { 90 } } + \draw_path_arc:nnn { 330 } { 270 } { .425cm } + \draw_path_lineto:n { \draw_point_polar:nn { -.425cm} { 150 } } + \draw_path_arc:nnn { 90 } { 150 } { .425cm } + \draw_path_moveto:n { \draw_point_polar:nn { .425cm} { 150 } } + \draw_path_arc:nnn { 30 } { -30 } { .425cm } + \draw_path_lineto:n { \draw_point_polar:nn { -.425cm} { 210 } } + \draw_path_arc:nnn { 150 } { 210 } { .425cm } + \draw_path_moveto:n { \draw_point_polar:nn { .25cm} { 30 } } + \draw_path_arc:nnn { 270 } { 210 } { .25cm } + \draw_path_arc:nnn { 330 } { 270 } { .25cm } + \draw_path_arc:nnn { 30 } { -30 } { .25cm } + \draw_path_arc:nnn { 90 } { 30 } { .25cm } + \draw_path_arc:nnn { 150 } { 90 } { .25cm } + \draw_path_arc:nnn { 210 } { 150 } { .25cm } +} + +\cs_new:Npn \rpgicons_draw_shape_invisible: { + \draw_path_moveto:n { \draw_point_polar:nn { .425cm} { -15 } } + \draw_path_arc:nnn { -15 } { 15 } { .425cm } + \draw_path_moveto:n { \draw_point_polar:nn { .425cm} { 30 } } + \draw_path_arc:nnn { 30 } { 60 } { .425cm } + \draw_path_moveto:n { \draw_point_polar:nn { .425cm} { 75 } } + \draw_path_arc:nnn { 75 } { 105 } { .425cm } + \draw_path_moveto:n { \draw_point_polar:nn { .425cm} { 120 } } + \draw_path_arc:nnn { 120 } { 150 } { .425cm } + \draw_path_moveto:n { \draw_point_polar:nn { .425cm} { 165 } } + \draw_path_arc:nnn { 165 } { 195 } { .425cm } + \draw_path_moveto:n { \draw_point_polar:nn { .425cm} { 210 } } + \draw_path_arc:nnn { 210 } { 240 } { .425cm } + \draw_path_moveto:n { \draw_point_polar:nn { .425cm} { 255 } } + \draw_path_arc:nnn { 255 } { 285 } { .425cm } + \draw_path_moveto:n { \draw_point_polar:nn { .425cm} { 300 } } + \draw_path_arc:nnn { 300 } { 330 } { .425cm } +} + +\cs_new:Npn \rpgicons_draw_shape_paralyzed: { + \draw_path_circle:nn { 0cm , 0cm } { .425cm } + \draw_path_moveto:n { -.175cm , -.225cm } + \draw_path_arc:nnn { 180 } { 0 } { .175cm } + \draw_path_close: + \draw_path_moveto:n { .25cm , .2cm } + \draw_path_lineto:n { .1cm , .05cm } + \draw_path_moveto:n { .25cm , .05cm } + \draw_path_lineto:n { .1cm , .2cm } + \draw_path_moveto:n { -.25cm , .2cm } + \draw_path_lineto:n { -.1cm , .05cm } + \draw_path_moveto:n { -.25cm , .05cm } + \draw_path_lineto:n { -.1cm , .2cm } +} + +\cs_new:Npn \rpgicons_draw_shape_petrified: { + \draw_path_moveto:n { \draw_point_polar:nn { .425cm} { 45 } } + \draw_path_lineto:n { \draw_point_polar:nn { .425cm} { 100 } } + \draw_path_lineto:n { \draw_point_polar:nn { .425cm} { 135 } } + \draw_path_lineto:n { \draw_point_polar:nn { .425cm} { 190 } } + \draw_path_lineto:n { \draw_point_polar:nn { .425cm} { 230 } } + \draw_path_lineto:n { \draw_point_polar:nn { .425cm} { 250 } } + \draw_path_lineto:n { \draw_point_polar:nn { .425cm} { 300 } } + \draw_path_lineto:n { \draw_point_polar:nn { .425cm} { 350 } } + \draw_path_close: + \draw_path_moveto:n { \draw_point_polar:nn { .425cm} { 135 } } + \draw_path_lineto:n { \draw_point_polar:nn { .35cm} { 130 } } + \draw_path_lineto:n { -.25cm , .075cm } + \draw_path_lineto:n { \draw_point_polar:nn { .2cm} { 220 } } + \draw_path_lineto:n { \draw_point_polar:nn { .325cm} { 240 } } + \draw_path_moveto:n { \draw_point_polar:nn { .425cm} { 300 } } + \draw_path_lineto:n { \draw_point_polar:nn { .3cm} { 330 } } + \draw_path_lineto:n { \draw_point_polar:nn { .225cm} { 350 } } + \draw_path_moveto:n { \draw_point_polar:nn { .425cm} { 45 } } + \draw_path_lineto:n { \draw_point_polar:nn { .3cm} { 60 } } + \draw_path_lineto:n { \draw_point_polar:nn { .35cm} { 130 } } + \draw_path_moveto:n { -.15cm , -.175cm } + \draw_path_lineto:n { .075cm , -.15cm } + \draw_path_lineto:n { .125cm , -.2cm } + \draw_path_moveto:n { -.25cm , .075cm } + \draw_path_lineto:n { -.1cm , .1cm } + \draw_path_moveto:n { .25cm , .075cm } + \draw_path_lineto:n { .1cm , .1cm } +} + +\cs_new:Npn \rpgicons_draw_shape_poisoned: { + \draw_path_circle:nn { 0cm , 0cm } { .425cm } + \draw_path_moveto:n { -.15cm , -.2cm } + \draw_path_lineto:n { -.075cm , -.125cm } + \draw_path_lineto:n { 0cm , -.2cm } + \draw_path_lineto:n { .075cm , -.125cm } + \draw_path_lineto:n { .15cm , -.2cm } + \draw_path_moveto:n { .25cm , .175cm } + \draw_path_lineto:n { .1cm , .1cm } + \draw_path_lineto:n { .25cm , .025cm } + \draw_path_moveto:n { -.25cm , .175cm } + \draw_path_lineto:n { -.1cm , .1cm } + \draw_path_lineto:n { -.25cm , .025cm } +} + +\cs_new:Npn \rpgicons_draw_shape_prone: { + \draw_path_circle:nn { .2cm , -.125cm } { .125cm } + \draw_path_moveto:n { -.425cm , 0cm } + \draw_path_lineto:n { -.15cm , 0cm } + \draw_path_arc:nnn { 90 } { -90 } { .125cm } + \draw_path_lineto:n { -.425cm , -.25cm } + \draw_path_moveto:n { .225cm , .15cm } + \draw_path_arc:nnn { 270 } { 360 } { .1cm } + \draw_path_arc:nnn { 180 } { 270 } { .1cm } + \draw_path_arc:nnn { 90 } { 180 } { .1cm } + \draw_path_arc:nnn { 0 } { 90 } { .1cm } + \draw_path_moveto:n { 0cm , .25cm } + \draw_path_arc:nnn { 270 } { 360 } { .1cm } + \draw_path_arc:nnn { 180 } { 270 } { .1cm } + \draw_path_arc:nnn { 90 } { 180 } { .1cm } + \draw_path_arc:nnn { 0 } { 90 } { .1cm } +} + +\cs_new:Npn \rpgicons_draw_shape_restrained: { + \draw_path_moveto:n { -.075cm , -.225cm } + \draw_path_lineto:n { -.075cm , .225cm } + \draw_path_arc:nnn { 90 } { 180 } { .125cm } + \draw_path_lineto:n { -.2cm , 0cm } + \draw_path_arc:nnn { 270 } { 180 } { .1cm } + \draw_path_lineto:n { -.3cm , .3cm } + \draw_path_arc:nnn { 0 } { 90 } { .125cm } + \draw_path_lineto:n { -.425cm , -.075cm } + \draw_path_arc:nnn { 180 } { 235 } { .1cm } + \draw_path_lineto:n { -.3cm , -.225cm } + \draw_path_moveto:n { .075cm , -.225cm } + \draw_path_lineto:n { .075cm , .225cm } + \draw_path_arc:nnn { 90 } { 0 } { .125cm } + \draw_path_lineto:n { .2cm , 0cm } + \draw_path_arc:nnn { -90 } { 0 } { .1cm } + \draw_path_lineto:n { .3cm , .3cm } + \draw_path_arc:nnn { 180 } { 90 } { .125cm } + \draw_path_lineto:n { .425cm , -.075cm } + \draw_path_arc:nnn { 360 } { 330 } { .1cm } + \draw_path_lineto:n { .3cm , -.225cm } + \draw_path_moveto:n { .35cm , -.225cm } + \draw_path_arc:nnn { 90 } { -90 } { .05cm } + \draw_path_lineto:n { -.35cm , -.325cm } + \draw_path_arc:nnn { 270 } { 90 } { .05cm } + \draw_path_close: + \draw_path_moveto:n { .35cm , -.325cm } + \draw_path_arc:nnn { 90 } { -90 } { .05cm } + \draw_path_lineto:n { -.35cm , -.425cm } + \draw_path_arc:nnn { 270 } { 90 } { .05cm } + \draw_path_close: +} + +\cs_new:Npn \rpgicons_draw_shape_stunned: { + \draw_path_circle:nn { 0cm , 0cm } { .425cm } + \draw_path_ellipse:nnn { 0cm , -.175cm } { 0cm , .1cm } { .175cm , 0cm } + \draw_path_moveto:n { ( -.175cm , .125cm ) + ( \draw_point_polar:nn { .125cm } { 90 } ) } + \draw_path_lineto:n { ( -.175cm , .125cm ) + ( \draw_point_polar:nn { .05cm } { 126 } ) } + \draw_path_lineto:n { ( -.175cm , .125cm ) + ( \draw_point_polar:nn { .125cm } { 162 } ) } + \draw_path_lineto:n { ( -.175cm , .125cm ) + ( \draw_point_polar:nn { .05cm } { 198 } ) } + \draw_path_lineto:n { ( -.175cm , .125cm ) + ( \draw_point_polar:nn { .125cm } { 234 } ) } + \draw_path_lineto:n { ( -.175cm , .125cm ) + ( \draw_point_polar:nn { .05cm } { 270 } ) } + \draw_path_lineto:n { ( -.175cm , .125cm ) + ( \draw_point_polar:nn { .125cm } { 306 } ) } + \draw_path_lineto:n { ( -.175cm , .125cm ) + ( \draw_point_polar:nn { .05cm } { 342 } ) } + \draw_path_lineto:n { ( -.175cm , .125cm ) + ( \draw_point_polar:nn { .125cm } { 18 } ) } + \draw_path_lineto:n { ( -.175cm , .125cm ) + ( \draw_point_polar:nn { .05cm } { 54 } ) } + \draw_path_close: + \draw_path_moveto:n { ( .175cm , .125cm ) + ( \draw_point_polar:nn { .125cm } { 90 } ) } + \draw_path_lineto:n { ( .175cm , .125cm ) + ( \draw_point_polar:nn { .05cm } { 126 } ) } + \draw_path_lineto:n { ( .175cm , .125cm ) + ( \draw_point_polar:nn { .125cm } { 162 } ) } + \draw_path_lineto:n { ( .175cm , .125cm ) + ( \draw_point_polar:nn { .05cm } { 198 } ) } + \draw_path_lineto:n { ( .175cm , .125cm ) + ( \draw_point_polar:nn { .125cm } { 234 } ) } + \draw_path_lineto:n { ( .175cm , .125cm ) + ( \draw_point_polar:nn { .05cm } { 270 } ) } + \draw_path_lineto:n { ( .175cm , .125cm ) + ( \draw_point_polar:nn { .125cm } { 306 } ) } + \draw_path_lineto:n { ( .175cm , .125cm ) + ( \draw_point_polar:nn { .05cm } { 342 } ) } + \draw_path_lineto:n { ( .175cm , .125cm ) + ( \draw_point_polar:nn { .125cm } { 18 } ) } + \draw_path_lineto:n { ( .175cm , .125cm ) + ( \draw_point_polar:nn { .05cm } { 54 } ) } + \draw_path_close: +} + +\cs_new:Npn \rpgicons_draw_shape_unconscious: { + \draw_path_moveto:n { 0cm , .15cm } + \draw_path_arc:nnnn { 90 } { -30 } { .425cm } { .15cm } + \draw_path_moveto:n { 0cm , -.15cm } + \draw_path_arc:nnnn { 270 } { 150 } { .425cm } { .15cm } + \draw_path_moveto:n { -.35cm , .15cm } + \draw_path_arc:nnn { 270 } { 360 } { .125cm } + \draw_path_arc:nnn { 180 } { 270 } { .125cm } + \draw_path_arc:nnn { 90 } { 180 } { .125cm } + \draw_path_arc:nnn { 0 } { 90 } { .125cm } + \draw_path_moveto:n { .1cm , -.15cm } + \draw_path_arc:nnn { 270 } { 360 } { .125cm } + \draw_path_arc:nnn { 180 } { 270 } { .125cm } + \draw_path_arc:nnn { 90 } { 180 } { .125cm } + \draw_path_arc:nnn { 0 } { 90 } { .125cm } +} + +\cs_new:Npn \rpgicons_draw_shape_hearing: { + \draw_path_moveto:n { -.175cm , -.275cm } + \draw_path_arc:nnn { 180 } { 360 } { .15cm } + \draw_path_lineto:n { .125cm , -.225cm } + \draw_path_arc:nnn { 180 } { 135 } { .25cm } + \draw_path_arc:nnn { 315 } { 360 } { .25cm } + \draw_path_arc:nnn { 0 } { 180 } { .275cm } + \draw_path_moveto:n { -.15cm , -.1cm } + \draw_path_arc:nnn { -90 } { 90 } { .075cm } + \draw_path_lineto:n { -.15cm , .125cm } + \draw_path_arc:nnn { 180 } { 45 } { .15cm } +} + +\cs_new:Npn \rpgicons_draw_shape_seeing: { + \draw_path_moveto:n { 0cm , .225cm } + \draw_path_arc:nnn { 90 } { 30 } { .45cm } + \draw_path_arc:nnn { 330 } { 210 } { .45cm } + \draw_path_arc:nnn { 150 } { 90 } { .45cm } + \draw_path_moveto:n { 0cm , .225cm } + \draw_path_circle:nn { 0cm , 0cm } { .15cm } +} + +% FRAMES + +\cs_new:Npn \rpgicons_draw_frame_ability: { + \draw_path_circle:nn { 0cm , 0cm } { .45cm } +} + +\cs_new:Npn \rpgicons_draw_frame_saving: { + \draw_path_moveto:n { -.45cm, . 45cm } + \draw_path_lineto:n { .45cm , .45cm } + \draw_path_lineto:n { .45cm , -.05cm } + \draw_path_arc:nnn { 360 } { 180 } { .45cm } + \draw_path_close: +} + +\cs_new:Npn \rpgicons_draw_frame_spellschool: { + \draw_path_moveto:n { -.475cm, . 35cm } + \draw_path_lineto:n { -.35cm , .475cm } + \draw_path_lineto:n { .35cm , .475cm } + \draw_path_lineto:n { .475cm , .35cm } + \draw_path_lineto:n { .425cm , -.375cm } + \draw_path_lineto:n { 0cm , -.475cm } + \draw_path_lineto:n { -.425cm , -.375cm } + \draw_path_close: +} + +\cs_new:Npn \rpgicons_draw_frame_damage: { + \draw_path_circle:nn { 0cm , 0cm } { .45cm } +} + +% USER COMMANDS + +\NewDocumentCommand { \rpgiconsset } { m } { + \keys_set:nn { rpgicons / local ~ options } {#1} +} + +\dim_new:N \l_rpgicons_icon_before_sep_dim +\dim_new:N \l_rpgicons_icon_after_sep_dim +\dim_new:N \l_rpgicons_icon_baseline_dim +\dim_new:N \l_rpgicons_icon_linewidth_dim + +\tl_new:N \l_rpgicons_icon_frame_tl +\tl_new:N \l_rpgicons_icon_color_stroke_tl +\tl_new:N \l_rpgicons_icon_color_fill_tl +\tl_new:N \l_rpgicons_icon_color_text_tl +\tl_new:N \l_rpgicons_icon_color_background_tl + +\fp_new:N \l_rpgicons_icon_opacity_stroke_fp +\fp_set:Nn \l_rpgicons_icon_opacity_stroke_fp { 1.0 } +\fp_new:N \l_rpgicons_icon_opacity_fill_fp +\fp_set:Nn \l_rpgicons_icon_opacity_fill_fp { 1.0 } +\fp_new:N \l_rpgicons_icon_opacity_text_fp +\fp_set:Nn \l_rpgicons_icon_opacity_text_fp { 1.0 } +\fp_new:N \l_rpgicons_icon_opacity_background_fp +\fp_set:Nn \l_rpgicons_icon_opacity_background_fp { 1.0 } + +\fp_new:N \l_rpgicons_icon_transform_scale_fp +\fp_new:N \l_rpgicons_icon_transform_scale_inner_fp +\fp_new:N \l_rpgicons_icon_transform_rotate_fp + +\bool_new:N \l_rpgicons_icon_accessible_basic_bool +\bool_new:N \l_rpgicons_icon_accessible_full_bool + +\cs_generate_variant:Nn \color_select:n { V } +\cs_generate_variant:Nn \color_stroke:n { V } +\cs_generate_variant:Nn \color_fill:n { V } + +\bool_new:N \l__rpgicons_opacity_warning_bool +\cs_new:Npn \__rpgicons_opacity_check: { + \bool_lazy_and:nnT { + \bool_not_p:n { \l__rpgicons_opacity_warning_bool } + } { + \bool_not_p:n { \l__rpgicons_use_opacity_bool } + } { + \msg_warning:nn { rpgicons } { opacity-option-missing } + \bool_set_true:N \l__rpgicons_opacity_warning_bool + } +} +\cs_new:Npn \__rpgicons_accessible_check: { + \IfDocumentMetadataTF { } { + \msg_error:nn { rpgicons } { documentmetadata-missing } + } +} + +\cs_generate_variant:Nn \bool_set:Nn { Ne } +\keys_define:nn { rpgicons / local ~ options } { + before ~ sep .groups:n = { extra } , + before ~ sep .dim_set:N = \l_rpgicons_icon_before_sep_dim , + before ~ sep .initial:n = { 0.05em } , + after ~ sep .groups:n = { extra } , + after ~ sep .dim_set:N = \l_rpgicons_icon_after_sep_dim , + after ~ sep .initial:n = { 0.05em } , + accessible .choice: , + accessible / false .code:n = { + \bool_set_false:N \l_rpgicons_icon_accessible_basic_bool + \bool_set_false:N \l_rpgicons_icon_accessible_full_bool + } , + accessible / basic .code:n = { + \bool_set_true:N \l_rpgicons_icon_accessible_basic_bool + \bool_set_false:N \l_rpgicons_icon_accessible_full_bool + } , + accessible / full .code:n = { + \bool_set_true:N \l_rpgicons_icon_accessible_basic_bool + \bool_set_true:N \l_rpgicons_icon_accessible_full_bool + } , + accessible .default:n = { basic } , + baseline .dim_set:N = \l_rpgicons_icon_baseline_dim , + baseline .initial:n = { -3.5pt } , + frame .tl_set:N = \l_rpgicons_icon_frame_tl , + frame .initial:n = { } , + stroke .tl_set:N = \l_rpgicons_icon_color_stroke_tl , + stroke .initial:n = { . } , + fill .tl_set:N = \l_rpgicons_icon_color_fill_tl , + fill .initial:n = { . } , + text .tl_set:N = \l_rpgicons_icon_color_text_tl , + text .initial:n = { . } , + color .code:n = { + \tl_set:Nn \l_rpgicons_icon_color_stroke_tl {#1} + \tl_set:Nn \l_rpgicons_icon_color_fill_tl {#1} + \tl_set:Nn \l_rpgicons_icon_color_text_tl {#1} + } , + background .tl_set:N = \l_rpgicons_icon_color_background_tl , + background .initial:n = { white } , + stroke ~ opacity .code:n = { + \__rpgicons_opacity_check: + \fp_set:Nn \l_rpgicons_icon_opacity_stroke_fp {#1} + } , + fill ~ opacity .code:n = { + \__rpgicons_opacity_check: + \fp_set:Nn \l_rpgicons_icon_opacity_fill_fp {#1} + } , + text ~ opacity .code:n = { + \__rpgicons_opacity_check: + \fp_set:Nn \l_rpgicons_icon_opacity_text_fp {#1} + } , + opacity .code:n = { + \__rpgicons_opacity_check: + \fp_set:Nn \l_rpgicons_icon_opacity_stroke_fp {#1} + \fp_set:Nn \l_rpgicons_icon_opacity_fill_fp {#1} + \fp_set:Nn \l_rpgicons_icon_opacity_text_fp {#1} + } , + background ~ opacity .code:n = { + \__rpgicons_opacity_check: + \fp_set:Nn \l_rpgicons_icon_opacity_background_fp {#1} + } , + line ~ width .dim_set:N = \l_rpgicons_icon_linewidth_dim , + line ~ width .initial:n = { \l_draw_default_linewidth_dim } , + scale .fp_set:N = \l_rpgicons_icon_transform_scale_fp , + scale .initial:n = { 1.0 } , + scale ~ inner .fp_set:N = \l_rpgicons_icon_transform_scale_inner_fp , + scale ~ inner .initial:n = { 0.675 } , + rotate .fp_set:N = \l_rpgicons_icon_transform_rotate_fp , + rotate .initial:n = { 0.0 } , +} + +\clist_const:Nn \c__rpgicons_types_clist { + die , ability , saving , spell , spellschool , damage , attack , condition +} + +\str_new:N \l__rpgicons_icon_shape_name_str +\clist_map_inline:Nn \c__rpgicons_types_clist { + \str_set:Nn \l__rpgicons_icon_shape_name_str {#1} + \str_replace_all:Nnn \l__rpgicons_icon_shape_name_str { ~ } { _ } + \clist_new:c { l_rpgicons_types_every_ \l__rpgicons_icon_shape_name_str _style_clist } + \keys_define:nn { rpgicons / local ~ options } { + every ~ #1 .code:n = { + \clist_set:cn { + l_rpgicons_types_every_ \l__rpgicons_icon_shape_name_str _style_clist + } {##1} + } + } +} + +\clist_const:Nn \c__rpgicons_shapes_clist { + 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 +} + +\clist_map_inline:Nn \c__rpgicons_shapes_clist { + \str_set:Nn \l__rpgicons_icon_shape_name_str {#1} + \str_replace_all:Nnn \l__rpgicons_icon_shape_name_str { ~ } { _ } + \clist_new:c { l_rpgicons_shapes_every_ \l__rpgicons_icon_shape_name_str _style_clist } + \keys_define:nn { rpgicons / local ~ options } { + every ~ #1 .code:n = { + \clist_set:cn { + l_rpgicons_shapes_every_ \l__rpgicons_icon_shape_name_str _style_clist + } {##1} + } + } +} + +\seq_new:N \l__rpgicons_icon_shape_name_parts_seq +\coffin_new:N \l__rpgicons_icon_accessible_coffin +\coffin_new:N \l__rpgicons_icon_label_coffin +\bool_if:NT \l__rpgicons_compat_mode_bool { + % l3keys cs name fix + \cs_generate_variant:Nn \keys_set:nn { ne } + \cs_generate_variant:Nn \str_set:Nn { Ne } + \cs_generate_variant:Nn \seq_set_split:Nnn { Nee } +} +\prg_generate_conditional_variant:Nnn \clist_if_in:nn { ne } { T , TF } +\cs_generate_variant:Nn \hcoffin_set:Nn { Ne } +\cs_generate_variant:Nn \keys_set_groups:nnn { nne } +\cs_generate_variant:Nn \keys_set_exclude_groups:nnn { nne } +\NewDocumentCommand \RPGIconsUseIcon { s O{} o m } { + \bool_if:NT \l_rpgicons_icon_accessible_full_bool { + \__rpgicons_accessible_check: + \pdf_bdc:nn { Span } { /Alt ~ ( #4 ) } + } + \draw_begin: + \draw_cap_round: + \draw_join_round: + \bool_if:NTF \l__rpgicons_compat_mode_bool { + % l3keys cs name fix + \keys_set:ne { rpgicons / local ~ options } {#2} + } { + \keys_set_exclude_groups:nne { rpgicons / local ~ options } { extra } {#2} + } + \str_set:Ne \l__rpgicons_icon_shape_name_str {#4} + \str_replace_all:Nnn \l__rpgicons_icon_shape_name_str { ~ } { _ } + \str_if_empty:NF \l__rpgicons_icon_shape_name_str { + \clist_if_exist:cT { l_rpgicons_shapes_every_ \l__rpgicons_icon_shape_name_str _style_clist } { + \keys_set:ne { rpgicons / local ~ options } { + \clist_use:cn { l_rpgicons_shapes_every_ \l__rpgicons_icon_shape_name_str _style_clist } { , } + } + } + } + \color_stroke:V { \l_rpgicons_icon_color_stroke_tl } + \color_fill:V { \l_rpgicons_icon_color_fill_tl } + \bool_if:NT \l__rpgicons_use_opacity_bool { + \opacity_stroke:n { \l_rpgicons_icon_opacity_stroke_fp } + \opacity_fill:n { \l_rpgicons_icon_opacity_fill_fp } + } + \draw_linewidth:n { \l_rpgicons_icon_linewidth_dim } + \draw_transform_scale:n { \l_rpgicons_icon_transform_scale_fp } + \draw_transform_rotate:n { \l_rpgicons_icon_transform_rotate_fp } + \draw_baseline:n { \l_rpgicons_icon_baseline_dim } + \bool_if:NT \l_rpgicons_icon_accessible_basic_bool { + \draw_scope_begin: + \bool_if:NTF \l__rpgicons_compat_mode_bool { + % l3draw rectangle fix + % l3draw bounding box workaround + \draw_path_moveto:n { -.5cm , .5cm } + \draw_path_lineto:n { -.5cm , .5cm } + \draw_path_lineto:n { .5cm , .5cm } + \draw_path_lineto:n { .5cm , .5cm } + \draw_path_close: + \draw_path_use_clear:n { clip } + } { + \draw_path_rectangle_corners:nn + { -.5cm , .5cm } + { .5cm , .5cm } + \draw_path_use_clear:n { clip } + } + \bool_if:NTF \l_rpgicons_icon_accessible_full_bool { + \hcoffin_set:Nn \l__rpgicons_icon_accessible_coffin { \pdffakespace #4 \pdffakespace } + } { + \hcoffin_set:Nn \l__rpgicons_icon_accessible_coffin {#4} + } + \coffin_resize:Nnn \l__rpgicons_icon_accessible_coffin { 1cm } { 1cm } + \draw_coffin_use:Nnnn \l__rpgicons_icon_accessible_coffin { hc } { vc } { 0cm , 0cm } + \draw_scope_end: + } + \bool_if:NTF \l__rpgicons_compat_mode_bool { + % l3draw rectangle fix + % l3draw bounding box workaround + \draw_path_moveto:n { -.5cm , -.5cm - \l_rpgicons_icon_linewidth_dim / 2 } + \draw_path_lineto:n { -.5cm , .5cm + \l_rpgicons_icon_linewidth_dim / 2 } + \draw_path_lineto:n { .5cm , .5cm + \l_rpgicons_icon_linewidth_dim / 2 } + \draw_path_lineto:n { .5cm , -.5cm - \l_rpgicons_icon_linewidth_dim / 2 } + \draw_path_close: + \draw_path_use_clear:n { clip } + } { + \draw_path_rectangle_corners:nn + { -.5cm , -.5cm - \l_rpgicons_icon_linewidth_dim / 2 } + { .5cm , .5cm + \l_rpgicons_icon_linewidth_dim / 2 } + \draw_path_replace_bb: + \bool_set_false:N \l_draw_bb_update_bool + } + \draw_scope_begin: + \clist_if_in:neT { ability , saving , spellschool , damage } { \l_rpgicons_icon_frame_tl } { + \use:c { rpgicons_draw_frame_ \l_rpgicons_icon_frame_tl : } + \IfBooleanTF {#1} { + \draw_path_use_clear:n { fill } + \color_select:V { \l_rpgicons_icon_color_background_tl } + \bool_if:NT \l__rpgicons_use_opacity_bool { + \opacity_select:n { \l_rpgicons_icon_opacity_background_fp } + } + } { + \draw_path_use_clear:n { stroke } + } + \draw_transform_scale:n { \l_rpgicons_icon_transform_scale_inner_fp } + } + \clist_if_in:neTF { sixside ~ one , sixside ~ two , sixside ~ three , sixside ~ four , + sixside ~ five , sixside ~ six , sixside ~ seven , sixside ~ eight , sixside ~ nine } {#4} { + \seq_set_split:Nee \l__rpgicons_icon_shape_name_parts_seq + { \c_underscore_str } { \l__rpgicons_icon_shape_name_str } + \exp_args:Ne \rpgicons_draw_shape_sixside_pips:n { + \seq_item:Nn \l__rpgicons_icon_shape_name_parts_seq { 2 } + } + } { + \use:c { rpgicons_draw_shape_ \l__rpgicons_icon_shape_name_str : } + } + \draw_path_use_clear:n { stroke } + \IfValueT {#3} { + \draw_scope_begin: + \color_select:V { \l_rpgicons_icon_color_text_tl } + \bool_if:NT \l__rpgicons_use_opacity_bool { + \opacity_select:n { \l_rpgicons_icon_opacity_text_fp } + } + \hcoffin_set:Ne \l__rpgicons_icon_label_coffin {#3} + \draw_coffin_use:Nnn \l__rpgicons_icon_label_coffin { hc } { vc } + \draw_scope_end: + } + \draw_scope_end: + \draw_end: + \bool_if:NT \l_rpgicons_icon_accessible_full_bool { + \pdf_emc: + } +} + +\str_new:N \l__rpgicons_icon_integer_str +\cs_generate_variant:Nn \str_if_eq:nnTF { ne } +\NewDocumentCommand { \RPGIconsDie } { O{normal} m O{} m } { + \group_begin: + \keys_set_groups:nne { rpgicons / local ~ options } { extra } {#3} + \keys_set:ne { rpgicons / local ~ options } { \clist_use:Nn \l_rpgicons_types_every_die_style_clist { , } } + \str_set:Ne \l__rpgicons_icon_integer_str {#4} + \hspace { \l_rpgicons_icon_before_sep_dim } + \str_if_eq:neTF { large } {#1} { + \RPGIconsUseIcon[scale=.675, #3][#4]{#2} + } { + \str_if_empty:NF \l__rpgicons_icon_integer_str { \str_use:N \l__rpgicons_icon_integer_str \, } + \RPGIconsUseIcon[scale=.333, #3]{#2} + } + \hspace { \l_rpgicons_icon_after_sep_dim } + \group_end: +} +\cs_if_exist:NF \die { \cs_new_eq:NN \die \RPGIconsDie } + +\NewDocumentCommand { \RPGIconsAbility } { O{positive} m O{} } { + \group_begin: + \keys_set_groups:nne { rpgicons / local ~ options } { extra } {#3} + \keys_set:ne { rpgicons / local ~ options } { \clist_use:Nn \l_rpgicons_types_every_ability_style_clist { , } } + \hspace { \l_rpgicons_icon_before_sep_dim } + \str_if_eq:neTF { negative } {#1} { + \RPGIconsUseIcon*[frame=ability, scale=.333, #3]{#2} + } { + \RPGIconsUseIcon[scale=.333, #3]{#2} + } + \hspace { \l_rpgicons_icon_after_sep_dim } + \group_end: +} +\cs_if_exist:NF \ability { \cs_new_eq:NN \ability \RPGIconsAbility } + +\NewDocumentCommand { \RPGIconsSaving } { O{} m O{} } { + \group_begin: + \keys_set_groups:nne { rpgicons / local ~ options } { extra } {#3} + \keys_set:ne { rpgicons / local ~ options } { \clist_use:Nn \l_rpgicons_types_every_saving_style_clist { , } } + \hspace { \l_rpgicons_icon_before_sep_dim } + \str_if_eq:neTF { empty } {#1} { + \RPGIconsUseIcon[frame=saving, scale=.333, #3]{} + } { + \RPGIconsUseIcon[frame=saving, scale=.333, #3]{#2} + } + \hspace { \l_rpgicons_icon_after_sep_dim } + \group_end: +} +\cs_if_exist:NF \saving { \cs_new_eq:NN \saving \RPGIconsSaving } + +\NewDocumentCommand { \RPGIconsSpell } { m O{} } { + \group_begin: + \keys_set_groups:nne { rpgicons / local ~ options } { extra } {#2} + \keys_set:ne { rpgicons / local ~ options } { \clist_use:Nn \l_rpgicons_types_every_spell_style_clist { , } } + \hspace { \l_rpgicons_icon_before_sep_dim } + \RPGIconsUseIcon[scale=.333, #2]{#1} + \hspace { \l_rpgicons_icon_after_sep_dim } + \group_end: +} +\cs_if_exist:NF \spell { \cs_new_eq:NN \spell \RPGIconsSpell } + +\NewDocumentCommand { \RPGIconsSpellschool } { O{positive} m O{} } { + \group_begin: + \keys_set_groups:nne { rpgicons / local ~ options } { extra } {#3} + \keys_set:ne { rpgicons / local ~ options } { \clist_use:Nn \l_rpgicons_types_every_spellschool_style_clist { , } } + \hspace { \l_rpgicons_icon_before_sep_dim } + \str_if_eq:neTF { negative } {#1} { + \RPGIconsUseIcon*[frame=spellschool, scale=.333, #3]{#2} + } { + \RPGIconsUseIcon[frame=spellschool, scale=.333, #3]{#2} + } + \hspace { \l_rpgicons_icon_after_sep_dim } + \group_end: +} +\cs_if_exist:NF \spellschool { \cs_new_eq:NN \spellschool \RPGIconsSpellschool } + +\NewDocumentCommand { \RPGIconsDamage } { m O{} } { + \group_begin: + \keys_set_groups:nne { rpgicons / local ~ options } { extra } {#2} + \keys_set:ne { rpgicons / local ~ options } { \clist_use:Nn \l_rpgicons_types_every_damage_style_clist { , } } + \hspace { \l_rpgicons_icon_before_sep_dim } + \RPGIconsUseIcon[frame=damage, scale=.333, #2]{#1} + \hspace { \l_rpgicons_icon_after_sep_dim } + \group_end: +} +\cs_if_exist:NF \damage { \cs_new_eq:NN \damage \RPGIconsDamage } + +\NewDocumentCommand { \RPGIconsAttack } { m O{} } { + \group_begin: + \keys_set_groups:nne { rpgicons / local ~ options } { extra } {#2} + \keys_set:ne { rpgicons / local ~ options } { \clist_use:Nn \l_rpgicons_types_every_attack_style_clist { , } } + \hspace { \l_rpgicons_icon_before_sep_dim } + \RPGIconsUseIcon[scale=.333, #2]{#1} + \hspace { \l_rpgicons_icon_after_sep_dim } + \group_end: +} +\cs_if_exist:NF \attack { \cs_new_eq:NN \attack \RPGIconsAttack } + +\NewDocumentCommand { \RPGIconsCondition } { m O{} } { + \group_begin: + \keys_set_groups:nne { rpgicons / local ~ options } { extra } {#2} + \keys_set:ne { rpgicons / local ~ options } { \clist_use:Nn \l_rpgicons_types_every_condition_style_clist { , } } + \hspace { \l_rpgicons_icon_before_sep_dim } + \RPGIconsUseIcon[scale=.333, #2]{#1} + \hspace { \l_rpgicons_icon_after_sep_dim } + \group_end: +} +\cs_if_exist:NF \condition { \cs_new_eq:NN \condition \RPGIconsCondition } + +% ROLL SYNTAX + +\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} { } ] } +} + +\keys_define:nn { rpgicons / local ~ options } { + roll ~ syntax .code:n = { \rpgicons_roll_syntax_die_set:n {#1} } , + roll ~ syntax .initial:n = { d , D } , +} + +\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 } + } +} + +\NewDocumentCommand{\RPGIconsRoll}{ m }{ + \rpgicons_roll_syntax_parse:n {#1} +} +\cs_if_exist:NF \roll { \cs_new_eq:NN \roll \RPGIconsRoll } + +% EOF
\ No newline at end of file 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 diff --git a/Master/texmf-dist/tex/latex/rpgicons/rpgicons.sty b/Master/texmf-dist/tex/latex/rpgicons/rpgicons.sty new file mode 100644 index 00000000000..f80d5955c18 --- /dev/null +++ b/Master/texmf-dist/tex/latex/rpgicons/rpgicons.sty @@ -0,0 +1,33 @@ +% File: rpgicons.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'. +% +\ProvidesExplPackage {rpgicons} {2024-04-28} {1.8.2} + {rpg Icons Package} + +\bool_new:N \l__rpgicons_use_legacy_variant_bool +\clist_new:N \l__rpgicons_forwarded_options_clist +\keys_define:nn { rpgicons / select ~ variant } { + l3 .bool_set:N = \l__rpgicons_use_legacy_variant_bool , + l3 .default:n = { false } , + pgf .bool_set:N = \l__rpgicons_use_legacy_variant_bool , + pgf .default:n = { true } , + unknown .code:n = { \clist_put_right:Nn \l__rpgicons_forwarded_options_clist {#1} } +} +\ProcessKeyOptions [ rpgicons / select ~ variant ] + +\bool_if:NTF \l__rpgicons_use_legacy_variant_bool { + \RequirePackage [ \l__rpgicons_forwarded_options_clist ] { rpgicons-pgf } +} { + \RequirePackage [ \l__rpgicons_forwarded_options_clist ] { rpgicons-l3 } +} + +% EOF
\ No newline at end of file |