Added more cards.

This commit is contained in:
Louis Burke 2019-04-14 14:06:11 -04:00
parent 948c7e2edb
commit e053c56a88
6 changed files with 109 additions and 64 deletions

View file

@ -1,4 +1,4 @@
.PHONY: setup all clean check printrun cardrun
.PHONY: all clean check printrun cardrun decks
.PRECIOUS: %.pdf %.png
GENERATED_DIR?=generated
@ -31,10 +31,6 @@ RAW_DECK_LIST=$(shell ./scripts/decklist.sh)
DECK_LIST=$(RAW_DECK_LIST:%=$(GENERATED_DIR)/%)
DECK_DEPENDENCIES=$(DECK_LIST:%=%.d)
setup: $(SENTINEL)
./scripts/generate_cards.sh $(GENERATED_DIR)
touch $(SENTINEL)
$(SENTINEL): cards.sql
./scripts/generate_cards.sh $(GENERATED_DIR)
touch $@
@ -43,10 +39,10 @@ $(SENTINEL): cards.sql
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' >> $@
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/$(*D)
echo 'decks: outputs/$(*F).pdf' >> $@
Makefile.deps: $(DECK_DEPENDENCIES) $(SENTINEL)
cat $^ > $@

126
cards.sql
View file

@ -43,10 +43,8 @@ INSERT INTO Effects VALUES(20,'Double the final distance','\doubledistance');
INSERT INTO Effects VALUES(21,'Damage Effect','\damagetext');
INSERT INTO Effects VALUES(22,'Counts as 2 dogs.','\istwodogs');
INSERT INTO Effects VALUES(23,'Your other dogs have +1 speed','\otherdogshave{\speed{1}}');
INSERT INTO Effects VALUES(24,'Can hold more attachments','\canholdattachments{#}');
INSERT INTO Effects VALUES(25,'Turn Draw','\turndraw{#}');
CREATE TABLE Cards (id INTEGER PRIMARY KEY, Name TEXT, Energy TEXT, Health TEXT, Risk TEXT, Flavour TEXT, Image TEXT, Type INTEGER REFERENCES Types (id));
CREATE TABLE Cards (id INTEGER PRIMARY KEY, Name TEXT, Energy TEXT, Health TEXT, Risk TEXT, Flavour TEXT, Image TEXT, Typename INTEGER REFERENCES Types (id));
INSERT INTO Cards VALUES(1,'A Hat',2,2,0,'I bet its a valve hat.','hat',1);
INSERT INTO Cards VALUES(2,'Dog Chow',1,3,0,'A hungry dog is a slow dog.','dog_chow',1);
INSERT INTO Cards VALUES(3,'Good Dog',3,3,0,'Good boy.','good_dog',2);
@ -79,19 +77,26 @@ INSERT INTO Cards VALUES(101,'Squirrel',2,2,1,'Dogs \emph{hate} squirrels.','squ
INSERT INTO Cards VALUES(102,'Tiara',2,2,1,'Makes the dog feel special.','tiara',1);
INSERT INTO Cards VALUES(103,'Bear',2,2,2,'In hindsight, not the best idea.','bear',2);
INSERT INTO Cards VALUES(104,'Big Dog',2,2,0,'He''s not red though.','big_dog',2);
INSERT INTO Cards VALUES(105,'Cat',1,1,0,'They say a cat has nine lives.','cat',2);
INSERT INTO Cards VALUES(106,'Chihuahua',1,1,2,'OMG shut up!','chihuahua',2);
INSERT INTO Cards VALUES(107,'Greyhound',0,0,2,'What happens when you mix the colours on a husky? You get a grey hound.','greyhound',2);
INSERT INTO Cards VALUES(108,'Lazy Dog',3,3,0,'Let''s go for a walk!','lazy_dog',2);
INSERT INTO Cards VALUES(109,'Malamute',4,4,1,'A common sled hauling breed.','malamute',2);
INSERT INTO Cards VALUES(110,'Polar Bear',1,1,1,'Do not go near a polar bear.','polar_bear',2);
INSERT INTO Cards VALUES(111,'Problem Dog',1,1,1,'I swear, if you weren''t so fast.','problem_dog',2);
INSERT INTO Cards VALUES(112,'Retriever',2,2,1,'Fetch!','retriever',2);
-- TODO: Be more stringent with which cards get included...
-- Likely removal candidates:
-- Polar Bear (can just be bear)
-- Cat
-- Malamute (maybe give it a different ability) [reduce ability count]
INSERT INTO Cards VALUES(105,'Greyhound',0,0,2,'What happens when you mix the colours on a husky? You get a grey hound.','greyhound',2);
INSERT INTO Cards VALUES(106,'Malamute',2,2,1,'A common sled hauling breed.','malamute',2);
INSERT INTO Cards VALUES(107,'Problem Dog',1,1,1,'I swear, if you weren''t so fast.','problem_dog',2);
INSERT INTO Cards VALUES(108,'Bison',2,0,1,'It''s very lean.','bison',3);
INSERT INTO Cards VALUES(109,'Poutine',0,2,0,'The great Canadian carb!','poutine',3);
INSERT INTO Cards VALUES(110,'Venison',0,2,0,'Better than breakfast.','venison',3);
INSERT INTO Cards VALUES(111,'Steak',0,0,0,'Well aren''t you fancy.','steak',3);
INSERT INTO Cards VALUES(112,'Jerky',1,1,0,'Watch your sodium!','jerky',3);
INSERT INTO Cards VALUES(113,'Midnight Sun',1,1,1,'Strange things are done in the midnight sun.','midnight_sun',4);
INSERT INTO Cards VALUES(114,'Push',1,0,0,'Not a full mush, but still putting in some effort.','push',4);
INSERT INTO Cards VALUES(115,'Slow and Steady',0,0,0,'Maybe a bit too slow.','slow_and_steady',4);
INSERT INTO Cards VALUES(116,'Band Aid',0,0,0,'Not much.','band_aid',5);
INSERT INTO Cards VALUES(117,'Bandage',1,0,0,'Make sure you wrap it tight.','bandage',5);
INSERT INTO Cards VALUES(118,'Brandy',0,0,1,'Brought by a St. Bernard.','brandy',5);
INSERT INTO Cards VALUES(119,'Caffeine',0,2,0,'The greatest addiction ever.','caffeine',5);
INSERT INTO Cards VALUES(120,'Improvise',0,0,0,'MacGyver of the north.','improvise',6);
INSERT INTO Cards VALUES(121,'Makeshift Sled',1,1,0,'Rickety, but it''ll hold.','makeshift_sled',6);
INSERT INTO Cards VALUES(122,'Salvage',1,1,0,'Take the good with the bad.','salvage',6);
INSERT INTO Cards VALUES(123,'Antique Sled',0,5,0,'Withstood the test of time.','antique_sled',6);
INSERT INTO Cards VALUES(124,'Rush',0,3,1,'Hurry up!','rush',6);
CREATE TABLE Card_Effects (Card INTEGER REFERENCES Cards (id), Effect INTEGER REFERENCES Effects (id), Amount INTEGER);
INSERT INTO Card_Effects VALUES(1,1,1);
@ -145,18 +150,37 @@ INSERT INTO Card_Effects VALUES(102,7,1);
INSERT INTO Card_Effects VALUES(102,1,1);
INSERT INTO Card_Effects VALUES(103,7,5);
INSERT INTO Card_Effects VALUES(104,7,3);
INSERT INTO Card_Effects VALUES(105,10,1);
INSERT INTO Card_Effects VALUES(106,23,1);
INSERT INTO Card_Effects VALUES(105,7,3);
INSERT INTO Card_Effects VALUES(105,16,1);
INSERT INTO Card_Effects VALUES(106,1,2);
INSERT INTO Card_Effects VALUES(107,7,3);
INSERT INTO Card_Effects VALUES(107,16,1);
INSERT INTO Card_Effects VALUES(108,7,-1);
INSERT INTO Card_Effects VALUES(108,24,2);
INSERT INTO Card_Effects VALUES(109,25,1);
INSERT INTO Card_Effects VALUES(110,7,3);
INSERT INTO Card_Effects VALUES(110,19,1);
INSERT INTO Card_Effects VALUES(111,7,3);
INSERT INTO Card_Effects VALUES(111,1,-1);
INSERT INTO Card_Effects VALUES(112,1,2);
INSERT INTO Card_Effects VALUES(107,1,-1);
INSERT INTO Card_Effects VALUES(108,2,5);
INSERT INTO Card_Effects VALUES(109,2,1);
INSERT INTO Card_Effects VALUES(109,18,1);
INSERT INTO Card_Effects VALUES(110,2,3);
INSERT INTO Card_Effects VALUES(111,2,1);
INSERT INTO Card_Effects VALUES(112,2,3);
INSERT INTO Card_Effects VALUES(113,8,10);
INSERT INTO Card_Effects VALUES(114,8,5);
INSERT INTO Card_Effects VALUES(115,8,0);
INSERT INTO Card_Effects VALUES(115,2,1);
INSERT INTO Card_Effects VALUES(116,5,1);
INSERT INTO Card_Effects VALUES(116,6,1);
INSERT INTO Card_Effects VALUES(117,5,1);
INSERT INTO Card_Effects VALUES(117,6,5);
INSERT INTO Card_Effects VALUES(118,5,1);
INSERT INTO Card_Effects VALUES(118,6,5);
INSERT INTO Card_Effects VALUES(119,5,1);
INSERT INTO Card_Effects VALUES(119,6,2);
INSERT INTO Card_Effects VALUES(119,2,1);
INSERT INTO Card_Effects VALUES(120,4,1);
INSERT INTO Card_Effects VALUES(121,3,2);
INSERT INTO Card_Effects VALUES(121,4,6);
INSERT INTO Card_Effects VALUES(122,3,3);
INSERT INTO Card_Effects VALUES(122,4,2);
INSERT INTO Card_Effects VALUES(123,3,2);
INSERT INTO Card_Effects VALUES(123,4,8);
CREATE TABLE Deck_Cards (Deck INTEGER REFERENCES Decks (id), Card INTEGER REFERENCES Cards (id), Amount INTEGER);
INSERT INTO Deck_Cards VALUES(1,1,1);
@ -228,17 +252,55 @@ INSERT INTO Deck_Cards VALUES(20,29,1);
INSERT INTO Deck_Cards VALUES(20,30,1);
INSERT INTO Deck_Cards VALUES(20,31,1);
INSERT INTO Deck_Cards VALUES(21,40,26);
INSERT INTO Deck_Cards VALUES(10,105,2);
INSERT INTO Deck_Cards VALUES(10,106,2);
INSERT INTO Deck_Cards VALUES(10,108,2);
INSERT INTO Deck_Cards VALUES(10,109,2);
INSERT INTO Deck_Cards VALUES(10,110,2);
INSERT INTO Deck_Cards VALUES(10,111,2);
INSERT INTO Deck_Cards VALUES(10,112,2);
INSERT INTO Deck_Cards VALUES(11,100,4);
INSERT INTO Deck_Cards VALUES(10,116,2);
INSERT INTO Deck_Cards VALUES(10,117,2);
INSERT INTO Deck_Cards VALUES(10,118,2);
INSERT INTO Deck_Cards VALUES(10,119,2);
INSERT INTO Deck_Cards VALUES(11,120,2);
INSERT INTO Deck_Cards VALUES(10,121,2);
INSERT INTO Deck_Cards VALUES(10,122,2);
INSERT INTO Deck_Cards VALUES(10,123,2);
INSERT INTO Deck_Cards VALUES(11,100,2);
INSERT INTO Deck_Cards VALUES(11,101,2);
INSERT INTO Deck_Cards VALUES(11,102,2);
INSERT INTO Deck_Cards VALUES(11,103,2);
INSERT INTO Deck_Cards VALUES(11,104,2);
INSERT INTO Deck_Cards VALUES(11,106,2);
INSERT INTO Deck_Cards VALUES(11,105,2);
INSERT INTO Deck_Cards VALUES(11,107,2);
INSERT INTO Deck_Cards VALUES(11,110,2);
INSERT INTO Deck_Cards VALUES(11,111,2);
INSERT INTO Deck_Cards VALUES(11,113,2);
INSERT INTO Deck_Cards VALUES(11,114,2);
INSERT INTO Deck_Cards VALUES(11,115,2);
-- 2 more movements (or 1 movement, 1 dog)
CREATE VIEW Card_List AS
SELECT
Cards.Name AS 'Card Name',
Cards.Energy AS 'Energy Cost',
Cards.Health AS 'Health Cost',
Cards.Risk AS 'Risk',
Cards.Flavour AS 'Flavour',
Cards.Image AS 'Image',
Types.Name AS 'Type',
group_concat(replace(Effects.Command,'#',Card_Effects.Amount), '\\') AS 'Effect(s)',
Decks.Name AS 'In Deck',
Deck_Cards.Amount AS 'Count'
FROM Cards
JOIN Types ON Types.id = Cards.Typename
CROSS JOIN Card_Effects ON Card_Effects.Card = Cards.id
JOIN Effects ON Effects.id = Card_Effects.Effect
CROSS JOIN Deck_Cards ON Deck_Cards.Card = Cards.id
JOIN Decks ON Deck_Cards.Deck = Decks.id
GROUP BY
Cards.id,
Decks.id
ORDER BY Cards.Name;
COMMIT;

8
ideas
View file

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

View file

@ -114,7 +114,7 @@
\newcommand{\supply}[1]{Add \ifnum 1=#1 a card \else #1 cards \fi to the supply} %--
\newcommand{\take}[1]{\ifnum 0<#1 Take \ifnum 1=#1 a card \else #1 cards \fi from the supply\fi} %--
\newcommand{\see}[1]{Look at the top \ifnum 1=#1 card \else #1 cards \fi of your deck} % TODO: Eye icon %--
\newcommand{\destroy}[1]{\ifnum 0<#1 Destroy up to #1 of them\fi discard as many as you want and shuffle the rest back into your deck} % TODO: Trash icon %--
\newcommand{\destroy}[1]{\ifnum 0<#1 Destroy up to #1 of them\fi discard as many as you want and shuffle the rest back into your deck} % TODO: Trash icon %-- I THINK THIS IS THE RIGHT EFFECT THOUGH
\newcommand{\speed}[1]{Speed #1} %--
\newcommand{\move}[1]{Move #1\,mym} % TODO: SIify mym %--
\newcommand{\discardonkill}{Discarded when killed}

View file

@ -4,7 +4,7 @@ PARENT_DIR="${1:-cards}"
mkdir -p "$PARENT_DIR"
sqlite3 -init cards.sql < scripts/list_cards.sql | \
echo "SELECT * FROM Card_List;" | sqlite3 -init cards.sql | \
while IFS="|" read -r name energy health risk flavour image typename effects deckname cardcount; do
case $cardcount in
1) rarity=legendary ;;

View file

@ -1,21 +0,0 @@
SELECT
Cards.Name,
Cards.Energy,
Cards.Health,
Cards.Risk,
Cards.Flavour,
Cards.Image,
Types.Name,
group_concat(replace(Effects.Command,'#',Card_Effects.Amount), '\\'),
Decks.Name,
Deck_Cards.Amount
FROM Cards
JOIN Types ON Types.id = Cards.Type
CROSS JOIN Card_Effects ON Card_Effects.Card = Cards.id
JOIN Effects ON Effects.id = Card_Effects.Effect
CROSS JOIN Deck_Cards ON Deck_Cards.Card = Cards.id
JOIN Decks ON Deck_Cards.Deck = Decks.id
GROUP BY
Cards.id,
Decks.id
ORDER BY Cards.Name;