Files
troxler-skat/card-game/README.md
2026-05-31 14:39:45 -05:00

75 lines
4.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.