summaryrefslogtreecommitdiff
path: root/incantesimi
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2011-10-23 13:06:04 +0100
committerdakkar <dakkar@thenautilus.net>2011-10-23 13:06:04 +0100
commit0465d36acc48f9ecd0604ed23fce8b2ba2e4343b (patch)
tree6062544e622f77d621bca220b904017520624efd /incantesimi
parentscript per creare fogli di incantesimi (diff)
downloadinventario-0465d36acc48f9ecd0604ed23fce8b2ba2e4343b.tar.gz
inventario-0465d36acc48f9ecd0604ed23fce8b2ba2e4343b.tar.bz2
inventario-0465d36acc48f9ecd0604ed23fce8b2ba2e4343b.zip
spostiamo roba
Diffstat (limited to 'incantesimi')
-rw-r--r--incantesimi/excel_to_incantesimi.pl134
-rw-r--r--incantesimi/incantesimi.cmd.tex136
-rw-r--r--incantesimi/incantesimi.example.tex95
-rw-r--r--incantesimi/incantesimi.prep.tex170
4 files changed, 535 insertions, 0 deletions
diff --git a/incantesimi/excel_to_incantesimi.pl b/incantesimi/excel_to_incantesimi.pl
new file mode 100644
index 0000000..e2d1899
--- /dev/null
+++ b/incantesimi/excel_to_incantesimi.pl
@@ -0,0 +1,134 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+use Spreadsheet::ParseExcel;
+use LaTeX::Encode;
+use Template;
+use Data::Printer;
+
+# excel => latex
+my %fieldmap = (
+ spellname => 'name',
+ level => 'level',
+ school => 'scuola',
+ comp => 'components',
+ ct => 'tempo',
+ range => 'range',
+ target => 'target',
+ duration => 'durata',
+ st => 'st',
+ sr => 'sr',
+ spell => 'descrizione',
+ special => 'specialcomp',
+ page => 'ref',
+ notes => 'note',
+);
+
+my ($input_filename,$output_filename)=@ARGV;
+
+die "$0 \$input \$output\n"
+ unless $input_filename && $output_filename;
+
+my $parser = Spreadsheet::ParseExcel->new();
+my $wb = $parser->parse($input_filename)
+ or die $parser->error;
+
+my $spells = parse_table($wb->worksheet('Incantesimi')
+ // $wb->worksheet(0));
+
+munge($spells);
+p $spells;
+my $template = Template->new();
+$template->process(
+ \*DATA,
+ {
+ spells => $spells,
+ fieldmap => \%fieldmap,
+ lt => \&latexise,
+ },
+ $output_filename,
+)
+ or die $template->error;
+
+sub parse_table {
+ my ($ws) = @_;
+
+ my ($min_col,$max_col) = $ws->col_range();
+ my ($min_row,$max_row) = $ws->row_range();
+ my @headings = map { eval { $ws->get_cell($min_row,$_)->value } }
+ $min_col .. $max_col;
+
+ for my $h (@headings) {
+ $h =~ s{\W.*$}{};
+ $h = lc($h);
+ }
+
+ my @ret = ();
+
+ for my $row ((1+$min_row) .. $max_row) {
+ # allow and skip empty rows
+ next unless eval { $ws->get_cell($row,$min_col)->value };
+ my %record;
+
+ keys @headings;
+ while (my ($idx,$heading) = each @headings) {
+ # allow and skip empty cols
+ next unless $heading;
+ $record{$heading} =
+ eval { $ws->get_cell($row,$idx+$min_col)->value } // '';
+ }
+ push @ret,\%record;
+ }
+ return \@ret;
+}
+
+sub munge {
+ my ($spells) = @_;
+
+ for my $spell (@$spells) {
+ if ($spell->{page} =~ m{^\d+$}) {
+ $spell->{page} = 'PHB'.$spell->{page};
+ }
+ }
+ return;
+}
+
+sub latexise {
+ my ($str) = @_;
+
+ $str = latex_encode($str);
+ $str =~ s{(?<!\\)\. }{.\\ }g;
+
+ return $str;
+}
+
+__DATA__
+\input{incantesimi.cmd}
+\usepackage{textcomp}
+
+\begin{document}
+%
+\begin{tikzpicture}
+\matrix {
+
+[% FOREACH spell IN spells %]
+\incantesimo{type=spell,
+[%- FOREACH field IN fieldmap; IF spell.item(field.key) %]
+ [% field.value %]={[% lt(spell.item(field.key)) %]},
+[%- END; END %]
+} [% IF (loop.count() % 6) %]& [% ELSE %] \\ [% END -%]
+[% IF (loop.count() % 18) == 0 %]};
+\end{tikzpicture}
+
+\pagebreak
+
+\begin{tikzpicture}
+\matrix {
+
+[% END; END;
+ rest_in_row = spells.size % 6;
+ FOREACH skip IN [ 1 .. rest_in_row ]; ' & '; END; ' \\\\ '
+%]};
+\end{tikzpicture}
+\vspace{-10pt}
+\end{document}
diff --git a/incantesimi/incantesimi.cmd.tex b/incantesimi/incantesimi.cmd.tex
new file mode 100644
index 0000000..b2e6146
--- /dev/null
+++ b/incantesimi/incantesimi.cmd.tex
@@ -0,0 +1,136 @@
+\documentclass[a4paper,10pt,landscape]{article}
+\usepackage[empty,cm]{fullpage}
+\usepackage[latin1]{inputenc}
+\usepackage[italian,english]{babel}
+\usepackage[OT1]{fontenc}
+\usepackage{pgfkeys}
+\usepackage{tikz}
+\usetikzlibrary{calc}
+\usetikzlibrary{shapes.multipart}
+
+%%%% fullpage
+\setlength{\headheight}{0pt}
+\setlength{\headsep}{0pt}
+\setlength{\footskip}{0pt}
+\setlength{\textwidth}{\paperwidth}
+\setlength{\oddsidemargin}{-2.68cm}
+\setlength{\evensidemargin}{\oddsidemargin}
+\setlength{\textheight}{1.1\paperheight}
+\setlength{\topmargin}{0pt}
+\addtolength{\topmargin}{-2.68cm}
+\addtolength{\oddsidemargin}{0.45cm} % per centrare le etichette
+\addtolength{\evensidemargin}{0.45cm} % per centrare le etichette
+%%%%
+\setlength{\parindent}{0pt}
+
+%%%%
+\newlength{\cardtextwidth}
+\setlength{\cardtextwidth}{4.33cm}
+
+%\fontseries{c}\fontshape{sc}
+
+\tikzstyle{carta}=[rectangle,minimum width=4.8cm,minimum height=7cm,outer sep=0,use as bounding box]
+
+\tikzstyle{title label}=[rectangle,text=blue!80!green!75!black,minimum height=2\baselineskip,font={\small},inner sep=1mm,text width=4.6cm,align=flush center]
+
+\tikzstyle{side label}=[rectangle,text=green!25!black,minimum height=3mm,font=\tiny,inner sep=0.5mm,rotate=270]
+
+\tikzstyle{subt label}=[text=magenta!25!black,font=\scriptsize,inner xsep=2pt,inner ysep=0.2em,text width=\cardtextwidth]
+
+\tikzstyle{descr label}=[rectangle,text=red!50!black,font={\sffamily\footnotesize},inner xsep=2pt,inner ysep=1mm,text width=\cardtextwidth,align=justify]
+
+\tikzstyle{trg label}=[rectangle,text=red!70!blue!90!yellow,font={\sffamily\footnotesize},inner xsep=2pt,inner ysep=1mm,align=#1]
+
+\tikzstyle{above angles label}=[text=blue!50!black,font=\scriptsize,minimum height=\baselineskip,align=justify]
+
+\tikzstyle{angles label}=[rectangle split,rectangle split parts=2,rectangle split part align=left,text=blue!50!black,font=\tiny,align=justify]
+
+\tikzstyle{prep label}=[rectangle split,rectangle split parts=2,rectangle split part align=left,draw,ultra thin,minimum width=0.333*4.8cm,text=yellow!10!black,inner xsep=0.1em,inner ysep=0.29em,font={\it\tiny}]%inner ysep is set to have 7mm overall heigh
+
+%%%%
+
+\pgfkeys{/spells/.is family}
+\tikzset{/spells/type/.initial=spell}
+\tikzset{/spells/st/.initial=None}
+\tikzset{/spells/sr/.initial=No}
+\tikzset{/spells/specialcomp/.initial={}}
+\tikzset{/spells/note/.initial={}}
+\tikzset{/spells/ref/.initial={}}
+\tikzset{/spells/tempo/.initial={1 a}}
+\tikzset{/spells/level/.initial={Must be passed in}}
+\tikzset{/spells/name/.initial={Must be passed in}}
+\tikzset{/spells/scuola/.initial={Must be passed in}}
+\tikzset{/spells/durata/.initial={Must be passed in}}
+\tikzset{/spells/components/.initial={Must be passed in}}
+\tikzset{/spells/descrizione/.initial={Must be passed in}}
+\tikzset{/spells/target/.initial={Must be passed in}}
+\tikzset{/spells/range/.initial={Must be passed in}}
+
+\newcommand{\incantesimo}[1]{%
+%\begin{scope}[every node/.style={draw,ultra thin},/spells/.cd,#1]
+\begin{scope}[/spells/.cd,#1]
+\node[carta,ultra thin,draw] (card) {};
+
+% titolo
+\node [anchor=north,title label] (name) at (card.north)
+ {\usefont{OT1}{ptm}{bx}{sc}\pgfkeysvalueof{/spells/name}};
+
+%angolo nord est
+\node [anchor=north west,side label] (type) at ($(card.east |- name.south) - (0mm,0.0mm)$)
+ {\textsl{\pgfkeysvalueof{/spells/type}}};
+
+%lato sud
+\node [anchor=south,prep label] (prep) at (card.south)
+ {Prep:\nodepart{two}Used:};
+
+%angolo sud ovest
+\node [anchor=south west,angles label]
+ (st) at (card.south west)
+ {\textsc{ST:}\nodepart{two}\textsc{\pgfkeysvalueof{/spells/st}}};
+
+\node [anchor=south west,above angles label] (durata) at (card.west |- prep.north)
+ {\textsf{Duration: \pgfkeysvalueof{/spells/durata}}};
+
+%angolo sud est
+\node [anchor=south east,angles label] (sr) at (card.south east)
+ {\textsc{SR:}\nodepart{two}\textsc{\pgfkeysvalueof{/spells/sr}}};
+
+\node [anchor=south east,above angles label] (tempo) at (card.east |- prep.north)
+ {\textsf{CT: \pgfkeysvalueof{/spells/tempo}}};
+
+%lato sud est
+\node [anchor=north east,side label] (ref) at ($(tempo.north east) + (0,3mm)$)
+ {\pgfkeysvalueof{/spells/ref}};
+
+
+
+%sottotitoli
+\node [anchor=north east,align=flush right,rectangle,subt label] (scuola) at (type.south west)
+ {\emph{\pgfkeysvalueof{/spells/scuola}}};
+
+\node [anchor=north west,rectangle split,rectangle split parts=2,rectangle split part align={left,flushright},subt label]
+ (components) at ($(scuola.south -| card.west) - (0mm,0mm)$)
+ {\textsc{\pgfkeysvalueof{/spells/components}}\nodepart{two}{\tiny\pgfkeysvalueof{/spells/specialcomp}}};
+
+
+%centro
+\node [anchor=west,descr label] (description) at ($0.70*(card.west)+0.3*(card.south west)$)
+ {\pgfkeysvalueof{/spells/descrizione}};
+
+\node [anchor=north,descr label] (notes) at (description.south)
+ {\tiny\fontseries{e}\pgfkeysvalueof{/spells/note}};
+
+% sopra il centro
+\node [anchor=south west,trg label=flush left] (target) at ($(description.north west) + (0,1mm)$)
+ {{\scriptsize{}Target/Effect/Area:}\\{\slshape\pgfkeysvalueof{/spells/target}}};
+
+\node [anchor=south east,trg label=flush right] (range) at (target.north -| type.south)
+ {{\scriptsize{}Range:} \textnormal{\itshape\pgfkeysvalueof{/spells/range}}};
+
+%lato est
+\node [anchor=north west,side label] (lvl) at ($0.8*(card.east)+0.2*(card.north east)$)
+ {\textsc{lvl \pgfkeysvalueof{/spells/level}}};
+
+
+\end{scope}%
+}
diff --git a/incantesimi/incantesimi.example.tex b/incantesimi/incantesimi.example.tex
new file mode 100644
index 0000000..91a5811
--- /dev/null
+++ b/incantesimi/incantesimi.example.tex
@@ -0,0 +1,95 @@
+\input{incantesimi.cmd}
+%\input{incantesimi.cmd.other}
+
+\begin{document}
+%
+\begin{tikzpicture}
+%
+\matrix {
+
+\incantesimo{type=spell-like,
+ scuola={Enchantment (Charm) [LD, MA, Sonic]},
+ st={Fort half (HO)},
+ tempo=15m,
+ name=Regenerate Moderate Wounds,
+ level=9,
+ sr={Yes (HO)},
+ durata={30m / disch},
+ ref=PH289,
+ range=medium,
+ target={Well shaft 10ft. diam 100 ft. deep},
+ components={V,S,M,F,DF,XP},
+ specialcomp={M: Incense; F: Payer beads (500~MO); XP: 0 or 500},
+ descrizione={Fully repairs an obj. up to 5\%/2L mass loss; cures 1d4 dmg to magical obj.},
+ note={Reasonable command may give -1 to -4 pen. to S. T.}
+} &
+\incantesimo{type=spell-like,
+ name={Death touch},
+ %level=0,
+ scuola={Death domain},
+ components={Once per day},
+ %tempo=1a,
+ range=Touch,
+ target={1 living creat. touched},
+ durata=Instantaneous,
+ %st,
+ sr=Yes,
+ descrizione={If touched creat. has less than 1d6/CL hp dies.},
+ ref=PH163,
+% note
+ } &
+\incantesimo{type=Supernatural,scuola=scuola a caso pił altra roba in giro,name=Incantesimo col nome lungooooooo,level=3,
+ durata=1/L m,range=Touch,target=you,components={V,S,M},specialcomp={M:tanta roba costosa da accendere (5000~MO)},
+ descrizione={+2 Defl AC/Resist. saves, counter mind control, hedge out elemental/outsiders.}} &
+\incantesimo{scuola=scuola a caso,name=Incantesimo col nome lungo a a a a,level=1,
+ durata=Inst,range=touch,target=you,components={V,S},
+ descrizione={blah blah blah},
+ note={Bigger ones can pass after Will save with 2d6 dmg.}} &
+\incantesimo{scuola=scuola a caso,name=Incantesimo col nome lungo,level=1,
+ durata=Inst,range=touch,target=you,components={V,S},
+ descrizione={blah blah blah}}&
+\incantesimo{scuola=scuola a caso,name=Incantesimo col nome lungo,level=1,
+ durata=Inst,range=touch,target=you,components={V,S},
+ descrizione={blah blah blah}} \\
+
+\incantesimo{scuola=scuola a caso,name=Incantesimo col nome lungo,level=1,
+ durata=Inst,range=touch,target=you,components={V,S},specialcomp={M: Incense; F: Prayer bead (500~MO)},
+ descrizione={blah blah blah}} &
+\incantesimo{scuola=scuola a caso,name=Incantesimo col nome lungo,level=1,
+ durata=Inst,range=touch,target=you,components={V,S},
+ descrizione={blah blah blah}} &
+\incantesimo{scuola=scuola a caso,name=Incantesimo col nome lungo,level=1,
+ durata=Inst,range=touch,target=you,components={V,S},
+ descrizione={blah blah blah}} &
+\incantesimo{scuola=scuola a caso,name=Incantesimo col nome lungo,level=1,
+ durata=Inst,range=touch,target=you,components={V,S},
+ descrizione={blah blah blah}} &
+\incantesimo{scuola=scuola a caso,name=Incantesimo col nome lungo,level=1,
+ durata=Inst,range=touch,target=you,components={V,S},
+ descrizione={blah blah blah}} &
+\incantesimo{scuola=scuola a caso,name=Incantesimo col nome lungo,level=1,
+ durata=Inst,range=touch,target=you,components={V,S},
+ descrizione={blah blah blah}} \\
+
+\incantesimo{scuola=scuola a caso,name=Incantesimo col nome lungo,level=1,
+ durata=Inst,range=touch,target=you,components={V,S},
+ descrizione={blah blah blah}} &
+\incantesimo{scuola=scuola a caso,name=Incantesimo col nome lungo,level=1,
+ durata=Inst,range=touch,target=you,components={V,S},
+ descrizione={blah blah blah}} &
+\incantesimo{scuola=scuola a caso,name=Incantesimo col nome lungo,level=1,
+ durata=Inst,range=touch,target=you,components={V,S},
+ descrizione={blah blah blah}} &
+\incantesimo{scuola=scuola a caso,name=Incantesimo col nome lungo,level=1,
+ durata=Inst,range=touch,target=you,components={V,S},
+ descrizione={blah blah blah}} &
+\incantesimo{scuola=scuola a caso,name=Incantesimo col nome lungo,level=1,
+ durata=Inst,range=touch,target=you,components={V,S},
+ descrizione={blah blah blah}} &
+\incantesimo{scuola=scuola a caso,name=Incantesimo col nome lungo,level=1,
+ durata=Inst,range=touch,target=you,components={V,S},
+ descrizione={blah blah blah}}\\
+};
+\end{tikzpicture}
+\vspace{-10pt}
+\end{document}
diff --git a/incantesimi/incantesimi.prep.tex b/incantesimi/incantesimi.prep.tex
new file mode 100644
index 0000000..9df1015
--- /dev/null
+++ b/incantesimi/incantesimi.prep.tex
@@ -0,0 +1,170 @@
+
+\documentclass[a4paper,10pt,landscape]{article}
+\usepackage[empty,cm]{fullpage}
+\usepackage[latin1]{inputenc}
+\usepackage[italian,english]{babel}
+\usepackage[OT1]{fontenc}
+\usepackage{pgfkeys}
+\usepackage{tikz}
+\usetikzlibrary{calc}
+\usetikzlibrary{matrix}
+\usetikzlibrary{shapes.multipart}
+
+%%%% fullpage
+\setlength{\headheight}{0pt}
+\setlength{\headsep}{0pt}
+\setlength{\footskip}{0pt}
+\setlength{\textwidth}{\paperwidth}
+\setlength{\oddsidemargin}{-2.68cm}
+\setlength{\evensidemargin}{\oddsidemargin}
+\setlength{\textheight}{1.1\paperheight}
+\setlength{\topmargin}{0pt}
+\addtolength{\topmargin}{-2.68cm}
+\addtolength{\oddsidemargin}{0.45cm} % per centrare le etichette
+\addtolength{\evensidemargin}{0.45cm} % per centrare le etichette
+%%%%
+\setlength{\parindent}{0pt}
+
+%%%%
+\newlength{\cardtextwidth}
+\setlength{\cardtextwidth}{4.33cm}
+
+\newcounter{lvl}
+
+%\fontseries{c}\fontshape{sc}
+
+\tikzstyle{carta}=[rectangle,minimum width=4.8cm,minimum height=7cm,inner sep=0pt,outer sep=0,use as bounding box]
+
+\tikzstyle{prep label}=[rectangle split,rectangle split parts=2,rectangle split part align=left,draw,ultra thin,minimum width=0.333*4.8cm,text=yellow!10!black,inner xsep=0.1em,inner ysep=0.293em,font={\it\tiny},outer sep=0pt]%inner ysep is set to have 7mm overall heigh
+
+\tikzstyle{spells}=[rectangle,anchor=center,minimum width=1.5cm,minimum height=5mm,font={\footnotesize},text=#1]
+
+\tikzstyle{ranges}=[anchor=south,rectangle split,rectangle split parts=2,rectangle split part align=center,%
+ /pgf/number format/int detect,font={\sffamily\footnotesize},text=red!70!blue!90!yellow,]
+
+\newcommand{\preptext}[1]{%
+ \node[anchor=north west,prep label] at #1 {Prep:\nodepart{two}Used:};%
+}
+
+\newcommand{\prepcard}{%
+ %
+ \node[carta] (card) {};
+ %
+ \foreach \x in {0,1,2}
+ \foreach \y in {0,...,9}
+ {
+ \preptext{($(card.north west)+(\x*1.6cm,-\y*0.7cm)$)}
+ }
+ %
+ \draw[white,thin] (card.north west) rectangle (card.south east);
+ %
+}
+
+\newcommand{\printRoman}{
+ \ifnum \value{lvl} = 0
+ \textsc{Orisons}
+ \else
+ \Roman{lvl}
+ \fi
+}
+
+\newcommand{\closerange}[1]{
+ \pgfmathparse{25+5*floor(#1/2)}
+ \pgfmathprintnumber{\pgfmathresult}
+}
+%
+\newcommand{\mediumrange}[1]{
+ \pgfmathparse{100+(10*#1)}
+ \pgfmathprintnumber{\pgfmathresult}
+}
+\newcommand{\longrange}[1]{
+ \pgfmathparse{400+(40*#1)}
+ \pgfmathprintnumber{\pgfmathresult}
+}
+
+\newcommand{\mydepth}{\rule[-0.2em]{0pt}{1mm}}
+
+\newcommand{\spellatlvl}[5]{%
+ \setcounter{lvl}{#1}
+ \path #2
+ node[spells=red!#5!black] {\printRoman}
+ ++(1.5cm,0)
+ node[spells=green!75!black!#5!black] {#3}
+ ++(1.5cm,0)
+ node[spells=blue!#5!black] {\pgfmathprintnumber{#4}};
+}
+
+\newcommand{\spellscard}[3]{% takes rel ability bonus, castel lvl, and a list of 10 spells_per_day
+\begin{scope}
+ %
+ \node[carta] (card) {};
+ % titles
+ \path (card.north west) ++(0.9cm,-0.5cm)
+ node[spells=blue!80!green!75!black,font={\scshape\footnotesize}] (lvltl) {Level}
+ ++(1.5cm,0)
+ node[spells=blue!80!green!75!black,font={\scshape\footnotesize}] {Per day}
+ ++(1.5cm,0)
+ node[spells=blue!80!green!75!black,font={\scshape\footnotesize}] {ST DC};
+ % spells
+ \foreach \n [count=\x from 0,evaluate=\x as \dc using 10+#1+\x,evaluate=\x as \shd using 85-7*\x,/pgf/number format/int detect] in #3
+ {
+ \spellatlvl{\x}{($(lvltl.center)-(0,6mm+\x*5mm)$)}{\n}{\dc}{\shd}
+ }
+ % ranges
+ \path (card.south -| lvltl.center)
+ node[ranges] (close)
+ {Close:\mydepth\nodepart{two}\closerange{#2} ft.\mydepth}
+ ++(1.5cm,0)
+ node[ranges] (medium)
+ {Medium:\mydepth\nodepart{two}\mediumrange{#2} ft.\mydepth}
+ ++(1.5cm,0)
+ node[ranges] (long)
+ {Long:\mydepth\nodepart{two}\longrange{#2} ft.\mydepth};
+ %
+ \draw[thin,green!20!black] (close.north) ++(2mm,2pt) -- ++(1.1cm,0) ++(4mm,0) -- ++(1.1cm,0);
+ %
+ % \draw[red,thin] (card.north west) rectangle (card.south east);
+ %
+\end{scope}
+}
+
+\begin{document}
+%
+\begin{tikzpicture}
+\matrix[ampersand replacement=\&] {
+ % Necrist current
+ \spellscard{4}{12}{{6,4+1+1,4+1+1,3+1+1,3+1+1,2+0+1,-,-,-,-}}\&
+ %
+ \prepcard\&\prepcard\&\prepcard\&\prepcard\&\prepcard\\
+ % Necrist next
+ \spellscard{4}{13}{{6,5+1+1,4+1+1,4+1+1,3+1+1,2+0+1,1+0+1,-,-,-}}\&
+ %
+ \prepcard\&\prepcard\&\prepcard\&\prepcard\&\prepcard\\
+ % Necrist plus
+ \spellscard{5}{13}{{6,5+1+1,4+1+1,4+1+1,3+1+1,2+0+1,1+0+1,-,-,-}}\&
+ %
+ \prepcard\&\prepcard\&\prepcard\&\prepcard\&\prepcard\\
+};
+%
+\end{tikzpicture}
+\pagebreak
+
+\begin{tikzpicture}
+\matrix[ampersand replacement=\&] {
+ % Ariel current
+ \spellscard{4}{9}{{6,4+1+1,4+1+1,3+1+1,2+1+1,1+0+1,-,-,-,-}}\&
+ %
+ \prepcard\&\prepcard\&\prepcard\&\prepcard\&\prepcard\\
+ % Ariel next
+ \spellscard{4}{10}{{6,4+1+1,4+1+1,3+1+1,3+1+1,2+0+1,-,-,-,-}}\&
+ %
+ \prepcard\&\prepcard\&\prepcard\&\prepcard\&\prepcard\\
+ % Ariel plus
+ \spellscard{5}{10}{{6,4+1+1,4+1+1,3+1+1,3+1+1,2+0+1,-,-,-,-}}\&
+ %
+ \prepcard\&\prepcard\&\prepcard\&\prepcard\&\prepcard\\
+};
+%
+\end{tikzpicture}
+%
+\end{document}