\documentclass[a4paper,openany]{book}
\usepackage{bind}
\usepackage{lipsum}

\date{\today}
\makeindex[name=spells,title={Spell Summaries},columns=2]

\settoggle{debug}{true}

\begin{document}

\frontmatter

\chapter{Random Stuff}

\section{Introduction}

\begin{multicols}{2}

\subsection{This Document}

This is a test document, to make sure new code works before sticking it in a project.
Current day should equal \arabic{r4b}.
That means the season in Fenestra is \showSeason, which means it's \showTemperature.

\npc{\M}{Random Guy}
\person{1}% STRENGTH
{1}% DEXTERITY 
{1}% SPEED
{{-2}% INTELLIGENCE
{-1}% WITS
{0}}% CHARISMA
{0}% DR
{1}% COMBAT
{Academics 1, Wyldcrafting 1
}% SKILLS
{\Dagger, pieces of string}% EQUIPMENT
{
  \setcounter{Fate}{2}
}

\input{spells/Air1.tex}

\begin{speechtext}

  ``Would you tell me, please, which way I ought to go from here?''

  ``That depends a good deal on where you want to get to.''

\end{speechtext}

\subsection{And now for something completely different}

\Glspl{guard} and \glspl{bothy} and \glspl{village}, oh my!

Also, \gls{talisman}, \gls{paperGuild}, \gls{weaver}, \gls{court}, and \glspl{storypoint}.

\begin{boxtable}

Roll & Result \\\hline

12 & Success \\

11 & Failure \\

\end{boxtable}

\subsection{Random Text}

\lipsum[7]

\subsection{And further more\ldots}

\lipsum[10]

\begin{boxtext}
  \lipsum[4]
\end{boxtext}

\end{multicols}

\mainmatter

\chapter{Side Quests}

\declareSQareas{Slums,Artgate}

\renewcommand\sqarea{Slums}

Featuring losing \glspl{hp} beyond the \gls{edge}.

\begin{multicols}{2}

\sidequest{Cleaning Up}

\lipsum[2]

\sqpart{Slums}% AREA
{Noisy Neighbours}% NAME
{who celebrate their new baby all week}% SUMMARY

\lipsum[3]

\sqpart{Slums}% AREA
{The Rally}% NAME
{for equal rights for squirrels}% SUMMARY

\lipsum[3]

\sqpart{Artgate}% AREA
{The Proposal}% NAME
{Countess Bleachclaw wants a quieter town}% SUMMARY

\lipsum[3]

\stopcontents[sq]

\end{multicols}

\printglossary

\printAllSideQuests{Slums,Artgate}

\chapter{Stat Blocks}

\section{Humanoids}

\begin{multicols}{2}

\subsection{Humans}

\humanfarmer

\humanmaid

\humansoldier

\humanarcher

\royalguard

\story{4}{this One Time, at Bandcamp}

\humansoldier

\humandiplomat[\NPC{\Hu\F}{Bob}{Erratic}{Snaps fingers}{Paladin}]

This section is non-verbose, so only basic stats are shown.
\settoggle{verbose}{false}
\settoggle{debug}{false}

\basilisk

\humanbard[\renewcommand\npcQuote{We are all going to die}\NPC{\Hu\M}{Chris}{Despondent}{Sighs}{Jester}]

\humanbard

\humanthief

\humanalchemist

\necromancer

\subsection{Dwarves}

\settoggle{verbose}{true}

\dwarvensoldier

\dwarventrader

\dwarvenrunemaster

\subsection{Elves}

\elf

\elf

\elvenenchanter

\dryad

\subsection{Gnomes}

\gnome

\gnomishsoldier

\gnomishsoldier

\gnomishillusionist

\subsection{Gnolls}

\gnollhunter

\gnollshaman

\showStdSpells

\gnollshaman

\showStdSpells

\showStdSpells

\end{multicols}

\section{Forest Critters}

\begin{multicols}{2}

\bear

\boar

\chitincrawler

\basilisk

\wolf

\woodspy

\end{multicols}

\section{Undead}

\begin{multicols}{2}

\ghoul

\ghast

\demilich

\lich

\end{multicols}

\chapter{Nura}

\begin{multicols}{2}

\subsection{Humanoids}

\goblin[\npc{\N}{Random Goblin}]

\goblin

\goblin

\goblincaster

\hobgoblin

\ogre

\deepogre

\subsection{Morph Animals}

\morphrat

\morphhorse

\morphcrab

\morphcat

\morphslug

\morphspider

\morphwolf

\end{multicols}

\chapter{Outsiders}

\section{Weird Ones}

\begin{multicols}{2}

\archmage

\archmage

\boxPair[t]{
  \subsubsection{Box Pairs}
  This is the \texttt{\textbackslash boxPair} command.
  It lets a pair of anything sit at the bottom of the page.
  The first argument sits in the left column, and the next in the right.

  The command works well if you have a creature box, like this lava-man.
}{
    \lavaman
}

