Compare commits

...

31 commits

Author SHA1 Message Date
Louis Burke 93cdffb76e Removed currently unused files 2024-10-16 00:23:48 -04:00
Louis Burke 68d85ba833 Sped up build 2024-10-14 17:38:03 -04:00
Louis Burke 6c30f0447b More working build, trying to optimize 2024-10-11 00:04:05 -04:00
Louis Burke d28e1b855f Many assets smoothly working 2024-10-04 02:02:17 -04:00
Louis Burke 95c6bde677 Migrated to cue+ninja 2024-09-25 01:13:02 -04:00
Louis Burke 33db092023 Preservation commit before deciding on a data format 2024-09-16 00:38:22 -04:00
Louis Burke 9089c78aec Uncommited changes of unknown quality 2021-11-24 19:52:32 -05:00
Louis Burke 9e6cd3d4ea Added transparent logo asset. 2019-08-25 10:51:35 -04:00
Louis Burke 242b6d2b7e Fixed merge issues. 2019-08-25 10:44:54 -04:00
Louis Burke cc9c352e57 Added mini print rule. 2019-08-25 10:21:58 -04:00
Louis Burke 6c57ad1b93 Possible release! 2019-07-14 20:08:26 -04:00
Louis Burke 463f9da610 Finished updating instructions 2019-07-12 19:38:19 -04:00
Louis Burke e05389a5bd Finished board. 2019-07-12 14:55:02 -04:00
Louis Burke c11f57ab9f Finished new legs. 2019-07-09 20:46:59 -04:00
Louis Burke 7d12aa5dfc Progress 2019-04-22 20:55:52 -04:00
Louis Burke 6c45efc216 Added all placeholders 2019-04-22 12:44:18 -04:00
Louis Burke d5812fa9a0 Added start and end 2019-04-21 16:26:15 -04:00
Louis Burke 67d2807072 Coloured legs 2019-04-19 14:09:33 -04:00
Louis Burke 53b19b6cbf Added leg code to latex class 2019-04-19 14:01:22 -04:00
Louis Burke f497b9b968 created icons 2019-04-18 08:29:01 -04:00
Louis Burke 34b4ed45c1 Started redoing assets. 2019-04-14 16:08:52 -04:00
Louis Burke e053c56a88 Added more cards. 2019-04-14 14:06:11 -04:00
Louis Burke 948c7e2edb Began adding extra cards. 2019-04-13 21:46:57 -04:00
Louis Burke c3c7b87db3 Removed some unused assets. 2019-04-13 14:48:41 -04:00
Louis Burke 05bb67851a Updated build system. 2019-04-11 23:30:44 -04:00
Louis Burke 805297554d Added legendaries and damage. 2019-04-09 21:59:21 -04:00
Louis Burke d95466220d Added candidate starters to db 2019-04-09 00:17:37 -04:00
Louis Burke 28141d3524 Started sql database for cards. 2019-04-08 21:54:08 -04:00
Louis Burke a89601c4ef Filled out track. 2019-04-06 17:21:46 -04:00
Louis Burke de767417f1 Switched to metric. 2019-04-05 00:03:00 -04:00
Louis Burke a7327e2b65 Made basic straight space 2019-04-04 08:38:03 -04:00
376 changed files with 4237 additions and 1221 deletions

7
.gitignore vendored
View file

@ -8,5 +8,12 @@ changelist.txt
*.d
*.toc
outputs/**
output/**
Console.
Python-Fu
Makefile.deps
generated/**
!images/**
.ninja_log
build.ninja

BIN
.ninja_deps Normal file

Binary file not shown.

159
Makefile
View file

@ -1,157 +1,8 @@
.PHONY: all clean check printrun cardrun
.PRECIOUS: %.pdf %.png
default: everything
default: check decks
all: check decks export
build.ninja: $(wildcard *.cue) $(wildcard *.yaml) configure.jq
cue export -- *.cue *.yaml | ./configure.jq --args -- *.cue *.yaml
# Check existence of necessary executables
CONVERT:=$(shell command -v convert 2> /dev/null)
XELATEX:=$(shell command -v xelatex 2> /dev/null)
PDFTOPPM:=$(shell command -v pdftoppm 2> /dev/null)
PDFUNITE:=$(shell command -v pdfunite 2> /dev/null)
everything: build.ninja
ninja
check:
ifndef CONVERT
$(error "convert not found. Please install imagemagick")
endif
ifndef XELATEX
$(error "xelatex not found. Please install xetex")
endif
ifndef PDFTOPPM
$(error "pdftoppm not found. Please install poppler")
endif
ifndef PDFUNITE
$(error "pdfunite not found. Please install poppler")
endif
SHORT_DECKLIST=$(shell ls cards/decks | grep -v run | sed -e 's/.txt//')
DECKLIST=$(SHORT_DECKLIST) printrun cardrun
DEPENDLIST=$(DECKLIST:%=%.d)
outputs/printrun.txt: $(SHORT_DECKLIST)
cat $^ | sort > $@
outputs/cardrun.txt: $(SHORT_DECKLIST)
cat $^ | sort -u > $@
outputs/%run.d: cards/decks/%run.txt
echo -n 'outputs/$*run.pdf:' > $@
tr '\n' ' ' < $< >> $@
echo -e '\n\tpdfunite $$+ $$@' >> $@
cat $< | sort | uniq -c | sed -e 's@\([[:digit:]]\+\) \(.\+/\)*\(.\+\).pdf@export: outputs/$*run/\3[\1].png@' >> $@
cat $< | sort | uniq -c | sed -e 's@\([[:digit:]]\+\) \(.\+/\)*\(.\+\).pdf@outputs/$*run/\3[\1].png: \2\3[\1].png; cp \2\3[\1].png outputs/$*run/\3[\1].png@' >> $@
mkdir -p outputs/$*run
echo 'decks: outputs/$*run.pdf' >> $@
outputs/%.d: cards/decks/%.txt
echo -n 'outputs/$*.pdf:' > $@
tr '\n' ' ' < $< >> $@
echo -e '\n\tpdfunite $$+ $$@' >> $@
cat $< | sort | uniq -c | sed -e 's@\([[:digit:]]\+\) \(.\+/\)*\(.\+\).pdf@export: outputs/$*/\3[\1].png@' >> $@
cat $< | sort | uniq -c | sed -e 's@\([[:digit:]]\+\) \(.\+/\)*\(.\+\).pdf@outputs/$*/\3[\1].png: \2\3[\1].png; cp \2\3[\1].png outputs/$*/\3[\1].png@' >> $@
mkdir -p outputs/$*
echo 'decks: outputs/$*.pdf' >> $@
echo 'short: outputs/$*.pdf' >> $@
include $(DECKLIST:%=outputs/%.d)
outputs/iditaboard[face].png: iditaboard.pdf
$(PDFTOPPM) -scale-to-x 4875 -scale-to-y 3075 -png $< > $@
outputs/cardback.png: cardback.png
cp $< $@
outputs/stretchback1.png: cardback.png
convert $< -fuzz 50% -fill \#7FDF7D -opaque white tmp.png
convert tmp.png -fuzz 50% -fill \#CF5FCF -opaque black $@
rm tmp.png
outputs/stretchback2.png: cardback.png
convert $< -fuzz 50% -fill \#9FB76F -opaque white tmp.png
convert tmp.png -fuzz 50% -fill \#FF5F5F -opaque black $@
rm tmp.png
outputs/stretchback3.png: cardback.png
convert $< -fuzz 50% -fill \#5F5FFF -opaque white tmp.png
convert tmp.png -fuzz 50% -fill \#9F9F9F -opaque black $@
rm tmp.png
outputs/stretchback4.png: cardback.png
convert $< -fuzz 50% -fill \#3FDFDF -opaque white tmp.png
convert tmp.png -fuzz 50% -fill \#DFDF3F -opaque black $@
rm tmp.png
outputs/box[top].png: box_top.png
cp $< $@
outputs/box[bottom].png: box_bottom.png
cp $< $@
export: outputs/stretchback1.png outputs/stretchback2.png outputs/stretchback3.png outputs/stretchback4.png
export: outputs/cardback.png
export: outputs/box[top].png outputs/box[bottom].png
export: outputs/iditaboard[face].png
export: instructions.pdf
%.pdf: %.tex
$(XELATEX) -interaction=batchmode -halt-on-error --shell-escape --output-directory=$(@D) $<
echo "$@" >> changelist.txt
rm $*.aux
rm $*.log
instructions.pdf: instructions.tex cards/dogs/husky0.pdf cards/attachments/armour0.pdf cards/food/breakfast0.pdf cards/food/lunch0.pdf cards/sleds/repair_sled0.pdf cards/sleds/upgrade_sled0.pdf cards/movement/move0.pdf cards/food/dinner0.pdf cards/personal/first_aid0.pdf cards/dogs/good_dog0.pdf cards/util/vigilance.pdf cards/damaged.pdf cards/util/daylight_savings_time.pdf cards/util/sleeping_bag.pdf cards/sleds/new_sled.pdf cards/sleds/stop_and_shop.pdf cards/sleds/satiated.pdf cards/personal/ibuprofin.pdf cards/util/utility_knife.pdf
$(XELATEX) -interaction=batchmode -halt-on-error --shell-escape --output-directory=$(@D) $<
$(XELATEX) -interaction=batchmode -halt-on-error --shell-escape --output-directory=$(@D) $< # Twice, for TOC
force-make:
clean:
-find cards -name '*.pdf' -delete
-find cards -name '*].png' -delete
-find cards -name '*-raw.png' -delete
-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 $* = $($*)
# Rules for each multiplicity of png
%[1].png: %.pdf; ./cardtopng.sh $@
%[2].png: %.pdf; ./cardtopng.sh $@
%[3].png: %.pdf; ./cardtopng.sh $@
%[4].png: %.pdf; ./cardtopng.sh $@
%[5].png: %.pdf; ./cardtopng.sh $@
%[6].png: %.pdf; ./cardtopng.sh $@
%[7].png: %.pdf; ./cardtopng.sh $@
%[8].png: %.pdf; ./cardtopng.sh $@
%[9].png: %.pdf; ./cardtopng.sh $@
%[10].png: %.pdf; ./cardtopng.sh $@
%[11].png: %.pdf; ./cardtopng.sh $@
%[12].png: %.pdf; ./cardtopng.sh $@
%[13].png: %.pdf; ./cardtopng.sh $@
%[14].png: %.pdf; ./cardtopng.sh $@
%[15].png: %.pdf; ./cardtopng.sh $@
%[16].png: %.pdf; ./cardtopng.sh $@
%[17].png: %.pdf; ./cardtopng.sh $@
%[18].png: %.pdf; ./cardtopng.sh $@
%[19].png: %.pdf; ./cardtopng.sh $@
%[20].png: %.pdf; ./cardtopng.sh $@
%[21].png: %.pdf; ./cardtopng.sh $@
%[22].png: %.pdf; ./cardtopng.sh $@
%[23].png: %.pdf; ./cardtopng.sh $@
%[24].png: %.pdf; ./cardtopng.sh $@
%[25].png: %.pdf; ./cardtopng.sh $@
%[26].png: %.pdf; ./cardtopng.sh $@
%[27].png: %.pdf; ./cardtopng.sh $@
%[28].png: %.pdf; ./cardtopng.sh $@
%[29].png: %.pdf; ./cardtopng.sh $@
%[30].png: %.pdf; ./cardtopng.sh $@
%[31].png: %.pdf; ./cardtopng.sh $@
%[32].png: %.pdf; ./cardtopng.sh $@
%[33].png: %.pdf; ./cardtopng.sh $@
%[34].png: %.pdf; ./cardtopng.sh $@
%[35].png: %.pdf; ./cardtopng.sh $@
%[36].png: %.pdf; ./cardtopng.sh $@
%[image].png: %.pdf; ./cardtopng.sh $@

9
README.md Normal file
View file

@ -0,0 +1,9 @@
# Iditacards!
This is the "source code" for the Iditacards card game.
This README file is intended to explain the organization and methodology of the
project.
If you just want to create all necessary assets, a simple `make all` should do
the trick.

51
assets.cue Normal file
View file

@ -0,0 +1,51 @@
// Iditacards asset definitions
package iditacards
#AssetKind: "image" | "tex" | "texdoc" | "template" | "cat" | "svg"
#Asset: {
// passed to convert to create the "print" version (usually to add bleed)
// e.g. -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage
print?: string
// temporarily removed, hoping that scantex.sh can handle it
if false {
depends: {
assets: [...string]
files: [...string]
}
}
kind: #AssetKind
if kind == "image" {
source: string
}
if kind == "template" {
template: string
size: #Dimensions
data: _
}
if kind == "cat" {
contents: [...string]
}
if kind == "tex" || kind == "svg" {
source: string
size: #Dimensions
}
if kind == "texdoc" {
source: string
}
}
// Assets are what actually need to be printed/created/etc
assets: [string]: #Asset
// Pseudo assets are useful to build for actually interacting with the game
// (e.g. a PDF of all cards)
pseudoassets: [string]: #Asset

67
assets.yaml Normal file
View file

@ -0,0 +1,67 @@
# The "other" assets
assets:
logo:
kind: image
source: iditacards.png
cardback:
kind: image
source: cardback.png
cardback-firstleg:
kind: image
source: cardback.png
print: +level-colors black,"#9117FF"
cardback-secondleg:
kind: image
source: cardback.png
print: +level-colors black,"#17FF91"
cardback-thirdleg:
kind: image
source: cardback.png
print: +level-colors black,"#FF9117"
iditaboard:
kind: tex
source: iditaboard.tex
size: 4875x3075
instructions:
kind: texdoc
source: instructions.tex
instructions-anatomy:
kind: texdoc
source: instructions-anatomy.tex
die/cloud:
kind: svg
source: images/die/cloud.svg
size: 180x180
die/rain:
kind: svg
source: images/die/rain.svg
size: 180x180
die/snowflake:
kind: svg
source: images/die/snowflake.svg
size: 180x180
die/storm:
kind: svg
source: images/die/storm.svg
size: 180x180
die/sun:
kind: svg
source: images/die/sun.svg
size: 180x180
die/wind:
kind: svg
source: images/die/wind.svg
size: 180x180

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 MiB

92
cards.cue Normal file
View file

