diff --git a/projects/mtg/Android/src/net/wagic/utils/ImgDownloader.java b/projects/mtg/Android/src/net/wagic/utils/ImgDownloader.java index 78229b535..fdb5de40b 100644 --- a/projects/mtg/Android/src/net/wagic/utils/ImgDownloader.java +++ b/projects/mtg/Android/src/net/wagic/utils/ImgDownloader.java @@ -2774,7 +2774,7 @@ public class ImgDownloader { if(id.equals("296754t") || id.equals("296741t") || id.equals("296730t") || id.equals("296728t") || id.equals("296723t") || id.equals("296696t") || id.equals("296697t") || id.equals("296606t")) //Squirrel 1/1 tokenurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/9/7/977ddd05-1aae-46fc-95ce-866710d1c5c6.jpg?1626092815"; - else if(id.equals("546983t") || id.equals("547250t")) // Blood + else if(id.equals("546983t") || id.equals("547250t") || id.equals("612139t") || id.equals("614765t")) // Blood tokenurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/a/6/a6f374bc-cd29-469f-808a-6a6c004ee8aa.jpg?1636041263"; else if(id.equals("545775t")) // Angel 4/4 tokenurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/f/f/ff0335da-631f-46b8-bfa1-b2f210c91f5f.jpg?1598311447"; @@ -2799,13 +2799,13 @@ public class ImgDownloader { tokenurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/b/7/b7667345-e11b-4cad-ac4c-84eb1c5656c5.jpg?1632410326"; else if(id.equals("534963t")) // Ooze green X/X tokenurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/f/a/faa10292-f358-48c1-a516-9a1eecf62b1d.jpg?1632410909"; - else if (id.equals("534938t")) // Elemental red X/X + else if(id.equals("534938t")) // Elemental red X/X tokenurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/c/4/c4052aed-981b-41d0-85f0-20c2599811ba.jpg?1632410707"; - else if (id.equals("534999t")) // Treefolk green X/X + else if(id.equals("534999t")) // Treefolk green X/X tokenurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/9/4/94e4345b-61b1-4026-a01c-c9f2036c5c8a.jpg?1632410986"; - else if (id.equals("296713t")) //Bear 2/2 + else if(id.equals("296713t")) //Bear 2/2 tokenurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/c/8/c879d4a6-cef5-48f1-8c08-f5b59ec850de.jpg?1562857282"; - else if (id.equals("296771t") || id.equals("296738t") || id.equals("540468t")) //Spider 1/2 + else if(id.equals("296771t") || id.equals("296738t") || id.equals("540468t")) //Spider 1/2 tokenurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/0/1/01591603-d903-419d-9957-cf0ae7f79240.jpg?1563073166"; else if(id.equals("296753t") || id.equals("296707t") || id.equals("296708t")) //Beast 4/4 tokenurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/0/6/06b5e4d2-7eac-4ee9-82aa-80a668705679.jpg?1625974919"; @@ -2989,7 +2989,7 @@ public class ImgDownloader { else if (id.equals("376404t")) //Elemental */* tokenurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/d/b/db67bc06-b6c9-49a0-beef-4d35842497cb.jpg?1561929912"; else if (id.equals("409810t") || id.equals("409805t") || id.equals("409953t") || id.equals("409997t") || - id.equals("410032t") || id.equals("293377t") || id.equals("294345t") || id.equals("295471t")) //Clue + id.equals("410032t") || id.equals("293377t") || id.equals("294345t") || id.equals("295471t") || id.equals("612562t")) //Clue tokenurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/f/2/f2c859e1-181e-44d1-afbd-bbd6e52cf42a.jpg?1562086885"; else if (id.equals("3242t")) //Wall 0/2 tokenurl = "https://www.mtg.onl/static/18f8f17bbe1f81822efa4bed878b6437/4d406/PROXY_Wall_0_2.jpg"; @@ -3031,7 +3031,7 @@ public class ImgDownloader { tokenurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/9/9/99a6ebce-f391-4642-857a-4dc1466895f3.jpg?1562926018"; else if(id.equals("53264t")) //Lizard 8/8 tokenurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/7/0/70345006-5cde-44f8-ab66-9d8163d4c4f6.jpg?1561897499"; - else if(id.equals("53289t")) //Saproling 1/1 + else if(id.equals("53289t") || id.equals("611982t") || id.equals("611958t")) //Saproling 1/1 tokenurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/0/3/0302fa7d-2e34-4f4a-a84e-7a78febc77f5.jpg?1562895593"; else if(id.equals("53300t")) //Construct 1/1 tokenurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/7/c/7c82af53-2de8-4cd6-84bf-fb39d2693de2.jpg?1561897501"; @@ -3042,8 +3042,11 @@ public class ImgDownloader { tokenurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/c/0/c06d2c07-7d3e-46e3-86f0-7ceba3b0aee0.jpg?1592672602"; else if(id.equals("52398t")) //Illusion 2/2 tokenurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/a/1/a10729a5-061a-4daf-91d6-0f6ce813a992.jpg?1562539791"; - else if (id.equals("435411t") || id.equals("435410t")) //Treasure + else if (id.equals("435411t") || id.equals("435410t") || id.equals("611089t") || id.equals("612146t") || id.equals("614935t") || + id.equals("614772t")) //Treasure tokenurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/7/2/720f3e68-84c0-462e-a0d1-90236ccc494a.jpg?1562539782"; + else if (id.equals("611086t") || id.equals("610929t") || id.equals("607138t")|| id.equals("607125t")) //Incubator + tokenurl = "https://cards.scryfall.io/large/front/2/c/2c5ed737-657b-43bf-b222-941da7579a4a.jpg"; else if (id.equals("1686t") || id.equals("2881t") || id.equals("201231t")) //Stangg Twin 3/4 tokenurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/e/b/eba90d37-d7ac-4097-a04d-1f27e4c9e5de.jpg?1562702416"; else if (id.equals("439843t")) //Golem 4/4 @@ -3069,7 +3072,7 @@ public class ImgDownloader { else if(id.equals("17841t") || id.equals("17850t") || id.equals("17852t") || id.equals("19444t") || id.equals("294101t") || id.equals("294226t")) //Elf Warrior 1/1 tokenurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/1/1/118d0655-5719-4512-8bc1-fe759669811b.jpg?1615686731"; - else if(id.equals("383392t")) //Beast 3/3 + else if(id.equals("383392t") || id.equals("539394t")) //Beast 3/3 tokenurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/3/f/3fc3a29a-280d-4f2c-9a01-8cfead75f583.jpg?1561756988"; else if (id.equals("5610t") || id.equals("416754t")) //Minion */* tokenurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/a/9/a9930d11-4772-4fc2-abbd-9af0a9b23a3e.jpg?1561757789"; @@ -3398,6 +3401,10 @@ public class ImgDownloader { tokenurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/9/4/94e4345b-61b1-4026-a01c-c9f2036c5c8a.jpg?1637115661"; else if(id.equals("296943t")) tokenurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/e/5/e5c0f400-41be-488b-be84-b07289b1ef62.jpg?1637115451"; + else if(id.equals("612523t")) // Feather + tokenurl = "https://cards.scryfall.io/large/front/e/4/e401e2a8-d0a3-4517-ba20-449a1fff7f85.jpg"; + else if(id.equals("611980t") || id.equals("611956t")) // Dragon Spirit 5/5 + tokenurl = "https://cards.scryfall.io/large/front/a/4/a4c06e08-2026-471d-a6d0-bbb0f040420a.jpg"; return tokenurl; } @@ -3422,7 +3429,9 @@ public class ImgDownloader { id.equals("503860") || id.equals("522280") || id.equals("522111") || id.equals("527288") || id.equals("531927") || id.equals("527295") || id.equals("111220") || id.equals("416829") || id.equals("296545") || id.equals("296694") || id.equals("540473") || id.equals("540464") || id.equals("540708") || id.equals("539395") || id.equals("539417") || id.equals("540991") || id.equals("545724") || id.equals("297319") || - id.equals("296925")) + id.equals("296925") || id.equals("611094") || id.equals("611234") || id.equals("615336") || id.equals("615147") || id.equals("614778") || + id.equals("614771") || id.equals("614756") || id.equals("614666") || id.equals("612620") || id.equals("612152") || id.equals("612130") || + id.equals("612145")) return false; return true; } @@ -3683,7 +3692,7 @@ public class ImgDownloader { set.equals("UNH") || set.equals("XLN") || set.equals("SOI") || set.equals("SOK") || set.equals("BOK") || set.equals("CHK") || set.equals("ZNR") || set.equals("KHM") || set.equals("STX") || set.equals("MID") || set.equals("CC2") || set.equals("VOW") || - set.equals("DBL") || set.equals("Y22")) + set.equals("DBL") || set.equals("Y22") || set.equals("MOM")) rarity = ""; if(id != null && !rarity.equals("t") && (negativeId || id.equals("209162") || id.equals("209163") || id.equals("401721") || id.equals("401722") || id.equals("999902"))) @@ -3691,7 +3700,8 @@ public class ImgDownloader { if(id != null && (id.equals("1750411") || id.equals("5176911") || id.equals("44680711") || id.equals("29530711") || id.equals("45108910") || id.equals("530447") || id.equals("530448") || id.equals("530449") || id.equals("296817") || id.equals("296818") || id.equals("29339510") || id.equals("1749810") || id.equals("5197410") || id.equals("5249510") || - id.equals("5247310") || id.equals("5213710") || id.equals("5253010") || id.equals("5270410"))) + id.equals("5247310") || id.equals("5213710") || id.equals("5253010") || id.equals("5270410") || id.equals("57018400") || + id.equals("57018401"))) rarity = ""; int c = lines.indexOf("[/card]", lastIndex); if (c > 0) @@ -3944,7 +3954,8 @@ public class ImgDownloader { || scryset.equals("ATH") || scryset.equals("HA4") || scryset.equals("TSR") || scryset.equals("HA5") || scryset.equals("H1R") || 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("Q06") || scryset.equals("DBL") || scryset.equals("Y22") | scryset.equals("CLB") || scryset.equals("MOM") + || scryset.equals("MOC")){ try { doc = Jsoup.connect(imageurl + scryset.toLowerCase()).get(); Elements outlinks = doc.select("body a"); @@ -4111,7 +4122,8 @@ public class ImgDownloader { && !scryset.equals("ATH") && !scryset.equals("HA4") && !scryset.equals("TSR") && !scryset.equals("HA5") && !scryset.equals("H1R") && !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("Q06") && !scryset.equals("DBL") && !scryset.equals("Y22") && !scryset.equals("CLB") && !scryset.equals("MOM") + && !scryset.equals("MOC")){ try { doc = Jsoup.connect(imageurl + scryset.toLowerCase()).get(); Elements outlinks = doc.select("body a"); @@ -4229,7 +4241,8 @@ public class ImgDownloader { && !scryset.equals("ATH") && !scryset.equals("HA4") && !scryset.equals("TSR") && !scryset.equals("HA5") && !scryset.equals("H1R") && !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("Q06") && !scryset.equals("DBL") && !scryset.equals("Y22") && !scryset.equals("CLB") && !scryset.equals("MOM") + && !scryset.equals("MOC")){ try { doc = Jsoup.connect(imageurl + scryset.toLowerCase()).get(); } catch (Exception e) { @@ -4399,7 +4412,7 @@ public class ImgDownloader { || scryset.equals("HA4") || scryset.equals("TSR") || scryset.equals("HA5") || scryset.equals("H1R") || 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("DBL") || scryset.equals("Y22") || scryset.equals("CLB") || scryset.equals("MOM") || scryset.equals("MOC")){ 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 a32e484d3..eaea96d36 100644 --- a/projects/mtg/CardImageLinks.csv +++ b/projects/mtg/CardImageLinks.csv @@ -66075,6 +66075,19 @@ MUL;611367;https://cards.scryfall.io/large/front/8/1/81826ef6-02ea-411b-ac08-8ac MUL;611368;https://cards.scryfall.io/large/front/e/5/e56ba25b-1803-4e1a-b7cf-c2c873159010.jpg MUL;611369;https://cards.scryfall.io/large/front/5/7/572f03c2-cd20-4e09-90a4-13bd291c5478.jpg MUL;611370;https://cards.scryfall.io/large/front/5/f/5fe75365-7f6d-4faf-9f55-0ba83821836a.jpg +MOM;611089t;https://cards.scryfall.io/large/front/7/2/720f3e68-84c0-462e-a0d1-90236ccc494a.jpg +MOM;611086t;https://cards.scryfall.io/large/front/2/c/2c5ed737-657b-43bf-b222-941da7579a4a.jpg +MOM;610929t;https://cards.scryfall.io/large/front/2/c/2c5ed737-657b-43bf-b222-941da7579a4a.jpg +MOM;610919t;https://cards.scryfall.io/large/front/d/2/d27b3b91-8bef-4d3c-84ef-5015ca9e472c.jpg +MOM;607042t;https://cards.scryfall.io/large/front/8/8/88439bfc-8942-473b-9e4f-863017788476.jpg +MOM;607045t;https://cards.scryfall.io/large/front/d/2/d27b3b91-8bef-4d3c-84ef-5015ca9e472c.jpg +MOM;607017t;https://cards.scryfall.io/large/front/1/7/1774c68a-3d76-4fe1-b741-e6acf6b9214c.jpg +MOM;607138t;https://cards.scryfall.io/large/front/2/c/2c5ed737-657b-43bf-b222-941da7579a4a.jpg +MOM;607125t;https://cards.scryfall.io/large/front/2/c/2c5ed737-657b-43bf-b222-941da7579a4a.jpg +MOM;610891t;https://cards.scryfall.io/large/front/1/7/1774c68a-3d76-4fe1-b741-e6acf6b9214c.jpg +MOM;607114t;https://cards.scryfall.io/large/front/8/8/88439bfc-8942-473b-9e4f-863017788476.jpg +MOM;607100t;https://cards.scryfall.io/large/front/2/8/28a7a9b0-d823-4b34-829f-ade81fc141e0.jpg +MOM;607314t;https://cards.scryfall.io/large/front/2/8/28a7a9b0-d823-4b34-829f-ade81fc141e0.jpg MOM;999903;https://cards.scryfall.io/large/front/2/c/2c5ed737-657b-43bf-b222-941da7579a4a.jpg MOM;999904;https://cards.scryfall.io/large/back/2/c/2c5ed737-657b-43bf-b222-941da7579a4a.jpg MOM;607011;https://cards.scryfall.io/large/front/7/3/73f8fc4f-2f36-4932-8d04-3c2651c116dc.jpg diff --git a/projects/mtg/bin/Res/sets/MOC/_cards.dat b/projects/mtg/bin/Res/sets/MOC/_cards.dat index 5435128fe..504ef6894 100644 --- a/projects/mtg/bin/Res/sets/MOC/_cards.dat +++ b/projects/mtg/bin/Res/sets/MOC/_cards.dat @@ -2,9 +2,404 @@ author=Wagic Team name=March of the Machine Commander year=2023-04-21 -total=451 +total=530 [/meta] [card] +primitive=Soldier +id=-615330 +rarity=T +[/card] +[card] +primitive=Goblin +id=-615139 +rarity=T +[/card] +[card] +primitive=Eldrazi +id=-615137 +rarity=T +[/card] +[card] +primitive=Knight +id=-614951 +rarity=T +[/card] +[card] +primitive=Sliver +id=-614947 +rarity=T +[/card] +[card] +primitive=Demon +id=-614946 +rarity=T +[/card] +[card] +primitive=Assassin +id=-614945 +rarity=T +[/card] +[card] +primitive=Insect +id=-614940 +rarity=T +[/card] +[card] +primitive=Shapeshifter +id=-614939 +rarity=T +[/card] +[card] +primitive=Treasure +id=-614935 +rarity=T +[/card] +[card] +primitive=Germ +id=-614784 +rarity=T +[/card] +[card] +primitive=Elemental +id=-614783 +rarity=T +[/card] +[card] +primitive=Treasure +id=-614772 +rarity=T +[/card] +[card] +primitive=Blood +id=-614765 +rarity=T +[/card] +[card] +primitive=Spirit +id=-614757 +rarity=T +[/card] +[card] +primitive=Golem +id=-614752 +rarity=T +[/card] +[card] +primitive=Knight +id=-614750 +rarity=T +[/card] +[card] +primitive=Angel +id=-614675 +rarity=T +[/card] +[card] +primitive=Gremlin +id=-614671 +rarity=T +[/card] +[card] +primitive=Knight +id=-614670 +rarity=T +[/card] +[card] +primitive=Soldier +id=-614660 +rarity=T +[/card] +[card] +primitive=Kobold +id=-612659 +rarity=T +[/card] +[card] +primitive=Thopter +id=-612634 +rarity=T +[/card] +[card] +primitive=Knight +id=-612625 +rarity=T +[/card] +[card] +primitive=Germ +id=-612623 +rarity=T +[/card] +[card] +primitive=Golem +id=-612618 +rarity=T +[/card] +[card] +primitive=Germ +id=-612615 +rarity=T +[/card] +[card] +primitive=Myr +id=-612614 +rarity=T +[/card] +[card] +primitive=Construct +id=-612595 +rarity=T +[/card] +[card] +primitive=Servo +id=-612586 +rarity=T +[/card] +[card] +primitive=Bird +id=-612584 +rarity=T +[/card] +[card] +primitive=Insect +id=-612583 +rarity=T +[/card] +[card] +primitive=Spirit +id=-612582 +rarity=T +[/card] +[card] +primitive=Spirit +id=-612579 +rarity=T +[/card] +[card] +primitive=Faerie +id=-612577 +rarity=T +[/card] +[card] +primitive=Beast +id=-612567 +rarity=T +[/card] +[card] +primitive=Knight +id=-612566 +rarity=T +[/card] +[card] +primitive=Clue +id=-612562 +rarity=T +[/card] +[card] +primitive=Blood +id=-612537 +rarity=T +[/card] +[card] +primitive=Thopter +id=-612536 +rarity=T +[/card] +[card] +primitive=Goblin +id=-612535 +rarity=T +[/card] +[card] +primitive=Goblin +id=-612530 +rarity=T +[/card] +[card] +primitive=Feather +id=-612523 +rarity=T +[/card] +[card] +primitive=Knight +id=-612501 +rarity=T +[/card] +[card] +primitive=Thopter +id=-612492 +rarity=T +[/card] +[card] +primitive=Thopter +id=-612489 +rarity=T +[/card] +[card] +primitive=Thopter +id=-612483 +rarity=T +[/card] +[card] +primitive=Tentacle +id=-612476 +rarity=T +[/card] +[card] +primitive=Golem +id=-612475 +rarity=T +[/card] +[card] +primitive=Squid +id=-612466 +rarity=T +[/card] +[card] +primitive=Human +id=-612465 +rarity=T +[/card] +[card] +primitive=Knight +id=-612455 +rarity=T +[/card] +[card] +primitive=Warrior +id=-612451 +rarity=T +[/card] +[card] +primitive=Horror +id=-612447 +rarity=T +[/card] +[card] +primitive=Golem +id=-612442 +rarity=T +[/card] +[card] +primitive=Soldier +id=-612439 +rarity=T +[/card] +[card] +primitive=Soldier +id=-612436 +rarity=T +[/card] +[card] +primitive=Elephant +id=-612435 +rarity=T +[/card] +[card] +primitive=Bird +id=-612431 +rarity=T +[/card] +[card] +primitive=Soldier +id=-612430 +rarity=T +[/card] +[card] +primitive=Golem +id=-612423 +rarity=T +[/card] +[card] +primitive=Bird +id=-612422 +rarity=T +[/card] +[card] +primitive=Spirit +id=-612416 +rarity=T +[/card] +[card] +primitive=Human +id=-612415 +rarity=T +[/card] +[card] +primitive=Germ +id=-612158 +rarity=T +[/card] +[card] +primitive=Elemental +id=-612157 +rarity=T +[/card] +[card] +primitive=Treasure +id=-612146 +rarity=T +[/card] +[card] +primitive=Blood +id=-612139 +rarity=T +[/card] +[card] +primitive=Spirit +id=-612131 +rarity=T +[/card] +[card] +primitive=Golem +id=-612126 +rarity=T +[/card] +[card] +primitive=Knight +id=-612124 +rarity=T +[/card] +[card] +primitive=Angel +id=-612087 +rarity=T +[/card] +[card] +primitive=Knight +id=-612084 +rarity=T +[/card] +[card] +primitive=Gremlin +id=-612046 +rarity=T +[/card] +[card] +primitive=Gremlin +id=-612006 +rarity=T +[/card] +[card] +primitive=Saproling +id=-611982 +rarity=T +[/card] +[card] +primitive=Spirit +id=-611980 +rarity=T +[/card] +[card] +primitive=Saproling +id=-611958 +rarity=T +[/card] +[card] +primitive=Spirit +id=-611956 +rarity=T +[/card] +[card] primitive=Bright-Palm, Soul Awakener id=612004 rarity=M diff --git a/projects/mtg/bin/Res/sets/MOM/_cards.dat b/projects/mtg/bin/Res/sets/MOM/_cards.dat index 7ffd00fa4..ad2fd94c1 100644 --- a/projects/mtg/bin/Res/sets/MOM/_cards.dat +++ b/projects/mtg/bin/Res/sets/MOM/_cards.dat @@ -2,9 +2,99 @@ author=Wagic Team name=March of the Machine year=2023-04-21 -total=453 +total=471 [/meta] [card] +primitive=Treasure +id=-611089 +rarity=T +[/card] +[card] +primitive=Monk +id=-610919 +rarity=T +[/card] +[card] +primitive=Soldier +id=-610891 +rarity=T +[/card] +[card] +primitive=Spirit +id=-610543 +rarity=T +[/card] +[card] +primitive=Pirate +id=-610531 +rarity=T +[/card] +[card] +primitive=Spirit +id=-607321 +rarity=T +[/card] +[card] +primitive=Elemental +id=-607314 +rarity=T +[/card] +[card] +primitive=Knight +id=-607306 +rarity=T +[/card] +[card] +primitive=Thopter +id=-607296 +rarity=T +[/card] +[card] +primitive=Pirate +id=-607276 +rarity=T +[/card] +[card] +primitive=Elemental +id=-607205 +rarity=T +[/card] +[card] +primitive=Knight +id=-607114 +rarity=T +[/card] +[card] +primitive=Elemental +id=-607100 +rarity=T +[/card] +[card] +primitive=Kraken +id=-607086 +rarity=T +[/card] +[card] +primitive=Monk +id=-607045 +rarity=T +[/card] +[card] +primitive=Knight +id=-607042 +rarity=T +[/card] +[card] +primitive=Knight +id=-607033 +rarity=T +[/card] +[card] +primitive=Soldier +id=-607017 +rarity=T +[/card] +[card] primitive=Incubator id=999903 rarity=T diff --git a/projects/mtg/bin/Res/sets/primitives/borderline.txt b/projects/mtg/bin/Res/sets/primitives/borderline.txt index c80cbe55a..8c2e69f9a 100644 --- a/projects/mtg/bin/Res/sets/primitives/borderline.txt +++ b/projects/mtg/bin/Res/sets/primitives/borderline.txt @@ -11667,6 +11667,16 @@ power=3 toughness=3 [/card] [card] +name=Caetus, Sea Tyrant of Segovia +auto=@each my endofturn:may name(Untap 4 creatures) target(creature|battlefield) untap +auto=lord(creature[-tapped]|mybattlefield) transforms((,newability[{T}:name(Pay 1 convoke for spell) name(Pay 1 convoke for spell) target(*[-creature]|myrestrictedcastingzone) transforms((,newability[changecost(colorless:-1)])) ueot])) +text=Noncreature spells you cast have convoke. (Your creatures can help cast those spells. Each creature you tap while casting a noncreature spell pays for {1} or one mana of that creature's color.) -- At the beginning of your end step, untap up to four target creatures. +type=Legendary Creature +subtype=Serpent +power=3 +toughness=3 +[/card] +[card] name=Caged Sun auto=choice name(Green) transforms((,newability[lord(creature[green]|myBattlefield) 1/1],newability[lord(forest|myBattlefield) producecolor:green])) forever auto=choice name(White) transforms((,newability[lord(creature[white]|myBattlefield) 1/1],newability[lord(plains|myBattlefield) producecolor:white])) forever @@ -16266,6 +16276,15 @@ power=3 toughness=3 [/card] [card] +name=Complete the Circuit +other={convoke} name(Convoke) +auto=emblem transforms((,newability[lord(sorcery|mycastingzone) asflash],newability[@movedto(*[instant;sorcery]|mystack) turnlimited:name(Copy spell twice) name(Copy spell twice) all(trigger[to]) transforms((,newability[activate castcard(copied noevent costx!:x:! kicked!:kicked:!)],newability[activate castcard(copied noevent costx!:x:! kicked!:kicked:!)])) ueot])) ueot +auto=emblem transforms(()) ueot +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.) -- You may cast sorcery spells this turn as though they had flash. -- When you next cast an instant or sorcery spell this turn, copy that spell twice. You may choose new targets for the copies. +mana={5}{U} +type=Instant +[/card] +[card] name=Complicate abilities=cycling target=*|stack @@ -17090,6 +17109,14 @@ text={T}: Add {C} to your mana pool. ({C} represents colorless mana.) -- {T}, Pa type=Land [/card] [card] +name=Corruption of Towashi +auto=name(Incubate 4) name(Incubate 4) activate castcard(noevent costx!:4:! named!:Incubator:!) +auto=@transformed(*[-instant;-sorcery]|myzones) turnlimited:may name(Draw a card) draw:1 controller +text=When Corruption of Towashi enters the battlefield, incubate 4. (Create an Incubator token with four +1/+1 counters on it and "{2}: Transform this artifact." It transforms into a 0/0 Phyrexian artifact creature.) -- Whenever a permanent you control transforms or a permanent enters the battlefield under your control transformed, you may draw a card. Do this only once each turn. +mana={4}{U} +type=Enchantment +[/card] +[card] name=Corsair Captain auto=token(Treasure Sur) auto=lord(other creature[pirate]|mybattlefield) 1/1 @@ -26559,6 +26586,19 @@ power=4 toughness=4 [/card] [card] +name=Ephara's Dispersal +other={U} name(Target attacking creature) +restriction=type(creature|battlefield)~morethan~0 +otherrestriction=type(creature[attacking]|battlefield)~morethan~0 +auto=if paid(alternative) then if type(creature[attacking]|opponentbattlefield)~morethan~0 then choice name(Return opponent's creature) name(Return opponent's creature) name(Return opponent's creature) target(creature[attacking]|opponentbattlefield) transforms((,newability[moveto(ownerhand)],newability[ability$!name(Surveil 2) name(Surveil 2) reveal:psurveiloffsetplus2plusend revealzone(mylibrary) optionone name(put in graveyard) target(*|reveal) moveto(mygraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(mylibrary) optiontwoend afterrevealed surveil afterrevealedend revealend!$ opponent])) oneshot +auto=if paid(alternative) then if type(creature[attacking]|mybattlefield)~morethan~0 then choice name(Return your creature) name(Return your creature) name(Return your creature) target(creature[attacking]|mybattlefield) transforms((,newability[moveto(ownerhand)],newability[ability$!name(Surveil 2) name(Surveil 2) reveal:psurveiloffsetplus2plusend revealzone(mylibrary) optionone name(put in graveyard) target(*|reveal) moveto(mygraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(mylibrary) optiontwoend afterrevealed surveil afterrevealedend revealend!$ controller])) oneshot +auto=ifnot paid(alternative) then if type(creature|opponentbattlefield)~morethan~0 then choice name(Return opponent's creature) name(Return opponent's creature) name(Return opponent's creature) target(creature|opponentbattlefield) transforms((,newability[moveto(ownerhand)],newability[ability$!name(Surveil 2) name(Surveil 2) reveal:psurveiloffsetplus2plusend revealzone(mylibrary) optionone name(put in graveyard) target(*|reveal) moveto(mygraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(mylibrary) optiontwoend afterrevealed surveil afterrevealedend revealend!$ opponent])) oneshot +auto=ifnot paid(alternative) then if type(creature|mybattlefield)~morethan~0 then choice name(Return your creature) name(Return your creature) name(Return your creature) target(creature|mybattlefield) transforms((,newability[moveto(ownerhand)],newability[ability$!name(Surveil 2) name(Surveil 2) reveal:psurveiloffsetplus2plusend revealzone(mylibrary) optionone name(put in graveyard) target(*|reveal) moveto(mygraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(mylibrary) optiontwoend afterrevealed surveil afterrevealedend revealend!$ controller])) oneshot +text=This spell costs {2} less to cast if it targets an attacking creature. -- Return target creature to its owner's hand. Surveil 2. (Look at the top two cards of your library, then put any number of them into your graveyard and the rest on top of your library in any order.) +mana={2}{U} +type=Instant +[/card] +[card] name=Ephemerate target=creature|mybattlefield auto=moveto(exile) and!(moveto(ownerbattlefield))! @@ -27927,6 +27967,14 @@ mana={2}{U} type=Enchantment [/card] [card] +name=Eyes of Gitaxias +auto=name(Incubate 3) name(Incubate 3) activate castcard(noevent costx!:3:! named!:Incubator:!) +auto=name(Draw a card) draw:1 controller +text=Incubate 3. (Create an Incubator token with three +1/+1 counters on it and "{2}: Transform this artifact." It transforms into a 0/0 Phyrexian artifact creature.) -- Draw a card. +mana={2}{U} +type=Sorcery +[/card] +[card] name=Eyes of the Beholder target=creature auto=-11/-11 ueot @@ -43726,6 +43774,19 @@ power=4 toughness=5 [/card] [card] +name=Invasion of Arcavios +backside=Invocation of the Founders +restriction=compare(isflipped)~equalto~0 +anyzone={0}:doubleside(backside) +auto=ability$!name(Search card) name(Search card) target(*[instant;sorcery]|mylibrary,mygraveyard,mysideboard) moveto(myhand)!$ controller +auto=moveto(opponentbattlefield) and!( transforms((,newability[tap(noevent)],newability[doesnotuntap],newability[counter(0/0.7.Defense)])) forever )! +auto=@counterremoved(0/0,1,Defense) from(this) restriction{compare(hascntdefense)~equalto~0}:name(Exile and transforms) name(Exile and transforms) moveto(ownerexile) and!( flip(backside) forcetype(Enchantment) )! asSorcery +text=(As a Siege enters, choose an opponent to protect it. You and others can attack it. When it's defeated, exile it, then cast it transformed.) -- When Invasion of Arcavios enters the battlefield, search your library, graveyard, and/or outside the game for an instant or sorcery card you own, reveal it, and put it into your hand. If you search your library this way, shuffle. +mana={3}{U}{U} +type=Battle +subtype=Siege +[/card] +[card] name=Invasion of Belenon backside=Belenon War Anthem restriction=compare(isflipped)~equalto~0 @@ -43767,6 +43828,19 @@ type=Battle subtype=Siege [/card] [card] +name=Invasion of Kamigawa +backside=Rooftop Saboteurs +restriction=compare(isflipped)~equalto~0 +anyzone={0}:doubleside(backside) +auto=ability$!name(Tap creature or artifact) name(Tap creature or artifact) target(*[creature;artifact]|opponentbattlefield) transforms((,newability[tap],newability[counter(0/0.1.Stun)],newability[this(counter{0/0.1.Stun}>=1) doesnotuntap],newability[@each my untap restriction{compare(hascntstun)~morethan~0}:name(Remove a stun counter) name(Remove a stun counter) counter(0/0.-1.Stun)])) forever!$ controller +auto=moveto(opponentbattlefield) and!( transforms((,newability[tap(noevent)],newability[doesnotuntap],newability[counter(0/0.4.Defense)])) forever )! +auto=@counterremoved(0/0,1,Defense) from(this) restriction{compare(hascntdefense)~equalto~0}:name(Exile and transforms) name(Exile and transforms) moveto(ownerexile) and!( flip(backside) forcetype(Creature Moonfolk Ninja) )! asSorcery +text=(As a Siege enters, choose an opponent to protect it. You and others can attack it. When it's defeated, exile it, then cast it transformed.) -- When Invasion of Kamigawa enters the battlefield, tap target artifact or creature an opponent controls and put a stun counter on it. (If a permanent with a stun counter would become untapped, remove one from it instead.) +mana={3}{U} +type=Battle +subtype=Siege +[/card] +[card] name=Invasion of Ravnica backside=Guildpact Paragon restriction=compare(isflipped)~equalto~0 @@ -43780,6 +43854,19 @@ type=Battle subtype=Siege [/card] [card] +name=Invasion of Segovia +backside=Caetus, Sea Tyrant of Segovia +restriction=compare(isflipped)~equalto~0 +anyzone={0}:doubleside(backside) +auto=name(Create 2 Kraken) token(Kraken,Creature Kraken,1/1,blue,trample)*2 +auto=moveto(opponentbattlefield) and!( transforms((,newability[tap(noevent)],newability[doesnotuntap],newability[counter(0/0.4.Defense)])) forever )! +auto=@counterremoved(0/0,1,Defense) from(this) restriction{compare(hascntdefense)~equalto~0}:name(Exile and transforms) name(Exile and transforms) moveto(ownerexile) and!( flip(backside) forcetype(Legendary Creature Serpent) )! asSorcery +text=(As a Siege enters, choose an opponent to protect it. You and others can attack it. When it's defeated, exile it, then cast it transformed.) -- When Invasion of Segovia enters the battlefield, create two 1/1 blue Kraken creature tokens with trample. +mana={2}{U} +type=Battle +subtype=Siege +[/card] +[card] name=Invasion of Theros backside=Ephara, Ever-Sheltering restriction=compare(isflipped)~equalto~0 @@ -43807,6 +43894,19 @@ type=Enchantment subtype=Saga [/card] [card] +name=Invasion of Vryn +backside=Overloaded Mage-Ring +restriction=compare(isflipped)~equalto~0 +anyzone={0}:doubleside(backside) +auto=draw:3 controller && ability$!name(Discard a card) name(Discard a card) reject notatarget(*|myhand)!$ controller +auto=moveto(opponentbattlefield) and!( transforms((,newability[tap(noevent)],newability[doesnotuntap],newability[counter(0/0.4.Defense)])) forever )! +auto=@counterremoved(0/0,1,Defense) from(this) restriction{compare(hascntdefense)~equalto~0}:name(Exile and transforms) name(Exile and transforms) moveto(ownerexile) and!( flip(backside) forcetype(Artifact) )! asSorcery +text=(As a Siege enters, choose an opponent to protect it. You and others can attack it. When it's defeated, exile it, then cast it transformed.) -- When Invasion of Vryn enters the battlefield, draw three cards, then discard a card. +mana={3}{U} +type=Battle +subtype=Siege +[/card] +[card] name=Invert // Invent other={4}{U}{R} name(Invent) auto=ifnot paid(alternative) then target(creature) transforms((,setpower=toughness,settoughness=power)) ueot @@ -43842,6 +43942,12 @@ mana={2}{G} type=Instant [/card] [card] +name=Invocation of the Founders +auto=@movedto(*[instant;sorcery]|mystack) from(myhand):name(Copy spell) name(Copy spell) all(trigger[to]) transforms((,newability[activate castcard(copied noevent costx!:x:! kicked!:kicked:!)])) ueot +text=Whenever you cast an instant or sorcery spell from your hand, you may copy that spell. You may choose new targets for the copy. +type=Enchantment +[/card] +[card] name=Invoke the Divine target=artifact,enchantment auto=destroy @@ -60582,6 +60688,13 @@ power=3 toughness=2 [/card] [card] +name=Overloaded Mage-Ring +auto={1}{T}{S}:name(Copy permanent) target(*[-instant;-sorcery]|mystack) transforms(((,newability[clone])) oneshot +auto={1}{T}{S}:name(Copy spell) target(*[instant;sorcery]|mystack) activate castcard(copied noevent) +text={1}, {T}, Sacrifice Overloaded Mage-Ring: Copy target spell you control. You may choose new targets for the copy. (A copy of a permanent spell becomes a token.) +type=Artifact +[/card] +[card] name=Overmaster auto=draw:1 controller auto=emblem transforms((,newability[@movedto(*[instant;sorcery]|mystack) turnlimited:all(trigger[to]) transforms((,newability[nofizzle])) oneshot])) ueot @@ -70348,6 +70461,16 @@ power=3 toughness=4 [/card] [card] +name=Rooftop Saboteurs +abilities=flying +auto=@combatdamaged(player) from(this):name(Draw a card) draw:1 controller +text=Flying -- Whenever Rooftop Saboteurs deals combat damage to a player or battle, draw a card. +type=Creature +subtype=Moonfolk Ninja +power=2 +toughness=3 +[/card] +[card] name=Rookie Mistake target=creature auto=0/2 ueot