* Add MOM Tokens
*Added entries for 13 new tokens
*Added set lines for 8 reprinted tokens
*Reverse-related an existing Knight token to Elspeth's Talent
* Add Dinosaur Art
* mark transforming cards as exclude, sort
* update version
---------
Co-authored-by: ebbit1q <ebbit1q@gmail.com>
* Add BRC Tokens
*Adds entries and art for 2 new tokens
*Adds set lines for 12 existing tokens
* Relate Staff of Titania (BRC) to Dryad (BRO)
* add missing >
* add titania relation
* update version
---------
Co-authored-by: ebbit1q <ebbit1q@gmail.com>
* Add image to banana token
*Card picture is a public domain picture of a bunch of bananas with a GIMP olify applied
*Card made in mtgdesign
* update version
---------
Co-authored-by: ebbit1q <ebbit1q@gmail.com>
* Add Token Entries and Relations for Heroes of the Realm
*Adds 10 new token entries (8 tokens and 2 emblems) for tokens made by cards in Heroes of the Realm Sets
*Adds Heroes of the Realm relations to 3 existing tokens
* Fix ampresand
* Fix Indents
* sort tokens
* update version
---------
Co-authored-by: ebbit1q <ebbit1q@gmail.com>
* Add Token Images from Arena
*Adds entry and image for Karn, Living Legacy's Emblem (from MTG:Arena)
*Replaces user generated Unicorn token with the token from MTG:Arena
* Revert Unicorn token image
* Change Emblem to jpeg for consistency
* Back to png
* Correct duplicated url
Co-authored-by: ebbit1q <ebbit1q@gmail.com>
* update version
---------
Co-authored-by: ebbit1q <ebbit1q@gmail.com>
* set xsi to http instead of https
* update check_links.yml
* use env. context
* remove continue-on-error
* all at once
* step name
* update version to 20230313
---------
Co-authored-by: tooomm <tooomm@users.noreply.github.com>
Co-authored-by: github-actions <github-actions@github.com>
* Add J22 Tokens
*Adds artless entries for 3 new tokens (no physical print available)
*Adds reverse-related lines to 5 existing tokens
*Adds excluded count="x" for Zendikar's Roil to allow for making multiple tokens at once off multiple lands triggering landfall
*Replaces "x=1" with "x" for Iridescent Hornbeetle to conform with style rules
* update version
---------
Co-authored-by: ebbit1q <ebbit1q@gmail.com>
* add missing excludes for double entries
cockatrice will actually implicitly mark the second reverse-related tag
on the same token as exclude, however we prefer to mark them explicitly,
there are only two relations that we happened to have this wrong
lazy bash:
tag="reverse-related"
relationrx="( *)<$tag([^>]*)>([^<]*)</$tag>"
exclude='exclude="exclude"'
while IFS= read -r line; do
if [[ $line =~ $relationrx ]]; then
space=${BASH_REMATCH[1]}
args=${BASH_REMATCH[2]}
name=${BASH_REMATCH[3]}
if [[ $last_name && $name == "$last_name" ]]; then
if [[ ! $args =~ $exclude ]]; then
echo "$space<$tag$args $exclude>$name</$tag>"
continue
fi
else
last_name=$name
fi
else
last_name=""
fi
echo "$line"
done <tokens.xml | sponge tokens.xml
* update version to 20230311
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add ONC Tokens
*Added 2 new tokens
*Added set lines for 19 reprints
*Added 3 new reverse-related entries for new cards that make existing tokens
*Added 4 cards with Toxic to the Poison Counter entry
*Added reminder text to the oracle text of the Phyrexian Insect token as its printed on both copies of the card and listed as oracle text on Scryfall
* update version
* mark exclude
---------
Co-authored-by: ebbit1q <ebbit1q@gmail.com>
* Add Urza, Chief Artificer to 0/0 Construct
* Add other BRC cards that make BRO tokens
*Completes the set of BRC cards that make BRO tokens in addition to Urza, Chief Artificer
* update version
---------
Co-authored-by: ebbit1q <ebbit1q@gmail.com>
* Add ONE Tokens
* Adds 10 new tokens and 3 art lines for reprints
* Adds missing set line to Sketch token
* Includes reverse relations to ONE and ONC cards (but no ONC token entries)
* Removes Goblin art from Phyrexian Goblin entry as we now have a printed Phyrexian Goblin token and that goblin art already appears a Goblin Token entry in the file
* Did not remove any Golem art from the Phyrexian Golem entry as that art does not appear anywhere else in the file and that token was reprinted in 2XM as 'Phyreixan Golem'
* Did not do reverse relations for the Poison counter for the 57 new cards with toxic, but I will if you ask me to
* Add Poison Counter Relation to tokens with Toxic
*Analogous to the Phyrexian Insect token with Infect, the Phyrexian Beast and Phyrexian Mite tokens have Toxic 1 and can generate poison counters.
* add poison
* sort
* update version
---------
Co-authored-by: ebbit1q <ebbit1q@gmail.com>
* Add DMR Tokens
*Adds art lines for 14 tokens from DMR
*Replaces 2 blog images with DMR printings on Scryfall
*I didn't edit the Ravage entry; I am not sure why Github thinks it changed
* Add back staticneo tokens
* update version
---------
Co-authored-by: ebbit1q <ebbit1q@gmail.com>
* Remove Parentheses Around Emblem Names
*Aligns emblem names with their names on Scryfall for consistency
* update version
---------
Co-authored-by: ebbit1q <ebbit1q@gmail.com>
* use proper set code for fnm 2012 token
* change order of each set using script
some sets were not properly sorted
the release date of SLD might be contestable but the script seems to
have found 27 real discrepancies
the release date is as shown in scryfall, eg SLD has a date of 2019-12-02
bash is a real programming language and I can put it on my resume,
don't tell me otherwise:
set -eo pipefail
mapfile -t sets < <(LC_ALL=C curl -L 'https://mtgjson.com/api/v5/SetList.json' | jq -r '.data[]|.releaseDate,.code' | sed 'N;s/\n/ /' | sort -r | sed 's/.* //')
setrx="<set[^>]*>([^<]+)</set>"
list=()
while IFS= read -r line; do
if [[ $line =~ $setrx ]]; then
code="${BASH_REMATCH[1]}"
list+=("$code" "$line")
elif [[ $code ]]; then
for set_ in "${sets[@]}"; do
for (( i=0; i<${#list[@]}; i+=2 )); do
code="${list[$i]}"
if [[ $set_ == "$code" ]]; then
echo "${list[$i+1]}"
fi
done
done
code=""
list=()
echo "$line"
else
echo "$line"
fi
done <tokens.xml | sponge tokens.xml
* sort all cards using script
actually there was only one discrepancy in the file before " Token" was
added to a lot of entries (Wasp)
however the addition has changed the sort order for many cards,
eg "Bird Token" vs "Bird Soldier Token"
cards after the last normal token have not been included (Zombie Wizard)
still using bash of course:
last="Zombie Wizard Token"
startrx=" -->"
namerx="<name>([^<]*)</name>"
endrx="</card>"
declare -A list # associative array
{
while IFS= read -r line; do
echo "$line"
if [[ $line =~ $startrx ]]; then # eat first comment
break
fi
done
while
while
IFS= read -r line || exit 2
card+="$line
"
[[ ! $line =~ $namerx ]]
do :; done
name="${BASH_REMATCH[1]}"
while
IFS= read -r line || exit 3
card+="$line
"
[[ ! $line =~ $endrx ]]
do :; done
list[ "$name"]="$card"
keys+="
$name"
card=""
[[ $name != "$last" ]]
do :; done
<<<"${keys:1}" LC_ALL=C sort --ignore-case | while IFS= read -r key; do
echo -n "${list[ $key]}"
done
cat
} <tokens.xml | sponge tokens.xml
* sort reverse-related tags again
slightly changed script from 6ca51e5
tag="reverse-related"
relationrx="<$tag([^>]*)>([^<]*)</$tag>"
declare -A list # associative array
while IFS= read -r line; do
if [[ $line =~ $relationrx ]]; then
yes=1
name="${BASH_REMATCH[2]}"
args="${BASH_REMATCH[1]}"
key="$name $(printf "%03d" "${#args}")$args"
list["$key"]="$line"
keys+="
$key"
elif [[ $yes ]]; then
# LC_ALL=C determines the sort behavior!
<<<"${keys:1}" LC_ALL=C sort --ignore-case | while read -r; do
echo "${list[$REPLY]}"
done
yes=""
list=()
keys=""
echo "$line"
else
echo "$line"
fi
done <tokens.xml | sponge tokens.xml
* update version
* Add UNF tokens
*Adds 7 new tokens and art line for 4 reprints
*Only adds art for the front of Contortionist since the back is probably not useful in digital space
* fixes
* update version
Co-authored-by: ebbit1q <ebbit1q@gmail.com>
* Add DMC Tokens
*Adds 2 new tokens and art for 10 reprinted tokens
*Removes several unneeded empty tags
*Adds '0' to empty cmc tags (seems to be the prevailing pattern)
*Fix typo in pirate token
* corrections
we don't add additional count=x relations for on cast triggers
names have to be unique across all datasets, take care with named tokens
changed some set tags
* update version
Co-authored-by: ebbit1q <ebbit1q@gmail.com>
* Add Tokens from DMU
*Adds entries for 12 new tokens and art lines for 14 reprinted tokens
*Replaces Sand Warrior token art from blog with official print.
* update version
Co-authored-by: ebbit1q <ebbit1q@gmail.com>
* Organizes the horde cards into their three challenge decks (FTH, BTH, DAG)
* Organizes the Hero cards and equipment into their three Hero's Path sets (HP1,HP2,HP3), as per Scryfall
* Puts Garruk the Slayer in PPC1 instead of M15, as per Scryfall
* Updates all URLs to Scryfall large
* Add VOC and UMA Tokens
* Replaces several fanmade tokens with official prints from VOC or UMA while adding the rest of the tokens from those sets
*Moves Unicorn Token out of the Emblem section and up into the Tokens section
*Moves Zariel Emblem to alphabetize
* update version
Co-authored-by: ebbit1q <ebbit1q@gmail.com>
* Adds Un-Set Tokens
*Adds novel tokens from UND, UST and UGL (UNH has no tokens on scryfall) to go with their related cards
--Acorn Stash, Beeble, Brainiac, Dragon (Gold), Giant Teddy Bear, Faerie Spy, Rogue (w/ Menace), Storm Crow, Sheep (2/2)
--Dragon and Giant Teddy Bear are Gold and Pink, respectively, so I have left them as colorless (in line with scryfall) with a comment in case someone is curious about them in the future
*Adds new art for Construct, Gnome Goat, Goblin, Pegasus, Soldier, Squirrel, and Zombie to their existing entries
--In the case of Gnome, I have replaced the gnome token art with this one since it seemed to be a homemade placeholder. Happy to revert it if y'all prefer a black bordered token for the main art or if I misjudged its officialness
* Apply suggestions from code review
Co-authored-by: ebbit1q <ebbit1q@gmail.com>
* Update tokens.xml
* Address Second Round of Comments
*Changed 'card' to 'token' in Dragon Token and Giant Teddy Bear Token text.
*Moved Acorn Stash to be just above Energy Reserve (the Counter holder tokens seem to be alphabetized) and changed its type and Maintype to 'Counter'.
* Add exclude to Acorn Stash
That seems to be the tradition for any card listed under a Counter-holder type token.
* update version
Co-authored-by: ebbit1q <ebbit1q@gmail.com>
* De-Gather all Remaining Links
*Updates all token links (including emblems) still using Gatherer links to Scryfall Large links
--Links updated algorithmically; see pull request for algorithms
* update version
Co-authored-by: ebbit1q <ebbit1q@gmail.com>
* search for unused relations
reverse-related is assumed to only be used for external references to
the xml
related tags should be used for internal links to make this easier and
to avoid certain errors eg the Phyrexian Insect here
the following lazy bash has been used to find these:
\#!/bin/bash
relationrx='<reverse-related([^>]*)>([^<]*)</reverse-related>'
while read -r line; do
if [[ $line =~ $relationrx ]]; then
name="${BASH_REMATCH[2]}"
#args="${BASH_REMATCH[1]}"
if ! grep -F "$name" "$HOME/.local/share/Cockatrice/Cockatrice/cards.xml" -q; then
echo "$name"
fi
fi
done <tokens.xml
the following relations are affected:
Domri, Chaos Bringer (Emblem) is related internally, moved
Ajani, Adversary of Tyrants (Emblem) is related internally, moved
Chief Jim Hopper became Sophina, Spearsage Deserter, moved
Max, the Daredevil became Elmar, Ulvenwald Informant, moved
Will the Wise became Wernog, Rider's Chaplain, moved
"Big Boy Forest Crusher" was a spoiler placeholder, deleted
"Destoroyah, Perfect Lifeform" is called Everquill Phoenix, deleted
"What's Kraken" was a spoiler placeholder, deleted
Liliana, the Last Hope (Emblem) is related internally, moved
Insect Token has been renamed to Phyrexian Insect token before and had its Poison Counter relationship lost, moved
`Snake Token ` is related internally, moved
Obsessed Astronomer was probably a spoiler placeholder?, deleted
"Obosh, With The Leggies" was a spoiler placeholder, deleted
"Gigan, Cyberclaw Terror" is called Gyruda, Doom of Depths, deleted
* sort all reverse-related tags
less lazy script but still bash:
\#!/bin/bash
tag="reverse-related"
relationrx="<$tag([^>]*)>([^<]*)</$tag>"
numberrx='[0-9]+'
declare -A list # associative array
while IFS= read -r line; do
if [[ $line =~ $relationrx ]]; then
yes=1
name="${BASH_REMATCH[2]}"
args="${BASH_REMATCH[1]}"
if [[ $args =~ $numberrx ]]; then
args="$(printf "%03d" "${BASH_REMATCH[0]}")$args"
fi
list[ "$name$args"]="$line"
keys+="
$name$args"
elif [[ $yes ]]; then
# LC_ALL=C determines the sort behavior!
<<<"${keys:1}" LC_ALL=C sort --ignore-case | while read -r key; do
echo "${list[ $key]}"
done
yes=""
list=()
keys=""
echo "$line"
else
echo "$line"
fi
done <tokens.xml | sponge tokens.xml
* remove duplicate entry
this also needed a script, because why not:
\#!/bin/bash
while IFS= read -r line; do
if [[ $line == "$last" ]]; then
echo "$line"
fi
last="$line"
done <tokens.xml
* update version
* Update multiple-art token links to Scryfall
*Manually updated tokens with multiple printings in the same set from Gatherer to Scryfall as per https://github.com/Cockatrice/Magic-Token/issues/149
--Also did a blue Thopter (C18) and Copy (SNC) since they were easy to locate while looking
*Moved */* Zombie Token (EMN) from the 2/2 block to the */* block (hopefully it has the right priority)
* Removed duplicate token art
* Re-add duplicates
*Reverses previous commit removing duplicates (and replaces a gatherer link for some knights with multiple artwork that I missed before)
*Replaces gatherer art for 'Phyrexian' tokens, UST double tokens (backs only), Morph, Manifest, the State cards (The Initiative, Foretell, etc), Companion, and Copy with Scryfall large links (and also a plant because it was flagged by my script for some unknown reason)
* update version
Co-authored-by: ebbit1q <ebbit1q@gmail.com>
* Move MH2 Construct Token image to Proper Card
*Move MH2 Construct Token to the 0/0 Construct card block as that one is a 0/0 not a 6/12
--Link is now a scryfall large as per https://github.com/Cockatrice/Magic-Token/issues/149
*Changed two 'The' to 'the' to be in line with Oracle text (Tuktuk the Returned and Negan, the Cold-Blooded)
* update version
Co-authored-by: ebbit1q <ebbit1q@gmail.com>
* Modernize Custom Tokens and Add 2 More
*Updates custom tokens created by Broken Visage, Wall of Kelp, and Jungle Patrol (previously added in https://github.com/Cockatrice/Magic-Token/pull/156) to more modern card frames and (likely) higher quality images.
*Adds token art for the Wolves of the Hunt token created by Master of the Hunt and the Unicorn Token created by Blessed Sanctuary as asked for in https://github.com/Cockatrice/Magic-Token/issues/85. Supersedes the Unicorn token proposed in https://github.com/Cockatrice/Magic-Token/pull/155 as the card frame is more modern and the image should be higher quality.
* Update tokens.xml
* Public Links
Made the repo I have the images in public and re-added the links just in case they changed.
* update version
Co-authored-by: ebbit1q <ebbit1q@gmail.com>
* move book of exalted deeds token to the white angel entry
add a comment, maybe it helps
* abcdefghijklmnopqrstuvwxyz
* remove comment
* update version to 20220611
Co-authored-by: github-actions <github-actions@github.com>
* Add art for 3 missing tokens
Add custom art tokens for Broken Visage, Wall of Kelp, and Jungle Patrol.
* update version
Co-authored-by: ebbit1q <ebbit1q@gmail.com>