card game
This commit is contained in:
74
card-game/README.md
Normal file
74
card-game/README.md
Normal file
@@ -0,0 +1,74 @@
|
||||
# TROX – Druckpaket & Generator-Skripte
|
||||
|
||||
Alles für Prototyp und Serie bei The Game Crafter (TGC) bzw. ähnlichen Portalen.
|
||||
|
||||
## Suit-Codes (NEU, englische Logik)
|
||||
| Suit | Code | Rolle | Symbol |
|
||||
|---|---|---|---|
|
||||
| Red | **R** | Permanenter TRUMPF | Crown |
|
||||
| Yellow | **Y** | Standard | Sun |
|
||||
| Green | **G** | Standard | Leaf |
|
||||
| Black | **B** | Standard | Gear |
|
||||
|
||||
Kartencodes auf den Karten z.B. `TK-Y4` (Yellow 4), `TK-G7` (Green 7), `TK-R17`, `TK-B12` (Black 12).
|
||||
|
||||
## Was ist drin
|
||||
|
||||
| Datei / Ordner | Inhalt |
|
||||
|---|---|
|
||||
| `trox_card.js` | **Gemeinsames Modul** – die EINE Kartenzeichnung. Wird von cards + box genutzt |
|
||||
| `generate_cards.js` | 80 Kartenvorderseiten (TGC + Original) |
|
||||
| `generate_back.js` | gemeinsame Rückseite (TGC + Original) |
|
||||
| `generate_box.js` | Tuckbox: Front mit ECHTEN TROX-Karten (aus trox_card.js) + Box-Netz |
|
||||
| `generate_scorepad.js` | Scorepad als **PDF** – Format/Ausrichtung/Layout/Spielerzahl frei wählbar |
|
||||
| `make_rules.js` | **Node.js**-Skript der PDF-Anleitung (pdfkit) |
|
||||
| `svg_to_png.js` | SVG -> PNG Konverter für den TGC-Upload |
|
||||
| `TROX_Rules_Extended_EN.pdf` | Erweiterte Anleitung mit 3-Spieler-Beispielen |
|
||||
| `karten_export_tgc/` | 80 Karten + Rückseite, **825x1125 px** (TGC-konform, mit Bleed) |
|
||||
| `karten_export_original/` | dieselben in **694x1069 px** (Originalmaß) |
|
||||
| `box_export/` | `trox_box_front.svg` + `trox_box_wrap.svg` |
|
||||
| `scorepad_export/` | mehrere **PDF**-Varianten (Letter/A4, portrait/landscape, versch. Layouts) |
|
||||
|
||||
## Architektur (wichtig)
|
||||
`trox_card.js` ist die **einzige Quelle** des Kartendesigns:
|
||||
- `buildCardSVG(colorName, num, opts)` -> komplette Karten-SVG (von generate_cards.js)
|
||||
- `miniCardGroup(colorName, num, cx, cy, breite, rotation)` -> dieselbe Karte als skalierte Gruppe (von generate_box.js für den Fächer)
|
||||
|
||||
Dadurch sind die Karten auf der Box **garantiert identisch** mit den echten Spielkarten – nur skaliert und gefächert. Wer das Design ändert (Farben, Symbole, Schrift), ändert NUR `trox_card.js`, und Karten + Box bleiben synchron.
|
||||
|
||||
## Skripte ausführen
|
||||
```bash
|
||||
npm install pdfkit # einmalig, für make_rules.js
|
||||
node generate_cards.js # both (TGC + Original) – oder: tgc | original
|
||||
node generate_back.js # both – oder: tgc | original
|
||||
node generate_box.js # both (front + wrap) – oder: front | wrap [scale]
|
||||
node generate_scorepad.js # PDF, both 2x3 6 Spieler – [fmt] [orientation] [cols] [rows] [players] [margin]
|
||||
node make_rules.js # erzeugt die PDF-Anleitung
|
||||
```
|
||||
|
||||
## Druck-Workflow für The Game Crafter
|
||||
1. **Produkt:** Karten = *Poker Card* (825x1125). Box für 80 Karten = *Poker Tuck Box (90 cards)*.
|
||||
2. **SVG -> PNG** (TGC nimmt KEIN SVG):
|
||||
```bash
|
||||
npm install sharp
|
||||
node svg_to_png.js karten_export_tgc
|
||||
node svg_to_png.js box_export
|
||||
```
|
||||
3. **Hochladen:** PNGs der 80 Karten + Rückseite in den Deck-Uploader.
|
||||
4. **Box:** offizielles Stanz-Template der "Poker Tuck Box (90 cards)" von TGC laden und in `generate_box.js` die Konstanten `PANEL_W`, `PANEL_H`, `SPINE`, `FLAP` daran angleichen. Faltlinien (gestrichelt) VOR dem Upload entfernen.
|
||||
|
||||
### TGC-Specs (bestätigt)
|
||||
- **300 DPI**, **nur RGB** (CMYK wird abgelehnt).
|
||||
- **Bleed** 1/8" (≈37 px), **Safe Zone** 1/4" (75 px) vom Rand.
|
||||
|
||||
## Anpassen
|
||||
- **Kartendesign (Farben/Symbole/Schrift):** nur `trox_card.js`.
|
||||
- **Welche Karten im Box-Fächer:** `cardFan()` in `generate_box.js` (die vier `miniCardGroup(...)`-Aufrufe).
|
||||
- **Größe der Box-Karten:** `CARD_SCALE` oben in `generate_box.js` (Standard 0.30) ODER per CLI: `node generate_box.js front 0.26`. Eine Auto-Fit-Sicherung verkleinert den Fächer automatisch, falls er aus dem goldenen Rahmen ragen würde. Weitere Fächer-Regler: `FAN_SPREAD`, `FAN_ARC`, `FAN_TILT`, `FAN_CY`.
|
||||
- **Scorepad-Layout:** voll parametrisierbar per CLI `node generate_scorepad.js [format] [cols] [rows] [players] [margin_in]`. Weniger Cards/Seite = größere, besser lesbare Cards (Schrift skaliert mit). Beispiel gegen zu kleinen Druck: `node generate_scorepad.js letter 1 2 6 0.5` (2 große Cards, 0.5" Rand). Defaults stehen im CONFIG-Block oben im Skript.
|
||||
- **Anleitung:** `make_rules.js`, klar in Abschnitte gegliedert.
|
||||
|
||||
## Offene Designfrage (für dich)
|
||||
Im Beispiel B summieren sich die Gebote auf genau die Stichzahl – dann können theoretisch alle treffen.
|
||||
Viele Stichspiele verbieten das ("Screw-the-Dealer"). In der Anleitung ist das als
|
||||
**optionale Variante "Exact Tension" (Abschnitt 8)** eingebaut. Entscheide, ob das deine Standardregel wird.
|
||||
Reference in New Issue
Block a user