Getting ready for part rearrangement.

This commit is contained in:
Louis Burke 2018-08-25 17:48:20 -04:00
parent 48a969e893
commit 488073237d
13 changed files with 256 additions and 18 deletions

1
.gitignore vendored
View file

@ -6,5 +6,6 @@
changelist.txt
*.png
*.d
outputs/**
Console.
Python-Fu

View file

@ -115,11 +115,16 @@ export: outputs/purple.png outputs/green.png outputs/orange.png outputs/yellow.p
export: outputs/box[top].png outputs/box[bottom].png
%.pdf: %.tex
xelatex -interaction=batchmode -halt-on-error --output-directory=$(@D) $^
$(XELATEX) -interaction=batchmode -halt-on-error --shell-escape --output-directory=$(@D) $<
echo "$@" >> changelist.txt
rm $*.aux
rm $*.log
instructions.pdf: cards/dogs/husky0.png
cards/dogs/husky0.png: cards/dogs/husky0.pdf
$(PDFTOPPM) -scale-to-x 750 -scale-to-y 1050 -png $< > $@
force-make:
clean:
@ -129,6 +134,8 @@ clean:
-find outputs -name '*.pdf' -delete
-find outputs -name '*].png' -delete
-find outputs -name '*.d' -delete
-find . -name '*.aux' -delete
-find . -name '*.log' -delete
print-% : ; @echo $* = $($*)

5
cards/dogs/husky0.tex Normal file
View file

@ -0,0 +1,5 @@
\documentclass{iditacard}
\deck{starter}
\input{cards/dogs/husky.tex}

View file

@ -7,13 +7,7 @@
\begin{document}
\begin{card}
\art{deck_summary.png}
\utilcount{22}
\dogcount{5}
\movecount{6}
\foodcount{4}
\attachcount{2}
\personalcount{0}
\sledcount{14}
\input|"./deckinfo.sh attack"
\name{Reckless Deck}
\text{Recklessly stuff your deck and stop at nothing to win!}
\flava{Play nice.}

73
deckinfo.sh Executable file
View file

@ -0,0 +1,73 @@
#!/bin/bash
WHICH_DECK=$1
DECKLIST=$(cat cards/decks/$WHICH_DECK.txt | sed 's/pdf/tex/g')
UTIL_COUNT=$(echo "$DECKLIST" | grep '/util/' | wc -l)
DOG_COUNT=$(echo "$DECKLIST" | grep '/dogs/' | wc -l)
MOVE_COUNT=$(echo "$DECKLIST" | grep '/movement/' | wc -l)
FOOD_COUNT=$(echo "$DECKLIST" | grep '/food/' | wc -l)
ATTACH_COUNT=$(echo "$DECKLIST" | grep '/attachments/' | wc -l)
PERSONAL_COUNT=$(echo "$DECKLIST" | grep '/personal/' | wc -l)
SLED_COUNT=$(echo "$DECKLIST" | grep '/sleds/' | wc -l)
ENERGIES=
HEALTHS=
RISKS=
for CARD in $DECKLIST; do
if grep --quiet '\energy' $CARD; then
ENERGIES="$ENERGIES $(grep '\energy' $CARD | tr -dc '0-9')"
else
ENERGIES="$ENERGIES 0"
fi
if grep --quiet '\health' $CARD; then
HEALTHS="$HEALTHS $(grep '\health' $CARD | tr -dc '0-9')"
else
HEALTHS="$HEALTHS 0"
fi
if grep --quiet '\risk' $CARD; then
RISKS="$RISKS $(grep '\risk' $CARD | tr -dc '0-9')"
else
RISKS="$RISKS 0"
fi
done
AVG_ENERGY=$(echo "$ENERGIES" | awk '{s+=$1}END{print s/NR}' RS=" ")
AVG_HEALTH=$(echo "$HEALTHS" | awk '{s+=$1}END{print s/NR}' RS=" ")
AVG_RISK=$(echo "$RISKS" | awk '{s+=$1}END{print s/NR}' RS=" ")
ENERGY_POINTS=$(echo "$ENERGIES" | tr ' ' '\n' | sed '/^\s*$/d' | sort -n | uniq -c)
HEALTH_POINTS=$(echo "$HEALTHS" | tr ' ' '\n' | sed '/^\s*$/d' | sort -n | uniq -c)
RISK_POINTS=$(echo "$RISKS" | tr ' ' '\n' | sed '/^\s*$/d' | sort -n | uniq -c)
echo "\utilcount{$UTIL_COUNT}"
echo "\dogcount{$DOG_COUNT}"
echo "\movecount{$MOVE_COUNT}"
echo "\foodcount{$FOOD_COUNT}"
echo "\attachcount{$ATTACH_COUNT}"
echo "\personalcount{$PERSONAL_COUNT}"
echo "\sledcount{$SLED_COUNT}"
echo "%\avgenergy{$AVG_ENERGY}"
echo "%\avghealth{$AVG_HEALTH}"
echo "%\avgrisk{$AVG_RISK}"
echo "\begin{costcounts}"
echo "\energycounts{"
echo "$ENERGY_POINTS" | awk '{print "(" $2 "," $1 ") "}'
echo "}"
echo "\healthcounts{"
echo "$HEALTH_POINTS" | awk '{print "(" $2 "," $1 ") "}'
echo "}"
echo "\riskcounts{"
echo "$RISK_POINTS" | awk '{print "(" $2 "," $1 ") "}'
echo "}"
echo "\end{costcounts}"

6
ideas
View file

@ -1,3 +1,7 @@
Consider more player count? 6? 7?
Red/Green/Blue/Purple/Black/White/(orange/yellow)
Cubes instead of disks (smaller)
Back to old personal cards (shuffle unused back in)
Consider allowing to draw undestroyed?
@ -91,7 +95,7 @@ Fertile Soil (1,0): Food removes your starvation.
Winery (0,1) : Personal cards remove your hypothermia. (Nice warm mead)
University (0,1): Health costs are -1
Lowlands (0,1): Energy costs are -1
Dump (0,1) : You may destroy cards from your hand
Dump (0,1) : You may destroy cards from your hand
Scrapyard (1,0): Take +1/+1 (everything ripe for the picking)
Rank 4

Binary file not shown.

Before

Width:  |  Height:  |  Size: 252 KiB

After

Width:  |  Height:  |  Size: 306 KiB

Binary file not shown.

View file

@ -10,8 +10,11 @@
\RequirePackage{tikz}
\usetikzlibrary{positioning,shapes,shadows,arrows,backgrounds,fit}
\RequirePackage{pgfplots}
\RequirePackage{shapepar}
\RequirePackage{microtype}
\RequirePackage{mathtools}
\let\mttext\text
\graphicspath{{images/}}
@ -77,6 +80,24 @@
\node [text=white, minimum width=0.5in, minimum height=0.5in, text centered, text width=0.5in, anchor=center, inner sep=0mm] at (125.0/300.0, 538.0/300.0) {\bf\fontsize{25}{30}\bebas #1};
}
\newenvironment{costcounts}
{% Begin
\begin{axis}[at={(300,350)},
y axis line style={draw=none},
tick style={draw=none},
width=1in,
height=1in,
yticklabels={,,},
enlargelimits=0.05,
ybar interval=1.0]
}
{% End
\end{axis}}
\newcommand{\energycounts}[1]{\addplot[draw=none,fill=energy] coordinates {#1};}
\newcommand{\healthcounts}[1]{\addplot[draw=none,fill=health] coordinates {#1};}
\newcommand{\riskcounts}[1]{\addplot[draw=none,fill=risk] coordinates {#1};}
\newcommand{\@condcost}[2]{\ifnum 0<#1#2\fi}
\newcommand{\costs}[3]{%
\@condcost{#1}{\energy{#1}}%
@ -89,7 +110,7 @@
\node [rectangle, anchor=north, minimum width=2.15in, minimum height=2.0/3.0in, text centered, text width=1.833333in, inner sep=0mm] at (375.0/300.0,975.0/300.0) {\bf\fontsize{20}{30}\bebas#1\par};
}
\newcommand{\text}[1]{%
\renewcommand{\text}[1]{%
% add draw to the node to see its box
\node [rectangle, minimum width=1.833333in, minimum height=200.0/300.0, text centered, text width=1.833333in, inner sep=0mm, anchor=north] at (375.0/300.0,450.0/300) {\fontsize{16}{16}\bebas#1\par};
}
@ -141,18 +162,22 @@
\node [anchor=center] at (536.0/300.0, 603.0/300.0) {#1};
}
\newcommand{\useicon}[1]{\raisebox{-0.1em}{\includegraphics[height=1em]{icons/#1.png}}}
\newcommand{\upto}[1]{$\xrightarrow{\mttext{up to #1}}$}
\newcommand{\sendto}[1]{$\xrightarrow{\mttext{#1}}$}
\newcommand{\Mm}{Mm}
\newcommand{\Mms}{Mms}
\newcommand{\move}[1]{\raisebox{-0.2em}{\includegraphics[height=1em]{icons/dog-sled-icon.png}} #1}
\newcommand{\destroy}[2]{\raisebox{-0.1em}{\includegraphics[height=1em]{icons/card-pickup.png}} #2 \raisebox{-0.1em}{\includegraphics[height=1em]{icons/trash-can.png}} #1}
\newcommand{\take}[2]{\raisebox{-0.1em}{\includegraphics[height=1em]{icons/backpack.png}} #2 \raisebox{-0.1em}{\includegraphics[height=1em]{icons/shopping-cart.png}} #1}
\newcommand{\draw}[1]{\raisebox{-0.1em}{\includegraphics[height=1em]{icons/card-draw.png}} #1}
\newcommand{\daydraw}[1]{\raisebox{-0.1em}{\includegraphics[height=1em]{icons/card-plus.png}} #1 \raisebox{-0.1em}{\includegraphics[height=1em]{icons/solar-time.png}}}
\newcommand{\move}[1]{\raisebox{-0.1em}{\useicon{dog-sled-icon}} #1}
\newcommand{\destroy}[2]{\useicon{magnifying-glass} #2 \useicon{card} \upto{#1} \useicon{trash-can}} % Destroy up to #1 of #2
\newcommand{\take}[2]{\useicon{card} \sendto{#2} \useicon{backpack} \upto{#1} \useicon{shopping-cart}}
\newcommand{\draw}[1]{\useicon{card-draw} #1}
\newcommand{\daydraw}[1]{\useicon{card-plus} #1 \useicon{solar-time}}
\newcommand{\personal}{{\color{personal}personal}}
\newcommand{\sled}{{\color{sled}sled}}
\newcommand{\hypothermia}{\raisebox{-0.1em}{\includegraphics[height=1em]{icons/hypo.png}}}
\newcommand{\starvation}{\raisebox{-0.1em}{\includegraphics[height=1em]{icons/starve.png}}}
\newcommand{\speed}[1]{\raisebox{-0.1em}{\includegraphics[height=1em]{icons/speed.png}}#1}
\newcommand{\hypothermia}{\useicon{hypo}}
\newcommand{\starvation}{\useicon{starve}}
\newcommand{\speed}[1]{\useicon{speed}#1}
\newcommand{\raw}[1]{%
\node [rectangle, minimum width=650.0/300.0, minimum height=950.0/300.0, text justified, text width=53mm, inner sep=1mm, anchor=north west] at (50.0/300.0,1000.0/300.0) {#1};

BIN
images/icons/card.xcf Normal file

Binary file not shown.

Binary file not shown.

BIN
images/rules/checkpoint.xcf Normal file

Binary file not shown.

View file

@ -2,6 +2,8 @@
\usepackage[top=0.125in, bottom=0.125in, left=0.125in, right=0.125in, margin=0.125in, papersize={3.5in, 5in}]{geometry}
\usepackage{xcolor}
\usepackage{parskip}
\usepackage{pdfpages}
\definecolor{utility}{HTML}{FFFFFF}
\definecolor{attachment}{HTML}{5FAFCF}
@ -30,6 +32,133 @@
\vfill
\end{titlepage}
{\noindent\Heading\Large Overview\par}
% Your background story/recap on what situation the players are getting themselves into. It sets the scene (thematically, usually) for the entire game.
Iditacards is a game where you race your opponents in the last great race on
earth - The Iditarod. You will face starvation, hypothermia, and inclimate
weather. You will have to keep your sled in good condition and your dogs in top
forme to come out ahead.
The first player to cross the finish line wins!
{\noindent\Heading\Large Components\par}
% This isnt so important for playtesters at this point, but is important for the final rulebook and print and plays (PnP). This way players (including yourself) know whether or not there are missing pieces, or in the case of PnP players, if they have everything they need in order to play.
This game contains many cards. They can be sorted based on the symbol in the
bottom right corner:
\begin{itemize}
\setlength\itemsep{-1em}
\item 4 Starter Decks - \input "|cat cards/decks/starter1.txt | wc -l" cards each (\includegraphics[width=1em]{images/deck/starter1.png} \includegraphics[width=1em]{images/deck/starter2.png} \includegraphics[width=1em]{images/deck/starter3.png} \includegraphics[width=1em]{images/deck/starter4.png})
\item 1 Legendary Deck - \input "|cat cards/decks/legendary.txt | wc -l" cards (\includegraphics[width=1em]{images/deck/legendary.png})
\item 4 Upgrade Decks - \input "|cat cards/decks/speed.txt | wc -l" cards each (\includegraphics[width=1em]{images/deck/speed.png} \includegraphics[width=1em]{images/deck/attack.png} \includegraphics[width=1em]{images/deck/upgrade.png} \includegraphics[width=1em]{images/deck/survivor.png})
\item 1 Damage Deck - \input "|cat cards/decks/damage.txt | wc -l" cards (\includegraphics[width=1em]{images/deck/token.png})
\end{itemize}
Additionally there are 32 smaller stretch cards.
The game also contains:
\begin{itemize}
\setlength\itemsep{-1em}
\item This manual
\item The box the game came with
\item One weather die with special symbols on it
\item Two board halves
\item 20 player tokens (5 of each colour)
\end{itemize}
\clearpage
{\noindent\Heading\Large Objective\par}
% What the players are trying to accomplish. It should also make it clear how players are competing (free-for-all, teams, cooperative, etc.). This is the more technical/mechanical explanation of the 'Overview'. For example: “To be the last player with multiple spaceships orbiting the black hole”.
Every turn each player will move forward one space. The cards they play will
increase this, while the places they encounter will work to decrease it. When
the first player reaches the finish line the game ends and they win. The finish
line is the square \emph{after} the last square on the board.
{\noindent\Heading\Large Setup\par}
% How to get the game ready for play. There shouldnt be anything in here that mentions what components are used for or why they are important--save that for the 'Gameplay' section. Just make sure that in this section everything is laid out clearly--if diagrams are necessary (they almost always are) dont be afraid to put those in!
The board comes in two halves that should just be placed together to create
a continuous playing surface.
To start the game each player must pick a colour. They take the tokens of that
colour placing one on:
\begin{itemize}
\setlength\itemsep{-1em}
\item The starting space (\includegraphics[width=5em]{images/rules/start.png})
\item Each 0 space (\includegraphics[width=5em]{images/rules/zeroone.png} \includegraphics[width=5em]{images/rules/zeroten.png})
\item The healthy and warm spaces (\includegraphics[width=8em]{images/rules/health_warm.png})
\end{itemize}
Take the starter deck of your colour, find the \emph{Wheel Dog}, and place it
on the table in front of you. Then shuffle it and place it face down in front
of you.
Shuffle the legendary deck and deal 5 cards from it to each player. Each player
looks at their legendary cards and leaves them face-down in front of them.
Before starting the game everybody draws 6 cards. The first player to grab the
weather die goes first. They roll it, then take their turn.
{\noindent\Heading\Large Gameplay\par}
% The main gameplay section tells you how the game is broken up (rounds, turns, phases, etc.) and summarizes what players do in each of those stages. This section should explain the flow of the game from start to completion.
The game is broken into turns. Each turn you may either play a card, or take
a new day. At the end of your turn you move 1 myriameter (1 square). After you
finish moving the player to your left begins their turn.
During gameplay you will often discard cards. It is important to note that
discarded cards will be returned to your deck frequently. This is in contrast
to destroyed cards which are removed from the game permanently.
% Once thats done, you go into the gameplay specifics, which should be explained in the order in which they occur in game. This is where you explain exactly what happens during each turn, action, round, etc. You also should have sections dedicated to complicated subjects and their edge cases (for instance, our section on Collisions for “Pulled into Darkness”).
{\noindent\Heading\large Movement\par}
As in any race, movement is important. Whenever you move you add your current
speed to the distance. Many cards in the game will modify your speed.
When you move onto or past certain spaces different things happen. This is
called 'passing' the space.
If you pass another player they move back one space and you take one damage
(damage will be explained later).
The first time you pass each checkpoint
(\includegraphics[width=2em]{images/rules/checkpoint.png}) add one of your
legendary cards of your choice to your discard pile.
If you pass the checkerboard finish line you win the game.
{\noindent\Heading\large Card Anatomy\par}
\includegraphics[width=20em]{cards/dogs/husky0.png}
{\noindent\Heading\large New Days\par}
{\noindent\Heading\large Weather\par}
{\noindent\Heading\Large Effects\par} % Don't forget to mention stretches and their effects
{\noindent\Heading\large Hypothermia\par}
{\noindent\Heading\large Starvation\par}
{\noindent\Heading\Large Card Types\par}
{\noindent\Heading\large\color{dog} Dogs\par}
{\noindent\Heading\large\color{attachment} Attachments\par}
{\noindent\Heading\large\color{sled} Sled\par}
{\noindent\Heading\large\color{personal} Personal\par}
{\noindent\Heading\large\color{food} Food\par}
{\noindent\Heading\large\color{movement} Movement\par}
{\noindent\Heading\large Utility\par}
{\noindent\Heading\Large Icons\par}
{\noindent\Heading\Large Game End\par}
% What initiates the end game (ie. once the last card is drawn, at the end of the fourth round etc.), when the game is actually over (ie. each player gets one more turn--including the player who drew the last card), how players tally their points, and restate what the victory requirement is/who wins.
{\noindent\Heading\Large Setup\par}
To begin the game separate out each of the decks of cards based on the