From c0f263599055edb6d6f5126397c33563716f8864 Mon Sep 17 00:00:00 2001 From: Vittorio Alfieri Date: Thu, 1 Jun 2023 19:04:28 +0200 Subject: [PATCH] Fixed ONE, ONC, NEO and DMR dat file, added new primitives from ONC set, fixed primitives, improved Android downloader, updated missing card by set list, updated cards image url links, fixed a bug on parser when reading the substring "equip" with a different meaning. --- .../src/net/wagic/utils/ImgDownloader.java | 12 +- projects/mtg/CardImageLinks.csv | 207 +++++++++ .../mtg/bin/Res/missing_cards_by_sets/ONC.txt | 12 + .../missing_cards_by_sets/missingCardList.txt | 27 -- projects/mtg/bin/Res/sets/DMR/_cards.dat | 177 +++++++- projects/mtg/bin/Res/sets/NEO/_cards.dat | 317 +++++++++++++- projects/mtg/bin/Res/sets/ONC/_cards.dat | 262 +++++++++++- projects/mtg/bin/Res/sets/ONE/_cards.dat | 287 ++++++++++++- .../bin/Res/sets/primitives/borderline.txt | 393 +++++++++++++++--- .../bin/Res/sets/primitives/unsupported.txt | 6 + projects/mtg/src/MTGAbility.cpp | 3 +- 11 files changed, 1616 insertions(+), 87 deletions(-) diff --git a/projects/mtg/Android/src/net/wagic/utils/ImgDownloader.java b/projects/mtg/Android/src/net/wagic/utils/ImgDownloader.java index ed31308b1..711852a5f 100644 --- a/projects/mtg/Android/src/net/wagic/utils/ImgDownloader.java +++ b/projects/mtg/Android/src/net/wagic/utils/ImgDownloader.java @@ -3964,7 +3964,8 @@ public class ImgDownloader { || scryset.equals("HTR18") || scryset.equals("HTR19") || scryset.equals("DKM") || scryset.equals("S00") || scryset.equals("XLN") || scryset.equals("SOI") || scryset.equals("UST") || scryset.equals("PLG21") || scryset.equals("J21") || scryset.equals("CC2") || scryset.equals("Q06") || scryset.equals("DBL") || scryset.equals("Y22") | scryset.equals("CLB") || scryset.equals("MOM") - || scryset.equals("MOC") || scryset.equals("BRO") || scryset.equals("MAT") || scryset.equals("BRC") || scryset.equals("BRR")){ + || scryset.equals("MOC") || scryset.equals("BRO") || scryset.equals("MAT") || scryset.equals("BRC") || scryset.equals("BRR") + || scryset.equals("NEO") || scryset.equals("ONE") || scryset.equals("ONC") || scryset.equals("DMR")){ try { doc = Jsoup.connect(imageurl + scryset.toLowerCase()).get(); Elements outlinks = doc.select("body a"); @@ -4132,7 +4133,8 @@ public class ImgDownloader { && !scryset.equals("HTR18") && !scryset.equals("HTR19") && !scryset.equals("DKM") && !scryset.equals("S00") && !scryset.equals("XLN") && !scryset.equals("SOI") && !scryset.equals("UST") && !scryset.equals("PLG21") && !scryset.equals("J21") && !scryset.equals("CC2") && !scryset.equals("Q06") && !scryset.equals("DBL") && !scryset.equals("Y22") && !scryset.equals("CLB") && !scryset.equals("MOM") - && !scryset.equals("MOC") && !scryset.equals("BRO") && !scryset.equals("MAT") && !scryset.equals("BRC") && !scryset.equals("BRR")){ + && !scryset.equals("MOC") && !scryset.equals("BRO") && !scryset.equals("MAT") && !scryset.equals("BRC") && !scryset.equals("BRR") + && !scryset.equals("NEO") && !scryset.equals("ONE") && !scryset.equals("ONC") && !scryset.equals("DMR")){ try { doc = Jsoup.connect(imageurl + scryset.toLowerCase()).get(); Elements outlinks = doc.select("body a"); @@ -4251,7 +4253,8 @@ public class ImgDownloader { && !scryset.equals("HTR18") && !scryset.equals("HTR19") && !scryset.equals("DKM") && !scryset.equals("S00") && !scryset.equals("XLN") && !scryset.equals("SOI") && !scryset.equals("UST") && !scryset.equals("PLG21") && !scryset.equals("J21") && !scryset.equals("CC2") && !scryset.equals("Q06") && !scryset.equals("DBL") && !scryset.equals("Y22") && !scryset.equals("CLB") && !scryset.equals("MOM") - && !scryset.equals("MOC") && !scryset.equals("BRO") && !scryset.equals("MAT") && !scryset.equals("BRC") && !scryset.equals("BRR")){ + && !scryset.equals("MOC") && !scryset.equals("BRO") && !scryset.equals("MAT") && !scryset.equals("BRC") && !scryset.equals("BRR") + && !scryset.equals("NEO") && !scryset.equals("ONE") && !scryset.equals("ONC") && !scryset.equals("DMR")){ try { doc = Jsoup.connect(imageurl + scryset.toLowerCase()).get(); } catch (Exception e) { @@ -4422,7 +4425,8 @@ public class ImgDownloader { || scryset.equals("HTR19") || scryset.equals("DKM") || scryset.equals("S00") || scryset.equals("XLN") || scryset.equals("SOI") || scryset.equals("UST") || scryset.equals("PLG21") || scryset.equals("J21") || scryset.equals("CC2") || scryset.equals("Q06") || scryset.equals("DBL") || scryset.equals("Y22") || scryset.equals("CLB") || scryset.equals("MOM") || scryset.equals("MOC") - || scryset.equals("BRO") || scryset.equals("MAT") || scryset.equals("BRC") || scryset.equals("BRR")){ + || scryset.equals("BRO") || scryset.equals("MAT") || scryset.equals("BRC") || scryset.equals("BRR") || scryset.equals("NEO") + || scryset.equals("ONE") || scryset.equals("ONC") || scryset.equals("DMR")){ Elements metadata = doc.select("head meta"); if(metadata != null) { for (int j = 0; j < metadata.size(); j++){ diff --git a/projects/mtg/CardImageLinks.csv b/projects/mtg/CardImageLinks.csv index 7eecc836d..a00f9335d 100644 --- a/projects/mtg/CardImageLinks.csv +++ b/projects/mtg/CardImageLinks.csv @@ -58743,6 +58743,69 @@ NEC;554259;https://cards.scryfall.io/large/front/8/0/8053114b-c8a2-4634-b0e0-79f NEC;554260;https://cards.scryfall.io/large/front/d/b/db4f8604-4c00-4efa-819f-f643a78e4119.jpg NEC;554261;https://cards.scryfall.io/large/front/1/f/1f539604-8847-45c7-9934-532583c42eab.jpg NEC;554262;https://cards.scryfall.io/large/front/9/9/999538db-d65c-481b-82c8-ff7f71736c82.jpg +NEO;548293t;https://cards.scryfall.io/large/front/f/6/f68e5337-6e44-4f8f-a102-2f97b433beea.jpg +NEO;548297t;https://cards.scryfall.io/large/front/b/e/be84f259-2809-48c9-9c70-861437f08c23.jpg +NEO;548307t;https://cards.scryfall.io/large/front/c/a/ca20548f-6324-4858-adbe-87303ff1ca52.jpg +NEO;548310t;https://cards.scryfall.io/large/front/f/6/f68e5337-6e44-4f8f-a102-2f97b433beea.jpg +NEO;548329t;https://cards.scryfall.io/large/front/c/a/ca20548f-6324-4858-adbe-87303ff1ca52.jpg +NEO;548337t;https://cards.scryfall.io/large/front/f/6/f68e5337-6e44-4f8f-a102-2f97b433beea.jpg +NEO;548371t;https://cards.scryfall.io/large/front/6/9/6911181d-573b-41eb-96a4-799c96e008fc.jpg +NEO;548424t;https://cards.scryfall.io/large/front/f/b/fbb5b3f9-0012-4deb-b795-c377cdfe546b.jpg +NEO;548425t;https://cards.scryfall.io/large/front/6/9/695f72ea-13e6-40ab-afc7-55657701c82d.jpg +NEO;548432t;https://cards.scryfall.io/large/front/c/a/ca20548f-6324-4858-adbe-87303ff1ca52.jpg +NEO;548440t;https://cards.scryfall.io/large/front/f/6/f68e5337-6e44-4f8f-a102-2f97b433beea.jpg +NEO;548443t;https://cards.scryfall.io/large/front/0/d/0d9461c3-f545-4efb-926e-759961db0495.jpg +NEO;548446t;https://cards.scryfall.io/large/front/c/2/c20e427c-efa5-476c-aa33-e3149648d207.jpg +NEO;548448t;https://cards.scryfall.io/large/front/a/4/a4c06e08-2026-471d-a6d0-bbb0f040420a.jpg +NEO;548469t;https://cards.scryfall.io/large/front/c/b/cbafdfc0-380a-482b-b5f8-a7a00ecf8da6.jpg +NEO;548485t;https://cards.scryfall.io/large/front/8/6/86dd086e-c757-4a6a-8838-51860f2095f8.jpg +NEO;548501t;https://cards.scryfall.io/large/front/0/f/0f48aaab-dd6e-4bcc-a8fb-d31dd4a098ba.jpg +NEO;548502t;https://cards.scryfall.io/large/front/8/6/86dd086e-c757-4a6a-8838-51860f2095f8.jpg +NEO;548509t;https://cards.scryfall.io/large/front/d/2/d237377d-b79b-4f27-a142-e2c1756e0d94.jpg +NEO;548522t;https://cards.scryfall.io/large/front/c/a/ca20548f-6324-4858-adbe-87303ff1ca52.jpg +NEO;548523t;https://cards.scryfall.io/large/front/c/a/ca20548f-6324-4858-adbe-87303ff1ca52.jpg +NEO;548528t;https://cards.scryfall.io/large/front/f/6/f68e5337-6e44-4f8f-a102-2f97b433beea.jpg +NEO;548538t;https://cards.scryfall.io/large/front/1/4/14eb629e-f09f-4deb-b434-7615a3010a4d.jpg +NEO;548542t;https://cards.scryfall.io/large/front/f/6/f68e5337-6e44-4f8f-a102-2f97b433beea.jpg +NEO;548543t;https://cards.scryfall.io/large/front/2/7/2770f887-7e96-44d1-864a-8c0504a39785.jpg +NEO;548544t;https://cards.scryfall.io/large/front/b/e/be84f259-2809-48c9-9c70-861437f08c23.jpg +NEO;548562t;https://cards.scryfall.io/large/front/c/b/cbafdfc0-380a-482b-b5f8-a7a00ecf8da6.jpg +NEO;548568t;https://cards.scryfall.io/large/front/b/e/be84f259-2809-48c9-9c70-861437f08c23.jpg +NEO;548571t;https://cards.scryfall.io/large/front/c/a/ca20548f-6324-4858-adbe-87303ff1ca52.jpg +NEO;548589t;https://cards.scryfall.io/large/front/c/a/ca20548f-6324-4858-adbe-87303ff1ca52.jpg +NEO;551646t;https://cards.scryfall.io/large/front/f/6/f68e5337-6e44-4f8f-a102-2f97b433beea.jpg +NEO;551648t;https://cards.scryfall.io/large/front/1/4/14eb629e-f09f-4deb-b434-7615a3010a4d.jpg +NEO;553225t;https://cards.scryfall.io/large/front/f/6/f68e5337-6e44-4f8f-a102-2f97b433beea.jpg +NEO;553229t;https://cards.scryfall.io/large/front/a/4/a4c06e08-2026-471d-a6d0-bbb0f040420a.jpg +NEO;552715t;https://cards.scryfall.io/large/front/6/9/6911181d-573b-41eb-96a4-799c96e008fc.jpg +NEO;552724t;https://cards.scryfall.io/large/front/f/b/fbb5b3f9-0012-4deb-b795-c377cdfe546b.jpg +NEO;552729t;https://cards.scryfall.io/large/front/1/4/14eb629e-f09f-4deb-b434-7615a3010a4d.jpg +NEO;553021t;https://cards.scryfall.io/large/front/c/a/ca20548f-6324-4858-adbe-87303ff1ca52.jpg +NEO;553024t;https://cards.scryfall.io/large/front/6/9/695f72ea-13e6-40ab-afc7-55657701c82d.jpg +NEO;553026t;https://cards.scryfall.io/large/front/0/d/0d9461c3-f545-4efb-926e-759961db0495.jpg +NEO;553030t;https://cards.scryfall.io/large/front/8/6/86dd086e-c757-4a6a-8838-51860f2095f8.jpg +NEO;553032t;https://cards.scryfall.io/large/front/c/a/ca20548f-6324-4858-adbe-87303ff1ca52.jpg +NEO;553033t;https://cards.scryfall.io/large/front/c/a/ca20548f-6324-4858-adbe-87303ff1ca52.jpg +NEO;552264t;https://cards.scryfall.io/large/front/0/f/0f48aaab-dd6e-4bcc-a8fb-d31dd4a098ba.jpg +NEO;552270t;https://cards.scryfall.io/large/front/f/6/f68e5337-6e44-4f8f-a102-2f97b433beea.jpg +NEO;552276t;https://cards.scryfall.io/large/front/c/b/cbafdfc0-380a-482b-b5f8-a7a00ecf8da6.jpg +NEO;552278t;https://cards.scryfall.io/large/front/b/e/be84f259-2809-48c9-9c70-861437f08c23.jpg +NEO;552121t;https://cards.scryfall.io/large/front/d/2/d237377d-b79b-4f27-a142-e2c1756e0d94.jpg +NEO;552125t;https://cards.scryfall.io/large/front/c/a/ca20548f-6324-4858-adbe-87303ff1ca52.jpg +NEO;551716t;https://cards.scryfall.io/large/front/c/a/ca20548f-6324-4858-adbe-87303ff1ca52.jpg +NEO;551736t;https://cards.scryfall.io/large/front/f/b/fbb5b3f9-0012-4deb-b795-c377cdfe546b.jpg +NEO;551737t;https://cards.scryfall.io/large/front/6/9/695f72ea-13e6-40ab-afc7-55657701c82d.jpg +NEO;551741t;https://cards.scryfall.io/large/front/0/d/0d9461c3-f545-4efb-926e-759961db0495.jpg +NEO;551743t;https://cards.scryfall.io/large/front/a/4/a4c06e08-2026-471d-a6d0-bbb0f040420a.jpg +NEO;551752t;https://cards.scryfall.io/large/front/0/f/0f48aaab-dd6e-4bcc-a8fb-d31dd4a098ba.jpg +NEO;551753t;https://cards.scryfall.io/large/front/8/6/86dd086e-c757-4a6a-8838-51860f2095f8.jpg +NEO;551757t;https://cards.scryfall.io/large/front/d/2/d237377d-b79b-4f27-a142-e2c1756e0d94.jpg +NEO;551761t;https://cards.scryfall.io/large/front/c/a/ca20548f-6324-4858-adbe-87303ff1ca52.jpg +NEO;551762t;https://cards.scryfall.io/large/front/c/a/ca20548f-6324-4858-adbe-87303ff1ca52.jpg +NEO;551764t;https://cards.scryfall.io/large/front/f/6/f68e5337-6e44-4f8f-a102-2f97b433beea.jpg +NEO;551779t;https://cards.scryfall.io/large/front/c/b/cbafdfc0-380a-482b-b5f8-a7a00ecf8da6.jpg +NEO;551781t;https://cards.scryfall.io/large/front/b/e/be84f259-2809-48c9-9c70-861437f08c23.jpg +NEO;551786t;https://cards.scryfall.io/large/front/c/a/ca20548f-6324-4858-adbe-87303ff1ca52.jpg NEO;548291;https://cards.scryfall.io/large/front/d/9/d9b1ed43-ee6c-43a2-ba94-5bf71c63e070.jpg NEO;548292;https://cards.scryfall.io/large/front/8/d/8d2c4063-7322-4041-a870-b95598a03e29.jpg NEO;548293;https://cards.scryfall.io/large/front/e/4/e4b8946b-6604-49ca-98db-18a540b1b4e5.jpg @@ -63161,6 +63224,41 @@ BRR;587303;https://cards.scryfall.io/large/front/1/a/1aa26d85-6dfe-4359-9273-94f BRR;587304;https://cards.scryfall.io/large/front/7/e/7ecf647c-a7a1-455c-953d-753a24d6b1e8.jpg BRR;587305;https://cards.scryfall.io/large/front/0/4/045730ed-f19c-41dc-9b57-76068789e445.jpg BRR;587306;https://cards.scryfall.io/large/front/b/0/b045a766-73ee-4109-bede-2e1d71b80f2f.jpg +DMR;598876t;https://cards.scryfall.io/large/front/d/3/d3fdde92-dc2c-4ed0-b092-926ef9c091ad.jpg +DMR;598882t;https://cards.scryfall.io/large/front/c/a/caeea28b-c11b-4fa0-a64c-637bc58171cc.jpg +DMR;598938t;https://cards.scryfall.io/large/front/3/a/3acb4442-e7e5-482b-9ce8-f1af8069114e.jpg +DMR;598945t;https://cards.scryfall.io/large/front/4/a/4ad1fd1a-9c1e-4b01-974e-84f18d325cfc.jpg +DMR;598985t;https://cards.scryfall.io/large/front/c/7/c700cb99-1cee-455f-9a36-d7d9a79fed06.jpg +DMR;598992t;https://cards.scryfall.io/large/front/f/9/f9b8316a-ec6d-43de-a1c5-6ef3c5c53146.jpg +DMR;599005t;https://cards.scryfall.io/large/front/f/9/f9b8316a-ec6d-43de-a1c5-6ef3c5c53146.jpg +DMR;599007t;https://cards.scryfall.io/large/front/f/9/f9b8316a-ec6d-43de-a1c5-6ef3c5c53146.jpg +DMR;599010t;https://cards.scryfall.io/large/front/f/9/f9b8316a-ec6d-43de-a1c5-6ef3c5c53146.jpg +DMR;599021t;https://cards.scryfall.io/large/front/5/7/57ae1be7-f2f6-4aef-8764-4af5ca963c9e.jpg +DMR;599027t;https://cards.scryfall.io/large/front/c/b/cb05000b-0ac3-4856-b25d-c87c19bda451.jpg +DMR;599039t;https://cards.scryfall.io/large/front/0/7/07b58d5f-8a9f-4fd6-83d6-efe3a92e89b2.jpg +DMR;599045t;https://cards.scryfall.io/large/front/2/7/27f8ccb9-32b2-4562-a60f-843e82795984.jpg +DMR;599046t;https://cards.scryfall.io/large/front/0/5/05a61555-ddb9-4d55-b637-a219d772033d.jpg +DMR;599049t;https://cards.scryfall.io/large/front/c/7/c7bb00e4-7eb0-4f7d-b2c3-8995959a6e6a.jpg +DMR;599051t;https://cards.scryfall.io/large/front/2/7/27f8ccb9-32b2-4562-a60f-843e82795984.jpg +DMR;599054t;https://cards.scryfall.io/large/front/e/6/e662eefb-c454-44b9-8270-f2229e20024e.jpg +DMR;599072t;https://cards.scryfall.io/large/front/c/7/c7bb00e4-7eb0-4f7d-b2c3-8995959a6e6a.jpg +DMR;599118t;https://cards.scryfall.io/large/front/3/4/34db5e62-4792-4207-b008-7d62bae683a7.jpg +DMR;601365t;https://cards.scryfall.io/large/front/4/a/4ad1fd1a-9c1e-4b01-974e-84f18d325cfc.jpg +DMR;601387t;https://cards.scryfall.io/large/front/f/9/f9b8316a-ec6d-43de-a1c5-6ef3c5c53146.jpg +DMR;601395t;https://cards.scryfall.io/large/front/f/9/f9b8316a-ec6d-43de-a1c5-6ef3c5c53146.jpg +DMR;601397t;https://cards.scryfall.io/large/front/f/9/f9b8316a-ec6d-43de-a1c5-6ef3c5c53146.jpg +DMR;601399t;https://cards.scryfall.io/large/front/f/9/f9b8316a-ec6d-43de-a1c5-6ef3c5c53146.jpg +DMR;601402t;https://cards.scryfall.io/large/front/5/7/57ae1be7-f2f6-4aef-8764-4af5ca963c9e.jpg +DMR;601412t;https://cards.scryfall.io/large/front/0/7/07b58d5f-8a9f-4fd6-83d6-efe3a92e89b2.jpg +DMR;601416t;https://cards.scryfall.io/large/front/2/7/27f8ccb9-32b2-4562-a60f-843e82795984.jpg +DMR;601417t;https://cards.scryfall.io/large/front/c/7/c7bb00e4-7eb0-4f7d-b2c3-8995959a6e6a.jpg +DMR;601418t;https://cards.scryfall.io/large/front/2/7/27f8ccb9-32b2-4562-a60f-843e82795984.jpg +DMR;601435t;https://cards.scryfall.io/large/front/c/7/c7bb00e4-7eb0-4f7d-b2c3-8995959a6e6a.jpg +DMR;601463t;https://cards.scryfall.io/large/front/3/4/34db5e62-4792-4207-b008-7d62bae683a7.jpg +DMR;600974t;https://cards.scryfall.io/large/front/4/a/4ad1fd1a-9c1e-4b01-974e-84f18d325cfc.jpg +DMR;600987t;https://cards.scryfall.io/large/front/f/9/f9b8316a-ec6d-43de-a1c5-6ef3c5c53146.jpg +DMR;600991t;https://cards.scryfall.io/large/front/2/7/27f8ccb9-32b2-4562-a60f-843e82795984.jpg +DMR;601005t;https://cards.scryfall.io/large/front/3/4/34db5e62-4792-4207-b008-7d62bae683a7.jpg DMR;598875;https://cards.scryfall.io/large/front/f/f/ffe359e9-2ac8-48ae-9a43-e2f12fd4a785.jpg DMR;598876;https://cards.scryfall.io/large/front/3/a/3a21cf44-4d8e-4b24-a1fe-4222c857f0ef.jpg DMR;598877;https://cards.scryfall.io/large/front/4/3/435b24ae-590f-4a79-8aeb-b006de6545ca.jpg @@ -63607,6 +63705,58 @@ DMR;601005;https://cards.scryfall.io/large/front/3/e/3e6ebe92-1ea2-4bfa-8464-851 DMR;601006;https://cards.scryfall.io/large/front/e/6/e65b459e-2756-4f66-b80d-4bdc1c1c9bae.jpg DMR;601007;https://cards.scryfall.io/large/front/7/2/7286bd95-0d8e-4b1a-b319-052fe2ae1951.jpg DMR;601323;https://cards.scryfall.io/large/front/1/b/1b73577a-8ca1-41d7-9b2b-7300286fde43.jpg +ONC;605671t;https://cards.scryfall.io/large/front/a/4/a41eb9df-d8b4-4697-a759-886faf16754d.jpg +ONC;605672t;https://cards.scryfall.io/large/front/a/0/a0b4b9cc-b0a4-4383-881b-e843e5d8a8c1.jpg +ONC;605688t;https://cards.scryfall.io/large/front/a/4/a41eb9df-d8b4-4697-a759-886faf16754d.jpg +ONC;605689t;https://cards.scryfall.io/large/front/a/4/a41eb9df-d8b4-4697-a759-886faf16754d.jpg +ONC;605692t;https://cards.scryfall.io/large/front/a/1/a171254d-7616-42c4-bd78-b2787fb973aa.jpg +ONC;605695t;https://cards.scryfall.io/large/front/a/4/a41eb9df-d8b4-4697-a759-886faf16754d.jpg +ONC;605696t;https://cards.scryfall.io/large/front/a/4/a41eb9df-d8b4-4697-a759-886faf16754d.jpg +ONC;605698t;https://cards.scryfall.io/large/front/6/2/621738c7-24f6-469e-9e44-8c80cd85ba08.jpg +ONC;605701t;https://cards.scryfall.io/large/front/5/9/594c55d3-d435-4dec-bc92-011442a43684.jpg +ONC;605456t;https://cards.scryfall.io/large/front/1/1/113959ba-be71-47ce-93e2-b81157034822.jpg +ONC;605458t;https://cards.scryfall.io/large/front/1/9/195b7790-7d01-48f4-a3d9-84ea94fc79ef.jpg +ONC;605520t;https://cards.scryfall.io/large/front/1/1/113959ba-be71-47ce-93e2-b81157034822.jpg +ONC;605523t;https://cards.scryfall.io/large/front/a/4/a41eb9df-d8b4-4697-a759-886faf16754d.jpg +ONC;605524t;https://cards.scryfall.io/large/front/a/0/a0b4b9cc-b0a4-4383-881b-e843e5d8a8c1.jpg +ONC;605526t;https://cards.scryfall.io/large/front/1/9/195b7790-7d01-48f4-a3d9-84ea94fc79ef.jpg +ONC;605576t;https://cards.scryfall.io/large/front/a/4/a41eb9df-d8b4-4697-a759-886faf16754d.jpg +ONC;605577t;https://cards.scryfall.io/large/front/a/4/a41eb9df-d8b4-4697-a759-886faf16754d.jpg +ONC;605580t;https://cards.scryfall.io/large/front/a/1/a171254d-7616-42c4-bd78-b2787fb973aa.jpg +ONC;605583t;https://cards.scryfall.io/large/front/a/4/a41eb9df-d8b4-4697-a759-886faf16754d.jpg +ONC;605584t;https://cards.scryfall.io/large/front/a/4/a41eb9df-d8b4-4697-a759-886faf16754d.jpg +ONC;605586t;https://cards.scryfall.io/large/front/6/2/621738c7-24f6-469e-9e44-8c80cd85ba08.jpg +ONC;605589t;https://cards.scryfall.io/large/front/5/9/594c55d3-d435-4dec-bc92-011442a43684.jpg +ONC;605799t;https://cards.scryfall.io/large/front/2/e/2e5db619-2ccc-4e5b-bf74-0f8ed77afad9.jpg +ONC;605800t;https://cards.scryfall.io/large/front/4/9/493bb455-ee32-4cbe-bcaa-8df5b16e7b96.jpg +ONC;605802t;https://cards.scryfall.io/large/front/a/1/a171254d-7616-42c4-bd78-b2787fb973aa.jpg +ONC;605804t;https://cards.scryfall.io/large/front/4/9/493bb455-ee32-4cbe-bcaa-8df5b16e7b96.jpg +ONC;605805t;https://cards.scryfall.io/large/front/2/e/2e5db619-2ccc-4e5b-bf74-0f8ed77afad9.jpg +ONC;605806t;https://cards.scryfall.io/large/front/0/5/0537522a-1f4f-4a81-a678-6b280ebc29fc.jpg +ONC;605807t;https://cards.scryfall.io/large/front/f/1/f1684175-6e03-4934-92e3-e2a32725f7f9.jpg +ONC;605810t;https://cards.scryfall.io/large/front/0/3/0305cc06-f0c2-4ac1-8717-9720cb97d269.jpg +ONC;605814t;https://cards.scryfall.io/large/front/3/4/34e52e1d-dcf7-485c-a29f-78e75581c3a4.jpg +ONC;605816t;https://cards.scryfall.io/large/front/3/4/34e52e1d-dcf7-485c-a29f-78e75581c3a4.jpg +ONC;605819t;https://cards.scryfall.io/large/front/4/9/493bb455-ee32-4cbe-bcaa-8df5b16e7b96.jpg +ONC;605822t;https://cards.scryfall.io/large/front/a/1/a171254d-7616-42c4-bd78-b2787fb973aa.jpg +ONC;605826t;https://cards.scryfall.io/large/front/6/6/661297e0-f8cb-402c-be33-67d3d218ce98.jpg +ONC;605827t;https://cards.scryfall.io/large/front/4/6/461532a6-ef9c-4a9b-9815-3b5158ada976.jpg +ONC;605828t;https://cards.scryfall.io/large/front/5/2/52cf8f6b-2334-4881-8f58-4e11745c8851.jpg +ONC;605830t;https://cards.scryfall.io/large/front/1/1/11011596-4aa1-48a7-90d8-36cb7b27c711.jpg +ONC;605838t;https://cards.scryfall.io/large/front/3/1/312ea78e-a4e6-4c66-9fd7-62dc7822d89e.jpg +ONC;605840t;https://cards.scryfall.io/large/front/5/1/51782bd0-178e-40e2-9c4f-8ea4e8e11345.jpg +ONC;605841t;https://cards.scryfall.io/large/front/5/1/51782bd0-178e-40e2-9c4f-8ea4e8e11345.jpg +ONC;605842t;https://cards.scryfall.io/large/front/4/e/4e076b7f-14f3-4ce2-83f9-a18ccb2b755f.jpg +ONC;605843t;https://cards.scryfall.io/large/front/5/1/51782bd0-178e-40e2-9c4f-8ea4e8e11345.jpg +ONC;605844t;https://cards.scryfall.io/large/front/4/7/47239704-652c-49a7-9011-30f1f7d0078f.jpg +ONC;605846t;https://cards.scryfall.io/large/front/5/a/5a90e8ab-5a76-4834-9cd6-186af939ea41.jpg +ONC;605851t;https://cards.scryfall.io/large/front/5/a/5a90e8ab-5a76-4834-9cd6-186af939ea41.jpg +ONC;605855t;https://cards.scryfall.io/large/front/4/9/493bb455-ee32-4cbe-bcaa-8df5b16e7b96.jpg +ONC;605858t;https://cards.scryfall.io/large/front/4/9/493bb455-ee32-4cbe-bcaa-8df5b16e7b96.jpg +ONC;605874t;https://cards.scryfall.io/large/front/3/e/3e66f1df-e269-458a-8197-1e8145c7678e.jpg +ONC;605878t;https://cards.scryfall.io/large/front/1/9/195b7790-7d01-48f4-a3d9-84ea94fc79ef.jpg +ONC;605889t;https://cards.scryfall.io/large/front/3/4/34e52e1d-dcf7-485c-a29f-78e75581c3a4.jpg +ONC;605897t;https://cards.scryfall.io/large/front/6/7/67615047-1b17-4dc1-80d2-2d5da109db94.jpg ONC;605655;https://cards.scryfall.io/large/front/a/b/ab866ec4-dcb4-47ef-8de1-a369986609c0.jpg ONC;605656;https://cards.scryfall.io/large/front/2/b/2b5df03d-2463-468b-b444-d946eeb1c96d.jpg ONC;605671;https://cards.scryfall.io/large/front/8/0/80c72839-0fa6-4b5f-83b7-6553ebf09bef.jpg @@ -63779,6 +63929,63 @@ ONC;605911;https://cards.scryfall.io/large/front/f/b/fbf1b2c3-88ee-4b9b-b589-aa9 ONC;605912;https://cards.scryfall.io/large/front/2/2/22065361-26c5-4c5f-8b79-638d9116493a.jpg ONC;605913;https://cards.scryfall.io/large/front/f/3/f39ed855-ec59-422e-931c-0562a8f9a28b.jpg ONC;605914;https://cards.scryfall.io/large/front/8/4/845ea0c2-c115-4fe5-a945-6ae5e0f7d722.jpg +ONE;602534t;https://cards.scryfall.io/large/front/9/6/96ec91a9-659a-455f-98e0-cd30b6c6c2a4.jpg +ONE;602536t;https://cards.scryfall.io/large/front/9/6/96ec91a9-659a-455f-98e0-cd30b6c6c2a4.jpg +ONE;602538t;https://cards.scryfall.io/large/front/9/6/96ec91a9-659a-455f-98e0-cd30b6c6c2a4.jpg +ONE;602541t;https://cards.scryfall.io/large/front/7/0/70750c90-3856-4d6d-923b-2ab91b1d7049.jpg +ONE;602543t;https://cards.scryfall.io/large/front/a/4/a41eb9df-d8b4-4697-a759-886faf16754d.jpg +ONE;602544t;https://cards.scryfall.io/large/front/a/4/a41eb9df-d8b4-4697-a759-886faf16754d.jpg +ONE;602546t;https://cards.scryfall.io/large/front/9/6/96ec91a9-659a-455f-98e0-cd30b6c6c2a4.jpg +ONE;602547t;https://cards.scryfall.io/large/front/9/6/96ec91a9-659a-455f-98e0-cd30b6c6c2a4.jpg +ONE;602549t;https://cards.scryfall.io/large/front/1/1/11011596-4aa1-48a7-90d8-36cb7b27c711.jpg +ONE;602552t;https://cards.scryfall.io/large/front/a/4/a41eb9df-d8b4-4697-a759-886faf16754d.jpg +ONE;602564t;https://cards.scryfall.io/large/front/9/6/96ec91a9-659a-455f-98e0-cd30b6c6c2a4.jpg +ONE;602568t;https://cards.scryfall.io/large/front/9/6/96ec91a9-659a-455f-98e0-cd30b6c6c2a4.jpg +ONE;602572t;https://cards.scryfall.io/large/front/a/4/a41eb9df-d8b4-4697-a759-886faf16754d.jpg +ONE;602640t;https://cards.scryfall.io/large/front/9/6/96ec91a9-659a-455f-98e0-cd30b6c6c2a4.jpg +ONE;602651t;https://cards.scryfall.io/large/front/a/4/a41eb9df-d8b4-4697-a759-886faf16754d.jpg +ONE;602656t;https://cards.scryfall.io/large/front/3/6/3663e79b-2bf9-44af-a638-c0ad9067d8d4.jpg +ONE;602657t;https://cards.scryfall.io/large/front/3/6/3663e79b-2bf9-44af-a638-c0ad9067d8d4.jpg +ONE;602658t;https://cards.scryfall.io/large/front/a/4/a41eb9df-d8b4-4697-a759-886faf16754d.jpg +ONE;602664t;https://cards.scryfall.io/large/front/3/6/3663e79b-2bf9-44af-a638-c0ad9067d8d4.jpg +ONE;602666t;https://cards.scryfall.io/large/front/a/4/a41eb9df-d8b4-4697-a759-886faf16754d.jpg +ONE;602683t;https://cards.scryfall.io/large/front/d/a/da13c90f-9ed2-4262-88e2-17daa294537b.jpg +ONE;602686t;https://cards.scryfall.io/large/front/a/4/a41eb9df-d8b4-4697-a759-886faf16754d.jpg +ONE;602701t;https://cards.scryfall.io/large/front/6/3/63ace2fa-8cfb-4641-a05c-d12830378e03.jpg? +ONE;602705t;https://cards.scryfall.io/large/front/1/f/1f5fc2cb-a172-418a-a0f3-1a63a5f1aa2c.jpg +ONE;602714t;https://cards.scryfall.io/large/front/a/4/a41eb9df-d8b4-4697-a759-886faf16754d.jpg +ONE;602724t;https://cards.scryfall.io/large/front/9/1/919381b0-2d23-4794-b4ff-923c23e18196.jpg +ONE;602727t;https://cards.scryfall.io/large/front/a/4/a41eb9df-d8b4-4697-a759-886faf16754d.jpg +ONE;602729t;https://cards.scryfall.io/large/front/3/6/3663e79b-2bf9-44af-a638-c0ad9067d8d4.jpg +ONE;602734t;https://cards.scryfall.io/large/front/c/f/cfacac5f-7685-4792-9e4c-166d4b421240.jpg +ONE;602737t;https://cards.scryfall.io/large/front/9/1/919381b0-2d23-4794-b4ff-923c23e18196.jpg +ONE;602738t;https://cards.scryfall.io/large/front/6/3/63ace2fa-8cfb-4641-a05c-d12830378e03.jpg +ONE;602743t;https://cards.scryfall.io/large/front/3/6/3663e79b-2bf9-44af-a638-c0ad9067d8d4.jpg +ONE;602744t;https://cards.scryfall.io/large/front/9/6/96ec91a9-659a-455f-98e0-cd30b6c6c2a4.jpg +ONE;602749t;https://cards.scryfall.io/large/front/5/4/54e0cbfa-a7f9-49a6-9bca-4a08f5b8da93.jpg +ONE;602784t;https://cards.scryfall.io/large/front/9/6/96ec91a9-659a-455f-98e0-cd30b6c6c2a4.jpg +ONE;604961t;https://cards.scryfall.io/large/front/a/4/a41eb9df-d8b4-4697-a759-886faf16754d.jpg +ONE;605124t;https://cards.scryfall.io/large/front/6/3/63ace2fa-8cfb-4641-a05c-d12830378e03.jpg +ONE;605126t;https://cards.scryfall.io/large/front/3/6/3663e79b-2bf9-44af-a638-c0ad9067d8d4.jpg +ONE;605127t;https://cards.scryfall.io/large/front/9/6/96ec91a9-659a-455f-98e0-cd30b6c6c2a4.jpg +ONE;605128t;https://cards.scryfall.io/large/front/5/4/54e0cbfa-a7f9-49a6-9bca-4a08f5b8da93.jpg +ONE;605448t;https://cards.scryfall.io/large/front/1/f/1f5fc2cb-a172-418a-a0f3-1a63a5f1aa2c.jpg +ONE;605449t;https://cards.scryfall.io/large/front/9/1/919381b0-2d23-4794-b4ff-923c23e18196.jpg +ONE;605406t;https://cards.scryfall.io/large/front/1/1/11011596-4aa1-48a7-90d8-36cb7b27c711.jpg +ONE;605326t;https://cards.scryfall.io/large/front/7/0/70750c90-3856-4d6d-923b-2ab91b1d7049.jpg +ONE;605330t;https://cards.scryfall.io/large/front/1/f/1f5fc2cb-a172-418a-a0f3-1a63a5f1aa2c.jpg +ONE;605331t;https://cards.scryfall.io/large/front/c/f/cfacac5f-7685-4792-9e4c-166d4b421240.jpg +ONE;605333t;https://cards.scryfall.io/large/front/9/1/919381b0-2d23-4794-b4ff-923c23e18196.jpg +ONE;604748t;https://cards.scryfall.io/large/front/9/6/96ec91a9-659a-455f-98e0-cd30b6c6c2a4.jpg +ONE;604749t;https://cards.scryfall.io/large/front/9/6/96ec91a9-659a-455f-98e0-cd30b6c6c2a4.jpg +ONE;604750t;https://cards.scryfall.io/large/front/a/4/a41eb9df-d8b4-4697-a759-886faf16754d.jpg +ONE;604757t;https://cards.scryfall.io/large/front/a/4/a41eb9df-d8b4-4697-a759-886faf16754d.jpg +ONE;604759t;https://cards.scryfall.io/large/front/d/a/da13c90f-9ed2-4262-88e2-17daa294537b.jpg +ONE;604772t;https://cards.scryfall.io/large/front/9/6/96ec91a9-659a-455f-98e0-cd30b6c6c2a4.jpg +ONE;604917t;https://cards.scryfall.io/large/front/a/0/a0b4b9cc-b0a4-4383-881b-e843e5d8a8c1.jpg +ONE;604921t;https://cards.scryfall.io/large/front/9/1/919381b0-2d23-4794-b4ff-923c23e18196.jpg +ONE;604892t;https://cards.scryfall.io/large/front/a/0/a0b4b9cc-b0a4-4383-881b-e843e5d8a8c1.jpg +ONE;604896t;https://cards.scryfall.io/large/front/9/1/919381b0-2d23-4794-b4ff-923c23e18196.jpg ONE;602531;https://cards.scryfall.io/large/front/3/c/3cd8dd4e-6892-49d7-8fae-97d04f9f6c84.jpg ONE;602532;https://cards.scryfall.io/large/front/0/4/04baad61-1b51-4602-9e33-0de4a9f34793.jpg ONE;602533;https://cards.scryfall.io/large/front/8/a/8a973487-5def-4771-bb77-5748cbd2f469.jpg diff --git a/projects/mtg/bin/Res/missing_cards_by_sets/ONC.txt b/projects/mtg/bin/Res/missing_cards_by_sets/ONC.txt index f876d02df..6a9730e34 100644 --- a/projects/mtg/bin/Res/missing_cards_by_sets/ONC.txt +++ b/projects/mtg/bin/Res/missing_cards_by_sets/ONC.txt @@ -4,3 +4,15 @@ text=({PW} can be paid with either {W} or 2 life.) -- Creatures can't attack you mana={3}{PW}{PW} type=Artifact [/card] +[card] +name=Lux Artillery +text=Whenever you cast an artifact creature spell, it gains sunburst. (It enters the battlefield with a +1/+1 counter on it for each color of mana spent to cast it.) -- At the beginning of your end step, if there are thirty or more counters among artifacts and creatures you control, Lux Artillery deals 10 damage to each opponent. +mana={4} +type=Artifact +[/card] +[card] +name=Lux Artillery +text=Whenever you cast an artifact creature spell, it gains sunburst. (It enters the battlefield with a +1/+1 counter on it for each color of mana spent to cast it.) -- At the beginning of your end step, if there are thirty or more counters among artifacts and creatures you control, Lux Artillery deals 10 damage to each opponent. +mana={4} +type=Artifact +[/card] diff --git a/projects/mtg/bin/Res/missing_cards_by_sets/missingCardList.txt b/projects/mtg/bin/Res/missing_cards_by_sets/missingCardList.txt index a664c9d60..e6c3f2a24 100644 --- a/projects/mtg/bin/Res/missing_cards_by_sets/missingCardList.txt +++ b/projects/mtg/bin/Res/missing_cards_by_sets/missingCardList.txt @@ -37,29 +37,6 @@ Isu the Abominable Agrus Kos, Eternal Soldier Star Pupil Sun Droplet -Otharri, Suns' Glory -Glistening Sphere -Wurmquake -Glissa's Retriever -Ixhel, Scion of Atraxa -Neyali, Suns' Vanguard -Chiss-Goria, Forge Tyrant -Synthesis Pod -Lux Artillery -Skyhunter Strike Force -Mirage Mockery -Staff of the Storyteller -Geth's Summons -Hexplate Wallbreaker -Roar of Resistance -Phyresis Outbreak -Goldwardens' Gambit -Vulshok Factory -Contaminant Grafter -Norn's Decree -Kemba's Banner -Clever Concealment -Glimmer Lens Elesh Norn, Mother of Machines Melira, the Living Cure Thrun, Breaker of Silence @@ -110,7 +87,6 @@ Venser, Corpse Puppet Slobad, Iron Goblin Solphim, Mayhem Dominus Capricious Hellraiser -Phyrexian Vindicator Skrelv, Defector Mite Drivnod, Carnage Dominus Tekuthal, Inquiry Dominus @@ -126,18 +102,15 @@ Maze's Mantle Lattice-Blade Mantis Noxious Assault Plague Nurse -Porcelain Zealot Vanish into Eternity Magmatic Sprinter Nahiri's Sacrifice Molten Rebuke Rebel Salvo -Compleat Devotion Churning Reservoir Bladehold War-Whip Forgehammer Centurion Slaughter Singer -Flensing Raptor Hexgold Slash Awaken the Sleeper All Will Be One diff --git a/projects/mtg/bin/Res/sets/DMR/_cards.dat b/projects/mtg/bin/Res/sets/DMR/_cards.dat index e15c46c16..735912be6 100644 --- a/projects/mtg/bin/Res/sets/DMR/_cards.dat +++ b/projects/mtg/bin/Res/sets/DMR/_cards.dat @@ -2,9 +2,184 @@ author=Wagic Team name=Dominaria Remastered year=2023-01-13 -total=467 +total=481 [/meta] [card] +primitive=Bird +id=-598876 +rarity=T +[/card] +[card] +primitive=Griffin +id=-598882 +rarity=T +[/card] +[card] +primitive=Sheep +id=-598938 +rarity=T +[/card] +[card] +primitive=Construct +id=-598945 +rarity=T +[/card] +[card] +primitive=Zombie +id=-598985 +rarity=T +[/card] +[card] +primitive=Goblin +id=-598992 +rarity=T +[/card] +[card] +primitive=Goblin +id=-599005 +rarity=T +[/card] +[card] +primitive=Goblin +id=-599007 +rarity=T +[/card] +[card] +primitive=Goblin +id=-599010 +rarity=T +[/card] +[card] +primitive=Elemental +id=-599021 +rarity=T +[/card] +[card] +primitive=Elephant +id=-599027 +rarity=T +[/card] +[card] +primitive=Cat +id=-599039 +rarity=T +[/card] +[card] +primitive=Squirrel +id=-599045 +rarity=T +[/card] +[card] +primitive=Cat +id=-599046 +rarity=T +[/card] +[card] +primitive=Saproling +id=-599049 +rarity=T +[/card] +[card] +primitive=Squirrel +id=-599051 +rarity=T +[/card] +[card] +primitive=Insect +id=-599054 +rarity=T +[/card] +[card] +primitive=Saproling +id=-599072 +rarity=T +[/card] +[card] +primitive=Avatar +id=-599118 +rarity=T +[/card] +[card] +primitive=Construct +id=-601365 +rarity=T +[/card] +[card] +primitive=Goblin +id=-601387 +rarity=T +[/card] +[card] +primitive=Goblin +id=-601395 +rarity=T +[/card] +[card] +primitive=Goblin +id=-601397 +rarity=T +[/card] +[card] +primitive=Goblin +id=-601399 +rarity=T +[/card] +[card] +primitive=Elemental +id=-601402 +rarity=T +[/card] +[card] +primitive=Cat +id=-601412 +rarity=T +[/card] +[card] +primitive=Squirrel +id=-601416 +rarity=T +[/card] +[card] +primitive=Saproling +id=-601417 +rarity=T +[/card] +[card] +primitive=Squirrel +id=-601418 +rarity=T +[/card] +[card] +primitive=Saproling +id=-601435 +rarity=T +[/card] +[card] +primitive=Avatar +id=-601463 +rarity=T +[/card] +[card] +primitive=Construct +id=-600974 +rarity=T +[/card] +[card] +primitive=Goblin +id=-600987 +rarity=T +[/card] +[card] +primitive=Squirrel +id=-600991 +rarity=T +[/card] +[card] +primitive=Avatar +id=-601005 +rarity=T +[/card] +[card] primitive=Auramancer id=598875 rarity=C diff --git a/projects/mtg/bin/Res/sets/NEO/_cards.dat b/projects/mtg/bin/Res/sets/NEO/_cards.dat index 9bcb58460..655737ebe 100644 --- a/projects/mtg/bin/Res/sets/NEO/_cards.dat +++ b/projects/mtg/bin/Res/sets/NEO/_cards.dat @@ -2,9 +2,324 @@ author=Wagic Team name=Kamigawa: Neon Dynasty year=2022-02-18 -total=553 +total=600 [/meta] [card] +primitive=Samurai +id=-548293 +rarity=T +[/card] +[card] +primitive=Pilot +id=-548297 +rarity=T +[/card] +[card] +primitive=Spirit +id=-548307 +rarity=T +[/card] +[card] +primitive=Samurai +id=-548310 +rarity=T +[/card] +[card] +primitive=Spirit +id=-548329 +rarity=T +[/card] +[card] +primitive=Samurai +id=-548337 +rarity=T +[/card] +[card] +primitive=Treasure +id=-548371 +rarity=T +[/card] +[card] +primitive=Keimi +id=-548424 +rarity=T +[/card] +[card] +primitive=Rogue +id=-548425 +rarity=T +[/card] +[card] +primitive=Spirit +id=-548432 +rarity=T +[/card] +[card] +primitive=Samurai +id=-548440 +rarity=T +[/card] +[card] +primitive=Treasure +id=-548443 +rarity=T +[/card] +[card] +primitive=Spirit +id=-548446 +rarity=T +[/card] +[card] +primitive=Spirit +id=-548448 +rarity=T +[/card] +[card] +primitive=Construct +id=-548469 +rarity=T +[/card] +[card] +primitive=Monk +id=-548485 +rarity=T +[/card] +[card] +primitive=Spirit +id=-548501 +rarity=T +[/card] +[card] +primitive=Monk +id=-548502 +rarity=T +[/card] +[card] +primitive=Spirit +id=-548509 +rarity=T +[/card] +[card] +primitive=Spirit +id=-548522 +rarity=T +[/card] +[card] +primitive=Spirit +id=-548523 +rarity=T +[/card] +[card] +primitive=Samurai +id=-548528 +rarity=T +[/card] +[card] +primitive=Ninja +id=-548538 +rarity=T +[/card] +[card] +primitive=Samurai +id=-548542 +rarity=T +[/card] +[card] +primitive=Construct +id=-548543 +rarity=T +[/card] +[card] +primitive=Pilot +id=-548544 +rarity=T +[/card] +[card] +primitive=Construct +id=-548562 +rarity=T +[/card] +[card] +primitive=Pilot +id=-548568 +rarity=T +[/card] +[card] +primitive=Spirit +id=-548571 +rarity=T +[/card] +[card] +primitive=Spirit +id=-548589 +rarity=T +[/card] +[card] +primitive=Samurai +id=-551646 +rarity=T +[/card] +[card] +primitive=Ninja +id=-551648 +rarity=T +[/card] +[card] +primitive=Samurai +id=-553225 +rarity=T +[/card] +[card] +primitive=Spirit +id=-553229 +rarity=T +[/card] +[card] +primitive=Treasure +id=-552715 +rarity=T +[/card] +[card] +primitive=Keimi +id=-552724 +rarity=T +[/card] +[card] +primitive=Ninja +id=-552729 +rarity=T +[/card] +[card] +primitive=Spirit +id=-553021 +rarity=T +[/card] +[card] +primitive=Rogue +id=-553024 +rarity=T +[/card] +[card] +primitive=Treasure +id=-553026 +rarity=T +[/card] +[card] +primitive=Monk +id=-553030 +rarity=T +[/card] +[card] +primitive=Spirit +id=-553032 +rarity=T +[/card] +[card] +primitive=Spirit +id=-553033 +rarity=T +[/card] +[card] +primitive=Spirit +id=-552264 +rarity=T +[/card] +[card] +primitive=Samurai +id=-552270 +rarity=T +[/card] +[card] +primitive=Construct +id=-552276 +rarity=T +[/card] +[card] +primitive=Pilot +id=-552278 +rarity=T +[/card] +[card] +primitive=Spirit +id=-552121 +rarity=T +[/card] +[card] +primitive=Spirit +id=-552125 +rarity=T +[/card] +[card] +primitive=Spirit +id=-551716 +rarity=T +[/card] +[card] +primitive=Keimi +id=-551736 +rarity=T +[/card] +[card] +primitive=Rogue +id=-551737 +rarity=T +[/card] +[card] +primitive=Treasure +id=-551741 +rarity=T +[/card] +[card] +primitive=Spirit +id=-551743 +rarity=T +[/card] +[card] +primitive=Spirit +id=-551752 +rarity=T +[/card] +[card] +primitive=Monk +id=-551753 +rarity=T +[/card] +[card] +primitive=Spirit +id=-551757 +rarity=T +[/card] +[card] +primitive=Spirit +id=-551761 +rarity=T +[/card] +[card] +primitive=Spirit +id=-551762 +rarity=T +[/card] +[card] +primitive=Samurai +id=-551764 +rarity=T +[/card] +[card] +primitive=Construct +id=-551779 +rarity=T +[/card] +[card] +primitive=Pilot +id=-551781 +rarity=T +[/card] +[card] +primitive=Spirit +id=-551786 +rarity=T +[/card] +[card] primitive=Ancestral Katana id=548291 rarity=C diff --git a/projects/mtg/bin/Res/sets/ONC/_cards.dat b/projects/mtg/bin/Res/sets/ONC/_cards.dat index 945c670e8..50e59533c 100644 --- a/projects/mtg/bin/Res/sets/ONC/_cards.dat +++ b/projects/mtg/bin/Res/sets/ONC/_cards.dat @@ -2,9 +2,269 @@ author=Wagic Team name=Phyrexia: All Will Be One Commander year=2023-02-03 -total=174 +total=224 [/meta] [card] +primitive=Rebel +id=-605671 +rarity=T +[/card] +[card] +primitive=Mite +id=-605672 +rarity=T +[/card] +[card] +primitive=Rebel +id=-605688 +rarity=T +[/card] +[card] +primitive=Rebel +id=-605689 +rarity=T +[/card] +[card] +primitive=more +id=-605692 +rarity=T +[/card] +[card] +primitive=Rebel +id=-605695 +rarity=T +[/card] +[card] +primitive=Rebel +id=-605696 +rarity=T +[/card] +[card] +primitive=Golem +id=-605698 +rarity=T +[/card] +[card] +primitive=Wurm +id=-605701 +rarity=T +[/card] +[card] +primitive=Germ +id=-605456 +rarity=T +[/card] +[card] +primitive=Myr +id=-605458 +rarity=T +[/card] +[card] +primitive=Germ +id=-605520 +rarity=T +[/card] +[card] +primitive=Rebel +id=-605523 +rarity=T +[/card] +[card] +primitive=Mite +id=-605524 +rarity=T +[/card] +[card] +primitive=Myr +id=-605526 +rarity=T +[/card] +[card] +primitive=Rebel +id=-605576 +rarity=T +[/card] +[card] +primitive=Rebel +id=-605577 +rarity=T +[/card] +[card] +primitive=Spirit +id=-605580 +rarity=T +[/card] +[card] +primitive=Rebel +id=-605583 +rarity=T +[/card] +[card] +primitive=Rebel +id=-605584 +rarity=T +[/card] +[card] +primitive=Golem +id=-605586 +rarity=T +[/card] +[card] +primitive=Wurm +id=-605589 +rarity=T +[/card] +[card] +primitive=Bird +id=-605799 +rarity=T +[/card] +[card] +primitive=Soldier +id=-605800 +rarity=T +[/card] +[card] +primitive=Angel +id=-605802 +rarity=T +[/card] +[card] +primitive=Soldier +id=-605804 +rarity=T +[/card] +[card] +primitive=Bird +id=-605805 +rarity=T +[/card] +[card] +primitive=Beast +id=-605806 +rarity=T +[/card] +[card] +primitive=Angel +id=-605807 +rarity=T +[/card] +[card] +primitive=Elephant +id=-605810 +rarity=T +[/card] +[card] +primitive=Human +id=-605814 +rarity=T +[/card] +[card] +primitive=Human +id=-605816 +rarity=T +[/card] +[card] +primitive=Soldier +id=-605819 +rarity=T +[/card] +[card] +primitive=Spirit +id=-605822 +rarity=T +[/card] +[card] +primitive=Horror +id=-605826 +rarity=T +[/card] +[card] +primitive=Soldier +id=-605827 +rarity=T +[/card] +[card] +primitive=Knight +id=-605828 +rarity=T +[/card] +[card] +primitive=Cat +id=-605830 +rarity=T +[/card] +[card] +primitive=Dragon +id=-605838 +rarity=T +[/card] +[card] +primitive=Goblin +id=-605840 +rarity=T +[/card] +[card] +primitive=Goblin +id=-605841 +rarity=T +[/card] +[card] +primitive=Thopter +id=-605842 +rarity=T +[/card] +[card] +primitive=Goblin +id=-605843 +rarity=T +[/card] +[card] +primitive=Beast +id=-605844 +rarity=T +[/card] +[card] +primitive=Insect +id=-605846 +rarity=T +[/card] +[card] +primitive=Insect +id=-605851 +rarity=T +[/card] +[card] +primitive=Soldier +id=-605855 +rarity=T +[/card] +[card] +primitive=Soldier +id=-605858 +rarity=T +[/card] +[card] +primitive=Eldrazi +id=-605874 +rarity=T +[/card] +[card] +primitive=Myr +id=-605878 +rarity=T +[/card] +[card] +primitive=Human +id=-605889 +rarity=T +[/card] +[card] +primitive=Kobold +id=-605897 +rarity=T +[/card] +[card] primitive=Ixhel, Scion of Atraxa id=605655 rarity=M diff --git a/projects/mtg/bin/Res/sets/ONE/_cards.dat b/projects/mtg/bin/Res/sets/ONE/_cards.dat index 3b81871eb..a253ceea6 100644 --- a/projects/mtg/bin/Res/sets/ONE/_cards.dat +++ b/projects/mtg/bin/Res/sets/ONE/_cards.dat @@ -2,9 +2,294 @@ author=Wagic Team name=Phyrexia: All Will Be One year=2023-02-03 -total=479 +total=447 [/meta] [card] +primitive=Mite +id=-602534 +rarity=T +[/card] +[card] +primitive=Mite +id=-602536 +rarity=T +[/card] +[card] +primitive=Mite +id=-602538 +rarity=T +[/card] +[card] +primitive=Samurai +id=-602541 +rarity=T +[/card] +[card] +primitive=Rebel +id=-602543 +rarity=T +[/card] +[card] +primitive=Rebel +id=-602544 +rarity=T +[/card] +[card] +primitive=Mite +id=-602546 +rarity=T +[/card] +[card] +primitive=Mite +id=-602547 +rarity=T +[/card] +[card] +primitive=Cat +id=-602549 +rarity=T +[/card] +[card] +primitive=Rebel +id=-602552 +rarity=T +[/card] +[card] +primitive=Mite +id=-602564 +rarity=T +[/card] +[card] +primitive=Mite +id=-602568 +rarity=T +[/card] +[card] +primitive=Rebel +id=-602572 +rarity=T +[/card] +[card] +primitive=Mite +id=-602640 +rarity=T +[/card] +[card] +primitive=Rebel +id=-602651 +rarity=T +[/card] +[card] +primitive=Goblin +id=-602656 +rarity=T +[/card] +[card] +primitive=Goblin +id=-602657 +rarity=T +[/card] +[card] +primitive=Rebel +id=-602658 +rarity=T +[/card] +[card] +primitive=Goblin +id=-602664 +rarity=T +[/card] +[card] +primitive=Rebel +id=-602666 +rarity=T +[/card] +[card] +primitive=Horror +id=-602683 +rarity=T +[/card] +[card] +primitive=Rebel +id=-602686 +rarity=T +[/card] +[card] +primitive=Golem +id=-602701 +rarity=T +[/card] +[card] +primitive=Horror +id=-602705 +rarity=T +[/card] +[card] +primitive=Rebel +id=-602714 +rarity=T +[/card] +[card] +primitive=Beast +id=-602724 +rarity=T +[/card] +[card] +primitive=Rebel +id=-602727 +rarity=T +[/card] +[card] +primitive=Goblin +id=-602729 +rarity=T +[/card] +[card] +primitive=Drone +id=-602734 +rarity=T +[/card] +[card] +primitive=Beast +id=-602737 +rarity=T +[/card] +[card] +primitive=Golem +id=-602738 +rarity=T +[/card] +[card] +primitive=Goblin +id=-602743 +rarity=T +[/card] +[card] +primitive=Mite +id=-602744 +rarity=T +[/card] +[card] +primitive=Golem +id=-602749 +rarity=T +[/card] +[card] +primitive=Mite +id=-602784 +rarity=T +[/card] +[card] +primitive=Rebel +id=-604961 +rarity=T +[/card] +[card] +primitive=Golem +id=-605124 +rarity=T +[/card] +[card] +primitive=Goblin +id=-605126 +rarity=T +[/card] +[card] +primitive=Mite +id=-605127 +rarity=T +[/card] +[card] +primitive=Golem +id=-605128 +rarity=T +[/card] +[card] +primitive=Horror +id=-605448 +rarity=T +[/card] +[card] +primitive=Beast +id=-605449 +rarity=T +[/card] +[card] +primitive=Cat +id=-605406 +rarity=T +[/card] +[card] +primitive=Samurai +id=-605326 +rarity=T +[/card] +[card] +primitive=Horror +id=-605330 +rarity=T +[/card] +[card] +primitive=Drone +id=-605331 +rarity=T +[/card] +[card] +primitive=Beast +id=-605333 +rarity=T +[/card] +[card] +primitive=Mite +id=-604748 +rarity=T +[/card] +[card] +primitive=Mite +id=-604749 +rarity=T +[/card] +[card] +primitive=Rebel +id=-604750 +rarity=T +[/card] +[card] +primitive=Rebel +id=-604757 +rarity=T +[/card] +[card] +primitive=Horror +id=-604759 +rarity=T +[/card] +[card] +primitive=Mite +id=-604772 +rarity=T +[/card] +[card] +primitive=Mite +id=-604917 +rarity=T +[/card] +[card] +primitive=Beast +id=-604921 +rarity=T +[/card] +[card] +primitive=Mite +id=-604892 +rarity=T +[/card] +[card] +primitive=Beast +id=-604896 +rarity=T +[/card] +[card] primitive=Against All Odds id=602531 rarity=U diff --git a/projects/mtg/bin/Res/sets/primitives/borderline.txt b/projects/mtg/bin/Res/sets/primitives/borderline.txt index edc075c0c..8c2f6499f 100644 --- a/projects/mtg/bin/Res/sets/primitives/borderline.txt +++ b/projects/mtg/bin/Res/sets/primitives/borderline.txt @@ -14862,6 +14862,19 @@ power=4 toughness=4 [/card] [card] +name=Chiss-Goria, Forge Tyrant +abilities=flying,haste,affinityartifacts +auto=_ATTACKING_name(Exile top 5 cards) all(*[zpos<=5]|mylibrary) moveto(myexile) and!( becomes(tobechiss) ueot )! +auto=aslongas(tobechiss|myexile) {0}:name(Exiled artifact can be played) target(artifact[tobechiss]|myexile) transforms((,newability[affinityartifacts],newability[canplayfromexile],newability[all(tobechiss|myexile) losesatype(tobechiss)])) ueot +auto=@Chiss-Goriaforge tyrant attacks, exile the top five cards of your library may cast an artifact spell from among them this turnaffinity for artifacts +text=Affinity for artifacts (This spell costs {1} less to cast for each artifact you control.) -- Flying, haste -- Whenever Chiss-Goria, Forge Tyrant attacks, exile the top five cards of your library. You may cast an artifact spell from among them this turn. If you do, it has affinity for artifacts. +mana={6}{R}{R}{R} +type=Legendary Creature +subtype=Dragon +power=5 +toughness=4 +[/card] +[card] name=Chittering Doom auto=@dierolled(*|battlefield) result(4) from(controller):token(Squirrel,Creature Squirrel,1/1,green) auto=@dierolled(*|battlefield) result(5) from(controller):token(Squirrel,Creature Squirrel,1/1,green) @@ -15757,6 +15770,14 @@ power=2 toughness=2 [/card] [card] +name=Clever Concealment +other={convoke} name(Convoke) +auto=target(*[-land]|mybattlefield) phaseout +text=Convoke (Your creatures can help cast this spell. Each creature you tap while casting this spell pays for {1} or one mana of that creature's color.) -- Any number of target nonland permanents you control phase out. (Treat them and anything attached to them as though they don't exist until your next turn.) +mana={2}{W}{W} +type=Instant +[/card] +[card] name=Clever Conjurer auto={T}:name(Untap permanent) target(*[-Clever Conjurer]|mybattlefield) untap asSorcery text=Mage Hand-{T}: Untap target permanent not named Clever Conjurer. Activate only as a sorcery. @@ -16777,6 +16798,15 @@ mana={1}{U} type=Sorcery [/card] [card] +name=Compleat Devotion +target=creature|myBattlefield +auto=transforms((,newability[2/2 ueot])) ueot +auto=if cantargetcard(creature[poisontoxic|poisontwotoxic|poisonthreetoxic]|*) then name(Draw a card) draw:1 controller +text=Target creature you control gets +2/+2 until end of turn. If that creature has toxic, draw a card. +mana={1}{W} +type=Instant +[/card] +[card] name=Compleated Conjurer auto=name(Exile top card) all(*[zpos=1]|myLibrary) moveto(exile) and!( transforms((,newability[canplayfromexile uent])) uent )! text=When this creature transforms into Compleated Conjurer, exile the top card of your library. Until the end of your next turn, you may play that card. @@ -17371,6 +17401,18 @@ power=2 toughness=2 [/card] [card] +name=Contaminant Grafter +abilities=trample,poisontoxic +auto=@combatdamaged(player) from(creature|myBattlefield):_PROLIFERATE_ +auto=@each my endofturn restriction{compare(opponentpoisoncount)~morethan~2}:name(Draw a card) draw:1 controller && transforms((,newability[may name(Put land in play) target(land|myhand) moveto(mybattlefield)])) oneshot +text=Trample, toxic 1 -- Whenever one or more creatures you control deal combat damage to one or more players, proliferate. -- Corrupted - At the beginning of your end step, if an opponent has three or more poison counters, draw a card, then you may put a land card from your hand onto the battlefield. +mana={4}{G} +type=Creature +subtype=Phyrexian Druid +power=5 +toughness=5 +[/card] +[card] name=Contaminated Aquifer auto=tap(noevent) text=({T}: Add {U} or {B}.) -- Contaminated Aquifer enters the battlefield tapped. @@ -29197,16 +29239,6 @@ power=2 toughness=1 [/card] [card] -name=Fallaji Archaeologist -auto=name(Mill 3 cards) all(*[zpos<=2]|mylibrary) moveto(mygraveyard) and!( transforms((tobereturn,newability[all(*[zpos=3]|mylibrary) moveto(mygraveyard) and!( transforms((tobereturn,newability[if type(tobereturn[-land&-creature]|mygraveyard)~morethan~0 then choice name(Return a card) name(Return a card) target(tobereturn[-land&-creature]|mygraveyard) moveto(myhand)],newability[choice name(Put 1/1 counter) target(Fallaji Archaeologist[fresh]|mybattlefield) counter(1/1)])) ueot )!])) ueot )! -text=When Fallaji Archaeologist enters the battlefield, mill three cards. You may put a noncreature, nonland card from among the cards milled this way into your hand. If you don't, put a +1/+1 counter on Fallaji Archaeologist. (To mill a card, put the top card of your library into your graveyard.) -mana={1}{U} -type=Creature -subtype=Human Scout -power=0 -toughness=3 -[/card] -[card] name=Fall from Favor target=creature auto=tap @@ -29246,6 +29278,16 @@ type=Enchantment subtype=Saga [/card] [card] +name=Fallaji Archaeologist +auto=name(Mill 3 cards) all(*[zpos<=2]|mylibrary) moveto(mygraveyard) and!( transforms((tobereturn,newability[all(*[zpos=3]|mylibrary) moveto(mygraveyard) and!( transforms((tobereturn,newability[if type(tobereturn[-land&-creature]|mygraveyard)~morethan~0 then choice name(Return a card) name(Return a card) target(tobereturn[-land&-creature]|mygraveyard) moveto(myhand)],newability[choice name(Put 1/1 counter) target(Fallaji Archaeologist[fresh]|mybattlefield) counter(1/1)])) ueot )!])) ueot )! +text=When Fallaji Archaeologist enters the battlefield, mill three cards. You may put a noncreature, nonland card from among the cards milled this way into your hand. If you don't, put a +1/+1 counter on Fallaji Archaeologist. (To mill a card, put the top card of your library into your graveyard.) +mana={1}{U} +type=Creature +subtype=Human Scout +power=0 +toughness=3 +[/card] +[card] name=Fallaji Chaindancer auto={2}:double strike ueot text={2}: Fallaji Chaindancer gains double strike until end of turn. @@ -31581,6 +31623,17 @@ power=3 toughness=1 [/card] [card] +name=Flensing Raptor +abilities=flying,poisontoxic +auto=name(Creature gains 1/1 and flying) target(other creature[poisontoxic|poisontwotoxic|poisonthreetoxic]|myBattlefield) transforms((,newability[1/1],newability[flying])) ueot +text=Flying -- Toxic 1 (Players dealt combat damage by this creature also get a poison counter.) -- When Flensing Raptor enters the battlefield, another target creature you control with toxic gets +1/+1 and gains flying until end of turn. +mana={2}{W} +type=Creature +subtype=Phyrexian Bird +power=2 +toughness=2 +[/card] +[card] name=Flesh // Blood target=creature abilities=hasnokicker @@ -34236,6 +34289,15 @@ mana={3}{B}{R} type=Instant [/card] [card] +name=Geth's Summons +auto=if type(creature|mybattlefield)~morethan~0 then choice name(Retun your creature) name(Retun your creature) target(creature|mygraveyard) moveto(mybattlefield) and!( transforms((,newability[if compare(opponentpoisoncount)~morethan~2 then may name(Return opponent creature) name(Return opponent creature) target(creature|opponentgraveyard) moveTo(mybattlefield)])) oneshot )! +auto=if compare(opponentpoisoncount)~morethan~2 then choice name(Don't return your creature) name(Don't return your creature) target(creature|opponentgraveyard) moveTo(mybattlefield) +auto=if compare(opponentpoisoncount)~lessthan~3 then choice name(Don't return your creature) name(Don't return your creature) donothing +text=Return up to one target creature card from your graveyard to the battlefield. -- Corrupted - For each opponent who has three or more poison counters as you cast this spell, put up to one target creature card from that player's graveyard onto the battlefield under your control. +mana={2}{B}{B} +type=Sorcery +[/card] +[card] name=Geth, Thane of Contracts auto=lord(other creature|myBattlefield) -1/-1 auto={1}{B}{B}{T}:target(creature|mygraveyard) moveTo(mybattlefield) and!( transforms((,newability[exiledeath])) forever )! asSorcery @@ -34603,39 +34665,6 @@ power=0 toughness=6 [/card] [card] -name=Glint Raker -abilities=flying -aicode=activate transforms((,newability[if type(artifact[zpos<=thatmuch]|mylibrary)~equalto~0 then all(*[zpos<=thatmuch]|mylibrary) moveto(mygraveyard)],newability[if type(artifact[zpos<=thatmuch]|mylibrary)~morethan~0 then target(artifact[zpos<=thatmuch]|mylibrary) moveto(myhand) and!( all(*[zpos<=thatmuch]|mylibrary) moveto(mygraveyard) )!] -auto=this(variable{convertedcost:highest:artifact:mybattlefield}>0)while 1/0 -auto=this(variable{convertedcost:highest:artifact:mybattlefield}>1)while 1/0 -auto=this(variable{convertedcost:highest:artifact:mybattlefield}>2)while 1/0 -auto=this(variable{convertedcost:highest:artifact:mybattlefield}>3)while 1/0 -auto=this(variable{convertedcost:highest:artifact:mybattlefield}>4)while 1/0 -auto=this(variable{convertedcost:highest:artifact:mybattlefield}>5)while 1/0 -auto=this(variable{convertedcost:highest:artifact:mybattlefield}>6)while 1/0 -auto=this(variable{convertedcost:highest:artifact:mybattlefield}>7)while 1/0 -auto=this(variable{convertedcost:highest:artifact:mybattlefield}>8)while 1/0 -auto=this(variable{convertedcost:highest:artifact:mybattlefield}>9)while 1/0 -auto=this(variable{convertedcost:highest:artifact:mybattlefield}>10)while 1/0 -auto=this(variable{convertedcost:highest:artifact:mybattlefield}>11)while 1/0 -auto=this(variable{convertedcost:highest:artifact:mybattlefield}>12)while 1/0 -auto=this(variable{convertedcost:highest:artifact:mybattlefield}>13)while 1/0 -auto=this(variable{convertedcost:highest:artifact:mybattlefield}>14)while 1/0 -auto=this(variable{convertedcost:highest:artifact:mybattlefield}>15)while 1/0 -auto=this(variable{convertedcost:highest:artifact:mybattlefield}>16)while 1/0 -auto=this(variable{convertedcost:highest:artifact:mybattlefield}>17)while 1/0 -auto=this(variable{convertedcost:highest:artifact:mybattlefield}>18)while 1/0 -auto=this(variable{convertedcost:highest:artifact:mybattlefield}>19)while 1/0 -auto=this(variable{convertedcost:highest:artifact:mybattlefield}>20)while 1/0 -auto=@combatdamaged(player) from(this):may name(Reveal top cards) reveal:thatmuch optionone name(Get an artifact) target(artifact|reveal) moveto(myhand) optiononeend optiontwo name(Put on graveyard) target(*|reveal) moveto(mygraveyard) and!( all(*|reveal) moveto(mygraveyard) )! optiontwoend revealend -text=Flying -- Glint Raker gets +X/+0, where X is the highest mana value among artifacts you control. -- Whenever Glint Raker deals combat damage to a player, you may reveal that many cards from the top of your library. Put an artifact card revealed this way into your hand and the rest into your graveyard. -mana={3}{U} -type=Creature -subtype=Drake -power=1 -toughness=3 -[/card] -[card] name=Giant Slug auto={5}:transforms((,newability[phaseaction[my upkeep sourceinplay]:forestwalk ueot])) forever auto={5}:transforms((,newability[phaseaction[my upkeep sourceinplay]:mountainwalk ueot])) forever @@ -35418,6 +35447,16 @@ power=1 toughness=2 [/card] [card] +name=Glimmer Lens +auto={1}{W}:equip +auto=@combat(attacking) source(mytgt) restriction{type(creature[attacking]|battlefield)~morethan~1}:name(Draw a card) draw:1 controller +auto=livingweapontoken(Rebel,Creature Rebel,2/2,red) +text=For Mirrodin! (When this Equipment enters the battlefield, create a 2/2 red Rebel creature token, then attach this to it.) -- Whenever equipped creature and at least one other creature attack, draw a card. -- Equip {1}{W} +mana={1}{W} +type=Artifact +subtype=Equipment +[/card] +[card] name=Glimmerbell abilities=flying auto={1}{U}:untap(this) @@ -35459,6 +35498,39 @@ mana={1}{U} type=Sorcery [/card] [card] +name=Glint Raker +abilities=flying +aicode=activate transforms((,newability[if type(artifact[zpos<=thatmuch]|mylibrary)~equalto~0 then all(*[zpos<=thatmuch]|mylibrary) moveto(mygraveyard)],newability[if type(artifact[zpos<=thatmuch]|mylibrary)~morethan~0 then target(artifact[zpos<=thatmuch]|mylibrary) moveto(myhand) and!( all(*[zpos<=thatmuch]|mylibrary) moveto(mygraveyard) )!] +auto=this(variable{convertedcost:highest:artifact:mybattlefield}>0)while 1/0 +auto=this(variable{convertedcost:highest:artifact:mybattlefield}>1)while 1/0 +auto=this(variable{convertedcost:highest:artifact:mybattlefield}>2)while 1/0 +auto=this(variable{convertedcost:highest:artifact:mybattlefield}>3)while 1/0 +auto=this(variable{convertedcost:highest:artifact:mybattlefield}>4)while 1/0 +auto=this(variable{convertedcost:highest:artifact:mybattlefield}>5)while 1/0 +auto=this(variable{convertedcost:highest:artifact:mybattlefield}>6)while 1/0 +auto=this(variable{convertedcost:highest:artifact:mybattlefield}>7)while 1/0 +auto=this(variable{convertedcost:highest:artifact:mybattlefield}>8)while 1/0 +auto=this(variable{convertedcost:highest:artifact:mybattlefield}>9)while 1/0 +auto=this(variable{convertedcost:highest:artifact:mybattlefield}>10)while 1/0 +auto=this(variable{convertedcost:highest:artifact:mybattlefield}>11)while 1/0 +auto=this(variable{convertedcost:highest:artifact:mybattlefield}>12)while 1/0 +auto=this(variable{convertedcost:highest:artifact:mybattlefield}>13)while 1/0 +auto=this(variable{convertedcost:highest:artifact:mybattlefield}>14)while 1/0 +auto=this(variable{convertedcost:highest:artifact:mybattlefield}>15)while 1/0 +auto=this(variable{convertedcost:highest:artifact:mybattlefield}>16)while 1/0 +auto=this(variable{convertedcost:highest:artifact:mybattlefield}>17)while 1/0 +auto=this(variable{convertedcost:highest:artifact:mybattlefield}>18)while 1/0 +auto=this(variable{convertedcost:highest:artifact:mybattlefield}>19)while 1/0 +auto=this(variable{convertedcost:highest:artifact:mybattlefield}>20)while 1/0 +auto=@combatdamaged(player) from(this):may name(Reveal top cards) reveal:thatmuch optionone name(Get an artifact) target(artifact|reveal) moveto(myhand) optiononeend optiontwo name(Put on graveyard) target(*|reveal) moveto(mygraveyard) and!( all(*|reveal) moveto(mygraveyard) )! optiontwoend revealend +text=Flying -- Glint Raker gets +X/+0, where X is the highest mana value among artifacts you control. -- Whenever Glint Raker deals combat damage to a player, you may reveal that many cards from the top of your library. Put an artifact card revealed this way into your hand and the rest into your graveyard. +mana={3}{U} +type=Creature +subtype=Drake +power=1 +toughness=3 +[/card] +[card] name=Glint-Horn Buccaneer abilities=haste auto=@discarded(*|myhand):damage:1 opponent @@ -35493,6 +35565,18 @@ power=3 toughness=2 [/card] [card] +name=Glissa's Retriever +abilities=haste,poisonthreetoxic +auto=cantbeblockedby(creature[power<=2]) +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(opponentpoisoncount)~morethan~2}:name(Exile and return) name(Exile and return card) all(trigger[to]) moveto(myexile) and!( name(Return card) target(*|mygraveyard) moveto(myhand) )! +text=Haste, toxic 3 (Players dealt combat damage by this creature also get three poison counters.) -- Glissa's Retriever can't be blocked by creatures with power 2 or less. -- Corrupted - When Glissa's Retriever dies, exile it. When you do, return up to X target cards from your graveyard to your hand, where X is the number of opponents who have three or more poison counters. +mana={5}{G} +type=Creature +subtype=Phyrexian Beast +power=6 +toughness=6 +[/card] +[card] name=Glissa, Herald of Predation auto=@each my combatbegins:name(Choose one) transforms((,newability[choice name(Create Incubate 2 twice) thisforeach(variable{2}) name(Incubate 2) name(Incubate 2) token(Incubator) and!( counter(1/1.2) )!],newability[choice name(Transform all incubator) all(incubator|myBattlefield) flip(backside)],newability[choice name(All phyrexians gain first strike and deathtouch) all(phyrexian|myBattlefield) transforms((,newability[first strike],newability[deathtouch])) ueot])) oneshot text=At the beginning of combat on your turn, choose one -- Incubate 2 twice. (To incubate 2, create an Incubator token with two +1/+1 counters on it and "{2}: Transform this artifact." It transforms into a 0/0 Phyrexian artifact creature.) -- Transform all Incubator tokens you control. -- Phyrexians you control gain first strike and deathtouch until end of turn. @@ -35540,6 +35624,24 @@ power=3 toughness=2 [/card] [card] +name=Glistening Sphere +auto=tap(noevent) +auto=_PROLIFERATE_ +auto={T}:add{W} +auto={T}:add{U} +auto={T}:add{B} +auto={T}:add{R} +auto={T}:add{G} +auto=this(variable{opponentpoisoncount}>2) {T}:add{W}{W}{W} +auto=this(variable{opponentpoisoncount}>2) {T}:add{U}{U}{U} +auto=this(variable{opponentpoisoncount}>2) {T}:add{B}{B}{B} +auto=this(variable{opponentpoisoncount}>2) {T}:add{R}{R}{R} +auto=this(variable{opponentpoisoncount}>2) {T}:add{G}{G}{G} +text=Glistening Sphere enters the battlefield tapped. -- When Glistening Sphere enters the battlefield, proliferate. -- {T}: Add one mana of any color. -- Corrupted - {T}: Add three mana of any one color. Activate only if an opponent has three or more poison counters. +mana={3} +type=Artifact +[/card] +[card] name=Glittering Frost target=land auto=teach(land) becomes(snow) @@ -36825,6 +36927,14 @@ type=Artifact subtype=Equipment [/card] [card] +name=Goldwardens' Gambit +anyzone=affinity(equipment|mybattlefield) reduce({1}) +auto=name(Create rebels) token(Rebel,Creature Rebel,2/2,red)*5 and!( transforms((,newability[haste],newability[may name(Attach an equipment) target(equipment|mybattlefield) transforms((,newability[name(Attach to Rebel) rehook target(rebel[-geared&token&fresh]|mybattlefield)])) oneshot])) ueot )! +text=Affinity for Equipment (This spell costs {1} less to cast for each Equipment you control.) -- Create five 2/2 red Rebel creature tokens. They gain haste until end of turn. For each of those tokens, you may attach an Equipment you control to it. +mana={6}{R}{R} +type=Sorcery +[/card] +[card] name=Golgari Findbroker auto=target(*[-instant;-sorcery]|mygraveyard) moveto(ownerhand) text=When Golgari Findbroker enters the battlefield, return target permanent card from your graveyard to your hand. @@ -40996,6 +41106,17 @@ type=Artifact subtype=Equipment [/card] [card] +name=Hexplate Wallbreaker +auto={3}{R}:equip +auto=teach(creature) 2/2 +auto=@combat(attacking) source(mytgt) turnlimited:name(Untap and combat again) all(other creature[attacking]|mybattlefield) untap && emblem transforms((,newability[nextphasealter(add^combatphases^controller^after)])) ueot +auto=livingweapontoken(Rebel,Creature Rebel,2/2,red) +text=For Mirrodin! (When this Equipment enters the battlefield, create a 2/2 red Rebel creature token, then attach this to it.) -- Equipped creature gets +2/+2. -- Whenever equipped creature attacks, if it's the first combat phase of the turn, untap each attacking creature. After this phase, there is an additional combat phase. -- Equip {3}{R} +mana={3}{R}{R} +type=Artifact +subtype=Equipment +[/card] +[card] name=Hezrou // Demonic Stench abilities=adventure,asflash other={B} name(Adventure) @@ -46122,6 +46243,18 @@ power=2 toughness=2 [/card] [card] +name=Ixhel, Scion of Atraxa +abilities=flying,vigilance,poisontwotoxic +auto=@each my endofturn restriction{compare(opponentpoisoncount)~morethan~2}:name(Exile top card) all(*[zpos=1]|opponentlibrary) moveto(exile) and!( becomes(tobescion) forever )! +auto={0}:name(Can play exiled card) target(tobescion|opponentexile) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[anytypeofmana],newability[phaseaction[endofturn once checkex] moveTo(ownerexile)],newability[phaseaction[endofturn once checkex] becomes(tobescion) forever])) ueot )! +text=Flying, vigilance, toxic 2 -- Corrupted - At the beginning of your end step, each opponent who has three or more poison counters exiles the top card of their library face down. You may look at and play those cards for as long as they remain exiled, and you may spend mana as though it were mana of any color to cast those spells. +mana={1}{W}{B}{G} +type=Legendary Creature +subtype=Phyrexian Angel +power=2 +toughness=5 +[/card] +[card] name=Ixidor's Will target=*|stack auto=if type(wizard|battlefield)~equalto~0 then transforms((,newability[pay[[{0}]] name(pay 0 mana) donothing?fizzle])) forever @@ -48417,6 +48550,16 @@ power=2 toughness=2 [/card] [card] +name=Kemba's Banner +auto={2}{W}:equip +auto=teach(creature) type:creature:mybattlefield/type:creature:mybattlefield nonstatic +auto=livingweapontoken(Rebel,Creature Rebel,2/2,red) +text=For Mirrodin! (When this Equipment enters the battlefield, create a 2/2 red Rebel creature token, then attach this to it.) -- Equipped creature gets +1/+1 for each creature you control. -- Equip {2}{W} +mana={3}{W} +type=Artifact +subtype=Equipment +[/card] +[card] name=Kemba's Legion abilities=vigilance text=Vigilance -- Kemba's Legion can block an additional creature for each Equipment attached to Kemba's Legion. @@ -56485,6 +56628,17 @@ mana={3} type=Artifact [/card] [card] +name=Mirage Mockery +other={2}{U} name(Entwine) +auto=ifnot paid(alternative) then if type(creature[artifact]|mybattlefield)~morethan~0 then choice name(Create a copy of artifact creature) name(Create a copy of artifact creature) target(creature[artifact]|mybattlefield) clone +auto=ifnot paid(alternative) then if type(creature[-artifact]|mybattlefield)~morethan~0 then choice name(Create a copy of nonartifact creature) name(Create a copy of nonartifact creature) target(creature[-artifact]|mybattlefield) clone +auto=if paid(alternative) then name(Create a copy of artifact creature) ability$!name(Create a copy of artifact creature) target(creature[artifact]|mybattlefield) clone!$ controller +auto=if paid(alternative) then name(Create a copy of nonartifact creature) ability$!name(Create a copy of nonartifact creature) target(creature[-artifact]|mybattlefield) clone!$ controller +text=Choose one -- Create a token that's a copy of target artifact creature you control. -- Create a token that's a copy of target nonartifact creature you control. -- Entwine {2}{U} (Choose both if you pay the entwine cost.) +mana={2}{U} +type=Sorcery +[/card] +[card] name=Mirage Phalanx abilities=soulbond auto=soulbond transforms((,newability[@each my combatbegins:name(Create copy) clone and!( transforms((,newability[haste],newability[-soulbond],newability[phaseaction[combatends once sourceinplay] moveto(exile)])) forever)!])) @@ -60004,6 +60158,18 @@ mana={5}{U}{U} type=Instant [/card] [card] +name=Neyali, Suns' Vanguard +auto=lord(*[token&attacking]|myBattlefield) double strike +auto=@combat(attacking) source(*[token]|mybattlefield):name(Exile top card) all(*[zpos=1]|mylibrary) moveto(myexile) and!( transforms((,newability[aslongas(*[token&attacking]|mybattlefield) canplayfromexile >0])) forever )! +auto=@one or more tokens you control attack a playerexile the top card of your library during any turn you attackedtoken, may play that card +text=Attacking tokens you control have double strike. -- Whenever one or more tokens you control attack a player, exile the top card of your library. During any turn you attacked with a token, you may play that card. +mana={2}{R}{W} +type=Legendary Creature +subtype=Human Rebel +power=3 +toughness=3 +[/card] +[card] name=Neyith of the Dire Hunt auto=@combat(blocked) source(creature|mybattlefield) turnlimited:name(Draw a card) draw:1 controller auto=@damaged(creature) from(creature[-attacking;-blocking]|mybattlefield) turnlimited:may name(Draw a card) draw:1 controller @@ -60809,6 +60975,15 @@ power=5 toughness=4 [/card] [card] +name=Norn's Decree +auto=@each my blockers restriction{compare(opponentpoisoncount)~morethan~0}:name(Draw a card) draw:1 controller +auto=@each opponent blockers restriction{compare(poisoncount)~morethan~0}:name(Draw a card) draw:1 opponent +auto=@combatdamageof(player):name(Poison opponent) alterpoison:1 opponent +text=Whenever one or more creatures an opponent controls deal combat damage to you, that opponent gets a poison counter. -- Whenever a player attacks, if one or more players being attacked are poisoned, the attacking player draws a card. +mana={2}{W} +type=Enchantment +[/card] +[card] name=Norn's Inquisitor auto=name(Incubate 2) name(Incubate 2) token(Incubator) and!( counter(1/1.2) )! auto=@transformed(*[phyrexian]|mybattlefield):name(Put 1/1 counter) name(Put 1/1 counter) all(trigger) counter(1/1) @@ -63191,6 +63366,18 @@ power=1 toughness=2 [/card] [card] +name=Otharri, Suns' Glory +abilities=flying,haste,lifelink +auto=_ATTACKING_name(Get experience and create rebel) alterexperience:1 controller && token(Rebel,Creature Rebel,2/2,red,battleready)*pexperience +autograveyard={2}{R}{W}{T(rebel[-tapped]|mybattlefield)}:name(Return to battlefield) moveto(mybattlefield) and!( tap(noevent) )! +text=Flying, lifelink, haste -- Whenever Otharri, Suns' Glory attacks, you get an experience counter. Then create a 2/2 red Rebel creature token that's tapped and attacking for each experience counter you have. -- {2}{R}{W}, Tap an untapped Rebel you control: Return Otharri from your graveyard to the battlefield tapped. +mana={3}{R}{W} +type=Legendary Creature +subtype=Phoenix +power=3 +toughness=3 +[/card] +[card] name=Otherworldly Gaze flashback={1}{U} aicode=activate transforms((,newability[target(*[zpos<=3]|mylibrary) moveto(mygraveyard)])) oneshot @@ -65003,6 +65190,13 @@ power=5 toughness=5 [/card] [card] +name=Phyresis Outbreak +auto=alterpoison:1 opponent && ability$!name(Creature get poisoned) all(creature|opponentbattlefield) -opponentpoisoncount/-opponentpoisoncount ueot!$ controller +text=Each opponent gets a poison counter. Then each creature your opponents control gets -1/-1 until end of turn for each poison counter its controller has. +mana={2}{B} +type=Sorcery +[/card] +[card] name=Phyrexian backside=Incubator type=Artifact Creature @@ -65326,6 +65520,17 @@ power=9 toughness=9 [/card] [card] +name=Phyrexian Vindicator +abilities=flying,undamageable +auto=@damaged(this):name(Deal damage) target(player,creature,planeswalker) damage:thatmuch +text=Flying -- If damage would be dealt to Phyrexian Vindicator, prevent that damage. When damage is prevented this way, Phyrexian Vindicator deals that much damage to any other target. +mana={W}{W}{W}{W} +type=Creature +subtype=Phyrexian Horror +power=5 +toughness=5 +[/card] +[card] name=Phyrexian Vivisector auto=@movedTo(creature|graveyard) from(mybattlefield):_SCRY1_ text=Whenever a creature you control dies, scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) @@ -66395,6 +66600,16 @@ type=Legendary Enchantment subtype=Background [/card] [card] +name=Porcelain Zealot +auto=@each my combatbegins:name(Creature gains 1/1) target(creature|myBattlefield) transforms((,newability[1/1 ueot],newability[if cantargetcard(creature[poisontoxic|poisontwotoxic|poisonthreetoxic]|*) then 1/1 ueot])) ueot +text=At the beginning of combat on your turn, target creature you control gets +1/+1 until end of turn. If that creature has toxic, instead it gets +2/+2 until end of turn. +mana={3}{W} +type=Creature +subtype=Phyrexian Soldier +power=2 +toughness=3 +[/card] +[card] name=Porcuparrot abilities=mutate otherrestriction=type(creature[-human]|mybattlefield)~morethan~0 @@ -73176,6 +73391,14 @@ power=3 toughness=2 [/card] [card] +name=Roar of Resistance +auto=lord(creature[token]|myBattlefield) haste +auto=@each my blockers:may name(Pay and get 2/0) pay({1}{R}) name(Pay and get 2/0) all(creature[attacking]|mybattlefield) transforms((,newability[2/0])) ueot +text=Creature tokens you control have haste. -- Whenever one or more creatures attack, you may pay {1}{R}. If you do, creatures attacking your opponents and/or planeswalkers they control get +2/+0 until end of turn. +mana={1}{R} +type=Enchantment +[/card] +[card] name=Robber of the Rich abilities=reach,haste auto=@combat(attacking) source(this) restriction{compare(ohandcount)~morethan~compare(phandcount)}:name(Exile top card) all(*[zpos=1]|opponentlibrary) moveto(exile) and!( counter(0/0,1,RobberExiled) notrg )! @@ -81398,6 +81621,18 @@ power=3 toughness=3 [/card] [card] +name=Skyhunter Strike Force +abilities=flying +auto=@combat(attacking) source(this):name(Melee) all(trigger[to]) 1/1 ueot +auto=@combat(attacking) source(other creature|mybattlefield) restriction{type(*[iscommander]|mybattlefield)~morethan~0}:name(Melee) all(trigger[to]) 1/1 ueot +text=Flying -- Melee (Whenever this creature attacks, it gets +1/+1 until end of turn for each opponent you attacked this combat.) -- Lieutenant - As long as you control your commander, other creatures you control have melee. +mana={2}{W} +type=Creature +subtype=Cat Knight +power=2 +toughness=2 +[/card] +[card] name=Skyknight Vanguard abilities=flying auto=_ATTACKING_token(Soldier,Creature Soldier,1/1,white,battleready) @@ -84878,6 +85113,15 @@ mana={3} type=Artifact [/card] [card] +name=Staff of the Storyteller +auto=token(Spirit,Creature Spirit,1/1,white,flying) +auto=@tokencreated(*|myBattlefield):name(Add story counter) counter(0/0,1,Story) +auto={W}{T}{C(0/0,-1,Story)}:name(Draw a card) draw:1 controller +text=When Staff of the Storyteller enters the battlefield, create a 1/1 white Spirit creature token with flying. -- Whenever you create one or more creature tokens, put a story counter on Staff of the Storyteller. -- {W}, {T}, Remove a story counter from Staff of the Storyteller: Draw a card. +mana={1}{W} +type=Artifact +[/card] +[card] name=Staggering Insight target=creature auto=1/1 @@ -88037,6 +88281,37 @@ power=1 toughness=2 [/card] [card] +name=Synthesis Pod +other={3}{L:2} name(Pay 2 life) +auto={1}{U}{C(0/0,1,SynthesisEffect)}:name(Exile spell) target(*|mystack) spellmover(exile) +auto={1}{L:2}{C(0/0,1,SynthesisEffect)}:name(Pay life and exile spell) target(*|mystack) spellmover(exile) +auto=@movedto(*|myexile) from(mystack) restriction{compare(hascntsynthesiseffect)~morethan~0}:name(Effexct ends) removeallcounters(0/0,1,SynthesisEffect) notrg +auto=@movedto(*[manacost=0]|myexile) from(mystack) restriction{compare(hascntsynthesiseffect)~morethan~0}:name(Cast opponent card) target(*[manacost=1]|opponentlibrary) moveto(myexile) and!( transforms((,newability[choice name(Cast card) activate castcard(normal)],newability[choice name(Don't cast card) moveto(ownerexile)])) oneshot )! +auto=@movedto(*[manacost=1]|myexile) from(mystack) restriction{compare(hascntsynthesiseffect)~morethan~0}:name(Cast opponent card) target(*[manacost=2]|opponentlibrary) moveto(myexile) and!( transforms((,newability[choice name(Cast card) activate castcard(normal)],newability[choice name(Don't cast card) moveto(ownerexile)])) oneshot )! +auto=@movedto(*[manacost=2]|myexile) from(mystack) restriction{compare(hascntsynthesiseffect)~morethan~0}:name(Cast opponent card) target(*[manacost=3]|opponentlibrary) moveto(myexile) and!( transforms((,newability[choice name(Cast card) activate castcard(normal)],newability[choice name(Don't cast card) moveto(ownerexile)])) oneshot )! +auto=@movedto(*[manacost=3]|myexile) from(mystack) restriction{compare(hascntsynthesiseffect)~morethan~0}:name(Cast opponent card) target(*[manacost=4]|opponentlibrary) moveto(myexile) and!( transforms((,newability[choice name(Cast card) activate castcard(normal)],newability[choice name(Don't cast card) moveto(ownerexile)])) oneshot )! +auto=@movedto(*[manacost=4]|myexile) from(mystack) restriction{compare(hascntsynthesiseffect)~morethan~0}:name(Cast opponent card) target(*[manacost=5]|opponentlibrary) moveto(myexile) and!( transforms((,newability[choice name(Cast card) activate castcard(normal)],newability[choice name(Don't cast card) moveto(ownerexile)])) oneshot )! +auto=@movedto(*[manacost=5]|myexile) from(mystack) restriction{compare(hascntsynthesiseffect)~morethan~0}:name(Cast opponent card) target(*[manacost=6]|opponentlibrary) moveto(myexile) and!( transforms((,newability[choice name(Cast card) activate castcard(normal)],newability[choice name(Don't cast card) moveto(ownerexile)])) oneshot )! +auto=@movedto(*[manacost=6]|myexile) from(mystack) restriction{compare(hascntsynthesiseffect)~morethan~0}:name(Cast opponent card) target(*[manacost=7]|opponentlibrary) moveto(myexile) and!( transforms((,newability[choice name(Cast card) activate castcard(normal)],newability[choice name(Don't cast card) moveto(ownerexile)])) oneshot )! +auto=@movedto(*[manacost=7]|myexile) from(mystack) restriction{compare(hascntsynthesiseffect)~morethan~0}:name(Cast opponent card) target(*[manacost=8]|opponentlibrary) moveto(myexile) and!( transforms((,newability[choice name(Cast card) activate castcard(normal)],newability[choice name(Don't cast card) moveto(ownerexile)])) oneshot )! +auto=@movedto(*[manacost=8]|myexile) from(mystack) restriction{compare(hascntsynthesiseffect)~morethan~0}:name(Cast opponent card) target(*[manacost=9]|opponentlibrary) moveto(myexile) and!( transforms((,newability[choice name(Cast card) activate castcard(normal)],newability[choice name(Don't cast card) moveto(ownerexile)])) oneshot )! +auto=@movedto(*[manacost=9]|myexile) from(mystack) restriction{compare(hascntsynthesiseffect)~morethan~0}:name(Cast opponent card) target(*[manacost=10]|opponentlibrary) moveto(myexile) and!( transforms((,newability[choice name(Cast card) activate castcard(normal)],newability[choice name(Don't cast card) moveto(ownerexile)])) oneshot )! +auto=@movedto(*[manacost=10]|myexile) from(mystack) restriction{compare(hascntsynthesiseffect)~morethan~0}:name(Cast opponent card) target(*[manacost=11]|opponentlibrary) moveto(myexile) and!( transforms((,newability[choice name(Cast card) activate castcard(normal)],newability[choice name(Don't cast card) moveto(ownerexile)])) oneshot )! +auto=@movedto(*[manacost=11]|myexile) from(mystack) restriction{compare(hascntsynthesiseffect)~morethan~0}:name(Cast opponent card) target(*[manacost=12]|opponentlibrary) moveto(myexile) and!( transforms((,newability[choice name(Cast card) activate castcard(normal)],newability[choice name(Don't cast card) moveto(ownerexile)])) oneshot )! +auto=@movedto(*[manacost=12]|myexile) from(mystack) restriction{compare(hascntsynthesiseffect)~morethan~0}:name(Cast opponent card) target(*[manacost=13]|opponentlibrary) moveto(myexile) and!( transforms((,newability[choice name(Cast card) activate castcard(normal)],newability[choice name(Don't cast card) moveto(ownerexile)])) oneshot )! +auto=@movedto(*[manacost=13]|myexile) from(mystack) restriction{compare(hascntsynthesiseffect)~morethan~0}:name(Cast opponent card) target(*[manacost=14]|opponentlibrary) moveto(myexile) and!( transforms((,newability[choice name(Cast card) activate castcard(normal)],newability[choice name(Don't cast card) moveto(ownerexile)])) oneshot )! +auto=@movedto(*[manacost=14]|myexile) from(mystack) restriction{compare(hascntsynthesiseffect)~morethan~0}:name(Cast opponent card) target(*[manacost=15]|opponentlibrary) moveto(myexile) and!( transforms((,newability[choice name(Cast card) activate castcard(normal)],newability[choice name(Don't cast card) moveto(ownerexile)])) oneshot )! +auto=@movedto(*[manacost=15]|myexile) from(mystack) restriction{compare(hascntsynthesiseffect)~morethan~0}:name(Cast opponent card) target(*[manacost=16]|opponentlibrary) moveto(myexile) and!( transforms((,newability[choice name(Cast card) activate castcard(normal)],newability[choice name(Don't cast card) moveto(ownerexile)])) oneshot )! +auto=@movedto(*[manacost=16]|myexile) from(mystack) restriction{compare(hascntsynthesiseffect)~morethan~0}:name(Cast opponent card) target(*[manacost=17]|opponentlibrary) moveto(myexile) and!( transforms((,newability[choice name(Cast card) activate castcard(normal)],newability[choice name(Don't cast card) moveto(ownerexile)])) oneshot )! +auto=@movedto(*[manacost=17]|myexile) from(mystack) restriction{compare(hascntsynthesiseffect)~morethan~0}:name(Cast opponent card) target(*[manacost=18]|opponentlibrary) moveto(myexile) and!( transforms((,newability[choice name(Cast card) activate castcard(normal)],newability[choice name(Don't cast card) moveto(ownerexile)])) oneshot )! +auto=@movedto(*[manacost=18]|myexile) from(mystack) restriction{compare(hascntsynthesiseffect)~morethan~0}:name(Cast opponent card) target(*[manacost=19]|opponentlibrary) moveto(myexile) and!( transforms((,newability[choice name(Cast card) activate castcard(normal)],newability[choice name(Don't cast card) moveto(ownerexile)])) oneshot )! +auto=@movedto(*[manacost=19]|myexile) from(mystack) restriction{compare(hascntsynthesiseffect)~morethan~0}:name(Cast opponent card) target(*[manacost=20]|opponentlibrary) moveto(myexile) and!( transforms((,newability[choice name(Cast card) activate castcard(normal)],newability[choice name(Don't cast card) moveto(ownerexile)])) oneshot )! +auto=@movedto(*[manacost>=20]|myexile) from(mystack) restriction{compare(hascntsynthesiseffect)~morethan~0}:name(Cast opponent card) target(*[manacost=21]|opponentlibrary) moveto(myexile) and!( transforms((,newability[choice name(Cast card) activate castcard(normal)],newability[choice name(Don't cast card) moveto(ownerexile)])) oneshot )! +text=({U/P} can be paid with either {U} or 2 life.) -- {1}{U/P}, {T}, Exile a spell you control: Target opponent reveals cards from the top of their library until they reveal a card with mana value equal to 1 plus the exiled spellā??s mana value. Exile that card, then that player shuffles. You may cast that exiled card without paying its mana cost. +mana={3}{U} +type=Artifact +[/card] +[card] name=Synthetic Destiny auto=count(type:creature:mybattlefield) auto=all(creature|myBattlefield) moveto(exile) @@ -98962,6 +99237,14 @@ power=2 toughness=3 [/card] [card] +name=Vulshok Factory +auto={T}:name(Add mana and charge) add{R} && counter(0/0,1,Charge) +auto={2}{R}{T}{S}:name(Create golem) token(Golem,Creature Artifact Golem,hascntcharge/hascntcharge,haste) asSorcery +text={T}: Add {R}. Put a charge counter on Vulshok Factory. -- {2}{R}, {T}, Sacrifice Vulshok Factory: Create an X/X colorless Golem artifact creature token with haste, where X is the number of charge counters on Vulshok Factory. Activate only as a sorcery. +mana={2}{R} +type=Artifact +[/card] +[card] name=Vulshok Splitter auto=teach(creature) 2/0 auto={2}{R}:equip @@ -101466,6 +101749,14 @@ power=4 toughness=4 [/card] [card] +name=Wondrous Crucible +auto=@targeted(*|mybattlefield) from(*|opponentzones):choice name(This spell costs 2 more) name(This spell costs 2 more) target(*|opponentzones) transforms((,newability[pay[[{2}]] name(pay 2 mana) donothing?fizzle])) oneshot +auto=@each my endofturn:name(Mill and exile) deplete:2 controller && ability$!name(Exile a random card) name(Exile a random card) target(*[-land]|opponentgraveyard) moveto(opponentexile) and!( transforms((,newability[if cantargetcard(*[-instant;-sorcery]|*) then choice name(Cast the copy) name(Cast the copy) clone],newability[if cantargetcard(*[instant;sorcery]|*) then choice name(Cast the copy) name(Cast the copy) activate castcard(copied)],newability[choice name(Don't cast copy) donothing])) oneshot )!!$ opponent +text=Permanents you control have ward {2}. -- At the beginning of your end step, mill two cards, then exile a nonland card at random from your graveyard. Copy it. You may cast the copy without paying its mana cost. (A copy of a permanent spell becomes a token.) +mana={7} +type=Artifact +[/card] +[card] name=Wood Sage aicode=activate target(<4>creature[chosenname;zpos<=4]|mylibrary) moveto(myhand) and!( all(*[zpos<=4]|mylibrary) moveto(mygraveyard) )! auto={T}:name(Name a creature) ability$!chooseaname reveal:4 optionone name(Put named creatures in hand) name(Put named creatures in hand) target(<4>creature[chosenname]|reveal) moveto(myhand) optiononeend optiontwo name(Put in graveyard) target(<4>*|reveal) moveto(mygraveyard) optiontwoend revealend chooseend nonland!$ controller @@ -101477,14 +101768,6 @@ power=1 toughness=1 [/card] [card] -name=Wondrous Crucible -auto=@targeted(*|mybattlefield) from(*|opponentzones):choice name(This spell costs 2 more) name(This spell costs 2 more) target(*|opponentzones) transforms((,newability[pay[[{2}]] name(pay 2 mana) donothing?fizzle])) oneshot -auto=@each my endofturn:name(Mill and exile) deplete:2 controller && ability$!name(Exile a random card) name(Exile a random card) target(*[-land]|opponentgraveyard) moveto(opponentexile) and!( transforms((,newability[if cantargetcard(*[-instant;-sorcery]|*) then choice name(Cast the copy) name(Cast the copy) clone],newability[if cantargetcard(*[instant;sorcery]|*) then choice name(Cast the copy) name(Cast the copy) activate castcard(copied)],newability[choice name(Don't cast copy) donothing])) oneshot )!!$ opponent -text=Permanents you control have ward {2}. -- At the beginning of your end step, mill two cards, then exile a nonland card at random from your graveyard. Copy it. You may cast the copy without paying its mana cost. (A copy of a permanent spell becomes a token.) -mana={7} -type=Artifact -[/card] -[card] name=Woodcaller Automaton other={2}{G}{G} name(prototype) auto=if paid(alternative) then becomes(,3/3,green) @@ -101884,6 +102167,14 @@ power=4 toughness=4 [/card] [card] +name=Wurmquake +auto=name(Create wurm) token(Phyrexian Wurm,Creature Phyrexian Wurm,totmanaspent/totmanaspent,green,trample,poisontoxic) +flashback={8}{G}{G} +text=Corrupted - Create an X/X green Phyrexian Wurm creature token with trample and toxic 1, where X is the amount of mana spent to cast this spell. Then for each opponent with three or more poison counters, you create another one of those tokens. -- Flashback {8}{G}{G} (You may cast this card from your graveyard for its flashback cost. Then exile it.) +mana={4}{G}{G} +type=Sorcery +[/card] +[card] name=Wyleth, Soul of Steel abilities=trample auto=_ATTACKING_thisforeach(auras > 0) draw:1 controller diff --git a/projects/mtg/bin/Res/sets/primitives/unsupported.txt b/projects/mtg/bin/Res/sets/primitives/unsupported.txt index 9f4faec37..0d8200399 100644 --- a/projects/mtg/bin/Res/sets/primitives/unsupported.txt +++ b/projects/mtg/bin/Res/sets/primitives/unsupported.txt @@ -6055,6 +6055,12 @@ power=0 toughness=0 [/card] [card] +name=Lux Artillery +text=Whenever you cast an artifact creature spell, it gains sunburst. (It enters the battlefield with a +1/+1 counter on it for each color of mana spent to cast it.) -- At the beginning of your end step, if there are thirty or more counters among artifacts and creatures you control, Lux Artillery deals 10 damage to each opponent. +mana={4} +type=Artifact +[/card] +[card] name=Maddening Imp abilities=flying text=Flying -- {T}: Non-Wall creatures the active player controls attack this turn if able. At the beginning of the next end step, destroy each of those creatures that didn't attack this turn. Activate this ability only during an opponent's turn and only before combat. diff --git a/projects/mtg/src/MTGAbility.cpp b/projects/mtg/src/MTGAbility.cpp index 55b0d8436..1aa21d9b8 100644 --- a/projects/mtg/src/MTGAbility.cpp +++ b/projects/mtg/src/MTGAbility.cpp @@ -3641,7 +3641,8 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG found = s.find("equip"); if (found != string::npos) { - return NEW AEquip(observer, id, card); + if ((s.find("equipment") == string::npos) && (s.find("equipped") == string::npos)) // Fix a bug on parser when reading the substring "equip" with a different meaning. + return NEW AEquip(observer, id, card); } // TODO: deprecate this ability in favor of retarget