# TODO: wenn genug zusammenkommt (180€), dann den Titel rein, 15 chars pro Kategorie, bei den Tabellen wieder noexport raus und toc headlines und toc tables rein.
# https://www.online-druck.biz/shop/broschueren-hefte-prospekte/a6-hoch-rueckstichheftung_194.html?seitenanzahl=40&calc_id=6121&material=9279&ausstattung_0=8&ausstattung_1=19035&seitenanzahl=40&ausstattung_2=3454&ausstattung_3=18998&seitenanzahl=40&ausstattung_4=19162&ausstattung_5=1357&seitenanzahl=40&ausstattung_6=4325&startnumber=000000&calc_stueck=250&calc_button=berechnen&check_sum=1efca2c19f1559a9b0561df510e08185#kalkulation
# TODO: Sexualität als Fußnoten durchziehen, wenn es für die Tabelle nicht reicht.
#+latex: \includepdf{chargentitle}
#+title:
#+options: toc:nil
# #+toc: headlines 2
# #+latex: \vspace*{2em}
# #+toc: tables
* Jetzt-Zeit
:PROPERTIES:
:CUSTOM_ID: chargen
:END:
#+latex: \ThisCenterWallPaper{1.05}{gerichtsbild-chargen.jpg}
#+latex: \vspace*{6.43em}
#+latex: \label{sec:jetzt}
#+call: generate-char-jetzt()
#+call: generate-char-jetzt()
#+call: generate-char-jetzt()
#+latex: \newpage
#+call: generate-char-jetzt()
#+call: generate-char-jetzt()
#+call: generate-char-jetzt()
#+call: generate-char-jetzt()
#+call: generate-char-jetzt()
#+latex: \newpage
#+call: generate-char-jetzt()
#+call: generate-char-jetzt()
#+call: generate-char-jetzt()
#+call: generate-char-jetzt()
#+call: generate-char-jetzt()
#+latex: \newpage
#+call: generate-char-jetzt()
#+call: generate-char-jetzt()
#+call: generate-char-jetzt()
#+call: generate-char-jetzt()
#+call: generate-char-jetzt()
* Fantasy
:PROPERTIES:
:CUSTOM_ID: chargen
:END:
\phantomsection\label{fig:lisar}\label{fig:lisar-new}\label{fig:glider-new}\label{fig:hurricane}\label{fig:runemaster}\label{fig:thursagan}\label{fig:fencer}\label{fig:alanin-older}\label{fig:mage-red-female}\label{fig:mage-arch-female}
#+latex: \ThisCenterWallPaper{1.05}{heldenreise.pdf}
#+latex: \vspace*{6.43em}
#+latex: \label{sec:fantasy}
#+call: generate-char-fantasy()
#+call: generate-char-fantasy()
#+call: generate-char-fantasy()
#+latex: \newpage
#+call: generate-char-fantasy()
#+call: generate-char-fantasy()
#+call: generate-char-fantasy()
#+call: generate-char-fantasy()
#+call: generate-char-fantasy()
#+latex: \newpage
#+call: generate-char-fantasy()
#+call: generate-char-fantasy()
#+call: generate-char-fantasy()
#+call: generate-char-fantasy()
#+call: generate-char-fantasy()
#+latex: \newpage
#+call: generate-char-fantasy()
#+call: generate-char-fantasy()
#+call: generate-char-fantasy()
#+call: generate-char-fantasy()
#+call: generate-char-fantasy()
* Mystery / Horror
:PROPERTIES:
:CUSTOM_ID: chargen
:END:
#+latex: \ThisCenterWallPaper{1.05}{Denali-National-Park-and-Preserve-United-States-von-Vashishtha-Jogi-cc0.jpg}
#+latex: \vspace*{6.43em}
#+latex: \label{sec:mystery}
#+call: generate-char-mystery()
#+call: generate-char-mystery()
#+call: generate-char-mystery()
#+latex: \newpage
#+call: generate-char-mystery()
#+call: generate-char-mystery()
#+call: generate-char-mystery()
#+call: generate-char-mystery()
#+call: generate-char-mystery()
#+latex: \newpage
#+call: generate-char-mystery()
#+call: generate-char-mystery()
#+call: generate-char-mystery()
#+call: generate-char-mystery()
#+call: generate-char-mystery()
#+latex: \newpage
#+call: generate-char-mystery()
#+call: generate-char-mystery()
#+call: generate-char-mystery()
#+call: generate-char-mystery()
#+call: generate-char-mystery()
* Science-Fiction
:PROPERTIES:
:CUSTOM_ID: chargen
:END:
#+latex: \ThisCenterWallPaper{1.05}{NASA-hs-2009-28-e.jpg}
#+latex: \vspace*{6.43em}
#+latex: \label{sec:sf}
#+call: generate-char-sciencefiction()
#+call: generate-char-sciencefiction()
#+call: generate-char-sciencefiction()
#+latex: \newpage
#+call: generate-char-sciencefiction()
#+call: generate-char-sciencefiction()
#+call: generate-char-sciencefiction()
#+call: generate-char-sciencefiction()
#+call: generate-char-sciencefiction()
#+latex: \newpage
#+call: generate-char-sciencefiction()
#+call: generate-char-sciencefiction()
#+call: generate-char-sciencefiction()
#+call: generate-char-sciencefiction()
#+call: generate-char-sciencefiction()
#+latex: \newpage
#+call: generate-char-sciencefiction()
#+call: generate-char-sciencefiction()
#+call: generate-char-sciencefiction()
#+call: generate-char-sciencefiction()
#+call: generate-char-sciencefiction()
# :var fragen=tabelle-fragen-jetzt
# :var zweiworte=tabelle-zweiworte-fantasy-jetzt
#+name: generate-char-jetzt
#+begin_src scheme :exports none :results output raw :prologue "(import (srfi srfi-1)(ice-9 match)(ice-9 receive))(set! *random-state* (random-state-from-platform))\n" :tangle chargen.scm :noweb yes :var kernantriebe=tabelle-grundantriebe :var hautfarbe=tabelle-hautfarbe :var haarfarbe=tabelle-haarfarbe :var augenfarbe=tabelle-augenfarbe :var darstellung1=tabelle-darstellung1 :var darstellung2=tabelle-darstellung2 :var kleidung_oben_maenner=tabelle-kleidung-jetzt-oben-maenner :var kleidung_unten_maenner=tabelle-kleidung-jetzt-unten-maenner :var kleidung_oben_frauen=tabelle-kleidung-jetzt-oben-frauen :var kleidung_unten_frauen=tabelle-kleidung-jetzt-unten-frauen :var kleidung_oben_frauen=tabelle-kleidung-jetzt-oben-frauen :var kleidung_unten_frauen=tabelle-kleidung-jetzt-unten-frauen :var namen=tabelle-namen-fantasy-jetzt :var sex=tabelle-sexualitaet :var stichwort=tabelle-stichwort-jetztzeit
(let ()
{{{chargen-setup}}}
{{{chargen-generic}}}
{{{chargen-colors}}}
{{{chargen-specifics-jetzt}}}
{{{chargen-print-char}}}
(chargen-print-char)
)
#+end_src
# :var fragen=tabelle-fragen-fantasy
# :var zweiworte=tabelle-zweiworte-fantasy-jetzt
#+name: generate-char-fantasy
#+begin_src scheme :exports none :results output raw :prologue "(import (srfi srfi-1)(ice-9 match)(ice-9 receive))(set! *random-state* (random-state-from-platform))\n" :tangle chargen.scm :noweb yes :var kernantriebe=tabelle-grundantriebe :var hautfarbe=tabelle-hautfarbe :var haarfarbe=tabelle-haarfarbe :var augenfarbe=tabelle-augenfarbe :var darstellung1=tabelle-darstellung1 :var darstellung2=tabelle-darstellung2 :var kleidung_oben_maenner=tabelle-kleidung-fantasy-oben-maenner :var kleidung_unten_maenner=tabelle-kleidung-fantasy-unten-maenner :var kleidung_oben_frauen=tabelle-kleidung-fantasy-oben-frauen :var kleidung_unten_frauen=tabelle-kleidung-fantasy-unten-frauen :var kleidung_oben_frauen=tabelle-kleidung-fantasy-oben-frauen :var kleidung_unten_frauen=tabelle-kleidung-fantasy-unten-frauen :var namen=tabelle-namen-fantasy-jetzt :var sex=tabelle-sexualitaet :var stichwort=tabelle-stichwort-fantasy
(let ()
{{{chargen-setup}}}
{{{chargen-generic}}}
{{{chargen-colors}}}
{{{chargen-specifics-fantasy}}}
{{{chargen-print-char}}}
(chargen-print-char)
)
#+end_src
# :var fragen=tabelle-fragen-mystery
# :var zweiworte=tabelle-zweiworte-mystery-sciencefiction
#+name: generate-char-mystery
#+begin_src scheme :exports none :results output raw :prologue "(import (srfi srfi-1)(ice-9 match)(ice-9 receive))(set! *random-state* (random-state-from-platform))\n" :tangle chargen.scm :noweb yes :var kernantriebe=tabelle-grundantriebe :var hautfarbe=tabelle-hautfarbe :var haarfarbe=tabelle-haarfarbe :var augenfarbe=tabelle-augenfarbe :var darstellung1=tabelle-darstellung1 :var darstellung2=tabelle-darstellung2 :var kleidung_oben_maenner=tabelle-kleidung-mystery-oben-maenner :var kleidung_unten_maenner=tabelle-kleidung-mystery-unten-maenner :var kleidung_oben_frauen=tabelle-kleidung-mystery-oben-frauen :var kleidung_unten_frauen=tabelle-kleidung-mystery-unten-frauen :var kleidung_oben_frauen=tabelle-kleidung-mystery-oben-frauen :var kleidung_unten_frauen=tabelle-kleidung-mystery-unten-frauen :var namen=tabelle-namen-mystery-sciencefiction :var sex=tabelle-sexualitaet :var stichwort=tabelle-stichwort-horrormystery
(let ()
{{{chargen-setup}}}
{{{chargen-generic}}}
{{{chargen-colors}}}
{{{chargen-specifics-mystery}}}
{{{chargen-print-char}}}
(chargen-print-char)
)
#+end_src
# :var fragen=tabelle-fragen-sciencefiction
# :var zweiworte=tabelle-zweiworte-mystery-sciencefiction
#+name: generate-char-sciencefiction
#+begin_src scheme :exports none :results output raw :prologue "(import (srfi srfi-1)(ice-9 match)(ice-9 receive))(set! *random-state* (random-state-from-platform))\n" :tangle chargen.scm :noweb yes :var kernantriebe=tabelle-grundantriebe :var hautfarbe=tabelle-hautfarbe :var haarfarbe=tabelle-haarfarbe :var augenfarbe=tabelle-augenfarbe :var darstellung1=tabelle-darstellung1 :var darstellung2=tabelle-darstellung2 :var kleidung_oben_maenner=tabelle-kleidung-sciencefiction-oben-maenner :var kleidung_unten_maenner=tabelle-kleidung-sciencefiction-unten-maenner :var kleidung_oben_frauen=tabelle-kleidung-sciencefiction-oben-frauen :var kleidung_unten_frauen=tabelle-kleidung-sciencefiction-unten-frauen :var kleidung_oben_frauen=tabelle-kleidung-sciencefiction-oben-frauen :var kleidung_unten_frauen=tabelle-kleidung-sciencefiction-unten-frauen :var namen=tabelle-namen-mystery-sciencefiction :var sex=tabelle-sexualitaet :var stichwort=tabelle-stichwort-sciencefiction
(let ()
{{{chargen-setup}}}
{{{chargen-generic}}}
{{{chargen-colors}}}
{{{chargen-specifics-sciencefiction}}}
{{{chargen-print-char}}}
(chargen-print-char)
)
#+end_src
* Setup :noexport:
#+begin_src scheme :noweb-ref chargen-specifics-jetzt
(define first-names
(map first
(map string-split-space
(map third
(remove (λ(x)(not (equal? geschlecht (fourth x)))) namen)))))
(define last-names (map (λ (x) (string-join (cdr x))) (map string-split-space (map third namen))))
(define names (apply append (map (λ (fi) (map (λ(la) (string-join (list fi la))) last-names)) first-names)))
;; (define worte (list->d6alist (second (apply zip zweiworte))))
#+end_src
#+begin_src scheme :noweb-ref chargen-specifics-fantasy
(define first-names
(map first
(map string-split-space
(map first
(remove (λ(x)(not (equal? geschlecht (second x)))) namen)))))
(define last-names (map (λ (x) (string-join (cdr x))) (map string-split-space (map first namen))))
(define names (apply append (map (λ (fi) (map (λ(la) (string-join (list fi la))) last-names)) first-names)))
;; (define worte (list->d6alist (first (apply zip zweiworte))))
#+end_src
#+begin_src scheme :noweb-ref chargen-specifics-mystery
(define first-names
(map first
(map string-split-space
(map first
(remove (λ(x)(not (equal? geschlecht (second x)))) namen)))))
(define last-names (map (λ (x) (string-join (cdr x))) (map string-split-space (map first namen))))
(define names (apply append (map (λ (fi) (map (λ(la) (string-join (list fi la))) last-names)) first-names)))
;; (define worte (list->d6alist (second (apply zip zweiworte))))
#+end_src
#+begin_src scheme :noweb-ref chargen-specifics-sciencefiction
(define first-names
(map first
(map string-split-space
(map third
(remove (λ(x)(not (equal? geschlecht (fourth x)))) namen)))))
(define last-names (map (λ (x) (string-join (cdr x))) (map string-split-space (map third namen))))
(define names (apply append (map (λ (fi) (map (λ(la) (string-join (list fi la))) last-names)) first-names)))
;; (define worte (list->d6alist (first (apply zip zweiworte))))
#+end_src
#+begin_src scheme :noweb-ref chargen-print-char
(define kleidung-oben
(cond
((equal? "m" geschlecht) kleidung_oben_maenner)
((equal? "w" geschlecht) kleidung_oben_frauen)
((equal? 0 (random 2)) kleidung_oben_maenner)
(else kleidung_oben_frauen)))
(define kleidung-unten
(cond
((equal? "m" geschlecht) kleidung_unten_maenner)
((equal? "w" geschlecht) kleidung_unten_frauen)
((equal? 0 (random 2)) kleidung_unten_maenner)
(else kleidung_unten_frauen)))
(define (chargen-print-char)
(define-values (haut-value haut-last-eye) (d6))
(define-values (wort-value wort-last-eye) (d6))
(define-values (kleidung-oben-value kleidung-oben-last-eye) (d6))
(define darstellung-roll1 (random 6))
(define darstellung-roll2 (+ 1 (random 6)))
(define stichwort-gefiltert
(let ((wo (from-d6matrix-14 wort wort-value wort-last-eye)))
(if (not (> gewicht 80))
wo
(let loop ((wo wo))
(define-values (wort-value wort-last-eye) (d6))
(cond
((or (equal? wo "zierlich") (equal? wo "mager"))
(loop (from-d6matrix-14 wort wort-value wort-last-eye)))
(else wo))))))
(format #t "** ~a
\\vspace*{-2.17em}\\raggedleft ~a Jahre, ~a cm, ~a kg, ~a
\\raggedright
*~a*, ~a und ~a.
Haut ~a, Haare ~a, Augen ~a
Grundantriebe: ~a, ~a, ~a
# Fragen:
# Warum bin ich hier? a
# Warum bleibe ich bei der Gruppe? a
# Wodurch bin ich sympathisch? a
~a: ~a
"
(from-list names)
alter groesse gewicht
sexualitaet
(string-capitalize stichwort-gefiltert)
(from-d6matrix-24 kleidung-oben kleidung-oben-value kleidung-oben-last-eye)
(receive (kleidung-unten-value kleidung-unten-last-eye) (d6)
(from-d6matrix-30 kleidung-unten kleidung-oben-last-eye kleidung-unten-value kleidung-unten-last-eye))
(colored (from-d6matrix-14 haut haut-value haut-last-eye))
(receive (haar-value haar-last-eye) (d6)
(colored (from-d6matrix-30 haar haut-last-eye haar-value haar-last-eye)))
(receive (augen-value augen-last-eye) (d6)
(colored (from-d6matrix-30 auge haut-last-eye augen-value augen-last-eye)))
(from-d6alist handeln)
(from-d6alist sein)
(from-d6alist wollen)
;; (from-d6alist hier)
;; (from-d6alist bleiben)
;; (from-d6alist sympathisch)
(list-ref '(Haltung Gestik Stimme Gimmick Tick Tick) darstellung-roll1)
(list-ref (cdr (assoc darstellung-roll2 darstellung)) darstellung-roll1)
))
#+end_src
#+begin_src scheme :noweb-ref chargen-generic
(define handeln (list->d6alist
(cdr (first (apply zip kernantriebe)))))
(define sein (list->d6alist
(cdr (second (apply zip kernantriebe)))))
(define wollen (list->d6alist
(cdr (third (apply zip kernantriebe)))))
;; (define hier (list->d6alist
;; (second (apply zip fragen))))
;;
;; (define bleiben (list->d6alist
;; (third (apply zip fragen))))
;;
;; (define sympathisch (list->d6alist
;; (fourth (apply zip fragen))))
(define (string-split-space s) (string-split s #\space))
(define sexualitaet (from-d6matrix-34 sex))
(define geschlecht
(let ((s sexualitaet))
(cond
((string-prefix? "♂→♀" s) "w")
((string-prefix? "♀→♂" s) "m")
((string-prefix? "♂" s) "m")
((string-prefix? "♀" s) "w")
(else "d"))))
(define haut hautfarbe)
(define haar haarfarbe)
(define auge augenfarbe)
(define alter (+ 15 (abs (* (d6) (d6)))))
(define groesse (+ 170 (* 3 (d6))))
(define gewicht (+ groesse -100 (* 3 (d6))))
(define wort stichwort)
(define darstellung (apply zip (append (apply zip (cdr darstellung1)) (cdr (apply zip (cdr darstellung2))))))
(define (colored colorname)
(define colorhex (assoc-ref colors (string->symbol colorname)))
(define colorhexnohash (if (not colorhex) "000000" (string-drop colorhex 1)))
(string-append "@@latex:\\setul{}{2pt}\\definecolor{c" colorhexnohash "}{HTML}{" colorhexnohash "}\\setulcolor{c" colorhexnohash "}\\ul{@@" colorname "@@latex:}@@"))
#+end_src
#+begin_src scheme :noweb-ref chargen-setup :exports none :prologue "(import (srfi srfi-1)(ice-9 match)(ice-9 receive))(set! *random-state* (random-state-from-platform))\n"
(define eyes (list -5 -3 -1 2 4 6))
(define (d6)
(define eyes (list -5 -3 -1 2 4 6))
(define (die)
(list-ref eyes (random 6)))
"Roll one ± d6"
(import (srfi srfi-1))
(let rolling ((rolled (cons (die) '())))
(cond
((= 1 (length rolled))
(if (not (member (first rolled) '(-5 6)))
(values (first rolled) (first rolled))
(rolling (cons (die) rolled))))
((not (equal? (first rolled) (second rolled)))
(values (apply + (cdr rolled)) (first rolled)))
(else
(rolling (cons (die) rolled))))))
(define (list->d6alist names)
(let loop ((eyes eyes) (names names) (res (list)))
(if (or (not names) (not eyes) (null? names) (null? eyes))
(reverse res)
(loop (cdr eyes) (cdr names) (cons (cons (car eyes) (car names)) res)))))
(define (zip . args)
(apply map list args))
(define (from-d6alist L)
(receive (value last-eye) (d6)
(let ((val
(cond
((<= value -5) -5)
((>= value 6) 6)
(else value))))
(cdr (assoc val L)))))
(define (from-d6matrix-14 L value last-eye)
(let ((select-fun
(cond
((<= value -5) first)
((>= value 6) third)
(else second)))
(last-eye
(cond
((= last-eye -5) "-5/6")
((= last-eye 6) "-5/6")
(else last-eye))))
(select-fun (cdr (assoc last-eye L)))))
(define (from-d6matrix-24 L value last-eye)
(let ((select-fun
(cond
((<= value -10) first)
((<= value -5) second)
((>= value 12) fifth)
((>= value 6) fourth)
(else third)))
(last-eye
(cond
((= last-eye -5) "-5/6")
((= last-eye 6) "-5/6")
(else last-eye))))
(select-fun (cdr (assoc last-eye L)))))
(define (from-d6matrix-34 L)
(receive (value last-eye) (d6)
(let ((select-fun
(cond
((<= value -15) first)
((<= value -10) second)
((<= value -5) third)
((>= value 18) seventh)
((>= value 12) sixth)
((>= value 6) fifth)
(else fourth)))
(last-eye
(cond
((= last-eye -5) "-5/6")
((= last-eye 6) "-5/6")
(else last-eye))))
(select-fun (cdr (assoc last-eye L))))))
(define (from-d6matrix-30 L previous-eye value last-eye)
(newline)
(let*
((select-fun
(cdr (assoc last-eye
`((-5 . ,fifth) (-3 . ,first) (-1 . ,second) (2 . ,third) (4 . ,fourth) (6 . ,fifth)))))
(shift-down
(cond
((> value 6) (/ value 6))
((< value -5) (/ value 5))
(else 0)))
(previous-line
(min 5
(max 0
(+ shift-down
(cdr (assoc previous-eye
'((-5 . 0) (-3 . 1) (-1 . 2) (2 . 3) (4 . 4) (6 . 5))))))))
(line (list-ref eyes previous-line)))
(select-fun (cdr (assoc line L)))))
(define (from-list L)
(import (srfi srfi-1))
(list-ref L (random (length L) (random-state-from-platform))))
#+end_src
#+begin_src scheme :noweb-ref chargen-colors :exports none :prologue "(import (srfi srfi-1)(ice-9 match)(ice-9 receive))(set! *random-state* (random-state-from-platform))\n"
(define colors
'((albino . "#eeeeee")
(amethyst . "#9966CC")
(aquamarin . "#7FFFD0")
(aschgrau . "#B2BEB5")
(azurblau . "#007FFF")
(bernstein . "#FF7E00")
(blass . "#ECEBBD")
(blau-braun. "#1C39BB")
(blau/braun. "#1C39BB")
(blau/grau . "#4169E1") ; iceberg "#71A6D2"
(blauschwarz . "#002E63")
(bleigrau . "#708090")
(blond . "#FAF0BE")
(bronze . "#CD7F32")
(dunkelblond . "#C5C08E")
(dunkelbraun . "#654321")
(elfenbein . "#FFFFF0")
(eisblau . "#00FFFF")
(eisgrau . "#6699CC")
(feuerrot . "#CE2029")
(fleckig . "#666666")
(gelblich . "#FFDEAD") ; floral white: "#FFFAF0"
(granatrot . "#781c2e")
(grau . "#808080")
(grau-blau . "#71A6D2")
(grau-grün . "#465945")
(grauschwarz . "#333333")
(grünschwarz . "#004040")
(haselnuss . "#5b3a29")
(kastanie . "#800000")
(hell-lila . "#B666D2")
(hellblond . "#FCF2BE")
(hellbraun . "#BC8F8F")
(honig . "#DA9100")
(jade . "#00A86B")
(kohlschwarz . "#36454F")
(kupfer . "#DA8A67")
(lila . "#B666D2")
(meergrün . "#20B2AA")
(mandelgrün . "#979f7d")
(moosgrün . "#ADDFAD")
(neon-blau . "#0247FE")
(neon-grün . "#39FF14")
(oliv . "#556B2F")
(orangerot . "#FF4500")
(perlgrau . "#9c9c9c")
(rosig . "#FFE4E1")
(rostrot . "#B7410E")
(rot . "#E30022")
(rot/blau . "#E30022")
(rotbraun . "#A52A2A")
(rubinrot . "#E0115F")
(saphir . "#082567")
(schwarz . "#000000")
(schwarzbraun . "#100C08")
(smaragdgrün . "#66896c")
(sommersprossig . "#C08081")
(silber . "#C0C0C0")
(strohblond . "#E4D96F")
(türkis . "#30D5C8")
(walnuss . "#5a3826")
(weiß . "#eeeeee")
(weißblond . "#FEFABE")
(zimtbraun . "#d2691e")))
#+end_src
* Tabellen und Info
@tabelle_kernantriebe@
#+begin_kasten
@kasten_alter_groesse_gewicht@
#+end_kasten
#+latex: \vspace*{1.2em}
#+latex: \phantomsection\label{sec:impressum}\parbox{0.72\linewidth}{%
/Bilder von *Trudy Wenzel* (Titel und S. \pageref{sec:jetzt} fürs EWS, GPL), *Philip Barber*, *Kathrin Polikeit*, *Emilien Rotival* (S. \pageref{sec:fantasy}, für [[http://wesnoth.org][Battle for Wesnoth]], GPL),
*Vashishta Jogi* (S. \pageref{sec:mystery}, cc0), *NASA* (S. \pageref{sec:sf}), *WTactics Project* (hier, GPLv2+)./
#+latex: }
# #+latex: \clearpage % avoids misplacing background images
@tabelle_sexualitaet@
* Die Tabellen :noexport:
# sie werden via autoconf eingebunden -> configure.ac AC_SUBST_FILE
#+begin_kasten
<<kasten:korrelierte-tabellen>>
\label{kasten:korrelierte-tabellen}Bei korrelierten Tabellen legt das Ergebnis aus der ersten Tabelle fest, wo du in der zweiten Tabelle anfängst. Dadurch ergibt sich eine Korrelation der Ergebnisse, die auf einfache Art komplexere Beziehungen abbilden kann. Zum Beispiel welche Kleidung zusammen passt.
In der *ersten Tabelle* beginne in der Mitte und würfle mit einem Würfel. Bei -3, -1, 2 oder 4 wähle die entsprechende Zeile. Bei -5, geh nach links und würfle erneut, bei 6 geh nach rechts und würfle erneut. Dreh nicht um und verlasse nicht die Tabelle (wähle stattdessen -5/6). Weiter in der zweiten Tabelle.
In der *zweiten Tabelle* beginne jeweils in der Zeile aus der ersten Tabelle (die gewürfelte Zahl) und wirf einen Würfel. Bei -3, -1, 2 oder 4 wähle die entsprechende Spalte. Bei -5 geh hoch, bei 6 geh runter. Dreh nicht um und verlasse nicht die Tabelle (wähle stattdessen ‑5/6)
#+end_kasten
@tabelle_wahrscheinlichkeiten_1@
@tabelle_wahrscheinlichkeiten_2@
@tabelle_kernantriebe@
@tabelle_aussehen@
#+latex: \clearpage
@tabelle_darstellung@
# -at-tabelle_fragen-at-
@tabelle_kleidung@
@tabelle_namen@
#+latex: \clearpage % avoids misplacing background images
@tabelle_sexualitaet@
#+latex: \clearpage % avoids misplacing background images
@tabelle_stichwort@
# -at-tabelle_zwei_worte-at-
#+begin_kasten
@kasten_alter_groesse_gewicht@
#+end_kasten
#+latex: \clearpage
* Gruppen erschaffen
:PROPERTIES:
:UNNUMBERED: t
:END:
#+latex: \thispagestyle{empty}
#+latex: \Large
Vielfältige Figuren für 4 Genres:
- Jetzt-Zeit (S. \pageref{sec:jetzt}),
- Fantasy (S. \pageref{sec:fantasy}),
- Mystery/Horror (S. \pageref{sec:mystery}) und
- Science-Fiction (S. \pageref{sec:sf}).
Hintergründe, verwendete Tabellen und vieles weitere gibt es auf [[http://www.1w6.org][1w6.org]].
Künstlerinnen und Künstler der verwendeten Bilder stehen auf Seite \ref{sec:impressum}.
/Der Druck zum GRT 2020 wurde durch Nils, Phil, Jonas Richter, Jens Stengel und anonym Spendende finanziert. Ihr seid toll!/
# - Systemunabhängige Zufallstabellen zur Erschaffung vieler weiterer:
# - Kernantriebe,
# - Haut-, Haar- und Augenfarbe,
# - Darstellung,
# - Kleidung,
# - Namen,
# - Sexualität,
# - Stichwort,
# - Alter, Größe, Gewicht.
# Local Variables:
# org-confirm-babel-evaluate: nil
# org-export-allow-bind-keywords: t
# org-babel-noweb-wrap-start: "{{{"
# org-babel-noweb-wrap-end: "}}}"
# End:
#+latex_class: memoir
# draft mode for development
# #+latex_class_options: [twoside,a5paper,draft]
# openleft: Kapitel links anfangen, um keine Chars aus dem vorherigen Kapitel beim Titel zu haben.
#+latex_class_options: [twoside,a5paper,openleft]
# Newline macro {{{NEWLINE}}} - does not start a new paragraph, so both lines stay on the same page
#+MACRO: NEWLINE @@latex:\texorpdfstring{\\*}{ | }@@ @@html:<br>@@ @@ascii:|@@
#+LATEX_HEADER: \include{basesetup}
# add print margins: 3mm on each side: (breaks the layout, see the Makefile.am for the ghostscript (gs) solution.
# #+latex_header: \usepackage[pass,paperwidth=111mm,paperheight=154mm]{geometry}
# alternative:
# #+latex_header: \usepackage{ifpdf}
# #+latex_header: \ifpdf
# #+latex_header: \pdfpageheight=154mm
# #+latex_header: \pdfpagewidth=111mm
# #+latex_header: \else
# #+latex_header: \special{papersize=154mm,111mm}
# #+latex_header: \fi
# Smaller chapter titles
#+latex_header: \chapterstyle{verville}
#+latex_header: \usepackage{contour}
#+latex_header: \renewcommand\printchaptertitle[1]{\contour{white}{#1} \par \vskip 0.5\onelineskip}
#+latex_header: \renewcommand\printchapternum{\vskip 0.2\onelineskip\Huge \centering \contour{white}{\thechapter.}\ }
#+latex_header: \renewcommand\printchapternonum{\vskip 0.2\onelineskip\Huge \centering \vskip 0.2\onelineskip}
# wallpapers positioned manually so they get >3mm space outside the page for printing
#+latex_header: \setlength{\wpYoffset}{72mm}
#+latex_header: \setlength{\wpXoffset}{-4mm}
# ensure that characters don’t span over multiple pages — stay on the same page
#+latex_header: \usepackage{needspace}
#+latex_header: \usepackage{xcolor}
#+latex_header: \usepackage{soulutf8} % patch for the soul package (underlining) that adds utf8-support.
#+latex_header: % add hyperref last to avoid some problems with packages
#+latex_header: \usepackage{hyperref}
#+latex_header: \hypersetup{
#+latex_header: colorlinks,
#+latex_header: linkcolor={red!50!black},
#+latex_header: citecolor={blue!50!black},
#+latex_header: urlcolor={blue!80!black}
#+latex_header: }
#+latex_header: \hypersetup{
#+latex_header: pdfkeywords={},
#+latex_header: pdfsubject={},
#+latex_header: pdfcreator={Emacs 24.4.1 (Org mode 8.2.6)}}