\ProvidesPackage{config/layout} \RequirePackage[table]{xcolor} \RequirePackage[acronym]{glossaries} \setacronymstyle{short-long-desc} \RequirePackage{glossary-mcols} \RequirePackage{glossaries-extra} \RequirePackage{gfsartemisia-euler} % fancy fonts \RequirePackage[T1]{fontenc} % \RequirePackage{stmaryrd} % For boxy Maths symbols \RequirePackage{wasysym} % for circly Maths symbols \RequirePackage{dingbat} % for curly section symbols \RequirePackage{appendix} \RequirePackage{geometry} % changes page borders \geometry{margin=50pt} \RequirePackage[ scale=1, angle=0, opacity=1, contents={} ]{background}% for fancy borders \RequirePackage{svg} \RequirePackage{alltt} \svgsetup{width=\textwidth} \RequirePackage{tabularx} \RequirePackage{wrapfig} \RequirePackage{float} \RequirePackage{epigraph} % part quotes \RequirePackage{microtype} % more precise word-placement \RequirePackage{makeidx} \RequirePackage[english]{babel} \RequirePackage{multicol} \raggedcolumns \RequirePackage{graphicx} \RequirePackage{etoolbox} \RequirePackage{titlesec,titletoc} \RequirePackage{needspace} \RequirePackage{tikz} \usetikzlibrary{calc,mindmap,trees}% calc for fancy borders \usetikzlibrary{intersections}% for very fancy borders with intersecting lines \usetikzlibrary{shapes.misc}% for very fancy \section \RequirePackage{pifont} \RequirePackage{colortbl} \RequirePackage[poster]{tcolorbox} \tcbuselibrary{breakable,raster} \tcbuselibrary{skins} % used for wiggly-border boxes %%%%% Add fancy page chapter sides %%%%% \pagestyle{plain}% needed for fancy borders \newcounter{chapshift} \addtocounter{chapshift}{-1} \newcounter{pageDarkness} \setcounter{pageDarkness}{20} \newcommand\pageSideColor{% black!\arabic{pageDarkness}% } \newtoggle{sideTab} \settoggle{sideTab}{true} \newcommand\ChapFrame{% \AddEverypageHook{% \iftoggle{sideTab}% { \ifodd\value{page} \backgroundsetup{contents={% \begin{tikzpicture}[overlay,remember picture] \node[ fill=\pageSideColor, inner sep=5pt, rectangle, text width=1.2cm, text height=4.33cm, align=center, anchor=north east ] at ($ (current page.north east) + (-0cm,-2*\thechapshift cm) $) {\rotatebox{90}{\hspace*{.3cm}\parbox[c][1.5cm][t]{3.4cm}{% \raggedright\textcolor{white}{\scshape\rightmark}}}}; \end{tikzpicture}% }% } \else \backgroundsetup{contents={% \begin{tikzpicture}[overlay,remember picture] \node[ fill=\pageSideColor, inner sep=5pt, rectangle, text width=1.2cm, text height=4.33cm, align=center, anchor=north west ] at ($ (current page.north west) + (-0cm,-2*\thechapshift cm) $) {\rotatebox{90}{\hspace*{.3cm}\parbox[c][1.5cm][t]{3.4cm}{% \raggedright\textcolor{white}{\scshape\leftmark}}}}; \end{tikzpicture}% }% } \fi } {}% \BgMaterial }% \stepcounter{chapshift}% } % redefinition of \chaptermark to contain only the title \renewcommand\chaptermark[1]{\markboth{\thechapter.~#1}{}} \RequirePackage{xr-hyper} \RequirePackage[ pdfstartpage=1, hidelinks=true, bookmarks=true]% {hyperref} %%%%%%%%%% Allow for external referencing \newcommand*{\externalReferent}[1]{ \newtoggle{#1} \IfFileExists{../#1/main.aux}{ \makeatletter \@addtofilelist{../#1/main.tex} \@addtofilelist{../#1/main.aux}% \makeatother \externaldocument{../#1/main}% \settoggle{#1}{true} }% {\typeout{No file #1.} \settoggle{#1}{false} } } %%%%%%%%%% Section Headers %%%%%%%%%% %%% Allow quotes under part headers \makeatletter \let\old@endpart\@endpart \renewcommand\@endpart[1][]{% \begin{quote}#1\end{quote}% \old@endpart} \makeatother %%%%%%%%%% Give higher penalty to ~ % The ~ character usually functions as a space with a high penalty for line breaks. % This stops the line breaks altogether, so we can write 'Athletics 3', without a line-break between the Skill and the number. \DeclareRobustCommand{\nobreakspace}{% \leavevmode\nobreak\ } \catcode `\~=13 \def~{\nobreakspace{}} %%%%% Make table of contents two column \makeatletter \renewcommand\tableofcontents{% \begin{multicols}{2} \@starttoc{toc}% \end{multicols} } % and make repeating function \newcommand{\Repeat}[1]{% \expandafter\@Repeat\expandafter{\the\numexpr #1\relax}% } \def\@Repeat#1{% \ifnum#1>0 \expandafter\@@Repeat\expandafter{\the\numexpr #1-1\expandafter\relax\expandafter}% \else \expandafter\@gobble \fi } \def\@@Repeat#1#2{% \@Repeat{#1}{#2}#2% } \makeatother \newcommand{\chapnumfont}{ \fontsize{50}{0} \selectfont } % change bullet points \renewcommand{\labelitemi}{\ding{250}} \renewcommand{\labelitemii}{\ding{254}} %%%%%%%%%% Encounter Numbers \newcounter{encnum} \setcounter{encnum}{1} \newcommand{\encsymbol}{\ding{168}} \newcommand{\encnum}{\ifnumcomp{\value{encnum}}{=}{1}{$A$}{\arabic{encnum}}\encsymbol\addtocounter{encnum}{1}} \newcommand{\sqarea}{town} \newcommand{\headingtype}{CHAPTER} \newcommand{\pic}[1]{ \needspace{4cm} \noindent% \IfFileExists{images/#1.svg}{% \noindent\includesvg[width=\linewidth]{images/#1} }{% \includegraphics[width=\linewidth]{images/#1.jpg} } \label{#1} } \newcommand{\sidepic}[3][5]{ \needspace{4cm} \begin{wrapfigure}{R}{.#1\linewidth} \noindent% \IfFileExists{images/#2.svg}{% \includesvg[width=\linewidth]{images/#2} }{ \includegraphics[width=\linewidth]{images/#2.jpg} } #3 \end{wrapfigure} \label{#1} } \newcommand{\toppic}[2]{ \begin{figure*}[t!] \IfFileExists{images/#1.svg}{ \includesvg[width=\textwidth]{images/#1} }{ \includegraphics[width=\textwidth]{images/#1.jpg} } #2 \label{#1} \end{figure*} } \newcommand{\toppicBorder}[2]{ \begin{figure*}[t!] \begin{tcolorbox}[before upper={\parindent0pt},colframe=black,colback=gray] \IfFileExists{images/#1.svg}{ \includesvg[width=\textwidth]{images/#1} }{ \includegraphics[width=\textwidth]{images/#1.jpg} } #2 \end{tcolorbox} \label{#1} \end{figure*} } \newcommand{\bottompic}[2]{ \begin{figure*}[b!] \IfFileExists{images/#1.svg}{ \includesvg[width=\textwidth]{images/#1} }{ \includegraphics[width=\textwidth]{images/#1.jpg} } #2 \label{#1} \end{figure*} } \newcommand{\bottompicBorder}[2]{ \begin{figure*}[b!] \begin{tcolorbox}[before upper={\parindent0pt},colframe=black,colback=gray] \IfFileExists{images/#1.svg}{ \includesvg[width=\textwidth]{images/#1} }{ \includegraphics[width=\textwidth]{images/#1.jpg} } #2 \label{#1} \end{tcolorbox} \end{figure*} } % sidebling % This command automatically adds little decorations to boxes. \newcounter{blingNo} \setcounter{blingNo}{0} \newcommand\sidebling{ \ifnum\value{dr}>2 \addtocounter{dr}{-2} \includesvg[width=\thedr ex]{config/images/l1} \hspace{-30pt} \fi \ifnum\value{mp}>1 \addtocounter{mp}{7} \includesvg[angle=-20,width=\themp pt]{config/config/images/b1} \hspace{-20pt} \fi \ifnum\value{attb}>8 \addtocounter{attb}{-7} \includesvg[angle=55,width=\theattb ex]{config/images/s1} \hspace{-30pt} \fi } % Define the 'ornamentedbox' environment % Wiggly Borders \makeatletter \tikzset{ use path for main/.code={% \tikz@addmode{% \expandafter\pgfsyssoftpath@setcurrentpath\csname tikz@intersect@path@name@#1\endcsname }% }, use path for actions/.code={% \expandafter\def\expandafter\tikz@preactions\expandafter{\tikz@preactions\expandafter\let\expandafter\tikz@actions@path\csname tikz@intersect@path@name@#1\endcsname}% }, use path/.style={% use path for main=#1, use path for actions=#1, } } \makeatother \colorlet{ornamentedFrameInner}{white} \colorlet{ornamentedFrameOuter}{gray} \tikzset{ornamented frame inner/.style={color=ornamentedFrameInner, line width=2pt}, ornamented frame outer/.style={color=ornamentedFrameOuter, line width=3pt}} \tcbsubskin{ornamented}{empty}{ skin first=ornamented, skin last=ornamented, title engine=standard, colbacktitle=white, frame code={ % Account for the line widths in order not to draw beyond the bounding % box---except for a few very small details for which this is intentional. \coordinate (north west) at ([shift={(1.5pt,-1.5pt)}]frame.north west); \coordinate (north east) at ([shift={(-1.5pt,-1.5pt)}]frame.north east); \coordinate (south east) at ([shift={(-1.5pt,1.5pt)}]frame.south east); \coordinate (south west) at ([shift={(1.5pt,1.5pt)}]frame.south west); % \foreach \xoffset/\point in {34pt/north west, -34pt/north east, 34pt/south west, -34pt/south east} { \fill[color=ornamentedFrameOuter] ([xshift=\xoffset]\point) circle[radius=2.5pt]; } % \path[name path=ornament 1] ([yshift=-4pt]north west) [rounded corners=0.5pt] -- ++(23pt,0) [rounded corners=2pt] -- ++(3pt,-4pt) -- ([shift={(-26pt,-8pt)}]north east) [rounded corners=0.5pt] -- ++(3pt,4pt) [rounded corners=4pt] -- ([yshift=-4pt]north east) -- ([yshift=4pt]south east) [rounded corners=0.5pt] -- ++(-23pt,0) [rounded corners=2pt] -- ++(-3pt,4pt) -- ([shift={(26pt,8pt)}]south west) [rounded corners=0.5pt] -- ++(-3pt,-4pt) [rounded corners=4pt] -- ([yshift=4pt]south west) -- cycle; % \path[rounded corners=0.5pt, name path=ornament 2] ([yshift=-20pt]north west) -- ++(-4pt,3pt) -- ++(0,4pt) to[out=0, in=-90] ([shift={(8pt,0pt)}]north west) -- ([shift={(34pt,0pt)}]north west) -- ([shift={(-8pt,0pt)}]north east) to[out=-90, in=180] ([shift={(4pt,-13pt)}]north east) -- ++(0,-4pt) -- ++(-4pt,-3pt) -- ([yshift=20pt]south east) -- ++(4pt,-3pt) -- ++(0,-4pt) to[out=180, in=90] ([shift={(-8pt,0pt)}]south east) -- ([shift={(8pt,0pt)}]south west) to[out=90, in=0] ([shift={(-4pt,13pt)}]south west) -- ++(0,4pt) -- ++(4pt,3pt) -- cycle; % \draw[ornamented frame outer, use path=ornament 1]; \draw[ornamented frame outer, use path=ornament 2]; \draw[ornamented frame inner, use path=ornament 1]; \draw[ornamented frame inner, use path=ornament 2]; % \node at ([xshift=-20pt,yshift=\thedr-5pt] north east) {\iftoggle{bling}{\sidebling}{}}; } } % These parameters---especially those related to geometry---are better located % here in a style than in the subskin definition (see the Subskins section of % the tcolorbox manual). \tcbset{ornamented/.style={skin=ornamented, toptitle=14.5pt, top=15pt, bottom=9.5pt, coltitle=black} } % Convenient style to use with a tcolorbox preceded by text (or anything), % when one wants to prevent any page break before the tcolorbox. \tcbset{skip and no break/.style={ before={\par\nopagebreak\vspace{2ex}\noindent}} } % Style suitable for an “on line” (in the middle of a paragraph) % 'ornamentedbox'. \tcbset{my on line/.style={ capture=hbox, tcbox raise base, top=14pt, bottom=14pt, before={\kern 5pt}, after={\kern 5pt}} } %%%%% TColorBox Basic Setup %%%%% \tcbset{enhanced, ornamented, left=3pt, right=3pt, code={\rowcolors{2}{}{gray!10}}, before upper={\parindent15pt}, fonttitle=\bfseries,coltitle=black,attach boxed title to top center= {yshift=-0.25mm-\tcboxedtitleheight/2,yshifttext=-2mm-\tcboxedtitleheight/2}, boxed title style={boxrule=-0.5mm, frame code={ \path[tcb fill frame] ([xshift=-4mm]frame.west) -- (frame.north west) -- (frame.north east) -- ([xshift=4mm]frame.east) -- (frame.south east) -- (frame.south west) -- cycle; }, interior code={ \path[tcb fill interior] ([xshift=-2mm]interior.west) -- (interior.north west) -- (interior.north east) -- ([xshift=2mm]interior.east) -- (interior.south east) -- (interior.south west) -- cycle;} } } \newtcolorbox{boxtext}[1][]{ ornamented, top=2em, bottom=2em, colback=white, fonttitle=\scshape, #1 } \newcommand{\sidebox}[2][23]{ \iftoggle{verbose}{ \needspace{4em} \begin{wrapfigure}{R}{.#1\textwidth} #2 \end{wrapfigure}% }{ #2 }% } % Chapter Heading Color \colorlet{chapnumcol}{black!100} %%%%% Section Formatting %%%%% \newcommand{\frontpage}[3]{ \iftoggle{verbose}{ \begin{titlepage} \centering \vspace{2cm} {\scshape\Huge\bfseries #1\par} \vspace{2cm} \includegraphics[width=0.6\textwidth]{#3}\par\vspace{1cm} {\Large #2\par} \vspace{1.5cm} {\large Last edited \today\par} \end{titlepage} \cleardoublepage }{} } \titleformat{\chapter}[display] {\bfseries} {% \ChapFrame \ifnum\value{pageDarkness}<80 \addtocounter{pageDarkness}{7} \else \colorlet{chapnumcol}{black!40} \fi \hspace*{-1.5em} \begin{tikzpicture} \node[minimum width=\linewidth+3em, text=white, fill=\pageSideColor, inner sep=1, outer sep=0, anchor=south] (rectinit) {\Huge \headingtype}; \node[minimum width=.75\textwidth, text=white, inner sep=3, outer sep=0, anchor=south west, text width=.75\textwidth, align=right] at (rectinit.south west) (chapname) {}; \node[minimum width=.25\textwidth, inner sep=-5, outer sep=0, anchor=south west, text width=.25\textwidth, align=left] at (chapname.south east) {\chapnumfont\textcolor{chapnumcol}{\Roman{chapter}}}; \end{tikzpicture}} {0pt} {\Huge} \newcommand\titlebar{% \tikz[baseline,trim left=1em,trim right=3cm] { \fill [\pageSideColor] (2.5cm,-1ex) rectangle (\linewidth+1.5em,2.5ex); \node [ fill=white, text= \pageSideColor, anchor= base east, rounded rectangle, minimum height=3.5ex] at (2.9cm,0) { \textbf{\arabic{section}} }; }% } \titleformat{\section}{\large\needspace{12em}}{\titlebar}{0.1cm}{\textcolor{white}} \renewcommand*{\thesection}{\arabic{section}} \titleformat{\subsection} {\needspace{7em}\normalfont\large\bfseries}{\thesubsection}{1em}{}[\titlerule\vspace{1ex}] % \titleformat{\subsubsection} {\needspace{4em}\normalfont\normalsize\bfseries}{\thesubsubsection}{1em}{} %%%%% Character Sheet Tracker \newcounter{track} \setcounter{track}{18} \newcommand{\tracker}{\center\noindent\arabic{track}\addtocounter{track}{-1}\vspace{.54cm} } %%%%% NPC Names \newcommand{\name}{} \newcommand{\personality}{} \newcommand{\mannerism}{} \newcommand{\archetype}{} \newcommand{\npcsymbol}{} \newcommand{\npc}[2]{\settoggle{personality}{false}\renewcommand{\name}{#1 #2}\renewcommand{\npcsymbol}{#1}} \newcommand{\NPC}[5]{\renewcommand{\name}{#1 #2} \renewcommand{\npcsymbol}{#1} \settoggle{personality}{true} \renewcommand{\personality}{#3} \renewcommand{\mannerism}{#4} \renewcommand{\archetype}{#5} } \newcommand{\T}{\opposition\settoggle{team}{true}} % groups \newcommand{\M}{\mars} % male \newcommand{\F}{\venus} % female \newcommand{\E}{\mercury} % sentient \newcommand{\A}{\taurus} % creature \newcommand{\N}{\leftmoon} % nura \newcommand{\D}{\fullmoon} % undead %%%%%%%%%%%%%%%%%%%% TOGGLES %%%%%%%%%%%%%%%%%%%% \newtoggle{verbose} \settoggle{verbose}{true} \newtoggle{personality} \settoggle{personality}{false} % This toggle tells you if this is just one creature or a team. \newtoggle{team} \settoggle{team}{false} \iftoggle{verbose}{ \setcounter{tocdepth}{1} \setcounter{secnumdepth}{1} } \newcounter{r4} \setcounter{r4}{\day} \addtocounter{r4}{1} \whileboolexpr{ test {\ifnumcomp{\value{r4}}{>}{4}} } {\addtocounter{r4}{-3}} \newcounter{r2} \setcounter{r2}{\value{r4}} \newcounter{r2b} \setcounter{r2b}{\value{r2}} \addtocounter{r2b}{-1} \newcounter{r2c} \setcounter{r2c}{2} \newcounter{r3} \setcounter{r3}{\month} \divide\value{r3} by 4 \newcounter{r3b} \setcounter{r3b}{\value{r4}} \addtocounter{r3b}{-1} \newcounter{r3c} \setcounter{r3c}{0} \newcounter{r4b} \setcounter{r4b}{\day} \newcounter{r12} \setcounter{r12}{\month} \newcounter{enc} \newcounter{list} \newcounter{spelllevel} \setcounter{spelllevel}{0} \newcounter{age} \setcounter{age}{1} \newcounter{gold} \setcounter{gold}{\day} \setcounter{enc}{0} %%%%%%%%%%%%%%%%%%%% LAYOUT %%%%%%%%%%%%%%%%%%%% \makeindex \raggedbottom \newcommand{\currentsphere}{magic} \newcommand{\sphere}[1]{% \setcounter{spelllevel}{0}% \renewcommand{\currentsphere}{#1}% \index{#1}% \section{\currentsphere} }% \newcommand{\spelllevel}{% \needspace{10em} \addtocounter{spelllevel}{1}% \subsection{\currentsphere~ Level \arabic{spelllevel}}% } \newcommand{\enhancement}[3]{% \paragraph[(#1) #2: #3]{(#1) Enhancement -- #2:}% \index{Enhancement!#2}% } \newcommand{\magicitem}[7]{% \vspace{2em}\needspace{4em}\noindent\textbf{#1}% \index{Magical Item!#1} \noindent \textit{Spells: #2, }% \textit{Path: #3, }% \textit{Duration: #4, }% \textit{Type: #5, }% \textit{Potency: +#6, }% \textit{MP: #7}% % Type can be 'Pocket Spell', 'Talisman', or 'Artefact'. \needspace{2em}% } \newcommand{\manalake}[8]{ \subsection{#1 (Level #8)} \textit{Spells: #2, }\textit{Path: #3, }\textit{Duration: #4, }\textit{Type: #5, }\textit{Potence: #6, }\textit{#7 MP}% Type can be 'pocket spell', 'magical item', or 'artefact'. \index{Mana Lakes!#1} \vspace{.3em} } \newcommand{\spell}[4]{ \subsubsection[#1: #4]{#1} {\it Type: #2, Skill: #3} \noindent% } % Toggles for knacks %%%%%%%%%%%%%%%%%%%% Environments %%%%%%%%%%%%%%%%%%%% \newenvironment{speechtext}{ \begin{boxtext}\it \begin{quotation}\noindent}% {\end{quotation} \end{boxtext}% } \newenvironment{rolltable}% {\vspace{.3cm}\begin{tabular}{|lp{.8\textwidth}} Roll & Result \\ \hline }% {\end{tabular}} \newenvironment{exampletext}{ \iftoggle{verbose}{ \needspace{2em}\vspace{.3cm} \rule{.9\linewidth}{0.2pt} \vspace{.3cm} \it }{} }{ \iftoggle{verbose}{ \normalfont\vspace{2em} }{} } \newtcolorbox{xpchart}[1]{tabularx={l|X},adjusted title=XP Rewards for #1, bottom=10pt, left=3pt, right=3pt, code={\rowcolors{3}{}{gray!10}} } % this shows encounters, and the two counters below show the encounter number \newtcolorbox[use counter=enc, use counter=list]{encounters}[1]{ ornamented, adjusted title=Encounters in #1, tabularx={XXp{.6\textwidth}}, bottom=10pt, left=3pt, right=3pt, code={\rowcolors{2}{}{gray!10}\setcounter{enc}{19}\setcounter{list}{18}}} \newcommand{\li}{\addtocounter{enc}{-1}\arabic{enc}&} \newcommand{\lii}{\addtocounter{list}{-1}\arabic{list}&} \newtcolorbox{boxtable}[1][cX]{ tabularx={#1}, top=10pt, bottom=10pt, left=3pt, right=3pt, code={\rowcolors{2}{}{gray!10}\needspace{2em}} } \newtcolorbox{nametable}[2][cX]{ tabularx={#1}, top=10pt, adjusted title=#2, bottom=10pt, left=3pt, right=3pt, code={\rowcolors{2}{}{gray!10}\needspace{1em}} } \newtcolorbox{rollchart}{ tabularx={cX}, top=10pt, bottom=10pt, left=3pt, right=3pt, code={\rowcolors{2}{}{gray!10}\needspace{2em}} } \newtcolorbox{xpbox}[1]{ tabularx={lX}, bottom=10pt, left=3pt, right=3pt, top=10pt, code={\rowcolors{2}{}{gray!10}}, equal height group=#1 } %%%%%%%%%%%%%%%%%%% COMMANDS %%%%%%%%%%%%%%%%%%%% \newcommand{\story}[2]{% \subsubsection{#2} Cost: #1\par\noindent } \newcommand{\best}[2][\C]{ \npc{#1}{#2} \subsubsection{#2} \index{Antagonists!#2} } \newcommand{\startingCondition}[1]{ \ifnum\value{list}<95 \item #1 \fi } \newcounter{random} \setcounter{random}{1} \newcounter{increment} \setcounter{increment}{1} \newcommand{\random}{ \addtocounter{random}{\value{page}} \multiply\value{random} by \value{chapter}\addtocounter{random}{\value{increment}} \whileboolexpr{ test {\ifnumcomp{\value{random}}{>}{100}} } {\addtocounter{random}{-100}} \whileboolexpr{ test {\ifnumcomp{\value{random}}{>}{10}} } {\addtocounter{random}{-10}} \addtocounter{increment}{1} } \newcommand{\randomtwo}{% \ifnumcomp{\value{r2}}{>}{1}{\setcounter{r2}{1}}{\addtocounter{r2}{1}}% \setcounter{enc}{\value{r2}}% } \newcommand{\randomtwoB}{ \ifodd\value{r3b}\setcounter{r2b}{1}\else\setcounter{r2b}{2}\fi% } \newcommand{\randomtwoC}{ \ifnum\value{r2c}>1% \setcounter{r2c}{1}\else% \addtocounter{r2c}{1}% \fi% } \newcommand{\randomthree}{% \ifnumcomp{\value{r3}}{>}{2}{\setcounter{r3}{1}}{\addtocounter{r3}{1}}% \setcounter{age}{\value{r3}}% \ifnum\value{r3}<1\setcounter{r3}{2}\fi% } \newcommand{\randomthreeB}{% \ifnum\value{r3b}>2% \setcounter{r3b}{1}% \else% \addtocounter{r3b}{1}% \fi% \ifnum\value{r3b}<1% \setcounter{r3b}{3} \fi% } \newcommand{\randomthreeC}{ \ifnum\value{r3c}>2% \setcounter{r3c}{1}\else% \addtocounter{r3c}{1}% \fi% } \newcommand{\randomfour}{% \ifnumcomp{\value{r4}}{>}{3}{\setcounter{r4}{1}}{\addtocounter{r4}{1}}% \ifnumcomp{\value{r4}}{<}{1}{\setcounter{r4}{1}}{} \setcounter{track}{\value{r4}}% } \newcommand{\randomfourB}{% \ifnum\value{r4b}>3\setcounter{r4b}{1}% \else% \addtocounter{r4b}{1}% \fi% } \newcommand{\randomdozen}{% \ifnum\value{r12}>12\setcounter{r12}{2}\fi% \ifnum\value{r12}<4\setcounter{r12}{2}\fi% \ifnum\value{age}>0\addtocounter{r12}{\value{age}}\else\ifnum\value{r4}>0\addtocounter{r12}{\value{r4}}\else\addtocounter{r12}{3}\fi\fi% } \newcommand{\mapentry}[1]{ \needspace{2em} \addtocounter{list}{1} \subsubsection[#1]{ \arabic{list}: #1} } %%%%% Side Quests % the first side quest gets a ticked box in the toc. % the rest get an empty box, so the GM can tick it once it's ready. \newtoggle{firstsq} \settoggle{firstsq}{true} \newcommand{\sqtoc}{\printcontents[\sqarea]{l}{2}{\section*{Summaries}\setcounter{tocdepth}{3}}} % Change the tocdepth from 2 to 3 in order to output a miniature table of contents on all side quests \newcommand{\sqminitoc}{ \begin{figure*}[t] \begin{tcolorbox}[ornamented,adjusted title={Summary: \sqName}] \vspace{-1em} \printcontents[sq]{l}{2}{\setcounter{tocdepth}{3}} \end{tcolorbox} \end{figure*} } \newcommand{\sqName}{} \newcommand{\sidequest}[1]{% \renewcommand{\sqName}{#1} \resumecontents[\sqarea] \subsection{\sqName} \stopcontents[\sqarea] \settoggle{firstsq}{true} } \newcommand{\sqpart}[3]{\resumecontents[#1]\subsubsection[\iftoggle{firstsq}{\CheckedBox}{\Square} #2 -- #3]{(#1) #2}\stopcontents[#1]\settoggle{firstsq}{false}} %%%%% Character Sheet Commands \newcommand{\trait}[1]{ \vspace{.2cm} #1 \line(1,0){30} \begin{tabular}{p{0em}p{0em}p{0em}p{0em}p{0em}p{0em}p{0em}p{0em}p{0em}} \ding{108} & \ding{109} & \ding{109} & \ding{109} & \ding{109} & \ding{109} & \ding{109} & \ding{109} & \ding{109} \\ \ding{111} & \ding{111} & \ding{111} & \ding{111} & \ding{111} & \ding{111} & \ding{111} & \ding{111} & \ding{111} \\ \end{tabular} } \newcommand{\shortline}{\line(1,0){22}} \newcommand{\weeline}{\line(1,0){30} \hspace{.6cm}} \newcommand{\vlongline}{\line(1,0){100}\hspace{0.8cm}} \newcommand{\writeline}{\hrulefill} \newcommand{\fiveBoxesRow}{\ding{111} & \ding{111} & \ding{111} & \ding{111} & \ding{111}} \newcommand{\fiveboxes}{\ding{111}\ding{111}\ding{111}\ding{111}\ding{111}} \newcommand{\threeboxes}{\ding{111}\ding{111}\ding{111}} \newcommand{\threecircles}{\ding{109}\ding{109}\ding{109}} \newcommand{\tenboxes}{ \ding{111} & \ding{111} & \ding{111} & \ding{111} & \ding{111} & \ding{111} & \ding{111} & \ding{111} & \ding{111} & \ding{111} \\} \newcommand{\tencircles}{\ding{109} & \ding{109} & \ding{109} & \ding{109} & \ding{109} & \ding{109} & \ding{109} & \ding{109} & \ding{109} & \ding{109} \\} \newcommand{\attributecircles}{\ding{175}\ding{174}\ding{173}\ding{172}{\Large\ding{109}}\ding{172}\ding{173}\ding{174}\ding{175}} \newcommand{\Split}{ \line(1,0){120} } \newcommand{\skill}[1]{#1 \hrulefill & \ding{109} & \ding{109} & \ding{109} \\ } \newcommand{\longline}{\line(1,0){320}\par\vspace{.2cm}}