Compare commits

..

No commits in common. "cleanup" and "master" have entirely different histories.

376 changed files with 1221 additions and 4237 deletions

7
.gitignore vendored
View file

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

Binary file not shown.

159
Makefile
View file

@ -1,8 +1,157 @@
default: everything
.PHONY: all clean check printrun cardrun
.PRECIOUS: %.pdf %.png
build.ninja: $(wildcard *.cue) $(wildcard *.yaml) configure.jq
cue export -- *.cue *.yaml | ./configure.jq --args -- *.cue *.yaml
default: check decks
all: check decks export
everything: build.ninja
ninja
# 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)
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 $@

View file

@ -1,9 +0,0 @@
# 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.

View file

@ -1,51 +0,0 @@
// 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

View file

@ -1,67 +0,0 @@
# 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: 14 MiB

After

Width:  |  Height:  |  Size: 12 MiB

BIN
box_bottom.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 MiB

BIN
box_top.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 MiB

BIN
boxbottom.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 MiB

BIN
boxtop.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 MiB

View file

@ -1,92 +0,0 @@
// 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)]"
}
},
]
}
}

View file

@ -1,726 +0,0 @@
# 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

18
cardtopng.sh Executable file
View file

@ -0,0 +1,18 @@
#!/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

View file

@ -1,132 +0,0 @@
#!/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)

BIN
destroyed.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

BIN
doghelp.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

BIN
expansionbox.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 MiB

24
foodhelp.tex Normal file
View file

@ -0,0 +1,24 @@
% 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 Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

25
ideas
View file

@ -1,28 +1,3 @@
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

BIN
iditaboard.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 306 KiB

View file

@ -2,9 +2,8 @@
% True size data
%
% 'Tile' diameter = 15mm
% 'Tile' diameter = ~0.5in
% TODO: Add legendary checkpoints logically (outside of legs)
\definecolor{stage_one}{HTML}{7FDF7D}
\definecolor{stage_two}{HTML}{9FB76F}
\definecolor{stage_three}{HTML}{5F5FFF}
@ -14,18 +13,22 @@
\definecolor{stage_seven}{HTML}{FF5F5F}
\definecolor{stage_eight}{HTML}{CF5FCF}
\def\cutlinet{12.7}
\def\cutlinel{-20.28}
\def\cutlineb{-12.7}
\def\cutliner{20.28}
\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\height{26.04}
\def\width{41.28}
\def\height{3075.0/300.0}
\def\width{4875.0/300.0}
\def\bottom{-13.02}
\def\left{-20.64}
\def\top{13.02}
\def\right{20.64}
\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}};
}
\newcommand{\drawguides}{%
\draw [blue] (\cutlinel,\bottom) -- (\cutlinel,\top);
@ -37,261 +40,421 @@
\draw [blue] (\left,0) -- (\right,0);
}
\newcommand{\sampletoken}{%
\fill [blue] (0,0) circle (0.75);
% 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{\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}
% 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);
}
% 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};
% 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);
}
\newcommand{\drawdielegend}{%
\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}
\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}};
}
\begin{document}
\begin{board}
\scoped[shift={(\left,\bottom)}]{\drawbackground}
% Draw the race
\scoped[shift={(0,0)}]{\drawrace}
\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 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}}
\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}};
% 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,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)}]{\drawhypostarvechart}
\scoped[shift={(-17,8)}]{\drawdielegend}
\scoped[shift={(-17,-6)}, rotate=90]{\node[transform shape] {\includegraphics{logotransparent.png}}}
\scoped[shift={(-1975.0/300.0,750.0/300.0)}]{\drawdielegend}
\scoped[shift={(3,0)}]{\track}
\drawguides
%\drawoverlay
%\drawguides
\end{board}
\end{document}

View file

@ -1,4 +1,5 @@
\LoadClass{standalone}
% NOTE: Cloud colour is 76baff
\ProvidesClass{iditacard}[2017/05/12 Class for Iditacard cards]
@ -21,15 +22,30 @@
\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}
@ -40,7 +56,6 @@
\definecolor{sled}{HTML}{7FDF7F}
\definecolor{food}{HTML}{CFCF4F}
% Rarity
\definecolor{info}{HTML}{FFFFFF}
\definecolor{starting}{HTML}{777777}
\definecolor{common}{HTML}{000000}
@ -48,9 +63,17 @@
\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}};
@ -66,9 +89,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
}
@ -76,25 +99,54 @@
\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};
}
@ -104,73 +156,197 @@
% 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]{card/#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};
}
\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}}$}
% 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{\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};
}
\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{\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};
}
% 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{\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};
}
\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}
\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};
}
\newenvironment{card}
@ -183,94 +359,33 @@
{% End
\end{tikzpicture}}
% 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}
\newenvironment{playcard}[3][@]
{% Begin
\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}
\cardtype{#2}\rarity{#3}
\begin{card}
\type{\if #1@#2\else#1 #2\fi}
}
{% End
\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};
\end{card}
}
\newenvironment{board}
{% Begin
\noindent\begin{tikzpicture}[x=1cm,y=1cm]
%\fill [white] (0,0) rectangle (41.275,26.035);
\noindent\begin{tikzpicture}[x=1in,y=1in]
%\fill [white] (0,0) rectangle (16.25,10.25);
}
{% 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}}

BIN
iditasingle.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 303 KiB

BIN
images/all_in.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 937 KiB

BIN
images/armour.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
images/band_aid.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

BIN
images/bandage.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 MiB

BIN
images/bear.JPG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 827 KiB

BIN
images/beef_stew.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

BIN
images/big_dog.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

BIN
images/bison.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

BIN
images/blizzard.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 KiB

BIN
images/bloodletting.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 KiB

BIN
images/blue_shell.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

BIN
images/bobsled_track.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 490 KiB

BIN
images/brandy.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 MiB

BIN
images/breakfast.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 459 KiB

BIN
images/bufferpanel.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

BIN
images/caffeine.JPG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

BIN
images/campfire.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 335 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 333 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 334 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 331 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 331 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 330 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 332 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 332 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 334 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 330 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 332 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 337 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 333 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 332 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 331 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 332 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 338 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 331 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 331 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 334 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 332 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 329 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 336 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 334 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 329 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 335 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 337 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 335 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 333 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 333 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 330 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 332 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 330 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 337 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 332 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 334 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 331 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 336 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 332 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 331 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 338 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 336 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 332 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 335 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 332 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 331 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 335 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 332 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 332 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 335 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 333 KiB

BIN
images/cat.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 269 KiB

BIN
images/checkpoint.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

BIN
images/chihuahua.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

BIN
images/cliff_face.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 MiB

BIN
images/cliff_wall.JPG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
images/coat.JPG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

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