aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2025-04-03 20:27:05 -0300
committerFlorian Fischer <florian.fischer@muhq.space>2025-04-04 09:44:18 -0300
commitc48445573a586fc8bfce0a0ac52da378a6b34637 (patch)
treed0ce4553500f71795ac3c7a8eecf86d2fc9b5418
parentf45fd022288696aad3ccbdd0c5b9d76969eee741 (diff)
downloadmuhqs-game-c48445573a586fc8bfce0a0ac52da378a6b34637.tar.gz
muhqs-game-c48445573a586fc8bfce0a0ac52da378a6b34637.zip
introduce new boss type
-rw-r--r--data/cards/kraken/the_kraken.yml5
-rw-r--r--data/cards/tyrant/the_tyrant.yml18
-rw-r--r--latex/cards/de/kraken/the_kraken.tex4
-rw-r--r--latex/cards/de/tyrant/the_tyrant.tex5
-rw-r--r--latex/cards/en/kraken/the_kraken.tex4
-rw-r--r--latex/cards/en/tyrant/the_tyrant.tex5
-rw-r--r--latex/colors.tex1
-rw-r--r--latex/tikzcards.tex2
-rw-r--r--rules/de/rules.md8
-rw-r--r--rules/en/rules.md21
-rwxr-xr-xscripts/generate_card.py2
11 files changed, 42 insertions, 33 deletions
diff --git a/data/cards/kraken/the_kraken.yml b/data/cards/kraken/the_kraken.yml
index 7502f1cb..7b4419f6 100644
--- a/data/cards/kraken/the_kraken.yml
+++ b/data/cards/kraken/the_kraken.yml
@@ -1,6 +1,9 @@
name:
en: The Kraken
die: Die Krake
-type: unit
+type: boss
health: 5
attack: 2 Range 1; 1 Range 2
+effect:
+ en: Does not attack
+ de: Greift nicht an
diff --git a/data/cards/tyrant/the_tyrant.yml b/data/cards/tyrant/the_tyrant.yml
index 156db0b9..9b68263f 100644
--- a/data/cards/tyrant/the_tyrant.yml
+++ b/data/cards/tyrant/the_tyrant.yml
@@ -1,7 +1,7 @@
name:
en: The Tyrant
de: Der Tyrann
-type: unit
+type: boss
ai:
en: Target-oriented intention mark
de: Ziel-orientiert Intensions-Marke
@@ -10,18 +10,6 @@ health:
en: 5 per player
de: 5 pro Spieler
movement: 3
-upkeep: 0
effect:
- en:
- - Shroud.
- - Permanents can be played on adjacent tiles.
- de:
- - Verhüllt.
- - Permanents können auf angrenzenden Feldern ausgespielt werden.
-latex_effect:
- en:
- - "Shroud.\\vspace{0.1cm} \\\\"
- - "Permanents can be played on adjacent tiles.\\vspace{0.1cm} \\\\"
- de:
- - "Verhüllt.\\vspace{0.1cm} \\\\"
- - "Permanents können auf angrenzenden Feldern ausgespielt werden.\\vspace{0.1cm} \\\\"
+ en: Permanents can be played on adjacent tiles
+ de: Permanents können auf angrenzenden Feldern ausgespielt werden
diff --git a/latex/cards/de/kraken/the_kraken.tex b/latex/cards/de/kraken/the_kraken.tex
index c39bdc8e..13f04a10 100644
--- a/latex/cards/de/kraken/the_kraken.tex
+++ b/latex/cards/de/kraken/the_kraken.tex
@@ -4,8 +4,8 @@
\begin{document}
\begin{tikzpicture}
-\cardtypeUnit{The Kraken}
-\cardcontent{\textit{Leben: 5\\Angriff: 2 Range 1; 1 Range 2}}
+\cardtypeBoss{The Kraken}
+\cardsplitcontent{Leben: 5\\Angriff: 2 Range 1; 1 Range 2}{Greift nicht an}
\cardmodule{kraken}
\cardborder
\end{tikzpicture}
diff --git a/latex/cards/de/tyrant/the_tyrant.tex b/latex/cards/de/tyrant/the_tyrant.tex
index f5e7c9a3..dfa89254 100644
--- a/latex/cards/de/tyrant/the_tyrant.tex
+++ b/latex/cards/de/tyrant/the_tyrant.tex
@@ -4,9 +4,8 @@
\begin{document}
\begin{tikzpicture}
-\cardtypeUnit{Der Tyrann}
-\cardsplitcontent{KI: Ziel-orientiert Intensions-Marke\\Leben: 5 pro Spieler\\Bewegung: 3\\Angriff: 2}{Verhüllt.\vspace{0.1cm} \\Permanents können auf angrenzenden Feldern ausgespielt werden.\vspace{0.1cm} \\}
-\cardplaycost{0}
+\cardtypeBoss{Der Tyrann}
+\cardsplitcontent{KI: Ziel-orientiert Intensions-Marke\\Leben: 5 pro Spieler\\Bewegung: 3\\Angriff: 2}{Permanents können auf angrenzenden Feldern ausgespielt werden.}
\cardmodule{tyrant}
\cardborder
\end{tikzpicture}
diff --git a/latex/cards/en/kraken/the_kraken.tex b/latex/cards/en/kraken/the_kraken.tex
index 9e24c281..153d008d 100644
--- a/latex/cards/en/kraken/the_kraken.tex
+++ b/latex/cards/en/kraken/the_kraken.tex
@@ -4,8 +4,8 @@
\begin{document}
\begin{tikzpicture}
-\cardtypeUnit{The Kraken}
-\cardcontent{\textit{Health: 5\\Attack: 2 Range 1; 1 Range 2}}
+\cardtypeBoss{The Kraken}
+\cardsplitcontent{Health: 5\\Attack: 2 Range 1; 1 Range 2}{Does not attack}
\cardmodule{kraken}
\cardborder
\end{tikzpicture}
diff --git a/latex/cards/en/tyrant/the_tyrant.tex b/latex/cards/en/tyrant/the_tyrant.tex
index 86b9a9b5..f91d339c 100644
--- a/latex/cards/en/tyrant/the_tyrant.tex
+++ b/latex/cards/en/tyrant/the_tyrant.tex
@@ -4,9 +4,8 @@
\begin{document}
\begin{tikzpicture}
-\cardtypeUnit{The Tyrant}
-\cardsplitcontent{AI: Target-oriented intention mark\\Health: 5 per player\\Movement: 3\\Attack: 2}{Shroud.\vspace{0.1cm} \\Permanents can be played on adjacent tiles.\vspace{0.1cm} \\}
-\cardplaycost{0}
+\cardtypeBoss{The Tyrant}
+\cardsplitcontent{AI: Target-oriented intention mark\\Health: 5 per player\\Movement: 3\\Attack: 2}{Permanents can be played on adjacent tiles.}
\cardmodule{tyrant}
\cardborder
\end{tikzpicture}
diff --git a/latex/colors.tex b/latex/colors.tex
index c8add8d8..e26e98a6 100644
--- a/latex/colors.tex
+++ b/latex/colors.tex
@@ -5,6 +5,7 @@
\definecolor{titlebg}{RGB}{30,30,30}
\definecolor{tokenbg}{RGB}{51,51,51}
+\definecolor{bossbg}{RGB}{100,100,200}
\definecolor{unitbg}{RGB}{0,100,200}
\definecolor{spellbg}{RGB}{80,180,0}
\definecolor{intentionbg}{RGB}{153,0,255}
diff --git a/latex/tikzcards.tex b/latex/tikzcards.tex
index 392f6f28..bc38b449 100644
--- a/latex/tikzcards.tex
+++ b/latex/tikzcards.tex
@@ -165,6 +165,8 @@
}
\newcommand{\cardtypeUnit}[1]{\cardtype{unitbg}{Unit}{\LARGE\sympawn}{#1}{#1}}
+\newcommand{\cardtypeBoss}[1]{\cardtype{bossbg}{Boss}{\LARGE\symking}{#1}{#1}}
+
\newcommand{\cardtypeSpellToken}[1]{
\cardtype{tokenbg}{Spell}{\Large\faBolt}{TOKEN}{{\Large TOKEN} \\ #1}
}
diff --git a/rules/de/rules.md b/rules/de/rules.md
index d021b3c9..8fe3832f 100644
--- a/rules/de/rules.md
+++ b/rules/de/rules.md
@@ -387,6 +387,14 @@ Für jedes Permanent des Stapels
* Wenn eine *geschuetzte* **Unit** Schaden erleidet verhindere diesen Schaden und entferne so viele **Schutz** Marken von ihr.
* Der einer *geschützten* **Unit** zugefügte Schaden wir immer vollständig verhindert egal wie viele *Schutz* Marken auf ihr liegen.
+# Boss
+
+* Ein **Boss** ist ein **Permanent** oft ähnlich zu einer **Unit*
+* Sie verhalten sich die meiste Zeit wie **Units** aber bei der Zielwahl zählen sie nicht als **Units**
+* Ein **Boss** hat keine **Kauf-** oder **Unterhaltskosten**
+* **Boss** Karten existieren nur auf dem Spielfeld
+* Der Kartentyp **Boss** wird dazu verwendet in koope$ativen Spielmodi spezielle Permanents zu unterscheiden
+
# Schieben [X]
* `X=1` kann weggelassen werden
diff --git a/rules/en/rules.md b/rules/en/rules.md
index c48aae46..e2d4325f 100644
--- a/rules/en/rules.md
+++ b/rules/en/rules.md
@@ -203,12 +203,13 @@ While you control an untapped permanent or have a playable card in hand
* A set of cards they belong to
* A unique name
* A card type:
- * **[Spells](#spells)**
- * **[Units](#units)**
- * **[Artifacts](#artifacts)**
- * **[Equipments](#equipments)**
- * **[Potions](#potions)**
- * **[Itentions](#intentions)**
+ * **[Spell](#spells)**
+ * **[Unit](#units)**
+ * **[Boss](#boss)**
+ * **[Artifact](#artifacts)**
+ * **[Equipment](#equipments)**
+ * **[Potion](#potions)**
+ * **[Itention](#intentions)**
* All cards have during the game:
* An **owner**: The player from which's store the card originated
* A **controller**: The player currently controlling the card
@@ -381,6 +382,14 @@ Additional States a **unit** is in are represented by putting appropriate marker
* When a *warded* **unit** is dealt damage prevent that damage and remove that much **ward** marks from it
* Damage is always prevented completely independent of how many **ward** marks are on the *warded* **unit**
+# Boss
+
+* A **boss** is a **permanent** similar to but not a unit
+* They behave most of the time like **units** but for target selection they do not count as **units**
+* A **boss** has no **upkeep costs**
+* **Boss** cards only exist on the map
+* The **boss** type is used to differentiate special permanents in cooperative game modes
+
# Push [X]
* `X` can be neglected if it is 1
diff --git a/scripts/generate_card.py b/scripts/generate_card.py
index 6500a480..ce14d5a4 100755
--- a/scripts/generate_card.py
+++ b/scripts/generate_card.py
@@ -191,7 +191,7 @@ def generate_latex(card: MutableMapping, language='en'):
if 'buy' in card:
card_content += f'\\cardbuycost{{{card["buy"]}}}\n'
- if card['type'] == 'unit':
+ if card['type'] == 'unit' or card['type'] == 'boss':
unit_stats = []
abilities = []
for key in ['ai', 'health', 'movement', 'attack']: