aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2025-08-26 14:48:19 +0200
committerFlorian Fischer <florian.fischer@muhq.space>2025-08-26 14:48:19 +0200
commitf1353ebaf7f55367fcda17bc1b9ae85d23916b40 (patch)
treee0cb3b1a145f722e420342f344ae6e4e0351687a
parent1cdbad70ae11b988db883fb6433c088eba4f25b0 (diff)
downloadmuhqs-game-f1353ebaf7f55367fcda17bc1b9ae85d23916b40.tar.gz
muhqs-game-f1353ebaf7f55367fcda17bc1b9ae85d23916b40.zip
add red and yellow player tableaus
-rw-r--r--latex/Makefile28
-rw-r--r--latex/material/player-tableau/de/_player-tableau.tex80
-rw-r--r--latex/material/player-tableau/de/player-tableau-red.tex8
-rw-r--r--latex/material/player-tableau/de/player-tableau-yellow.tex8
-rw-r--r--latex/material/player-tableau/en/_player-tableau.tex79
-rw-r--r--latex/material/player-tableau/en/player-tableau-red.tex8
-rw-r--r--latex/material/player-tableau/en/player-tableau-yellow.tex8
7 files changed, 212 insertions, 7 deletions
diff --git a/latex/Makefile b/latex/Makefile
index ab59bc14..0dd395b5 100644
--- a/latex/Makefile
+++ b/latex/Makefile
@@ -28,7 +28,6 @@ CARDS_TEX_DIR := $(LATEX_ROOT)/cards/$(LANGUAGE)
BUILDDIR := $(LATEX_ROOT)/build/$(LANGUAGE)
ASSETS_PATH := $(GAME_ROOT)/assets
-PDFLATEX_ENV := TEXINPUTS=".:$(ASSETS_PATH):"
GENERATE_CARD := $(GAME_ROOT)/scripts/generate_card.py
GENERATE_CARD_FLAGS := --language=$(LANGUAGE)
@@ -75,6 +74,15 @@ CARDFMT = $(LATEX_ROOT)/card.fmt
$(CARDFMT): $(COMMON_TEX_FILES)
$(PDFLATEX) -ini -jobname="card" "&$(PDFLATEX)" mylatexformat.ltx $(CARDS_TEX_DIR)/base/archer.tex
+MATERIAL_DIR := $(LATEX_ROOT)/material
+MATERIAL_BUILDDIR := $(BUILDDIR)/material
+PLAYER_TABLEAU_DIR := $(MATERIAL_DIR)/player-tableau/$(LANGUAGE)
+PLAYER_TABLEAU_BUILDDIR := $(MATERIAL_BUILDDIR)/player-tableau
+PLAYER_TABLEAU_TEX := $(wildcard $(PLAYER_TABLEAU_DIR)/player-tableau-*.tex)
+PLAYER_TABLEAU_PDF := $(subst $(PLAYER_TABLEAU_DIR),$(MATERIAL_BUILDDIR)/player-tableau,$(PLAYER_TABLEAU_TEX:.tex=.pdf))
+
+MATERIAL := $(PLAYER_TABLEAU_PDF)
+
VERBOSE ?= @
MAKEFILE_LIST = Makefile
@@ -121,14 +129,15 @@ define generatePdfRules
$(1)/%.pdf: $(2)%.tex $(COMMON_TEX_FILES) $(MAKEFILE_LIST)
@echo building $$@
@if test \( ! \( -d $$(@D) \) \) ;then mkdir -p $$(@D);fi
- $(VERBOSE) $(PDFLATEX_ENV) $(PDFLATEX) --output-directory $$(@D) $$<
+ $(VERBOSE) TEXINPUTS=".:$(ASSETS_PATH):$(2):" $(PDFLATEX) --output-directory $$(@D) $$<
+
endef
define generateCardPdfRules
$(1)/%.pdf: %.tex $(COMMON_TEX_FILES) $(CARDFMT) $(MAKEFILE_LIST)
@echo building $$@
@if test \( ! \( -d $$(@D) \) \) ;then mkdir -p $$(@D);fi
- $(VERBOSE) $(PDFLATEX_ENV) $(PDFLATEX) --fmt $(CARDFMT) --output-directory $$(@D) $$<
+ $(VERBOSE) TEXINPUTS=".:$(ASSETS_PATH):$(2):" $(PDFLATEX) --fmt $(CARDFMT) --output-directory $$(@D) $$<
endef
# Generate cards pdf rules
@@ -136,18 +145,20 @@ $(foreach pdfdir, $(SETS_BUILDDIRS), $(eval $(call generateCardPdfRules, $(pdfdi
# Misc cards not in a set
$(eval $(call generatePdfRules, $(BUILDDIR),))
# Generate sets pdf rule
-$(eval $(call generatePdfRules, $(SETS_PDF_DIR), $(SETS_TEX_DIR)/))
+$(eval $(call generatePdfRules, $(SETS_PDF_DIR),$(SETS_TEX_DIR)/))
# Generate decks pdf rule
-$(eval $(call generatePdfRules, $(DECKS_PDF_DIR), $(DECKS_TEX_DIR)/))
+$(eval $(call generatePdfRules, $(DECKS_PDF_DIR),$(DECKS_TEX_DIR)/))
+# Misc player tableau pdf rules
+$(eval $(call generatePdfRules, $(PLAYER_TABLEAU_BUILDDIR),$(PLAYER_TABLEAU_DIR)/))
.PHONY: all de en
all: de en
de:
- $(MAKE) LANGUAGE=de cards-all sets decks
+ $(MAKE) LANGUAGE=de cards-all sets decks material
en:
- $(MAKE) cards-all sets decks
+ $(MAKE) cards-all sets decks material
.PHONY: sets sets-tex sets-pdf
sets: sets-tex sets-pdf
@@ -159,6 +170,9 @@ decks: decks-tex decks-pdf
sets-tex: $(DECKS_TEX)
sets-pdf: $(DECKS_PDF)
+.PHONY: material
+material: $(MATERIAL)
+
.PHONY: cards-all cards-tex cards-pdf cards-png
cards-all: cards-tex cards-pdf cards-png
@echo "building $(LANGUAGE) cards"
diff --git a/latex/material/player-tableau/de/_player-tableau.tex b/latex/material/player-tableau/de/_player-tableau.tex
new file mode 100644
index 00000000..cb0146de
--- /dev/null
+++ b/latex/material/player-tableau/de/_player-tableau.tex
@@ -0,0 +1,80 @@
+\input{common.tex}
+\usetikzlibrary{backgrounds, positioning}
+
+\usepackage{enumitem}
+
+\usepackage{verbatimbox}
+
+% The named colors BG, cardBG and cardHint must be defined before inputting this file.
+
+\begin{document}
+\begin{myverbbox}[\fontfamily{antt}\fontseries{l}\selectfont\small]{\actionsVerb}
+Solange du eine ungetappte Unit kontrollierst oder
+eine spielbare Handkarte hast
+ Spiele eine Handkarte oder
+ wähle eine ungetappte Unit <U>, die du kontrollierst
+ Solange <U> Aktionen übrig hat
+ Deklariere eine Aktion von <U>
+ Tappe <U>s Karte
+\end{myverbbox}
+
+\begin{myverbbox}[\fontfamily{antt}\fontseries{l}\selectfont\small]{\upkeepVerb}
+Für jede nicht deklarierte Unit
+ Bezahle Upkeepkosten oder zerstöre die Unit falls
+ du den Gesamtbetrag nicht bezahlen kannst
+Zerstöre alle deklarierten Units
+\end{myverbbox}
+
+\begin{tikzpicture}[
+ background rectangle/.style={opacity=0.9, fill=BG!70!black}, show background rectangle,
+ bordered/.style={draw=black, rounded corners=2pt, line width=1pt, anchor=north west, fill=gray!40},
+ hint/.style={font=\Large, text=cardHint, minimum width=\cardwidth{}cm, minimum height=\cardheight{}cm},
+ explanation/.style={align=left, minimum width=8cm, text width=7.9cm},
+ turn/.style={bordered, explanation},
+ upkeep/.style={bordered, explanation},
+ actions/.style={bordered, explanation},
+ deck/.style={bordered, hint, align=center, fill=cardBG},
+ discard/.style={bordered, hint, align=center, fill=cardBG},
+]
+\clip[rounded corners=2pt] (-0.25cm, 0.25cm) rectangle (29.75cm, -8cm);
+\node[turn] at (0, 0) (t) {
+\textbf{Ein Spielerzug:} \\
+\begin{enumerate}[itemsep=0cm, topsep=0.1cm, leftmargin=0.5cm]
+\item \textit{[Mische \textcolor{cardHint}{den Ablagestapel} und ersetzte dein leeres \textcolor{cardHint}{Deck}]}
+\item \textit{[Ziehe Karten bis du drei Handkarten hast]}
+\item \textbf{Upkeep}
+\item \textbf{Aktionsphase}
+\item \textbf{Kaufen}: Bezahle für eine Karte aus dem Store und lege sie auf den \textcolor{cardHint}{Ablagestapel}
+\item{} \textit{[Werfe beliebig viele Handkarten ab]}
+\end{enumerate}
+};
+\node[explanation, below=0.05 of t, font=\footnotesize] (te) {
+ Schritte in \textit{[]} sind optional und niemand kann währenddessen Aktionen ausführen \\[0.35cm]
+};
+
+\node[minimum width=1cm, below=0.7 of te.west, xshift=0.4cm] (di) { \includegraphics[height=0.75cm, keepaspectratio]{../assets/icons/discard2.png} };
+
+\node[explanation, text width=7cm, right=-0.4cm of di, font=\footnotesize] (dh) {
+ Du kannst immer zwei Handkarten abwerfen, um eine Ressource zu erhalten \\[0.25cm]
+};
+
+\node[explanation, below=1.1cm of dh.east, xshift=-0.2cm, anchor=east, align=right, font=\footnotesize] {
+ Eine Karte tappen, sie um 90\textdegree{} drehen, hat keine Bedeutung außer daran zu erinnern, dass sie keine Aktionen übrig hat.
+};
+\node[upkeep] at (8.5cm, 0) (u) {
+\textbf{Upkeep:} \\
+\begin{enumerate}[itemsep=0cm, topsep=0.1cm, leftmargin=0.5cm]
+\item Erhalte vom Spielfeld vorgegeben Ressource
+\item Behandle alle Trigger
+\item Bezahle deine Units: \\[0.15cm]
+\upkeepVerb
+\end{enumerate}
+};
+\node[actions, below=0.35cm of u] {
+\textbf{Aktionsphase:} \\[0.3cm]
+\actionsVerb
+};
+\node[deck] (d) at (17cm, 0) { DECK \\ \\ \small{Möglicherweise leer}};
+\node[discard] at (23.35cm, 0) { ABLAGESTAPEL \\ \\ \small{Karten hier sind offen und haben keine Ordnung}};
+\end{tikzpicture}
+\end{document}
diff --git a/latex/material/player-tableau/de/player-tableau-red.tex b/latex/material/player-tableau/de/player-tableau-red.tex
new file mode 100644
index 00000000..f9973800
--- /dev/null
+++ b/latex/material/player-tableau/de/player-tableau-red.tex
@@ -0,0 +1,8 @@
+\documentclass[]{standalone}
+
+\usepackage{xcolor}
+\definecolor{BG}{HTML}{600915}
+\colorlet{cardBG}{gray!40!black}
+\colorlet{cardHint}{gray}
+
+\input{_player-tableau.tex}
diff --git a/latex/material/player-tableau/de/player-tableau-yellow.tex b/latex/material/player-tableau/de/player-tableau-yellow.tex
new file mode 100644
index 00000000..ac810f9f
--- /dev/null
+++ b/latex/material/player-tableau/de/player-tableau-yellow.tex
@@ -0,0 +1,8 @@
+\documentclass[]{standalone}
+
+\usepackage{xcolor}
+\definecolor{BG}{HTML}{ffc202}
+\colorlet{cardBG}{gray!70}
+\colorlet{cardHint}{gray!70!black}
+
+\input{_player-tableau.tex}
diff --git a/latex/material/player-tableau/en/_player-tableau.tex b/latex/material/player-tableau/en/_player-tableau.tex
new file mode 100644
index 00000000..8db58d2f
--- /dev/null
+++ b/latex/material/player-tableau/en/_player-tableau.tex
@@ -0,0 +1,79 @@
+\input{common.tex}
+\usetikzlibrary{backgrounds, positioning}
+
+\usepackage{enumitem}
+
+\usepackage{verbatimbox}
+
+% The named colors BG, cardBG and cardHint must be defined before inputting this file.
+
+\begin{document}
+\begin{myverbbox}[\fontfamily{antt}\fontseries{l}\selectfont\small]{\actionsVerb}
+While you control an untapped permanent or
+have a playable card in hand
+ You may play a card from your hand or
+ select untapped unit <U> you control
+ While <U> has actions left
+ You may declare an action of <U>
+ Tap <U>'s card
+\end{myverbbox}
+
+\begin{myverbbox}[\fontfamily{antt}\fontseries{l}\selectfont\small]{\upkeepVerb}
+For each not declared unit
+ Pay upkeep cost or destroy unit if
+ paying the total cost is not possible
+Destroy all declared units
+\end{myverbbox}
+
+\begin{tikzpicture}[
+ background rectangle/.style={opacity=0.9, fill=BG!70!black}, show background rectangle,
+ bordered/.style={draw=black, rounded corners=2pt, line width=1pt, anchor=north west, fill=gray!40},
+ hint/.style={font=\Large, text=cardHint, minimum width=\cardwidth{}cm, minimum height=\cardheight{}cm},
+ explanation/.style={align=left, minimum width=8cm, text width=7.9cm},
+ turn/.style={bordered, explanation},
+ upkeep/.style={bordered, explanation},
+ actions/.style={bordered, explanation},
+ deck/.style={bordered, hint, align=center, fill=cardBG},
+ discard/.style={bordered, hint, align=center, fill=cardBG},
+]
+\clip[rounded corners=2pt] (-0.25cm, 0.25cm) rectangle (29.75cm, -8cm);
+\node[turn] at (0, 0) (t) {
+\textbf{A player's turn:} \\
+\begin{enumerate}[itemsep=0cm, topsep=0.1cm, leftmargin=0.5cm]
+\item \textit{[shuffle \textcolor{cardHint}{discard pile} and replace empty \textcolor{cardHint}{deck}]}
+\item \textit{[draw until you have three hand cards]}
+\item \textbf{upkeep}
+\item \textbf{actions phase}
+\item \textbf{buying}: pay for a card from the store and place it on your \textcolor{cardHint}{discard pile} \item{} \textit{[discard any number of cards]}
+\end{enumerate}
+};
+\node[explanation, below=0.05 of t, font=\footnotesize] (te) {
+ Steps in \textit{[]} are optional and no one can use actions during those steps \\[0.35cm]
+};
+
+\node[minimum width=1cm, below=0.7 of te.west, xshift=0.4cm] (di) { \includegraphics[height=0.75cm, keepaspectratio]{icons/discard2.png} };
+
+\node[explanation, text width=7cm, right=-0.4cm of di, font=\footnotesize] (dh) {
+ You can always discard two card from your hand to gain one resource \\[0.25cm]
+};
+
+\node[explanation, below=1.1cm of dh.east, xshift=-0.2cm, anchor=east, align=right, font=\footnotesize] {
+ Tappig a card, turning it 90\textdegree{}, has no meaning other than reminding you that it has no actions left.
+};
+\node[upkeep] at (8.5cm, 0) (u) {
+\textbf{Upkeep:} \\
+\begin{enumerate}[itemsep=0cm, topsep=0.1cm, leftmargin=0.5cm]
+\item Gain amount of resource defined by the map
+\item Process all triggered effects
+\item Pay your units: \\[0.15cm]
+\upkeepVerb
+\end{enumerate}
+};
+\node[actions, below=0.35cm of u] {
+\textbf{Actions Phase:} \\[0.3cm]
+\actionsVerb
+};
+\node[deck] (d) at (17cm, 0) { DECK \\ \\ \small{May be empty}};
+\node[discard] at (23.35cm, 0) { DISCARD PILE \\ \\ \small{Cards here are open and have no order}};
+\end{tikzpicture}
+\end{document}
diff --git a/latex/material/player-tableau/en/player-tableau-red.tex b/latex/material/player-tableau/en/player-tableau-red.tex
new file mode 100644
index 00000000..f9973800
--- /dev/null
+++ b/latex/material/player-tableau/en/player-tableau-red.tex
@@ -0,0 +1,8 @@
+\documentclass[]{standalone}
+
+\usepackage{xcolor}
+\definecolor{BG}{HTML}{600915}
+\colorlet{cardBG}{gray!40!black}
+\colorlet{cardHint}{gray}
+
+\input{_player-tableau.tex}
diff --git a/latex/material/player-tableau/en/player-tableau-yellow.tex b/latex/material/player-tableau/en/player-tableau-yellow.tex
new file mode 100644
index 00000000..ac810f9f
--- /dev/null
+++ b/latex/material/player-tableau/en/player-tableau-yellow.tex
@@ -0,0 +1,8 @@
+\documentclass[]{standalone}
+
+\usepackage{xcolor}
+\definecolor{BG}{HTML}{ffc202}
+\colorlet{cardBG}{gray!70}
+\colorlet{cardHint}{gray!70!black}
+
+\input{_player-tableau.tex}