Compare commits

..

286 Commits

Author SHA1 Message Date
github-actions
6cb896878f Update version to 20260307
Some checks failed
Picture Health / Check image links (push) Has been cancelled
Update version on tokens.xml changes / update_version (push) Has been cancelled
Image URLs / Update links (push) Has been cancelled
Bump triggered by commit de2fcd79fa
2026-03-07 02:58:35 +00:00
SlightlyCircuitous
de2fcd79fa
Add TMT and TMC tokens (#354) 2026-03-07 03:58:28 +01:00
github-actions
a593821c44 Update version to 20260215d
Some checks failed
Picture Health / Check image links (push) Has been cancelled
Update version on tokens.xml changes / update_version (push) Has been cancelled
Bump triggered by commit fcbf92a759
2026-02-15 13:33:19 +00:00
Prem-Sinha
fcbf92a759
Add unique arts for FIN tokens (Hero, Wizard, Bird) (#351)
* Add unique printings for Hero token (+7) and Wizard token (+1)

* Add unique art for Bird token (+1)

* fix indentation
2026-02-15 14:33:12 +01:00
github-actions
2d1dfa72d3 Update version to 20260215c
Bump triggered by commit 63f74cb0c3
2026-02-15 10:49:23 +00:00
SlightlyCircuitous
63f74cb0c3
Add missing Day/Night reverse-relations from VOW, MID, and YMID (#353) 2026-02-15 11:49:16 +01:00
github-actions
7ee51750fc Update version to 20260215b
Bump triggered by commit 445f2e3f06
2026-02-15 09:28:15 +00:00
SlightlyCircuitous
445f2e3f06
Add Garland, Royal Kidnapper to the Monarch Entry (#348) 2026-02-15 10:28:09 +01:00
github-actions
1fe94adf84 Update version to 20260215
Bump triggered by commit d200e25935
2026-02-15 09:26:23 +00:00
SlightlyCircuitous
d200e25935
Add SLD Token Printings (#347)
* Add SLD Tokens

* sort by release date

note that information on when each drop happened isn't easy to get, I
chose to simply use the first release of SLD: 2019-12-02

now that we have added the uuid for every card to the xml we could also
decide to sort the set list by when that specific version was released
by requesting the "released_at" field from scryfall's api, this is more
effort than it is worth imo and I think it's nice to simply have a
consistent sorting for sets across entries

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2026-02-15 10:26:15 +01:00
github-actions
56ea368bdb Update version to 20260122c
Some checks failed
Picture Health / Check image links (push) Has been cancelled
Update version on tokens.xml changes / update_version (push) Has been cancelled
Image URLs / Update links (push) Has been cancelled
Bump triggered by commit e203c9d2b5
2026-01-22 20:58:03 +00:00
github-actions[bot]
e203c9d2b5
Update image links (#345) 2026-01-22 21:57:56 +01:00
github-actions
b9c9a87de4 Update version to 20260122b
Bump triggered by commit 0d3cfae7ff
2026-01-22 18:40:02 +00:00
SlightlyCircuitous
0d3cfae7ff
Add ECL and ECC tokens (#346)
* Add ECL and ECC tokens

* remove space

* fix typo

* sort

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2026-01-22 19:39:53 +01:00
github-actions
739e66e110 Update version to 20260122
Bump triggered by commit 3a3b5f5600
2026-01-22 16:03:03 +00:00
SlightlyCircuitous
3a3b5f5600
Add UUIDs to the Tokens File (#340)
* Add (most) UUIDs to tokens file

* Fix quotes and attribute

* fix UTF in header

* fix comments

* Use Scryfall UUIDs uniformly

* Add sequential uuids to tokens with art but no Scryfall URL

* Add some complexity to sequential uuids

* give airbend an arbitrary UUID

* Use sha256 hash for made up uuid

* Remove made up UUIDs
2026-01-22 17:02:54 +01:00
github-actions
5030e56cb5 Update version to 20260111b
Bump triggered by commit e81f9fa565
2026-01-11 14:09:13 +00:00
tooomm
e81f9fa565 Revert "Update image links (#316)"
This reverts commit 5c763f11f0.
2026-01-11 15:08:58 +01:00
github-actions
8f9adfc495 Update version to 20260111
Bump triggered by commit 5c763f11f0
2026-01-11 13:45:14 +00:00
github-actions[bot]
5c763f11f0
Update image links (#316)
Co-authored-by: github-actions <github-actions@github.com>
2026-01-11 14:45:07 +01:00
github-actions
f9c8e0e1c3 Update version to 20260109
Bump triggered by commit a7e1070587
2026-01-09 01:11:22 +00:00
SlightlyCircuitous
a7e1070587
Add Goblin token relation for Siege-Gang Lieutenant (#344) 2026-01-09 02:11:14 +01:00
github-actions
5fa59474b7 Update version to 20251229
Bump triggered by commit 041207a347
2025-12-29 16:41:40 +00:00
SlightlyCircuitous
041207a347
Add reminder card for Airbend (#343) 2025-12-29 17:41:34 +01:00
dependabot[bot]
e57b24391c
Bump actions/cache from 4 to 5 (#341)
Bumps [actions/cache](https://github.com/actions/cache) from 4 to 5.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-29 17:40:33 +01:00
dependabot[bot]
c2029ad871
Bump peter-evans/create-pull-request from 7 to 8 (#342)
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 7 to 8.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v7...v8)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-version: '8'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-29 17:40:16 +01:00
dependabot[bot]
38c3ea136d
Bump actions/checkout from 5 to 6 (#339)
Some checks failed
Picture Health / Check image links (push) Has been cancelled
Image URLs / Update links (push) Has been cancelled
2025-11-24 19:40:21 +01:00
github-actions
7b0b79f268 Update version to 20251117
Some checks failed
Picture Health / Check image links (push) Has been cancelled
Update version on tokens.xml changes / update_version (push) Has been cancelled
Bump triggered by commit 192a6ef65b
2025-11-17 15:14:59 +00:00
SlightlyCircuitous
192a6ef65b
Add On an Adventure relations to FIN/FIC cards (#338)
* Add On An Adventure relations to FIN/FIC cards

* sort

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2025-11-17 16:14:51 +01:00
github-actions
31ee92a458 Update version to 20251116b
Some checks are pending
Picture Health / Check image links (push) Waiting to run
Update version on tokens.xml changes / update_version (push) Waiting to run
Bump triggered by commit afd8a457df
2025-11-16 13:55:47 +00:00
SlightlyCircuitous
afd8a457df
Add TLA and TLE token relations (#336)
* Add TLA and TLE token relations

* sort

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2025-11-16 14:55:39 +01:00
github-actions
2c089f447f Update version to 20251116
Bump triggered by commit 739c53db22
2025-11-16 13:23:50 +00:00
SlightlyCircuitous
739c53db22
Add Cordyceps token from SLD (#337) 2025-11-16 14:23:44 +01:00
github-actions
3a615a5150 Update version to 20250928b
Some checks failed
Picture Health / Check image links (push) Has been cancelled
Update version on tokens.xml changes / update_version (push) Has been cancelled
Image URLs / Update links (push) Has been cancelled
Bump triggered by commit 8e36b80a07
2025-09-28 17:55:11 +00:00
SlightlyCircuitous
8e36b80a07
Add reminder token for warped cards (#333)
* Add reminder token for warped cards

* Add excludes to cards that make other tokens

* No need for parens

* Use direct image link

* sort

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2025-09-28 19:55:05 +02:00
github-actions
8a1c5edff1 Update version to 20250928
Bump triggered by commit 83ed31dedd
2025-09-28 12:13:36 +00:00
SlightlyCircuitous
83ed31dedd
Correct oracle text on certain cards (#334) 2025-09-28 14:13:13 +02:00
github-actions
6f7c0ce3a6 Update version to 20250922
Some checks failed
Picture Health / Check image links (push) Has been cancelled
Update version on tokens.xml changes / update_version (push) Has been cancelled
Bump triggered by commit c32eebe48e
2025-09-22 09:12:11 +00:00
SlightlyCircuitous
c32eebe48e
Update oracle text with pronoun and target errata (#332) 2025-09-22 11:12:02 +02:00
github-actions
d5d87219b8 Update version to 20250919c
Some checks failed
Picture Health / Check image links (push) Has been cancelled
Update version on tokens.xml changes / update_version (push) Has been cancelled
Bump triggered by commit 57ad272560
2025-09-19 21:38:04 +00:00
SlightlyCircuitous
57ad272560
Add missing words to oracle text (#331) 2025-09-19 23:37:58 +02:00
github-actions
8fd18aa081 Update version to 20250919b
Bump triggered by commit b8d38ac90c
2025-09-19 21:37:22 +00:00
SlightlyCircuitous
b8d38ac90c
Add missing legendary text (#330) 2025-09-19 23:37:15 +02:00
github-actions
d33f642973 Update version to 20250919
Bump triggered by commit e0db15f3e2
2025-09-19 21:35:36 +00:00
SlightlyCircuitous
e0db15f3e2
Correct TFTH oracle text (#329) 2025-09-19 23:35:26 +02:00
github-actions
0259e75b22 Update version to 20250918c
Some checks are pending
Picture Health / Check image links (push) Waiting to run
Update version on tokens.xml changes / update_version (push) Waiting to run
Bump triggered by commit ea08838a4e
2025-09-18 19:58:58 +00:00
SlightlyCircuitous
ea08838a4e
Add missing curly braces to mana and tap symbols (#328) 2025-09-18 21:58:51 +02:00
github-actions
ba2b95676a Update version to 20250918b
Bump triggered by commit 685818f394
2025-09-18 19:58:17 +00:00
SlightlyCircuitous
685818f394
Give that boulder flying! (#327) 2025-09-18 21:58:10 +02:00
github-actions
f0ac15f3d7 Update version to 20250918
Bump triggered by commit f02baa2b96
2025-09-18 19:57:01 +00:00
SlightlyCircuitous
f02baa2b96
Fix typos in oracle text (#326)
* Fix typos in oracle text

* One more
2025-09-18 21:56:55 +02:00
github-actions
3250c5d245 Update version to 20250912c
Some checks failed
Picture Health / Check image links (push) Has been cancelled
Update version on tokens.xml changes / update_version (push) Has been cancelled
Image URLs / Update links (push) Has been cancelled
Bump triggered by commit 848edb9d29
2025-09-12 21:00:20 +00:00
SlightlyCircuitous
848edb9d29
Fix CLB Ox color (#323) 2025-09-12 23:00:13 +02:00
github-actions
1fcbdd8ce2 Update version to 20250912b
Bump triggered by commit 482da119b3
2025-09-12 20:59:40 +00:00
SlightlyCircuitous
482da119b3
Fix VOW */* Zombie color (#324) 2025-09-12 22:59:28 +02:00
github-actions
60d55aad21 Update version to 20250912
Bump triggered by commit 6caed9d976
2025-09-12 20:58:46 +00:00
SlightlyCircuitous
6caed9d976
Add missing pt line to BRO Spirit (#325) 2025-09-12 22:58:39 +02:00
github-actions
e87fb25abc Update version to 20250911
Some checks are pending
Picture Health / Check image links (push) Waiting to run
Update version on tokens.xml changes / update_version (push) Waiting to run
Bump triggered by commit 921926c1a1
2025-09-11 21:48:40 +00:00
SlightlyCircuitous
921926c1a1
Update certain DMU tokens to match set symbol (#322) 2025-09-11 23:48:33 +02:00
github-actions
26b21bb048 Update version to 20250910c
Some checks failed
Picture Health / Check image links (push) Has been cancelled
Update version on tokens.xml changes / update_version (push) Has been cancelled
Bump triggered by commit 4134cf11d9
2025-09-10 20:15:40 +00:00
SlightlyCircuitous
4134cf11d9
Fix set code for Ragavan token (#321)
* Fix set codes for Ragavan token and DMU Insect token

* Revert Insect set code change
2025-09-10 22:15:33 +02:00
github-actions
f064e1dc8c Update version to 20250910b
Some checks are pending
Picture Health / Check image links (push) Waiting to run
Update version on tokens.xml changes / update_version (push) Waiting to run
Bump triggered by commit 6748cbc534
2025-09-10 11:50:34 +00:00
SlightlyCircuitous
6748cbc534
Revise Arlinn Kord reverse-relation (#320) 2025-09-10 13:50:24 +02:00
github-actions
4bda2cf57e Update version to 20250910
Bump triggered by commit 7d04d7fb4b
2025-09-10 11:47:06 +00:00
SlightlyCircuitous
7d04d7fb4b
Fix Bounty Tokens (#319) 2025-09-10 13:46:59 +02:00
github-actions
6b062afc99 Update version to 20250909b
Some checks are pending
Picture Health / Check image links (push) Waiting to run
Update version on tokens.xml changes / update_version (push) Waiting to run
Bump triggered by commit ecc1713d2c
2025-09-09 23:26:55 +00:00
SlightlyCircuitous
ecc1713d2c
Add SPM and SPE tokens (#318)
* Add SPM and SPE tokens

* sort

* update version

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2025-09-10 01:26:47 +02:00
dependabot[bot]
b559e493bd
Bump actions/checkout from 4 to 5 (#317)
Some checks failed
Picture Health / Check image links (push) Has been cancelled
Update version on tokens.xml changes / update_version (push) Has been cancelled
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-22 19:20:12 +02:00
github-actions
6dd15fee0b Update version to 20250822
Bump triggered by commit 908e370dd4
2025-08-22 16:49:49 +00:00
tooomm
908e370dd4
Revert #314 2025-08-22 18:49:40 +02:00
github-actions
b16be347a8 Update version to 20250801e
Some checks failed
Picture Health / Check image links (push) Has been cancelled
Update version on tokens.xml changes / update_version (push) Has been cancelled
Image URLs / Update links (push) Has been cancelled
Bump triggered by commit aa71e2e906
2025-08-01 09:53:30 +00:00
SlightlyCircuitous
aa71e2e906
Add missing Job Select token relations (#315)
* Add missing Job Select token relations

* sort

* update version

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2025-08-01 11:53:23 +02:00
github-actions
2f74f5a6ff Update version to 20250801c
Bump triggered by commit 45bb857f63
2025-08-01 09:50:02 +00:00
SlightlyCircuitous
45bb857f63
Add EOE and EOC tokens (#313)
* Add EOE and EOC tokens

Adds 5 new tokens and 19 reprints

* sort

* update version

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2025-08-01 11:49:55 +02:00
github-actions
6805bf2198 Update version to 20250801
Bump triggered by commit 0e02452664
2025-08-01 09:43:30 +00:00
SlightlyCircuitous
0e02452664
Update Schema URI to https (#314) 2025-08-01 11:43:23 +02:00
github-actions
9b2169bec0 Update version to 20250717
Some checks failed
Picture Health / Check image links (push) Has been cancelled
Update version on tokens.xml changes / update_version (push) Has been cancelled
Bump triggered by commit 437672b234
2025-07-17 17:51:07 +00:00
github-actions[bot]
437672b234
Update image links (#312)
Co-authored-by: github-actions <github-actions@github.com>
2025-07-17 19:51:01 +02:00
tooomm
4d1bb79e18
Run link checker when submitting PR reviews
Needed to trigger a check for automatically created PR's from other workflows (e.g. link updater).
2025-07-17 19:48:12 +02:00
tooomm
c9e635da50
Exclude will happen in the tool starting next release
Some checks failed
Picture Health / Check image links (push) Has been cancelled
Image URLs / Update links (push) Has been cancelled
2025-06-19 18:25:50 +02:00
tooomm
9ec72a63c6 Prettify link check summary
Some checks failed
Picture Health / Check image links (push) Has been cancelled
Update version on tokens.xml changes / update_version (push) Has been cancelled
2025-06-15 16:23:02 +02:00
github-actions
8e95c26356 Update version to 20250615
Bump triggered by commit 8ebe3ba0c1
2025-06-15 13:23:27 +00:00
github-actions[bot]
8ebe3ba0c1
Update image links (#311)
Co-authored-by: github-actions <github-actions@github.com>
2025-06-15 15:23:21 +02:00
github-actions
219a99e008 Update version to 20250614b
Bump triggered by commit 81b8d4607b
2025-06-14 16:52:14 +00:00
tooomm
81b8d4607b
Remove non-existing WOC token art
Linking #303 and #305
2025-06-14 18:52:07 +02:00
github-actions
67305374e4 Update version to 20250614
Bump triggered by commit d3064e07d6
2025-06-14 16:46:17 +00:00
SlightlyCircuitous
d3064e07d6
Add FIN and FIC tokens (#305) 2025-06-14 18:46:09 +02:00
tooomm
1a44ac3b22
Update and rename updateversion.yml to update_version.yml 2025-06-14 18:37:33 +02:00
tooomm
32893b6ef5
Rework automated version bumps (#310) 2025-06-09 12:29:01 +02:00
tooomm
3dfb1dc049
bump version (#309)
* version bump

* version bump
2025-06-09 10:43:55 +02:00
Zach H
e90589b373
Merge pull request #308 from Cockatrice/tooomm-patch-1
Remove non-printed WOC token
2025-06-09 04:32:35 +02:00
tooomm
35fba691ba
remove non-printed WOC token
No token art available
2025-06-08 14:36:30 +02:00
tooomm
848e13a416
Remove non-existing WOC art (#307)
* Remove non-existing WOC art
2025-06-02 22:44:37 +02:00
github-actions[bot]
e7f23650ae
Update image links (#300)
* Update image links

* date

* date

---------

Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: tooomm <tooomm@users.noreply.github.com>
2025-05-31 22:34:29 +02:00
SlightlyCircuitous
1686e08f9b
Rotate CRANK! marker 180° (#304)
* Rotate CRANK! marker 180°

* date

* date

---------

Co-authored-by: tooomm <tooomm@users.noreply.github.com>
2025-05-31 22:28:23 +02:00
SlightlyCircuitous
aaaa441486
Remove dead Scryfall links for unprinted WOC tokens (#303)
* Remove dead Scryfall links

* also remove WOC elephant token for same reason

* date

* date

---------

Co-authored-by: tooomm <tooomm@users.noreply.github.com>
2025-05-31 22:24:05 +02:00
ebbit1q
9f81570bad make crank token vertical
Some checks failed
Picture Health / Check image links (push) Has been cancelled
Image URLs / Update links (push) Has been cancelled
improve #302
2025-05-18 18:03:28 +02:00
SlightlyCircuitous
f0cfabe15a
Add CRANK! state token (#302)
* Add CRANK! state token

* Add to reminder text

* Add Clock of DOOM and play card tapped for readability

* update version

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2025-05-18 17:59:38 +02:00
SlightlyCircuitous
c498726503 Add missing Energy Reserve reverse-relations (#299)
Some checks failed
Picture Health / Check image links (push) Has been cancelled
Image URLs / Update links (push) Has been cancelled
* Add missing Energy Reserve reverse-relations

* sort

* update version

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2025-05-01 19:32:12 +02:00
SlightlyCircuitous
9ba8eee958
Fix Start Your Engines!/Max Speed token (#297) 2025-05-01 19:14:45 +02:00
tooomm
8f5c8b1878
CI: Show useful data about token URLs (#192)
Some checks failed
Picture Health / Check image links (push) Has been cancelled
2025-04-23 21:13:32 +02:00
SlightlyCircuitous
6d0fab910c
Add TDM and TDC tokens (#298)
Some checks failed
Picture Health / Check image links (push) Has been cancelled
Image URLs / Update links (push) Has been cancelled
* Add TDM and TDC tokens

* abc

* update version

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2025-04-05 09:23:05 +02:00
github-actions[bot]
d3af97a464
Update image links (#296)
Some checks failed
Picture Health / Check image links (push) Has been cancelled
* Update image links

* update version to 20250322

---------

Co-authored-by: github-actions <github-actions@github.com>
2025-03-22 16:08:29 +01:00
SlightlyCircuitous
af577d5560
Fix Teferi, Who Slows the Sunset Emblem (#295)
Some checks failed
Picture Health / Check image links (push) Has been cancelled
Image URLs / Update links (push) Has been cancelled
* Fix Teferi, Who Slows the Sunset Emblem

* version

---------

Co-authored-by: tooomm <tooomm@users.noreply.github.com>
2025-02-28 10:57:45 +01:00
SlightlyCircuitous
e9fac70938
Add MTG:Arena images to J25 tokens (#289)
Some checks failed
Picture Health / Check image links (push) Has been cancelled
* Add MTG:Arena images to J25 tokens

* update version

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2025-02-18 00:07:33 +01:00
SlightlyCircuitous
af3bef59c6
Separate DFT pilot token (#294)
* Separate DFT pilot token

* update version

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2025-02-18 00:02:09 +01:00
github-actions[bot]
05df7a59dd
Update image links (#293)
Some checks failed
Picture Health / Check image links (push) Has been cancelled
2025-02-15 07:04:13 +01:00
SlightlyCircuitous
239a647e7f
Add DFT and DRC Tokens (#291)
Some checks failed
Picture Health / Check image links (push) Waiting to run
Image URLs / Update links (push) Has been cancelled
* Add DFT and DRC Tokens

* fixes

* update version

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2025-02-15 02:14:49 +01:00
github-actions[bot]
418cb4a577
Update image links (#290)
Some checks failed
Picture Health / Check image links (push) Has been cancelled
2025-01-16 00:21:09 +01:00
github-actions[bot]
e2d2ce39ea
Update image links (#282)
Some checks failed
Picture Health / Check image links (push) Has been cancelled
Image URLs / Update links (push) Has been cancelled
2024-12-15 10:00:53 +01:00
SlightlyCircuitous
34c67e792c
Add J25 Token Relations (#287)
Some checks failed
Picture Health / Check image links (push) Has been cancelled
Image URLs / Update links (push) Has been cancelled
* Add J25 Token Relations

* update version

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2024-11-13 18:51:21 +01:00
SlightlyCircuitous
575e2e2860
Add Iron Man token relation (#285)
Some checks failed
Picture Health / Check image links (push) Has been cancelled
* Add Iron Man token relation

* update version

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2024-11-11 17:31:42 +01:00
SlightlyCircuitous
564835a7ae
Add FDN Tokens (#284)
Some checks are pending
Picture Health / Check image links (push) Waiting to run
* Add FDN Tokens

* Add color to Ninja and Scion of the Deep

* Use related instead of reverse-related for Kaito emblem

* update version

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2024-11-10 22:53:09 +01:00
tooomm
121948b338
Update to v2 action
Some checks failed
Picture Health / Check image links (push) Has been cancelled
Image URLs / Update links (push) Has been cancelled
fail on error is now the default
2024-10-12 11:43:07 +02:00
tooomm
28bd50b64c
CI: Fix action output
See https://github.com/Cockatrice/Cockatrice/pull/5124
2024-10-07 20:28:46 +02:00
dependabot[bot]
01075f3a0c
Bump peter-evans/create-pull-request from 6 to 7 (#281)
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 6 to 7.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v6...v7)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-07 20:26:10 +02:00
Marcelo Costa
86940b005e
DSK/DSC Tokens (#283)
* DSK/DSC Tokens

* Land type on Everywhere Token

Co-authored-by: ebbit1q <ebbit1q@gmail.com>

* fixing "

* remove duplicate entries, sort

* update version

* revert root tag properties order to original

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2024-09-25 22:55:09 +02:00
github-actions[bot]
c7c9ec3009
Update image links (#279)
* Update image links

* update version to 20240831

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-08-31 21:01:00 +02:00
Zach H
d0ddf18acb
Merge pull request #280 from Cockatrice/tooomm-patch-3
Add missing relation for Ral, Crackling Wit
2024-08-29 15:38:27 -07:00
tooomm
52a667b3b7
Add missing relation for Ral, Crackling Wit 2024-08-29 19:32:51 +02:00
SlightlyCircuitous
f06eadf45c
Add cmc and manacost to 40K Squad tokens (#278)
* Add cmc and manacost to 40K squad tokens

* update version

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2024-07-29 22:48:35 +02:00
SlightlyCircuitous
638a4e21e7
Remove duplicate elemental token entry (#277)
* Remove duplicate elemental token entry

* Don't edit following entires

* Revert Overzealous Reversion

Added back too many spaces. oops.

* update version

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2024-07-28 13:39:07 +02:00
SlightlyCircuitous
625139b109
Add BLB and BLC Tokens (#276)
* Add BLB and BLC Tokens

* sort

* update version

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2024-07-26 14:32:23 +02:00
ebbit1q
462af4cbbb
fix the undercity using the wrong side (#275)
* fix the undercity using the wrong side

* update version to 20240720

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-07-20 15:08:56 +02:00
github-actions[bot]
93e03fc0eb
Update image links (#273)
* Update image links

* update version to 20240715

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-07-15 19:33:13 +02:00
SlightlyCircuitous
3f0b9a6e25
Add ACR tokens (#272)
* Add ACR tokens

Adds token entries for 4 new tokens
Adds set lines and reverse-relations for 4 existing tokens

* Add ACR "A Mysterious Creature"

Was not on Scryfall during the initial PR drafting

* update version

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2024-07-10 02:04:54 +02:00
SlightlyCircuitous
d857c53b0a
Add token relations to unique print cards in SLD/SLX (#271)
* Add token relations to firsted printed cards in SLD

- Reverse-relate tokens to Applejack; Pinkie Pie; Lara Croft, Tomb Raider; and Havengul Laboratory

* sort

* update version

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2024-06-25 00:39:25 +02:00
SlightlyCircuitous
e5570c0448
Update Keywords post MH3 (#270)
* Update Keywords post MH3

- Change one instance of 'totem armor' to 'umbra armor'

* update version

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2024-06-16 15:18:57 +02:00
SlightlyCircuitous
59e63bb760
Add MH3 and M3C Tokens (#269)
* Update tokens.xml

Add Modern Horizons and Modern Horizon's Commander tokens
Update Shapeshifter reminder text to match new printing

* Reverse relate Ocelot Pride to City's Blesssing

* Exclude Ocelot Pride

* Fix Token Relations on Transform cards

I forgot how the nomenclature worked for a minute there

* fix tokens that are copies of real cards

* fix tokens.xml

* sort

* update version

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2024-06-16 15:17:05 +02:00
github-actions[bot]
5e27247b43
Update image links (#268) 2024-06-15 09:09:10 +02:00
ebbit1q
525fdbc3d6 update version 2024-04-14 01:42:38 +02:00
ebbit1q
9269679ecf fix sorting, relations and taken names 2024-04-14 01:41:55 +02:00
Zach H
64183aced6
Merge pull request #265 from SlightlyCircuitous/patch-1
Add OTC, OTJ, BIG Tokens
2024-04-10 00:19:43 -04:00
Zach H
e42d19e721
Merge pull request #267 from SlightlyCircuitous/patch-2
Fixes Issue: Misplaced Tokens and For Mirrodin! auto attach
2024-04-10 00:18:25 -04:00
SlightlyCircuitous
a24fbec07b
Fixes Issue: Misplaced Tokens and For Mirrodin! auto attach
* Adds `attach="attach"` to cards with For Mirradin! so they attach to their tokens properly
* Adds 3 sticker reverse-relations to their respective token entries
* Adds Edgin, Larcenous Lutenist and Forge, Neverwinter Charlatan reverse-relations to their respective tokens
* Adds reverse-relations from KHC and WHO to the Foretell entry
* Adds Fynn, the Fangbearer, Phyresis Outbreak, Norn's Decree, Ajani, Sleeper Agent Emblem reverse-relations to the Poison Counter entry
* Removes Mycosynth Fiend from the Poison Counter entry as it doesn't make poison counters
2024-04-08 00:28:34 -04:00
SlightlyCircuitous
8ac11cdeb1
Add OTC, OTJ, BIG Tokens
* Adds 26 new token entries across three sets.
* Adds set lines and reverse relations for 42 reprinted tokens
2024-04-06 11:33:09 -04:00
github-actions[bot]
afc416882e
Update image links (#261)
* Update image links

* update version to 20240327

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-03-27 22:46:14 +01:00
tooomm
2934391ec8
Remove Gitter Chat 2024-03-16 19:22:40 +01:00
Zach H
3157694184
Merge pull request #264 from SlightlyCircuitous/circuitous_use_environmental_files
Replace set-output in updateversion.yml
2024-03-13 14:39:29 -04:00
SlightlyCircuitous
3b135c4e35
Use double quotes 2024-03-09 19:10:44 -05:00
SlightlyCircuitous
ecb3b5f092
Replace set-output in python code 2024-03-09 18:48:11 -05:00
SlightlyCircuitous
1a138d00d8
Replace set-output with GITHUB_OUTPUT
Replaces all instances in echo commands
2024-03-05 16:15:36 -05:00
dependabot[bot]
39dd2ab15e
Bump peter-evans/create-pull-request from 5 to 6 (#263) 2024-03-04 18:56:26 +01:00
tooomm
096ceac80a
CI: Keep image links up to date (#259)
* move script

* add info

* add CI automation
2024-03-02 11:40:28 +01:00
SlightlyCircuitous
37060f024f
Add PIP Tokens (#260)
* Add PIP Tokens

- Adds 9 new token entries
- Adds set lines and reverse-related for 10 reprinted tokens

* Add missing Dad

* sort

* update version

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2024-03-01 18:08:57 +01:00
Basile Clement
0149a59692
Update token links to cards.scryfall.io (#209)
Fix #201. This changes the links from the old CND on c1.scryfall.com to
links to the new CDN on cards.scryfall.io.

The changes are automated: the refresh.py script can read a tokens.xml
file containing CDN picURLs of either version, and makes requests to the
Scryfall API to generate the most up-to-date URLs for each token.

The script can be run with:

  $ python3 refresh.py -i tokens.xml
  $ python3 refresh.py -i challenge_tokens.xml

This avoids using api.scryfall.com URLs for the tokens (which are
rate-limited) while still being able to update the file with new URLs by
running the script.
2024-02-17 16:38:30 +01:00
SlightlyCircuitous
cb66449845
Add picture to UNF Sketch token (#258)
* Add picture to UNF Sketch token

*Adds a "blank canvas" token frame to reflect the drawn nature of the token

*Adjusts the reminder text to focus on where the art should come from rather than replicating the exact effect wording from D00-DL, Caricaturist

* update version

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2024-02-05 18:57:39 +01:00
SlightlyCircuitous
605b2f15a2
Add PH22 token relations (#257)
* Add PH22 token relations

*Adds an entry for the Attendee token created by Svega, the Unconventional
*Reverse-relates Elusen, the Giving to an existing token
*Relates the Devil token made by Diabolical Salvation to the Treasure token that it makes

* update version

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2024-02-05 18:56:42 +01:00
tooomm
b2d086567e
increase cache time 2024-02-03 16:18:50 +01:00
SlightlyCircuitous
dccbca0dd1
Relate new CLU cards to exisiting tokens (#255)
* Related new CLU cards to exisiting tokens

Adds reverse-relations to 9 new cards released in CLU that make existing tokens

* Add CLU tokens with Investigate and Afterlife

Missed these as my Scryfall search wasn't broad enough the first time

* sort

* typo

* Simplify Covetous Elegy

as discussed in review

* Remove exclude

* update version

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2024-02-02 13:41:51 +01:00
SlightlyCircuitous
e060bbd6a4
Add MKM and MKC Tokens (#256)
* Add MKM and MKC Tokens

*Adds 9 new tokens
*Adds art lines for 39 reprinted tokens

* abcdefghijklmnopqrstuvwxyz

* update version

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2024-02-01 18:14:25 +01:00
dependabot[bot]
4246755bb6
Bump actions/cache from 3 to 4 (#254) 2024-01-22 19:28:07 +01:00
SlightlyCircuitous
65dd9fe4a2
Add missing reminder tokens (#253)
* Add missing reminder tokens

Adds a poison counter to Etali, Primal Sickness and a Monarch token to Starscream, Seeker Leader

* update version

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2024-01-17 12:54:29 +01:00
SlightlyCircuitous
73caa470ea
Adds Missing Clue Token to WHO cards (#251)
* Adds Missing Clue Token to WHO cards

Three cards (Rory Williams, Sally Sparrow, and Sarah Jane Smith) are capable of Investigating and were not reverse-related to the Clue token.

* update version

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2024-01-17 12:36:47 +01:00
Zach H
2e2b5c38e7
Merge pull request #248 from Cockatrice/fix_247
fix #247
2023-12-15 13:08:58 -05:00
ebbit1q
42aa45af66 fix #247 2023-12-15 12:52:11 +01:00
Zach H
4e5f6db3f5
Merge pull request #246 from SlightlyCircuitous/patch-1
Add picture to Knight Token
2023-12-09 00:51:09 -05:00
SlightlyCircuitous
d1f5ef88d9
Add picture to Knight Token
*Adds custom art for the Knight token made by Court of Embereth
2023-12-06 15:32:42 -05:00
SlightlyCircuitous
15dcb60bd9
Clean up elements (#244)
* Clean up elements

*Removes second cards element from tokens.xml
*Adds a few comments denoting different categories of reminder token.

* update version

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2023-11-12 10:59:54 +01:00
SlightlyCircuitous
204ec559d8
Add REX Tokens (#243)
* Add REX Tokens

*Adds two reprinted tokens and relates them to new cards in the set

* update version

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2023-11-05 12:33:18 +01:00
SlightlyCircuitous
410a91bd82
Add LCI and LCC Tokens (#242)
* Add LCI and LCC Tokens

*Adds 10 new tokens
*Adds 28 set lines for reprinted tokens
*Relates all new and reprinted tokens to new cards in LCI and LCC
*Adjusts Oracle text for tokens with new reminder text

* fixes

* Add Missing Paren

* update version

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2023-11-05 01:00:32 +01:00
Zach H
49132caca5
Merge pull request #225 from SlightlyCircuitous/circuitous-merge-challenge
Merge Theros Challenge Deck creatures into token.xml
2023-10-31 22:59:54 -04:00
Zach H
947fdc191e
Merge pull request #241 from Cockatrice/tooomm-ci_version_updater
CI: Small change in version update action
2023-10-31 22:56:51 -04:00
Zach H
59988113f5
Merge pull request #240 from Cockatrice/dependabot/github_actions/actions/checkout-4
Bump actions/checkout from 2 to 4
2023-10-31 22:56:41 -04:00
tooomm
ce93b81ec4 version bump 2023-10-30 21:23:18 +01:00
tooomm
8c4f1f7646
wrap in own <cards> section 2023-10-30 21:09:39 +01:00
tooomm
441ba75304
Add comment 2023-10-29 11:56:40 +01:00
tooomm
30a868bf91
Merge branch 'master' into circuitous-merge-challenge 2023-10-29 11:50:30 +01:00
tooomm
17804764ea Update updateversion.yml 2023-10-28 19:39:18 +02:00
dependabot[bot]
33dddfaccd
Bump actions/checkout from 2 to 4
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-28 17:00:01 +00:00
tooomm
b8181c9464
Create dependabot.yml 2023-10-28 18:59:41 +02:00
SlightlyCircuitous
5c0fae6db2
Revise "x=1" and "x=0" to "x" (#239)
* Revise "x=1" and "x=0" to "x"

*Changes a few instances of `count="x=1"`and `count="x=0"` to `count="x"` for consistency in how `count` is handled.

* update version

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2023-10-09 18:32:48 +02:00
ebbit1q
b17e62a989 fixes to #238 2023-10-09 18:28:06 +02:00
Zach H
d3b3cab24d
Merge pull request #238 from SlightlyCircuitous/patch-1
Add WHO Tokens
2023-10-08 13:29:08 -04:00
SlightlyCircuitous
93fabd0297
Add WHO Tokens
*Adds entries for 16 new tokens and 2 reminder cards
*Adds art for 7 reprinted tokens
2023-10-08 11:27:18 -04:00
SlightlyCircuitous
79e1b61dde
Add WOE and WOC Tokens (#235)
* Add WOE and WOC Tokens

* Adds 12 new token entries
* Adds 21 set lines for new art for reprinted tokens

* fix names of adventure cards

* update version

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2023-08-31 16:56:52 +02:00
ebbit1q
013a775783
update tokens with new universe within names (#236)
* update tokens with new universe within names

* update version to 20230831

---------

Co-authored-by: github-actions <github-actions@github.com>
2023-08-31 16:07:21 +02:00
SlightlyCircuitous
f5f9e4eeb0
Add MAT Token Relations (#234)
* Add MAT Token Relations

*Adds token relations for Pia Nalaar, Consul of Revival and Rocco, Street Chef

* update version

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2023-08-18 09:37:46 +02:00
SlightlyCircuitous
0b6b093a1c
Add CMM Tokens (#233)
* Add CMM Tokens

*Adds entries for 8 new tokens
*Adds set lines for 69 reprints
*Splits entries for 3/1 R Elemental and 3/1 R Elemental with Haste and for 1/1 R Elemental and 1/1 R Elemental with Haste as WotC has decided to print those tokens with Haste again and not all the reverse-related cards make tokens with Haste
*Changes text for Chandra, Torch of Defiance to reflect new oracle text
*Changes reverse-related for Lightning Coils to count="x=5" since it should always make at least 5 tokens when it goes off

* sorting

* update version

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2023-08-07 13:16:18 +02:00
Zach H
c25b023747
Merge pull request #229 from SlightlyCircuitous/patch-1
Add ARC Scheme Tokens
2023-07-27 19:29:26 -04:00
tooomm
3438b24bd5
Fix treasure token name (#231)
* fix treasure token

* update version to 20230701

---------

Co-authored-by: github-actions <github-actions@github.com>
2023-07-01 15:16:13 +02:00
SlightlyCircuitous
dab8a27687
Add ARC Scheme Tokens
*Adds a 4/6 golem token and a 3/3 elemental token for The Iron Guardian Stirs and Evil Comes to Fruition, respectively
2023-06-21 20:50:25 -04:00
Zach H
49a23f1361
Merge pull request #228 from SlightlyCircuitous/patch-1
Add picture to J22 Zeppelin token
2023-06-20 23:06:06 -04:00
SlightlyCircuitous
65290d481b
Add picture to Zeppelin token
*Adds custom art for the Zeppelin vehicle token made by Lita, Mechanical Engineer
2023-06-20 16:14:31 -04:00
SlightlyCircuitous
5c421387e0
Add LTR and LTC Tokens (#227)
* Add LTR and LTC Tokens

*Adds entries for 5 new tokens and set lines for 5 reprints from LTR
*Adds entries for 5 new tokens and set lines for 10 reprints from LTC

* Change 'Tolkien' to 'Token'

* fixes

* update version

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2023-06-19 17:51:20 +02:00
SlightlyCircuitous
f7b5ebe82c
Change token file wording
Co-authored-by: tooomm <tooomm@users.noreply.github.com>
2023-05-31 14:42:37 -04:00
tooomm
5167e4e89d
Remove challenge_token file from CI check 2023-05-31 19:51:23 +02:00
SlightlyCircuitous
7e880863ce
Use new cards.scryfall.io links 2023-05-04 12:45:18 -04:00
SlightlyCircuitous
b1f189229a
Remove reference to challengetokens.xml
If challengetokens.xml is deleted, there is no reason to reference it or differentiate it from tokens.xml
2023-05-04 12:25:55 -04:00
SlightlyCircuitous
12e37ef8d3
Merge Challenge 'Tokens' into tokens.xml
All non-creature cards from the challenge decks are in cards.xml so it makes sense for the rest to be in here.
2023-05-04 12:22:40 -04:00
SlightlyCircuitous
c0cf131b7d
Delete challenge_tokens.xml 2023-05-04 12:20:08 -04:00
tooomm
451482d8f6
run only on xml changes 2023-05-01 17:47:31 +02:00
tooomm
99d37f4dd6
Update challenge token file to db v4 (#208) 2023-04-30 13:48:45 +02:00
SlightlyCircuitous
c8e55a0035
Fix Transforming Tokens (#224)
* Fix Transforming Tokens

*Adds attach="transform" to Phyrexian Incubator, Day, and Night to allow tokens to transform using the context menu

* Sort related on top

* sort

* update version

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2023-04-19 23:30:59 +02:00
SlightlyCircuitous
ee0e316fe3
Add MOC Tokens (#223)
* Add MOC Tokens

*Added entries for 3 new tokens
*Added set lines for 40 reprinted tokens
*Corrected several instances of "exlude"
*Excluded tokens from The Argent Etchings

* Remove excludes that don't do anything

See https://github.com/Cockatrice/Magic-Token/pull/222#issuecomment-1503739091

* Add missing token relations

Goro Goro and Satoru 
Slimefoot and Squee

* update version

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2023-04-13 20:25:48 +02:00
SlightlyCircuitous
c65cd01679
Add MOM Tokens (#222)
* 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>
2023-04-11 17:50:00 +02:00
Zach H
3f8566d63b
Merge pull request #219 from SlightlyCircuitous/patch-3
Add (Token) to Certain Token Names
2023-04-01 22:34:19 -04:00
SlightlyCircuitous
212e597d17
Merge branch 'Cockatrice:master' into patch-3 2023-04-01 10:47:51 -04:00
SlightlyCircuitous
7c64b2c3df
Add BRC Tokens (#213)
* 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>
2023-04-01 16:12:17 +02:00
SlightlyCircuitous
add4502925
Add image to J22 Pirate token (#217)
* Add image to J22 Pirate token

*Made in mtgdesign using public domain art

* update version

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2023-04-01 15:58:04 +02:00
tooomm
8b5f675a3c
Add Otharri, Suns' Glory to Experience Counter (#218)
Co-authored-by: SlightlyCircuitous <71394296+SlightlyCircuitous@users.noreply.github.com>
2023-04-01 15:25:20 +02:00
SlightlyCircuitous
92d4ef9801
Add image to banana token (#215)
* 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>
2023-04-01 14:58:06 +02:00
SlightlyCircuitous
e317aa255a
Add (Token) to certain token names
*Adds (Token) to tokens created by Squad, the Ornithopter token, and the Storm Crow token to be consistent with the rest of the file
2023-03-31 17:07:07 -04:00
tooomm
7fe56fbdf8
split cache action up (#205) 2023-03-31 17:53:16 +02:00
SlightlyCircuitous
bf8a88ccb0
Add Token Entries and Relations for Heroes of the Realm (#211)
* 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>
2023-03-31 17:47:24 +02:00
SlightlyCircuitous
6e1ce596bb
Move CLB Angel Warrior art to Proper Entry (#212)
Co-authored-by: tooomm <tooomm@users.noreply.github.com>
2023-03-26 16:14:04 +02:00
SlightlyCircuitous
f9ec0f4bde
Add Karn, Living Legacy emblem from Arena (#200)
* 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>
2023-03-18 23:34:40 +01:00
ebbit1q
7dafd41d28
set xsi to http instead of https (#206)
* 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>
2023-03-13 22:28:03 +01:00
SlightlyCircuitous
593d95ceff
Add J22 Tokens (#207)
* 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>
2023-03-12 01:12:34 +01:00
ebbit1q
6282826daf
add missing excludes for double entries (#203)
* 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>
2023-03-11 12:25:55 +01:00
SlightlyCircuitous
6824561b28
Add ONC Tokens (#198)
* 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>
2023-03-10 01:53:39 +01:00
SlightlyCircuitous
2ec8c81950
Add BRC cards to BRO token relations (#199)
* 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>
2023-03-10 01:25:17 +01:00
SlightlyCircuitous
cf9290cc02
Add ONE Tokens (#196)
* 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>
2023-02-08 22:51:17 +01:00
SlightlyCircuitous
a6a74cdc5b
Add DMR Tokens (#195)
* 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>
2023-01-30 23:52:37 +01:00
SlightlyCircuitous
7b8142318e
Correct Mordenkainen Emblem (#194)
* Correct Mordenkainen Emblem

* update version

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2023-01-28 23:59:22 +01:00
ebbit1q
015f65a133
add missing counter relations (#193)
* add missing counter relations

* update version to 20230127b

---------

Co-authored-by: github-actions <github-actions@github.com>
2023-01-27 23:00:42 +01:00
SlightlyCircuitous
86fd956aa1 Remove Parentheses Around Emblem Names (#188)
* Remove Parentheses Around Emblem Names

*Aligns emblem names with their names on Scryfall for consistency

* update version

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2023-01-27 22:57:57 +01:00
ebbit1q
7c1b4aca2e
change occult epiphany to use x (#191)
Co-authored-by: github-actions <github-actions@github.com>
2022-12-03 14:25:19 +01:00
tooomm
f3d956033d
Update check_links.yml (#189) 2022-11-30 03:27:06 +01:00
ebbit1q
d56eddda0c
sort sets and cards (#165)
* 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
2022-11-10 00:25:31 +01:00
SlightlyCircuitous
9afb95f720
Add BRO Tokens (#187)
* Add BRO Tokens

*Adds 6 new tokens and 1 new emblem
*Adds art lines for 4 reprints

* Add exclude to Urza's command

* Add Exclude to Ashnod, Flesh Mechanist

* Update tokens.xml

Co-authored-by: ebbit1q <ebbit1q@gmail.com>

* Add Saheeli to Thopter reverse-related

* Update tokens.xml

Co-authored-by: ebbit1q <ebbit1q@gmail.com>

* Update tokens.xml

Co-authored-by: ebbit1q <ebbit1q@gmail.com>

* Update tokens.xml

Co-authored-by: ebbit1q <ebbit1q@gmail.com>

* Update tokens.xml

Co-authored-by: ebbit1q <ebbit1q@gmail.com>

* Update tokens.xml

Co-authored-by: ebbit1q <ebbit1q@gmail.com>

* Update tokens.xml

Co-authored-by: ebbit1q <ebbit1q@gmail.com>

* update version

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2022-11-09 17:59:17 +01:00
SlightlyCircuitous
757b619c0c
Add BOT tokens (#186)
* Add BOT tokens

*Adds 2 new tokens

* Update tokens.xml

* update version

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2022-11-09 16:42:31 +01:00
SlightlyCircuitous
711dcec236
Add UNF tokens (#185)
* 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>
2022-11-09 16:32:06 +01:00
SlightlyCircuitous
328b73c20d
Add 40K Tokens (#183)
* Add 40K Tokens

*Adds 21 new token entries and set/reverse-related lines for 2 reprints
*Corrects Hazezon, Shaper of Sand's exclude from count="x" to count="x=2" to better reflect token creation logic

* Update tokens.xml

Co-authored-by: ebbit1q <ebbit1q@gmail.com>

* Update tokens.xml

Co-authored-by: ebbit1q <ebbit1q@gmail.com>

* update tokens

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2022-09-28 17:52:23 +02:00
SlightlyCircuitous
af4f9b2af0
Add DMC Tokens (#182)
* 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>
2022-09-27 00:11:50 +02:00
SlightlyCircuitous
f406b1abcb
Fix typos in DMU tokens (#181)
* Fix typos in DMU tokens

broke a couple of tags by accident

* update version

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2022-09-26 22:15:36 +02:00
SlightlyCircuitous
3e64f0d0f4
Add Tokens from DMU (#179)
* 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>
2022-09-26 22:05:01 +02:00
tooomm
265a474130
fix workflow issue
we want to see  if there are issues on the run
2022-09-12 15:01:08 +02:00
tooomm
cb37bdf540
CI: Check image links (#131) 2022-09-12 14:13:36 +02:00
mainman879
6ce8f96a55
Adds Foretell maintype of State (#176)
* Adds Foretell maintype

* update version

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2022-08-17 00:32:27 +02:00
SlightlyCircuitous
dede5505a5
Split Challenge Decks and Heros By Set (#173)
* 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
2022-08-10 14:51:15 +02:00
SlightlyCircuitous
77e04724cb
Add RNA Guildkit (GK1+GK2) Tokens (#172)
Co-authored-by: tooomm <tooomm@users.noreply.github.com>
2022-08-07 16:15:38 +02:00
tooomm
5ead6f9148
Fix ISD Ooze token picture (#174)
Co-authored-by: github-actions <github-actions@github.com>
2022-08-07 15:36:12 +02:00
SlightlyCircuitous
0ba6681d1c
Add VOC and UMA Tokens (#171)
* 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>
2022-07-11 14:04:27 +02:00
tooomm
5903f6ea17
imgur --> scryfall (#168)
* more scryfall links

* update version to 20220707b

Co-authored-by: github-actions <github-actions@github.com>
2022-07-07 10:50:31 +02:00
tooomm
beecf68502
Fix Undercity image (#167)
* fix Undercity image

* update version to 20220707

Co-authored-by: github-actions <github-actions@github.com>
2022-07-07 02:33:35 +02:00
SlightlyCircuitous
3ccf8b40fd
Add Un-Set Tokens (#166)
* 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>
2022-07-04 23:43:25 +02:00
mainman879
6228a90011
Adds NCC Tokens (#164)
* Update tokens.xml

* sort

* fixes

* add missing relation

* Master of Ceremonies Suggestion

Co-authored-by: ebbit1q <ebbit1q@gmail.com>

* Adding excluded x counts

* update version

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2022-07-04 00:11:00 +02:00
SlightlyCircuitous
a150a9c000
De-Gather all Remaining Links (#163)
* 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>
2022-07-02 15:31:19 +02:00
ebbit1q
589b2788bf
remove unused token relations (#160)
* 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
2022-07-01 20:24:20 +02:00
SlightlyCircuitous
664c60f987
Update Gatherer token links that need special care to Scryfall (#162)
* 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>
2022-07-01 20:18:15 +02:00
SlightlyCircuitous
18c28f80a1
Move MH2 Construct Token image to Proper Card (#159)
* 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>
2022-06-15 20:39:19 +02:00
SlightlyCircuitous
82fedcad01
Modernize Custom Tokens and Add 2 More (#158)
* 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>
2022-06-11 19:32:53 +02:00
ebbit1q
96553e567a
move book of exalted deeds token to the white angel entry (#157)
* 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>
2022-06-11 16:01:53 +02:00
SlightlyCircuitous
ff9ed4169c
Add art for 3 missing tokens (#156)
* 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>
2022-06-07 02:37:20 +02:00
mainman879
b150f580c5
CLB Tokens (#147)
Co-authored-by: ebbit1q <ebbit1q@gmail.com>
Co-authored-by: tooomm <tooomm@users.noreply.github.com>
2022-06-02 23:24:50 +02:00
tooomm
6a6c9b9f45
Improve Readme (#154)
* add token count

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* discard other changes

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2022-06-02 22:39:18 +02:00
tooomm
3ac22d8413
Fix wrong picture for 4/4 elemental token (#152)
* fix image link

* update version to 20220602b

Co-authored-by: github-actions <github-actions@github.com>
2022-06-02 21:20:42 +02:00
ebbit1q
e54b3aa136
remove misspellings of picURL (#150)
* remove misspellings of picURL

* update version to 20220602

Co-authored-by: github-actions <github-actions@github.com>
2022-06-02 11:09:01 +02:00
tooomm
591392e9c4
Fix all scryfall links (#148)
* new scryfall links

* update version to 20220531

Co-authored-by: github-actions <github-actions@github.com>
2022-06-01 00:07:10 +02:00
tooomm
690097be50
Add CC2 zombie token (#146)
* Add CC2 zombie token

* update version to 20220516b

Co-authored-by: github-actions <github-actions@github.com>
2022-05-17 01:10:36 +02:00
tooomm
17736838bd
Fix set for snake token (#144)
* fix set

* update version to 20220516

Co-authored-by: github-actions <github-actions@github.com>
2022-05-16 18:56:56 +02:00
mainman879
9441cca678
Fixes 2 snake tokens (#143)
* Fixes 2 snake tokens

https://github.com/Cockatrice/Magic-Token/issues/140 Ophiomancer didn't have an official token until now so this adds that. The snake for Hapatra Vizier of Poisons had a broken link so this also fixes that.

* Fix wrong link

* update version

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2022-05-09 04:12:51 +02:00
ebbit1q
09b759f64e
set kaito's ninjas to be 1/1 instead of */* (#142)
* set kaito's ninjas to be 1/1 instead of */*

* update version to 20220428

Co-authored-by: github-actions <github-actions@github.com>
2022-04-28 11:48:19 +02:00
Psithief
7773be02f1
Streets of New Capenna tokens (#141)
* Streets of New Capenna tokens

* Fixed the ordering of space vs. hyphen

* the alphabet goes like this:

/SNC^M/related^MV/token^Mk:norm ^dt>$p^M:'<,'>sort^M:'<,'>norm ^2f<d$^P^M

* add extra entries for stimulus package and join the maestros

* remove count=x on stimulus package

* update version to 20220423

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
Co-authored-by: github-actions <github-actions@github.com>
2022-04-23 20:22:36 +02:00
Zach H
5e676f8477
Merge pull request #139 from Cockatrice/legends-snake-generator
change set of the serpent generator token to legends
2022-03-27 17:52:05 -04:00
ebbit1q
d73e66c21e
change set of the serpent generator token to legends
for some reason this used to be med which probably wasn't even an existing set code when we added the token?
2022-03-27 23:04:36 +02:00
ebbit1q
22a15ace59
full token compleation (#138)
* full token compleation

add phyrexian version of each token
move grist insect token art to correct entry

* update version to 20220228

Co-authored-by: github-actions <github-actions@github.com>
2022-02-28 03:28:54 +01:00
skwerlman
084cb7a3db
fix conflict with Unquenchable Fury from NEO (#137) 2022-02-16 21:14:11 +01:00
mainman879
03ee2b8c8b
Kamigawa Tokens (#134)
* Initial Tokens

* All NEO and some NEC tokens

No images yet for anything besides Mechtitan.

* Initial Tokens

* All NEO and some NEC tokens

No images yet for anything besides Mechtitan.

* add picUrl=""

* run linter

* Update tokens.xml

* update version

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2022-02-15 02:59:15 +01:00
ebbit1q
2666cee318
add workflow for updating the version on pr approval (#135)
* add workflow for updating the version on pr approval

* split into script

* apply pressure

* github parameter replacement uses double braces

* remove checks and fix repo url

* change merge behavior to merge master into the pr instead

this means it will not be required to force push when we're behind on
master

* add option to use workflow on comments

* grab correct ref from comments

* get full pr info from comment

* remove shell script

* correctly deal with having a different upstream

* prettyfy
2022-02-14 22:35:46 +01:00
ebbit1q
c69a6d4115
ranger class makes only one token (#136)
Co-authored-by: tooomm <tooomm@users.noreply.github.com>
2022-02-11 14:23:06 +01:00
tooomm
4afcfebb13 bump version 2022-02-07 00:30:16 +01:00
tooomm
3b56dc1824
fix order 2022-02-07 00:23:50 +01:00
tooomm
f3074c4dba
Add Mowu token (#132)
* Update tokens.xml

* Update tokens.xml

* fix type

* Update tokens.xml

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2022-02-06 00:00:36 +01:00
tooomm
b44a2bdd2a
Remove x=0 values (#101)
* remove x=0

* fix scute swarm

* Revert "fix scute swarm"

This reverts commit 58a1053d45.

* bump version

* test

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2022-02-05 23:55:27 +01:00
tooomm
cfead3340e
Add missing BBD token (#123) 2022-02-05 23:02:34 +01:00
ebbit1q
3aef4bd4a0
remove temporary name (#133)
* From A up to G

* revert butterfly

Co-authored-by: mainman879 <80185382+mainman879@users.noreply.github.com>
2022-02-05 22:54:51 +01:00
ebbit1q
d8354ece0c
add Token prefixes with bash and sed (#129) 2022-02-05 22:41:43 +01:00
tooomm
e7dd78f9c8
bump version 2021-11-28 20:44:10 +01:00
ebbit1q
38fb711bec
set darien to make x tokens (#128) 2021-11-28 20:43:31 +01:00
mainman879
9d98508a50
VOW Tokens (#125)
* Initial VOW spoilers

* Missing <card>

Co-authored-by: ebbit1q <ebbit1q@gmail.com>

* Update tokens.xml

* Update tokens.xml

* Update tokens.xml

* Update tokens.xml

* Update tokens.xml

* Update tokens.xml

* Update tokens.xml

* Update tokens.xml

* Update tokens.xml

* typo

* remove spaces and the end of lines

* automatically sort

/VOW^M/related^MV/token^Mk:norm ^dt>$p^M:'<,'>sort^M:'<,'>norm ^2f<d$^P^M

* move timothar to normal bat

* update version

sed -i s/$(cat version.txt)/$(date --utc +%Y%m%d)/ tokens.xml
date --utc +%Y%m%d >version.txt

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2021-11-14 00:18:20 +01:00
mainman879
a0d3f87753
Update for SLD Stranger Things (#124)
* Update for SLD Stranger Things

* update version

sed -i s/$(cat version.txt)/$(date +%Y%m%d)/ tokens.xml
date +%Y%m%d >version.txt

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2021-10-16 18:14:02 +02:00
Psithief
947a024528 Update version 2021-09-22 22:57:10 +08:00
tooomm
fc18c78f1e
Cleanup erroneous relationships (#122)
* Update tokens.xml

* cleanup double linking

* last one?

* Set default zombie count to 2

Co-authored-by: Psithief <psithief@gmail.com> (barely!)
2021-09-22 22:55:32 +08:00
tooomm
9042752335 Add missing count 2021-09-22 22:32:31 +08:00
Psithief
6c7462b127
Merge pull request #114 from mainman879/mainman879-MID-tokens
MIC and MID Tokens
2021-09-22 22:29:39 +08:00
mainman879
21b0c02850 Update tokens.xml 2021-09-22 10:25:30 -04:00
mainman879
4f45c32ccd Unnatural Moonrise to not exclude.
Co-authored-by: tooomm <tooomm@users.noreply.github.com>

Removes unneeded excludes.

Co-authored-by: tooomm <tooomm@users.noreply.github.com>
2021-09-22 10:25:27 -04:00
ebbit1q
c39bc30882 Update tokens.xml
Co-authored-by: tooomm <tooomm@users.noreply.github.com>
2021-09-22 10:25:27 -04:00
mainman879
a71c452e10 Initial spoilers
Update tokens.xml

Update tokens.xml

Update tokens.xml

Update tokens.xml

Update tokens.xml

Update tokens.xml

Update tokens.xml

Update tokens.xml

Update tokens.xml

Day->Night reverse related

Added all token image links

Implements Psithief requested changes
2021-09-22 10:23:01 -04:00
Psithief
0aa71e3d53 Remove erroneous Kraken relationship
This commit removes a relationship between the Kraken token
and the Kiora, the Crashing Wave card that was created by mistake and
not caught.

Mentioned in https://github.com/Cockatrice/Magic-Token/pull/119
2021-09-22 20:03:15 +08:00
mainman879
a6d31f8b74
Secret Lair TWD cards (#117)
* Secret Lair TWD cards

No one had added these yet, so here they are after being requested.

* move sld to under cmr

* sed -i s/$(cat version.txt)/$(date +%Y%m%d)/ tokens.xml && date +%Y%m%d >version.txt

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2021-08-24 02:04:17 +02:00
mainman879
703a6f0ce1
Fix for nonexistent set (#116)
* Fix for nonexistent set

PPRE does not exist, and this angel token should refer to set P04 as seen here https://scryfall.com/card/p04/2/angel

* Update version.txt

* Update tokens.xml

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2021-08-22 17:39:37 +02:00
Zach H
4da88da373
Merge pull request #113 from mainman879/patch-1
Fixes incorrect image link for Tomb of Annihilation
2021-07-27 21:19:18 -04:00
mainman879
ad978f02ea
Fixes incorrect image link for Tomb of Annihilation 2021-07-27 21:14:49 -04:00
10 changed files with 12651 additions and 3310 deletions

13
.github/dependabot.yml vendored Normal file
View File

@ -0,0 +1,13 @@
# Configuration options: https://docs.github.com/en/github/administering-a-repository/configuration-options-for-dependency-updates
version: 2
updates:
# Enable version updates for GitHub Actions
- package-ecosystem: "github-actions"
# Directory must be set to "/" to check for workflow files in .github/workflows
directory: "/"
# Check for updates to GitHub Actions once a week
schedule:
interval: "weekly"
# Limit the amout of open PR's (default = 5, disabled = 0, security updates are not impacted)
open-pull-requests-limit: 2

104
.github/workflows/check_links.yml vendored Normal file
View File

@ -0,0 +1,104 @@
name: Picture Health
on:
push:
branches: [ master ]
paths:
- '.github/workflows/check_links.yml'
- '**.xml'
pull_request:
branches: [ master ]
paths:
- '.github/workflows/check_links.yml'
- '**.xml'
pull_request_review:
types: [ submitted ]
workflow_dispatch:
schedule:
# Runs at the start of each month (UTC)
- cron: '0 0 1 * *'
jobs:
check_urls:
# Do not run the scheduled workflow on forks
if: ( github.event_name != 'schedule' || github.repository_owner == 'Cockatrice' )
name: Check image links
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
# Restore cache
- name: Restore lychee cache
id: restore-cache
uses: actions/cache/restore@v5
with:
path: .lycheecache
key: cache-lychee-${{ github.sha }}
restore-keys: cache-lychee-
# Extract picture URLs from tokens.xml
- name: Extract URLs
id: tokens_pic_urls
uses: lycheeverse/lychee-action@v2
with:
args: --dump -- tokens.xml
output: url_list.md
jobSummary: false
# Check dumped URLs
- name: Check token art URLs
if: steps.tokens_pic_urls.outcome == 'success'
uses: lycheeverse/lychee-action@v2
with:
args: --no-progress --require-https --cache --max-cache-age 8h -- url_list.md
jobSummary: true
# List helpful stats on missing pictures
- name: List missing image link counts
shell: bash
run: |
{
echo "❌ **Missing Image Links (<kbd>master</kbd> Branch)**"
echo "| Count | Description |"
echo "|------:|:------------|"
echo "| [![](https://img.shields.io/badge/dynamic/xml?label=&colorB=white&query=count%28%2F%2Fcard%5Bnot%28set%29%5D%29&url=https%3A%2F%2Fraw.githubusercontent.com%2FCockatrice%2FMagic-Token%2Fmaster%2Ftokens.xml)](https://raw.githubusercontent.com/Cockatrice/Magic-Token/master/tokens.xml) | Tokens with missing \`set\` element |"
echo "| [![](https://img.shields.io/badge/dynamic/xml?label=&colorB=white&query=count%28%2F%2Fset%29-count%28%2F%2Fset%5B%40picURL%5D%29&url=https%3A%2F%2Fraw.githubusercontent.com%2FCockatrice%2FMagic-Token%2Fmaster%2Ftokens.xml)](https://raw.githubusercontent.com/Cockatrice/Magic-Token/master/tokens.xml) | Set elements with missing picURL attribute (\`<set>\`) |"
echo "| [![](https://img.shields.io/badge/dynamic/xml?label=&colorB=white&query=count%28%2F%2Fset%5B%40picURL%3D%22%22%5D%29&url=https%3A%2F%2Fraw.githubusercontent.com%2FCockatrice%2FMagic-Token%2Fmaster%2Ftokens.xml)](https://raw.githubusercontent.com/Cockatrice/Magic-Token/master/tokens.xml) | Set elements with empty picURL value (\`<set picURL=\"\">\`) |"
} >> $GITHUB_STEP_SUMMARY
# Analyse extracted links (1/2)
- name: List duplicated image links
if: steps.tokens_pic_urls.outcome == 'success'
shell: bash
run: |
{
echo "🪞 **Duplicated Image Links**"
echo "| Count | Image URL |"
echo "|------:|:----------|"
# Remove empty lines | trim trailing integers (Scryfall) | sort | count and list only duplicates with numbers | sort descending | print md table
grep . url_list.md | sed 's/\.jpg?.*/.jpg/' | sort | uniq -cd | sort -nr | awk '{printf "| %5s | %s |\n", $1, $2}'
} >> $GITHUB_STEP_SUMMARY
# Analyse extracted links (2/2)
- name: List image hosting sources
if: steps.tokens_pic_urls.outcome == 'success'
shell: bash
run: |
{
echo "📶 **Image Hosting Statistics**"
echo "| Count | Domain |"
echo "|------:|:-------|"
# Extract 3rd field (domain name) | remove empty lines | sort | count and list with numbers | sort descending | print md table
awk -F/ '{print $3}' url_list.md | grep . | sort | uniq -c | sort -nr | awk '{printf "| %5s | %s |\n", $1, $2}'
} >> $GITHUB_STEP_SUMMARY
# Always save cache
- name: Save lychee cache
uses: actions/cache/save@v5
if: always()
with:
path: .lycheecache
key: ${{ steps.restore-cache.outputs.cache-primary-key }}

66
.github/workflows/update_links.yml vendored Normal file
View File

@ -0,0 +1,66 @@
name: Image URLs
on:
workflow_dispatch:
schedule:
# runs in the middle of each month
- cron: '0 0 15 * *'
pull_request:
branches: [ master ]
paths:
- '.github/workflows/update_links.yml'
- 'scripts/update_image_links.py'
jobs:
update_links:
# Do not run the scheduled workflow on forks
if: github.event_name != 'schedule' || github.repository_owner == 'Cockatrice'
name: Update links
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v6
- name: Query Scryfall API and update picURLs
shell: bash
working-directory: ./scripts
run: python3 update_image_links.py ../tokens.xml --inplace
- name: Create pull request
if: github.event_name != 'pull_request'
id: create_pr
uses: peter-evans/create-pull-request@v8
with:
add-paths: |
tokens.xml
commit-message: Update image links
# author is the owner of the commit
author: github-actions <github-actions@github.com>
branch: ci-update_image_links
delete-branch: true
title: 'Update image links'
body: |
Update all picURLs in the `tokens.xml` file via Scryfall API.
---
*This PR is automatically generated and updated by the workflow at `.github/workflows/update_links.yml`. Review [action runs][1].*<br>
[1]: https://github.com/Cockatrice/Magic-Token/actions/workflows/update_links.yml?query=branch%3Amaster
labels: |
CI
draft: false
- name: PR Status
if: github.event_name != 'pull_request'
shell: bash
env:
STATUS: ${{ steps.create_pr.outputs.pull-request-operation }}
run: |
if [[ "$STATUS" == "none" ]]; then
echo "PR #${{ steps.create_pr.outputs.pull-request-number }} unchanged!" >> $GITHUB_STEP_SUMMARY
else
echo "PR #${{ steps.create_pr.outputs.pull-request-number }} $STATUS!" >> $GITHUB_STEP_SUMMARY
fi
echo "URL: ${{ steps.create_pr.outputs.pull-request-url }}" >> $GITHUB_STEP_SUMMARY

84
.github/workflows/update_version.yml vendored Normal file
View File

@ -0,0 +1,84 @@
name: Update version on tokens.xml changes
on:
push:
branches: [ master ]
paths:
- 'tokens.xml'
- 'version.txt'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ !contains(github.ref, '/master') }}
jobs:
update_version:
if: "!startsWith(github.event.head_commit.message, 'Update version to ')"
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v6
- name: Get previous version
id: get_versions
shell: bash
run: |
old_version="$(<version.txt)"
current_date="$(date --utc +%Y%m%d)"
echo "old_version=$old_version" >> $GITHUB_OUTPUT
echo "current_date=$current_date" >> $GITHUB_OUTPUT
- name: Compute new version
id: compute_version
shell: python
run: |
import os, re
old_version = "${{steps.get_versions.outputs.old_version}}"
current_date = "${{steps.get_versions.outputs.current_date}}"
new_version = current_date
if old_version.startswith(current_date):
match = re.search(r"[a-z]+", old_version)
if match is None:
suffix = "a" # the first a is actually hidden
else:
suffix = match[0]
charlist = []
rev = reversed(suffix)
for char in rev:
if char == "z":
charlist.append("a")
else:
nextchar = chr(ord(char) + 1)
charlist.append(nextchar)
charlist.extend(rev)
break
else:
charlist.append("a")
new_version += "".join(reversed(charlist))
with open(os.environ["GITHUB_OUTPUT"], "a") as envFile:
print(f"new_version={new_version}", file=envFile)
- name: Update version in files
shell: bash
env:
VERSION_OLD: ${{steps.get_versions.outputs.old_version}}
VERSION_NEW: ${{steps.compute_version.outputs.new_version}}
run: |
echo "Updating version from $VERSION_OLD to $VERSION_NEW"
tag="sourceVersion"
sed -i "s?<$tag>.*</$tag>?<$tag>$VERSION_NEW</$tag>?" tokens.xml
echo "$VERSION_NEW" >version.txt
- name: Commit and push changes
shell: bash
env:
VERSION_NEW: ${{steps.compute_version.outputs.new_version}}
run: |
echo "::notice::Triggering commit: https://github.com/${GITHUB_REPOSITORY}/commit/$GITHUB_SHA"
git config user.name github-actions
git config user.email github-actions@github.com
git add tokens.xml version.txt
git commit -m "Update version to $VERSION_NEW" -m "Bump triggered by commit $GITHUB_SHA"
git push
commit_hash="$(git rev-parse HEAD)"
echo "::notice::Pushed commit: https://github.com/${GITHUB_REPOSITORY}/commit/$commit_hash"

View File

@ -1,10 +1,9 @@
[![Discord](https://img.shields.io/discord/314987288398659595?label=Discord&logo=discord&logoColor=white)](https://discord.gg/3Z9yzmA) [![Gitter Chat](https://img.shields.io/gitter/room/Cockatrice/Magic-Spoiler)](https://gitter.im/Cockatrice/Magic-Spoiler)
[![Discord](https://img.shields.io/discord/314987288398659595?label=Discord&logo=discord&logoColor=white)](https://discord.gg/3Z9yzmA)
Magic-Token [![](https://img.shields.io/badge/dynamic/xml.svg?label=version&url=https%3A%2F%2Fraw.githubusercontent.com%2FCockatrice%2FMagic-Token%2Fmaster%2Ftokens.xml&query=%2F%2FsourceVersion)](https://github.com/Cockatrice/Magic-Token/blob/master/tokens.xml)
Magic-Token [![](https://img.shields.io/badge/dynamic/xml.svg?label=version&url=https%3A%2F%2Fraw.githubusercontent.com%2FCockatrice%2FMagic-Token%2Fmaster%2Ftokens.xml&query=%2F%2FsourceVersion)](https://github.com/Cockatrice/Magic-Token/blob/master/tokens.xml) [![Picture Health](https://github.com/Cockatrice/Magic-Token/actions/workflows/check_links.yml/badge.svg?branch=master)](https://github.com/Cockatrice/Magic-Token/actions/workflows/check_links.yml?query=branch%3Amaster)
=================
This repo contains tokens information in [Cockatrice](https://github.com/cockatrice/cockatrice)'s XML card database format for Magic: The Gathering
This repo contains token information in [Cockatrice](https://github.com/cockatrice/cockatrice)'s [XML card database format](https://github.com/Cockatrice/Cockatrice/wiki/Custom-Cards-&-Sets#to-add-your-own-custom-cards-follow-these-steps) for Magic: The Gathering.<br />
It describes [![](https://img.shields.io/badge/dynamic/xml.svg?label=&colorB=white&url=https%3A%2F%2Fraw.githubusercontent.com%2FCockatrice%2FMagic-Token%2Fmaster%2Ftokens.xml&query=count(%2F%2Fcard))](https://github.com/Cockatrice/Magic-Token/blob/master/tokens.xml) individual tokens with linked art and the relation to their creators.
For normal tokens, save the file found here: [**tokens.xml**](https://raw.githubusercontent.com/Cockatrice/Magic-Token/master/tokens.xml)
For tokens from the Theros block challege decks, save the file found here: [**challenge_tokens.xml**](https://raw.githubusercontent.com/Cockatrice/Magic-Token/master/challenge_tokens.xml)
Cockatrice pulls its copy of the token file from here: [**tokens.xml**](https://raw.githubusercontent.com/Cockatrice/Magic-Token/master/tokens.xml)

View File

@ -1,707 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<cockatrice_carddatabase version="3">
<sets>
<set>
<name>CTH</name>
<longname>Challenge the Horde</longname>
<settype>Challenge</settype>
<releasedate>2011-09-05</releasedate>
</set>
</sets>
<cards>
<card>
<name>Strike the Weak Spot</name>
<set picURL="http://deckmaster.info/images/cards/THS/-66612-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Sorcery</type>
<tablerow>3</tablerow>
<text>Destroy target Head. If that Head was elite, the Hydra take an extra turn after this one.</text>
</card>
<card>
<name>Mogis's Chosen</name>
<set picURL="http://deckmaster.info/images/cards/BNG/-66703-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Creature — Minotaur</type>
<pt>5/4</pt>
<tablerow>2</tablerow>
<text>Mogis's Chosen enters the battlefield tapped. Mogis's Chosen attacks each turn if able.</text>
</card>
<card>
<name>Rip to Pieces</name>
<set picURL="http://deckmaster.info/images/cards/JOU/-66809-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Sorcery</type>
<tablerow>3</tablerow>
<text>At the beginning of combat this turn, each Reveler deals 1 damage to each player and each creature those players control.</text>
</card>
<card>
<name>Descend on the Prey</name>
<set picURL="http://deckmaster.info/images/cards/BNG/-66707-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Sorcery</type>
<tablerow>3</tablerow>
<text>Whenever a Minotaur attacks this turn, it gains first strike until end of turn and must be blocked this turn if able.</text>
</card>
<card>
<name>The Vanquisher</name>
<set picURL="http://deckmaster.info/images/cards/BNG/-66786-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Hero</type>
<tablerow>1</tablerow>
<text>Your starting hand size is increased by one. Your maximum hand size is increased by one.</text>
</card>
<card>
<name>The General</name>
<set picURL="http://deckmaster.info/images/cards/BNG/-66724-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Hero</type>
<tablerow>1</tablerow>
<text>Exile The General: Creature you control get +1/+1 until end of turn. Untap them.</text>
</card>
<card>
<name>Minotaur Younghorn</name>
<set picURL="http://deckmaster.info/images/cards/BNG/-66702-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Creature — Minotaur</type>
<pt>2/2</pt>
<tablerow>2</tablerow>
<text>Haste, Minotaur Younghorn attacks each turn if able.</text>
</card>
<card>
<name>Dance of Flame</name>
<set picURL="http://deckmaster.info/images/cards/JOU/-66812-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Enchantment</type>
<tablerow>1</tablerow>
<text>Whenever a Reveler attacks, Dance of Flame deals 1 damage to each player.</text>
</card>
<card>
<name>The Provider</name>
<set picURL="http://deckmaster.info/images/cards/BNG/-66764-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Hero</type>
<tablerow>1</tablerow>
<text>Exile The Provider: Put two +1/+1 counters on target creature you control. You gain life equal to that creature's toughness.</text>
</card>
<card>
<name>Refreshing Elixir</name>
<set picURL="http://deckmaster.info/images/cards/BNG/-66714-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Artifact</type>
<tablerow>1</tablerow>
<text>At the beginning of the Horde's precombat main phase, reveal an additional card from the top of the Horde's library. The Horde casts that card.
Hero's Reward — When Refreshing Elixir is put into a graveyard from anywhere, each player gains 5 life.</text>
</card>
<card>
<name>Rollicking Throng</name>
<set picURL="http://deckmaster.info/images/cards/JOU/-66803-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Creature — Human Reveler</type>
<pt>1/3</pt>
<tablerow>2</tablerow>
<text>When Rollicking Throng enters the battlefield, reveal the top card of Xenagos's library and Xenagos casts that card. (This ability doesn't trigger as the game begins.)</text>
</card>
<card>
<name>Impulsive Destruction</name>
<set picURL="http://deckmaster.info/images/cards/JOU/-66807-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Sorcery</type>
<tablerow>3</tablerow>
<text>Each player may sacrifice an artifact or enchantment. Impulsive Destruction deals 3 damage to each player who didn't sacrifice a permanent this way.</text>
</card>
<card>
<name>Unquenchable Fury</name>
<set picURL="http://deckmaster.info/images/cards/BNG/-66710-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Sorcery</type>
<tablerow>3</tablerow>
<text>Each Minotaur can't be blocked this turn except by two or more creatures.</text>
</card>
<card>
<name>Maddened Oread</name>
<set picURL="http://deckmaster.info/images/cards/JOU/-66814-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Enchantment Creature — Nymph Reveler</type>
<pt>4/2</pt>
<tablerow>2</tablerow>
<text>As long as five or more Revelers are on the battlefield, Maddened Oread attacks each turn if able. Hero's Reward - When Maddened Oread leaves the battlefield, each player gains 3 life.</text>
</card>
<card>
<name>Xenagos's Scorn</name>
<set picURL="http://deckmaster.info/images/cards/JOU/-66810-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Sorcery</type>
<tablerow>3</tablerow>
<text>Xenagos Ascended gains trample until end of turn and attacks this turn if able.</text>
</card>
<card>
<name>Shrieking Titan Head</name>
<set picURL="http://deckmaster.info/images/cards/THS/-66604-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Elite Creature — Head</type>
<pt>0/8</pt>
<tablerow>2</tablerow>
<text>At the beginning of the Hydra's end step, each player discards a card.
Hero's Reward — When Savage Vigor Head leaves the battlefield, each player gains 4 life and draws a card.</text>
</card>
<card>
<name>Xenagos's Strike</name>
<set picURL="http://deckmaster.info/images/cards/JOU/-66811-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Sorcery</type>
<tablerow>3</tablerow>
<text>Xenagos's Strike deals 4 damage to each player.</text>
</card>
<card>
<name>Snapping Fang Head</name>
<set picURL="http://deckmaster.info/images/cards/THS/-66605-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Elite Creature — Head</type>
<pt>0/8</pt>
<tablerow>2</tablerow>
<text>At the beginning of the Hydra's end step, Snapping Fang Head deals 1 damage to each player.
Hero's Reward — When Savage Vigor Head leaves the battlefield, each player gains 4 life and draws a card.</text>
</card>
<card>
<name>Massacre Totem</name>
<set picURL="http://deckmaster.info/images/cards/BNG/-66712-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Artifact</type>
<tablerow>1</tablerow>
<text>At the beginning of the Horde's precombat main phase, reveal an additional card from the top of the Horde's library. The Horde casts that card. Hero's Reward — When Altar of Mogis is put into a graveyard from anywhere, the Horde sacrifies two Minotaurs.</text>
</card>
<card>
<name>Spear of the General</name>
<set picURL="http://deckmaster.info/images/cards/JOU/-66827-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Hero Artifact — Equipment</type>
<tablerow>1</tablerow>
<text>Equipped creature gets +2/+0 and has first strike. Equip {2}</text>
</card>
<card>
<name>Minotaur Goreseeker</name>
<set picURL="http://deckmaster.info/images/cards/BNG/-66701-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Creature — Minotaur</type>
<pt>3/2</pt>
<tablerow>2</tablerow>
<text>Haste, Minotaur Goreseeker attacks each turn if able.</text>
</card>
<card>
<name>Swallow the Hero Whole</name>
<set picURL="http://deckmaster.info/images/cards/THS/-66613-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Sorcery</type>
<tablerow>1</tablerow>
<text>Each player exiles a creature he or she controls. Until the Hydra's next turn, when a Head leaves the battlefield, return the exiled cards to the battlefield under their owners' control.</text>
</card>
<card>
<name>The Philosopher</name>
<set picURL="http://deckmaster.info/images/cards/THS/-66631-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Hero</type>
<tablerow>1</tablerow>
<text>{2}, {T}: Tap target creature.</text>
</card>
<card>
<name>Disorienting Glower</name>
<set picURL="http://deckmaster.info/images/cards/THS/-66606-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Sorcery</type>
<tablerow>3</tablerow>
<text>Player's can't cast spells until the Hydra's next turn.</text>
</card>
<card>
<name>The Destined</name>
<set picURL="http://deckmaster.info/images/cards/JOU/-66878-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Hero</type>
<tablerow>1</tablerow>
<text>Spells you cast that target a creature you control cost {2} less to cast</text>
</card>
<card>
<name>Altar of Mogis</name>
<set picURL="http://deckmaster.info/images/cards/BNG/-66711-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Artifact</type>
<tablerow>1</tablerow>
<text>At the beginning of the Horde's precombat main phase, reveal an additional card from the top of the Horde's library. The Horde casts that card. Hero's Reward — When Massacre Totem is put into a graveyard from anywhere, put the top seven cards of the Horde's library into its graveyard.</text>
</card>
<card>
<name>The Warrior</name>
<set picURL="http://deckmaster.info/images/cards/THS/-66651-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Hero</type>
<tablerow>1</tablerow>
<text>{T}: Target creature you control gains haste until end of turn.</text>
</card>
<card>
<name>Touch of the Horned God</name>
<set picURL="http://deckmaster.info/images/cards/BNG/-66709-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Sorcery</type>
<tablerow>3</tablerow>
<text>Whenever a Minotaur attacks this turn, it gains deathtouch until end of turn.</text>
</card>
<card>
<name>Ravenous Brute Head</name>
<set picURL="http://deckmaster.info/images/cards/THS/-66602-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Elite Creature — Head</type>
<pt>0/6</pt>
<tablerow>2</tablerow>
<text>Hero's Reward — When Ravenous Brute Head leaves the battlefield, each player gains 2 life and draws a card.</text>
</card>
<card>
<name>The Savant</name>
<set picURL="http://deckmaster.info/images/cards/BNG/-66734-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Hero</type>
<tablerow>1</tablerow>
<text>Exile The Savant: Tap all creatures your opponent control. Those creatures don't untap during their controllers' next untap steps.</text>
</card>
<card>
<name>Dance of Panic</name>
<set picURL="http://deckmaster.info/images/cards/JOU/-66813-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Enchantment</type>
<tablerow>1</tablerow>
<text>As long as five or more Revelers are on the battlefield, all Revelers have haste and attack each turn if able.</text>
</card>
<card>
<name>Savage Vigor Head</name>
<set picURL="http://deckmaster.info/images/cards/THS/-66603-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Elite Creature — Head</type>
<pt>0/8</pt>
<tablerow>2</tablerow>
<text>At the beginning of the Hydra's end step, reveal the top card of the Hydra's library and the Hydra casts that card. Hero's Reward — When Savage Vigor Head leaves the battlefield, each player gains 4 life and draws a card.</text>
</card>
<card>
<name>Intervention of Keranos</name>
<set picURL="http://deckmaster.info/images/cards/BNG/-66708-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Sorcery</type>
<tablerow>3</tablerow>
<text>At the beginning of combat this turn, Intervention of Keranos deals 3 damage to each creature.</text>
</card>
<card>
<name>Distract the Hydra</name>
<set picURL="http://deckmaster.info/images/cards/THS/-66607-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Sorcery</type>
<tablerow>3</tablerow>
<text>Each player may sacrifice a creature. Each player who sacrificed a creature this way chooses a Head and taps it. Each player who didn't sacrifice a creature loses 3 life.</text>
</card>
<card>
<name>The Slayer</name>
<set picURL="http://deckmaster.info/images/cards/THS/-66683-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Hero</type>
<tablerow>1</tablerow>
<text>You start the game with an additional 7 life.</text>
</card>
<card>
<name>Impulsive Return</name>
<set picURL="http://deckmaster.info/images/cards/JOU/-66808-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Sorcery</type>
<tablerow>3</tablerow>
<text>Return two cards named Ecstatic Piper from Xenagos's graveyard to the battlefield. At the beginning of combat this turn, Impulsive Return deals damage to each player equal to the number of Revelers on the battlefield.</text>
</card>
<card>
<name>Phoberos Reaver</name>
<set picURL="http://deckmaster.info/images/cards/BNG/-66704-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Creature — Minotaur</type>
<pt>2/3</pt>
<tablerow>0</tablerow>
<text>Haste, Phoberos Reaver attacks each turn if able.</text>
</card>
<card>
<name>Bow of the Hunter</name>
<set picURL="http://deckmaster.info/images/cards/JOU/-66867-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Hero Artifact — Equipment</type>
<tablerow>1</tablerow>
<text>Equipped creature has &quot;{T}: This creature deals 2 damage to target creature of player.&quot; Equip {2}</text>
</card>
<card>
<name>Torn Between Heads</name>
<set picURL="http://deckmaster.info/images/cards/THS/-66614-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Sorcery</type>
<tablerow>3</tablerow>
<text>Tap up to two Heads. They don't untap during the Hydra's next untap step. Torn Between Heads deals 5 damage to each player.</text>
</card>
<card>
<name>Noxious Hydra Breath</name>
<set picURL="http://deckmaster.info/images/cards/THS/-66611-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Sorcery</type>
<tablerow>3</tablerow>
<text>Choose one — Noxious Hydra Breath deals 5 damage to each player; or destroy each tapped non-Head creature.</text>
</card>
<card>
<name>Vitality Salve</name>
<set picURL="http://deckmaster.info/images/cards/BNG/-66715-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Artifact</type>
<tablerow>1</tablerow>
<text>At the beginning of the Horde's precombat main phase, reveal an additional card from the top of the Horde's library. The Horde casts that card. Hero's Reward — When Vitality Salve is put into a graveyard from anywhere, each player returns a creature card from his or her graveyard to the battlefield.</text>
</card>
<card>
<name>Lash of the Tyrant</name>
<set picURL="http://deckmaster.info/images/cards/JOU/-66847-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Hero Artifact — Equipment</type>
<tablerow>1</tablerow>
<text>Equipped creature gets +1/+2 and has deathtouch. Equip {2}</text>
</card>
<card>
<name>Reckless Minotaur</name>
<set picURL="http://deckmaster.info/images/cards/BNG/-66705-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Creature — Minotaur</type>
<pt>4/1</pt>
<tablerow>2</tablerow>
<text>Haste, Reckless Minotaur attacks each turn if able. At the beginning of the end step, destroy Reckless Minotaur.</text>
</card>
<card>
<name>Hydra's Impenetrable Hide</name>
<set picURL="http://deckmaster.info/images/cards/THS/-66609-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Sorcery</type>
<tablerow>3</tablerow>
<text>Each Head gains indestructible until the end of the Hydra's next turn.</text>
</card>
<card>
<name>Axe of the Warmonger</name>
<set picURL="http://deckmaster.info/images/cards/JOU/-66857-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Hero Artifact — Equipment</type>
<tablerow>1</tablerow>
<text>Equipped creature gets +2/+1 and has haste. Equip {2}</text>
</card>
<card>
<name>The Harvester</name>
<set picURL="http://deckmaster.info/images/cards/THS/-66672-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Hero</type>
<tablerow>1</tablerow>
<text>{T}: Draw a card, then discard a card.</text>
</card>
<card>
<name>Hydra Head</name>
<set picURL="http://deckmaster.info/images/cards/THS/-66601-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Creature — Head</type>
<pt>0/3</pt>
<tablerow>2</tablerow>
<text>Hero's Reward — When Hydra Head leaves the battlefield, each player gains 2 life.</text>
</card>
<card>
<name>The Explorer</name>
<set picURL="http://deckmaster.info/images/cards/BNG/-66775-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Hero</type>
<tablerow>1</tablerow>
<text>You may play an additional land on each of your turns.</text>
</card>
<card>
<name>Grown from the Stump</name>
<set picURL="http://deckmaster.info/images/cards/THS/-66608-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Sorcery</type>
<tablerow>3</tablerow>
<text>Put exactly two cards named Hydra Head onto the battlefield from the Hydra's graveyard. If you can't, reveal cards from the top of the Hydra's library until you reveal a Head card. Put that card onto the battlefield and the rest into the Hydra's graveyard.</text>
</card>
<card>
<name>The Warmonger</name>
<set picURL="http://deckmaster.info/images/cards/BNG/-66754-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Hero</type>
<tablerow>1</tablerow>
<text>Exile The Warmonger: Creature you control get +2/+0 and gain haste until end of turn.</text>
</card>
<card>
<name>Unified Lunge</name>
<set picURL="http://deckmaster.info/images/cards/THS/-66615-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Sorcery</type>
<tablerow>3</tablerow>
<text>Unified Lunge deals X damage to each player, where X is the number of Heads on the battlefield.</text>
</card>
<card>
<name>The Tyrant</name>
<set picURL="http://deckmaster.info/images/cards/BNG/-66744-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Hero</type>
<tablerow>0</tablerow>
<text>Exile The Tyrant: Creature your opponents control get -1/-1 until end of turn.</text>
</card>
<card>
<name>The Champion</name>
<set picURL="http://deckmaster.info/images/cards/JOU/-66889-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Hero</type>
<tablerow>1</tablerow>
<text>{2}, {T}, Exile The Champion: Search your library for a legendary artifact card that isn't a creature, reveal it, and put it onto the battlefield. Then shuffle your library.</text>
</card>
<card>
<name>Plundered Statue</name>
<set picURL="http://deckmaster.info/images/cards/BNG/-66713-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Artifact</type>
<tablerow>1</tablerow>
<text>At the beginning of the Horde's precombat main phase, reveal an additional card from the top of the Horde's library. The Horde casts that card. Hero's Reward — When Plundered Statue is put into a graveyard from anywhere, each player draws a card.</text>
</card>
<card>
<name>The Protector</name>
<set picURL="http://deckmaster.info/images/cards/THS/-66621-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Hero</type>
<tablerow>1</tablerow>
<text>{T}: Prevent the next 1 damage that would be dealt to target creature or player this turn.</text>
</card>
<card>
<name>Impulsive Charge</name>
<set picURL="http://deckmaster.info/images/cards/JOU/-66806-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Sorcery</type>
<tablerow>3</tablerow>
<text>At the beginning of combat this turn, all Revelers gain haste until end of turn and attack this combat if able.</text>
</card>
<card>
<name>Pheres-Band Revelers</name>
<set picURL="http://deckmaster.info/images/cards/JOU/-66802-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Creature — Centaur Reveler</type>
<pt>4/4</pt>
<tablerow>2</tablerow>
<text>Hero's Reward - When Pheres-Band Revelers leaves the battlefield, each player draws a card.</text>
</card>
<card>
<name>The Hunter</name>
<set picURL="http://deckmaster.info/images/cards/THS/-66661-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Hero</type>
<tablerow>1</tablerow>
<text>{T}: Target creature you control gets +1/+1 until end of turn.</text>
</card>
<card>
<name>Ecstatic Piper</name>
<set picURL="http://deckmaster.info/images/cards/JOU/-66801-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Creature — Satyr Reveler</type>
<pt>2/2</pt>
<tablerow>2</tablerow>
<text>When Ecstatic Piper enters the battlefield, Xenagos Ascended attacks this turn if able Hero's Reward - When Ecstatic Piper leaves the battlefield, each player gains 2 life.</text>
</card>
<card>
<name>Consuming Rage</name>
<set picURL="http://deckmaster.info/images/cards/BNG/-66706-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Sorcery</type>
<tablerow>3</tablerow>
<text>Whenever a Minotaur attacks this turn, it gets +2/+0 until end of turn. Destroy that creature at end of combat.</text>
</card>
<card>
<name>Xenagos Ascended</name>
<set picURL="http://deckmaster.info/images/cards/JOU/-66815-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Legendary Enchantment Creature — God</type>
<pt>6/5</pt>
<tablerow>2</tablerow>
<text>Xenagos Ascended can't leave the battlefield as long as a Reveler is on the battlefield. When Xenagos Ascended leaves the battlefield, each player wins the game.</text>
</card>
<card>
<name>Wild Maenads</name>
<set picURL="http://deckmaster.info/images/cards/JOU/-66805-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Creature — Human Reveler</type>
<pt>3/1</pt>
<tablerow>2</tablerow>
<text>First strike, Hero's Reward - When Wild Maenads leaves the battlefield, each player gains 3 life.</text>
</card>
<card>
<name>Serpent Dancers</name>
<set picURL="http://deckmaster.info/images/cards/-66804-hr.jpg">TK</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Creature — Human Reveler</type>
<pt>2/4</pt>
<tablerow>2</tablerow>
<text>Deathtouch, Hero's Reward - When Serpent Dancers leaves the battlefield, each player draws a card.</text>
</card>
<card>
<name>Neck Tangle</name>
<set picURL="http://deckmaster.info/images/cards/THS/-66610-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Sorcery</type>
<tablerow>3</tablerow>
<text>If there are five or more Heads on the battlefield, tap two of them and they don't untap during the Hydra's next untap step. Otherwise, reveal the top card of the Hydra's library and the Hydra casts that card.</text>
</card>
<card>
<name>The Avenger</name>
<set picURL="http://deckmaster.info/images/cards/THS/-66641-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Hero</type>
<tablerow>1</tablerow>
<text>{3}, {T}: Target creature you control gains deathtouch until end of turn.</text>
</card>
<card>
<name>Cloak of the Philosopher</name>
<set picURL="http://deckmaster.info/images/cards/JOU/-66837-hr.jpg">CTH</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Hero Artifact — Equipment</type>
<tablerow>1</tablerow>
<text>Equipped creature gets +1/+1. {2}: Untap equipped creature. Equip {2}</text>
</card>
<card>
<name>Garruk the Slayer</name>
<set picURL="http://s3.gatheringmagic.com.s3.amazonaws.com/uploads/2014/06/23/garruk-the-slayer.png">M15</set>
<color></color>
<manacost></manacost>
<cmc>0</cmc>
<type>Planeswalker - Garruk</type>
<tablerow>2</tablerow>
<text>0: Put a 2/2 green Wolf creature token onto the battlefield.
+4: Target Wolf creature gets +1/+0 and gains deathtouch until end of turn.
-10: Destroy target creature. Put loyalty counters on Garruk the Slayer equal to that creature's toughness.
-25: Destroy all creatures Garruk the Slayer doesn't control.</text>
<loyalty>20</loyalty>
</card>
</cards>
</cockatrice_carddatabase>

13
scripts/README.md Normal file
View File

@ -0,0 +1,13 @@
## Scripts
[`update_image_links`](https://github.com/Cockatrice/Magic-Token/blob/master/scripts/update_image_links.py)
This script changes the links from the old CDN on c1.scryfall.com to the new CDN on cards.scryfall.io.
It reads a tokens.xml file containing CDN picURLs of either version, makes requests to the Scryfall API
to receive the most up-to-date URLs for each token, and generates an output file.
`--inplace / -i` will update the input file
`--output / -o` will create a new file of your choice
Basic call to run the script:
```
python3 update_image_links.py tokens.xml -i
```

View File

@ -0,0 +1,185 @@
"""
This script parses a token.xml file, collects the picURLs of cards within, and replaces
the links to Scryfall images with up-to-date URLs by querying Scryfall's API.
"""
from xml.sax import saxutils, make_parser, handler
from urllib.parse import urlsplit
from urllib.request import Request, urlopen
import itertools
import json
import sys
import time
import os
import tempfile
import pathlib
import shutil
SCRYFALL_MAX_LIST_SIZE = 75
def cards_collection(identifiers):
"""
Get information about a set of cards using the Scryfall API.
This simply returns a list of dictionaries representing the Card objects as
returned by the /card/collection Scryfall API.
If the list of identifiers is larger than Scryfall's API limit,
cards_collection automatically splits the list into smaller chunks and
makes multiple requests.
"""
start_time = 0
n = 0
while n < len(identifiers):
chunk = identifiers[n:n + SCRYFALL_MAX_LIST_SIZE]
print("Requesting chunk {}-{}/{}...".format(n, n + len(chunk), len(identifiers)))
n += SCRYFALL_MAX_LIST_SIZE
payload = json.dumps({'identifiers': chunk}).encode('utf-8')
req = Request('https://api.scryfall.com/cards/collection', payload,
headers={'Content-Type': 'application/json'})
# Rate limiting
cur_time = time.time()
delta_time = cur_time - start_time
if delta_time < 0.1:
time.sleep(0.1 - delta_time)
start_time = time.time()
with urlopen(req) as f:
list_obj = json.load(f)
assert not list_obj.get('has_more', False)
assert 'warnings' not in list_obj
yield from list_obj['data']
def parse_picurl(picurl):
"""
Parse a Scryfall picURL into its components.
The Scryfall picURL must be in one of those forms:
- https://c1.scryfall.com/file/scryfall-cards/<version>/<face>/*/*/<uuid>.jpg
- https://cards.scryfall.io/<version>/<face>/*/*/<uuid>.jpg
If it is, a dictionary with keys 'uuid', 'version' and 'face' is returned.
Otherwise, an empty dictionary is returned.
"""
obj = {}
urlinfo = urlsplit(picurl)
if urlinfo.netloc == 'c1.scryfall.com':
parts = urlinfo.path.split('/')
obj['version'] = parts[3]
obj['face'] = parts[4]
obj['uuid'] = parts[-1].rsplit('.')[0]
elif urlinfo.netloc == 'cards.scryfall.io':
parts = urlinfo.path.split('/')
obj['version'] = parts[1]
obj['face'] = parts[2]
obj['uuid'] = parts[-1].rsplit('.')[0]
return obj
class URLCollector(handler.ContentHandler):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.urls = []
def startElement(self, name, attrs):
if name == 'set' and 'picURL' in attrs:
obj = parse_picurl(attrs['picURL'])
if obj:
assert 'uuid' in obj
self.urls.append(obj)
class URLRewriter(handler.LexicalHandler, saxutils.XMLGenerator):
def __init__(self, images, **kwargs):
super().__init__(**kwargs)
self._images = images
self.started = False
def startElement(self, name, attrs):
self.started = True
if name == 'set' and 'picURL' in attrs:
obj = parse_picurl(attrs['picURL'])
if 'uuid' in obj and obj['uuid'] in self._images:
new_url = self._images[obj['uuid']][obj['face']][obj['version']]
if parse_picurl(new_url) != obj:
raise RuntimeError(
"URL `{}` was rewritten to `{}` that no longer resolves to the same card (hint: update parse_picurl).".format(
attrs['picURL'], new_url))
attrs = dict(attrs, picURL=new_url)
super().startElement(name, attrs)
def endDocument(self):
super().endDocument()
self._write('\n')
def comment(self, content):
self.ignorableWhitespace('<!--{}-->{}'.format(content, '' if self.started else '\n'))
def collect_urls(fname):
parser = make_parser()
uc = URLCollector()
parser.setContentHandler(uc)
parser.parse(fname)
return uc.urls
def rewrite_urls(fname, images, *, out=None):
parser = make_parser()
ur = URLRewriter(images, out=out, encoding='UTF-8')
parser.setContentHandler(ur)
parser.setProperty(handler.property_lexical_handler, ur)
parser.parse(fname)
def main(fname, *, out=None):
urls = collect_urls(fname)
identifiers = {obj['uuid'] for obj in urls}
identifiers = [{'id': uuid} for uuid in identifiers]
images = {}
for card in cards_collection(identifiers):
assert card['id'] not in images
if 'image_uris' in card:
images[card['id']] = {'front': card['image_uris']}
else:
assert 'card_faces' in card and len(card['card_faces']) == 2
images[card['id']] = {
'front': card['card_faces'][0]['image_uris'],
'back': card['card_faces'][1]['image_uris'],
}
rewrite_urls(fname, images, out=out)
if __name__ == '__main__':
import argparse
parser = argparse.ArgumentParser(
description='Helper script to refresh scryfall image URLs')
parser.add_argument('filename', nargs='?', default='tokens.xml')
output_group = parser.add_mutually_exclusive_group(required=True)
output_group.add_argument('--output', '-o')
output_group.add_argument('--inplace', '-i', action='store_true')
ns = parser.parse_args()
if ns.inplace:
outpath = pathlib.Path(ns.filename)
else:
outpath = pathlib.Path(ns.output)
fd, temppath = tempfile.mkstemp(dir=outpath.parent)
try:
main(ns.filename, out=os.fdopen(fd, mode='w+b'))
os.replace(temppath, outpath)
except:
os.unlink(temppath)
raise

14776
tokens.xml

File diff suppressed because it is too large Load Diff

View File

@ -1 +1 @@
20210713
20260307