\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}