@ -0,0 +1,92 @@
// Iditacards card and deck asset specification
package iditacards
import "list"
#CardType: "attachment" | "dog" | "food" | "movement" | "personal" | "sled" | "damage"
#UnaryEffect: "see" | "destroy" | "supply" | "take" | "speed" | "draw" |
"daydraw" | "move" | "damage"
#NilaryEffect: "immortal" | "safepass" | "inplayatstart" | "discardonkill" |
"nohypothermia" | "doubledistance" | "passdie" | "nohold" | "damagetext"
// the template for a card gets this
#Card: {
name: string
type: #CardType
costs: {
energy: uint | *0 | "ALL"
health: uint | *0 | "ALL"
risk: uint | *0 | "ALL"
}
// effects: [#NAryEffect]: {} | null | int | "ALL" | =~"x[0-9]+"
effects: [#UnaryEffect]: int | "ALL" | =~"x[0-9]+"
effects: [#NilaryEffect]: {} | null
flavour: string
image: string
rarity?: #Rarity
deck?: string
}
cards: [string]: #Card
#Rarity: "info" | "starting" | "common" | "rare" | "epic" | "legendary"
decks: [string]: [Name=_]: {
rarity: #Rarity
count: int
}
assets: {
for deckname, deck in decks
for cardname, freq in deck
let card = cards[cardname] {
"cards/\(deckname)-\(cardname)[\(freq.count)]": {
size: "750x1050"
print: "-set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage"
kind: "template"
template: "card.tex"
data: cards[cardname] & {
rarity: freq.rarity
deck: deckname
}
}
}
if false {
for deckname, deck in decks
for cardname, freq in deck
let card = cards[cardname] {
"card/\(cardname)": {
kind: "image"
source: "images/card/\(cardname).png"
}
}
}
}
pseudoassets: {
for deckname, deck in decks {
"\(deckname)-deck": {
kind: "cat"
contents: [
for cardname, freq in deck
for idx in list.Range(0, freq.count, 1) {
"cards/\(deckname)-\(cardname)[\(freq.count)]"
},
]
}
}
cardrun: {
kind: "cat"
contents: [
for deckname, deck in decks
for cardname, card in deck {
for idx in list.Range(0, card.count, 1) {
"cards/\(deckname)-\(cardname)[\(card.count)]"
}
},
]
}
}

726
cards.yaml Normal file
View file

@ -0,0 +1,726 @@
# The cards
cards:
a_hat:
name: 'A Hat'
costs:
energy: 2
health: 2
effects:
daydraw: 1
image: hat
type: attachment
flavour: 'I bet its a valve hat.'
dog_chow:
name: 'Dog Chow'
costs:
energy: 3
health: 3
effects:
speed: 1
image: dog_chow
type: attachment
flavour: 'A hungry dog is a slow dog.'
good_dog:
name: 'Good Dog'
costs:
energy: 3
health: 3
effects:
daydraw: 1
image: good_dog
type: dog
flavour: 'Good boy.'
husky:
name: 'Husky'
costs:
energy: 2
health: 2
risk: 2
effects:
daydraw: 1
speed: 1
image: husky
type: dog
flavour: 'Standard mushing fare.'
wheel_dog:
name: 'Wheel Dog'
costs:
energy: 3
health: 3
effects:
speed: 1
discardonkill:
inplayatstart:
image: wheel_dog
type: dog
flavour: 'The dog right in front of the sled. Strong and steady.'
breakfast:
name: 'Breakfast'
costs:
health: 3
effects:
draw: 3
image: breakfast
type: food
flavour: 'The most important meal of the day.'
lunch:
name: 'Lunch'
costs:
energy: 3
effects:
draw: 3
image: lunch
type: food
flavour: 'What about second breakfast?'
dinner:
name: 'Dinner'
costs:
energy: 2
health: 2
effects:
draw: 7
image: dinner
type: food
flavour: 'I hope you like salted fish.'
move:
name: 'Move'
effects:
move: 1
image: move
type: movement
flavour: 'Just another day.'
mush:
name: 'Mush'
costs:
energy: 2
health: 2
risk: 1
effects:
move: 10
image: mush
type: movement
flavour: "Comes from the french word ``Marche''."
first_aid:
name: First Aid
costs:
energy: 2
health: 2
effects:
see: 3
destroy: 1
image: first_aid
type: personal
flavour: 'Reduces swelling.'
grandma_soup:
name: Grandma Soup
costs:
energy: 1
health: 2
risk: 1
effects:
see: 10
destroy: 2
image: grandma_soup
type: personal
flavour: 'Cures what ails you.'
repair_sled:
name: Repair Sled
costs:
energy: 1
health: 3
effects:
supply: 1
take: 2
image: repair_sled
type: sled
flavour: "It doesn't need to be pretty. It just has to work."
upgrade_sled:
name: Upgrade Sled
costs:
energy: 2
health: 2
effects:
supply: 3
take: 1
image: upgrade_sled
type: sled
flavour: 'You have to keep your ride in top shape.'
buffer_panel:
name: Buffer Panel
costs:
energy: 2
health: 2
effects:
immortal:
safepass:
image: buffer_panel
type: attachment
flavour: 'Did the primary buffer panel just fall of my gorram ship for no apparent reason?'
nuclear_reactor:
name: Nuclear Reactor
costs:
energy: 2
health: 2
effects:
speed: 5
passdie:
image: nuclear_reactor
type: attachment
flavour: 'What could go wrong?'
engineer_dog:
name: Engineer Dog
costs:
energy: 3
health: 5
risk: 1
effects:
speed: x2 # - '\speed{$\times 2$}'
nohold:
image: engineer_dog
type: dog
flavour: 'Nails and Gears.'
moose:
name: Moose
costs:
energy: 5
risk: 3
effects:
speed: 5
immortal:
image: moose
type: dog
flavour: 'Majestic creatures. Hard to tame.'
waffle:
name: Waffle
effects:
draw: 2
image: waffles
type: food
flavour: 'Waffles are \textbf{delicious}.'
whale_meat:
name: Whale Meat
costs:
energy: 1
health: 1
effects:
draw: 5
nohypothermia:
image: whale_meat
type: food
flavour: "It's like rubber."
hitch_a_ride:
name: Hitch a Ride
costs:
energy: 1
effects:
move: 6
damage: 1
image: hitch_a_ride
type: movement
flavour: 'Probably not in the spirit of the race.'
tactical_play:
name: Tactical Play
costs:
energy: 1
risk: 1
effects:
move: 0
doubledistance:
image: tactical_play
type: movement
flavour: 'Make the most of it.'
meditate:
name: Meditate
costs:
energy: 1
health: 1
effects:
see: ALL
destroy: 0
image: meditate
type: personal
flavour: 'It \textit{is} just sitting.'
diamorphine:
name: Diamorphine
costs:
energy: 1
health: 1
risk: 1
effects:
see: ALL
destroy: ALL
image: diamorphine
type: personal
flavour: 'Highly addicting.'
desperate_times:
name: Desperate Times
costs:
energy: ALL
effects:
supply: 10
take: 5
image: desparate_times
type: sled
flavour: 'Desperate measures hotline, how may I help you?'
lead_sled:
name: Lead Sled
costs:
energy: 1
health: 1
risk: 1
effects:
supply: 10
take: 10
image: lead_sled
type: sled
flavour: "At least it's not a zeppelin."
damaged:
name: Damaged
costs:
energy: 1
health: 1
effects:
damagetext:
image: damaged
type: damage
flavour: 'You have been hurt.'
dog_shoes:
name: Dog Shoes
costs:
energy: 2
health: 3
effects:
speed: 2
image: dog_shoes
type: attachment
flavour: 'Dogs look cute in shoes.'
squirrel:
name: Squirrel
costs:
energy: 2
health: 2
risk: 1
effects:
speed: 3
image: squirrel
type: attachment
flavour: 'Dogs \emph{hate} squirrels.'
tiara:
name: Tiara
costs:
energy: 2
health: 2
risk: 1
effects:
daydraw: 1
speed: 1
image: tiara
type: attachment
flavour: 'Makes the dog feel special.'
bear:
name: Bear
costs:
energy: 2
health: 2
risk: 2
effects:
speed: 5
image: bear
type: dog
flavour: 'In hindsight, not the best idea.'
big_dog:
name: Big Dog
costs:
energy: 2
health: 2
effects:
speed: 3
image: big_dog
type: dog
flavour: "He's not red though."
greyhound:
name: Greyhound
costs:
risk: 2
effects:
speed: 3
nohold:
image: greyhound
type: dog
flavour: 'What happens when you mix the colours on a husky? You get a grey hound.'
malamute:
name: Malamute
costs:
energy: 2
health: 2
risk: 1
effects:
daydraw: 2
image: malamute
type: dog
flavour: 'A common sled hauling breed.'
problem_dog:
name: Problem Dog
costs:
energy: 1
health: 1
risk: 1
effects:
daydraw: -1
speed: 3
image: problem_dog
type: dog
flavour: "I swear, if you weren't so fast."
bison:
name: Bison
costs:
energy: 2
risk: 1
effects:
draw: 5
image: bison
type: food
flavour: "It's very lean."
poutine:
name: Poutine
costs:
health: 2
effects:
draw: 1
nohypothermia:
image: poutine
type: food
flavour: 'The great Canadian carb!'
venison:
name: Venison
costs:
health: 2
effects:
draw: 3
image: venison
type: food
flavour: 'Better than breakfast.'
steak:
name: Steak
effects:
draw: 1
image: steak
type: food
flavour: "Well aren't you fancy."
jerky:
name: Jerky
costs:
energy: 1
health: 1
effects:
draw: 3
image: jerky
type: food
flavour: 'Watch your sodium!'
midnight_sun:
name: Midnight Sun
costs:
energy: 1
health: 1
risk: 1
effects:
move: 10
image: midnight_sun
type: movement
flavour: 'Strange things are done in the midnight sun.'
push:
name: Push
costs:
energy: 1
effects:
move: 5
image: push
type: movement
flavour: 'Not a full mush, but still putting in some effort.'
slow_and_steady:
name: Slow and Steady
effects:
draw: 1
move: 0
image: slow_and_steady
type: movement
flavour: 'Maybe a bit too slow.'
band_aid:
name: Band Aid
effects:
see: 1
destroy: 1
image: band_aid
type: personal
flavour: 'Not much.'
bandage:
name: Bandage
costs:
energy: 1
effects:
see: 5
destroy: 1
image: bandage
type: personal
flavour: 'Make sure you wrap it tight.'
brandy:
name: Brandy
costs:
risk: 1
effects:
see: 5
destroy: 1
image: brandy
type: personal
flavour: 'Brought by a St.\ Bernard'
caffeine:
name: Caffeine
costs:
health: 2
effects:
draw: 1
see: 2
destroy: 1
image: caffeine
type: personal
flavour: 'The greatest addiction ever.'
improvise:
name: Improvise
effects:
take: 1
image: improvise
type: sled
flavour: 'MacGyver of the north.'
makeshift_sled:
name: Makeshift Sled
costs:
energy: 1
health: 1
effects:
supply: 2
take: 6
image: makeshift_sled
type: sled
flavour: "Rickety, but it'll hold."
salvage:
name: Salvage
costs:
energy: 1
health: 1
effects:
supply: 3
take: 2
image: salvage
type: sled
flavour: 'Take the good with the bad.'
antique_sled:
name: Antique Sled
costs:
health: 5
effects:
supply: 2
take: 8
image: antique_sled
type: sled
flavour: 'Withstood the test of the time.'
rush:
name: Rush
costs:
health: 3
risk: 1
effects:
move: 8
image: rush
type: movement
flavour: 'Hurry up!'
supply_run:
name: Supply Run
effects:
move: 3
image: supply_run
type: movement
flavour: 'Not as easy as dropping by the grocery store.'
decks:
starter1: &starter
a_hat:
rarity: starting
count: 1
breakfast:
rarity: starting
count: 2
lunch:
rarity: starting
count: 2
dinner:
rarity: starting
count: 1
dog_chow:
rarity: starting
count: 1
first_aid:
rarity: starting
count: 2
good_dog:
rarity: starting
count: 1
grandma_soup:
rarity: starting
count: 1
husky:
rarity: starting
count: 1
move:
rarity: starting
count: 4
mush:
rarity: starting
count: 1
repair_sled:
rarity: starting
count: 2
upgrade_sled:
rarity: starting
count: 2
wheel_dog:
rarity: starting
count: 1
starter2: *starter
starter3: *starter
starter4: *starter
# starter5: *starter
# starter6: *starter
race:
bear:
rarity: rare
count: 2
big_dog:
rarity: rare
count: 2
dog_shoes:
rarity: rare
count: 2
greyhound:
rarity: rare
count: 2
improvise:
rarity: common
count: 2
midnight_sun:
rarity: rare
count: 2
problem_dog:
rarity: rare
count: 2
push:
rarity: rare
count: 2
rush:
rarity: rare
count: 2
slow_and_steady:
rarity: rare
count: 2
squirrel:
rarity: rare
count: 2
supply_run:
rarity: rare
count: 2
tiara:
rarity: rare
count: 2
survival:
antique_sled:
rarity: common
count: 2
band_aid:
rarity: common
count: 2
bandage:
rarity: common
count: 2
bison:
rarity: common
count: 2
brandy:
rarity: common
count: 2
caffeine:
rarity: common
count: 2
jerky:
rarity: common
count: 2
makeshift_sled:
rarity: common
count: 2
malamute:
rarity: common
count: 2
poutine:
rarity: common
count: 2
salvage:
rarity: common
count: 2
steak:
rarity: common
count: 2
venison:
rarity: common
count: 2

View file

@ -1,18 +0,0 @@
#!/bin/bash
# Syntax: cardtopng.sh cardname.png
OUTPUT=$1
INTERMEDIATE=$(echo "$1" | sed 's/\[.*\]\..*//')-raw.png
PDFNAME=$(echo "$1" | sed 's/\[.*\]\..*//').pdf
# Determine card size
#if grep -q 750x1050 <<<$(identify $INTERMEDIATE); then
if [ "${PDFNAME/stretch}" = "$PDFNAME" ]; then
# Poker Deck
pdftoppm -scale-to-x 750 -scale-to-y 1050 -png $PDFNAME > $INTERMEDIATE
convert $INTERMEDIATE -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage $OUTPUT
else
# Mini Deck
pdftoppm -scale-to-x 750 -scale-to-y 525 -png $PDFNAME > $INTERMEDIATE
convert $INTERMEDIATE -set option:distort:viewport 825x600-37-37 -virtual-pixel Edge -distort SRT 0 +repage $OUTPUT
fi

132
configure.jq Executable file
View file

@ -0,0 +1,132 @@
#!/usr/bin/env -S jq -r -f
# Takes iditacards output json and produces the dynamic ninja build
# Example usage: cue export -- *.cue *.yaml | ./configure.jq > output/build.ninja
def ifblank(x): if . | length > 0 then . else x end;
def cuesources: $ARGS.positional | join(" ");
def header: "# Generated from configure.jq, do not edit this file!
root = .
rule configure
description = recreate build.ninja using configure.jq
command = cue export -- *.cue *.yaml | ./configure.jq --args -- *.cue *.yaml > $out
generator = 1
build build.ninja: configure | configure.jq \(cuesources)
base = .
include rules.ninja
build output/.everything.json: cuegen \(cuesources)
filter = .
";
def dirof: split("/")[0:-1] | join("/") | if . | length > 0 then . + "/" else "" end;
def filof: . as $saved | split("/")[-1] | ifblank($saved);
def rawof: filof as $saved | split(".")[0:-1] | join(".") | ifblank($saved);
def generate_pdf_builds($dir; $raw; $tex): "
build output/\($dir)\($raw).pdf: tex2pdf \($tex) || output/\($dir).\($raw).pdf.dd
dyndep = output/\($dir).\($raw).pdf.dd
build output/\($dir).\($raw).pdf.dd: scantex \($tex)
target = output/\($dir)\($raw).pdf
";
def generate_png_from_pdf_builds($dir; $raw; $pdf):
(.size | split("x")[0]) as $w |
(.size | split("x")[1]) as $h |
(if .print then "raw." else "" end) as $ext | "
build output/\($dir)\($raw).\($ext)png: pdf2png \($pdf)
w = \($w)
h = \($h)
";
def generate_png_copy_builds($dir; $raw; $png):
(if .print then "raw." else "" end) as $ext | "
build output/\($dir)\($raw).\($ext)png: copy \($png)
";
def generate_print_png_builds($dir; $raw; $rawpng):
if .print then "
build output/\($dir)\($raw).png: convert \($rawpng)
args = \(.print)
" else empty end;
def generate_template_builds:
(.name | dirof) as $dir |
(.name | rawof) as $raw | ("
build output/\($dir).\($raw).update | output/\($dir).\($raw).json: extract output/.everything.json
filter = --arg asset '\(.name)' '.assets[$$asset].data'
target = output/\($dir).\($raw).json
build output/\($dir)/tex/\($raw).tex: template2tex output/\($dir).\($raw).json | templates/\(.template)
template = templates/\(.template)
",
generate_pdf_builds($dir; $raw; "output/\($dir)/tex/\($raw).tex"),
generate_png_from_pdf_builds($dir; $raw; "output/\($dir)\($raw).pdf"),
generate_print_png_builds($dir; $raw; "output/\($dir)\($raw).raw.png")
);
def generate_image_builds:
(.name | dirof) as $dir |
(.name | rawof) as $raw | (
generate_png_copy_builds($dir; $raw; .source),
generate_print_png_builds($dir; $raw; "output/\($dir)\($raw).raw.png")
);
def generate_tex_builds:
(.size | split("x")[0]) as $w |
(.size | split("x")[1]) as $h |
(.name | dirof) as $dir |
(.name | rawof) as $raw | (
generate_pdf_builds($dir; $raw; .source),
generate_png_from_pdf_builds($dir; $raw; "output/\($dir)\($raw).pdf"),
generate_print_png_builds($dir; $raw; "output/\($dir)\($raw).raw.png")
);
def generate_texdoc_builds:
(.name | dirof) as $dir |
(.name | rawof) as $raw | "
build output/\($dir)\($raw).pdf: tex2pdf2x \(.source) || output/\($dir).\($raw).pdf.dd
dyndep = output/\($dir).\($raw).pdf.dd
build output/\($dir).\($raw).pdf.dd: scantex \(.source)
target = output/\($dir)\($raw).pdf
";
def generate_cat_builds:
(.contents | map("output/" + . + ".pdf") | join(" ")) as $pdfcontents |
(.contents | map("output/" + . + ".png") | join(" ")) as $pngcontents |
(.contents | map("output/" + . + ".raw.png") | join(" ")) as $rawcontents |
(.name | dirof) as $dir |
(.name | rawof) as $raw | "
build output/\($dir)\($raw).pdf | output/\($dir)\($raw)-mini.pdf: pdfunite \($pdfcontents)
build output/\($dir)\($raw).png: pngunite \($pngcontents)
build output/\($dir)\($raw).raw.png: pngunite \($rawcontents)
";
def generate_svg_builds:
(.size | split("x")[0]) as $w |
(.size | split("x")[1]) as $h |
(.name | dirof) as $dir |
(.name | rawof) as $raw | "
build output/\($dir)\($raw).png: svg2png \(.source)
w = \($w)
h = \($h)
";
def generate_builds:
(select(.kind == "template") | generate_template_builds),
(select(.kind == "image") | generate_image_builds),
(select(.kind == "tex") | generate_tex_builds),
(select(.kind == "texdoc") | generate_texdoc_builds),
(select(.kind == "cat") | generate_cat_builds),
(select(.kind == "svg") | generate_svg_builds);
def expandout: to_entries[] | .value + { name: .key };
def everything: (.assets, .pseudoassets) | expandout;
header,
(everything | generate_builds)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 MiB

View file

@ -1,24 +0,0 @@
% Compile with XeLaTeX
% Now tests new features!
\documentclass{iditacard}
% Montage with `montage -tile 3x3 -geometry 750x1050+50+25 in* out.pdf`
\rarity{common}
\cardtype{food}
\deck{none}
\begin{document}
%\begin{playcard}[special]{utility}{legendary}
\begin{card}
%\art{iditaboard}
%\costs{1}{2}{3}
\health{\kern-.1ex \lower.3ex\hbox{+}}
\name{Starvation}
\helptext{\vskip-1ex Starvation increases health costs.\\When you play a food card reduce
your starvation by 1.\\A cost of 0 stays 0.\\If you reach 7 starvation you
die:\\Go back 30 \Mms\ and remove your Starvation/Hypothermia.}
%\flava{What doesn't kill you makes you stronger.}
%\type{utility}
%\end{playcard}
\end{card}
\end{document}

BIN
green.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

25
ideas
View file

@ -1,3 +1,28 @@
Add "blank" cards for people to put their own dogs on!
Use a more legible/accessible database format. Perhaps a custom format with easy
tooling or a csv-like format.
6 of each type of stretch:
First: Daydraw+3(HH), free dogs(SH), free personal(HS), free sleds(SS), no hypo(SS), no starve(HH)
Second: Speed+3(HHH), EnergyC-1, Health-1, Daydraw+1, free food, free
attachments
Third: Daydraw-3(HHHH),no food(HSSH), no personal(SHHS), Speed-3(HSSH), EnergyC+1, HealthC+1
no X-type is LaTeX \cardtypetext{type}{\notallowed}
Automatic move by "0" each day unless:
- new day
- hypothermia
- starvation
If *both* hypo and starve, then move by "-0"!
Two-day duration for effects of sleds and personals (add, then take [if still there] - check balance of starter cards [how hard is it to get nothing?]).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Kill -> Sacrifice for *own* dogs.
More compact symbols for destroy/take. Maybe <EYE> X <CAN> Y and <PACK> X <SHOP> Y?
Maybe undo icons for some things, follow the 5 second rule as per

Binary file not shown.

Before

Width:  |  Height:  |  Size: 306 KiB

View file

@ -2,8 +2,9 @@
% True size data
%
% 'Tile' diameter = ~0.5in
% 'Tile' diameter = 15mm
% TODO: Add legendary checkpoints logically (outside of legs)
\definecolor{stage_one}{HTML}{7FDF7D}
\definecolor{stage_two}{HTML}{9FB76F}
\definecolor{stage_three}{HTML}{5F5FFF}
@ -13,22 +14,18 @@
\definecolor{stage_seven}{HTML}{FF5F5F}
\definecolor{stage_eight}{HTML}{CF5FCF}
\def\cutlinet{1499.5/300.0}
\def\cutlinel{-2395.5/300.0}
\def\cutlineb{-1499.5/300.0}
\def\cutliner{2395.5/300.0}
\def\cutlinet{12.7}
\def\cutlinel{-20.28}
\def\cutlineb{-12.7}
\def\cutliner{20.28}
\def\height{3075.0/300.0}
\def\width{4875.0/300.0}
\def\height{26.04}
\def\width{41.28}
\def\bottom{-1537.5/300.0}
\def\left{-2437.5/300.0}
\def\top{1537.5/300.0}
\def\right{2437.5/300.0}
\newcommand{\drawoverlay}{%
\node [opacity=0.2, anchor=south west, inner sep=0mm, outer sep=0mm] at (\left,\bottom) {\includegraphics[angle=90, width=16.25in, height=10.25in] {bigmat.png}};
}
\def\bottom{-13.02}
\def\left{-20.64}
\def\top{13.02}
\def\right{20.64}
\newcommand{\drawguides}{%
\draw [blue] (\cutlinel,\bottom) -- (\cutlinel,\top);
@ -40,421 +37,261 @@
\draw [blue] (\left,0) -- (\right,0);
}
% draw leg foreground, background draws a leg centered at 0,0
% Bounding box is: -103.75,-128.75 to 103.75,128.75
\newcommand{\drawleg}[2]{%
% Draw the background as a rectangle
\fill [#2] (-100.0/300.0,-128.75/300.0) rectangle (100.0/300.0,128.75/300.0);
% The path is 25.0 wide, (bottom) (top)
% starts 12.5 units up, goes (0,12.5) (0,37.5)
% right for 37.5 units, (37.5,12.5) (12.5,37.5)
% up for 56.25 units, (37.5,212.5) (12.5,237.5)
% right for 75.0 units, (62.5,212.5) (87.5,237.5)
% down for 225.0 units, (62.5,12.5) (87.5,37.5)
% right for 75.0 units, (137.5,12.5) (112.5,37.5)
% up for 225.0 units, (137.5,212.5) (112.5,237.5)
% right for 75.0 units, (162.5,212.5) (187.5,237.5)
% down for 225.0 units, (162.5,12.5) (187.5,37.5)
% right for 37.5 units. (200.0,12.5) (200.0,37.5)
\fill [#1] (-100.0/300.0,-112.5/300.0) --
(-62.5/300.0,-112.5/300.0) --
(-62.5/300.0,87.5/300.0) --
(-37.5/300.0,87.5/300.0) --
(-37.5/300.0,-112.5/300.0) --
(37.5/300.0,-112.5/300.0) --
(37.5/300.0,87.5/300.0) --
(62.5/300.0,87.5/300.0) --
(62.5/300.0,-112.5/300.0) --
(100.0/300.0,-112.5/300.0) --
(100.0/300.0,-87.5/300.0) --
(87.5/300.0,-87.5/300.0) --
(87.5/300.0,112.5/300.0) --
(12.5/300.0,112.5/300.0) --
(12.5/300.0,-87.5/300.0) --
(-12.5/300.0,-87.5/300.0) --
(-12.5/300.0,112.5/300.0) --
(-87.5/300.0,112.5/300.0) --
(-87.5/300.0,-87.5/300.0) --
(-100.0/300.0,-87.5/300.0) -- cycle;
% Draw the Walls - they stick out to the left
% Draw the surrounding walls - they are 7.5 units wide
\fill [black] (-103.75/300.0,-128.75/300.0) --
(100.0/300.0,-128.75/300.0) --
(100.0/300.0,-121.25/300.0) --
(53.75/300.0,-121.25/300.0) --
(53.75/300.0,78.75/300.0) --
(46.25/300.0,78.75/300.0) --
(46.25/300.0,-121.25/300.0) --
(-46.25/300.0,-121.25/300.0) --
(-46.25/300.0,78.75/300.0) --
(-53.75/300.0,78.75/300.0) --
(-53.75/300.0,-121.25/300.0) --
(-103.75/300.0,-121.25/300.0) -- cycle;
\fill [black] (-96.25/300.0,-78.75/300.0) --
(-96.25/300.0,121.25/300.0) --
(-3.75/300.0,121.25/300.0) --
(-3.75/300.0,-78.75/300.0) --
(3.75/300.0,-78.75/300.0) --
(3.75/300.0,121.25/300.0) --
(96.25/300.0,121.25/300.0) --
(96.25/300.0,-78.75/300.0) --
(103.75/300.0,-78.75/300.0) --
(103.75/300.0,128.75/300.0) --
(-103.75/300.0,128.75/300.0) --
(-103.75/300.0,-78.75/300.0) -- cycle;
% Draw the internal walls - they are 2.5x37.5 units
% Verticals
\fill [black] (-101.25/300.0,-118.75/300.0) rectangle (-98.75/300.0,-81.25/300.0);
\fill [black] (-51.25/300.0,81.25/300.0) rectangle (-48.75/300.0,118.75/300.0);
\fill [black] (-1.25/300.0,-118.75/300.0) rectangle (1.25/300.0,-81.25/300.0);
\fill [black] (48.75/300.0,81.25/300.0) rectangle (51.25/300.0,118.75/300.0);
\fill [black] (98.75/300.0,-118.75/300.0) rectangle (101.25/300.0,-81.25/300.0);
% Horizontals
\fill [black] (-93.75/300.0,-76.25/300.0) rectangle (-56.25/300.0,-73.75/300.0);
\fill [black] (-93.75/300.0,-26.25/300.0) rectangle (-56.25/300.0,-23.75/300.0);
\fill [black] (-93.75/300.0,23.75/300.0) rectangle (-56.25/300.0,26.25/300.0);
\fill [black] (-93.75/300.0,73.75/300.0) rectangle (-56.25/300.0,76.25/300.0);
\fill [black] (-43.75/300.0,-76.25/300.0) rectangle (-6.25/300.0,-73.75/300.0);
\fill [black] (-43.75/300.0,-26.25/300.0) rectangle (-6.25/300.0,-23.75/300.0);
\fill [black] (-43.75/300.0,23.75/300.0) rectangle (-6.25/300.0,26.25/300.0);
\fill [black] (-43.75/300.0,73.75/300.0) rectangle (-6.25/300.0,76.25/300.0);
\fill [black] (6.25/300.0,-76.25/300.0) rectangle (43.75/300.0,-73.75/300.0);
\fill [black] (6.25/300.0,-26.25/300.0) rectangle (43.75/300.0,-23.75/300.0);
\fill [black] (6.25/300.0,23.75/300.0) rectangle (43.75/300.0,26.25/300.0);
\fill [black] (6.25/300.0,73.75/300.0) rectangle (43.75/300.0,76.25/300.0);
\fill [black] (56.25/300.0,-76.25/300.0) rectangle (93.75/300.0,-73.75/300.0);
\fill [black] (56.25/300.0,-26.25/300.0) rectangle (93.75/300.0,-23.75/300.0);
\fill [black] (56.25/300.0,23.75/300.0) rectangle (93.75/300.0,26.25/300.0);
\fill [black] (56.25/300.0,73.75/300.0) rectangle (93.75/300.0,76.25/300.0);
\newcommand{\sampletoken}{%
\fill [blue] (0,0) circle (0.75);
}
% draw mid leg foreground, background draws a leg centered at 0,0
% Bounding box is: -103.75,-128.75 to 103.75,128.75
\newcommand{\drawmidleg}[2]{%
% Draw the background as a rectangle
\fill [#2] (-100.0/300.0,-125.0/300.0) rectangle (100.0/300.0,125.0/300.0);
% The path is 25.0 wide, (bottom) (top)
% starts 12.5 units up, goes (0,12.5) (0,37.5)
% right for 37.5 units, (37.5,12.5) (12.5,37.5)
% up for 225.0 units, (37.5,212.5) (12.5,237.5)
% right for 75.0 units, (62.5,212.5) (87.5,237.5)
% down for 225.0 units, (62.5,12.5) (87.5,37.5)
% right for 75.0 units, (137.5,12.5) (112.5,37.5)
% up for 225.0 units, (137.5,212.5) (112.5,237.5)
% right for 75.0 units, (162.5,212.5) (187.5,237.5)
% down for 237.5 units, (162.5,0) (187.5,0)
\fill [#1] (-100.0/300.0,-112.5/300.0) --
(-62.5/300.0,-112.5/300.0) --
(-62.5/300.0,87.5/300.0) --
(-37.5/300.0,87.5/300.0) --
(-37.5/300.0,-112.5/300.0) --
(37.5/300.0,-112.5/300.0) --
(37.5/300.0,87.5/300.0) --
(62.5/300.0,87.5/300.0) --
(62.5/300.0,-125.0/300.0) --
(87.5/300.0,-125.0/300.0) --
(87.5/300.0,112.5/300.0) --
(12.5/300.0,112.5/300.0) --
(12.5/300.0,-87.5/300.0) --
(-12.5/300.0,-87.5/300.0) --
(-12.5/300.0,112.5/300.0) --
(-87.5/300.0,112.5/300.0) --
(-87.5/300.0,-87.5/300.0) --
(-100.0/300.0,-87.5/300.0) -- cycle;
% Draw the Walls - they stick out to the left
% Draw the surrounding walls - they are 7.5 units wide
\fill [black] (-103.75/300.0,-128.75/300.0) --
(53.75/300.0,-128.75/300.0) --
(53.75/300.0,78.75/300.0) --
(46.25/300.0,78.75/300.0) --
(46.25/300.0,-121.25/300.0) --
(-46.25/300.0,-121.25/300.0) --
(-46.25/300.0,78.75/300.0) --
(-53.75/300.0,78.75/300.0) --
(-53.75/300.0,-121.25/300.0) --
(-103.75/300.0,-121.25/300.0) -- cycle;
\fill [black] (-96.25/300.0,-78.75/300.0) --
(-96.25/300.0,121.25/300.0) --
(-3.75/300.0,121.25/300.0) --
(-3.75/300.0,-78.75/300.0) --
(3.75/300.0,-78.75/300.0) --
(3.75/300.0,121.25/300.0) --
(96.25/300.0,121.25/300.0) --
(96.25/300.0,-128.75/300.0) --
(103.75/300.0,-128.75/300.0) --
(103.75/300.0,128.75/300.0) --
(-103.75/300.0,128.75/300.0) --
(-103.75/300.0,-78.75/300.0) -- cycle;
% Draw the internal walls - they are 2.5x37.5 units
% Verticals
\fill [black] (-101.25/300.0,-118.75/300.0) rectangle (-98.75/300.0,-81.25/300.0);
\fill [black] (-51.25/300.0,81.25/300.0) rectangle (-48.75/300.0,118.75/300.0);
\fill [black] (-1.25/300.0,-118.75/300.0) rectangle (1.25/300.0,-81.25/300.0);
\fill [black] (48.75/300.0,81.25/300.0) rectangle (51.25/300.0,118.75/300.0);
% Horizontals
\fill [black] (-93.75/300.0,-76.25/300.0) rectangle (-56.25/300.0,-73.75/300.0);
\fill [black] (-93.75/300.0,-26.25/300.0) rectangle (-56.25/300.0,-23.75/300.0);
\fill [black] (-93.75/300.0,23.75/300.0) rectangle (-56.25/300.0,26.25/300.0);
\fill [black] (-93.75/300.0,73.75/300.0) rectangle (-56.25/300.0,76.25/300.0);
\fill [black] (-43.75/300.0,-76.25/300.0) rectangle (-6.25/300.0,-73.75/300.0);
\fill [black] (-43.75/300.0,-26.25/300.0) rectangle (-6.25/300.0,-23.75/300.0);
\fill [black] (-43.75/300.0,23.75/300.0) rectangle (-6.25/300.0,26.25/300.0);
\fill [black] (-43.75/300.0,73.75/300.0) rectangle (-6.25/300.0,76.25/300.0);
\fill [black] (6.25/300.0,-76.25/300.0) rectangle (43.75/300.0,-73.75/300.0);
\fill [black] (6.25/300.0,-26.25/300.0) rectangle (43.75/300.0,-23.75/300.0);
\fill [black] (6.25/300.0,23.75/300.0) rectangle (43.75/300.0,26.25/300.0);
\fill [black] (6.25/300.0,73.75/300.0) rectangle (43.75/300.0,76.25/300.0);
\fill [black] (56.25/300.0,-126.25/300.0) rectangle (93.75/300.0,-123.75/300.0);
\fill [black] (56.25/300.0,-76.25/300.0) rectangle (93.75/300.0,-73.75/300.0);
\fill [black] (56.25/300.0,-26.25/300.0) rectangle (93.75/300.0,-23.75/300.0);
\fill [black] (56.25/300.0,23.75/300.0) rectangle (93.75/300.0,26.25/300.0);
\fill [black] (56.25/300.0,73.75/300.0) rectangle (93.75/300.0,76.25/300.0);
\newcommand{\track}{%
\scoped[shift={(-15.0,6.0)}]{\straightspace}
\scoped[shift={(-15.0,4.5)}]{\straightspace}
\scoped[shift={(-15.0,3.0)}]{\straightspace}
\scoped[shift={(-15.0,1.5)}]{\straightspace}
\scoped[shift={(-15.0,0.0)}]{\straightspace}
\scoped[shift={(-15.0,-1.5)}]{\straightspace}
\scoped[shift={(-15.0,-3.0)}]{\straightspace}
\scoped[shift={(-15.0,-4.5)}]{\straightspace}
\scoped[shift={(-15.0,-6.0)}]{\straightspace}
\scoped[shift={(-15.0,-7.5)}]{\straightspace}
\scoped[shift={(-15.0,-9.0)}]{\straightspace}
\scoped[shift={(-15.0,-10.5)}]{\Lspace}
\scoped[shift={(-13.5,-10.5)},rotate=90]{\straightspace}
\scoped[shift={(-12.0,-10.5)},rotate=90]{\Lspace}
\scoped[shift={(-12.0,-9.0)},rotate=180]{\straightspace}
\scoped[shift={(-12.0,-7.5)},rotate=180]{\straightspace}
\scoped[shift={(-12.0,-6.0)},rotate=180]{\straightspace}
\scoped[shift={(-12.0,-4.5)},rotate=180]{\straightspace}
\scoped[shift={(-12.0,-3.0)},rotate=180]{\straightspace}
\scoped[shift={(-12.0,-1.5)},rotate=180]{\straightspace}
\scoped[shift={(-12.0,0.0)},rotate=180]{\straightspace}
\scoped[shift={(-12.0,1.5)},rotate=180]{\straightspace}
\scoped[shift={(-12.0,3.0)},rotate=180]{\straightspace}
\scoped[shift={(-12.0,4.5)},rotate=180]{\straightspace}
\scoped[shift={(-12.0,6.0)},rotate=180]{\straightspace}
\scoped[shift={(-12.0,7.5)},rotate=180]{\straightspace}
\scoped[shift={(-12.0,9.0)},rotate=180]{\straightspace}
\scoped[shift={(-12.0,10.5)},yscale=-1.0]{\Lspace}
\scoped[shift={(-10.5,10.5)},rotate=90]{\straightspace}
\scoped[shift={(-9.0,10.5)},xscale=-1.0,rotate=-90]{\Lspace}
\scoped[shift={(-9.0,9.0)}]{\straightspace}
\scoped[shift={(-9.0,7.5)}]{\straightspace}
\scoped[shift={(-9.0,6.0)}]{\straightspace}
\scoped[shift={(-9.0,4.5)}]{\straightspace}
\scoped[shift={(-9.0,3.0)}]{\straightspace}
\scoped[shift={(-9.0,1.5)}]{\straightspace}
\scoped[shift={(-9.0,0.0)}]{\straightspace}
\scoped[shift={(-9.0,-1.5)}]{\straightspace}
\scoped[shift={(-9.0,-3.0)}]{\straightspace}
\scoped[shift={(-9.0,-4.5)}]{\straightspace}
\scoped[shift={(-9.0,-6.0)}]{\straightspace}
\scoped[shift={(-9.0,-7.5)}]{\straightspace}
\scoped[shift={(-9.0,-9.0)}]{\straightspace}
\scoped[shift={(-9.0,-10.5)}]{\Lspace}
\scoped[shift={(-7.5,-10.5)},rotate=90]{\straightspace}
\scoped[shift={(-6.0,-10.5)},rotate=90]{\Lspace}
\scoped[shift={(-6.0,-9.0)},rotate=180]{\straightspace}
\scoped[shift={(-6.0,-7.5)},rotate=180]{\straightspace}
\scoped[shift={(-6.0,-6.0)},rotate=180]{\straightspace}
\scoped[shift={(-6.0,-4.5)},rotate=180]{\straightspace}
\scoped[shift={(-6.0,-3.0)},rotate=180]{\straightspace}
\scoped[shift={(-6.0,-1.5)},rotate=180]{\straightspace}
\scoped[shift={(-6.0,0.0)},rotate=180]{\straightspace}
\scoped[shift={(-6.0,1.5)},rotate=180]{\straightspace}
\scoped[shift={(-6.0,3.0)},rotate=180]{\straightspace}
\scoped[shift={(-6.0,4.5)},rotate=180]{\straightspace}
\scoped[shift={(-6.0,6.0)},rotate=180]{\straightspace}
\scoped[shift={(-6.0,7.5)},rotate=180]{\straightspace}
\scoped[shift={(-6.0,9.0)},rotate=180]{\straightspace}
\scoped[shift={(-6.0,10.5)},yscale=-1.0]{\Lspace}
\scoped[shift={(-4.5,10.5)},rotate=90]{\straightspace}
\scoped[shift={(-3.0,10.5)},xscale=-1.0,rotate=-90]{\Lspace}
\scoped[shift={(-3.0,9.0)}]{\straightspace}
\scoped[shift={(-3.0,7.5)}]{\straightspace}
\scoped[shift={(-3.0,6.0)}]{\straightspace}
\scoped[shift={(-3.0,4.5)}]{\straightspace}
\scoped[shift={(-3.0,3.0)}]{\straightspace}
\scoped[shift={(-3.0,1.5)}]{\straightspace}
\scoped[shift={(-3.0,0.0)}]{\straightspace}
\scoped[shift={(-3.0,-1.5)}]{\straightspace}
\scoped[shift={(-3.0,-3.0)}]{\straightspace}
\scoped[shift={(-3.0,-4.5)}]{\straightspace}
\scoped[shift={(-3.0,-6.0)}]{\straightspace}
\scoped[shift={(-3.0,-7.5)}]{\straightspace}
\scoped[shift={(-3.0,-9.0)}]{\straightspace}
\scoped[shift={(-3.0,-10.5)}]{\Lspace}
\scoped[shift={(-1.5,-10.5)},rotate=90]{\straightspace}
\scoped[shift={(0.0,-10.5)},rotate=90]{\Lspace}
\scoped[shift={(0.0,-9.0)},rotate=180]{\straightspace}
\scoped[shift={(0.0,-7.5)},rotate=180]{\straightspace}
\scoped[shift={(0.0,-6.0)},rotate=180]{\straightspace}
\scoped[shift={(0.0,-4.5)},rotate=180]{\straightspace}
\scoped[shift={(0.0,-3.0)},rotate=180]{\straightspace}
\scoped[shift={(0.0,-1.5)},rotate=180]{\straightspace}
\scoped[shift={(0.0,0.0)},rotate=180]{\straightspace}
\scoped[shift={(0.0,1.5)},rotate=180]{\straightspace}
\scoped[shift={(0.0,3.0)},rotate=180]{\straightspace}
\scoped[shift={(0.0,4.5)},rotate=180]{\straightspace}
\scoped[shift={(0.0,6.0)},rotate=180]{\straightspace}
\scoped[shift={(0.0,7.5)},rotate=180]{\straightspace}
\scoped[shift={(0.0,9.0)},rotate=180]{\straightspace}
\scoped[shift={(0.0,10.5)},yscale=-1.0]{\Lspace}
\scoped[shift={(1.5,10.5)},rotate=90]{\straightspace}
\scoped[shift={(3.0,10.5)},xscale=-1.0,rotate=-90]{\Lspace}
\scoped[shift={(3.0,9.0)}]{\straightspace}
\scoped[shift={(3.0,7.5)}]{\straightspace}
\scoped[shift={(3.0,6.0)}]{\straightspace}
\scoped[shift={(3.0,4.5)}]{\straightspace}
\scoped[shift={(3.0,3.0)}]{\straightspace}
\scoped[shift={(3.0,1.5)}]{\straightspace}
\scoped[shift={(3.0,0.0)}]{\straightspace}
\scoped[shift={(3.0,-1.5)}]{\straightspace}
\scoped[shift={(3.0,-3.0)}]{\straightspace}
\scoped[shift={(3.0,-4.5)}]{\straightspace}
\scoped[shift={(3.0,-6.0)}]{\straightspace}
\scoped[shift={(3.0,-7.5)}]{\straightspace}
\scoped[shift={(3.0,-9.0)}]{\straightspace}
\scoped[shift={(3.0,-10.5)}]{\Lspace}
\scoped[shift={(4.5,-10.5)},rotate=90]{\straightspace}
\scoped[shift={(6.0,-10.5)},rotate=90]{\Lspace}
\scoped[shift={(6.0,-9.0)},rotate=180]{\straightspace}
\scoped[shift={(6.0,-7.5)},rotate=180]{\straightspace}
\scoped[shift={(6.0,-6.0)},rotate=180]{\straightspace}
\scoped[shift={(6.0,-4.5)},rotate=180]{\straightspace}
\scoped[shift={(6.0,-3.0)},rotate=180]{\straightspace}
\scoped[shift={(6.0,-1.5)},rotate=180]{\straightspace}
\scoped[shift={(6.0,0.0)},rotate=180]{\straightspace}
\scoped[shift={(6.0,1.5)},rotate=180]{\straightspace}
\scoped[shift={(6.0,3.0)},rotate=180]{\straightspace}
\scoped[shift={(6.0,4.5)},rotate=180]{\straightspace}
\scoped[shift={(6.0,6.0)},rotate=180]{\straightspace}
\scoped[shift={(6.0,7.5)},rotate=180]{\straightspace}
\scoped[shift={(6.0,9.0)},rotate=180]{\straightspace}
\scoped[shift={(6.0,10.5)},yscale=-1.0]{\Lspace}
\scoped[shift={(7.5,10.5)},rotate=90]{\straightspace}
\scoped[shift={(9.0,10.5)},xscale=-1.0,rotate=-90]{\Lspace}
\scoped[shift={(9.0,9.0)}]{\straightspace}
\scoped[shift={(9.0,7.5)}]{\straightspace}
\scoped[shift={(9.0,6.0)}]{\straightspace}
\scoped[shift={(9.0,4.5)}]{\straightspace}
\scoped[shift={(9.0,3.0)}]{\straightspace}
\scoped[shift={(9.0,1.5)}]{\straightspace}
\scoped[shift={(9.0,0.0)}]{\straightspace}
\scoped[shift={(9.0,-1.5)}]{\straightspace}
\scoped[shift={(9.0,-3.0)}]{\straightspace}
\scoped[shift={(9.0,-4.5)}]{\straightspace}
\scoped[shift={(9.0,-6.0)}]{\straightspace}
\scoped[shift={(9.0,-7.5)}]{\straightspace}
\scoped[shift={(9.0,-9.0)}]{\straightspace}
\scoped[shift={(9.0,-10.5)}]{\Lspace}
\scoped[shift={(10.5,-10.5)},rotate=90]{\straightspace}
\scoped[shift={(12.0,-10.5)},rotate=90]{\Lspace}
\scoped[shift={(12.0,-9.0)},rotate=180]{\straightspace}
\scoped[shift={(12.0,-7.5)},rotate=180]{\straightspace}
\scoped[shift={(12.0,-6.0)},rotate=180]{\straightspace}
\scoped[shift={(12.0,-4.5)},rotate=180]{\straightspace}
\scoped[shift={(12.0,-3.0)},rotate=180]{\straightspace}
\scoped[shift={(12.0,-1.5)},rotate=180]{\straightspace}
\scoped[shift={(12.0,0.0)},rotate=180]{\straightspace}
\scoped[shift={(12.0,1.5)},rotate=180]{\straightspace}
\scoped[shift={(12.0,3.0)},rotate=180]{\straightspace}
\scoped[shift={(12.0,4.5)},rotate=180]{\straightspace}
\scoped[shift={(12.0,6.0)},rotate=180]{\straightspace}
\scoped[shift={(12.0,7.5)},rotate=180]{\straightspace}
\scoped[shift={(12.0,9.0)},rotate=180]{\straightspace}
\scoped[shift={(12.0,10.5)},yscale=-1.0]{\Lspace}
\scoped[shift={(13.5,10.5)},rotate=90]{\straightspace}
\scoped[shift={(15.0,10.5)},xscale=-1.0,rotate=-90]{\Lspace}
\scoped[shift={(15.0,-6.0)},rotate=180]{\straightspace}
\scoped[shift={(15.0,-4.5)},rotate=180]{\straightspace}
\scoped[shift={(15.0,-3.0)},rotate=180]{\straightspace}
\scoped[shift={(15.0,-1.5)},rotate=180]{\straightspace}
\scoped[shift={(15.0,0.0)},rotate=180]{\straightspace}
\scoped[shift={(15.0,1.5)},rotate=180]{\straightspace}
\scoped[shift={(15.0,3.0)},rotate=180]{\straightspace}
\scoped[shift={(15.0,4.5)},rotate=180]{\straightspace}
\scoped[shift={(15.0,6.0)},rotate=180]{\straightspace}
\scoped[shift={(15.0,7.5)},rotate=180]{\straightspace}
\scoped[shift={(15.0,9.0)},rotate=180]{\straightspace}
}
% Draws the racetrack itself with speed markers at (0,0)
% Bounding box is (-1615.5,-1215.5) to (1615.5,1215.5)
\newcommand{\drawrace}{%
\scoped[shift={(-1200.5/300.0,500.5/300.0)},scale=4.0]{\drawleg{stage_one}{stage_eight}}
\scoped[shift={(-400.5/300.0,500.5/300.0)},scale=4.0]{\drawleg{stage_two}{stage_seven}}
\scoped[shift={(400.5/300.0,500.5/300.0)},scale=4.0]{\drawleg{stage_three}{stage_six}}
\scoped[shift={(1200.5/300.0,500.5/300.0)},scale=4.0]{\drawmidleg{stage_four}{stage_five}}
\scoped[shift={(1200.5/300.0,-500.5/300.0)},xscale=4.0,yscale=-4.0]{\drawmidleg{stage_five}{stage_four}}
\scoped[shift={(400.5/300.0,-500.5/300.0)},yscale=-4.0,xscale=-4.0]{\drawleg{stage_six}{stage_three}}
\scoped[shift={(-400.5/300.0,-500.5/300.0)},yscale=-4.0,xscale=-4.0]{\drawleg{stage_seven}{stage_two}}
\scoped[shift={(-1200.5/300.0,-500.5/300.0)},yscale=-4.0,xscale=-4.0]{\drawleg{stage_eight}{stage_one}}
% Draw the speed rules
\fill [black] (-1615.5/300.0,1015.5/300.0) rectangle (-1585.5/300.0,1215.5/300.0);
\fill [black] (-1415.5/300.0,1015.5/300.0) rectangle (-1385.5/300.0,1215.5/300.0);
\fill [black] (-1215.5/300.0,1015.5/300.0) rectangle (-1185.5/300.0,1215.5/300.0);
\fill [black] (-1015.5/300.0,1015.5/300.0) rectangle (-985.5/300.0,1215.5/300.0);
\fill [black] (-815.5/300.0,1015.5/300.0) rectangle (-785.5/300.0,1215.5/300.0);
\fill [black] (-615.5/300.0,1015.5/300.0) rectangle (-585.5/300.0,1215.5/300.0);
\fill [black] (-415.5/300.0,1015.5/300.0) rectangle (-385.5/300.0,1215.5/300.0);
\fill [black] (-215.5/300.0,1015.5/300.0) rectangle (-185.5/300.0,1215.5/300.0);
\fill [black] (-15.5/300.0,1015.5/300.0) rectangle (15.5/300.0,1215.5/300.0);
\fill [black] (185.5/300.0,1015.5/300.0) rectangle (215.5/300.0,1215.5/300.0);
\fill [black] (385.5/300.0,1015.5/300.0) rectangle (415.5/300.0,1215.5/300.0);
\fill [black] (585.5/300.0,1015.5/300.0) rectangle (615.5/300.0,1215.5/300.0);
\fill [black] (785.5/300.0,1015.5/300.0) rectangle (815.5/300.0,1215.5/300.0);
\fill [black] (985.5/300.0,1015.5/300.0) rectangle (1015.5/300.0,1215.5/300.0);
\fill [black] (1185.5/300.0,1015.5/300.0) rectangle (1215.5/300.0,1215.5/300.0);
\fill [black] (1385.5/300.0,1015.5/300.0) rectangle (1415.5/300.0,1215.5/300.0);
\fill [black] (1585.5/300.0,1015.5/300.0) rectangle (1615.5/300.0,1215.5/300.0);
\fill [black] (-1615.5/300.0,-1215.5/300.0) rectangle (-1585.5/300.0,-1015.5/300.0);
\fill [black] (-1415.5/300.0,-1215.5/300.0) rectangle (-1385.5/300.0,-1015.5/300.0);
\fill [black] (-1215.5/300.0,-1215.5/300.0) rectangle (-1185.5/300.0,-1015.5/300.0);
\fill [black] (-1015.5/300.0,-1215.5/300.0) rectangle (-985.5/300.0,-1015.5/300.0);
\fill [black] (-815.5/300.0,-1215.5/300.0) rectangle (-785.5/300.0,-1015.5/300.0);
\fill [black] (-615.5/300.0,-1215.5/300.0) rectangle (-585.5/300.0,-1015.5/300.0);
\fill [black] (-415.5/300.0,-1215.5/300.0) rectangle (-385.5/300.0,-1015.5/300.0);
\fill [black] (-215.5/300.0,-1215.5/300.0) rectangle (-185.5/300.0,-1015.5/300.0);
\fill [black] (-15.5/300.0,-1215.5/300.0) rectangle (15.5/300.0,-1015.5/300.0);
\fill [black] (185.5/300.0,-1215.5/300.0) rectangle (215.5/300.0,-1015.5/300.0);
\fill [black] (385.5/300.0,-1215.5/300.0) rectangle (415.5/300.0,-1015.5/300.0);
\fill [black] (585.5/300.0,-1215.5/300.0) rectangle (615.5/300.0,-1015.5/300.0);
\fill [black] (785.5/300.0,-1215.5/300.0) rectangle (815.5/300.0,-1015.5/300.0);
\fill [black] (985.5/300.0,-1215.5/300.0) rectangle (1015.5/300.0,-1015.5/300.0);
\fill [black] (1185.5/300.0,-1215.5/300.0) rectangle (1215.5/300.0,-1015.5/300.0);
\fill [black] (1385.5/300.0,-1215.5/300.0) rectangle (1415.5/300.0,-1015.5/300.0);
\fill [black] (1585.5/300.0,-1215.5/300.0) rectangle (1615.5/300.0,-1015.5/300.0);
% Add the numbers
\node [align=center, font=\fontsize{24}{0}\bebas] at (-1500.5/300.0,1115.5/300.0) {-5};
\node [align=center, font=\fontsize{24}{0}\bebas] at (-1300.5/300.0,1115.5/300.0) {-4};
\node [align=center, font=\fontsize{24}{0}\bebas] at (-1100.5/300.0,1115.5/300.0) {-3};
\node [align=center, font=\fontsize{24}{0}\bebas] at (-900.5/300.0,1115.5/300.0) {-2};
\node [align=center, font=\fontsize{24}{0}\bebas] at (-700.5/300.0,1115.5/300.0) {-1};
\node [align=center, font=\fontsize{24}{0}\bebas] at (-500.5/300.0,1115.5/300.0) {0};
\node [align=center, font=\fontsize{24}{0}\bebas] at (-300.5/300.0,1115.5/300.0) {+1};
\node [align=center, font=\fontsize{24}{0}\bebas] at (-100.5/300.0,1115.5/300.0) {+2};
\node [align=center, font=\fontsize{24}{0}\bebas] at (100.5/300.0,1115.5/300.0) {+3};
\node [align=center, font=\fontsize{24}{0}\bebas] at (300.5/300.0,1115.5/300.0) {+4};
\node [align=center, font=\fontsize{24}{0}\bebas] at (500.5/300.0,1115.5/300.0) {+5};
\node [align=center, font=\fontsize{24}{0}\bebas] at (700.5/300.0,1115.5/300.0) {+6};
\node [align=center, font=\fontsize{24}{0}\bebas] at (900.5/300.0,1115.5/300.0) {+7};
\node [align=center, font=\fontsize{24}{0}\bebas] at (1100.5/300.0,1115.5/300.0) {+8};
\node [align=center, font=\fontsize{24}{0}\bebas] at (1300.5/300.0,1115.5/300.0) {+9};
\node [align=center, font=\fontsize{24}{0}\bebas] at (1500.5/300.0,1115.5/300.0) {+10};
\node [align=center, font=\fontsize{24}{0}\bebas] at (-1500.5/300.0,-1115.5/300.0) {-50};
\node [align=center, font=\fontsize{24}{0}\bebas] at (-1300.5/300.0,-1115.5/300.0) {-40};
\node [align=center, font=\fontsize{24}{0}\bebas] at (-1100.5/300.0,-1115.5/300.0) {-30};
\node [align=center, font=\fontsize{24}{0}\bebas] at (-900.5/300.0,-1115.5/300.0) {-20};
\node [align=center, font=\fontsize{24}{0}\bebas] at (-700.5/300.0,-1115.5/300.0) {-10};
\node [align=center, font=\fontsize{24}{0}\bebas] at (-500.5/300.0,-1115.5/300.0) {0};
\node [align=center, font=\fontsize{24}{0}\bebas] at (-300.5/300.0,-1115.5/300.0) {+10};
\node [align=center, font=\fontsize{24}{0}\bebas] at (-100.5/300.0,-1115.5/300.0) {+20};
\node [align=center, font=\fontsize{24}{0}\bebas] at (100.5/300.0,-1115.5/300.0) {+30};
\node [align=center, font=\fontsize{24}{0}\bebas] at (300.5/300.0,-1115.5/300.0) {+40};
\node [align=center, font=\fontsize{24}{0}\bebas] at (500.5/300.0,-1115.5/300.0) {+50};
\node [align=center, font=\fontsize{24}{0}\bebas] at (700.5/300.0,-1115.5/300.0) {+60};
\node [align=center, font=\fontsize{24}{0}\bebas] at (900.5/300.0,-1115.5/300.0) {+70};
\node [align=center, font=\fontsize{24}{0}\bebas] at (1100.5/300.0,-1115.5/300.0) {+80};
\node [align=center, font=\fontsize{24}{0}\bebas] at (1300.5/300.0,-1115.5/300.0) {+90};
\node [align=center, font=\fontsize{24}{0}\bebas] at (1500.5/300.0,-1115.5/300.0) {+100};
% Add the checkpoints
\node [align=center] at (-1500.5/300.0,100.5/300.0) {\includegraphics{images/rules/checkpoint.png}};
\node [align=center] at (-700.5/300.0,100.5/300.0) {\includegraphics{images/rules/checkpoint.png}};
\node [align=center] at (100.5/300.0,100.5/300.0) {\includegraphics{images/rules/checkpoint.png}};
\node [align=center] at (900.5/300.0,100.5/300.0) {\includegraphics{images/rules/checkpoint.png}};
\node [align=center] at (1500.5/300.0,-100.5/300.0) {\includegraphics{images/rules/checkpoint.png}};
}
% Draws an empty leg centered on (0,0)
% Bounding box is (-375.0,-262.5) to (375.0,262.5)
\newcommand{\emptystage}[2]{%
\fill [left color=#2, right color=#1] (-375.0/300.0,-262.5/300.0) rectangle (375.0/300.0,262.5/300.0);
\fill [rounded corners=10pt] [#1] (-325.0/300.0,-212.5/300.0) rectangle (-25.0/300.0,222.5/300.0);
\fill [rounded corners=10pt] [#2] (25.0/300.0,-212.5/300.0) rectangle (325.0/300.0,222.5/300.0);
}
% Draws a 5x5 checker pattern of 30x30 squares centered on (0,0)
% Bounding box is (-75.0,-75.0) to (75.0,75.0)
\newcommand{\drawchecker}{%
% Top row
\fill [black] (45.0/300.0,45.0/300.0) rectangle (75.0/300.0,75.0/300.0);
\fill [white] (15.0/300.0,45.0/300.0) rectangle (45.0/300.0,75.0/300.0);
\fill [black] (-15.0/300.0,45.0/300.0) rectangle (15.0/300.0,75.0/300.0);
\fill [white] (-45.0/300.0,45.0/300.0) rectangle (-15.0/300.0,75.0/300.0);
\fill [black] (-75.0/300.0,45.0/300.0) rectangle (-45.0/300.0,75.0/300.0);
% High row
\fill [white] (45.0/300.0,15.0/300.0) rectangle (75.0/300.0,45.0/300.0);
\fill [black] (15.0/300.0,15.0/300.0) rectangle (45.0/300.0,45.0/300.0);
\fill [white] (-15.0/300.0,15.0/300.0) rectangle (15.0/300.0,45.0/300.0);
\fill [black] (-45.0/300.0,15.0/300.0) rectangle (-15.0/300.0,45.0/300.0);
\fill [white] (-75.0/300.0,15.0/300.0) rectangle (-45.0/300.0,45.0/300.0);
% Center row
\fill [black] (45.0/300.0,-15.0/300.0) rectangle (75.0/300.0,15.0/300.0);
\fill [white] (15.0/300.0,-15.0/300.0) rectangle (45.0/300.0,15.0/300.0);
\fill [black] (-15.0/300.0,-15.0/300.0) rectangle (15.0/300.0,15.0/300.0);
\fill [white] (-45.0/300.0,-15.0/300.0) rectangle (-15.0/300.0,15.0/300.0);
\fill [black] (-75.0/300.0,-15.0/300.0) rectangle (-45.0/300.0,15.0/300.0);
% Low row
\fill [white] (45.0/300.0,-45.0/300.0) rectangle (75.0/300.0,-15.0/300.0);
\fill [black] (15.0/300.0,-45.0/300.0) rectangle (45.0/300.0,-15.0/300.0);
\fill [white] (-15.0/300.0,-45.0/300.0) rectangle (15.0/300.0,-15.0/300.0);
\fill [black] (-45.0/300.0,-45.0/300.0) rectangle (-15.0/300.0,-15.0/300.0);
\fill [white] (-75.0/300.0,-45.0/300.0) rectangle (-45.0/300.0,-15.0/300.0);
% Bottom row
\fill [black] (45.0/300.0,-75.0/300.0) rectangle (75.0/300.0,-45.0/300.0);
\fill [white] (15.0/300.0,-75.0/300.0) rectangle (45.0/300.0,-45.0/300.0);
\fill [black] (-15.0/300.0,-75.0/300.0) rectangle (15.0/300.0,-45.0/300.0);
\fill [white] (-45.0/300.0,-75.0/300.0) rectangle (-15.0/300.0,-45.0/300.0);
\fill [black] (-75.0/300.0,-75.0/300.0) rectangle (-45.0/300.0,-45.0/300.0);
}
% Draws the hypothermia chart centered on (0,0)
% Bounding box is (-150,-650) to (150,650)
\newcommand{\drawhypochart}{%
\node [anchor=center, font=\fontsize{14}{0}\bebas] at (0,-650.0/300.0) {WARM};
\fill [energy, rounded corners] (-150.0/300.0,-615.0/300.0) rectangle (150.0/300.0,-585.0/300.0);
\node [anchor=center, font=\fontsize{20}{0}\bebas] at (0,-500.0/300.0) {\speed{-1}};
\fill [energy, rounded corners] (-150.0/300.0,-415.0/300.0) rectangle (150.0/300.0,-385.0/300.0);
\node [anchor=center, font=\fontsize{20}{0}\bebas] at (0,-300.0/300.0) {\includegraphics[width=0.5in,height=0.5in]{icons/hand.png}};
\node [anchor=center, font=\fontsize{20}{0}\bebas] at (0,-300.0/300.0) {+1};
\fill [energy, rounded corners] (-150.0/300.0,-215.0/300.0) rectangle (150.0/300.0,-185.0/300.0);
\node [anchor=center, font=\fontsize{20}{0}\bebas] at (0,-100.0/300.0) {\speed{-1}};
\fill [energy, rounded corners] (-150.0/300.0,-15.0/300.0) rectangle (150.0/300.0,15.0/300.0);
\node [anchor=center, font=\fontsize{20}{0}\bebas] at (0,100.0/300.0) {\includegraphics[width=0.5in,height=0.5in]{icons/hand.png}};
\node [anchor=center, font=\fontsize{20}{0}\bebas] at (0,100.0/300.0) {+1};
\fill [energy, rounded corners] (-150.0/300.0,185.0/300.0) rectangle (150.0/300.0,215.0/300.0);
\node [anchor=center, font=\fontsize{20}{0}\bebas] at (0,300.0/300.0) {\speed{-1}};
\fill [energy, rounded corners] (-150.0/300.0,385.0/300.0) rectangle (150.0/300.0,415.0/300.0);
\node [anchor=center, font=\fontsize{20}{0}\bebas] at (0,500.0/300.0) {\includegraphics[width=0.5in,height=0.5in]{icons/hand.png}};
\node [anchor=center, font=\fontsize{20}{0}\bebas] at (0,500.0/300.0) {+1};
%\fill [energy, rounded corners] (-150.0/300.0,585.0/300.0) rectangle (150.0/300.0,615.0/300.0);
}
% Draws the starvation chart centered on (0,0)
% Bounding box is (-150,-650) to (150,650)
\newcommand{\drawstarvechart}{%
\node [anchor=center, font=\fontsize{14}{0}\bebas] at (0,-650.0/300.0) {FULL};
\fill [health, rounded corners] (-150.0/300.0,-615.0/300.0) rectangle (150.0/300.0,-585.0/300.0);
\node [anchor=center, font=\fontsize{20}{0}\bebas] at (0,-500.0/300.0) {\speed{-1}};
\fill [health, rounded corners] (-150.0/300.0,-415.0/300.0) rectangle (150.0/300.0,-385.0/300.0);
\node [anchor=center, font=\fontsize{20}{0}\bebas] at (0,-300.0/300.0) {\includegraphics[width=0.5in,height=0.5in]{icons/deck.png}};
\node [anchor=center, font=\fontsize{20}{0}\bebas] at (0,-300.0/300.0) {+1};
\fill [health, rounded corners] (-150.0/300.0,-215.0/300.0) rectangle (150.0/300.0,-185.0/300.0);
\node [anchor=center, font=\fontsize{20}{0}\bebas] at (0,-100.0/300.0) {\speed{-1}};
\fill [health, rounded corners] (-150.0/300.0,-15.0/300.0) rectangle (150.0/300.0,15.0/300.0);
\node [anchor=center, font=\fontsize{20}{0}\bebas] at (0,100.0/300.0) {\includegraphics[width=0.5in,height=0.5in]{icons/deck.png}};
\node [anchor=center, font=\fontsize{20}{0}\bebas] at (0,100.0/300.0) {+1};
\fill [health, rounded corners] (-150.0/300.0,185.0/300.0) rectangle (150.0/300.0,215.0/300.0);
\node [anchor=center, font=\fontsize{20}{0}\bebas] at (0,300.0/300.0) {\speed{-1}};
\fill [health, rounded corners] (-150.0/300.0,385.0/300.0) rectangle (150.0/300.0,415.0/300.0);
\node [anchor=center, font=\fontsize{20}{0}\bebas] at (0,500.0/300.0) {\includegraphics[width=0.5in,height=0.5in]{icons/deck.png}};
\node [anchor=center, font=\fontsize{20}{0}\bebas] at (0,500.0/300.0) {+1};
%\fill [health, rounded corners] (-150.0/300.0,585.0/300.0) rectangle (150.0/300.0,615.0/300.0);
}
\newcommand{\drawhypostarvechart}{%
\scoped[shift={(-175.0/300.0,0.0/300.0)}]{\drawstarvechart}
\scoped[shift={(175.0/300.0,0.0/300.0)}]{\drawhypochart}
\node [anchor=center, font=\fontsize{48}{0}\bebas] at (0,700.0/300.0) {\move{}};
\draw [red, line width=0.05in] (0,700.0/300.0) circle (0.4);
\draw [red, line width=0.05in] (-84.0/300.0,784.0/300.0) -- (84.0/300.0,616.0/300.0);
% Draws a card overlay horizontally centered at 0,0 extending up
% Parameters are colour, text
\newcommand{\cardtrackindicator}[2]{%
\fill[#1] (-3.175,0) rectangle (3.175,8.89);
\node at (0,8.1) {\fontsize{24}{24}\bebas#2\par};
}
\newcommand{\drawdielegend}{%
\node at (-225.0/300.0,-500.0/300.0) {\includegraphics[width=0.5in]{die/wind.png}};
\node [anchor=center, font=\fontsize{20}{0}\bebas] at (100.0/300.0,-500.0/300.0) {\hypothermia \speed{+5}};
\fill [black, rounded corners] (-325.0/300.0,-415.0/300.0) rectangle (300.0/300.0,-385.0/300.0);
\node at (-225.0/300.0,-300.0/300.0) {\includegraphics[width=0.5in]{die/rain.png}};
\node [anchor=center, font=\fontsize{20}{0}\bebas] at (100.0/300.0,-300.0/300.0) {\starvation \speed{+3}};
\fill [black, rounded corners] (-325.0/300.0,-215.0/300.0) rectangle (300.0/300.0,-185.0/300.0);
\node at (-225.0/300.0,-100.0/300.0) {\includegraphics[width=0.5in]{die/snowflake.png}};
\node [anchor=center, font=\fontsize{20}{0}\bebas] at (100.0/300.0,-100.0/300.0) {\useicon{backpack} \sendto{} \useicon{trash-can}};
\fill [black, rounded corners] (-325.0/300.0,-15.0/300.0) rectangle (300.0/300.0,15.0/300.0);
\node at (-225.0/300.0,100.0/300.0) {\includegraphics[width=0.5in]{die/storm.png}};
\node [anchor=center, font=\fontsize{20}{0}\bebas] at (100.0/300.0,100.0/300.0) {\daydraw{}};
\draw [red, line width=0.05in] (58.0/300.0,142.0/300.0) -- (142.0/300.0,58.0/300.0);
\draw [red, line width=0.05in] (100.0/300.0,100.0/300.0) circle (0.2);
\fill [black, rounded corners] (-325.0/300.0,185.0/300.0) rectangle (300.0/300.0,215.0/300.0);
\node at (-225.0/300.0,300.0/300.0) {\includegraphics[width=0.5in]{die/cloud.png}};
\node [anchor=center, font=\fontsize{20}{0}\bebas] at (100.0/300.0,300.0/300.0) {\speed{}};
\draw [red, line width=0.05in] (58.0/300.0,342.0/300.0) -- (142.0/300.0,258.0/300.0);
\draw [red, line width=0.05in] (100.0/300.0,300.0/300.0) circle (0.2);
\fill [black, rounded corners] (-325.0/300.0,385.0/300.0) rectangle (300.0/300.0,415.0/300.0);
\node at (-225.0/300.0,500.0/300.0) {\includegraphics[width=0.5in]{die/sun.png}};
\node [anchor=center, font=\fontsize{20}{0}\bebas] at (100.0/300.0,500.0/300.0) {\speed{+1}};
\node at (0, 2.5) {\includegraphics[width=1cm]{icons/starve.png}};
\node at (-2.15, -1.25) {\includegraphics[width=1cm]{icons/hypo.png}};
\node at (2.15, -1.25) {\includegraphics[width=1cm]{icons/destroysupply.png}};
\node at (0, 1.5) {\includegraphics[width=1cm]{die/clouds.png}};
\node at (-1.3, -0.75) {\includegraphics[width=1cm]{die/snowflake.png}};
\node at (1.3, -0.75) {\includegraphics[width=1cm]{die/sun.png}};
\node at (1.3, 0.75) {\includegraphics[width=1cm]{die/storm.png}};
\node at (0, -1.5) {\includegraphics[width=1cm]{die/wind.png}};
\node at (-1.3, 0.75) {\includegraphics[width=1cm]{die/rain.png}};
}
\pgfdeclareradialshading{tikzlibfadecircle50}{\pgfpointorigin}{%
color(0mm)=(pgftransparent!0); color(0.5mm)=(pgftransparent!0);%
color(5mm)=(pgftransparent!100); color(10mm)=(pgftransparent!100)%
}
\pgfdeclarefading{fuzzy}{%
\pgfuseshading{tikzlibfadecircle50}%
}
\pgfdeclareplotmark{fuzz}{%
\scoped[shift={\pgfpointorigin}]{\fill[path fading=fuzzy] circle (\pgfplotmarksize);}%
}
\newcommand{\drawbackground}{%
\pgfmathsetseed{26}
\begin{scope}
\clip[use as bounding box] (0, 0) rectangle (\width, \height);
\begin{axis}[
x=\width cm, y=\height cm,
xmin=-1, xmax=1,
ymin=-1, ymax=1,
hide axis=true,
axis lines=none,
axis background/.style={fill=blue},
every axis label/.style={fill=blue},
ticklabel style={fill=blue},
draw opacity=0,
]
\addplot[white, only marks, mark=fuzz, samples=100, mark size=400.0] ({rand}, {rand});
\addplot[white, only marks, mark=fuzz, samples=100, mark size=300.0] ({rand}, {rand});
\addplot[white, only marks, mark=fuzz, samples=100, mark size=200.0] ({rand}, {rand});
\addplot[white, only marks, mark=fuzz, samples=100, mark size=100.0] ({rand}, {rand});
\end{axis}
\end{scope}
}
\begin{document}
\begin{board}
% Draw the race
\scoped[shift={(0,0)}]{\drawrace}
\scoped[shift={(\left,\bottom)}]{\drawbackground}
% Draw the Stages
\scoped[shift={(2005.5/300.0,953.0/300.0)}]{\emptystage{stage_one}{stage_eight}}
\scoped[shift={(2005.5/300.0,317.6/300.0)}]{\emptystage{stage_two}{stage_seven}}
\scoped[shift={(2005.5/300.0,-317.6/300.0)}]{\emptystage{stage_three}{stage_six}}
\scoped[shift={(2005.5/300.0,-953.0/300.0)}]{\emptystage{stage_four}{stage_five}}
\scoped[shift={(-10.5,-3.75)},yscale=-1]{\cardtrackindicator{firstleg}{\rotatebox[origin=c]{180}{First Leg}}}
\scoped[shift={(-7.5,3.75)}]{\cardtrackindicator{firstleg}{Second Leg}}
\scoped[shift={(1.5,-3.75)},yscale=-1]{\cardtrackindicator{secondleg}{\rotatebox[origin=c]{180}{Third Leg}}}
\scoped[shift={(4.5,3.75)}]{\cardtrackindicator{secondleg}{Fourth Leg}}
\scoped[shift={(13.5,-3.75)},yscale=-1]{\cardtrackindicator{thirdleg}{\rotatebox[origin=c]{180}{Fifth Leg}}}
\scoped[shift={(16.5,3.75)}]{\cardtrackindicator{thirdleg}{Sixth Leg}}
% Draw the Start/End
\scoped[shift={(-1690.5/300.0,-100.5/300.0)}]{\drawchecker}
\node [anchor=east, inner sep=0mm, font=\fontsize{24}{0}\bebas] at (-1615.5/300.0,100.5/300.0) {Start};
\node at (-12, 0) {\includegraphics[width=1cm]{icons/legend.png}};
\node at (-9, 0) {\includegraphics[width=1cm]{icons/legend.png}};
\node at (-6, 0) {\includegraphics[width=1cm]{icons/legend.png}};
\node at (-3, 0) {\includegraphics[width=1cm]{icons/legend.png}};
\scoped[shift={(-1975.0/300.0,-750.0/300.0)}]{\drawhypostarvechart}
\node at (-12.0,7.5) {\fontsize{24}{24}\bebas Start};
\node at (18.0,-7.5) {\fontsize{24}{24}\bebas End};
\scoped[shift={(-1975.0/300.0,750.0/300.0)}]{\drawdielegend}
\scoped[shift={(-17,8)}]{\drawdielegend}
\scoped[shift={(-17,-6)}, rotate=90]{\node[transform shape] {\includegraphics{logotransparent.png}}}
%\drawoverlay
%\drawguides
\scoped[shift={(3,0)}]{\track}
\drawguides
\end{board}
\end{document}

View file

@ -1,5 +1,4 @@
\LoadClass{standalone}
% NOTE: Cloud colour is 76baff
\ProvidesClass{iditacard}[2017/05/12 Class for Iditacard cards]
@ -22,30 +21,15 @@
\newfontfamily\bebas{Bebas Neue Regular}
\newfontfamily\alegreya{Alegreya}
\definecolor{stage_one}{HTML}{7FDF7D}
\definecolor{stage_two}{HTML}{9FB76F}
\definecolor{stage_three}{HTML}{5F5FFF}
\definecolor{stage_four}{HTML}{3FDFDF}
\definecolor{stage_five}{HTML}{DFDF3F}
\definecolor{stage_six}{HTML}{9F9F9F}
\definecolor{stage_seven}{HTML}{FF5F5F}
\definecolor{stage_eight}{HTML}{CF5FCF}
\definecolor{town}{HTML}{CF5FCF}
\definecolor{frozenlake}{HTML}{5F9FFF}
\definecolor{hills}{HTML}{7FDF7F}
\definecolor{wasteland}{HTML}{DFDF3F}
\definecolor{forest}{HTML}{9FB76F}
\definecolor{cliffface}{HTML}{FF5F5F}
\definecolor{ropebridge}{HTML}{CFAF7F}
\definecolor{blizzard}{HTML}{5F5FFF}
\definecolor{mountain}{HTML}{9F9F9F}
\definecolor{village}{HTML}{FF8F0F}
\definecolor{energy}{HTML}{003FFF}
\definecolor{health}{HTML}{FF0000}
\definecolor{risk}{HTML}{000000}
\definecolor{firstleg}{HTML}{9117FF}
\definecolor{secondleg}{HTML}{17FF91}
\definecolor{thirdleg}{HTML}{FF9117}
% Card Type
\definecolor{utility}{HTML}{FFFFFF}
\definecolor{attachment}{HTML}{5FAFCF}
\definecolor{dog}{HTML}{BF9F7F}
@ -56,6 +40,7 @@
\definecolor{sled}{HTML}{7FDF7F}
\definecolor{food}{HTML}{CFCF4F}
% Rarity
\definecolor{info}{HTML}{FFFFFF}
\definecolor{starting}{HTML}{777777}
\definecolor{common}{HTML}{000000}
@ -63,17 +48,9 @@
\definecolor{epic}{HTML}{007700}
\definecolor{legendary}{HTML}{770077}
\newcommand{\cardtype}[1]{%
\newcommand{\backgroundcolor}{#1}
}
\newcommand{\rarity}[1]{%
\newcommand{\edgecolor}{#1}
}
\newcommand{\deck}[1]{%
\newcommand{\whichdeck}{#1}
}
\newcommand{\cardtype}[1]{\newcommand{\backgroundcolor}{#1}}
\newcommand{\rarity}[1]{\newcommand{\edgecolor}{#1}}
\newcommand{\deck}[1]{\newcommand{\whichdeck}{#1}}
\newcommand{\energy}[1]{%
\node [minimum width=0.5in, minimum height=0.5in, anchor=center, inner sep=0mm] at (125.0/300.0,825.0/300.0) {\includegraphics[width=0.5in,height=0.5in]{icons/hand.png}};
@ -89,9 +66,9 @@
\node [minimum width=0.5in, minimum height=0.5in, anchor=center, inner sep=0mm] at (125.0/300.0,700.0/300.0) {\includegraphics[width=0.5in, height=0.5in]{icons/deck.png}};
\StrLen{#1}[\arglen]
\ifnum\arglen>1%
\node [text=black, minimum width=0.5in, minimum height=0.5in, text centered, text width=0.5in, anchor=center, inner sep=0mm] at (125.0/300.0, 700.0/300.0) {\bf\fontsize{14}{14}\bebas #1};%
\node [text=black, minimum width=0.5in, minimum height=0.5in, text centered, text width=0.5in, anchor=center, inner sep=0mm] at (125.0/300.0, 700.0/300.0) {\bf\fontsize{14}{14}\bebas #1};%
\else
\node [text=black, minimum width=0.5in, minimum height=0.5in, text centered, text width=0.5in, anchor=center, inner sep=0mm] at (125.0/300.0, 700.0/300.0) {\bf\fontsize{25}{30}\bebas #1};%
\node [text=black, minimum width=0.5in, minimum height=0.5in, text centered, text width=0.5in, anchor=center, inner sep=0mm] at (125.0/300.0, 700.0/300.0) {\bf\fontsize{25}{30}\bebas #1};%
\fi
}
@ -99,54 +76,25 @@
\node [minimum width=0.5in, minimum height=0.5in, anchor=center, inner sep=0mm] at (125.0/300.0, 538.0/300.0) {\includegraphics[width=0.5in, height=0.5in]{icons/risk.png}};
\StrLen{#1}[\arglen]
\ifnum\arglen>1%
\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{14}{14}\bebas #1};%
\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{14}{14}\bebas #1};%
\else
\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};%
\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};%
\fi
}
\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}}%
\@condcost{#2}{\health{#2}}%
\@condcost{#3}{\risk{#3}}%
}
\newcommand{\name}[1]{%
% add draw to the node to see its box
\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};
}
\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};
}
\newcommand{\helptext}[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, 800.0/300.0) {\fontsize{16}{16}\bebas#1\par};
}
\newcommand{\flava}[1]{%
% add draw to the node to see its box
\node [rectangle, minimum width=1.833333in, minimum height=100.0/300.0, text centered, text width=1.833333in, inner sep=0mm, anchor=north] at (375.0/300.0,150.0/300.0) {\fontsize{6}{6}\alegreya"#1"\par};
}
@ -156,197 +104,73 @@
% Aspect ratio of about 3:2
\newcommand{\art}[1]{%
\node [rectangle, minimum width=649.8/300.0, minimum height=425.0/300.0, inner sep=0, anchor=north west] at (49.2/300.0, 888.0/300.0) {\noindent\includegraphics*[width=2.1664in, height=1.416667in]{#1}};
}
\newcommand{\utilcount}[1]{%
\node [anchor=center] at (274.2/300.0, 677.0/300.0) {#1}; % Coord is art NW +- offset of image
}
\newcommand{\dogcount}[1]{%
\node [anchor=center] at (364.2/300.0, 807.0/300.0) {#1};
}
\newcommand{\movecount}[1]{%
\node [anchor=center] at (634.2/300.0, 677.0/300.0) {#1};
}
\newcommand{\foodcount}[1]{%
\node [anchor=center] at (544.2/300.0, 807.0/300.0) {#1};
}
\newcommand{\attachcount}[1]{%
\node [anchor=center] at (364.2/300.0, 547.0/300.0) {#1};
}
\newcommand{\personalcount}[1]{%
\node [anchor=center] at (454.2/300.0, 677.0/300.0) {#1};
}
\newcommand{\sledcount}[1]{%
\node [anchor=center] at (544.2/300.0, 547.0/300.0) {#1};
}
\newcommand{\energycount}[1]{%
\energy{#1}
%\node [anchor=center] at (0,0) {#1};
}
\newcommand{\healthcount}[1]{%
\health{#1}
%\node [anchor=center] at (1.0,1.0) {#1};
}
\newcommand{\riskcount}[1]{%
\risk{#1}
%\node [anchor=center] at (2.0,2.0) {#1};
\node [rectangle, minimum width=649.8/300.0, minimum height=425.0/300.0, inner sep=0, anchor=north west] at (49.2/300.0, 888.0/300.0) {\noindent\includegraphics*[width=2.1664in, height=1.416667in]{card/#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.4em}{\includegraphics[height=1.5em]{icons/dog-sled-icon.png}} #1}
\newcommand{\destroy}[2]{\useicon{eye} #2 \includegraphics[height=1em]{icons/trash-can.png} #1} % Destroy up to #1 of #2
\newcommand{\take}[2]{\useicon{backpack} #2 \useicon{shopping-cart} #1}
\newcommand{\draw}[1]{Draw \ifnum 1=#1 a \else #1 \fi card\ifnum 1<#1s\fi}
\newcommand{\daydraw}[1]{Draw \ifnum 1<#1 #1 extra cards \else an extra card \fi when you take a new day.}
\newcommand{\personal}{\colorbox{personal}{personal}}
\newcommand{\attachment}{\colorbox{attachment}{attachment}}
\newcommand{\sled}{\colorbox{sled}{sled}}
\newcommand{\hypothermia}{\useicon{hypo}}
\newcommand{\starvation}{\useicon{starve}}
\newcommand{\speed}[1]{\useicon{speed}#1}
\newcommand{\healthcosts}[1]{\begin{tikzpicture}[x=1in,y=1in]\node [centered, inner sep=0pt] at (0,0) {\includegraphics[width=0.5in,height=0.5in]{icons/deck.png}}; \node [centered, inner sep=0pt] at (0,0) {#1}; \end{tikzpicture}}
\newcommand{\energycosts}[1]{\begin{tikzpicture}[x=1in,y=1in]\node [centered, inner sep=0pt] at (0,0) {\includegraphics[width=0.5in,height=0.5in]{icons/hand.png}}; \node [centered, inner sep=0pt] at (0,0) {#1}; \end{tikzpicture}}
\newcommand{\riskcosts}[1]{\begin{tikzpicture}[x=1in,y=1in]\node [centered, inner sep=0pt] at (0,0) {\includegraphics[width=0.5in,height=0.5in]{icons/risk.png}}; \node [centered, inner sep=0pt] at (0,0) {\textcolor{white}{#1}}; \end{tikzpicture}}
\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};
% Arguments are: Baseline, Text Xcm, Text Ycm, iconfile, amount
\newcommand{\texticon}[5]{%
\begin{tikzpicture}[baseline=#1,x=1cm,y=1cm]
\node[centered, minimum width=0pt, text width=1cm, inner sep=0pt, outer sep=0pt] at (0,0) {\includegraphics[width=1cm,height=1.6cm]{icons/#4.png}};
\node[centered, minimum width=0pt, text width=0.6cm, inner sep=0pt, outer sep=0pt] at (#2,#3) {#5};
\end{tikzpicture}%
}
\newcommand{\rawcenter}[1]{%
\node [rectangle, minimum width=650.0/300.0, minimum height=950.0/300.0, text centered, text width=53mm, inner sep=1mm, anchor=north west] at (50.0/300.0,1000.0/300.0) {#1};
\newcommand{\daydraw}[1]{\texticon{-0.4cm}{0}{-0.2}{daydraw}{#1}}
\newcommand{\draw}[1]{\texticon{-0.28cm}{-0.1}{-0.08}{draw}{#1}}
\newcommand{\supply}[1]{\texticon{-0.4cm}{0}{-0.2}{supply}{#1}}
\newcommand{\take}[1]{\texticon{-0.4cm}{0}{-0.2}{take}{#1}}
\newcommand{\see}[1]{\texticon{-0.4cm}{0}{-0.2}{see}{#1}}
\newcommand{\destroy}[1]{\texticon{-0.4cm}{0}{-0.2}{destroy}{#1}}
\newcommand{\speed}[1]{\raisebox{-0.1em}{\includegraphics[height=1em]{icons/speed.png}} #1}
\newcommand{\move}[1]{\raisebox{-0.1em}{\includegraphics[height=1em,width=2em]{icons/move.png}} #1}
\newcommand{\discardonkill}{\mbox{Discarded when killed}}
\newcommand{\inplayatstart}{Play when the game starts}
\newcommand{\immortal}{\mbox{Cannot Die}}
\newcommand{\safepass}{\mbox{Passing does not incur} damage}
\newcommand{\passdie}{\mbox{Dies when passing}}
\newcommand{\nohold}{\mbox{Cannot hold attachments}}
\newcommand{\nostarvation}{\mbox{Remove your \useicon{starve}}}
\newcommand{\nohypothermia}{\mbox{Remove your \useicon{hypo}}}
\newcommand{\damage}[1]{\mbox{Take #1 damage}}
\newcommand{\doubledistance}{\mbox{Double the final distance}}
\newcommand{\damagetext}{Destroy this card \vskip 0.5em When you discard this card, end your turn immediately}
\newcommand{\healthcosts}[1]{\begin{tikzpicture}[x=1in,y=1in]\node [centered, minimum width=0.5in, inner sep=0pt] at (0,0) {\includegraphics[width=0.5in]{icons/deck.png}}; \node [centered, inner sep=0pt] at (0,0) {#1}; \end{tikzpicture}}
\newcommand{\energycosts}[1]{\begin{tikzpicture}[x=1in,y=1in]\node [centered, minimum width=0.5in, inner sep=0pt] at (0,0) {\includegraphics[width=0.5in]{icons/hand.png}}; \node [centered, inner sep=0pt] at (0,0) {#1}; \end{tikzpicture}}
\newcommand{\riskcosts}[1]{\begin{tikzpicture}[x=1in,y=1in]\node [centered, minimum width=0.5in, inner sep=0pt] at (0,0) {\includegraphics[width=0.5in]{icons/risk.png}}; \node [centered, inner sep=0pt] at (0,0) {\textcolor{white}{#1}}; \end{tikzpicture}}
% Draws a small #1-type card with #2 written on it
\newcommand{\cardtypetext}[2]{%
\begin{tikzpicture}[x=1cm,y=1cm]
\node[rectangle, centered, rounded corners=3pt, minimum width=1cm, minimum height=1.4cm, fill=#1, text centered, inner sep=0mm] at (0.5, 0.5) {\fontsize{14}{14}\bebas #2};
\end{tikzpicture}
}
\newcommand{\rawleft}[1]{%
\node [rectangle, minimum width=650.0/300.0, minimum height=950.0/300.0, text ragged, text width=53mm, inner sep=1mm, anchor=north west] at (50.0/300.0,1000.0/300.0) {#1};
% TODO: for better colourblindness accessibility, use 0/0/0 costs and the name
% of the card type instead?
\newcommand{\freecardtype}[1]{\cardtypetext{#1}{Free}}
\newcommand{\notallowed}[1]{%
\begin{tikzpicture}[x=1cm,y=1cm]
\node (0,0) {#1};
\draw [line width=0.7mm, black] (-0.37,-0.37) -- (0.37,0.37);
\draw [line width=0.5mm, red] (-0.37,-0.37) -- (0.37,0.37);
\draw [line width=0.7mm, black] (0,0) circle (5mm);
\draw [line width=0.5mm, red] (0,0) circle (5mm);
\end{tikzpicture}
}
\newcommand{\hraw}[1]{%
\node [rectangle, rotate=90, minimum width=950.0/300.0, minimum height=650.0/300.0, text justified, text width=80mm, inner sep=1mm, anchor=north west] at (50.0/300.0,50.0/300.0) {#1};
}
\newcommand{\hrawcenter}[1]{%
\node [rectangle, rotate=90, minimum width=950.0/300.0, minimum height=650.0/300.0, text centered, text width=80mm, inner sep=1mm, anchor=north west] at (50.0/300.0,50.0/300.0) {#1};
}
\newcommand{\hrawleft}[1]{%
\node [rectangle, rotate=90, minimum width=950.0/300.0, minimum height=650.0/300.0, text ragged, text width=80mm, inner sep=1mm, anchor=north west] at (50.0/300.0,50.0/300.0) {#1};
}
\newcommand{\difficulty}[2]{%
\newcommand{\easybackgroundcolor}{#1}
\newcommand{\hardbackgroundcolor}{#2}
}
\newcommand{\easyname}[1]{%
\node [rectangle, anchor=north, minimum width=1in, minimum height=1.0/3.0in, text centered, text width=1in, inner sep=0mm] at (200.0/300.0,450.0/300.0) {\bf\fontsize{16}{18}\bebas#1\par};
}
\newcommand{\hardname}[1]{%
\node [rectangle, anchor=north, minimum width=1in, minimum height=1.0/3.0in, text centered, text width=1in, inner sep=0mm] at (550.0/300.0,450.0/300.0) {\bf\fontsize{16}{18}\bebas#1\par};
}
\newcommand{\easyeffect}[1]{%
\node [rectangle, anchor=north, minimum width=1in, minimum height=1.0/3.0in, text centered, text width=1in, inner sep=0mm] at (200.0/300.0,175.0/300.0) {\bf\fontsize{10}{10}\bebas#1\par};
}
\newcommand{\hardeffect}[1]{%
\node [rectangle, anchor=north, minimum width=1in, minimum height=1.0/3.0in, text centered, text width=1in, inner sep=0mm] at (550.0/300.0,175.0/300.0) {\bf\fontsize{10}{10}\bebas#1\par};
}
% Aspect ratio of about 3:2
\newcommand{\easyart}[1]{%
\node [rectangle, minimum width=0.9in, minimum height=200.0/300.0, inner sep=0, anchor=north west] at (65.0/300.0,390.0/300.0) {\noindent\includegraphics*[width=0.9in, height=0.66666in]{#1}};
}
\newcommand{\hardart}[1]{%
\node [rectangle, minimum width=0.9in, minimum height=200.0/300.0, inner sep=0, anchor=north west] at (415.0/300.0,390.0/300.0) {\noindent\includegraphics*[width=0.9in, height=0.66666in]{#1}};
}
\newcommand{\easyhypo}[1]{%
% TODO: Improve alignment
\ifnum 0<#1
%\fill [left color=energy, right color=personal] (50.0/300.0,375.0/300.0) rectangle (65.0/300.0,325.0/300.0);
\node [rectangle, anchor=west, minimum width=0.25in, minimum height=0.25in, text centered, text width=0.25in, inner sep=0mm] at (50.0/300.0,360.0/300.0) {\includegraphics*[width=0.25in, height=0.25in]{icons/hypo.png}};
\fi
\ifnum 1<#1
%\fill [left color=energy, right color=personal] (50.0/300.0,315.0/300.0) rectangle (65.0/300.0,265.0/300.0);
\node [rectangle, anchor=west, minimum width=0.25in, minimum height=0.25in, text centered, text width=0.25in, inner sep=0mm] at (50.0/300.0,290.0/300.0) {\includegraphics*[width=0.25in, height=0.25in]{icons/hypo.png}};
\fi
\ifnum 2<#1
%\fill [left color=energy, right color=personal] (50.0/300.0,255.0/300.0) rectangle (65.0/300.0,205.0/300.0);
\node [rectangle, anchor=west, minimum width=0.25in, minimum height=0.25in, text centered, text width=0.25in, inner sep=0mm] at (50.0/300.0,220.0/300.0) {\includegraphics*[width=0.25in, height=0.25in]{icons/hypo.png}};
\fi
}
\newcommand{\easystarve}[1]{%
% TODO: Improve alignment
\ifnum 0<#1
%\fill [right color=health, left color=food] (336.0/300.0,375.0/300.0) rectangle (350.0/300.0,325.0/300.0);
\node [rectangle, anchor=east, minimum width=0.25in, minimum height=0.25in, text centered, text width=0.25in, inner sep=0mm] at (350.0/300.0,360.0/300.0) {\includegraphics*[width=0.25in, height=0.25in]{icons/starve.png}};
\fi
\ifnum 1<#1
%\fill [right color=health, left color=food] (336.0/300.0,315.0/300.0) rectangle (350.0/300.0,265.0/300.0);
\node [rectangle, anchor=east, minimum width=0.25in, minimum height=0.25in, text centered, text width=0.25in, inner sep=0mm] at (350.0/300.0,290.0/300.0) {\includegraphics*[width=0.25in, height=0.25in]{icons/starve.png}};
\fi
\ifnum 2<#1
%\fill [right color=health, left color=food] (336.0/300.0,255.0/300.0) rectangle (350.0/300.0,205.0/300.0);
\node [rectangle, anchor=east, minimum width=0.25in, minimum height=0.25in, text centered, text width=0.25in, inner sep=0mm] at (350.0/300.0,220.0/300.0) {\includegraphics*[width=0.25in, height=0.25in]{icons/starve.png}};
\fi
}
\newcommand{\hardhypo}[1]{%
% TODO: Improve alignment
\ifnum 0<#1
%\fill [left color=energy, right color=personal] (400.0/300.0,375.0/300.0) rectangle (415.0/300.0,325.0/300.0);
\node [rectangle, anchor=west, minimum width=0.25in, minimum height=0.25in, text centered, text width=0.25in, inner sep=0mm] at (400.0/300.0,360.0/300.0) {\includegraphics*[width=0.25in, height=0.25in]{icons/hypo.png}};
\fi
\ifnum 1<#1
%\fill [left color=energy, right color=personal] (400.0/300.0,315.0/300.0) rectangle (415.0/300.0,265.0/300.0);
\node [rectangle, anchor=west, minimum width=0.25in, minimum height=0.25in, text centered, text width=0.25in, inner sep=0mm] at (400.0/300.0,290.0/300.0) {\includegraphics*[width=0.25in, height=0.25in]{icons/hypo.png}};
\fi
\ifnum 2<#1
%\fill [left color=energy, right color=personal] (400.0/300.0,255.0/300.0) rectangle (415.0/300.0,205.0/300.0);
\node [rectangle, anchor=west, minimum width=0.25in, minimum height=0.25in, text centered, text width=0.25in, inner sep=0mm] at (400.0/300.0,220.0/300.0) {\includegraphics*[width=0.25in, height=0.25in]{icons/hypo.png}};
\fi
}
\newcommand{\hardstarve}[1]{%
% TODO: Improve alignment
\ifnum 0<#1
%\fill [right color=health, left color=food] (686.0/300.0,375.0/300.0) rectangle (700.0/300.0,325.0/300.0);
\node [rectangle, anchor=east, minimum width=0.25in, minimum height=0.25in, text centered, text width=0.25in, inner sep=0mm] at (700.0/300.0,360.0/300.0) {\includegraphics*[width=0.25in, height=0.25in]{icons/starve.png}};
\fi
\ifnum 1<#1
%\fill [right color=health, left color=food] (686.0/300.0,315.0/300.0) rectangle (700.0/300.0,265.0/300.0);
\node [rectangle, anchor=east, minimum width=0.25in, minimum height=0.25in, text centered, text width=0.25in, inner sep=0mm] at (700.0/300.0,290.0/300.0) {\includegraphics*[width=0.25in, height=0.25in]{icons/starve.png}};
\fi
\ifnum 2<#1
%\fill [right color=health, left color=food] (686.0/300.0,255.0/300.0) rectangle (700.0/300.0,205.0/300.0);
\node [rectangle, anchor=east, minimum width=0.25in, minimum height=0.25in, text centered, text width=0.25in, inner sep=0mm] at (700.0/300.0,220.0/300.0) {\includegraphics*[width=0.25in, height=0.25in]{icons/starve.png}};
\fi
}
\newcommand{\easyflava}[1]{%
\node [rectangle, minimum width=1in, minimum height=50.0/300.0, text centered, text width=1in, inner sep=0mm, anchor=north] at (200.0/300.0,75.0/300.0) {\fontsize{4}{6}\alegreya"#1"\par};
}
\newcommand{\hardflava}[1]{%
\node [rectangle, minimum width=1in, minimum height=50.0/300.0, text centered, text width=1in, inner sep=0mm, anchor=north] at (550.0/300.0,75.0/300.0) {\fontsize{4}{6}\alegreya"#1"\par};
\newcommand{\allowednot}[1]{%
\begin{tikzpicture}[x=1cm,y=1cm]
\node (0,0) {#1};
\draw [line width=0.7mm, black] (-0.37,0.37) -- (0.37,-0.37);
\draw [line width=0.5mm, red] (-0.37,0.37) -- (0.37,-0.37);
\draw [line width=0.7mm, black] (0,0) circle (5mm);
\draw [line width=0.5mm, red] (0,0) circle (5mm);
\end{tikzpicture}
}
\newenvironment{card}
@ -359,33 +183,94 @@
{% End
\end{tikzpicture}}
\newenvironment{playcard}[3][@]
% Draws a straight, vertical 15mm segment centered at 0,0 going down
\newcommand{\straightspace}{%
\fill [black] (-0.85,-0.85) rectangle (-0.65,0.85);
\fill [black] (0.65,-0.85) rectangle (0.85,0.85);
\fill [black] (-0.5,-0.725) rectangle (0.5,-0.775);
}
% Draws an 'L' shaped 15mm segment centered at 0,0
\newcommand{\Lspace}{%
\fill [black] (-0.85,-0.85) rectangle (-0.65,0.85);
\fill [black] (-0.85,-0.85) rectangle (0.85,-0.65);
\fill [black] (0.65,0.65) rectangle (0.85,0.85);
\fill [black] (0.725,-0.5) rectangle (0.775,0.5);
}
\newcommand{\leglevel}[1]{\newcommand{\legcolor}{#1}}
\newenvironment{leg}
{% Begin
\cardtype{#2}\rarity{#3}
\begin{card}
\type{\if #1@#2\else#1 #2\fi}
\noindent\begin{tikzpicture}[x=1cm,y=1cm]
\fill [black] (0,0) rectangle (6.35,8.89);
\fill[rounded corners=10pt] [\legcolor] (0.423333,0.0) rectangle (5.92666,8.4666);
% Draw the path itself
\scoped[shift={(1.675,0.85)},yscale=-1.0]{\straightspace}
\scoped[shift={(1.675,2.35)},yscale=-1.0]{\straightspace}
\scoped[shift={(1.675,3.85)},yscale=-1.0]{\straightspace}
\scoped[shift={(1.675,5.35)},yscale=-1.0]{\straightspace}
\scoped[shift={(1.675,6.85)},yscale=-1.0]{\Lspace}
\scoped[shift={(3.175,6.85)},rotate=90]{\straightspace}
\scoped[shift={(4.675,6.85)},xscale=-1.0,rotate=-90]{\Lspace}
\scoped[shift={(4.675,5.35)}]{\straightspace}
\scoped[shift={(4.675,3.85)}]{\straightspace}
\scoped[shift={(4.675,2.35)}]{\straightspace}
\scoped[shift={(4.675,0.85)}]{\straightspace}
}
{% End
\end{card}
\end{tikzpicture}}
\newcommand{\legname}[1]{%
\node [rectangle, anchor=north, minimum width=2.15in, minimum height=2.0/3.0in, text centered, text width=1.833333in, inner sep=0mm] at (3.175,8.35) {\bf\fontsize{20}{30}\bebas#1\par};
}
% Returns the center of the argument'th space on a leg (0-indexed)
\newcommand{\legcoordx}[1]{%
\ifnum#1=0 1.675 \fi
\ifnum#1=1 1.675 \fi
\ifnum#1=2 1.675 \fi
\ifnum#1=3 1.675 \fi
\ifnum#1=4 1.675 \fi
\ifnum#1=5 3.175 \fi
\ifnum#1=6 4.675 \fi
\ifnum#1=7 4.675 \fi
\ifnum#1=8 4.675 \fi
\ifnum#1=9 4.675 \fi
\ifnum#1=10 4.675 \fi
}
\newcommand{\legcoordy}[1]{%
\ifnum#1=0 0.85 \fi
\ifnum#1=1 2.35 \fi
\ifnum#1=2 3.85 \fi
\ifnum#1=3 5.35 \fi
\ifnum#1=4 6.85 \fi
\ifnum#1=5 6.85 \fi
\ifnum#1=6 6.85 \fi
\ifnum#1=7 5.35 \fi
\ifnum#1=8 3.85 \fi
\ifnum#1=9 2.35 \fi
\ifnum#1=10 0.85 \fi
}
\newcommand{\onlegspace}[2]{%
\node [rectangle, anchor=center, minimum width=1.5cm, minimum height=1.5cm, text centered, text width=1.5cm, inner sep=0mm] at (\legcoordx{#1},\legcoordy{#1}) {#2};
}
\newcommand{\legspaceicon}[1]{%
\includegraphics[width=1cm]{icons/#1.png}
}
\newcommand{\legeffect}[1]{%
\node [rectangle, anchor=center, text centered, inner sep=0mm] at (3.175, 5.0) {\fontsize{16}{16}\bebas Effect};
\node [rectangle, anchor=center, text centered, inner sep=0mm] at (3.175, 3.85) {#1};
}
\newenvironment{board}
{% Begin
\noindent\begin{tikzpicture}[x=1in,y=1in]
%\fill [white] (0,0) rectangle (16.25,10.25);
\noindent\begin{tikzpicture}[x=1cm,y=1cm]
%\fill [white] (0,0) rectangle (41.275,26.035);
}
{% End
\end{tikzpicture}}
\newenvironment{cardstretch}
{% Begin
\noindent\begin{tikzpicture}[x=1in,y=1in]
\fill [left color=\hardbackgroundcolor, right color=\easybackgroundcolor] (0,0) rectangle (2.5,1.75);
%\fill [\hardbackgroundcolor] (0,0) rectangle (1.25,1.75);
%\fill [\easybackgroundcolor] (1.25,0) rectangle (2.5,1.75);
\fill[rounded corners=10pt] [\easybackgroundcolor] (50.0/300.0,50.0/300.0) rectangle (350.0/300.0,475.0/300.0);
\fill[rounded corners=10pt] [\hardbackgroundcolor] (400.0/300.0,50.0/300.0) rectangle (700.0/300.0,475.0/300.0);
}
{% End
\end{tikzpicture}}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 303 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 937 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 827 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 318 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 290 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 490 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 459 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 220 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 335 KiB

BIN
images/card/band_aid.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 333 KiB

BIN
images/card/bandage.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 334 KiB

BIN
images/card/bear.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 KiB

BIN
images/card/big_dog.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 KiB

BIN
images/card/bison.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 330 KiB

BIN
images/card/brandy.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 332 KiB

BIN
images/card/breakfast.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 332 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 334 KiB

BIN
images/card/caffeine.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 330 KiB

BIN
images/card/damaged.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 332 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 337 KiB

BIN
images/card/diamorphine.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 333 KiB

BIN
images/card/dinner.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 332 KiB

BIN
images/card/dog_chow.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 KiB

BIN
images/card/dog_shoes.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 332 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 338 KiB

BIN
images/card/first_aid.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 KiB

BIN
images/card/good_dog.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 334 KiB

BIN
images/card/greyhound.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 332 KiB

BIN
images/card/hat.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 329 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 336 KiB

BIN
images/card/husky.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

BIN
images/card/improvise.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 334 KiB

BIN
images/card/jerky.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 329 KiB

BIN
images/card/lead_sled.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 335 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 MiB

After

Width:  |  Height:  |  Size: 14 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 337 KiB

BIN
images/card/malamute.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 335 KiB

BIN
images/card/meditate.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 333 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 333 KiB

BIN
images/card/moose.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 330 KiB

BIN
images/card/move.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 332 KiB

BIN
images/card/mush.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 330 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 337 KiB

BIN
images/card/poutine.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 332 KiB

BIN
images/card/problem_dog.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 334 KiB

BIN
images/card/push.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 KiB

BIN
images/card/repair_sled.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 336 KiB

BIN
images/card/rush.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 332 KiB

BIN
images/card/salvage.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 338 KiB

BIN
images/card/squirrel.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 336 KiB

BIN
images/card/steak.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 332 KiB

BIN
images/card/supply_run.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 335 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 332 KiB

BIN
images/card/tiara.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 335 KiB

BIN
images/card/venison.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 332 KiB

BIN
images/card/waffles.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 332 KiB

BIN
images/card/whale_meat.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 335 KiB

BIN
images/card/wheel_dog.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 333 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 269 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Some files were not shown because too many files have changed in this diff Show more