diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/rpgicons/rpgicons-l3.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/rpgicons/rpgicons-l3.sty | 2025 |
1 files changed, 2025 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 |