88 lines
2.1 KiB
TeX
88 lines
2.1 KiB
TeX
\ProvidesPackage{magica}[2023/07/06 Magica]
|
|
|
|
\usepackage{amssymb}
|
|
\usepackage{xparse}
|
|
\usepackage{milsymb}
|
|
\usetikzlibrary{
|
|
calc,
|
|
positioning,
|
|
shapes.misc, % Rounded rectangles, etc.
|
|
shapes.multipart, % Multi-line nodes
|
|
arrows.meta,
|
|
decorations.markings,
|
|
% Mapping
|
|
decorations.text,
|
|
}
|
|
\tikzset{
|
|
Char/.style={
|
|
draw,rounded corners=3pt,line width=0.5mm,
|
|
minimum size=10pt,
|
|
fill=#1
|
|
},
|
|
Char/.default={white}, % civilian colour
|
|
MilSymb land/magica/demon/.pic={
|
|
\node [fill=MilSymb@fill, \MilSymb@line,
|
|
star, star points=5, star point height=6px, draw=black, scale=0.6, rotate=180] {};
|
|
},
|
|
/MilSymb/.cd,
|
|
main/demon/.style={/MilSymb/.cd, SymbC=land/magica/demon},
|
|
}
|
|
|
|
|
|
\colorlet{TomoeM}{Dandelion}
|
|
\colorlet{SakuraY}{Rhodamine}
|
|
\colorlet{AkemiH}{Black}
|
|
\colorlet{ShizukiR}{LimeGreen}
|
|
\colorlet{Sayaka}{CornflowerBlue}
|
|
|
|
\NewDocumentCommand\Magica{ o d() g}{
|
|
\node[Char=#1] (char) at (#2) {};
|
|
\IfNoValueTF{#3}{}{ \node[right=5pt] at (char) {#3}; }
|
|
}
|
|
\NewDocumentCommand\Civilian{ d() g}{
|
|
\node[Char] (char) at (#1) {};
|
|
\IfNoValueTF{#2}{}{ \node[right=5pt] at (char) {#2}; }
|
|
}
|
|
\NewDocumentCommand\Demon{ o d() }{
|
|
\node[Char=red!50, \IfNoValueTF{#1}{}{#1}] (char) at (#2) {};
|
|
}
|
|
\NewDocumentCommand\Annotate{ d() g }{
|
|
\coordinate (charAnnotate) at (#1);
|
|
\draw[thin,gray] (char) -- (char |- charAnnotate);
|
|
\draw[thin,gray] (char |- charAnnotate) -- (charAnnotate)
|
|
node[midway,above,scale=0.7] {#2};
|
|
}
|
|
|
|
% Environment objects
|
|
\colorlet{pavement}{gray!90!yellow!20}
|
|
\tikzset{
|
|
material railing/.style={
|
|
black!80, line width=2mm,
|
|
},
|
|
material wall/.style={
|
|
black!30, line width=2mm,
|
|
},
|
|
material laser/.style={
|
|
red!80, line width=3px,
|
|
},
|
|
material bullet/.style={
|
|
orange!80, line width=3px, dashed
|
|
},
|
|
Magica object turbine/.pic={
|
|
\node[draw=black,star,star points=3,star point height=10pt,scale=1.5,fill=white]
|
|
(magica/turbine) {};
|
|
\draw (magica/turbine) circle (23pt);
|
|
},
|
|
Magica object solarpanel/.pic={
|
|
\filldraw[Blue!80,draw=black] (-0.5,-1) rectangle (0.5,1);
|
|
\draw[thin,step=0.5] (-0.5,-1) grid (0.5,1);
|
|
},
|
|
}
|
|
|
|
% Map drawing
|
|
\tikzset{
|
|
dot/.style={circle,draw,inner sep=1.5,fill=#1},
|
|
dot/.default=black,
|
|
largedot/.style={circle,draw,inner sep=4},
|
|
}
|