diff options
| author | Florian Fischer <florian.fischer@muhq.space> | 2022-04-02 15:07:30 +0200 |
|---|---|---|
| committer | Florian Fischer <florian.fischer@muhq.space> | 2022-04-02 15:07:30 +0200 |
| commit | 3811396cd26e473e13abebb5d66b07b171541d33 (patch) | |
| tree | ffa3e80040bbe93e4ed36b2ea5c966dac9f522b2 | |
| parent | 9bd116478b953edaa7e3e372b70b4175700e26fd (diff) | |
| download | muhqs-game-3811396cd26e473e13abebb5d66b07b171541d33.tar.gz muhqs-game-3811396cd26e473e13abebb5d66b07b171541d33.zip | |
add push mechanic
The push mechanic is heavily inspired by `Into the Breach`.
Pushing a permanent moves it involuntarily in a straight line.
On collisions units receive damage and permenents pushed onto free but
unavailable tiles are destroyed.
| -rw-r--r-- | data/cards/exp1/charger.yml | 15 | ||||
| -rw-r--r-- | data/cards/exp1/ramm.yml | 8 | ||||
| -rw-r--r-- | latex/cards/de/exp1/charger.tex | 14 | ||||
| -rw-r--r-- | latex/cards/de/exp1/ramm.tex | 2 | ||||
| -rw-r--r-- | latex/cards/en/exp1/charger.tex | 14 | ||||
| -rw-r--r-- | latex/cards/en/exp1/ramm.tex | 2 | ||||
| -rw-r--r-- | latex/sets/de/exp1.tex | 1 | ||||
| -rw-r--r-- | latex/sets/en/exp1.tex | 1 | ||||
| -rw-r--r-- | rules/de/rules.md | 22 | ||||
| -rw-r--r-- | rules/en/rules.md | 27 |
10 files changed, 94 insertions, 12 deletions
diff --git a/data/cards/exp1/charger.yml b/data/cards/exp1/charger.yml new file mode 100644 index 00000000..2d3039b2 --- /dev/null +++ b/data/cards/exp1/charger.yml @@ -0,0 +1,15 @@ +type: unit +name: + en: Charger + de: Schlachtross +attack: 1 +health: 2 +movement: 3 +buy: 8 +upkeep: 1 +effect: + en: Crew 1 + de: Bemannen 1 +full_action: + en: "Move next to and attack target unit in straight line. Charger gains push during the fight" + de: "Bewege Schlachtross vor eine Ziel-Unit in gerader Linie und greife sie an. Schlachtross hat Schieben während des Kampfes" diff --git a/data/cards/exp1/ramm.yml b/data/cards/exp1/ramm.yml index 98f52ba8..122bcd9d 100644 --- a/data/cards/exp1/ramm.yml +++ b/data/cards/exp1/ramm.yml @@ -7,8 +7,12 @@ movement: 1 buy: 7 upkeep: 1 effect: - en: Crew 3 - de: Bemannen 3 + en: + - Crew 3 + - Push + de: + - Bemannen 3 + - Schieben full_action: en: Neutralize one tile or destroy one artifact in Range 1 de: Neutraliziere ein Feld oder zerstöre ein Artifakt in Range 1 diff --git a/latex/cards/de/exp1/charger.tex b/latex/cards/de/exp1/charger.tex new file mode 100644 index 00000000..f8d0dcfd --- /dev/null +++ b/latex/cards/de/exp1/charger.tex @@ -0,0 +1,14 @@ +\documentclass{standalone} +\usepackage[ngerman]{babel} +\input{common.tex} + +\begin{document} +\begin{tikzpicture} +\cardtypeUnit{Schlachtross} +\cardbuycost{8} +\cardsplitcontent{Leben: 2\\Bewegung: 3\\Angriff: 1}{Bemannen 1\\ \vspace{0.2cm} \faRedo: Bewege Schlachtross vor eine Ziel-Unit in gerader Linie und greife sie an. Schlachtross hat Schieben während des Kampfes} +\cardplaycost{1} +\cardmodule{exp1} +\cardborder +\end{tikzpicture} +\end{document} diff --git a/latex/cards/de/exp1/ramm.tex b/latex/cards/de/exp1/ramm.tex index a4236e91..adcd1913 100644 --- a/latex/cards/de/exp1/ramm.tex +++ b/latex/cards/de/exp1/ramm.tex @@ -6,7 +6,7 @@ \begin{tikzpicture} \cardtypeUnit{Ramme} \cardbuycost{7} -\cardsplitcontent{Leben: 3\\Bewegung: 1}{Bemannen 3\\ \vspace{0.2cm} \faRedo: Neutraliziere ein Feld oder zerstöre ein Artifakt in Range 1} +\cardsplitcontent{Leben: 3\\Bewegung: 1}{Bemannen 3\\ Schieben\\ \vspace{0.2cm} \faRedo: Neutraliziere ein Feld oder zerstöre ein Artifakt in Range 1} \cardplaycost{1} \cardmodule{exp1} \cardborder diff --git a/latex/cards/en/exp1/charger.tex b/latex/cards/en/exp1/charger.tex new file mode 100644 index 00000000..49d0f2ac --- /dev/null +++ b/latex/cards/en/exp1/charger.tex @@ -0,0 +1,14 @@ +\documentclass{standalone} +\usepackage[english]{babel} +\input{common.tex} + +\begin{document} +\begin{tikzpicture} +\cardtypeUnit{Charger} +\cardbuycost{8} +\cardsplitcontent{Health: 2\\Movement: 3\\Attack: 1}{Crew 1\\ \vspace{0.2cm} \faRedo: Move next to and attack target unit in straight line. Charger gains push during the fight} +\cardplaycost{1} +\cardmodule{exp1} +\cardborder +\end{tikzpicture} +\end{document} diff --git a/latex/cards/en/exp1/ramm.tex b/latex/cards/en/exp1/ramm.tex index 8b36aa35..976f16f1 100644 --- a/latex/cards/en/exp1/ramm.tex +++ b/latex/cards/en/exp1/ramm.tex @@ -6,7 +6,7 @@ \begin{tikzpicture} \cardtypeUnit{Ramm} \cardbuycost{7} -\cardsplitcontent{Health: 3\\Movement: 1}{Crew 3\\ \vspace{0.2cm} \faRedo: Neutralize one tile or destroy one artifact in Range 1} +\cardsplitcontent{Health: 3\\Movement: 1}{Crew 3\\ Push\\ \vspace{0.2cm} \faRedo: Neutralize one tile or destroy one artifact in Range 1} \cardplaycost{1} \cardmodule{exp1} \cardborder diff --git a/latex/sets/de/exp1.tex b/latex/sets/de/exp1.tex index 133549fd..a9e69e69 100644 --- a/latex/sets/de/exp1.tex +++ b/latex/sets/de/exp1.tex @@ -12,6 +12,7 @@ \includestandalone{cards/de/exp1/backup!} \includestandalone{cards/de/exp1/berserker} \includestandalone{cards/de/exp1/call_for_expertise!} +\includestandalone{cards/de/exp1/charger} \includestandalone{cards/de/exp1/chariot} \includestandalone{cards/de/exp1/conscription!} \includestandalone{cards/de/exp1/depression_monument} diff --git a/latex/sets/en/exp1.tex b/latex/sets/en/exp1.tex index ff3cd1fc..8d296b3f 100644 --- a/latex/sets/en/exp1.tex +++ b/latex/sets/en/exp1.tex @@ -12,6 +12,7 @@ \includestandalone{cards/en/exp1/backup!} \includestandalone{cards/en/exp1/berserker} \includestandalone{cards/en/exp1/call_for_expertise!} +\includestandalone{cards/en/exp1/charger} \includestandalone{cards/en/exp1/chariot} \includestandalone{cards/en/exp1/conscription!} \includestandalone{cards/en/exp1/depression_monument} diff --git a/rules/de/rules.md b/rules/de/rules.md index 3df76ff6..774f6dce 100644 --- a/rules/de/rules.md +++ b/rules/de/rules.md @@ -230,11 +230,15 @@ Solange kontrollierte ungetappte Karte auf dem Spielfeld oder spielbare Karte in * **Ranges** definieren einen Bereich an **Feldern**. * **Ranges** haben einen Ursprung. * **Ranges** haben einen Radius r. -* **Ranges** mit dem Radius r beinhalten alle **Felder** die mit r Schritten, wobei jeder zweite diagonale Schritte doppelt zählen, vom Ursprung erreichbar sind. +* **Ranges** mit dem Radius `r` beinhalten alle **Felder** die mit `r` **Schritten**, wobei jeder zweite diagonale **Schritt** doppelt zählen, vom Ursprung erreichbar sind. * Mathematisch ausgedrückt ein Feld (x, y), wobei x und y relativ zum Ursprung (0, 0) der Range angegeben werden, liegt in **Range** r genau dann wenn $$x > y$$ und $$abs(x) + floor(abs(y) / 2)$$ sonst $$abs(y) + floor(abs(x) / 2)$$. * *Angrenzend* ist eine verwendete Abkürzung für "in **Range** 1" +# Schritt + +* Ein **Schritt** bezecihnet das platzieren eines **Permanents** von seinem aktuellem **Feld** auf ein *angrenzendes*. + # Permanents * **Permanents** sind Spielelemente die exklusiv ein Feld des Spielfeldes belegen. @@ -323,8 +327,8 @@ Für jedes Permanent des Stapels ## Bewegung * Eine **Unit** kann sich innerhalb der **Range** die ihrer Bewegung entspricht bewegen -* Die bewegte **Unit** kann so viele Schritte in dieser **Range** auf *verfuegbare* **Felder** ziehen wie ihre Bewegung angibt -* Jedes zweite diagonale **Feld** dieser Bewegung benötigt zwei Schritte +* Die bewegte **Unit** kann so viele **Schritte** in dieser **Range** auf *verfuegbare* **Felder** ziehen wie ihre Bewegung angibt +* Jedes zweite diagonale **Feld** dieser Bewegung benötigt zwei **Schritte** ## Unit Effekte @@ -373,6 +377,18 @@ 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. +# Schieben [X] + +* `X=1` kann weggelassen werden +* **Schieben** bezeichnet das unfreiwillige bewegen eins **Permanent** um `X` **Schritte** in gerader Linie +* **Permanents** können als Effekt einer **Aktion** oder eines **Kampfes** *geschoben* werden +* Das *Schieben* eines **Permanents** benötigt immer ein **Feld** von dem das **Schieben** ausgeht + * Wenn eine **Unit** ein **Permanent** schiebt geht das **Schieben** von dem aktuellen **Feld** der *schiebenden* **Unit** aus +* Jeder *geschobene* **Schritt** muss auf der selben Linie liegen wie das ausgehende und das aktuelle **Feld** +* Falls ein **Permenent** auf ein nicht **freies Feld** *geschoben* würde endet das **Schieben** + * Einer **Unit**, die auf diese Art kollidiert, wird von dem anderen **Permanent** 1 **Schadeb** zugefügt +* Falls ein **Permenent** auf ein **freies** aber nicht **verfuegbares Feld** *geschoben* würde zerstöre es + # Kampf * Wird durch **Angriffs Aktion** oder einen Effekt initialisiert. diff --git a/rules/en/rules.md b/rules/en/rules.md index 150435a1..feb752a7 100644 --- a/rules/en/rules.md +++ b/rules/en/rules.md @@ -222,11 +222,15 @@ While you control an untapped card on the board or have a playable card in hand * **Ranges** define a sphere of **tiles** * **Ranges** have a origin -* **Ranges** have a radius r -* **Ranges** with the radius r include all **tiles** which are reachable with r steps from the origin, counting each second diagonal step twice +* **Ranges** have a radius `r` +* **Ranges** with the radius `r` include all **tiles** which are reachable with `r` **steps** from the origin, counting each second diagonal **step** twice * More precisely: a **tile** (x, y), where x and y are relative to the its origin (0, 0), is in the **range** r iff $$x > y$$ and $$abs(x) + floor(abs(y) / 2)$$ else $$abs(y) + floor(abs(x) / 2)$$. * *Adjacent* is a common Abbreviation for "in **range** 1" +## Step + +* A **step** is performed by placing a **permanent** from its current **tile** onto an *adjacent* + # Permanents * **Permanents** are game pieces which exclusively occupy one **tile** on the map @@ -312,9 +316,10 @@ For each permanent in the pile ## Movement -* A **unit** can move within the **range** specified by its **movement** -* The *moved* **Unit** can make as many steps in its **movement range** as its **movement** -* Each second diagonal step counts twice +* A **unit** can be *moved* by using its **move action** +* A **unit** can *move* within the **range** specified by its **movement** +* The *moved* **Unit** can make at most m **steps** where m is equal to its **movement** +* Each second diagonal **step** counts twice ## Effects Of Units @@ -359,6 +364,18 @@ Additional States a **Unit** is in are represented by putting appropriate State * When a *warded* **Unit** is dealt damage prevent that damage and remove that much **Ward** marks from it. * Damage is always prevented completely independent how many **Ward** marks are on the *warded* **Unit** +# Push [X] + +* `X` can be neglected if it is 1 +* To *push* a **permanent** *move* it `X` **steps** in a straight line +* **Permanents** may be *pushed* as effect of an **action** or **combat** +* *Pushing* a **permanent** always requires a **tile** where the **push** originates + * When a **unit** *pushes* a **permanent** the originating **tile** is the current **tile** of the *pushing* **unit** +* Each step must be in a straight line determined by the originating **tile** and the current **tile** +* If a **permenent** would be *pushed* onto a *not free* **tile** it is not *pushed* further + * A **Unit** colliding in this way is dealt 1 **damage** by the other **permenent** +* If a **permenent** would be *pushed* onto a *free* but not *available* **tile** destroy the **permanent** + # Combat * Is initialized with an **Unit's** **attack action** or an effect |