\dragon

\rockman

\lavaman

\end{multicols}

\section{Same}

\begin{multicols}{2}

\rockman

\archmage

\dragon

\archmage

\lavaman

\end{multicols}

\section{Talismans}

\begin{multicols}{2}

\scrollOfFriendship

\bloodCandle

\minersWeed

\end{multicols}

%%%%% Test Character Sheet

\setcounter{Strength}{0}
\setcounter{Dexterity}{-1}
\setcounter{Speed}{0}
\setcounter{Intelligence}{1}
\setcounter{Wits}{0}
\setcounter{Charisma}{1}

\renewcommand\concept{Loner}
\renewcommand\race{Human}
\renewcommand\rank{Novice}
\renewcommand\name{Proskuff}
\renewcommand\code{Conqueror}

\setcounter{Academics}{2}
\setcounter{Athletics}{0}
\setcounter{Caving}{0}
\setcounter{Crafts}{0}
\setcounter{Deceit}{0}
\setcounter{Empathy}{0}
\setcounter{Medicine}{0}
\setcounter{Performance}{0}
\setcounter{Larceny}{0}
\setcounter{Seafaring}{0}
\setcounter{Stealth}{0}
\setcounter{Tactics}{1}
\setcounter{Vigilance}{0}
\setcounter{Wyldcrafting}{0}

\setcounter{Air}{2}
\setcounter{Combat}{0}
\setcounter{Projectiles}{0}

\setcounter{fp}{5}

\renewcommand\characterWeapon{\shortsword}
\renewcommand\characterArmour{}
\renewcommand\characterEquipment{Bag of flour, bag of chalk, dagger, unopened letter}
\setcounter{gold}{0}

\settoggle{examplecharacter}{true}
\input{config/CS.tex}
\settoggle{examplecharacter}{false}
\renewcommand\csComments{}
\clearpage


\chapter{Bestiary Chapters}

\begin{multicols}{2}

\settoggle{genExamples}{true}

When using a bestiary chapter, the stats appear as dice rolls, rather than fixed amounts.

\subsection{Humans}

\humanfarmer

\humansoldier

\royalguard

\humandiplomat

\humanbard

\humanthief

\humanalchemist

\humanalchemist

\necromancer

\subsection{Dwarves}

\dwarvensoldier

\dwarventrader

\dwarvenrunemaster

\subsection{Elves}

\elf

\elf

\elvenenchanter

\hag

\subsection{Gnomes}

\gnome

\gnomishillusionist

\subsection{Gnolls}

\gnollhunter

\gnollshaman

\gnollshaman

\end{multicols}

\section{Forest Critters}

\begin{multicols}{2}

\bear

\boar

\huntingdog

\cat

\chitincrawler

\basilisk

\end{multicols}

\section{Underground}

\begin{multicols}{2}

\umberhulk

\watcher

\jelly

\jelly

\jelly

\jelly

\end{multicols}

\section{Undead}

\begin{multicols}{2}

\ghoul

\ghast

\demilich

\lich

\end{multicols}

\section{Nura}

\begin{multicols}{2}

\subsection{Animals}

\morphhorse

\morphcrab

\morphcat

\morphslug

\morphspider

\morphwolf

\subsection{Humanoids}

\goblin

\goblincaster

\hobgoblin

\ogre

\end{multicols}

\settoggle{genExamples}{false}

\chapter{Lots of Text}

\begin{multicols}{2}

\noindent
\lipsum

\end{multicols}

\newcommand{\tests}{

\chapter{Another Test}

\section{Test Section}

\begin{multicols}{2}

\randomdozen
\setcounter{track}{\value{r12}}

\swarm[\flight]{Stirges}{\value{r12}}{1}{3}{1}

\lipsum[\arabic{r4}]

\humanbard

\lipsum[2]

\boxPair[t]{
  \subsubsection{Box Pairs}
  This is the \texttt{\textbackslash boxPair} command.
  It lets a pair of anything sit at the bottom of the page.
  The first argument sits in the left column, and the next in the right.

  The command works well if you have a creature box, like this griffin.
}{
    \griffin
}

\subsection{Test subsection}

\dragon

\settoggle{allyCharacter}{true}

\elf

\settoggle{examplecharacter}{true}

\lipsum[3]

\elf

\settoggle{allyCharacter}{false}

\subsubsection{Test sub-sub-section}

\lipsum[10]

\subsubsection{Test sub-sub-section again}

\subsection{Test subsection}

\lipsum[2]

\elf

\settoggle{examplecharacter}{false}

\lipsum[10]

\section{Last Section}

\lipsum[3]

\end{multicols}

}

\tableofcontents

\Repeat{2}{\tests}

\settoggle{verbose}{false}

\Repeat{2}{\tests}

\end{document}