Adding general overhauls, autobuild script and structuring

This commit is contained in:
🐙PiperYxzzy
2023-04-23 18:11:27 +02:00
parent 98138d0a21
commit 17665d538e
8 changed files with 545 additions and 237 deletions

2
template/.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
cards.aux
cards.log

BIN
template/cards.pdf Normal file

Binary file not shown.

280
template/cards.tex Normal file
View File

@@ -0,0 +1,280 @@
\documentclass{scrartcl}
% Compiled with assistance from a wonderful guide by Brett Witty: https://www.brettwitty.net/how-to-design-cards-1.html; https://www.brettwitty.net/how-to-design-cards-2.html; https://www.brettwitty.net/how-to-design-cards-3.html
\usepackage{pdflscape}
\usepackage{xcolor}
\usepackage{tikz}
\usepackage{alchemy}
\usetikzlibrary{positioning}
\usepackage{pifont}
\usepackage{graphicx}
\usepackage{etoolbox}
\usepackage[utf8]{inputenc}
\usepackage{multicol}
\usepackage[margin=8mm]{geometry}
\usepackage{nopageno}
\usepackage{graphicx, txfonts}
\usepackage{anyfontsize}
\usepackage{ifthen}
\usepackage{array}
\usepackage{dirtytalk}
\RequirePackage[active,tightpage]{preview}
\PreviewEnvironment{tikzpicture}
\setlength{\PreviewBorder}{0.125in}
\hyphenpenalty=100000
% All cards
\newcommand{\cardmargin}{2mm}
\newcommand{\cardcorners}{4mm}
\newcommand{\cardwidth}{63mm}
\newcommand{\cardheight}{88mm}
\newcommand{\cardnameheight}{10mm}
\newcommand{\carddescriptionheight}{30mm}
\newcommand{\carddescriptionmargin}{4mm}
% TODO apply internationalization rules here too
\newcommand{\card}[1]{\textbf{#1}}
\newcommand{\act}{\textbf{Action}}
\newcommand{\stn}{\textbf{Stance}}
\newcommand{\fin}{\textbf{Final}}
\newcommand{\mis}{\textbf{Mission}}
%\newcommand{\brg}{\textcolor{white}\bargainheart{\textcolor{black}\bargainheartoutline}}
\newcommand{\brg}{{\ooalign{\textcolor{white}\bargainheart\cr\hss\textcolor{black}\bargainheartoutline\kern .025em\hss}}}
\newcommand{\btr}{\betrayalheart}
\newcommand{\pnt}{\textbf{Soul}}
\newcommand{\pnts}{\textbf{Souls}}
\newcommand{\brgbrg}{\brg\!\!\brg}
\newcommand{\btrbtr}{\btr\!\!\btr}
\newcommand{\btrbrg}{\btr\!\!\brg}
\newcommand{\brgbtr}{\brg\!\!\btr}
% Stance Maps
% PLAYER CARDS
\newcommand{\player}[1]{
\ifthenelse{\equal{#1}{\string 1}}{\lead{scale=8, line width=6pt}}{}
\ifthenelse{\equal{#1}{\string 2}}{\fermentation{scale=8, line width=6pt}}{}
\ifthenelse{\equal{#1}{\string 3}}{\phosphorus{scale=8, line width=6pt}}{}
\ifthenelse{\equal{#1}{\string 4}}{\incineration{scale=8, line width=6pt}}{}
\ifthenelse{\equal{#1}{\string 5}}{\dissolution{scale=8, line width=6pt}}{}
\ifthenelse{\equal{#1}{\string 6}}{\digestion{scale=8, line width=6pt}}{}
\ifthenelse{\equal{#1}{\string 7}}{\silver{scale=8, line width=6pt}}{}
\ifthenelse{\equal{#1}{\string 8}}{\transmutation{scale=8, line width=6pt}}{}
}
\newcommand{\playersml}[1]{
\ifthenelse{\equal{#1}{\string 1}}{\lead{scale=6, line width=4pt}}{}
\ifthenelse{\equal{#1}{\string 2}}{\fermentation{scale=6, line width=4pt}}{}
\ifthenelse{\equal{#1}{\string 3}}{\phosphorus{scale=6, line width=4pt}}{}
\ifthenelse{\equal{#1}{\string 4}}{\incineration{scale=6, line width=4pt}}{}
\ifthenelse{\equal{#1}{\string 5}}{\dissolution{scale=6, line width=4pt}}{}
\ifthenelse{\equal{#1}{\string 6}}{\digestion{scale=6, line width=4pt}}{}
\ifthenelse{\equal{#1}{\string 7}}{\silver{scale=6, line width=4pt}}{}
\ifthenelse{\equal{#1}{\string 8}}{\transmutation{scale=6, line width=4pt}}{}
}
\newcommand{\matmargins}{30mm}
\newcommand{\matwidth}{267mm}
\newcommand{\matheight}{180mm}
\newcommand{\matpadding}{3mm}
\newcommand{\matbaseangle}{261}
\newcommand{\matrotationper}{33}
\newcommand{\matcardexperimental}[2]{
\draw[rounded corners = \cardcorners, #1, rotate around={\matbaseangle + #2 * \matrotationper:(0.5 * \matwidth, 0.8 * \cardwidth + \cardmargin)}] (0.5 * \matwidth - 0.5 * \cardwidth, 1.4 * \cardwidth + \cardmargin) rectangle ++(\cardwidth - \cardmargin, \cardheight - \cardmargin);
}
\newcommand{\stancematexperimental}[1]{ % Name, Description, Instant?, Persistent?
\begin{tikzpicture}
\draw[rounded corners = \cardcorners] (0,0) rectangle (\matwidth, \matheight);
\newcounter{Rotations}
\matcard{red}{0}
\matcard{red}{1}
\matcard{red}{2}
\matcard{red}{3}
\matcard{red}{4}
\matcard{red}{5}
\matcard{red}{6}
\node (name) at (0.5 * \cardwidth - 0.5 * \cardmargin, \carddescriptionheight + \cardnameheight) [text width = \cardwidth - 3 * \cardmargin, minimum height = \cardnameheight, align = center] {\Large};
\end{tikzpicture}
}
\newcommand{\matinner}{1mm}
\newcommand{\matcard}[4]{
\ifthenelse{\equal{#3}{#4}}
{
\node (pname) at (\cardwidth * #1 + \matinner * #1 + \cardmargin + \cardwidth * 0.5, \matpadding + \cardheight * #2 + \cardheight * 0.9) [align = center] {YOU (NOTES \& SOULS)};
}
{
\draw[rounded corners = \cardcorners, draw] (\matpadding + \cardwidth * #1 + \matinner * #1, \matpadding + \cardheight * #2) rectangle ++(\cardwidth - \cardmargin, \cardheight - \cardmargin);
\node (pname) at (\cardwidth * #1 + \matinner * #1 + \cardmargin + \cardwidth * 0.5, \matpadding + \cardheight * #2 + \cardheight * 0.5) [align = center] {\player{#3}};
}
}
\newcommand{\playercard}[1]{ % Name, Description, Instant?, Persistent?
\begin{tikzpicture}
\draw[rounded corners = \cardcorners] (0,0) rectangle (\cardwidth - \cardmargin, \cardheight - \cardmargin);
\node (name) at (0.5 * \cardwidth - 0.5 * \cardmargin, \cardheight * 0.25) [text width = \cardwidth - 3 * \cardmargin, minimum height = 0, align = center] {\Large \playersml{#1}};
\end{tikzpicture}
}
\newcommand{\stancemat}[1]{ % Player #
\begin{tikzpicture}
\draw[white] (0,0) rectangle (\matwidth, \matheight);
\matcard{0}{0}{1}{#1}
\matcard{1}{0}{2}{#1}
\matcard{2}{0}{3}{#1}
\matcard{3}{0}{4}{#1}
\matcard{0}{1}{5}{#1}
\matcard{1}{1}{6}{#1}
\matcard{2}{1}{7}{#1}
\matcard{3}{1}{8}{#1}
\end{tikzpicture}
}
% Sigils
\newcommand{\sigil}[3]{ % Name, Description, Initials
\begin{tikzpicture}
\draw[rounded corners = \cardcorners] (0,0) rectangle (\cardwidth - \cardmargin, \cardheight - \cardmargin);
\node (name) at (0.5 * \cardwidth - 0.5 * \cardmargin, \cardheight * 0.85) [text width = \cardwidth - 2 * \cardmargin, align = center] {\Large #1};
\node (description) at (0.5 * \cardwidth - 0.5 * \cardmargin, \cardheight * 0.125) [draw = none, fill = none, thick, text width = \cardwidth - 2 * \carddescriptionmargin, align = center] {
\small \say{\textit{#2}}
};
\end{tikzpicture}
}
% Actions
\newcommand{\action}[6]{ % Name, Description, Instant?, Persistent?, Intro V, Updated V
\begin{tikzpicture}
\draw[rounded corners = \cardcorners] (0,0) rectangle (\cardwidth - \cardmargin, \cardheight - \cardmargin);
\node (name) at (0.5 * \cardwidth - 0.5 * \cardmargin, \carddescriptionheight + \cardnameheight) [text width = \cardwidth - 3 * \cardmargin, minimum height = \cardnameheight, align = center] {\Large #1};
\node (description) at (0.5 * \cardwidth - 0.5 * \cardmargin, 0.5 * \carddescriptionheight + \carddescriptionmargin) [draw = lightgray, fill = white, thick, text width = \cardwidth - 3 * \carddescriptionmargin, minimum height = \carddescriptionheight, align = center] {
\ifstrempty{#3}{}{
% Instant, add the instant icon
\small \textbf{Instant}: \textit{#3}
}\ifstrempty{#4}{}{
% Persistent, add the instant icon
\small \textbf{Persistent}.
}
\small #2
};
\end{tikzpicture}
}
% Stances
\newcommand{\bargainheart}{\ensuremath\varheartsuit}
\newcommand{\bargainheartoutline}{\ensuremath\heartsuit}
\newcommand{\betrayalheart}{\rotatebox[origin=c]{180}{\ensuremath\varheartsuit}}
\newcommand{\heart}[1]{
\ifthenelse{\equal{#1}{BARGAIN}}
{\bargainheartoutline}
{\betrayalheart}
}
\newcommand{\stance}[5]{ % Name, Description, Type, AgainstBargain, AgainstBetrayal
\begin{tikzpicture}
\draw[rounded corners = \cardcorners] (0,0) rectangle (\cardwidth - \cardmargin, \cardheight - \cardmargin);
\node (type) at (0.12 * \cardwidth + \cardmargin, 0.88 * \cardheight) [align = left] {\fontsize{50px}{50px} \heart{#3}};
\node (basevsbargain) at (0.75 * \cardwidth, 0.88 * \cardheight + 1.1mm) [rounded corners = \cardcorners, align = center] {\textcolor{white}{\fontsize{50px}{60px} \bargainheart{}}};
\node (basevsbargainoutline) at (0.75 * \cardwidth, 0.88 * \cardheight + 1.1mm) [rounded corners = \cardcorners, align = center] {\fontsize{50px}{60px} \bargainheartoutline{}};
\node (basevsbetrayal) at (0.86 * \cardwidth, 0.88 * \cardheight - 1.1mm) [rounded corners = \cardcorners, align = center] {\fontsize{50px}{60px} \betrayalheart{}};
\node (basevsbargaintext) at (0.75 * \cardwidth + 0.5mm, 0.88 * \cardheight + 1.5mm) [rounded corners = \cardcorners, align = center] {#4};
\node (basevsbetrayaltext) at (0.86 * \cardwidth + 0.5mm, 0.875 * \cardheight - 1mm) [rounded corners = \cardcorners, align = center] {\textcolor{white}{#5}};
\ifstrempty{#2}
{
\node (name) at (0.5 * \cardwidth - 0.5 * \cardmargin, 0.5 * \cardnameheight) [text width = \cardwidth - 3 * \cardmargin, minimum height = \cardnameheight, align = center] {\Large #1};
}
{
\node (name) at (0.5 * \cardwidth - 0.5 * \cardmargin, \carddescriptionheight + \cardnameheight) [text width = \cardwidth - 3 * \cardmargin, minimum height = \cardnameheight, align = center] {\Large #1};
\node (description) at (0.5 * \cardwidth - 0.5 * \cardmargin, 0.5 * \carddescriptionheight + \carddescriptionmargin) [draw = lightgray, fill = white, thick, text width = \cardwidth - 3 * \carddescriptionmargin, minimum height = \carddescriptionheight, align = center] {\small #2};
}
\end{tikzpicture}
}
%TODO Finals
\newcommand{\final}[3]{ % Name, Description, Priority
\begin{tikzpicture}
\draw[rounded corners = \cardcorners] (0,0) rectangle (\cardwidth - \cardmargin, \cardheight - \cardmargin);
\node (name) at (0.5 * \cardwidth - 0.5 * \cardmargin, \carddescriptionheight + \cardnameheight) [text width = \cardwidth - 3 * \cardmargin, minimum height = \cardnameheight, align = center] {\Large #1};
\node (priority) at (0.5 * \cardwidth - 0.5 * \cardmargin, \cardheight - \cardmargin - 0.5 * \cardnameheight) [minimum height = \cardnameheight, align = right] {\LARGE #3};
\node (description) at (0.5 * \cardwidth - 0.5 * \cardmargin, 0.5 * \carddescriptionheight + \carddescriptionmargin) [draw = lightgray, fill = white, thick, text width = \cardwidth - 3 * \carddescriptionmargin, minimum height = \carddescriptionheight, align = center] {
\small #2
};
\end{tikzpicture}
}
%TODO Missions
%TODO images
\begin{document}
\thispagestyle{empty}
\stancemat{1}
\stancemat{2}
\stancemat{3}
\stancemat{4}
\stancemat{5}
\stancemat{6}
\stancemat{7}
\stancemat{8}
\playercard{1}
\playercard{2}
\playercard{3}
\playercard{4}
\playercard{5}
\playercard{6}
\playercard{7}
\playercard{8}
\end{document}

20
template/texput.log Normal file
View File

@@ -0,0 +1,20 @@
This is LuaHBTeX, Version 1.12.0 (TeX Live 2020/Debian) (format=lualatex 2022.11.3) 8 FEB 2023 21:41
restricted system commands enabled.
**cards.pdf
! Emergency stop.
<*> cards.pdf
End of file on the terminal!
Here is how much of LuaTeX's memory you used:
6 strings out of 478824
100000,383344 words of node,token memory allocated 270 words of node memory still in use:
1 hlist, 39 glue_spec nodes
avail lists: 2:12,3:1,4:1,5:1
19793 multiletter control sequences out of 65536+600000
22 fonts using 2516239 bytes
0i,0n,0p,17b,6s stack positions out of 5000i,500n,10000p,200000b,200000s
! ==> Fatal error occurred, no output PDF file produced!