Newer
Older
\RequirePackage{xr-hyper}
\RequirePackage[
pdfstartpage=1,
hidelinks=true,
bookmarks=true]%
{hyperref}
stylemods={mcols,topic,tree},
\RequirePackage{starfont} % for creature symbols
\RequirePackage{wasysym} % for sq checkboxes
\RequirePackage{appendix}
\RequirePackage{geometry} % changes page borders
\RequirePackage{tabularx}
\RequirePackage{wrapfig}
\RequirePackage{float}
\RequirePackage{epigraph} % part quotes
\RequirePackage{microtype} % more precise word-placement
\RequirePackage{makeidx}
\RequirePackage[english]{babel}
\RequirePackage{multicol}
\RequirePackage{graphicx}
\RequirePackage{etoolbox}
\RequirePackage[explicit]{titlesec}
\RequirePackage{titletoc}
\RequirePackage{adforn}% for fancy headrules
\usetikzlibrary{calc,mindmap,trees}% calc for fancy borders
\usetikzlibrary{intersections}% for very fancy borders with intersecting lines
\usetikzlibrary{decorations.text}% for text along circle paths in cs
\usetikzlibrary{shapes.callouts}% for labels on the cs
\usetikzlibrary{shapes.geometric, intersections}% for pentacle intersections in map
\usetikzlibrary{patterns}% for the pattern 'gridspecks'
\RequirePackage{colortbl}
\RequirePackage[poster]{tcolorbox}
\pgfdeclarepatternformonly{gridspecks}{\pgfqpoint{-1pt}{-1pt}}{\pgfqpoint{1pt}{1pt}}{\pgfqpoint{26pt}{26pt}}
{%
\pgfpathcircle{\pgfqpoint{0pt}{0pt}}{.5pt}%
\pgfusepath{fill}%
}%
%%%%% Common Commands %%%%%
% 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%
}
% This allows us to compare two strings. What other wonders will LaTeX bring in the future? Perhaps subtraction syntax one day.
\ExplSyntaxOn
\NewExpandableDocumentCommand{\ifStrSame}{mmmm}
{
\str_if_eq:eeTF { #1 } { #2 } { #3 } { #4 }
}
\ExplSyntaxOff
\newcounter{fadeout}
\newcommand*\fadeout[2]{%
\setcounter{track}{100}%
\setcounter{fadeout}{100}%
\divide\value{fadeout} by #1%
\Repeat{#1}{\textcolor{black!\arabic{track}!white}{#2}\addtocounter{track}{-\value{fadeout}}}%
}
% This function divides a number by two, and rounds it up.
\newcommand\roundUp[1]{%
\ifodd\value{#1}%
\stepcounter{#1}%
\fi%
\divide\value{#1} by 2%
\addtocounter{#1}{0}% Think this line's pointless? Try removing it and seeing what happens - I dare you.
}
\newcounter{chapshift}
\addtocounter{chapshift}{-1}
\vspace{-6pt}%
\textcolor{\pageSideColor}{\hrulefill}%
\raisebox{-2.1pt}%
{\textcolor{\pageSideColor}{\quad\adfdoubleflourishleft\npcsymbol\adfdoubleflourishright\quad}}%
%% Redefine plain page style, and use it for every page.
\fancypagestyle{plain}{
\fancyhf{}% clear all header and footer fields
\fancyfoot[LE]{\hspace{-2em}\titleFont{\large\thepage\if@mainmatter\randomfourB\hspace{1em}\textcolor{\pageSideColor}{\Repeat{\value{r4b}}{\flourish\hspace{-.2em}}}\fi}}
\fancyfoot[RO]{\hspace{-2em}\titleFont{\randomfour\large\if@mainmatter\textcolor{\pageSideColor}{\Repeat{\value{r4}}{\flourish\hspace{-.2em}}}\hspace{1em}\fi\thepage}}
}
\pagestyle{plain}
%\fancyfoot{}
\newcounter{pageDarkness}
\setcounter{pageDarkness}{20}
\newcounter{pageAlt}
\setcounter{pageAlt}{100}
\newcommand\pageSideColor{black!\arabic{pageDarkness}!white}
\newcommand\pageOppositeColor{black!\arabic{pageAlt}}
\newtoggle{countedPage}
\toggletrue{countedPage}
\ifnum\value{chapter}<14
\pgfmathsetmacro{\BGvadjust}{ -2 * (\value{chapter} - 1)}
\else
\pgfmathsetmacro{\BGvadjust}{ -1 * (\value{chapter} - 1)}
\fi
\ifodd\value{page}
\def\BGpageanchor{current page.north east}
\def\BGanchor{north west}
\def\BGmark{\textcolor{\pageOppositeColor}{\rightmark}}
\def\BGrotate{-90}
\else
\def\BGpageanchor{current page.north west}
\def\BGanchor{north east}
\def\BGmark{\textcolor{\pageOppositeColor}{\leftmark}}
\def\BGrotate{90}
\fi\typeout{Underfed goblins (badness \thepage0000)}
\begin{tikzpicture}[overlay,remember picture]
\path
++(\BGpageanchor)
+(0cm, \BGvadjust cm)
node[
text centered,
inner sep=4pt,
text height=4ex,
text depth=2.5ex,
text width=14em,
text=white,
fill=\pageSideColor,
anchor=\BGanchor,
rotate=\BGrotate,
font=\titleFont,
] {\BGmark};
\end{tikzpicture}%
\fi
}{}
% redefinition of \chaptermark to contain only the number and title (no 'Chapter 1: Pogs', just '1: Pogs')
\renewcommand\chaptermark[1]{\markboth{\thechapter.~#1}{}}
\newcommand\flwr{\textcolor{\pageSideColor}{\ifodd\thepage\adfflowerright\else\adfflowerleft\fi}}
\newcommand\failStar{\textcolor{\pageSideColor}{\Fortune}}
%%%%%%%%%% Allow for external referencing
\newcommand*{\externalReferent}[1]{
\IfFileExists{../rubbish/#1.aux}{
\externaldocument{../rubbish/#1}%
\@addtofilelist{../rubbish/#1.aux}%
\settoggle{#1}{true}%
}%
{\typeout{No file #1.}
\settoggle{#1}{false}
}
\renewcommand{\footnoterule}{\vspace{-0.5em}\noindent\textcolor{\pageSideColor}{\raisebox{2.9pt}{\line(1,0){100}}\hspace{-2pt}\flourish} \vspace{.5em} }
% Argument 1: The target git directory (e.g. 'core')
% Argument 2: What to call that directory (e.g. 'the core rules')
% Argument 3: Which label you're referring to
\newcommand\exRef[3]{%
\iftoggle{#1}{\footnote{See the book of \textit{\MakeUppercase#2}, \autopageref{#3} --- \nameref{#3}.}}%
\newcommand\handout[1]{
\cleardoublepage
\togglefalse{countedPage}
\settoggle{examplecharacter}{true}
\settoggle{examplecharacter}{false}
\cleardoublepage
\ifodd\thepage
\else
\clearpage
\fi
\toggletrue{countedPage}
\pagestyle{plain}
\renewcommand{\npcsymbol}{\adfast{\value{r4}}}
%%%%%%%%%% Section Headers %%%%%%%%%%
%%% Allow quotes under part headers
\let\old@endpart\@endpart
\renewcommand\@endpart[1][]{%
\begin{quote}#1\end{quote}%
\old@endpart}
%%%%%%%%%% 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
\renewcommand\tableofcontents{%
\begin{multicols}{2}
\@starttoc{toc}
\end{multicols}
\newcommand{\chapnumfont}{%
\Huge%
\titleFont%
\renewcommand{\labelitemi}{%
\textcolor{\pageSideColor}{%
\large\ifodd\the\c@page%
\adfdownhalfleafright%
\else%
\adfdownhalfleafleft%
\fi%
}
}
\renewcommand{\labelitemii}{\textcolor{\pageSideColor}{\adfdownhalfleafleft}}
\renewcommand{\labelenumi}{\large\titleFont\arabic{enumi}--}
\renewcommand{\labelenumii}{\titleFont\Roman{enumii}}
%%%%%%%%%% Encounter Numbers
\newcounter{encnum}
\setcounter{encnum}{1}
\newcommand{\sqarea}{town}
\noindent%
\IfFileExists{images/#1.svg}{%
\noindent\includesvg[width=\linewidth]{images/#1}
}{%
\includegraphics[width=\linewidth]{images/#1.jpg}
}
\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}
\begin{tikzpicture}[every shadow/.style={
shadow blur invert,
shadow xshift=-1pt,
shadow yshift=-3pt
}]
\node[anchor=south west,inner sep=0] (image) at (0,0) {\pic{#2}};
\csComments
\begin{scope}[
x={(image.south east)},
y={(image.north west)}
]
\mapLabels
\end{scope}
\foreach \mNum/\mX/\mY in {#2}{
\node [black, font=#1\scshape] at (0.\mX,0.\mY) {\outline[14]{\mNum}};
\newcommand\callout[5][4]{
\node[text=\pageOppositeColor, overlay, rectangle callout, callout relative pointer={(#3)}, fill=\pageSideColor,] (\arabic{enc}) at (#2) [text width=#1em]{{\large\scshape#4}{ #5}};
\newcommand\mapFeature[3][0]{
\node at (#2) {\rotatebox{#1}{\Large\outline{#3}}};
}
\node [black, font=\bfseries] at (0.#2,0.#3) {#4 #1};
\newcommand\mapCircle[5][0]{
\setcounter{track}{#4}
\addtocounter{track}{3}
\addtocounter{track}{#1}
\begin{scope}[
x={(image.south east)},
y={(image.north west)}
]
\draw[fill=white] (0.#2,0.#3) circle (#4em);
\clip[draw] (0.#2,0.#3) circle (#4em) node {\includesvg[width=\arabic{track}em]{images/#5}};
\newcommand\mapPic[4][\Huge]{
\begin{figure*}[#2!]
\begin{tikzpicture}[every shadow/.style={
shadow blur invert,
shadow xshift=-1pt,
shadow yshift=-3pt
}]
\node[anchor=south west,inner sep=0] (image) at (0,0) {\pic{#3}};
\begin{scope}[
x={(image.south east)},
y={(image.north west)}
]
\foreach \mNum/\mX/\mY in {#4}{
\mapLegend{\outline[14]{\titleFont\mNum}}{\mX}{\mY}{#1}
}
\end{scope}
\end{tikzpicture}
\end{figure*}
}
\begin{tikzpicture}
\node[anchor=south west,inner sep=0] (image) at (0,0) {\pic{#2}};
\begin{scope}[
x={(image.south east)},
y={(image.north west)}
]
\foreach \mNum/\mX/\mY in {#3}{
\mapLegend{\outline{\mNum}}{\mX}{\mY}{#1}
}
\end{scope}
\end{tikzpicture}
\label{#2}
}
\newcounter{tn}
\setcounter{tn}{7}
\newcommand\tn[1][\arabic{tn}]{%
\newcommand\roll[2]{%
\setcounter{tn}{7}%
\addtocounter{tn}{\value{#1}}%
\ifltxcounter{#2}{\addtocounter{tn}{\value{#2}}}{}%
%%% The dice-face (\dicef) command shows an actual die, or multiple
%%% dice, equal to a number. The optional argument lets it show
%%% as \large or similar.
\newcounter{diceNo}
\newcommand\dicef[2][]{%
\ifnum\value{diceNo}=12%
\epsdice[black]{6}%
\epsdice{6}%
\ifnum\value{diceNo}>0%
\whileboolexpr{%
test {\ifnumcomp{\value{diceNo}}{>}{6}}%
}{%
\addtocounter{diceNo}{-5}%
\epsdice{5}%
}%
\epsdice[black]{\value{diceNo}}%
\else%
\arabic{diceNo}%
\fi%
\newcommand\twoDice[1]{%
\setcounter{diceNo}{#1}%
\ifnum\value{diceNo}<2%
\setcounter{diceNo}{2}%
\fi%
\ifcase\value{diceNo}%
diceError 0%
\or%
diceError 1%
\or%
\newcounter{diceNo2}
\newcommand\rollDice[1]{%
\setcounter{track}{#1}%
\setcounter{diceNo}{1}%
\setcounter{diceNo2}{1}%
\ifnum\value{track}>7%
\setcounter{diceNo2}{6}%
\fi%
\addtocounter{track}{-\value{diceNo2}}%
\setcounter{diceNo}{\value{track}}%
\epsdice[black]{\arabic{diceNo}} \epsdice{\arabic{diceNo2}}
}
{\raggedright\begin{list}{\Large\dicef{\value{dlist}}}{\usecounter{dlist}}}%
{\raggedright%
\begin{list}%
{\ifnum\value{dlist}=1%
\stepcounter{dlist}%
\fi%
\makebox[0pt][c]{\raisebox{-1em}{\qquad\textcolor{\pageSideColor}{\arabic{dlist}}}}%
\Large\twoDice{\value{dlist}}}%
{\usecounter{dlist}}}%
\newcounter{blingNo}
\setcounter{blingNo}{0}
% Define the 'ornamentedbox' environment
% Wiggly Borders
\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,
}
}
\tikzset{ornamented frame inner/.style={color=\pageSideColor,
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} {
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
([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];
}
}
% 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,
}
% 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,
left=3pt,
right=3pt,
code={\rowcolors{2}{}{gray!10}},
before upper={\parindent15pt},
fonttitle=\bfseries\scshape,
coltitle=black,
attach boxed title to top center={
yshift=-0.25mm-\tcboxedtitleheight/2,
yshifttext=-2mm-\tcboxedtitleheight/2
},
boxed title style={
frame code={
\path[draw=black, 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[draw=black, 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][]{
colback=white,
before upper={\parindent15pt\noindent},
after upper={\iftoggle{verbose}{}{\par What do you do?}},
\begin{wrapfigure}{R}{.#1\textwidth}
#2
\end{wrapfigure}%
\newcommand\outline[2][7]{\contour[#1]{black}{\textcolor{white}{#2}}}
\contourlength{0.1em}
\newcommand{\frontpage}[2][\expandafter\MakeUppercase \jobname]{
\includesvg[width=.2\textwidth]{config/logo}
\par
\vspace{-2em}
{\large\scshape \underline{#2}\par}
\tableofcontents
\bigLine
{\footnotesize \textcolor{\pageSideColor}{Printed \today, or \showCycle~\Roman{fenestraDay}}\par}
\appendix
\renewcommand{\headingtype}{APPENDIX}
\cleardoublepage
\chapter{Appendix}
\renewcommand{\npcsymbol}{\quad\scshape Appendix\quad}
\ifnum\value{pageDarkness}<80
\addtocounter{pageDarkness}{7}
\ifnum\value{pageDarkness}>30
\setcounter{pageAlt}{0}
\fi
\addtocounter{pageDarkness}{-60}
\setcounter{pageAlt}{100}
\newcounter{adf}
\setcounter{adf}{0}
\newcommand\flourish{%
\ifnum\value{adf}>16%
\addtocounter{adf}{-16}%
\fi%
\ifcase\value{adf}%
\adforn{32}%
\or%
\adforn{27}%
\or%
\adforn{3}%
\or%
\begin{tikzpicture}
\node[minimum width=\linewidth+3em, text=\pageOppositeColor, 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}{\showChapter}};
\end{tikzpicture}
}
\textcolor{\pageSideColor}{\large\raisebox{-4pt}{\Large\hspace{-0.2em}\flourish}\titlerule}%
[\textcolor{\pageSideColor}{\large\titlerule\raisebox{-4pt}{\Large\hspace{-0.2em}\flourish}}%
\setcounter{list}{0}]%
\renewcommand*{\thesection}{\arabic{section}}
[\textcolor{\pageSideColor}{\titlerule}]
{\needspace{3em}\filright%
\titleFont%
\newcommand{\tracker}{%
\center\noindent%
\iftoggle{examplecharacter}{%
\iftoggle{genExamples}{}{%
\ifnum\value{track}=\value{ap}%
$\Rightarrow$ %
\fi%
}}{}%
\arabic{track}%
\addtocounter{track}{-1}%
\vspace{.54cm}
\textcolor{\pageSideColor}{\ifodd\value{page}\else\raisebox{-3pt}{\Large\hspace{0.1em}\flourish}\fi\hrulefill\ifodd\value{page}\raisebox{-3pt}{\Large\hspace{-0.1em}\flourish}\fi}%
\newcommand\npcQuote[1]{\global\renewcommand\currentQuote{#1}}
\newcommand{\npc}[2]{%
\global\def\name{#2}%
\renewcommand{\npcsymbol}{#1}%
}
\renewcommand{\npcsymbol}{#1}%
\settoggle{personality}{true}%
\renewcommand{\NPCdescription}{#3}%
\renewcommand{\mannerism}{#4}%
\renewcommand{\npcGoal}{#5}%
}
%%%%%%%%%%%%%%%%%%%% TOGGLES %%%%%%%%%%%%%%%%%%%%
\newtoggle{verbose}
\settoggle{verbose}{true}
\newtoggle{personality}
\settoggle{personality}{false}
\setcounter{tocdepth}{1}
\setcounter{secnumdepth}{1}
%%%%%%%%%%%%%%%%%%%% RANDOM NUMBERS %%%%%%%%%%%%%%%%%%%%
\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}
\setcounter{r2c}{2}
\newcounter{r2d}
\setcounter{r2d}{1}
\setcounter{r3b}{\value{r4}}
\addtocounter{r3b}{-1}
\divide\value{r4b} by 7
\stepcounter{r4b}
\newcounter{rn1t0}
\setcounter{rn1t0}{-1}
\newcounter{r0t1}
\setcounter{r0t1}{0}
\newcounter{r2t3}
\setcounter{r2t3}{2}
\newcounter{r3t4}
\setcounter{r3t4}{3}
\newcounter{rn3t3}
\setcounter{rn3t3}{3}
\newcounter{r4t5}
\setcounter{r4t5}{4}
\newcounter{r4t6}
\setcounter{r4t6}{4}
\newcounter{r12}
\setcounter{r12}{\month}
\newcounter{enc}
\newcounter{list}
\newcounter{age}
\setcounter{age}{1}
\newcounter{gold}
\setcounter{gold}{\day}
\setcounter{enc}{0}
\newcounter{noAppearing}
\setcounter{noAppearing}{1}
\ifnum\value{r2}>1%
\setcounter{r2}{1}%
\else%
\stepcounter{r2}%
\fi%
\setcounter{enc}{\value{r2}}%
\setcounter{r2b}{1}%
\else%
\setcounter{r2b}{2}%
\fi%
\setcounter{r2c}{1}%
\else%
\stepcounter{r2c}%
\newcommand{\randomtwoD}{%
\ifnum\value{r2d}>1%
\setcounter{r2d}{1}\else%
\stepcounter{r2d}%
\fi%
}
\ifnum\value{r3}>2%
\setcounter{r3}{1}%
\fi%
\ifnum\value{r3}<1%
\setcounter{r3}{2}%
\fi%