diff --git a/projects/mtg/Android/src/net/wagic/utils/ImgDownloader.java b/projects/mtg/Android/src/net/wagic/utils/ImgDownloader.java index 806186a6c..cde419a20 100644 --- a/projects/mtg/Android/src/net/wagic/utils/ImgDownloader.java +++ b/projects/mtg/Android/src/net/wagic/utils/ImgDownloader.java @@ -1822,8 +1822,10 @@ public class ImgDownloader { cardurl = "https://c1.scryfall.com/file/scryfall-cards/large/back/8/c/8cfd0887-0c83-4b33-a85e-8b8ec5bf758d.jpg?1617453475"; else if(id.equals("513652")) cardurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/6/5/65008352-bc7e-40b2-a832-b46813e5dc4c.jpg?1617453527"; - else if(id.equals("513653")) - cardurl = "https://c1.scryfall.com/file/scryfall-cards/large/back/6/5/65008352-bc7e-40b2-a832-b46813e5dc4c.jpg?1617453527"; + else if(id.equals("513652t") || id.equals("513638t") || id.equals("513543t")) + cardurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/d/0/d0ddbe3e-4a66-494d-9304-7471232549bf.jpg?1617626099"; + else if(id.equals("513634t")) + cardurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/9/1/910f48ab-b04e-4874-b31d-a86a7bc5af14.jpg?1617626097"; return cardurl; } @@ -2702,7 +2704,8 @@ public class ImgDownloader { if (rarity == null || !rarity.equals("t") || set.equals("DKA") || set.equals("EMN") || set.equals("ISD") || set.equals("ORI") || set.equals("RIX") || set.equals("V17") || 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("BOK") || set.equals("CHK") || set.equals("ZNR") || set.equals("KHM") || + set.equals("STX")) rarity = ""; if(id != null && (id.equals("209162") || id.equals("209163") || id.equals("401721") || id.equals("401722") || id.equals("491633"))) rarity = "t"; @@ -2717,6 +2720,14 @@ public class ImgDownloader { mappa.put("503837t", "Koma's Coil"); if(id.equals("503841")) mappa.put("503841t", "Shard"); + if(id.equals("513652")) + mappa.put("513652t", "Pest"); + if(id.equals("513638")) + mappa.put("513638t", "Pest"); + if(id.equals("513543")) + mappa.put("513543t", "Pest"); + if(id.equals("513634")) + mappa.put("513634t", "Fractal"); if (id.equals("114921")) { mappa.put("11492111t", "Citizen"); mappa.put("11492112t", "Camarid"); diff --git a/projects/mtg/bin/Res/sets/STX/_cards.dat b/projects/mtg/bin/Res/sets/STX/_cards.dat index 0dad090b9..3f06124d5 100644 --- a/projects/mtg/bin/Res/sets/STX/_cards.dat +++ b/projects/mtg/bin/Res/sets/STX/_cards.dat @@ -3,7 +3,7 @@ author=Wagic Team name=Strixhaven: School of Mages orderindex=EXP-ZZI.STX year=2021-04-23 -total=337 +total=340 [/meta] [card] primitive=Pest @@ -16,6 +16,11 @@ id=-513728 rarity=T [/card] [card] +primitive=Inkling +id=-513722 +rarity=T +[/card] +[card] primitive=Spirit id=-513712 rarity=T @@ -151,6 +156,11 @@ id=-513585 rarity=T [/card] [card] +primitive=Inkling +id=-513566 +rarity=T +[/card] +[card] primitive=Pest id=-513563 rarity=T @@ -161,6 +171,11 @@ id=-513550 rarity=T [/card] [card] +primitive=Pest +id=-513543 +rarity=T +[/card] +[card] primitive=Fractal id=-513529 rarity=T @@ -181,7 +196,7 @@ id=-513502 rarity=T [/card] [card] -primitive=Elemental +primitive=Inkling id=-513481 rarity=T [/card] @@ -218,7 +233,7 @@ rarity=R [card] primitive=Explore the Vastlands id=513483 -rarity=R +rarity=T [/card] [card] primitive=Academic Probation @@ -928,7 +943,7 @@ rarity=R [card] primitive=Echoing Equation id=513625 -rarity=R +rarity=T [/card] [card] primitive=Blex, Vexing Pest @@ -938,7 +953,7 @@ rarity=M [card] primitive=Search for Blex id=513627 -rarity=M +rarity=T [/card] [card] primitive=Extus, Oriq Overlord @@ -948,7 +963,7 @@ rarity=M [card] primitive=Awaken the Blood Avatar id=513629 -rarity=M +rarity=T [/card] [card] primitive=Flamescroll Celebrant @@ -958,7 +973,7 @@ rarity=R [card] primitive=Revel in Silence id=513631 -rarity=R +rarity=T [/card] [card] primitive=Jadzi, Oracle of Arcavios @@ -968,7 +983,7 @@ rarity=M [card] primitive=Journey to the Oracle id=513633 -rarity=M +rarity=T [/card] [card] primitive=Kianne, Dean of Substance @@ -978,7 +993,7 @@ rarity=R [card] primitive=Imbraham, Dean of Theory id=513635 -rarity=R +rarity=T [/card] [card] primitive=Mila, Crafty Companion @@ -988,7 +1003,7 @@ rarity=M [card] primitive=Lukka, Wayward Bonder id=513637 -rarity=M +rarity=T [/card] [card] primitive=Pestilent Cauldron @@ -998,7 +1013,7 @@ rarity=R [card] primitive=Restorative Burst id=513639 -rarity=R +rarity=T [/card] [card] primitive=Plargg, Dean of Chaos @@ -1008,7 +1023,7 @@ rarity=R [card] primitive=Augusta, Dean of Order id=513641 -rarity=R +rarity=T [/card] [card] primitive=Rowan, Scholar of Sparks @@ -1018,7 +1033,7 @@ rarity=M [card] primitive=Will, Scholar of Frost id=513643 -rarity=M +rarity=T [/card] [card] primitive=Selfless Glyphweaver @@ -1028,7 +1043,7 @@ rarity=R [card] primitive=Deadly Vanity id=513645 -rarity=R +rarity=T [/card] [card] primitive=Shaile, Dean of Radiance @@ -1038,7 +1053,7 @@ rarity=R [card] primitive=Embrose, Dean of Shadow id=513647 -rarity=R +rarity=T [/card] [card] primitive=Torrent Sculptor @@ -1048,7 +1063,7 @@ rarity=R [card] primitive=Flamethrower Sonata id=513649 -rarity=R +rarity=T [/card] [card] primitive=Uvilda, Dean of Perfection @@ -1058,7 +1073,7 @@ rarity=R [card] primitive=Nassari, Dean of Expression id=513651 -rarity=R +rarity=T [/card] [card] primitive=Valentin, Dean of the Vein @@ -1068,7 +1083,7 @@ rarity=R [card] primitive=Lisette, Dean of the Root id=513653 -rarity=R +rarity=T [/card] [card] primitive=Aether Helix diff --git a/projects/mtg/bin/Res/sets/primitives/borderline.txt b/projects/mtg/bin/Res/sets/primitives/borderline.txt index 9c2d4ba8c..977761dff 100644 --- a/projects/mtg/bin/Res/sets/primitives/borderline.txt +++ b/projects/mtg/bin/Res/sets/primitives/borderline.txt @@ -1,7 +1,7 @@ grade=borderline #Bordeline Primitives Pack for Wagic the Homebrew. #Please keep these card alphabetized, and try to have the "name=" line at the top of each card -#I sorted this programatically - Vitty85 30-01-2021 +#I sorted this programatically - Vitty85 25-04-2021 [card] name=AEther Rift auto=@each my upkeep restriction{compare(phandcount)~equalto~1}:all(*|myhand) moveto(mygraveyard) and!( counter(0/0,1,RiftEffect) )! @@ -122,6 +122,25 @@ mana={G} type=Sorcery [/card] [card] +name=Academic Dispute +target=creature +auto=choice name(Must block and gains reach) transforms((,newability[mustblock],newability[reach])) ueot +auto=choice name(Must block and doesn't gain reach) transforms((,newability[mustblock])) ueot +auto=name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot +text=Target creature blocks this turn if able. You may have it gain reach until end of turn. -- Learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) +mana={R} +type=Instant +[/card] +[card] +name=Academic Probation +auto=choice name(Name a non-land card) chooseanameopp maxcast(*[chosenname])0 opponent ueot && phaseaction[upkeep once] maxcast(*[lastnamechosen])0 opponent ueot chooseend nonland +auto=choice name(Choose a non-land permanent) target(*|battlefield) transforms((,newability[cantattack],newability[cantpwattack],newability[cantblock],newability[noactivatedability])) uynt +text=Choose one — -- • Choose a nonland card name. Opponents can't cast spells with the chosen name until your next turn. -- • Choose target nonland permanent. Until your next turn, it can't attack or block, and its activated abilities can't be activated. +mana={1}{W} +type=Sorcery +subtype=Lesson +[/card] +[card] name=Academy Drake abilities=flying kicker={4} @@ -146,6 +165,13 @@ power=3 toughness=2 [/card] [card] +name=Access Tunnel +auto={T}:add{C} +auto={3}{T}:name(Creature becomes unblockable) target(creature[power<=3]|battlefield) transforms((,newability[unblockable])) ueot +text={T}: Add {C}. -- {3}, {T}: Target creature with power 3 or less can't be blocked this turn. +type=Land +[/card] +[card] name=Acclaimed Contender auto=activate transforms((,newability[if type(knight|mybattlefield)~morethan~1 then target(*[aura;knight;equipment;legendary artifact;zpos<=5]|myLibrary) moveTo(myHand) and!( all(other *[zpos<=5]|mylibrary) moveto(myreveal) and!( bottomoflibrary )! )!])) oneshot auto=if type(knight|mybattlefield)~morethan~1 then name(Look 5 cards) reveal:5 optionone name(Get a card) target(*[aura;knight;equipment;legendary artifact]|reveal) moveto(myhand) optiononeend optiontwo name(put on bottom) target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend @@ -517,6 +543,15 @@ mana={1}{U} type=Instant [/card] [card] +name=Aether Helix +target=*[-instant;-sorcery]|battlefield +auto=moveto(ownerhand) +auto=ability$!name(Return permanent) name(Return permanent) target(*[-instant;-sorcery]|mygraveyard) moveto(myhand)!$ controller +text=Return target permanent to its owner's hand. Return target permanent card from your graveyard to your hand. +mana={3}{G}{U} +type=Sorcery +[/card] +[card] name=Aether Spellbomb auto={U}{S}:moveto(ownerhand) target(creature) auto={1}{S}:draw:1 controller @@ -2236,6 +2271,15 @@ mana={2} type=Artifact [/card] [card] +name=Arcane Subtraction +target=creature +auto=-4/0 ueot +auto=name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot +text=Target creature gets -4/-0 until end of turn. -- Learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) +mana={1}{U} +type=Instant +[/card] +[card] name=Arcanist's Owl abilities=flying aicode=activate transforms((,newability[may name(Get artifact or enchantment) target(*[artifact;enchantment;zpos<=4]|mylibrary) moveto(myhand) and!( all(*[zpos<=4]|mylibrary) moveto(myreveal) and!( bottomoflibrary )! )!])) oneshot @@ -2366,6 +2410,16 @@ power=7 toughness=7 [/card] [card] +name=Archmage Emeritus +auto=@movedto(*[instant;sorcery]|mystack):name(Draw 1 card) draw:1 controller +text=Magecraft — Whenever you cast or copy an instant or sorcery spell, draw a card. +mana={2}{U}{U} +type=Creature +subtype=Human Wizard +power=2 +toughness=2 +[/card] +[card] name=Archmage's Charm auto=choice name(counter) target(*|stack) fizzle auto=choice name(draw) target(player) draw:2 @@ -2467,6 +2521,18 @@ power=3 toughness=4 [/card] [card] +name=Archway Commons +auto=tap(noevent) +auto=pay[[{1}]] name(pay 1 mana) donothing?sacrifice +auto={T}:add{R} +auto={T}:add{U} +auto={T}:add{G} +auto={T}:add{B} +auto={T}:add{W} +text=Archway Commons enters the battlefield tapped. -- When Archway Commons enters the battlefield, sacrifice it unless you pay {1}. -- {T}: Add one mana of any color. +type=Land +[/card] +[card] name=Arclight Phoenix abilities=flying, haste autograveyard=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~morethan~2}:moveTo(mybattlefield) @@ -2520,6 +2586,16 @@ power=2 toughness=2 [/card] [card] +name=Ardent Dustspeaker +auto=@combat(attacking) source(this):may name(Put instant or sorcery on bottom) target(*[instant;sorcery]|mygraveyard) bottomoflibrary and!( transforms((,newability[all(other *[zpos<=2]|mylibrary) moveto(exile) and!( transforms((,newability[canplayfromexile])) ueot )!])) oneshot )! +text=Whenever Ardent Dustspeaker attacks, you may put an instant or sorcery card from your graveyard on the bottom of your library. If you do, exile the top two cards of your library. You may play those cards this turn. +mana={4}{R} +type=Creature +subtype=Minotaur Shaman +power=3 +toughness=4 +[/card] +[card] name=Ardent Electromancer auto=if compare(calculateparty)~equalto~1 then add{R} auto=if compare(calculateparty)~equalto~2 then add{R}{R} @@ -2726,6 +2802,16 @@ mana={W} type=Instant [/card] [card] +name=Arrogant Poet +auto=@combat(attacking) source(this):pay({L:2}) name(Arrogant poet gains flying) flying ueot +text=Whenever Arrogant Poet attacks, you may pay 2 life. If you do, it gains flying until end of turn. +mana={1}{B} +type=Creature +subtype=Human Warlock +power=2 +toughness=1 +[/card] +[card] name=Arrow Storm target=creature,player auto=ifnot raid then damage:4 @@ -3129,6 +3215,20 @@ power=2 toughness=2 [/card] [card] +name=Augmenter Pugilist +abilities=trample +other={2}{U}{U} name(Echoing Equation) +otherrestriction=can play sorcery +autostack=if paid(alternative) then transforms((,newability[moveto(mygraveyard)],newability[activate castcard(named!:echoing equation:!)])) forever +auto=aslongas(land|mybattlefield) 5/5 >7 +text=Trample -- As long as you control eight or more lands, Augmenter Pugilist gets +5/+5. // Choose target creature you control. Each other creature you control becomes a copy of it until end of turn, except those creatures aren't legendary if the chosen creature is legendary. +mana={1}{G}{G} +type=Creature +subtype=Troll Druid +power=3 +toughness=3 +[/card] +[card] name=Augury Raven abilities=foretell,flying autohand={2}:name(Pay 2 and exile face-down) name(Pay 2 and exile face-down) doforetell myturnonly @@ -3141,6 +3241,19 @@ power=3 toughness=3 [/card] [card] +name=Augusta, Dean of Order +auto=lord(other creature[tapped]|mybattlefield) 1/0 +auto=lord(other creature[-tapped]|mybattlefield) 0/1 +auto=@each my blockers:may name(Tap creatures) target(creature|mybattlefield) tap +auto=@each my blockers:name(Untap all creature) all(creature|mybattlefield) untap +text=Other tapped creatures you control get +1/+0. -- Other untapped creatures you control get +0/+1. -- Whenever you attack, untap each creature you control, then tap any number of creatures you control. +mana={2}{W} +type=Legendary Creature +subtype=Human Cleric +power=1 +toughness=3 +[/card] +[card] name=Aura Graft target=aura|battlefield auto=moveto(myreveal) and!( transforms((,newability[name(Change target) activate castcard(normal)])) oneshot )! @@ -3474,6 +3587,15 @@ mana={G} type=Instant [/card] [card] +name=Awaken the Blood Avatar +auto=name(Create Avatar) name(Create Avatar) token(Avatar,Creature Avatar,3/6,black,red,haste) and!( transforms((,newability[@combat(attacking) source(this):damage:3 opponent])) forever )! +auto=ability$!name(Sacrifice creature) name(Sacrifice creature) notatarget(creature|myBattlefield) sacrifice!$ opponent +auto=transforms((,newability[moveto(mysideboard) and!( transforms((,newablility[shroud],newability[protection from(*)],newability[cantbetargetof(*)])) forever])) forever +text=As an additional cost to cast this spell, you may sacrifice any number of creatures. This spell costs {2} less to cast for each creature sacrificed this way. -- Each opponent sacrifices a creature. Create a 3/6 black and red Avatar creature token with haste and "Whenever this creature attacks, it deals 3 damage to each opponent." +mana={6}{B}{R} +type=Sorcery +[/card] +[card] name=Awaken the Erstwhile auto=count(type:*:myhand) && all(*|myhand) reject && token(Zombie,Creature Zombie,2/2,black)*countedamount auto=count(type:*:opponenthand) && all(*|opponenthand) reject && token(Zombie,Creature Zombie,2/2,black)*countedamount opponent @@ -3790,6 +3912,16 @@ power=4 toughness=3 [/card] [card] +name=Baleful Mastery +target=creature,planeswalker +other={1}{B} name(Cast for less) +auto=if paid(alternative) then draw:1 opponent +auto=moveto(exile) +text=You may pay {1}{B} rather than pay this spell's mana cost. -- If the {1}{B} cost was paid, an opponent draws a card. -- Exile target creature or planeswalker. +mana={3}{B} +type=Instant +[/card] +[card] name=Baloth Gorger kicker={4} auto=if paid(kicker) then counter(1/1,3) @@ -4081,6 +4213,16 @@ text={T}: Add {C}. -- {T}: Add one mana of any color. Spend this mana only to ca type=Land [/card] [card] +name=Basic Conjuration +aicode=activate target(creature[zpos<=6]|mylibrary) moveto(myhand) +auto=name(Look top 6 cards) reveal:6 optionone name(Get Creature) target(creature|reveal) moveto(myhand) optiononeend optiontwo name(put on bottom) target(<6>*|reveal) bottomoflibrary optiontwoend revealend +auto=life:3 controller +text=Look at the top six cards of your library. You may reveal a creature card from among them and put it into your hand. Put the rest on the bottom of your library in a random order. You gain 3 life. +mana={1}{G}{G} +type=Sorcery +subtype=Lesson +[/card] +[card] name=Basilica Bell-Haunt auto=ability$!name(discard) target(*|myhand) reject!$ opponent auto=life:3 @@ -4553,6 +4695,17 @@ power=2 toughness=2 [/card] [card] +name=Beledros Witherbloom +abilities=flying +auto=@each upkeep:name(Create Pest) token(Pest,Creature Pest,1/1,green,blue) and!( transforms((,newability[@movedto(this|mygraveyard) from(battlefield):life:1 controller])) forever )! +text=Flying -- At the beginning of each upkeep, create a 1/1 black and green Pest creature token with "When this creature dies, you gain 1 life." -- Pay 10 life: Untap all lands you control. Activate only once each turn. +mana={5}{B}{G} +type=Legendary Creature +subtype=Elder Dragon +power=4 +toughness=4 +[/card] +[card] name=Belfry Spirit abilities=flying auto=token(Bat,Creature Bat,1/1,black,flying)*2 @@ -4771,6 +4924,17 @@ mana={1}{U} type=Instant [/card] [card] +name=Biblioplex Assistant +abilities=flying +auto=may name(Return instant or sorcery) target(*instant;sorcery]|mygraveyard) moveto(mylibrary) +text=Flying -- When Biblioplex Assistant enters the battlefield, put up to one target instant or sorcery card from your graveyard on top of your library. +mana={4} +type=Artifact Creature +subtype=Gargoyle +power=2 +toughness=1 +[/card] +[card] name=Big Boa Constrictor auto=rolladie 6 winability life:-lastrollresult opponent winabilityend loseability life:-lastrollresult opponent loseabilityend rollend text=When this creature enters the battlefield, roll a six-sided die. Target opponent loses life equal to the result. @@ -4859,6 +5023,17 @@ mana={4}{G}{G} type=Sorcery [/card] [card] +name=Biomathematician +auto=all(fractal|mybattlefield) counter(1/1) +auto=token(Fractal,Creature Fractal,0/0,green,blue) and!( counter(1/1) )! +text=When Biomathematician enters the battlefield, create a 0/0 green and blue Fractal creature token. Put a +1/+1 counter on each Fractal you control. +mana={1}{G}{U} +type=Creature +subtype=Human Wizard +power=2 +toughness=2 +[/card] +[card] name=Bioshift auto=target(creature[counter{1/1}|battlefield) transforms((,newability[thisforeach(counter{1/1.1}) may name(Move 1/1 counter) counter(1/1.-1) all(this) && counter(1/1) target(other creature|mybattlefield)])) oneshot text=Move any number of +1/+1 counters from target creature onto another target creature with the same controller. @@ -5057,6 +5232,16 @@ mana={3}{W} type=Instant [/card] [card] +name=Blade Historian +auto=lord(creature[attacking]|mybattlefield) double strike +text=Attacking creatures you control have double strike. +mana={RW}{RW}{RW}{RW} +type=Creature +subtype=Human Cleric +power=2 +toughness=3 +[/card] +[card] name=Blade Instructor abilities=mentor auto=@combat(attacking) source(this):name(Choose attacking creature) transforms((,newability[target(other creature[attacking;power<=pminus1minusend]|myBattlefield) counter(1/1)])) oneshot @@ -5260,6 +5445,20 @@ mana={3}{G} type=Snow Sorcery [/card] [card] +name=Blex, Vexing Pest +other={2}{B}{B} name(Search for Blex) +otherrestriction=can play sorcery +autostack=if paid(alternative) then transforms((,newability[moveto(mygraveyard)],newability[activate castcard(named!:search for blex:!)])) forever +auto=lord(other *[pest;bat;insect;snake;spider]|mybattlefield) 1/1 +auto=@movedto(this|graveyard) from(mybattlefield):life:4 controller +text=Other Pests, Bats, Insects, Snakes, and Spiders you control get +1/+1. -- When Blex, Vexing Pest dies, you gain 4 life. // Look at the top five cards of your library. You may put any number of them into your hand and the rest into your graveyard. You lose 3 life for each card you put into your hand this way. +mana={2}{G} +type=Legendary Creature +subtype=Pest +power=3 +toughness=2 +[/card] +[card] name=Blight Herder auto=@movedTo(*|mystack):may ([upto <2>*] moveTo(opponentgraveyard) from (opponentexile)) then token(Eldrazi Scion,Creature Eldrazi Scion,1/1) and!( transforms((,newability[{S}:Add{1}])) forever )!*3 text=When you cast this spell, you may put two cards your opponents own from exile into their owners’ graveyards. If you do, create three 1/1 colorless Eldrazi Scion creature tokens. They have “Sacrifice this creature: Add {C}.” @@ -5534,6 +5733,17 @@ mana={3}{B} type=Sorcery [/card] [card] +name=Blood Researcher +abilities=menace +auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection;-Honor Troll]):counter(1/1) +text=Menace (This creature can't be blocked except by two or more creatures.) -- Whenever you gain life, put a +1/+1 counter on Blood Researcher. +mana={1}{B}{G} +type=Creature +subtype=Vampire Druid +power=2 +toughness=2 +[/card] +[card] name=Blood Sun auto=draw:1 controller auto=lord(land[-basic]|battlefield) transforms((,newability[loseabilities],newability[{T}:add{C}])) @@ -5749,7 +5959,7 @@ type=Artifact [card] name=Bloodthirsty Aerialist abilities=flying -auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection]):counter(1/1,1) +auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection;-Honor Troll]):counter(1/1,1) text=Flying -- Whenever you gain life, put a +1/+1 counter on Bloodthirsty Aerialist. mana={1}{B}{B} type=Creature @@ -5812,6 +6022,14 @@ power=3 toughness=3 [/card] [card] +name=Blot Out the Sky +auto=token(Inkling,Creature Inkling,2/1,white,black,flying)*x and!( tap(noevent) )! +auto=this(X>=6) all(*[-creature;-land]|battlefield) destroy +text=Create X tapped 2/1 white and black Inkling creature tokens with flying. If X is 6 or more, destroy all noncreature, nonland permanents. +mana={X}{W}{B} +type=Sorcery +[/card] +[card] name=Blow Your House Down target=creature auto=transforms((,newability[cantblock],newability[if cantargetcard(*[wall]|*) then destroy])) ueot @@ -5868,6 +6086,13 @@ power=* toughness=* [/card] [card] +name=Body of Research +auto=token(Fractal,Creature Fractal,0/0,green,blue) and!( counter(1/1,type:*:mylibrary) )! +text=Create a 0/0 green and blue Fractal creature token. Put X +1/+1 counters on it, where X is the number of cards in your library. +mana={G}{G}{G}{U}{U}{U} +type=Sorcery +[/card] +[card] name=Bog Naughty abilities=flying auto={3}{B}{S(food|myBattlefield)}:target(creature) -3/-3 ueot @@ -6113,7 +6338,7 @@ toughness=4 name=Bone Miser auto=@discarded(creature|myhand):token(Zombie,Creature Zombie,2/2,black) auto=@discarded(land|myhand):add{B}{B} -auto=@discarded(*{-land,-creature}|myhand):draw:1 +auto=@discarded(*[-land;-creature]|myhand):draw:1 text=Whenever you discard a creature card, create a 2/2 black Zombie creature token. -- Whenever you discard a land card, add {B}{B}. -- Whenever you discard a noncreature, nonland card, draw a card. mana={4}{B} type=Creature @@ -6273,6 +6498,19 @@ power=4 toughness=5 [/card] [card] +name=Bookwurm +abilities=trample +auto=life:3 controller +auto=draw:1 controller +autograveyard={2}{G}:placefromthetop(3) +text=Trample -- When Bookwurm enters the battlefield, you gain 3 life and draw a card. -- {2}{G}: Put Bookwurm from your graveyard into your library third from the top. +mana={7}{G} +type=Creature +subtype=Wurm +power=7 +toughness=7 +[/card] +[card] name=Boom // Bust target=land|myBattlefield other={5}{R} name(Bust) @@ -6489,6 +6727,17 @@ mana={4}{R}{R} type=Sorcery [/card] [card] +name=Brackish Trudge +auto=tap(noevent) +autograveyard={1}{B} restriction{compare(lifegain)~morethan~0}:name(Return to hand) moveto(myhand) +text=Brackish Trudge enters the battlefield tapped. -- {1}{B}: Return Brackish Trudge from your graveyard to your hand. Activate only if you gained life this turn. +mana={2}{B} +type=Creature +subtype=Fungus Beast +power=4 +toughness=2 +[/card] +[card] name=Brallin, Skyshark Rider abilities=hiddenface,partner aicode=activate moveTo(myhand) target(Shabraz^ the Skyshark|mylibrary) @@ -7167,6 +7416,27 @@ mana={B}{S(creature|mybattlefield)} type=Instant [/card] [card] +name=Burrog Befuddler +abilities=flash +auto=name(Creature gets -1/0) target(creature|opponentbattlefield) -1/0 ueot +text=Flash -- When Burrog Befuddler enters the battlefield, target creature an opponent controls gets -1/-0 until end of turn. +mana={1}{U} +type=Creature +subtype=Frog Wizard +power=2 +toughness=1 +[/card] +[card] +name=Bury in Books +other={2}{U} name(Target attacking creature) +otherrestriction=type(creature[attacking]|battlefield)~morethan~0 +auto=if paid(alternative) then target(creature[attacking]|battlefield) placefromthetop(2) +auto=ifnot paid(alternative) then target(creature[-attacking]|battlefield) placefromthetop(2) +text=This spell costs {2} less to cast if it targets an attacking creature. -- Put target creature into its owner's library second from the top. +mana={4}{U} +type=Instant +[/card] +[card] name=Bushmeat Poacher auto={1}{T}{S(other creature|myBattlefield)}:life:storedtoughness && draw:1 controller text={1}, {T}, Sacrifice another creature: You gain life equal to that creature's toughness. Draw a card. @@ -7366,6 +7636,19 @@ power=* toughness=3 [/card] [card] +name=Callous Bloodmage +auto=choice name(Create Pest) token(Pest,Creature Pest,1/1,green,blue) and!( transforms((,newability[@movedto(this|mygraveyard) from(battlefield):life:1 controller])) forever )! +auto=choice name(Draw and lose life) draw:1 controller && life:-1 controller +auto=choice name(Exile opponent's graveyard) all(*|opponentgraveyard) moveto(exile) +auto=choice name(Exile your graveyard) all(*|mygraveyard) moveto(exile) +text=When Callous Bloodmage enters the battlefield, choose one — -- • Create a 1/1 black and green Pest creature token with "When this creature dies, you gain 1 life." -- • You draw a card and you lose 1 life. -- • Exile target player's graveyard. +mana={2}{B} +type=Creature +subtype=Vampire Warlock +power=2 +toughness=1 +[/card] +[card] name=Callous Dismissal target=*[-land] auto=moveTo(ownerHand) @@ -7394,6 +7677,16 @@ mana={4}{G}{W} type=Sorcery [/card] [card] +name=Campus Guide +auto=may name(Search basic land) target(land[basic]|mylibrary) moveto(myreveal) and!( moveto(mylibrary) )! +text=When Campus Guide enters the battlefield, you may search your library for a basic land card, reveal it, then shuffle and put that card on top. +mana={2} +type=Artifact Creature +subtype=Golem +power=2 +toughness=1 +[/card] +[card] name=Canal Courier auto=becomesmonarch controller text=When Canal Courier enters the battlefield, you become the monarch. -- Whenever Canal Courier and another creature attack different players, Canal Courier can't be blocked this combat. @@ -8724,6 +9017,15 @@ mana={2}{G} type=Sorcery [/card] [card] +name=Charge Through +target=creature +auto=transforms((,newability[trample])) ueot +auto=draw:1 controller +text=Target creature gains trample until end of turn. -- Draw a card. +mana={G} +type=Instant +[/card] +[card] name=Charging Binox abilities=trample text=Assist (Another player can pay up to {7} of this spell's cost.) -- Trample @@ -9581,6 +9883,18 @@ power=2 toughness=2 [/card] [card] +name=Closing Statement +other={1}{W}{B} name(Cast during end step) +otherrestriction=compare(currentphase)~equalto~11 +restriction=compare(currentphase)~lessthan~11 +target=*[creature;planeswalker]|opponentbattlefield +auto=destroy +auto=may name(Put 1/1 counter) target(creature|mybattlefield) counter(1/1) +text=This spell costs {2} less to cast during your end step. -- Destroy target creature or planeswalker you don't control. Put a +1/+1 counter on up to one target creature you control. +mana={3}{W}{B} +type=Instant +[/card] +[card] name=Cloudkin Seer abilities=flying auto=draw:1 @@ -9695,6 +10009,39 @@ power=1 toughness=1 [/card] [card] +name=Codie, Vociferous Codex +auto=maxCast(*[-instant;-sorcery])0 controller +auto={4}{T}:add{W}{U}{B}{R}{G} && counter(0/0,1,CodieEffect) +auto=@movedto(*[manacost=1]|mystack) restriction{compare(hascntcodieeffect)~morethan~0}:name(Exile instant or sorcery) target(*[instant;sorcery;manacost<=0]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[zerocast])) ueot )! +auto=@movedto(*[manacost=2]|mystack) restriction{compare(hascntcodieeffect)~morethan~0}:name(Exile instant or sorcery) target(*[instant;sorcery;manacost<=1]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[zerocast])) ueot )! +auto=@movedto(*[manacost=3]|mystack) restriction{compare(hascntcodieeffect)~morethan~0}:name(Exile instant or sorcery) target(*[instant;sorcery;manacost<=2]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[zerocast])) ueot )! +auto=@movedto(*[manacost=4]|mystack) restriction{compare(hascntcodieeffect)~morethan~0}:name(Exile instant or sorcery) target(*[instant;sorcery;manacost<=3]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[zerocast])) ueot )! +auto=@movedto(*[manacost=5]|mystack) restriction{compare(hascntcodieeffect)~morethan~0}:name(Exile instant or sorcery) target(*[instant;sorcery;manacost<=4]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[zerocast])) ueot )! +auto=@movedto(*[manacost=6]|mystack) restriction{compare(hascntcodieeffect)~morethan~0}:name(Exile instant or sorcery) target(*[instant;sorcery;manacost<=5]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[zerocast])) ueot )! +auto=@movedto(*[manacost=7]|mystack) restriction{compare(hascntcodieeffect)~morethan~0}:name(Exile instant or sorcery) target(*[instant;sorcery;manacost<=6]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[zerocast])) ueot )! +auto=@movedto(*[manacost=8]|mystack) restriction{compare(hascntcodieeffect)~morethan~0}:name(Exile instant or sorcery) target(*[instant;sorcery;manacost<=7]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[zerocast])) ueot )! +auto=@movedto(*[manacost=9]|mystack) restriction{compare(hascntcodieeffect)~morethan~0}:name(Exile instant or sorcery) target(*[instant;sorcery;manacost<=8]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[zerocast])) ueot )! +auto=@movedto(*[manacost=10]|mystack) restriction{compare(hascntcodieeffect)~morethan~0}:name(Exile instant or sorcery) target(*[instant;sorcery;manacost<=9]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[zerocast])) ueot )! +auto=@movedto(*[manacost=11]|mystack) restriction{compare(hascntcodieeffect)~morethan~0}:name(Exile instant or sorcery) target(*[instant;sorcery;manacost<=10]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[zerocast])) ueot )! +auto=@movedto(*[manacost=12]|mystack) restriction{compare(hascntcodieeffect)~morethan~0}:name(Exile instant or sorcery) target(*[instant;sorcery;manacost<=11]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[zerocast])) ueot )! +auto=@movedto(*[manacost=13]|mystack) restriction{compare(hascntcodieeffect)~morethan~0}:name(Exile instant or sorcery) target(*[instant;sorcery;manacost<=12]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[zerocast])) ueot )! +auto=@movedto(*[manacost=14]|mystack) restriction{compare(hascntcodieeffect)~morethan~0}:name(Exile instant or sorcery) target(*[instant;sorcery;manacost<=13]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[zerocast])) ueot )! +auto=@movedto(*[manacost=15]|mystack) restriction{compare(hascntcodieeffect)~morethan~0}:name(Exile instant or sorcery) target(*[instant;sorcery;manacost<=14]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[zerocast])) ueot )! +auto=@movedto(*[manacost=16]|mystack) restriction{compare(hascntcodieeffect)~morethan~0}:name(Exile instant or sorcery) target(*[instant;sorcery;manacost<=15]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[zerocast])) ueot )! +auto=@movedto(*[manacost=17]|mystack) restriction{compare(hascntcodieeffect)~morethan~0}:name(Exile instant or sorcery) target(*[instant;sorcery;manacost<=16]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[zerocast])) ueot )! +auto=@movedto(*[manacost=18]|mystack) restriction{compare(hascntcodieeffect)~morethan~0}:name(Exile instant or sorcery) target(*[instant;sorcery;manacost<=17]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[zerocast])) ueot )! +auto=@movedto(*[manacost=19]|mystack) restriction{compare(hascntcodieeffect)~morethan~0}:name(Exile instant or sorcery) target(*[instant;sorcery;manacost<=18]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[zerocast])) ueot )! +auto=@movedto(*[manacost>=20]|mystack) restriction{compare(hascntcodieeffect)~morethan~0}:name(Exile instant or sorcery) target(*[instant;sorcery;manacost<=19]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[zerocast])) ueot )! +auto=@movedto(*|mystack) restriction{compare(hascntcodieeffect)~morethan~0}:removeallcounters(0/0,1,CodieEffect) +auto=@each end restriction{compare(hascntcodieeffect)~morethan~0}:removeallcounters(0/0,1,CodieEffect) +text=You can't cast permanent spells. -- {4}, {T}: Add {W}{U}{B}{R}{G}. When you cast your next spell this turn, exile cards from the top of your library until you exile an instant or sorcery card with lesser mana value. Until end of turn, you may cast that card without paying its mana cost. Put each other card exiled this way on the bottom of your library in a random order. +mana={3} +type=Legendary Artifact Creature +subtype=Construct +power=1 +toughness=4 +[/card] +[card] name=Coercive Recruiter auto=target(creature|battlefield) moveto(mybattlefield) and!(transforms((Pirate,newability[phaseaction[endofturn sourceinplay] moveTo(previousbattlefield)],newability[untap],haste)) ueot)! auto=@movedto(pirate|mybattlefield):target(creature|battlefield) moveto(mybattlefield) and!(transforms((Pirate,newability[phaseaction[endofturn sourceinplay] moveTo(previousbattlefield)],newability[untap],haste)) ueot)! @@ -9706,6 +10053,17 @@ power=4 toughness=3 [/card] [card] +name=Cogwork Archivist +abilities=reach +auto={2}{T}:name(Put back on bottom) target(*|graveyard) transforms((,newability[bottomoflibrary])) oneshot +text=Reach -- {2}, {T}: Put target card from a graveyard on the bottom of its owner's library. +mana={6} +type=Artifact Creature +subtype=Construct +power=4 +toughness=5 +[/card] +[card] name=Coils of the Medusa target=creature auto=1/-1 @@ -10362,6 +10720,15 @@ mana={4}{W} type=Instant [/card] [card] +name=Confront the Past +auto=choice name(Return planeswalker) target(planeswalker[manacost<=x]|mygraveyard) moveto(mybattlefield) +auto=choice name(Remove loyalty counters) target(planeswalker|mybattlefield) counter(0/0,-x,loyalty) && counter(0/0,-x,loyalty) +text=Choose one — -- • Return target planeswalker card with mana value X or less from your graveyard to the battlefield. -- • Remove twice X loyalty counters from target planeswalker an opponent controls. +mana={X}{B} +type=Sorcery +subtype=Lesson +[/card] +[card] name=Conifer Wurm abilities=trample auto={3}{G}:type:*[snow]:mybattlefield/type:*[snow]:mybattlefield ueot @@ -10495,6 +10862,17 @@ mana={3}{B}{B} type=Enchantment [/card] [card] +name=Conspiracy Theorist +auto=@combat(attacking) source(this) restriction{type(*|myhand)~morethan~0}:pay({1}) name(Pay 1 and discard) target(*|myhand) transforms((,newability[reject],newability[draw:1])) oneshot +auto=@discarded(*[-land]|myhand):may name(Exile from graveyard) transforms((,newability[all(*[zpos=type:*:mygraveyard]|mygraveyard) moveto(exile) and!( transforms((,newability[canplayfromexile])) ueot )!])) oneshot +text=Whenever Conspiracy Theorist attacks, you may pay {1} and discard a card. If you do, draw a card. -- Whenever you discard one or more nonland cards, you may exile one of them from your graveyard. If you do, you may cast it this turn. +mana={1}{R} +type=Creature +subtype=Human Shaman +power=2 +toughness=2 +[/card] +[card] name=Construct anyzone=type:artifact:mybattlefield/type:artifact:mybattlefield cdaactive text=This creature gets +1/+1 for each artifact you control. @@ -10548,6 +10926,15 @@ type=Enchantment subtype=Aura [/card] [card] +name=Containment Breach +auto=if type(*[artifact;enchantment;manacost<=2]|battlefield)~morethan~0 then choice name(Destroy artifact or enchantment with manacost 2 or less) name(Destroy artifact or enchantment with manacost 2 or less) target(*[artifact;enchantment;manacost<=2]|battlefield) destroy && token(Pest,Creature Pest,1/1,green,blue) and!( transforms((,newability[@movedto(this|mygraveyard) from(battlefield):life:1 controller])) forever )! +auto=if type(*[artifact;enchantment;manacost>=3]|battlefield)~morethan~0 then choice name(Destroy artifact or enchantment with manacost 3 or more) name(Destroy artifact or enchantment with manacost 3 or more) target(*[artifact;enchantment;manacost>=3]|battlefield) destroy +text=Destroy target artifact or enchantment. If its mana value is 2 or less, create a 1/1 black and green Pest creature token with "When this creature dies, you gain 1 life." +mana={2}{G} +type=Sorcery +subtype=Lesson +[/card] +[card] name=Containment Priest abilities=flash auto=@movedTo(creature[-token]|battlefield):all(trigger) transforms((,newability[ifnot casted(this) then moveto(exile)])) forever @@ -10961,6 +11348,14 @@ power=6 toughness=6 [/card] [card] +name=Cram Session +auto=life:4 controller +auto=name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot +text=You gain 4 life. -- Learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) +mana={1}{BG} +type=Sorcery +[/card] +[card] name=Crash Through auto=all(creature|mybattlefield) trample ueot auto=draw:1 @@ -11049,6 +11444,17 @@ text={T}: Add {C}. -- {4}: Put two +1/+1 counters on Crawling Barrens. Then you type=Land [/card] [card] +name=Creative Outburst +target=player,creature,planeswalker +auto=damage:5 +aicode=activate transforms((,newability[target(*[zpos<=5]|mylibrary) moveto(myhand) and!( all(*[zpos<=5]|mylibrary) moveto(myreveal) and!( bottomoflibrary )! )!])) ueot +auto=name(Reveal 5 cards) reveal:5 optionone name(Get Card) target(*|reveal) moveto(myhand) optiononeend optiontwo name(put on bottom) all(*|reveal) bottomoflibrary optiontwoend revealend +autohand={UR}{UR}{D}:token(Treasure Sur) +text=Creative Outburst deals 5 damage to any target. Look at the top five cards of your library. Put one of them into your hand and the rest on the bottom of your library in a random order. -- {UR}{UR}, Discard Creative Outburst: Create a Treasure token. +mana={3}{U}{U}{R}{R} +type=Instant +[/card] +[card] name=Creative Technique other={4}{R} name(Demonstrate) aicode=activate all(*[zpos=findfirsttypenonland]|mylibrary) moveto(exile) and!( transforms((,newability[zerocast],newability[canplayfromexile],newability[all(*[zpos<=findfirsttypenonland]|mylibrary) moveto(myreveal) and!( bottomoflibrary )!])) oneshot )! @@ -11290,6 +11696,15 @@ mana={2}{G} type=Instant [/card] [card] +name=Crushing Disappointment +auto=life:-2 opponent +auto=life:-2 controller +auto=draw:2 controller +text=Each player loses 2 life. You draw two cards. +mana={3}{B} +type=Instant +[/card] +[card] name=Cry of the Carnarium auto=all(creature|battlefield) -2/-2 ueot auto=all(creature[fresh]|graveyard) moveto(exile) @@ -11439,6 +11854,23 @@ power=3 toughness=5 [/card] [card] +name=Culling Ritual +auto=foreach(*[-land;manacost<=2]|battlefield) ability$!name(Choose one) choice name(Add green mana) add{G} _ choice name(Add black mana) add{B}!$ controller +auto=ability$!name(Destroy all) name(Destroy all) all(*[-land;manacost<=2]|battlefield) destroy!$ controller +text=Destroy each nonland permanent with mana value 2 or less. Add {B} or {G} for each permanent destroyed this way. +mana={2}{B}{G} +type=Sorcery +[/card] +[card] +name=Culmination of Studies +auto=all(land[zpos<=x]|mylibrary) moveto(exile) and!( transforms((,newability[token(Treasure Sur)])) oneshot )! +auto=all(*[blue;zpos<=x]|mylibrary) moveto(exile) and!( transforms((,newability[draw:1 controller])) oneshot )! +auto=all(*[red;zpos<=x]|mylibrary) moveto(exile) and!( transforms((,newability[damage:1 opponent])) oneshot )! +text=Exile the top X cards of your library. For each land card exiled this way, create a Treasure token. For each blue card exiled this way, draw a card. For each red card exiled this way, Culmination of Studies deals 1 damage to each opponent. +mana={X}{U}{R} +type=Sorcery +[/card] +[card] name=Cult Guildmage auto={3}{B}{T}:target(player) ability$!name(discard) target(*|myhand) reject!$ targetedplayer assorcery auto={R}{T}:damage:1 target(opponent) @@ -11509,6 +11941,14 @@ power=1 toughness=3 [/card] [card] +name=Curate +aicode=activate transforms((,newability[draw:1 controller],newability[deplete:1 controller])) ueot +auto=name(look) reveal:2 optionone name(Discard cards) target(*|reveal) moveto(mygraveyard) optiononeend optiontwo name(put on top) target(<2>*|reveal) moveto(mylibrary) optiontwoend afterrevealed draw:1 controller afterrevealedend revealend +text=Look at the top two cards of your library. Put any number of them into your graveyard and the rest back on top of your library in any order. -- Draw a card. +mana={1}{U} +type=Instant +[/card] +[card] name=Curator of Mysteries abilities=flying,cycling aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot @@ -11764,6 +12204,17 @@ power=3 toughness=2 [/card] [card] +name=Daemogoth Titan +auto=@combat(attacking) source(this):name(Sacrifice a creature) target(creature|mybattlefield) sacrifice +auto=@combat(blocking) source(this):name(Sacrifice a creature) target(creature|mybattlefield) sacrifice +text=Whenever Daemogoth Titan attacks or blocks, sacrifice a creature. +mana={BG}{BG}{BG}{BG} +type=Creature +subtype=Demon +power=11 +toughness=10 +[/card] +[card] name=Daemogoth Woe-Eater auto=@each my upkeep:ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature|mybattlefield) sacrifice!$ controller auto=@sacrificed(this):life:2 controller && draw:1 controller && ability$!name(Discard a card) name(Discard a card) notatarget(*|myhand) reject!$ opponent @@ -12078,7 +12529,7 @@ toughness=3 [/card] [card] name=Dawn of Hope -auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection]):pay({2}) draw:1 +auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection;-Honor Troll]):pay({2}) draw:1 auto={3}{W}:create(soldier:creature soldier:1/1:white:lifelink) text=Whenever you gain life, you may pay {2}. If you do, draw a card. -- {3}{W}: Create a 1/1 white Soldier creature token with lifelink. mana={1}{W} @@ -12369,6 +12820,14 @@ mana={3}{B} type=Instant [/card] [card] +name=Deadly Vanity +auto=name(Choose creature or planeswalker) target(*[creature;planeswalker]|battlefield) transforms((,newability[all(other *[creature;planeswalker]|battlefield) destroy])) oneshot +auto=transforms((,newability[moveto(mysideboard) and!( transforms((,newablility[shroud],newability[protection from(*)],newability[cantbetargetof(*)])) forever])) forever +text=Choose a creature or planeswalker, then destroy all other creatures and planeswalkers. +mana={5}{B}{B}{B} +type=Sorcery +[/card] +[card] name=Deadly Visit target=creature auto=destroy @@ -13196,6 +13655,20 @@ text={T}: Add {C}. -- {1}, {T}: Until end of turn, your opponents and creatures type=Land [/card] [card] +name=Detention Vortex +target=artifact,creature,enchantment,planeswalker +auto=teach(*) cantattack +auto=teach(*) cantpwattack +auto=teach(*) cantblock +auto=teach(*) noactivatedability +auto=@each opponent main:ability$!name(Pay 3) pay[[{3}]] name(Pay 3) target(*[Detention Vortex]|opponentBattlefield) destroy?donothing!$ opponent asSorcery +auto=@each opponent secondmain:ability$!name(Pay 3) pay[[{3}]] name(Pay 3) target(*[Detention Vortex]|opponentBattlefield) destroy?donothing!$ opponent asSorcery +text=Enchant nonland permanent -- Enchanted permanent can't attack or block, and its activated abilities can't be activated. -- {3}: Destroy Detention Vortex. Only your opponents may activate this ability and only as a sorcery. +mana={W} +type=Enchantment +subtype=Aura +[/card] +[card] name=Devastating Dreams auto=if type(*|myHand)~morethan~0 then choice name(Discard 1 card) discard:1 controller && damage:1 all(creature) && ability$!sacrifice notatarget(land|mybattlefield)!$ controller && ability$!sacrifice notatarget(land|mybattlefield)!$ opponent auto=if type(*|myHand)~morethan~1 then choice name(Discard 2 cards) discard:2 controller && damage:2 all(creature) && ability$!sacrifice notatarget(<2>land|mybattlefield)!$ controller && ability$!sacrifice notatarget(<2>land|mybattlefield)!$ opponent @@ -13212,6 +13685,16 @@ mana={R}{R} type=Sorcery [/card] [card] +name=Devastating Mastery +other={2}{W}{W} name(Cast for less) +auto=if paid(alternative) then ability$!name(Return non-land permanent) name(Return non-land permanent) target(*[-land]|mybattlefield) moveto(myhand) and!( transforms((,newability[name(Return another non-land permanent) target(*[-land]|mybattlefield) moveto(myhand) and!( all(other *[-land]|mybattlefield) destroy )! ])) oneshot )! !$ opponent +auto=if paid(alternative) then all(*[-land]|mybattlefield) destroy +auto=ifnot paid(alternative) then all(*[-land]|battlefield) destroy +text=You may pay {2}{W}{W} rather than pay this spell's mana cost. -- If the {2}{W}{W} cost was paid, an opponent chooses up to two nonland permanents they control and returns them to their owner's hand. -- Destroy all nonland permanents. +mana={2}{W}{W}{W}{W} +type=Sorcery +[/card] +[card] name=Devastating Summons auto=if type(*[land]|myBattlefield)~morethan~0 then choice name(Sacrifice 1 land) ability$!sacrifice notatarget(land|mybattlefield)!$ controller && token(Elemental,Creature Elemental,1/1,red)*2 auto=if type(*[land]|myBattlefield)~morethan~1 then choice name(Sacrifice 2 lands) ability$!sacrifice notatarget(<2>land|mybattlefield)!$ controller && token(Elemental,Creature Elemental,2/2,red)*2 @@ -13327,6 +13810,14 @@ type=Instant subtype=Arcane [/card] [card] +name=Devouring Tendrils +target=creature|mybattlefield +auto=transforms((,newability[@movedto(*[creature;planeswalker]|graveyard) from(opponentbattlefield) turnlimited:life:2 controller],newability[target(*[creature;planeswalker]|opponentbattlefield) dynamicability])) ueot +text=Target creature you control deals damage equal to its power to target creature or planeswalker you don't control. When the permanent you don't control dies this turn, you gain 2 life. +mana={1}{G} +type=Sorcery +[/card] +[card] name=Devout Decree target=creature[red,black],planeswalker[red,black] aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot @@ -13509,7 +14000,7 @@ toughness=1 [/card] [card] name=Dina, Soul Steeper -auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality]):life:-1 opponent +auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection;-Honor Troll]):life:-1 opponent auto={1}{S(other creature[-Dina^ Soul Steeper]|mybattlefield)}:storedpower/0 ueot text=Whenever you gain life, each opponent loses 1 life. -- {1}, Sacrifice another creature: Dina, Soul Steeper gets +X/+0 until end of turn, where X is the sacrificed creature's power. mana={B}{G} @@ -13847,6 +14338,15 @@ mana={B} type=Sorcery [/card] [card] +name=Divide by Zero +target=*[manacost>=1]|battlefield +auto=moveto(ownerhand) +auto=name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot +text=Return target spell or permanent with mana value 1 or greater to its owner's hand. -- Learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) +mana={2}{U} +type=Instant +[/card] +[card] name=Divine Arrow target=creature[attacking;blocking] auto=damage:4 @@ -14098,7 +14598,7 @@ type=Enchantment [/card] [card] name=Doublecast -auto=@movedto(*[instant;sorcery]|myStack): castcard(copied noevent) target(*[instant;sorcery]|mystack) +auto=emblem transforms((,newability[@movedto(*[instant;sorcery]|myStack) turnlimited:all(trigger[to]) activate castcard(copied noevent)])) ueot text=When you cast your next instant or sorcery spell this turn, copy that spell. You may choose new targets for the copy. mana={R}{R} type=Sorcery @@ -14215,6 +14715,15 @@ power=2 toughness=2 [/card] [card] +name=Draconic Intervention +abilities=exiledeath +auto=all(creature[-dragon;-protection from red]) exiledeath +auto=all(creature[-dragon]|battlefield) damage:storedmanacost +text=As an additional cost to cast this spell, exile an instant or sorcery card from your graveyard. -- Draconic Intervention deals X damage to each non-Dragon creature, where X is the exiled card's mana value. If a creature dealt damage this way would die this turn, exile it instead. -- Exile Draconic Intervention. +mana={2}{R}{R}{S(*[instant;sorcery]|mygraveyard)} +type=Sorcery +[/card] +[card] name=Drag to the Underworld target=creature anyzone=foreach(manaB|myBattlefield) changecost(colorless:-1) forcedalive @@ -14234,6 +14743,14 @@ type=Legendary Artifact subtype=Equipment [/card] [card] +name=Dragon's Approach +auto=damage:3 opponent +auto=if type(Dragon's Approach|mygraveyard)~morethan~3 then may name(Search Dragon and exile 5 Dragon's Approach) target(dragon|mylibrary) moveto(mybattlefield) and!( transforms((,newability[shuffle],newability[target(<5>*[Dragon's Approach]|mygraveyard) moveto(myexile)])) oneshot )! +text=Dragon's Approach deals 3 damage to each opponent. You may exile Dragon's Approach and four cards named Dragon's Approach from your graveyard. If you do, search your library for a Dragon creature card, put it onto the battlefield, then shuffle. -- A deck can have any number of cards named Dragon's Approach. +mana={2}{R} +type=Sorcery +[/card] +[card] name=Dragon's Eye Savants aicode=name(look) activate name(look) target(*|opponenthand) donothing facedown={3} @@ -14268,6 +14785,17 @@ mana={2}{W} type=Instant [/card] [card] +name=Dragonsguard Elite +auto=@movedto(*[instant;sorcery]|mystack):name(Put 1/1 counter) counter(1/1) +auto={4}{G}{G}:name(Double 1/1 counters) thisforeach(counter{1/1.1}) counter(1/1,1) +text=Magecraft — Whenever you cast or copy an instant or sorcery spell, put a +1/+1 counter on Dragonsguard Elite. -- {4}{G}{G}: Double the number of +1/+1 counters on Dragonsguard Elite. +mana={1}{G} +type=Creature +subtype=Human Druid +power=2 +toughness=2 +[/card] +[card] name=Dragonkin Berserker abilities=boast,first strike auto={4}{R} restriction{didattack,compare(hascntbstreduce)~equalto~0}:doboast && token(Dragon,Creature Dragon,5/5,red,flying) limit:hasabilitytwoboastplus1plusend @@ -14662,6 +15190,18 @@ mana={3}{U}{U} type=Enchantment [/card] [card] +name=Dream Strix +abilities=flying +auto=@targeted(this):sacrifice +auto=@movedto(this|graveyard) from(mybattlefield):name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot +text=Flying -- When Dream Strix becomes the target of a spell, sacrifice it. -- When Dream Strix dies, learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) +mana={2}{U} +type=Creature +subtype=Bird Illusion +power=3 +toughness=2 +[/card] +[card] name=Dream Tides auto=lord(creature) doesnotuntap auto=lord(creature[-green]) transforms((,newability[@each my upkeep:{2}:untap])) @@ -14917,6 +15457,17 @@ type=Enchantment subtype=Aura [/card] [card] +name=Dueling Coach +auto=ability$!name(Put 1/1 counter) name(Put 1/1 counter) target(creature) counter(1/1)!$ controller +auto={4}{W}{T}:name(Put 1/1 counter) all(creature[counter{1/1}]|mybattlefield) counter(1/1) +text=When Dueling Coach enters the battlefield, put a +1/+1 counter on target creature. -- {4}{W}, {T}: Put a +1/+1 counter on each creature you control with a +1/+1 counter on it. +mana={3}{W} +type=Creature +subtype=Human Monk +power=2 +toughness=2 +[/card] +[card] name=Dulcet Sirens facedown={3} autofacedown={U}:morph @@ -15187,6 +15738,16 @@ power=2 toughness=2 [/card] [card] +name=Eager First-Year +auto=@movedto(*[instant;sorcery]|mystack):1/0 ueot +text=Magecraft — Whenever you cast or copy an instant or sorcery spell, Eager First-Year gets +1/+0 until end of turn. +mana={1}{W} +type=Creature +subtype=Human Wizard +power=2 +toughness=2 +[/card] +[card] name=Earth-Origin Yak auto=choice all(creature|mybattlefield) 1/1 ueot text=When Earth-Origin Yak enters the battlefield, creatures you control get +1/+1 until end of turn. @@ -15269,6 +15830,29 @@ mana={4}{U}{U} type=Sorcery [/card] [card] +name=Echoing Equation +auto=name(All creatures becomes copy) target(creature|myBattlefield) transforms((,newability[phaseaction[endofturn once] counter(0/0.-1.EchoingEffect)],newability[counter(0/0.1.EchoingEffect)],newability[all(other creature|myBattlefield) transforms((,newability[all(creature[counter{0/0.1.EchoingEffect}]|myBattlefield) copy and!( all(this) transforms((,newability[phaseaction[endofturn once] flip(myorigname) undocpy])) forever )!])) ueot])) oneshot +auto=transforms((,newability[moveto(mysideboard) and!( transforms((,newablility[shroud],newability[protection from(*)],newability[cantbetargetof(*)])) forever])) forever +text=Choose target creature you control. Each other creature you control becomes a copy of it until end of turn, except those creatures aren't legendary if the chosen creature is legendary. +mana={2}{U}{U} +type=Sorcery +[/card] +[card] +name=Ecological Appreciation +abilities=exiledeath +auto=count(type:*:myhand) +auto=if compare(type:creature:mylibraryplustype:creature:mygraveyardplusend)~morethan~3 then if compare(countedamount)~morethan~3 then choice name(Search 4 creatures) name(Search 4 creatures) name(Search 4 creatures) target(<2>creature[manacost<=fullpaid]|mylibrary,mygraveyard) moveto(myreveal) and!( moveto(mylibrary) and!( name(Search other 2 creatures) target(<2>creature[manacost<=fullpaid]|mylibrary,mygraveyard) moveto(myreveal) and!( moveto(myBattlefield) )! )! )! +auto=if compare(type:creature:mylibraryplustype:creature:mygraveyardplusend)~morethan~2 then if compare(countedamount)~morethan~3 then choice name(Search 3 creatures) name(Search 3 creatures) name(Search 3 creatures) target(creature[manacost<=fullpaid]|mylibrary,mygraveyard) moveto(myreveal) and!( moveto(myBattlefield) and!( name(Search other 2 creatures) target(<2>creature[manacost<=fullpaid]|mylibrary,mygraveyard) moveto(myreveal) and!( moveto(mylibrary) )! )! )! +auto=if compare(type:creature:mylibraryplustype:creature:mygraveyardplusend)~morethan~3 then if compare(countedamount)~lessthan~4 then choice name(Search 4 creatures) name(Search 4 creatures) name(Search 4 creatures) target(<2>creature[manacost<=fullpaid]|mylibrary,mygraveyard) moveto(myreveal) and!( moveto(myBattlefield) and!( name(Search other 2 creatures) target(<2>creature[manacost<=fullpaid]|mylibrary,mygraveyard) moveto(myreveal) and!( moveto(mylibrary) )! )! )! +auto=if compare(type:creature:mylibraryplustype:creature:mygraveyardplusend)~morethan~2 then if compare(countedamount)~lessthan~4 then choice name(Search 3 creatures) name(Search 3 creatures) name(Search 3 creatures) target(<2>creature[manacost<=fullpaid]|mylibrary,mygraveyard) moveto(myreveal) and!( moveto(mylibrary) and!( name(Search another creature) target(creature[manacost<=fullpaid]|mylibrary,mygraveyard) moveto(myreveal) and!( moveto(myBattlefield) )! )! )! +auto=if compare(type:creature:mylibraryplustype:creature:mygraveyardplusend)~morethan~1 then choice name(Search 2 creatures) name(Search 2 creatures) target(<2>creature[manacost<=fullpaid]|mylibrary,mygraveyard) moveto(myreveal) and!( moveto(mylibrary) and!( shuffle )! )! +auto=if compare(type:creature:mylibraryplustype:creature:mygraveyardplusend)~morethan~0 then choice name(Search 1 creature) name(Search 1 creature) target(creature[manacost<=fullpaid]|mylibrary,mygraveyard) moveto(myreveal) and!( moveto(mylibrary) and!( shuffle )! )! +auto=choice name(Don't search any creature) donothing +text=Search your library and graveyard for up to four creature cards with different names that each have mana value X or less and reveal them. An opponent chooses two of those cards. Shuffle the chosen cards into your library and put the rest onto the battlefield. Exile Ecological Appreciation. +mana={X}{2}{G} +type=Sorcery +[/card] +[card] name=Edgar Markov abilities=first strike,haste auto=@movedTo(other *[vampire]|mystack):token(Vampire,Creature Vampire,1/1,black) @@ -15483,6 +16067,16 @@ toughness=3 color=red [/card] [card] +name=Elemental Expressionist +auto=@movedto(*[instant;sorcery]|mystack):name(Choose a creature) target(creature|mybattlefield) transforms((,newability[exiledeath],newability[@movedto(this|exile):token(Elemental^Creature Elemental^4/4^blue^red)])) ueot +text=Magecraft — Whenever you cast or copy an instant or sorcery spell, choose target creature you control. Until end of turn, it gains "If this creature would leave the battlefield, exile it instead of putting it anywhere else" and "When this creature is put into exile, create a 4/4 blue and red Elemental creature token." (Each instance of that ability triggers separately.) +mana={UR}{UR}{UR}{UR} +type=Creature +subtype=Orc Wizard +power=4 +toughness=4 +[/card] +[card] name=Elemental Hoo abilities=flying type=Creature @@ -15662,6 +16256,18 @@ power=2 toughness=2 [/card] [card] +name=Elite Spellbinder +abilities=flying +auto=if type(*[-land]|opponenthand)~morethan~0 then name(Exile a non-land card) name(Exile a non-land card) target(*[-land]|opponenthand) moveto(opponentexile) and!( transforms((,newability[canplayfromexile],newability[changecost(colorless:2) forcedalive])) forever )! +auto=if type(*[-land]|opponenthand)~equalto~0 then name(Reveal hand) name(Reveal hand) target(*|opponenthand) moveto(opponentreveal) and!( moveto(opponenthand) )! +text=Flying -- When Elite Spellbinder enters the battlefield, look at target opponent's hand. You may exile a nonland card from it. For as long as that card remains exiled, its owner may play it. A spell cast this way costs 2 more to cast. +mana={2}{W} +type=Creature +subtype=Human Cleric +power=3 +toughness=1 +[/card] +[card] name=Elkin Bottle auto={3}{T}:moveto(exile) and!( transforms((,canplayfromexile)) uynt )! all(*[zpos=1]|mylibrary) text={3}, {T}: Exile the top card of your library. Until the beginning of your next upkeep, you may play that card. @@ -15930,6 +16536,17 @@ mana={2}{W} type=Instant [/card] [card] +name=Embrose, Dean of Shadow +auto={T}:name(Put 1/1 counter) target(other creature|battlefield) transforms((,newability[counter(1/1)],newability[damage:2])) oneshot +auto=@movedto(creature[counter{1/1}]|graveyard) from(mybattlefield):name(Draw card) draw:1 controller +text={T}: Put a +1/+1 counter on another target creature, then Embrose, Dean of Shadow deals 2 damage to that creature. -- Whenever a creature you control with a +1/+1 counter on it dies, draw a card. +mana={2}{B}{B} +type=Legendary Creature +subtype=Human Warlock +power=4 +toughness=4 +[/card] +[card] name=Emergence Zone auto={T}:Add{C} auto={1}{T}{S}:all(*|mycastingzone) asflash ueot @@ -15959,6 +16576,13 @@ mana={3}{G} type=Sorcery [/card] [card] +name=Emergent Sequence +auto=name(Search basic land) target(land[basic]|mylibrary) moveto(mybattlefield) and!( transforms((,newability[counter(1/1.type:land[fresh]:mybattlefield)],newability[becomes(Fractal Creature Land^0/0^green^blue)])) forever )! +text=Search your library for a basic land card, put it onto the battlefield tapped, then shuffle. That land becomes a 0/0 green and blue Fractal creature that's still a land. Put a +1/+1 counter on it for each land you had enter the battlefield under your control this turn. +mana={1}{G} +type=Sorcery +[/card] +[card] name=Emergent Ultimatum auto=ability$! notatarget(*|opponentexile) moveto(ownerlibrary) !$ opponent auto=transforms((,newability[choice name(Reveal 2 and cast 2) target(<2>*|mylibrary) moveTo(myBattlefield)],newability[choice name(Reveal 2 and move to exile) target(<2>*|mylibrary) moveTo(myexile)])) @@ -16346,7 +16970,7 @@ subtype=Aura name=Enthusiastic Study target=creature auto=transforms((,newability[3/1],newability[trample])) ueot -auto=name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[choice name(Don't learn) donothing])) oneshot +auto=name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot text=Target creature gets +3/+1 and gains trample until end of turn. -- Learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) mana={2}{R} type=Instant @@ -16441,7 +17065,7 @@ type=Sorcery [/card] [card] name=Epicure of Blood -auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality]):life:-1 opponent +auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection;-Honor Troll]):life:-1 opponent text=Whenever you gain life, each opponent loses 1 life. mana={4}{B} type=Creature @@ -16925,6 +17549,17 @@ power=4 toughness=4 [/card] [card] +name=Excavated Wall +abilities=defender +auto={1}{T}:deplete:1 controller +text=Defender -- {1}, {T}: Mill a card. (Put the top card of your library into your graveyard.) +mana={1} +type=Artifact Creature +subtype=Wall +power=0 +toughness=4 +[/card] +[card] name=Excavating Anurid auto=may name(sacrifice land) S(land):draw:1 auto=aslongas(*|mygraveyard) 1/1 >6 @@ -17148,6 +17783,14 @@ power=2 toughness=2 [/card] [card] +name=Expel +target=creature +auto=moveto(exile) +text=Exile target tapped creature. +mana={2}{W} +type=Instant +[/card] +[card] name=Expel from Orazca target=*[-land] auto=choice name(owner's hand) moveTo(ownerHand) @@ -17177,6 +17820,19 @@ mana={2}{U}{R} type=Sorcery [/card] [card] +name=Explore the Vastlands +aicode=activate transforms((,newability[if type(*[land;instant;sorcery;zpos<=5]|mylibrary)~equalto~0 then all(*[zpos<=5]|mylibrary) bottomoflibrary else target(*[zpos<=1]|mylibrary) transforms((,newability[target(*[land;instant;sorcery;zpos<=5]|mylibrary) moveto(myhand) and!( all(*[zpos<=5]|mylibrary) moveto(myreveal) and!( bottomoflibrary )! )!])) oneshot])) oneshot +auto=if type(land[zpos<=5]|mylibrary)~morethan~0 then if type(*[instant;sorcery;zpos<=5]|mylibrary)~morethan~0 then name(Look top 5 cards) name(Look top 5 cards) name(Look top 5 cards) name(Look top 5 cards) reveal:5 optionone name(Choose land) target(land|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Choose instant or sorcery) target(*[instant;sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot && all(*|reveal) bottomoflibrary )! optiontwoend afterrevealed all(tobecast|mylibrary) transforms((,newability[if cantargetcard(*[land]|*) then choice name(Put land in hand) name(Put land in hand) moveto(myhand)],newability[if cantargetcard(*[land]|*) then choice name(Put land back) name(Put land back) moveto(myreveal) and!( bottomoflibrary )!],newability[if cantargetcard(*[instant;sorcery]|*) then choice name(Put spell in hand) name(Put spell in hand) moveto(myhand)],newability[if cantargetcard(*[instant;sorcery]|*) then choice name(Put spell back) name(Put spell back) moveto(myreveal) and!( bottomoflibrary )!])) oneshot afterrevealedend revealend +auto=if type(land[zpos<=5]|mylibrary)~morethan~0 then if type(*[instant;sorcery;zpos<=5]|mylibrary)~equalto~0 then name(Look top 5 cards) name(Look top 5 cards) name(Look top 5 cards) name(Look top 5 cards) reveal:5 optionone name(Choose land) target(land|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Put back) all(*|reveal) bottomoflibrary optiontwoend afterrevealed all(tobecast|mylibrary) transforms((,newability[choice name(Put land in hand) name(Put land in hand) moveto(myhand)],newability[choice name(Put land back) name(Put land back) moveto(myreveal) and!( bottomoflibrary )!])) oneshot afterrevealedend revealend +auto=if type(land[zpos<=5]|mylibrary)~equalto~0 then if type(*[instant;sorcery;zpos<=5]|mylibrary)~morethan~0 then name(Look top 5 cards) name(Look top 5 cards) name(Look top 5 cards) name(Look top 5 cards) reveal:5 optionone name(Choose instant or sorcery) target(*[instant;sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Put back) all(*|reveal) bottomoflibrary optiontwoend afterrevealed all(tobecast|mylibrary) transforms((,newability[choice name(Put spell in hand) name(Put spell in hand) moveto(myhand)],newability[choice name(Put spell back) name(Put spell back) moveto(myreveal) and!( bottomoflibrary )!])) oneshot afterrevealedend revealend +auto=if type(land[zpos<=5]|mylibrary)~equalto~0 then if type(*[instant;sorcery;zpos<=5]|mylibrary)~equalto~0 then name(Look top 5 cards) name(Look top 5 cards) name(Look top 5 cards) name(Look top 5 cards) reveal:5 optionone name(Put back) target(*|reveal) bottomoflibrary optiononeend optiontwo name(Put back) all(*|reveal) bottomoflibrary optiontwoend revealend +autostack=ability$!name(Look top 5 cards) transforms((,newability[if type(*[land;instant;sorcery;zpos<=5]|mylibrary)~equalto~0 then all(*[zpos<=5]|mylibrary) bottomoflibrary else target(*[zpos<=1]|mylibrary) transforms((,newability[target(*[land;instant;sorcery;zpos<=5]|mylibrary) moveto(myhand) and!( all(*[zpos<=5]|mylibrary) moveto(myreveal) and!( bottomoflibrary )! )!])) oneshot])) oneshot!$ opponent +auto=transforms((,newability[moveto(mysideboard) and!( transforms((,newablility[shroud],newability[protection from(*)],newability[cantbetargetof(*)])) forever])) forever +text=Each player looks at the top five cards of their library and may reveal a land card and/or an instant or sorcery card from among them. Each player puts the cards they revealed this way into their hand and the rest on the bottom of their library in a random order. Each player gains 3 life. +mana={3} +type=Sorcery +[/card] +[card] name=Explorer's Scope auto={1}:equip auto=@combat(attacking) source(mytgt):reveal:1 optionone target(<1>land|reveal) moveto(ownerbattlefield) and!(tap(noevent))! optiononeend optiontwo target(<1>*|reveal) moveto(mylibrary) optiontwoend revealend @@ -17204,6 +17860,33 @@ mana={7}{R} type=Instant [/card] [card] +name=Exponential Growth +target=creature +auto=this(X=2) transforms((,newability[thisforeach(variable{1}) p/t ueot])) oneshot +auto=this(X=3) transforms((,newability[thisforeach(variable{1}) p/t ueot])) oneshot +auto=this(X=4) transforms((,newability[thisforeach(variable{2}) p/t ueot])) oneshot +auto=this(X=5) transforms((,newability[thisforeach(variable{2}) p/t ueot])) oneshot +auto=this(X=6) transforms((,newability[thisforeach(variable{3}) p/t ueot])) oneshot +auto=this(X=7) transforms((,newability[thisforeach(variable{3}) p/t ueot])) oneshot +auto=this(X=8) transforms((,newability[thisforeach(variable{4}) p/t ueot])) oneshot +auto=this(X=9) transforms((,newability[thisforeach(variable{4}) p/t ueot])) oneshot +auto=this(X=10) transforms((,newability[thisforeach(variable{5}) p/t ueot])) oneshot +auto=this(X=11) transforms((,newability[thisforeach(variable{5}) p/t ueot])) oneshot +auto=this(X=12) transforms((,newability[thisforeach(variable{6}) p/t ueot])) oneshot +auto=this(X=13) transforms((,newability[thisforeach(variable{6}) p/t ueot])) oneshot +auto=this(X=14) transforms((,newability[thisforeach(variable{7}) p/t ueot])) oneshot +auto=this(X=15) transforms((,newability[thisforeach(variable{7}) p/t ueot])) oneshot +auto=this(X=16) transforms((,newability[thisforeach(variable{8}) p/t ueot])) oneshot +auto=this(X=17) transforms((,newability[thisforeach(variable{8}) p/t ueot])) oneshot +auto=this(X=18) transforms((,newability[thisforeach(variable{9}) p/t ueot])) oneshot +auto=this(X=19) transforms((,newability[thisforeach(variable{9}) p/t ueot])) oneshot +auto=this(X=20) transforms((,newability[thisforeach(variable{10}) p/t ueot])) oneshot +auto=this(X=21) transforms((,newability[thisforeach(variable{10}) p/t ueot])) oneshot +text=Until end of turn, double target creature's power X times. +mana={X}{X}{G}{G} +type=Sorcery +[/card] +[card] name=Expose to Daylight target=artifact,enchantment auto=destroy @@ -17214,6 +17897,14 @@ mana={2}{W} type=Instant [/card] [card] +name=Expressive Iteration +aicode=activate transforms((,newability[all(*[zpos=1]|mylibrary) moveto(myhand)],newability[all(*[zpos=2]|mylibrary) bottomoflibrary],newability[all(*[zpos=3]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile])) ueot )! ])) ueot +auto=name(look top 3 cards) reveal:3 optionone name(Put in my hand) target(*|reveal) moveto(myhand) optiononeend optiontwo choice name(Choose one for Bottom) target(*|reveal) bottomoflibrary and!( all(other *|reveal) moveto(myexile) and!( transforms((,newability[canplayfromexile])) ueot )! )! optiontwoend +text=Look at the top three cards of your library. Put one of them into your hand, put one of them on the bottom of your library, and exile one of them. You may play the exiled card this turn. +mana={U}{R} +type=Sorcery +[/card] +[card] name=Exquisite Archangel abilities=flying,cantlifelose auto=@damageof(player):if compare(lifetotal)~lessthan~1 then all(this) moveTo(exile) && lifeset:startinglife controller @@ -17226,8 +17917,12 @@ toughness=5 [/card] [card] name=Exquisite Firecraft -auto=damage:4 target(player,creature,planeswalker) -autostack=if type(*[instant;sorcery]|mygraveyard)~morethan~1 then nofizzle +target=player,creature,planeswalker +abilities=nofizzle alternative +other={1}{R}{R} name(Spell mastery) +otherrestriction=type(*[instant;sorcery]|mygraveyard)~morethan~1 +restriction=type(*[instant;sorcery]|mygraveyard)~lessthan~2 +auto=damage:4 text=Exquisite Firecraft deals 4 damage to any target. -- Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, this spell can’t be countered. mana={1}{R}{R} type=Sorcery @@ -17244,6 +17939,23 @@ power=4 toughness=2 [/card] [card] +name=Extus, Oriq Overlord +abilities=double strike +other={6}{B}{R} name(Awaken the Blood Avatar) +otherrestriction=can play sorcery +autostack=if paid(alternative) then transforms((,newability[moveto(mygraveyard)],newability[activate castcard(named!:awaken the blood avatar:!)])) forever +autohand={4}{B}{R}{S(creature|myBattlefield)} restriction{type(creature|mybattlefield)~morethan~0,can play sorcery}:name(Sacrifice 1) transforms((,newability[activate castcard(named!:awaken the blood avatar:!)],newability[moveto(mygraveyard)])) forever +autohand={2}{B}{R}{S(creature|myBattlefield)}{S(creature|myBattlefield)} restriction{type(creature|mybattlefield)~morethan~1,can play sorcery}:name(Sacrifice 2) transforms((,newability[activate castcard(named!:awaken the blood avatar:!)],newability[moveto(mygraveyard)])) forever +autohand={B}{R}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)} restriction{type(creature|mybattlefield)~morethan~2,can play sorcery}:name(Sacrifice 3) transforms((,newability[activate castcard(named!:awaken the blood avatar:!)],newability[moveto(mygraveyard)])) forever +auto=@movedto(*[instant;sorcery]|mystack):name(Return creature) target(creature[-legendary]|mygraveyard) moveto(myhand) +text=Double strike -- Magecraft — Whenever you cast or copy an instant or sorcery spell, return target nonlegendary creature card from your graveyard to your hand. // As an additional cost to cast this spell, you may sacrifice any number of creatures. This spell costs {2} less to cast for each creature sacrificed this way. -- Each opponent sacrifices a creature. Create a 3/6 black and red Avatar creature token with haste and "Whenever this creature attacks, it deals 3 damage to each opponent." +mana={1}{W}{B}{B} +type=Legendary Creature +subtype=Human Warlock +power=2 +toughness=4 +[/card] +[card] name=Exuberant Wolfbear auto=@combat(attacking) source(this):may target(human|myBattlefield) becomes(p/t) ueot text=Whenever Exuberant Wolfbear attacks, you may change the base power and toughness of target Human you control to Exuberant Wolfbear's power and toughness until end of turn. @@ -17309,7 +18021,7 @@ type=Enchantment [card] name=Eyetwitch abilities=flying -auto=@movedto(this|graveyard) from(mybattlefield):name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[choice name(Don't learn) donothing])) oneshot +auto=@movedto(this|graveyard) from(mybattlefield):name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot text=Flying -- When Eyetwitch dies, learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) mana={B} type=Creature @@ -17374,7 +18086,7 @@ type=Snow Land [/card] [card] name=Facet Reader -auto={1}{T}:draw:1 controller && reject:1 controller +auto={1}{T}:draw:1 && transforms((,newability[target(*|myhand) reject])) forever text={1}, {T}: Draw a card, then discard a card. mana={1}{U} type=Creature @@ -17615,7 +18327,7 @@ toughness=2 [card] name=Famished Paladin auto=doesnotuntap -auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection]):untap(this) +auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection;-Honor Troll]):untap(this) text=Famished Paladin doesn't untap during your untap step. -- Whenever you gain life, untap Famished Paladin. mana={1}{W} type=Creature @@ -18274,6 +18986,14 @@ mana={2}{U} type=Sorcery [/card] [card] +name=Field Trip +auto=ability$!name(Search basic plains) name(Search basic plains) target(plains[basic]|mylibrary) moveto(mybattlefield) and!( tap(noevent) )! !$ controller +auto=name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot +text=Search your library for a basic Forest card, put that card onto the battlefield tapped, then shuffle. -- Learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) +mana={2}{G} +type=Sorcery +[/card] +[card] name=Field of Ruin auto={T}:Add{1} auto={2}{T}{S}:destroy target(land[-basic]|opponentlbattlefield) && moveto(mybattlefield) target(basic|mylibrary) && ability$!moveto(mybattlefield) target(basic|mylibrary)!$ opponent @@ -18684,7 +19404,7 @@ toughness=2 [card] name=Fireblade Charger auto=this(gear > 0) haste -auto=@movedTo(this|mygraveyard) from(battlefield):name(Damage any target) name(Damage any target) target(player,creature,planeswalker) dynamicability oneshot +auto=@movedTo(this|mygraveyard) from(battlefield):name(Damage any target) damage:power target(player,creature,planeswalker) text=As long as Fireblade Charger is equipped, it has haste. -- When Fireblade Charger dies, it deals damage equal to its power to any target. mana={R} type=Creature @@ -18881,6 +19601,13 @@ power=2 toughness=4 [/card] [card] +name=First Day of Class +auto=emblem transforms((,newability[@movedto(creature|mybattlefield):name(Gains 1/1 counter and haste) all(trigger[to]) transforms((,newability[counter(1/1),newability[haste])) ueot])) ueot +text=Whenever a creature enters the battlefield under your control this turn, put a +1/+1 counter on it and it gains haste until end of turn. -- Learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) +mana={1}{R} +type=Instant +[/card] +[card] name=First Response auto=@each upkeep restriction{lastturn(life)~morethan~0}:token(Soldier,Creature Soldier,1/1,white) text=At the beginning of each upkeep, if you lost life last turn, put a 1/1 white Soldier creature token onto the battlefield. @@ -19107,6 +19834,21 @@ mana={5}{R} type=Instant [/card] [card] +name=Flamescroll Celebrant +#MISSING:opponent activates an ability +abilities=flash +other={W}{W} name(Revel in Silence) +restriction=can play creature +autostack=if paid(alternative) then transforms((,newability[moveto(myexile)],newability[activate castcard(named!:revel in silence:!)])) forever +auto={1}{R}:2/0 ueot +text=Whenever an opponent activates an ability that isn't a mana ability, Flamescroll Celebrant deals 1 damage to that player. -- {1}{R}: Flamescroll Celebrant gets +2/+0 until end of turn. // Your opponents can't cast spells or activate planeswalkers' loyalty abilities this turn. -- Exile Revel in Silence. +mana={1}{R} +type=Creature +subtype=Human Shaman +power=2 +toughness=1 +[/card] +[card] name=Flameshot other={D(mountain|myHand)} name(Discard a Mountain) auto=thisforeach(variable{3}) ability$!name(Deal 1 damage) name(Deal 1 damage) target(creature) damage:1!$ controller @@ -19125,6 +19867,14 @@ power=2 toughness=3 [/card] [card] +name=Flamethrower Sonata +auto=name(Discard and draw) target(*|myhand) transforms((,newability[reject],newability[draw:1 controller],newability[if cantargetcard(*[instant;sorcery]|*) then name(Damage creature or planeswalker) name(Damage creature or planeswalker) damage:manacost target(*[creature;planeswalker]|opponentbattlefield)])) oneshot +auto=transforms((,newability[moveto(mysideboard) and!( transforms((,newablility[shroud],newability[protection from(*)],newability[cantbetargetof(*)])) forever])) forever +text=Discard a card, then draw a card. When you discard an instant or sorcery card this way, Flamethrower Sonata deals damage equal to that card's mana value to target creature or planeswalker you don't control. +mana={1}{R} +type=Sorcery +[/card] +[card] name=Flash Foliage restriction=blockersonly auto=token(Saproling,Creature Saproling,1/1,green) and!(transforms((,newability[mustblock])) ueot)! @@ -19612,6 +20362,14 @@ text=Colorless creatures you control get +2/+2. -- Whenever you tap a permanent type=Legendary Artifact [/card] [card] +name=Fortifying Draught +auto=life:2 controller +auto=target(creature) lifegain/lifegain ueot +text=You gain 2 life. Target creature gets +X/+X until end of turn, where X is the amount of life you gained this turn. +mana={G} +type=Instant +[/card] +[card] name=Fortifying Provisions auto=lord(creature|myBattlefield) 0/1 auto=token(-473141) @@ -19926,7 +20684,7 @@ toughness=3 [/card] [card] name=Frost Augur -aicode={T}{U}:activate moveTo(myhand) target(*[snow;zpos=1]|mylibrary) +aicode=activate moveTo(myhand) target(*[snow;zpos=1]|mylibrary) auto={T}{i}:name(Look your library) reveal:1 revealzone(mylibrary) optionone name(Put in hand) target(*[snow]|reveal) moveto(myhand) optiononeend optiontwo name(Put back) target(<1>*|reveal) moveto(mylibrary) optiontwoend revealend text={S}i}, {T}: Look at the top card of your library. If it’s a snow card, you may reveal it and put it into your hand. ({S}i} can be paid with one mana from a snow source.) mana={U} @@ -19945,6 +20703,17 @@ mana={R} type=Snow Instant [/card] [card] +name=Frost Trickster +abilities=flying +auto=name(Tap creature) target(creature|opponentbattlefield) freeze +text=Flying -- When Frost Trickster enters the battlefield, tap target creature an opponent controls. That creature doesn't untap during its controller's next untap step. +mana={2}{U} +type=Creature +subtype=Bird Wizard +power=2 +toughness=2 +[/card] +[card] name=Frost Titan auto=@targeted(this) from(opponent):transforms((,newability[pay[[{2}]] name(pay 2 mana) donothing?fizzle])) oneshot auto=frozen target(*) @@ -19957,6 +20726,14 @@ power=6 toughness=6 [/card] [card] +name=Frostboil Snarl +auto=if type(*[island;mountain]|myhand)~equalto~0 then tap(noevent) +auto={T}:add{U} +auto={T}:add{R} +text=As Frostboil Snarl enters the battlefield, you may reveal an Island or Mountain card from your hand. If you don't, Frostboil Snarl enters the battlefield tapped. -- {T}: Add {U} or {R}. +type=Land +[/card] +[card] name=Frostpeak Yeti auto={1}{i}:unblockable ueot text={1}{S}i}: Frostpeak Yeti can’t be blocked this turn. ({S}i} can be paid with one mana from a snow source.) @@ -20144,6 +20921,14 @@ mana={2}{R}{R} type=Instant [/card] [card] +name=Furycalm Snarl +auto=if type(*[plains;mountain]|myhand)~equalto~0 then tap(noevent) +auto={T}:add{W} +auto={T}:add{R} +text=As Furycalm Snarl enters the battlefield, you may reveal a Mountain or Plains card from your hand. If you don't, Furycalm Snarl enters the battlefield tapped. -- {T}: Add {R} or {W}. +type=Land +[/card] +[card] name=Fynn, the Fangbearer abilities=deathtouch auto=lord(creature[deathtouch]|mybattlefield) poisontwotoxic @@ -20219,6 +21004,18 @@ power=4 toughness=4 [/card] [card] +name=Galazeth Prismari +abilities=flying +auto=token(Treasure Sur) +auto=lord(artifact|mybattlefield) transforms((,newability[this(variable{type:*[instant;sorcery]:myhand}>0) {T}:add{W}],newability[this(variable{type:*[instant;sorcery]:myhand}>0) {T}:add{B}],newability[this(variable{type:*[instant;sorcery]:myhand}>0) {T}:add{R}],newability[this(variable{type:*[instant;sorcery]:myhand}>0) {T}:add{U}],newability[this(variable{type:*[instant;sorcery]:myhand}>0) {T}:add{G}])) +text=Flying -- When Galazeth Prismari enters the battlefield, create a Treasure token. -- Artifacts you control have " {T}: Add one mana of any color. Spend this mana only to cast an instant or sorcery spell." +mana={2}{U}{R} +type=Legendary Creature +subtype=Elder Dragon +power=3 +toughness=4 +[/card] +[card] name=Gale Swooper abilities=flying auto=target(creature) flying ueot @@ -21065,7 +21862,7 @@ type=Sorcery [/card] [card] name=Gideon's Company -auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection]):counter(1/1,2) +auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection;-Honor Troll]):counter(1/1,2) auto={3}{W}:counter(0/0,1,Loyalty) target(planeswalker[gideon]) text=Whenever you gain life, put two +1/+1 counters on Gideon's Company. -- {3}{W}: Put a loyalty counter on target Gideon planeswalker. mana={3}{W} @@ -21794,6 +22591,17 @@ power=4 toughness=4 [/card] [card] +name=Gnarled Professor +abilities=trample +auto=name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot +text=Trample -- When Gnarled Professor enters the battlefield, learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) +mana={2}{G}{G} +type=Creature +subtype=Treefolk Druid +power=5 +toughness=4 +[/card] +[card] name=Gnarled Sage abilities=reach auto=this(pdrewcount>1) 0/2 ueot && vigilance ueot @@ -23492,6 +24300,15 @@ power=1 toughness=2 [/card] [card] +name=Guiding Voice +target=creature +auto=counter(1/1) +auto=name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot +text=Put a +1/+1 counter on target creature. -- Learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) +mana={W} +type=Sorcery +[/card] +[card] name=Guild Globe auto=draw:1 auto={2}{T}{S}:Add{W}{U} @@ -23839,6 +24656,18 @@ text={T}: Add {1}. -- {1}{W}, {T}: Put target enchantment card from your graveya type=Legendary Land [/card] [card] +name=Hall of Oracles +auto={T}:add{C} +auto={1}{T}:add{W} +auto={1}{T}:add{U} +auto={1}{T}:add{G} +auto={1}{T}:add{R} +auto={1}{T}:add{B} +auto={T} restriction{thisturn(*[instant;sorcery]|mystack)~morethan~0}:name(Put 1/1 counter) target(creature) counter(1/1) asSorcery +text={T}: Add {C}. -- {1}, {T}: Add one mana of any color. -- {T}: Put a +1/+1 counter on target creature. Activate only as a sorcery and only if you've cast an instant or sorcery spell this turn. +type=Land +[/card] +[card] name=Hall of the Bandit Lord auto={T}{L:3}:add{1} && target(creature[fresh]|mybattlefield) haste text=Hall of the Bandit Lord enters the battlefield tapped. -- {T}, Pay 3 life: Add {1} to your mana pool. If that mana is spent on a creature spell, it gains haste. @@ -23857,7 +24686,7 @@ toughness=3 [/card] [card] name=Hallowed Priest -auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection]):counter(1/1,1) +auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection;-Honor Troll]):counter(1/1,1) text=Whenever you gain life, put a +1/+1 counter on Hallowed Priest mana={1}{W} type=Creature @@ -24153,6 +24982,17 @@ mana={1}{R}{R} type=Sorcery [/card] [card] +name=Harness Infinity +abilities=exiledeath +auto=count(type:*:myhand) && countb(type:*:mygraveyard) +auto=if compare(countedamount)~morethan~0 then if compare(countedbamount)~morethan~0 then all(*|myhand) moveto(myreveal) and!( transforms((,newability[all(*|mygraveyard) moveto(myhand) and!( transforms((,newability[all(*|myreveal) moveto(mygraveyard)])) oneshot )!])) oneshot )! +auto=if compare(countedamount)~equalto~0 then if compare(countedbamount)~morethan~0 then then all(*|mygraveyard) moveto(myhand) +auto=if compare(countedamount)~morethan~0 then if compare(countedbamount)~equalto~0 then then all(*|myhand) moveto(mygraveyard) +text=Exchange your hand and graveyard. -- Exile Harness Infinity. +mana={1}{B}{B}{B}{G}{G}{G} +type=Instant +[/card] +[card] name=Harness the Storm auto=@movedto(*[instant;sorcery]|mystack) from(myhand):all(trigger[to]) transforms((,newability[if casted(this) then may name(Cast from graveyard) target(*[share!name!]|mygraveyard) canplayfromgraveyard ueot])) oneshot text=Whenever you cast an instant or sorcery spell from your hand, you may cast target card with the same name as that spell from your graveyard. (You still pay its costs.) @@ -24682,7 +25522,7 @@ name=Heliod, Sun-Crowned abilities=indestructible auto=this(variable{type:manaw}<5) transforms((removetypes,newability[becomes(Legendary Enchantment God)])) auto=this(variable{type:manaw}>4) transforms((Legendary Enchantment Creature)) -auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection]):counter(1/1,1) target(creature,enchantment|myBattlefield) +auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection;-Honor Troll]):counter(1/1,1) target(creature,enchantment|myBattlefield) auto={1}{W}:lifelink target(other creature) ueot text=Indestructible -- As long as your devotion to white is less than five, Heliod isn’t a creature. -- Whenever you gain life, put a +1/+1 counter on target creature or enchantment you control. -- {1}{W}: Another target creature gains lifelink until end of turn. mana={2}{W} @@ -25193,6 +26033,14 @@ mana={1}{B}{R} type=Instant [/card] [card] +name=Hive Mind +auto=@movedto(*[instant;sorcery]|mystack):ability$!name(Copy spell) name(Copy spell) target(*|opponentstack) activate castcard(copied noevent)!$ opponent +auto=@movedto(*[instant;sorcery]|opponentstack):ability$!name(Copy spell) name(Copy spell) target(*|opponentstack) activate castcard(copied noevent)!$ controller +text=Whenever a player casts an instant or sorcery spell, each other player copies that spell. Each of those players may choose new targets for his or her copy. +mana={5}{U} +type=Enchantment +[/card] +[card] name=Hobblefiend abilities=trample auto={1}{S(other creature|myBattlefield}:counter(1/1,1) all(this) @@ -25204,6 +26052,17 @@ power=2 toughness=1 [/card] [card] +name=Hofri Ghostforge +auto=lord(spirit) transforms((,newability[1/1],newability[trample],newability[haste])) +auto=@movedto(creature[-token]|graveyard) from(mybattlefield):name(Exile and copy) transforms((,newability[all(creature[-token;fresh:zpos=type:*:mygraveyard]|mygraveyard) moveto(exile) and!( clone and!( transforms((Spirit,newability[@movedto(this|graveyard) from(mybattlefield):name(Return exiled creature) target(creature[!share!name!]|myexile) moveto(mygraveyard)])) forever )! )!])) forever +text=Spirits you control get +1/+1 and have trample and haste. -- Whenever another nontoken creature you control dies, exile it. If you do, create a token that's a copy of that creature, except it's a Spirit in addition to its other types and it has "When this creature leaves the battlefield, return the exiled card to your graveyard." +mana={3}{R}{W} +type=Legendary Creature +subtype=Dwarf Cleric +power=4 +toughness=5 +[/card] +[card] name=Hollow One abilities=cycling anyzone=@discarded(*|myhand):changecost(colorless:-2) ueot forcedalive @@ -25274,6 +26133,18 @@ mana={2}{R}{D(other *|myhand)} type=Sorcery [/card] [card] +name=Honor Troll +abilities=vigilance +auto=this(controllerlife > 24) 2/1 +auto=@lifeof(player) from(*[-Honor Troll]):life:1 controller +text=Vigilance -- If you would gain life, you gain that much life plus 1 instead. -- Honor Troll gets +2/+1 as long as you have 25 or more life. +mana={2}{G} +type=Creature +subtype=Troll Druid +power=2 +toughness=3 +[/card] +[card] name=Honored Crop-Captain auto=@combat(attacking) source(this):all(other creature[attacking]) 1/0 ueot text=Whenever Honored Crop-Captain attacks, other attacking creatures get +1/+0 until end of turn. @@ -25837,7 +26708,7 @@ type=Sorcery [card] name=Hunt for Specimens auto=token(Pest,Creature Pest,1/1,green,blue) and!( transforms((,newability[@movedto(this|mygraveyard) from(battlefield):life:1 controller])) forever )! -auto=name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[choice name(Don't learn) donothing])) oneshot +auto=name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot text=Create a 1/1 black and green Pest creature token with "When this creature dies, you gain 1 life." -- Learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) mana={1}{B} type=Sorcery @@ -26199,7 +27070,7 @@ toughness=3 name=Igneous Inspiration target=player,creature,planeswalker auto=damage:3 -auto=name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[choice name(Don't learn) donothing])) oneshot +auto=name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot text=Igneous Inspiration deals 3 damage to any target. -- Learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) mana={2}{R} type=Sorcery @@ -26408,6 +27279,37 @@ mana={2}{U}{U} type=Instant [/card] [card] +name=Imbraham, Dean of Theory +abilities=flying +auto={1}{U}{U}{T}:name(X=1) all(*[zpos<=1]|mylibrary) moveto(myexile) and!( transforms((,newability[counter(0/0.1.study)],newability[phaseaction[endofturn once checkex] counter(0/0.-1.study)])) oneshot )! +auto={2}{U}{U}{T}:name(X=2) all(*[zpos<=2]|mylibrary) moveto(myexile) and!( transforms((,newability[counter(0/0.1.study)],newability[phaseaction[endofturn once checkex] counter(0/0.-1.study)])) oneshot )! +auto={3}{U}{U}{T}:name(X=3) all(*[zpos<=3]|mylibrary) moveto(myexile) and!( transforms((,newability[counter(0/0.1.study)],newability[phaseaction[endofturn once checkex] counter(0/0.-1.study)])) oneshot )! +auto={4}{U}{U}{T}:name(X=4) all(*[zpos<=4]|mylibrary) moveto(myexile) and!( transforms((,newability[counter(0/0.1.study)],newability[phaseaction[endofturn once checkex] counter(0/0.-1.study)])) oneshot )! +auto={5}{U}{U}{T}:name(X=5) all(*[zpos<=5]|mylibrary) moveto(myexile) and!( transforms((,newability[counter(0/0.1.study)],newability[phaseaction[endofturn once checkex] counter(0/0.-1.study)])) oneshot )! +auto={6}{U}{U}{T}:name(X=6) all(*[zpos<=6]|mylibrary) moveto(myexile) and!( transforms((,newability[counter(0/0.1.study)],newability[phaseaction[endofturn once checkex] counter(0/0.-1.study)])) oneshot )! +auto={7}{U}{U}{T}:name(X=7) all(*[zpos<=7]|mylibrary) moveto(myexile) and!( transforms((,newability[counter(0/0.1.study)],newability[phaseaction[endofturn once checkex] counter(0/0.-1.study)])) oneshot )! +auto={8}{U}{U}{T}:name(X=8) all(*[zpos<=8]|mylibrary) moveto(myexile) and!( transforms((,newability[counter(0/0.1.study)],newability[phaseaction[endofturn once checkex] counter(0/0.-1.study)])) oneshot )! +auto={9}{U}{U}{T}:name(X=9) all(*[zpos<=9]|mylibrary) moveto(myexile) and!( transforms((,newability[counter(0/0.1.study)],newability[phaseaction[endofturn once checkex] counter(0/0.-1.study)])) oneshot )! +auto={10}{U}{U}{T}:name(X=10) all(*[zpos<=10]|mylibrary) moveto(myexile) and!( transforms((,newability[counter(0/0.1.study)],newability[phaseaction[endofturn once checkex] counter(0/0.-1.study)])) oneshot )! +auto={11}{U}{U}{T}:name(X=1) all(*[zpos<=11]|mylibrary) moveto(myexile) and!( transforms((,newability[counter(0/0.1.study)],newability[phaseaction[endofturn once checkex] counter(0/0.-1.study)])) oneshot )! +auto={12}{U}{U}{T}:name(X=2) all(*[zpos<=12]|mylibrary) moveto(myexile) and!( transforms((,newability[counter(0/0.1.study)],newability[phaseaction[endofturn once checkex] counter(0/0.-1.study)])) oneshot )! +auto={13}{U}{U}{T}:name(X=3) all(*[zpos<=13]|mylibrary) moveto(myexile) and!( transforms((,newability[counter(0/0.1.study)],newability[phaseaction[endofturn once checkex] counter(0/0.-1.study)])) oneshot )! +auto={14}{U}{U}{T}:name(X=4) all(*[zpos<=14]|mylibrary) moveto(myexile) and!( transforms((,newability[counter(0/0.1.study)],newability[phaseaction[endofturn once checkex] counter(0/0.-1.study)])) oneshot )! +auto={15}{U}{U}{T}:name(X=5) all(*[zpos<=15]|mylibrary) moveto(myexile) and!( transforms((,newability[counter(0/0.1.study)],newability[phaseaction[endofturn once checkex] counter(0/0.-1.study)])) oneshot )! +auto={16}{U}{U}{T}:name(X=6) all(*[zpos<=16]|mylibrary) moveto(myexile) and!( transforms((,newability[counter(0/0.1.study)],newability[phaseaction[endofturn once checkex] counter(0/0.-1.study)])) oneshot )! +auto={17}{U}{U}{T}:name(X=7) all(*[zpos<=17]|mylibrary) moveto(myexile) and!( transforms((,newability[counter(0/0.1.study)],newability[phaseaction[endofturn once checkex] counter(0/0.-1.study)])) oneshot )! +auto={18}{U}{U}{T}:name(X=8) all(*[zpos<=18]|mylibrary) moveto(myexile) and!( transforms((,newability[counter(0/0.1.study)],newability[phaseaction[endofturn once checkex] counter(0/0.-1.study)])) oneshot )! +auto={19}{U}{U}{T}:name(X=9) all(*[zpos<=19]|mylibrary) moveto(myexile) and!( transforms((,newability[counter(0/0.1.study)],newability[phaseaction[endofturn once checkex] counter(0/0.-1.study)])) oneshot )! +auto={20}{U}{U}{T}:name(X=10) all(*[zpos<=20]|mylibrary) moveto(myexile) and!( transforms((,newability[counter(0/0.1.study)],newability[phaseaction[endofturn once checkex] counter(0/0.-1.study)])) oneshot )! +auto={0}:name(Put exiled card in hand) target(*[counter{0/0.1.study}|myexile) moveto(myhand) limit:1 +text=Flying -- {X}{U}{U}, {T}: Exile the top X cards of your library and put a study counter on each of them. Then you may put a card you own in exile with a study counter on it into your hand. +mana={2}{U}{U} +type=Legendary Creature +subtype=Bird Wizard +power=3 +toughness=3 +[/card] +[card] name=Imi Statue auto=lord(artifact|mybattlefield) doesnotuntap auto=lord(artifact|opponentbattlefield) doesnotuntap @@ -27147,6 +28049,15 @@ mana={R} type=Instant [/card] [card] +name=Infuse with Vitality +target=creature +auto=transforms((,newability[deathtouch],newability[inplaytapdeath])) ueot +auto=life:2 controller +text=Until end of turn, target creature gains deathtouch and "When this creature dies, return it to the battlefield tapped under its owner's control." -- You gain 2 life. +mana={B}{G} +type=Instant +[/card] +[card] name=Inga Rune-Eyes aicode=activate transforms((,newability[all(*[zpos<=3]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot auto=scry:3 scrycore delayed dontshow donothing scrycoreend scryend @@ -27172,6 +28083,18 @@ power=2 toughness=3 [/card] [card] +name=Ingenious Mastery +other={2}{U} name(Cast without X) +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot +auto=if paid(alternative) then draw:3 controller +auto=if paid(alternative) then token(Treasure Sur)*2 opponent +auto=if paid(alternative) then ability$!name(Scry 2) name(Scry 2) scry:2 scrycore delayed dontshow donothing scrycoreend scryend!$ opponent +auto=ifnot paid(alternative) then draw:x controller +text=You may pay {2}{U} rather than pay this spell's mana cost. -- If the {2}{U} cost was paid, you draw three cards, then an opponent creates two Treasure tokens and they scry 2. If that cost wasn't paid, you draw X cards. +mana={X}{2}{U} +type=Sorcery +[/card] +[card] name=Ingenuity Engine autostack=if casted(this) then cascade:plibrarycount auto={1}{T}{S(artifact|mybattlefield)}:moveto(ownerhand) target(artifact|mybattlefield) @@ -27522,7 +28445,7 @@ auto=ifnot paid(alternative) then target(creature) 2/2 ueot auto=if paid(alternative) then life:3 controller auto=if paid(alternative) then damage:3 target(player,creature,planeswalker) text=Target creature gets +2/+2 until end of turn. -- Intervention deals 3 damage to any target and you gain 3 life. -mana={R or W} +mana={RW} type=Instant [/card] [card] @@ -27687,7 +28610,7 @@ type=Instant name=Invigorating Surge target=creature|myBattlefield auto=counter(1/1,1) -auto=transforms((,newability[thisforeach(counter{1/1.1}) counter(1/1,1) all(this)])) oneshot +auto=transforms((,newability[thisforeach(counter{1/1.1}) counter(1/1) all(this)])) oneshot text=Put a +1/+1 counter on target creature you control, then double the number of +1/+1 counters on that creature. mana={2}{G} type=Instant @@ -28187,6 +29110,20 @@ power=2 toughness=1 [/card] [card] +name=Jadzi, Oracle of Arcavios +other={2}{G}{G} name(Journey to the Oracle) +otherrestriction=can play sorcery +autostack=if paid(alternative) then transforms((,newability[moveto(mygraveyard)],newability[activate castcard(named!:journey to the oracle:!)])) forever +auto={D(*|myhand)}:moveto(ownerhand) +auto=@movedto(*[instant;sorcery]|mystack):name(Look top card) reveal:1 optionone target(land|reveal) moveto(mybattlefield) oneshot optiononeend optiontwo name(Cast for 1 or put back) target(*|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiontwoend afterrevealed all(tobecast|mylibrary) transforms((,newability[pay({1}) name(Cast for 1) activate castcard(normal)])) oneshot afterrevealedend revealend +text=Discard a card: Return Jadzi, Oracle of Arcavios to its owner's hand. -- Magecraft — Whenever you cast or copy an instant or sorcery spell, reveal the top card of your library. If it's a nonland card, you may cast it by paying 1 rather than paying its mana cost. If it's a land card, put it onto the battlefield. // You may put any number of land cards from your hand onto the battlefield. Then if you control eight or more lands, you may discard a card. If you do, return Journey to the Oracle to its owner's hand. +mana={6}{U}{U} +type=Legendary Creature +subtype=Human Wizard +power=5 +toughness=5 +[/card] +[card] name=Jar of Eyeballs auto=@movedTo(creature|mygraveyard) from(battlefield):counter(0/0,2,Eyeball) auto=this(counter{0/0.2.Eyeball}) {3}{T}:removeallcounters(0/0,1,Eyeball) && reveal:2 optionone target(*|reveal) moveto(myhand) optiononeend optiontwo name(Put in library) all(*|reveal) bottomoflibrary optiontwoend revealend @@ -28508,6 +29445,14 @@ mana={4}{W} type=Enchantment [/card] [card] +name=Journey to the Oracle +auto=target(land|myhand) moveto(myBattlefield) and!( if type(land|mybattlefield)~morethan~7 then may name(Discard and return jadzi) ability$!name(Discard and return jadzi) name(Discard and return jadzi) target(*|myhand) transforms((,newability[reject],newability[name(Discard and return jadzi) target(*[Jadzi^ Oracle of Arcavios;fresh]|mygraveyard) moveto(ownerhand)])) oneshot!$ controller )! +auto=transforms((,newability[moveto(mysideboard) and!( transforms((,newablility[shroud],newability[protection from(*)],newability[cantbetargetof(*)])) forever])) forever +text=You may put any number of land cards from your hand onto the battlefield. Then if you control eight or more lands, you may discard a card. If you do, return Journey to the Oracle to its owner's hand. +mana={2}{G}{G} +type=Sorcery +[/card] +[card] name=Joust target=creature|mybattlefield auto=transforms((,newability[target(creature) dynamicability])) ueot @@ -28985,6 +29930,16 @@ mana={4}{U}{U} type=Legendary Sorcery [/card] [card] +name=Karok Wrangler +auto=@movedto(*[instant;sorcery]|mystack):name(Put 1/1 counter) target(creature|mybattlefield) counter(1/1) +text=Magecraft — Whenever you cast or copy an instant or sorcery spell, put a +1/+1 counter on target creature you control. +mana={4}{G} +type=Creature +subtype=Elf Druid +power=3 +toughness=3 +[/card] +[card] name=Karplusan Hound auto=@combat(attacking) source(this) aslongas(planeswalker[chandra]|myBattlefield):damage:2 target(player,creature,planeswalker) text=Whenever Karplusan Hound attacks, if you control a Chandra planeswalker, this creature deals 2 damage to any target. @@ -29297,6 +30252,17 @@ power=1 toughness=1 [/card] [card] +name=Kelpie Guide +auto={T}:name(Untap another permanent) target(other *|mybattlefield) untap +auto=this(variable{type:land:mybattlefield}>7) {T}:name(Tap permanent) target(*|battlefield) tap +text={T}: Untap another target permanent you control. -- {T}: Tap target permanent. Activate only if you control eight or more lands. +mana={2}{U} +type=Creature +subtype=Beast +power=2 +toughness=2 +[/card] +[card] name=Kels, Fight Fixer auto=menace auto=@sacrificed(creature|mybattlefield):pay({RU}) draw:1 controller @@ -29541,6 +30507,20 @@ mana={4}{R} type=Sorcery [/card] [card] +name=Kianne, Dean of Substance +other={2}{U}{U} name(Imbraham, Dean of Theory) +otherrestriction=can play creature +autostack=if paid(alternative) then name(Imbraham, Dean of Theory) name(Imbraham, Dean of Theory) flip(Imbraham, Dean of Theory) forcetype(Legendary Creature) +auto=this(variable{isflipped}<1) {T}:all(*[zpos=1]|mylibrary) moveto(myexile) and!( transforms((,newability[this(cantargetcard(*[land]|*) moveto(myhand)],newability[this(cantargetcard(*[-land]|*) counter(0/0.1.study)])) oneshot )! +auto=this(variable{isflipped}<1) {4}{G}:token(Fractal,Creature Fractal,0/0,green,blue) and!( transforms((,newability[if type(*[-land;red;counter{0/0.1.study}]|myexile)~morethan~0 then counter(1/1)],newability[if type(*[-land;black;counter{0/0.1.black}]|myexile)~morethan~0 then counter(1/1)],newability[if type(*[-land;green;counter{0/0.1.study}]|myexile)~morethan~0 then counter(1/1)],newability[if type(*[-land;white;counter{0/0.1.study}]|myexile)~morethan~0 then counter(1/1)],newability[if type(*[-land;blue;counter{0/0.1.blue}]|myexile)~morethan~0 then counter(1/1)])) oneshot )! +text={T}: Exile the top card of your library. If it's a land card, put it into your hand. Otherwise, put a study counter on it. -- {4}{G}: Create a 0/0 green and blue Fractal creature token. Put a +1/+1 counter on it for each different mana value among nonland cards you own in exile with study counters on them. +mana={2}{G} +type=Legendary Creature +subtype=Elf Druid +power=2 +toughness=2 +[/card] +[card] name=Kill Switch auto={2}{T}:all(other artifact|battlefield) transforms((,newability[tap(noevent)],newability[@each my untap:if type(Kill Switch[tapped]|battlefield)~morethan~0 then tap(noevent)])) forever text={2}, {T}: Tap all other artifacts. They don't untap during their controllers' untap steps for as long as Kill Switch remains tapped. @@ -29548,6 +30528,17 @@ mana={3} type=Artifact [/card] [card] +name=Killian, Ink Duelist +abilities=lifelink,menace +auto=@targeted(creature|mybattlefield) from(*[instant;sorcery]|myzones):name(Spells cost 2 less) add{C}{C} +text=Lifelink -- Menace (This creature can't be blocked except by two or more creatures.) -- Spells you cast that target a creature cost 2 less to cast. +mana={W}{B} +type=Legendary Creature +subtype=Human Warlock +power=2 +toughness=2 +[/card] +[card] name=Killing Wave auto=all (creature) transforms((,newability[upcost[{L:X}] sacrifice])) text=For each creature, its controller sacrifices it unless they pay X life. @@ -31252,6 +32243,16 @@ power=3 toughness=3 [/card] [card] +name=Leonin Lightscribe +auto=@movedto(*[instant;sorcery]|mystack):all(creature|mybattlefield) transforms((,newability[1/1])) ueot +text=Magecraft — Whenever you cast or copy an instant or sorcery spell, creatures you control get +1/+1 until end of turn. +mana={1}{W} +type=Creature +subtype=Cat Cleric +power=2 +toughness=2 +[/card] +[card] name=Leonin Vanguard auto=@each my combatbegins:aslongas(creature|myBattlefield) 1/1 ueot && life:1 >2 text=At the beginning of combat on your turn, if you control three or more creatures, Leonin Vanguard gets +1/+1 until end of turn and you gain 1 life. @@ -31326,6 +32327,18 @@ mana={2}{B}{B} type=Enchantment [/card] [card] +name=Letter of Acceptance +auto={T}:add{W} +auto={T}:add{G} +auto={T}:add{U} +auto={T}:add{B} +auto={T}:add{R} +auto={2}{T}{S}:draw:1 controller +text={T}: Add one mana of any color. -- {2}, {T}, Sacrifice Letter of Acceptance: Draw a card. +mana={3} +type=Artifact +[/card] +[card] name=Ley Weaver abilities=partner auto=may moveto(myhand) notatarget(lore weaver|mylibrary) @@ -31338,6 +32351,13 @@ power=2 toughness=2 [/card] [card] +name=Leyline Invocation +auto=token(Fractal,Creature Fractal,0/0,green,blue) and!( counter(1/1,type:land:mybattlefield) )! +text=Create a 0/0 green and blue Fractal creature token. Put X +1/+1 counters on it, where X is the number of lands you control. +mana={5}{G} +type=Sorcery +[/card] +[card] name=Leyline Prowler abilities=deathtouch,lifelink auto={T}:Add{W} @@ -31863,6 +32883,16 @@ mana={4}{R}{R} type=Sorcery [/card] [card] +name=Lisette, Dean of the Root +auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection;-Honor Troll]):pay({1}) name(Put 1/1 counter) all(creature|mybattlefield) tansforms((,newability[counter(1/1)],newability[trample])) ueot +text=Whenever you gain life, you may pay 1 . If you do, put a +1/+1 counter on each creature you control and those creatures gain trample until end of turn. +mana={2}{G}{G} +type=Legendary Creature +subtype=Human Druid +power=4 +toughness=4 +[/card] +[card] name=Lithoform Blight target=land auto=draw:1 controller @@ -32257,6 +33287,16 @@ power=2 toughness=2 [/card] [card] +name=Lorehold Campus +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot +auto=tap(noevent) +auto={4}{T}:name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend +auto={T}:add{R} +auto={T}:add{W} +text=Lorehold Campus enters the battlefield tapped. -- {T}: Add {R} or {W}. -- {4}, {T}: Scry 1. +type=Land +[/card] +[card] name=Lorehold Command auto=choice name(Create Spirit and give 1/0 to creatures) token(Spirit,Creature Spirit,3/2,white,red) && all(creature|mybattlefield) transforms((,newability[1/0],newability[haste],newability[indestructible])) ueot auto=choice name(Create Spirit and deal 3 damage) token(Spirit,Creature Spirit,3/2,white,red) && target(player,creature,planeswalker) damage:3 && ability$!name(Target player gains 3 life) name(Target player gains 3 life) life:3 target(player)!$ controller @@ -32745,6 +33785,36 @@ power=7 toughness=7 [/card] [card] +name=Maelstrom Muse +abilities=flying +auto=@combat(attacking) source(this) restriction{compare(power)~equalto~1}:name(Reduce cost of 1) transforms((,newability[lord(*[instant;sorcery]|mycastingzone) changecost(colorless:-1)])) ueot +auto=@combat(attacking) source(this) restriction{compare(power)~equalto~2}:name(Reduce cost of 2) transforms((,newability[lord(*[instant;sorcery]|mycastingzone) changecost(colorless:-2)])) ueot +auto=@combat(attacking) source(this) restriction{compare(power)~equalto~3}:name(Reduce cost of 3) transforms((,newability[lord(*[instant;sorcery]|mycastingzone) changecost(colorless:-3)])) ueot +auto=@combat(attacking) source(this) restriction{compare(power)~equalto~4}:name(Reduce cost of 4) transforms((,newability[lord(*[instant;sorcery]|mycastingzone) changecost(colorless:-4)])) ueot +auto=@combat(attacking) source(this) restriction{compare(power)~equalto~5}:name(Reduce cost of 5) transforms((,newability[lord(*[instant;sorcery]|mycastingzone) changecost(colorless:-5)])) ueot +auto=@combat(attacking) source(this) restriction{compare(power)~equalto~6}:name(Reduce cost of 6) transforms((,newability[lord(*[instant;sorcery]|mycastingzone) changecost(colorless:-6)])) ueot +auto=@combat(attacking) source(this) restriction{compare(power)~equalto~7}:name(Reduce cost of 7) transforms((,newability[lord(*[instant;sorcery]|mycastingzone) changecost(colorless:-7)])) ueot +auto=@combat(attacking) source(this) restriction{compare(power)~equalto~8}:name(Reduce cost of 8) transforms((,newability[lord(*[instant;sorcery]|mycastingzone) changecost(colorless:-8)])) ueot +auto=@combat(attacking) source(this) restriction{compare(power)~equalto~9}:name(Reduce cost of 9) transforms((,newability[lord(*[instant;sorcery]|mycastingzone) changecost(colorless:-9)])) ueot +auto=@combat(attacking) source(this) restriction{compare(power)~equalto~10}:name(Reduce cost of 10) transforms((,newability[lord(*[instant;sorcery]|mycastingzone) changecost(colorless:-10)])) ueot +auto=@combat(attacking) source(this) restriction{compare(power)~equalto~11}:name(Reduce cost of 11) transforms((,newability[lord(*[instant;sorcery]|mycastingzone) changecost(colorless:-11)])) ueot +auto=@combat(attacking) source(this) restriction{compare(power)~equalto~12}:name(Reduce cost of 12) transforms((,newability[lord(*[instant;sorcery]|mycastingzone) changecost(colorless:-12)])) ueot +auto=@combat(attacking) source(this) restriction{compare(power)~equalto~13}:name(Reduce cost of 13) transforms((,newability[lord(*[instant;sorcery]|mycastingzone) changecost(colorless:-13)])) ueot +auto=@combat(attacking) source(this) restriction{compare(power)~equalto~14}:name(Reduce cost of 14) transforms((,newability[lord(*[instant;sorcery]|mycastingzone) changecost(colorless:-14)])) ueot +auto=@combat(attacking) source(this) restriction{compare(power)~equalto~15}:name(Reduce cost of 15) transforms((,newability[lord(*[instant;sorcery]|mycastingzone) changecost(colorless:-15)])) ueot +auto=@combat(attacking) source(this) restriction{compare(power)~equalto~16}:name(Reduce cost of 16) transforms((,newability[lord(*[instant;sorcery]|mycastingzone) changecost(colorless:-16)])) ueot +auto=@combat(attacking) source(this) restriction{compare(power)~equalto~17}:name(Reduce cost of 17) transforms((,newability[lord(*[instant;sorcery]|mycastingzone) changecost(colorless:-17)])) ueot +auto=@combat(attacking) source(this) restriction{compare(power)~equalto~18}:name(Reduce cost of 18) transforms((,newability[lord(*[instant;sorcery]|mycastingzone) changecost(colorless:-18)])) ueot +auto=@combat(attacking) source(this) restriction{compare(power)~equalto~19}:name(Reduce cost of 19) transforms((,newability[lord(*[instant;sorcery]|mycastingzone) changecost(colorless:-19)])) ueot +auto=@combat(attacking) source(this) restriction{compare(power)~morethan~19}:name(Reduce cost of 20) transforms((,newability[lord(*[instant;sorcery]|mycastingzone) changecost(colorless:-20)])) ueot +text=Flying -- Whenever Maelstrom Muse attacks, the next instant or sorcery spell you cast this turn costs {X} less to cast, where X is Maelstrom Muse's power as this ability resolves. +mana={1}{U}{UR}{R} +type=Creature +subtype=Djinn Wizard +power=2 +toughness=4 +[/card] +[card] name=Magda, Brazen Outlaw auto=lord(dwarf|mybattlefield) 1/0 auto=@tapped(dwarf|mybattlefield):token(Treasure Sur) @@ -32757,6 +33827,18 @@ power=2 toughness=1 [/card] [card] +name=Mage Duel +target=creature|myBattlefield +other={G} name(Cast 2 less) +otherrestriction=thisturn(*[instant;sorcery]|mystack)~morethan~0 +restriction=thisturn(*[instant;sorcery]|mystack)~equalto~0 +auto=1/2 ueot +auto=transforms((,newability[target(creature|opponentbattlefield) dynamicability])) ueot +text=This spell costs {2} less to cast if you've cast another instant or sorcery spell this turn. -- Target creature you control gets +1/+2 until end of turn. Then it fights target creature you don't control. (Each deals damage equal to its power to the other.) +mana={2}{G} +type=Sorcery +[/card] +[card] name=Mage Hunter auto=@movedto(*[instant;sorcery]|opponentstack):life:-1 opponent text=Whenever an opponent casts or copies an instant or sorcery spell, they lose 1 life. @@ -32786,6 +33868,15 @@ power=5 toughness=4 [/card] [card] +name=Magma Opus +auto=name(Tap 2 permanents) target(<2>*|battlefield) tap +auto=thisforeach(variable{4}) ability$!name(Deal 1 damage) name(Deal 1 damage) target(player,creature,planeswalker) damage:1!$ controller +auto=token(Elemental,Creature Elemental,4/4,blue,red) && draw:2 controller +text=Magma Opus deals 4 damage divided as you choose among any number of targets. Tap two target permanents. Create a 4/4 blue and red Elemental creature token. Draw two cards. -- {UR}{UR}, Discard Magma Opus: Create a Treasure token. +mana={6}{U}{R} +type=Instant +[/card] +[card] name=Magmaroth auto=@movedTo(*[-creature]|mystack):counter(-1/-1,-1) auto=@each my upkeep:counter(-1/-1,1) @@ -33295,7 +34386,7 @@ subtype=Equipment [/card] [card] name=Marauding Blight-Priest -auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection]):life:-1 opponent +auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection;-Honor Troll]):life:-1 opponent text=Whenever you gain life, each opponent loses 1 life. mana={2}{B} type=Creature @@ -33666,6 +34757,17 @@ power=4 toughness=4 [/card] [card] +name=Master Symmetrist +abilities=reach +auto=@combat(attacking) source(creature[power=toughness]|mybattlefield):name(Gain trample) all(trigger[to]) transforms((,newability[trample])) ueot +text=Reach -- Whenever a creature you control with power equal to its toughness attacks, it gains trample until end of turn. +mana={2}{G}{G} +type=Creature +subtype=Rhino Druid +power=4 +toughness=4 +[/card] +[card] name=Master Warcraft restriction=before attackers auto=may target(creature|battlefield) mustattack && all(other creature) cantattack ueot @@ -33764,6 +34866,19 @@ mana={1}{B} type=Instant [/card] [card] +name=Mavinda, Students' Advocate +abilities=flying +auto={0} restriction{compare(variable{hascntadvocateeffect)~equalto~0}:name(Cast spell that doesn't target your creatures) target(*[instant;sorcery]|mygraveyard) transforms((,newability[canplayfromgraveyard],newability[gainedexiledeath],newability[changecost(colorless:8) forcedalive])) ueot && all(this) counter(0/0,1,AdvocateEffect) +auto={0} restriction{compare(variable{hascntadvocateeffect)~equalto~0}:name(Cast spell that target your creatures) target(*[instant;sorcery]|mygraveyard) transforms((,newability[canplayfromgraveyard],newability[gainedexiledeath])) ueot && all(this) counter(0/0,1,AdvocateEffect) +auto=@each end:removeallcounters(0/0,1,AdvocateEffect) +text=Flying -- {0}: You may cast target instant or sorcery card from your graveyard this turn. If that spell doesn't target a creature you control, it costs 8 more to cast this way. If that spell would be put into your graveyard, exile it instead. Activate only once each turn. (You still pay the spell's costs. Timing rules for the spell still apply.) +mana={2}{W} +type=Legendary Creature +subtype=Bird Advisor +power=2 +toughness=3 +[/card] +[card] name=Mavren Fein, Dusk Apostle auto=@combat(attacking) source(vampire[-token]|mybattlefield):token(Vampire,creature Vampire,1/1,white,lifelink) text=Whenever one or more nontoken Vampires you control attack, create a 1/1 white Vampire creature token with lifelink. @@ -33926,6 +35041,15 @@ mana={2}{B} type=Sorcery [/card] [card] +name=Mentor's Guidance +aicode=activate transforms((,newability[draw:1 controller])) oneshot +auto=name(Scry 1) scry:1 scrycore delayed draw:1 controller scrycoreend scryend +auto=if type(*[planeswalker;cleric;druid;shaman;warlock;wizard]|mybattlefield)~morethan~0 then name(Scry 1) name(Scry 1) scry:1 scrycore delayed draw:1 controller scrycoreend scryend +text=When you cast this spell, copy it if you control a planeswalker, Cleric, Druid, Shaman, Warlock, or Wizard. -- Scry 1, then draw a card. +mana={2}{U} +type=Sorcery +[/card] +[card] name=Menagerie Liberator abilities=trample auto=@combat(attacking) source(this):1/1 ueot @@ -34032,6 +35156,19 @@ power=4 toughness=2 [/card] [card] +name=Mercurial Transformation +target=*[-land]|battlefield +other={1}{U} name(Choose octopus) +auto=ifnot paid(alternative) then ueot loseabilities +auto=ifnot paid(alternative) then ueot transforms((Creature Frog,blue,setpower=1,settoughness=1)) +auto=if paid(alternative) then ueot loseabilities +auto=if paid(alternative) then ueot transforms((Creature Octopus,blue,setpower=4,settoughness=4)) +text=Until end of turn, target nonland permanent loses all abilities and becomes your choice of a blue Frog creature with base power and toughness 1/1 or a blue Octopus creature with base power and toughness 4/4. +mana={1}{U} +type=Sorcery +subtype=Lesson +[/card] +[card] name=Merfolk Branchwalker aicode=activate transforms((,newability[explores],newability[if type(land[zpos=1]|mylibrary)~lessthan~1 then all(this) counter(1/1) else all(land[zpos=1]|mylibrary) moveto(myhand)])) oneshot auto=name(Explores) reveal:1 optionone if type(land|reveal)~lessthan~1 then transforms((,newability[counter(1/1)])) forever optiononeend optiontwo if type(land|reveal)~morethan~0 then name(move to Hand) target(<1>*|reveal) moveto(myHand) else transforms((,newability[Choice name(back to library) target(<1>*|reveal) moveto(mylibrary)],newability[Choice name(put into Graveyard) target(<1>*|reveal) moveto(myGraveyard)])) oneshot optiontwoend afterrevealed explores afterrevealedend revealend @@ -34307,6 +35444,21 @@ power=3 toughness=4 [/card] [card] +name=Mila, Crafty Companion +other={4}{R}{R} name(Lukka, Wayward Bonder) +otherrestriction=can play planeswalker +autostack=if paid(alternative) then name(Lukka, Wayward Bonder) name(Lukka, Wayward Bonder) flip(Lukka, Wayward Bonder) forcetype(Legendary Planeswalker) +auto=if paid(alternative) then counter(0/0,5,Loyalty) +auto=@each blockers restriction{compare(isflipped)~equalto~0,type(creature[attacking]|opponentbattlefield)~morethan~0}:may name(Opponent attacked planeswalker) all(*[planeswalker]|mybattlefield) counter(0/0,1,Loyalty) +auto=@targeted(*|mybattlefield) from(*|opponentzones) restriction{compare(isflipped)~equalto~0}:may name(Draw a card) draw:1 controller +text=Whenever an opponent attacks one or more planeswalkers you control, put a loyalty counter on each planeswalker you control. -- Whenever a permanent you control becomes the target of a spell or ability an opponent controls, you may draw a card. +mana={1}{W}{W} +type=Legendary Creature +subtype=Fox +power=2 +toughness=3 +[/card] +[card] name=Militant Angel abilities=flying, lifelink auto=if (this[attacking]|mybattlefield)~morethan~0 then token(Knight,creature Knight,2/2,white,vigilance) @@ -35233,6 +36385,19 @@ power=0 toughness=0 [/card] [card] +name=Multiple Choice +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot +auto=this(X=1) name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend +auto=this(X=2) target(player) ability$!name(Return creature to hand) name(Return creature to hand) target(creature|mybattlefield) moveto(ownerhand)!$ targetedplayer +auto=this(X=3) token(Elemental,Creature Elemental,4/4,blue,red) +auto=this(X>=4) name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend +auto=this(X>=4) target(player) ability$!name(Return creature to hand) name(Return creature to hand) target(creature|mybattlefield) moveto(ownerhand)!$ targetedplayer +auto=this(X>=4) token(Elemental,Creature Elemental,4/4,blue,red) +text=If X is 1, scry 1, then draw a card. -- If X is 2, you may choose a player. They return a creature they control to its owner's hand. -- If X is 3, create a 4/4 blue and red Elemental creature token. -- If X is 4 or more, do all of the above. +mana={X}{U} +type=Sorcery +[/card] +[card] name=Mummy Paramount auto=@movedto(other Zombie|battlefield):1/1 text=Whenever another Zombie enters the battlefield under your control, Mummy Paramount gets +1/+1 until end of turn. @@ -35758,6 +36923,17 @@ power=1 toughness=1 [/card] [card] +name=Nassari, Dean of Expression +auto=@each my upkeep:name(Exile top card) all(*[zpos=1]|opponentlibrary) moveto(myexile) and!( if cantargetcard(*[land]|*) then moveto(ownerexile) else transforms((,newability[canplayfromexile],newability[anytypeofmana],newability[phaseaction[endofturn once checkex] moveTo(ownerexile)])) ueot )! +auto=@movedto(*|mystack) from(myexile):counter(1/1) +text=At the beginning of your upkeep, exile the top card of each opponent's library. Until end of turn, you may cast spells from among those exiled cards, and you may spend mana as though it were mana of any color to cast those spells. -- Whenever you cast a spell from exile, put a +1/+1 counter on Nassari, Dean of Expression. +mana={3}{R}{R} +type=Legendary Creature +subtype=Efreet Shaman +power=4 +toughness=4 +[/card] +[card] name=Natural Reclamation target=enchantment,artifact auto=destroy @@ -35876,6 +37052,14 @@ power=2 toughness=2 [/card] [card] +name=Necroblossom Snarl +auto=if type(*[swamp;forest]|myhand)~equalto~0 then tap(noevent) +auto={T}:add{B} +auto={T}:add{G} +text=As Necroblossom Snarl enters the battlefield, you may reveal a Swamp or Forest card from your hand. If you don't, Necroblossom Snarl enters the battlefield tapped. -- {T}: Add {B} or {G}. +type=Land +[/card] +[card] name=Necrologia restriction=myturnonly auto=if compare(lifetotal)~morethan~0 then choice name(Pay 1 Life) life:-1 controller && draw:1 controller @@ -35986,6 +37170,16 @@ mana={B} type=Instant [/card] [card] +name=Needlethorn Drake +abilities=flying,deathtouch +text=Flying, deathtouch +mana={G}{U} +type=Creature +subtype=Drake +power=1 +toughness=1 +[/card] +[card] name=Needle Drop auto=draw:1 controller auto=damage:1 target(creature[damaged],player) @@ -37431,6 +38625,18 @@ mana={2}{R}{W}{B} type=Enchantment [/card] [card] +name=Oggyar Battle-Seer +abilities=haste +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot +auto={T}:scry:1 scrycore delayed dontshow donothing scrycoreend scryend +text=Haste -- {T}: Scry 1. +mana={3}{U}{R} +type=Creature +subtype=Ogre Shaman +power=3 +toughness=4 +[/card] +[card] name=Ogre Errant auto=@combat(attacking) source(this):target(knight[attacking]) menace ueot text=Whenever Ogre Errant attacks, another target attacking Knight gains menace until end of turn. (It can't be blocked except by two or more creatures.) @@ -37592,7 +38798,7 @@ toughness=4 [card] name=Oloro, Ageless Ascetic auto=@each my upkeep:life:2 controller -auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection]):pay({1}) draw:1 controller && life:-1 opponent +auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection;-Honor Troll]):pay({1}) draw:1 controller && life:-1 opponent autocommandzone=@each my upkeep:life:2 controller text=At the beginning of your upkeep, you gain 2 life. -- Whenever you gain life, you may pay {1}. If you do, draw a card and each opponent loses 1 life. -- At the beginning of your upkeep, if Oloro, Ageless Ascetic is in the command zone, you gain 2 life. mana={3}{W}{U}{B} @@ -38528,6 +39734,18 @@ mana={4}{U}{U}{U} type=Sorcery [/card] [card] +name=Overgrown Arch +abilities=defender +auto={T}:life:1 controller +auto={2}{S}:name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot +text=Defender -- {T}: You gain 1 life. -- {2}, Sacrifice Overgrown Arch: Learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) +mana={1}{G} +type=Creature +subtype=Plant Wall +power=0 +toughness=4 +[/card] +[card] name=Overgrown Armasaur auto=@damaged(this):create(saproling:creature saproling:1/1:green:) text=Enrage — Whenever Overgrown Armasaur is dealt damage, create a 1/1 green Saproling creature token. @@ -38591,6 +39809,17 @@ type=Enchantment subtype=Aura Curse [/card] [card] +name=Owlin Shieldmage +abilities=flying +auto=@targeted(this|myBattlefield) from(*[instant;sorcery]|opponentzones):choice name(This spell costs 3 life more) name(This spell costs 3 life more) target(*[instant;sorcery]|opponentzones) transforms((,newability[pay[[{L:3}]] name(pay 3 life) donothing?fizzle])) oneshot +text=Flying -- Ward—Pay 3 life. (Whenever this creature becomes the target of a spell or ability an opponent controls, counter it unless that player pays 3 life.) +mana={3}{W}{B} +type=Creature +subtype=Bird Warlock +power=3 +toughness=3 +[/card] +[card] name=Ox of Agonas auto=reject all(*|myhand) && draw:3 controller auto=if paid(retrace) then counter(1/1,1) @@ -39335,6 +40564,28 @@ mana={X}{X}{G} type=Sorcery [/card] [card] +name=Pest Summoning +auto=token(Pest,Creature Pest,1/1,green,blue) and!( transforms((,newability[@movedto(this|mygraveyard) from(battlefield):life:1 controller])) forever )! +auto=token(Pest,Creature Pest,1/1,green,blue) and!( transforms((,newability[@movedto(this|mygraveyard) from(battlefield):life:1 controller])) forever )! +text=Create two 1/1 black and green Pest creature tokens with "When this creature dies, you gain 1 life." +mana={1}{BG}{BG} +type=Sorcery +subtype=Lesson +[/card] +[card] +name=Pestilent Cauldron +other={3}{G}{G} name(Restorative Burst) +otherrestriction=can play sorcery +autostack=if paid(alternative) then transforms((,newability[moveto(myexile)],newability[activate castcard(named!:restorative burst:!)])) forever +auto={T}{D(*|myhand)}:name(Create Pest) token(Pest,Creature Pest,1/1,green,blue) and!( transforms((,newability[@movedto(this|mygraveyard) from(battlefield):life:1 controller])) forever )! +auto={1}{T}:deplete:lifegain opponent +auto={4}{T} restriction{type(*|mygraveyard)~morethan~3}:name(Exile from your graveyard) transforms((,newability[draw:1 controller],newability[name(Exile from your graveyard) target(<4>*|mygraveyard) moveto(exile)])) oneshot +auto={4}{T} restriction{type(*|opponentgraveyard)~morethan~3}:name(Exile from opponent's graveyard) transforms((,newability[draw:1 controller],newability[name(Exile from opponent's graveyard) target(<4>*|opponentgraveyard) moveto(exile)])) oneshot +text={T}, Discard a card: Create a 1/1 black and green Pest creature token with "When this creature dies, you gain 1 life." -- {1}, {T}: Each opponent mills cards equal to the amount of life you gained this turn. -- {4}, {T}: Exile four target cards from a single graveyard. Draw a card. // Return up to two target creature, land, and/or planeswalker cards from your graveyard to your hand. Each player gains 4 life. Exile Restorative Burst. +mana={2}{B} +type=Artifact +[/card] +[card] name=Pestilent Haze name=choice name(Creatures gets -2/-2) all(creature|battlefield) -2/-2 ueot name=choice name(Remove Loyalty counter) counter(0/0,-2,Loyalty) all(planeswalker|battlefield) @@ -39666,6 +40917,17 @@ power=1 toughness=1 [/card] [card] +name=Pilgrim of the Ages +auto=may name(Search basic plains) target(plains[basic]|mybattlefield) moveto(myhand) and!( shuffle )! +autograveyard={6}:name(Return to hand) moveto(myhand) +text=When Pilgrim of the Ages enters the battlefield, you may search your library for a basic Plains card, reveal it, put it into your hand, then shuffle. -- {6}: Return Pilgrim of the Ages from your graveyard to your hand. +mana={2}{W} +type=Creature +subtype=Spirit +power=2 +toughness=1 +[/card] +[card] name=Pillar of Origins auto=chooseatype transforms((,newability[this(variable{type:chosentype:myrestrictedcastingzone}>0) {T}:add{W}],newability[this(variable{type:chosentype:myrestrictedcastingzone}>0) {T}:add{U}],newability[this(variable{type:chosentype:myrestrictedcastingzone}>0) {T}:add{R}],newability[this(variable{type:chosentype:myrestrictedcastingzone}>0) {T}:add{G}],newability[this(variable{type:chosentype:myrestrictedcastingzone}>0) {T}:add{B}])) chooseend text=As Pillar of Origins enters the battlefield, choose a creature type. -- {T}: Add one mana of any color to your mana pool. Spend this mana only to cast a creature spell of the chosen type. @@ -39683,6 +40945,17 @@ text={T}: Add one mana of any color to your mana pool. Spend this mana only to c type=Land [/card] [card] +name=Pillardrop Rescuer +abilities=flying +auto=name(Return creature) target(creature[manacost<=3]|mygraveyard) moveto(myhand) +text=Flying -- When Pillardrop Rescuer enters the battlefield, return target creature card with mana value 3 or less from your graveyard to your hand. +mana={4}{W} +type=Creature +subtype=Spirit Cleric +power=2 +toughness=2 +[/card] +[card] name=Pillardrop Warden abilities=reach auto={2}{T}{S}:name(Return instant or sorcery) target(*[instant;sorcery]|mygraveyard) moveto(myhand) asSorcery @@ -39931,6 +41204,21 @@ mana={5}{G}{G} type=Sorcery [/card] [card] +name=Plargg, Dean of Chaos +other={2}{W} name(Augusta, Dean of Order) +otherrestriction=can play creature +autostack=if paid(alternative) then name(Augusta, Dean of Order) name(Augusta, Dean of Order) flip(Augusta, Dean of Order) forcetype(Legendary Creature) +aicode=activate transforms((,newability[all(*[zpos<=findfirsttypenonland]|mylibrary) moveto(myreveal) and!( bottomoflibrary )!])) oneshot +auto=this(variable{isflipped}<1) {4}{R}{T}:name(Reveal cards) Reveal:1 revealzone(mylibrary) revealuntil(*[-land;-legendary;manacost<=3]|mylibrary) optionone choice name(Choose card) target(*[-land;-legendary;manacost<=3]|reveal) bottomoflibrary and!( becomes(tobecast) ueot)! optiononeend optiontwo choice name(put on bottom) all(*|reveal) bottomoflibrary optiontwoend afterrevealed may name(Cast chosen card) all(tobecast|mylibrary) activate castcard(normal) afterrevealedend revealend +auto=this(variable{isflipped}<1) {T}{D(*|myhand)}:name(Draw card) draw:1 controller +text={T}, Discard a card: Draw a card. -- {4}{R}, {T}: Reveal cards from the top of your library until you reveal a nonlegendary, nonland card with mana value 3 or less. You may cast that card without paying its mana cost. Put all revealed cards not cast this way on the bottom of your library in a random order. +mana={1}{R} +type=Legendary Creature +subtype=Orc Shaman +power=2 +toughness=2 +[/card] +[card] name=Plated Pegasus abilities=flash,flying auto=all(creature|battlefield) absorb @@ -39986,6 +41274,25 @@ type=Instant subtype=Arcane [/card] [card] +name=Plumb the Forbidden +target=creature|mybattlefield +auto=transforms((,newability[sacrifice],newability[draw:1 controller],newability[life:-1 controller])) oneshot +text=As an additional cost to cast this spell, you may sacrifice one or more creatures. When you do, copy this spell for each creature sacrificed this way. -- You draw a card and you lose 1 life. +mana={1}{B} +type=Instant +[/card] +[card] +name=Poet's Quill +auto={1}{B}:equip +auto=name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot +auto=teach(creature) 3/1 +auto=teach(creature) lifelink +text=When Poet's Quill enters the battlefield, learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) -- Equipped creature gets +1/+1 and has lifelink. -- Equip {1}{B} +mana={1}{B} +type=Artifact +subtype=Equipment +[/card] +[card] name=Poison the Cup target=creature abilities=foretell @@ -40120,6 +41427,14 @@ power=3 toughness=4 [/card] [card] +name=Pop Quiz +auto=draw:1 controller +auto=name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot +text=Draw a card. -- Learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) +mana={2}{U} +type=Instant +[/card] +[card] name=Porcuparrot abilities=mutate otherrestriction=type(creature[-human]|mybattlefield)~morethan~0 @@ -40280,6 +41595,14 @@ mana={B}{B}{B} type=Sorcery [/card] [card] +name=Practical Research +auto=draw:4 +auto=transforms((,newability[choice name(discard 2 cards) reject target(<2>*|myhand)],newability[aslongas(*[instant;sorcery]|myHand) choice name(discard instant or sorcery) reject target(*[instant;sorcery]|myhand)])) +text=Draw four cards. Then discard two cards unless you discard an instant or sorcery card. +mana={3}{U}{R} +type=Instant +[/card] +[card] name=Practiced Tactics target=creature[attacking;blocking] auto=damage:twicecalculateparty @@ -40496,7 +41819,7 @@ type=Artifact [/card] [card] name=Primal Beyond -auto=aslongas(Elemental|myhand) tap(noevent) <1 oneshot +auto=if type(*[elemental]|myhand)~equalto~0 then tap(noevent) auto={T}:add{1} auto=this(variable{type:elemental:myrestrictedcastingzone}>0) {T}:ability$!choice add{W} _ choice add{G} _ choice add{R} _choice add{U} _choice add{B}!$ controller auto=this(variable{type:elemental:mybattlefield}>0) {T}:ability$!choice add{W} _ choice add{G} _ choice add{R} _choice add{U} _choice add{B}!$ controller @@ -40587,6 +41910,57 @@ text={T}, Pay 1 life, Sacrifice Prismatic Vista: Search your library for a basic type=Land [/card] [card] +name=Prismari Apprentice +auto=@movedto(*[instant;sorcery]|mystack):unblockable ueot +auto=@movedto(*[instant;sorcery;manacost>=5]|mystack):counter(1/1) +text=Magecraft — Whenever you cast or copy an instant or sorcery spell, Prismari Apprentice can't be blocked this turn. If that spell has mana value 5 or greater, put a +1/+1 counter on Prismari Apprentice. +mana={U}{R} +type=Creature +subtype=Human Shaman +power=2 +toughness=2 +[/card] +[card] +name=Prismari Campus +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot +auto=tap(noevent) +auto={4}{T}:name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend +auto={T}:add{R} +auto={T}:add{U} +text=Prismari Campus enters the battlefield tapped. -- {T}: Add {U} or {R}. -- {4}, {T}: Scry 1. +type=Land +[/card] +[card] +name=Prismari Command +auto=choice name(Deals 2 damage and you draw) target(player,creature,planeswalker) damage:2 && ability$!draw:2 _ choice target(<2>*|myhand) reject!$ controller +auto=choice name(Deals 2 damage and opponent draws) target(player,creature,planeswalker) damage:2 && ability$!draw:2 _ choice target(<2>*|myhand) reject!$ opponent +auto=choice name(Deals 2 damage and you create treasure) target(player,creature,planeswalker) damage:2 && Token(Treasure Sur) +auto=choice name(Deals 2 damage and opponent creates treasure) target(player,creature,planeswalker) damage:2 && token(Treasure Sur) opponent +auto=choice name(Deals 2 damage and destroy artifact) target(player,creature,planeswalker) damage:2 && ability$!name(Destroy artifact) name(Destroy artifact) target(artifact) destroy!$ controller +auto=choice name(You draw and you create treasure) ability$!draw:2 _ choice target(<2>*|myhand) reject!$ controller && Token(Treasure Sur) +auto=choice name(You draw and and opponent creates treasure) ability$!draw:2 _ choice target(<2>*|myhand) reject!$ controller && token(Treasure Sur) opponent +auto=choice name(opponent draws and you create treasure) ability$!draw:2 _ choice target(<2>*|myhand) reject!$ opponent && Token(Treasure Sur) +auto=choice name(opponent draws and and opponent creates treasure) ability$!draw:2 _ choice target(<2>*|myhand) reject!$ opponent && token(Treasure Sur) opponent +auto=choice name(You draw and destroy artifact) ability$!draw:2 _ choice target(<2>*|myhand) reject!$ controller && target(artifact) destroy +auto=choice name(opponent draws and destroy artifact) ability$!draw:2 _ choice target(<2>*|myhand) reject!$ opponent && target(artifact) destroy +auto=choice name(You create treasure and destroy artifact) Token(Treasure Sur) && target(artifact) destroy +auto=choice name(Opponent creates treasure and destroy artifact) token(Treasure Sur) opponent && target(artifact) destroy +text=Choose two — -- • Prismari Command deals 2 damage to any target. -- • Target player draws two cards, then discards two cards. -- • Target player creates a Treasure token. -- • Destroy target artifact. +mana={1}{U}{R} +type=Instant +[/card] +[card] +name=Prismari Pledgemage +abilities=defender +auto=@movedto(*[instant;sorcery]|mystack):transforms((,newability[canattack])) ueot +text=Defender -- Magecraft — Whenever you cast or copy an instant or sorcery spell, Prismari Pledgemage can attack this turn as though it didn't have defender. +mana={UR}{UR} +type=Creature +subtype=Orc Wizard +power=3 +toughness=3 +[/card] +[card] name=Prismite auto={2}:Add{W} auto={2}:Add{U} @@ -40658,6 +42032,35 @@ mana={6}{B}{B}{B} type=Sorcery [/card] [card] +name=Professor of Symbology +auto=name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot +text=When Professor of Symbology enters the battlefield, learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) +mana={1}{W} +type=Creature +subtype=Kor Cleric +power=2 +toughness=1 +[/card] +[card] +name=Professor of Zoomancy +auto=token(Pest,Creature Pest,1/1,green,blue) and!( transforms((,newability[@movedto(this|mygraveyard) from(battlefield):life:1 controller])) forever )! +text=When Professor of Zoomancy enters the battlefield, create a 1/1 black and green Pest creature token with "When this creature dies, you gain 1 life." +mana={3}{G} +type=Creature +subtype=Bear Druid +power=4 +toughness=3 +[/card] +[card] +name=Professor's Warning +target=creature +auto=choice name(Put 1/1 counter) counter(1/1) +auto=choice name(Gains indestructible) transforms((,newability[indestructible])) ueot +text=Choose one — -- • Put a +1/+1 counter on target creature. -- • Target creature gains indestructible until end of turn. (Damage and effects that say "destroy" don't destroy it.) +mana={B} +type=Instant +[/card] +[card] name=Profit // Loss abilities=hasnokicker other={2}{B} name(Loss) @@ -40695,6 +42098,16 @@ mana={2}{W} type=Enchantment [/card] [card] +name=Promising Duskmage +auto=_DIES_this(counter{1/1}>=1) draw:1 controller +text=When Promising Duskmage dies, if it had a +1/+1 counter on it, draw a card. +mana={2}{B} +type=Creature +subtype=Human Warlock +power=2 +toughness=3 +[/card] +[card] name=Prophet of the Peak aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot auto=scry:2 scrycore delayed dontshow donothing scrycoreend scryend @@ -41268,6 +42681,64 @@ power=4 toughness=4 [/card] [card] +name=Quandrix Apprentice +aicode=activate transforms((,newability[target(land[zpos<=3]|mylibrary) moveto(myhand) and!( all(*[zpos<=3]|mylibrary) moveto(myreveal) and!( bottomoflibrary )! )!])) oneshot +auto=@movedto(*[instant;sorcery]|mystack):name(Reveal top 3 cards) reveal:3 optionone name(Get a land) target(*[land]|reveal) moveto(myhand) optiononeend optiontwo name(put on bottom) target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend +text=Magecraft — Whenever you cast or copy an instant or sorcery spell, look at the top three cards of your library. You may reveal a land card from among them and put that card into your hand. Put the rest on the bottom of your library in any order. +mana={G}{U} +type=Creature +subtype=Human Wizard +power=2 +toughness=2 +[/card] +[card] +name=Quandrix Campus +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot +auto=tap(noevent) +auto={4}{T}:name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend +auto={T}:add{G} +auto={T}:add{U} +text=Quandrix Campus enters the battlefield tapped. -- {T}: Add {G} or {U}. -- {4}, {T}: Scry 1. +type=Land +[/card] +[card] +name=Quandrix Command +auto=if type(*[creature;planeswalker]|battlefield)~morethan~0 then if type(*[artifact;enchantment]|stack)~morethan~0 then choice name(Return card and counterspell) name(Return card and counterspell) name(Return card and counterspell) target(*[artifact;enchantment]|stack) transforms((,newability[fizzle])) forever && ability$!name(Return creature or planeswalker) name(Return creature or planeswalker) target(*[creature;planeswalker]|battlefield) moveto(ownerhand)!$ controller +auto=if type(*[creature;planeswalker]|battlefield)~morethan~0 then choice name(Return card and put 1/1 counters) name(Return card and put 1/1 counters) target(*[creature;planeswalker]|battlefield) moveto(ownerhand) && ability$!name(Put two 1/1 counters) name(Put two 1/1 counters) target(creature|battlefield) counter(1/1,2)!$ controller +auto=if type(*[creature;planeswalker]|battlefield)~morethan~0 then choice name(Return card and you shuffle) name(Return card and you shuffle) target(*[creature;planeswalker]|battlefield) moveto(ownerhand) && ability$!name(Shuffle 3 cards) name(Shuffle 3 cards) target(<3>*|mygraveyard) moveto(mylibrary) and!( shuffle )! !$ controller +auto=if type(*[creature;planeswalker]|battlefield)~morethan~0 then choice name(Return card and opponent shuffles) name(Return card and opponent shuffles) target(*[creature;planeswalker]|battlefield) moveto(ownerhand) && ability$!name(Shuffle 3 cards) name(Shuffle 3 cards) target(<3>*|mygraveyard) moveto(mylibrary) and!( shuffle )! !$ opponent +auto=if type(creature|battlefield)~morethan~0 then if type(*[artifact;enchantment]|stack)~morethan~0 then choice name(Counterspell and put 1/1 counters) name(Counterspell and put 1/1 counters) name(Counterspell and put 1/1 counters) target(*[artifact;enchantment]|stack) transforms((,newability[fizzle])) forever && ability$!name(Put two 1/1 counters) name(Put two 1/1 counters) target(creature|battlefield) counter(1/1,2)!$ controller +auto=if type(*[artifact;enchantment]|stack)~morethan~0 then choice name(Counterspell and you shuffle) name(Counterspell and you shuffle) target(*[artifact;enchantment]|stack) transforms((,newability[fizzle])) forever && ability$!name(Shuffle 3 cards) name(Shuffle 3 cards) target(<3>*|mygraveyard) moveto(mylibrary) and!( shuffle )! !$ controller +auto=if type(*[artifact;enchantment]|stack)~morethan~0 then choice name(Counterspell and opponent shuffles) name(Counterspell and opponent shuffles) target(*[artifact;enchantment]|stack) transforms((,newability[fizzle])) forever && ability$!name(Shuffle 3 cards) name(Shuffle 3 cards) target(<3>*|mygraveyard) moveto(mylibrary) and!( shuffle )! !$ opponent +auto=if type(creature|battlefield)~morethan~0 then choice name(Put 1/1 counters and you shuffle) name(Put 1/1 counters and you shuffle) target(creature|battlefield) counter(1/1,2) && ability$!name(Shuffle 3 cards) name(Shuffle 3 cards) target(<3>*|mygraveyard) moveto(mylibrary) and!( shuffle )! !$ controller +auto=if type(creature|battlefield)~morethan~0 then choice name(Put 1/1 counters and opponent shuffles) name(Put 1/1 counters and and opponent shuffles) target(creature|battlefield) counter(1/1,2) && ability$!name(Shuffle 3 cards) name(Shuffle 3 cards) target(<3>*|mygraveyard) moveto(mylibrary) and!( shuffle )! !$ opponent +text=Choose two — -- • Return target creature or planeswalker to its owner's hand. -- • Counter target artifact or enchantment spell. -- • Put two +1/+1 counters on target creature. -- • Target player shuffles up to three target cards from their graveyard into their library. +mana={1}{G}{U} +type=Instant +[/card] +[card] +name=Quandrix Cultivator +auto=if type(forest[basic]|mylibrary)~morethan~0 then choice name(Search basic forest) name(Search basic forest) target(forest[basic]|mylibrary) moveto(mybattlefield) and!( shuffle )! +auto=if type(island[basic]|mylibrary)~morethan~0 then choice name(Search basic island) name(Search basic island) target(island[basic]|mylibrary) moveto(mybattlefield) and!( shuffle )! +auto=choice name(Don't search) donothing +text=When Quandrix Cultivator enters the battlefield, you may search your library for a basic Forest or Island card, put it onto the battlefield, then shuffle. +mana={1}{G}{GU}{U} +type=Creature +subtype=Turtle Druid +power=3 +toughness=4 +[/card] +[card] +name=Quandrix Pledgemage +auto=@movedto(*[instant;sorcery]|mystack):counter(1/1) +text=Magecraft — Whenever you cast or copy an instant or sorcery spell, put a +1/+1 counter on Quandrix Pledgemage. +mana={1}{GU}{GU} +type=Creature +subtype=Merfolk Druid +power=2 +toughness=2 +[/card] +[card] name=Quarry Beetle auto=may moveto(mybattlefield) target(land|mygraveyard) text=When Quarry Beetle enters the battlefield, you may return target land card from your graveyard to the battlefield. @@ -41441,6 +42912,17 @@ mana={1}{U} type=Sorcery [/card] [card] +name=Quintorius, Field Historian +auto=lord(spirit|mybattlefield) 1/0 +auto=@movedto(*|mybattlefield,mystack,myhand,mylibrary,mysideboard,myexile,mycommandzone) from(mygraveyard):name(Create Spirit) token(Spirit,Creature Spirit,3/2,white,red) +text=Spirits you control get +1/+0. -- Whenever one or more cards leave your graveyard, create a 3/2 red and white Spirit creature token. +mana={3}{R}{W} +type=Legendary Creature +subtype=Elephant Cleric +power=2 +toughness=4 +[/card] +[card] name=Quirion Explorer auto=this(variable{olandg}>0) {t}:out{g} auto=this(variable{olandu}>0) {t}:out{u} @@ -41478,6 +42960,20 @@ mana={2}{W} type=Enchantment [/card] [card] +name=Radiant Scrollwielder +auto=@damaged(creature) from(*[instant;sorcery]|myzones):life:thatmuch controller +auto=@damageof(player) from(*[instant;sorcery]|myzones):life:thatmuch controller +auto=@damagefoeof(player) from(*[instant;sorcery]|myzones):life:thatmuch controller +auto=@each my upkeep:name(Exile instant or sorcery) moverandom(*[instant;sorcery]) from(mygraveyard) to(myexile) +auto=@movedto(*[instant;sorcery]|myexile) from(mygraveyard) restriction{myupkeeponly}:name(Can play from exile) all(trigger[to]) transforms((,newability[canplayfromexile],newability[gainedexiledeath])) ueot +text=Instant and sorcery spells you control have lifelink. -- At the beginning of your upkeep, exile an instant or sorcery card at random from your graveyard. You may cast it this turn. If a spell cast this way would be put into your graveyard, exile it instead. +mana={2}{R}{W} +type=Creature +subtype=Dwarf Cleric +power=2 +toughness=4 +[/card] +[card] name=Radiant, Serra Archangel abilities=flying,partner auto={T(other creature[flying]|mybattlefield)}:protection from white ueot @@ -42503,6 +43999,16 @@ mana={R} type=Sorcery [/card] [card] +name=Reckless Amplimancer +auto={4}{G}:p/t ueot +text={4}{G}: Double Reckless Amplimancer's power and toughness until end of turn. +mana={1}{G} +type=Creature +subtype=Elf Druid +power=2 +toughness=2 +[/card] +[card] name=Reckless Crew auto=foreach(vehicle|mybattlefield) token(Dwarf,Creature Dwarf,2/1,red) and!( transforms((,newability[may name(Attach equipment) target(equipment|mybattlefield) transforms((,newability[rehook target(dwarf[token;fresh]|mybattlefield)])) oneshot])) oneshot )! auto=foreach(equipment|mybattlefield) token(Dwarf,Creature Dwarf,2/1,red) and!( transforms((,newability[may name(Attach equipment) target(equipment|mybattlefield) transforms((,newability[rehook target(dwarf[token;fresh]|mybattlefield)])) oneshot])) oneshot )! @@ -42549,6 +44055,18 @@ mana={2}{U}{U} type=Enchantment [/card] [card] +name=Reconstruct History +abilities=exiledeath +auto=ability$!may name(Return artifact) name(Return artifact) target(artifact|mygraveyard) moveto(myhand)!$ controller +auto=ability$!may name(Return enchantment) name(Return enchantment) target(enchantment|mygraveyard) moveto(myhand)!$ controller +auto=ability$!may name(Return instant) name(Return instant) target(instant|mygraveyard) moveto(myhand)!$ controller +auto=ability$!may name(Return sorcery) name(Return sorcery) target(sorcery|mygraveyard) moveto(myhand)!$ controller +auto=ability$!may name(Return planeswalker) name(Return planeswalker) target(planeswalker|mygraveyard) moveto(myhand)!$ controller +text=Return up to one target artifact card, up to one target enchantment card, up to one target instant card, up to one target sorcery card, and up to one target planeswalker card from your graveyard to your hand. -- Exile Reconstruct History. +mana={2}{R}{W} +type=Sorcery +[/card] +[card] name=Recruit the Worthy buyback={3} auto=create(soldier:creature soldier:1/1:white) @@ -42604,6 +44122,15 @@ mana={2}{U} type=Instant [/card] [card] +name=Reduce to Memory +target=*[-land]|battlefield +auto=moveto(ownerexile) and!( transforms((,newability[token(Spirit^Creature Spirit^3/2^red^white)])) oneshot )! +text=Exile target nonland permanent. Its controller creates a 3/2 red and white Spirit creature token. +mana={1}{W}{W} +type=Sorcery +subtype=Lesson +[/card] +[card] name=Reef Worm auto=@movedTo(this|mygraveyard) from(myBattlefield):token(Fish Reef) text=When Reef Worm dies, put a 3/3 blue Fish creature token onto the battlefield with "When this creature dies, put a 6/6 blue Whale creature token onto the battlefield with ‘When this creature dies, put a 9/9 blue Kraken creature token onto the battlefield.'" @@ -42621,6 +44148,16 @@ mana={4}{U} type=Enchantment [/card] [card] +name=Reflective Golem +auto=@targeted(this) from(*[instant;sorcery]|myzones):pay({2}) name(Pay 2 and copy) all(*[instant;sorcery]|mystack) activate castcard(copied) +text=Whenever you cast an instant or sorcery spell that targets only Reflective Golem, you may pay {2}. If you do, copy that spell. You may choose new targets for the copy. +mana={3} +type=Artifact Creature +subtype=Golem +power=2 +toughness=3 +[/card] +[card] name=Refuse // Cooperate target=*|stack auto=damage:manacost @@ -42766,6 +44303,14 @@ mana={2}{U}{R} type=Instant [/card] [card] +name=Reject +target=*[creature;planeswalker]|stack +auto=transforms((,newability[pay [[{3}]] name(pay 3 mana) donothing?fizzleto(exile)])) oneshot +text=Counter target creature or planeswalker spell unless its controller pays {3}. If that spell is countered this way, exile it instead of putting it into its owner's graveyard. +mana={1}{U} +type=Instant +[/card] +[card] name=Rejuvenating Springs auto=tap(noevent) auto={T}:add{G} @@ -42892,6 +44437,16 @@ power=2 toughness=1 [/card] [card] +name=Relic Sloth +abilities=vigilance,menace +text=Vigilance -- Menace (This creature can't be blocked except by two or more creatures.) +mana={3}{R}{W} +type=Creature +subtype=Beast +power=4 +toughness=4 +[/card] +[card] name=Relic Vial auto={2}{T}{S(creature|myBattlefield)}:name(Draw a card) name(Draw a card) draw:1 controller auto=@movedTo(creature|myGraveyard) from(Battlefield) restriction{type(creature[cleric]|myBattlefield)~morethan~0}:life-1 opponent && life:1 controller @@ -43075,6 +44630,14 @@ power=3 toughness=2 [/card] [card] +name=Resculpt +target=artifact,creature +auto=moveto(exile) and!( transforms((,newability[token(Elemental^Creature Elemental^4/4^blue^red)])) oneshot +text=Exile target artifact or creature. Its controller creates a 4/4 blue and red Elemental creature token. +mana={1}{U} +type=Instant +[/card] +[card] name=Research // Development other={3}{U}{R} name(Development) auto=ifnot paid(alternative) then name(Search sideboard) reveal:type:*:mysideboard revealzone(mysideboard) optionone name(choose 4 cards) target(*|reveal) moveto(mylibrary) and!(all(other *|reveal) moveto(ownersideboard))! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownersideboard) and!(all(other *|reveal) moveto(ownersideboard))! optiontwoend afterrevealed shuffle controller afterrevealedend revealend @@ -43190,7 +44753,7 @@ auto=if paid(alternative) then all(creature|mybattlefield) transforms((,newabili auto=if paid(alternative) then nextphasealter(add,combatphaseswithmain,controller,after) asSorcery auto=ifnot paid(alternative) then damage:5 target(creature[attacking;blocking]) text=Response deals 5 damage to target attacking or blocking creature. -- Creatures you control gain first strike and vigilance until end of turn. After this main phase, there is an additional combat phase followed by an additional main phase. -mana={R or W}{R or W} +mana={RW}{RW} type=Instant [/card] [card] @@ -43220,6 +44783,16 @@ mana={B} type=Sorcery [/card] [card] +name=Restorative Burst +auto=name(Return to hand) target(*[creature;land;planeswalker]|mygraveyard) moveto(myhand) +auto=life:4 opponent +auto=life:4 controller +auto=transforms((,newability[moveto(mysideboard) and!( transforms((,newablility[shroud],newability[protection from(*)],newability[cantbetargetof(*)])) forever])) forever +text=Return up to two target creature, land, and/or planeswalker cards from your graveyard to your hand. Each player gains 4 life. Exile Restorative Burst. +mana={3}{G}{G} +type=Sorcery +[/card] +[card] name=Retribution auto=ability$!sacrifice notatarget(creature|mybattlefield)!$ opponent auto=ability$!counter(-1/-1) notatarget(creature|mybattlefield)!$ opponent @@ -43236,6 +44809,17 @@ mana={3} type=Artifact [/card] [card] +name=Retriever Phoenix +abilities=flying,haste +auto=if casted(this) then name(Learn) name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot +text=Flying, haste -- When Retriever Phoenix enters the battlefield, if you cast it, learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) -- As long as Retriever Phoenix is in your graveyard, if you would learn, you may instead return Retriever Phoenix to the battlefield. +mana={3}{R} +type=Creature +subtype=Phoenix +power=2 +toughness=2 +[/card] +[card] name=Retrofitter Foundry auto={3}:untap auto={2}{T}:create(servo artifact:creature servo artifact:1/1:colorless:) @@ -43290,6 +44874,17 @@ mana={X}{W}{W} type=Sorcery [/card] [card] +name=Returned Pastcaller +abilities=flying +auto=name(Return spirit or instant or sorcery) target(*[spirit;instant;sorcery]|mygraveyard) moveto(myhand) +text=Flying -- When Returned Pastcaller enters the battlefield, return target Spirit, instant, or sorcery card from your graveyard to your hand. +mana={3}{R}{RW}{W} +type=Creature +subtype=Spirit Cleric +power=4 +toughness=2 +[/card] +[card] name=Revel in Riches auto=@movedto(creature|opponentgraveyard) from(opponentbattlefield):token(435451) auto=@each my upkeep restriction{type(TreasureArtifactToken|mybattlefield)~morethan~9}:winGame controller @@ -43298,6 +44893,16 @@ mana={4}{B} type=Enchantment [/card] [card] +name=Revel in Silence +abilities=exiledeath +auto=maxCast(*)0 opponent +auto=emblem transforms((,newability[lord(*[planeswalker]|opponentbattlefield) noactivatedability])) ueot +auto=transforms((,newability[moveto(mysideboard) and!( transforms((,newablility[shroud],newability[protection from(*)],newability[cantbetargetof(*)])) forever])) forever +text=Your opponents can't cast spells or activate planeswalkers' loyalty abilities this turn. -- Exile Revel in Silence. +mana={W}{W} +type=Instant +[/card] +[card] name=Revenge of Ravens auto=@combat(attacking) source(creature|opponentBattlefield):life:-1 opponent && life:1 controller text=Whenever a creature attacks you or a planeswalker you control, that creature's controller loses 1 life and you gain 1 life. @@ -43719,7 +45324,7 @@ subtype=Forest Island [card] name=Rimrock Knight // Boulder Rush abilities=cantblock,flash,adventure -restriction=myturnonly +restriction=can play creature other={R} name(Adventure) autostack=if paid(alternative) then name(Creature gets 2/0) target(creature|battlefield) 2/0 ueot autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever @@ -43786,6 +45391,14 @@ power=3 toughness=4 [/card] [card] +name=Rip Apart +auto=choice name(Deals 3 damage) target(creature,planeswalker) damage:3 +auto=choice name(Destroy artifact or enchantment) target(artifact,enchantment) destroy +text=Choose one — -- • Rip Apart deals 3 damage to target creature or planeswalker. -- • Destroy target artifact or enchantment. +mana={R}{W} +type=Sorcery +[/card] +[card] name=Ripjaw Raptor auto=@damaged(this):draw:1 controller text=Enrage — Whenever Ripjaw Raptor is dealt damage, draw a card. @@ -43864,6 +45477,16 @@ mana={4}{B} type=Sorcery [/card] [card] +name=Rise of Extus +target=creature +auto=moveto(exile) +auto=ability$!may name(Exile instant or sorcery) name(Exile instant or sorcery) target(*[instant;sorcery]|graveyard) moveto(exile)!$ controller +auto=name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot +text=Exile target creature. Exile up to one target instant or sorcery card from a graveyard. -- Learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) +mana={4}{WB}{WB} +type=Sorcery +[/card] +[card] name=Rise of the Dread Marn abilities=foretell autohand={2}:name(Pay 2 and exile face-down) name(Pay 2 and exile face-down) doforetell myturnonly @@ -44452,6 +46075,16 @@ mana={1}{G} type=Instant [/card] [card] +name=Rootha, Mercurial Artist +auto={R}{H}:name(copy spell) castcard(copied noevent) target(*[instant;sorcery]|mystack) +text={2}, Return Rootha, Mercurial Artist to its owner's hand: Copy target instant or sorcery spell you control. You may choose new targets for the copy. +mana={1}{U}{R} +type=Legendary Creature +subtype=Orc Shaman +power=1 +toughness=4 +[/card] +[card] name=Rooting Moloch abilities=cycling auto=moveTo(exile) target(*[cycling]|myGraveyard) and!( transforms((newability[canplayfromexile])) uynt )! @@ -45053,6 +46686,34 @@ power=2 toughness=2 [/card] [card] +name=Rushed Rebirth +auto=if type(creature|mybattlefield)~morethan~0 then choice name(Choose your creature) name(Choose your creature) target(creature|mybattlefield) transforms((,newability[@movedto(this|graveyard) from(mybattlefield):name(Search creature) target(creature[manacost<=manacostminus1minusend]|mylibrary) moveto(mybattlefield) and!( tap(noevent) )!])) ueot +auto=if type(creature[manacost=0]|opponentbattlefield)~morethan~0 then choice name(Choose opponent creature with manacost 0) name(Choose opponent creature with manacost 0) target(creature[manacost=0]|opponentbattlefield) transforms((,newability[@movedto(this|graveyard) from(mybattlefield):donothing])) ueot +auto=if type(creature[manacost=1]|opponentbattlefield)~morethan~0 then choice name(Choose opponent creature with manacost 1) name(Choose opponent creature with manacost 1) target(creature[manacost=1]|opponentbattlefield) transforms((,newability[@movedto(this|graveyard) from(mybattlefield):ability$!name(Search creature) name(Search creature) target(creature[manacost<=0]|mylibrary) moveto(mybattlefield) and!( tap(noevent) )! !$ opponent])) ueot +auto=if type(creature[manacost=2]|opponentbattlefield)~morethan~0 then choice name(Choose opponent creature with manacost 2) name(Choose opponent creature with manacost 2) target(creature[manacost=2]|opponentbattlefield) transforms((,newability[@movedto(this|graveyard) from(mybattlefield):ability$!name(Search creature) name(Search creature) target(creature[manacost<=1]|mylibrary) moveto(mybattlefield) and!( tap(noevent) )! !$ opponent])) ueot +auto=if type(creature[manacost=3]|opponentbattlefield)~morethan~0 then choice name(Choose opponent creature with manacost 3) name(Choose opponent creature with manacost 3) target(creature[manacost=3]|opponentbattlefield) transforms((,newability[@movedto(this|graveyard) from(mybattlefield):ability$!name(Search creature) name(Search creature) target(creature[manacost<=2]|mylibrary) moveto(mybattlefield) and!( tap(noevent) )! !$ opponent])) ueot +auto=if type(creature[manacost=4]|opponentbattlefield)~morethan~0 then choice name(Choose opponent creature with manacost 4) name(Choose opponent creature with manacost 4) target(creature[manacost=4]|opponentbattlefield) transforms((,newability[@movedto(this|graveyard) from(mybattlefield):ability$!name(Search creature) name(Search creature) target(creature[manacost<=3]|mylibrary) moveto(mybattlefield) and!( tap(noevent) )! !$ opponent])) ueot +auto=if type(creature[manacost=5]|opponentbattlefield)~morethan~0 then choice name(Choose opponent creature with manacost 5) name(Choose opponent creature with manacost 5) target(creature[manacost=5]|opponentbattlefield) transforms((,newability[@movedto(this|graveyard) from(mybattlefield):ability$!name(Search creature) name(Search creature) target(creature[manacost<=4]|mylibrary) moveto(mybattlefield) and!( tap(noevent) )! !$ opponent])) ueot +auto=if type(creature[manacost=6]|opponentbattlefield)~morethan~0 then choice name(Choose opponent creature with manacost 6) name(Choose opponent creature with manacost 6) target(creature[manacost=6]|opponentbattlefield) transforms((,newability[@movedto(this|graveyard) from(mybattlefield):ability$!name(Search creature) name(Search creature) target(creature[manacost<=5]|mylibrary) moveto(mybattlefield) and!( tap(noevent) )! !$ opponent])) ueot +auto=if type(creature[manacost=7]|opponentbattlefield)~morethan~0 then choice name(Choose opponent creature with manacost 7) name(Choose opponent creature with manacost 7) target(creature[manacost=7]|opponentbattlefield) transforms((,newability[@movedto(this|graveyard) from(mybattlefield):ability$!name(Search creature) name(Search creature) target(creature[manacost<=6]|mylibrary) moveto(mybattlefield) and!( tap(noevent) )! !$ opponent])) ueot +auto=if type(creature[manacost=8]|opponentbattlefield)~morethan~0 then choice name(Choose opponent creature with manacost 8) name(Choose opponent creature with manacost 8) target(creature[manacost=8]|opponentbattlefield) transforms((,newability[@movedto(this|graveyard) from(mybattlefield):ability$!name(Search creature) name(Search creature) target(creature[manacost<=7]|mylibrary) moveto(mybattlefield) and!( tap(noevent) )! !$ opponent])) ueot +auto=if type(creature[manacost=9]|opponentbattlefield)~morethan~0 then choice name(Choose opponent creature with manacost 9) name(Choose opponent creature with manacost 9) target(creature[manacost=9]|opponentbattlefield) transforms((,newability[@movedto(this|graveyard) from(mybattlefield):ability$!name(Search creature) name(Search creature) target(creature[manacost<=8]|mylibrary) moveto(mybattlefield) and!( tap(noevent) )! !$ opponent])) ueot +auto=if type(creature[manacost=10]|opponentbattlefield)~morethan~0 then choice name(Choose opponent creature with manacost 10) name(Choose opponent creature with manacost 10) target(creature[manacost=10]|opponentbattlefield) transforms((,newability[@movedto(this|graveyard) from(mybattlefield):ability$!name(Search creature) name(Search creature) target(creature[manacost<=9]|mylibrary) moveto(mybattlefield) and!( tap(noevent) )! !$ opponent])) ueot +auto=if type(creature[manacost=11]|opponentbattlefield)~morethan~0 then choice name(Choose opponent creature with manacost 11) name(Choose opponent creature with manacost 11) target(creature[manacost=11]|opponentbattlefield) transforms((,newability[@movedto(this|graveyard) from(mybattlefield):ability$!name(Search creature) name(Search creature) target(creature[manacost<=10]|mylibrary) moveto(mybattlefield) and!( tap(noevent) )! !$ opponent])) ueot +auto=if type(creature[manacost=12]|opponentbattlefield)~morethan~0 then choice name(Choose opponent creature with manacost 12) name(Choose opponent creature with manacost 12) target(creature[manacost=12]|opponentbattlefield) transforms((,newability[@movedto(this|graveyard) from(mybattlefield):ability$!name(Search creature) name(Search creature) target(creature[manacost<=11]|mylibrary) moveto(mybattlefield) and!( tap(noevent) )! !$ opponent])) ueot +auto=if type(creature[manacost=13]|opponentbattlefield)~morethan~0 then choice name(Choose opponent creature with manacost 13) name(Choose opponent creature with manacost 13) target(creature[manacost=13]|opponentbattlefield) transforms((,newability[@movedto(this|graveyard) from(mybattlefield):ability$!name(Search creature) name(Search creature) target(creature[manacost<=12]|mylibrary) moveto(mybattlefield) and!( tap(noevent) )! !$ opponent])) ueot +auto=if type(creature[manacost=14]|opponentbattlefield)~morethan~0 then choice name(Choose opponent creature with manacost 14) name(Choose opponent creature with manacost 14) target(creature[manacost=14]|opponentbattlefield) transforms((,newability[@movedto(this|graveyard) from(mybattlefield):ability$!name(Search creature) name(Search creature) target(creature[manacost<=13]|mylibrary) moveto(mybattlefield) and!( tap(noevent) )! !$ opponent])) ueot +auto=if type(creature[manacost=15]|opponentbattlefield)~morethan~0 then choice name(Choose opponent creature with manacost 15) name(Choose opponent creature with manacost 15) target(creature[manacost=15]|opponentbattlefield) transforms((,newability[@movedto(this|graveyard) from(mybattlefield):ability$!name(Search creature) name(Search creature) target(creature[manacost<=14]|mylibrary) moveto(mybattlefield) and!( tap(noevent) )! !$ opponent])) ueot +auto=if type(creature[manacost=16]|opponentbattlefield)~morethan~0 then choice name(Choose opponent creature with manacost 16) name(Choose opponent creature with manacost 16) target(creature[manacost=16]|opponentbattlefield) transforms((,newability[@movedto(this|graveyard) from(mybattlefield):ability$!name(Search creature) name(Search creature) target(creature[manacost<=15]|mylibrary) moveto(mybattlefield) and!( tap(noevent) )! !$ opponent])) ueot +auto=if type(creature[manacost=17]|opponentbattlefield)~morethan~0 then choice name(Choose opponent creature with manacost 17) name(Choose opponent creature with manacost 17) target(creature[manacost=17]|opponentbattlefield) transforms((,newability[@movedto(this|graveyard) from(mybattlefield):ability$!name(Search creature) name(Search creature) target(creature[manacost<=16]|mylibrary) moveto(mybattlefield) and!( tap(noevent) )! !$ opponent])) ueot +auto=if type(creature[manacost=18]|opponentbattlefield)~morethan~0 then choice name(Choose opponent creature with manacost 18) name(Choose opponent creature with manacost 18) target(creature[manacost=18]|opponentbattlefield) transforms((,newability[@movedto(this|graveyard) from(mybattlefield):ability$!name(Search creature) name(Search creature) target(creature[manacost<=17]|mylibrary) moveto(mybattlefield) and!( tap(noevent) )! !$ opponent])) ueot +auto=if type(creature[manacost=19]|opponentbattlefield)~morethan~0 then choice name(Choose opponent creature with manacost 19) name(Choose opponent creature with manacost 19) target(creature[manacost=19]|opponentbattlefield) transforms((,newability[@movedto(this|graveyard) from(mybattlefield):ability$!name(Search creature) name(Search creature) target(creature[manacost<=18]|mylibrary) moveto(mybattlefield) and!( tap(noevent) )! !$ opponent])) ueot +auto=if type(creature[manacost>=20]|opponentbattlefield)~morethan~0 then choice name(Choose opponent creature with manacost 20) name(Choose opponent creature with manacost 20) target(creature[manacost>=20]|opponentbattlefield) transforms((,newability[@movedto(this|graveyard) from(mybattlefield):ability$!name(Search creature) name(Search creature) target(creature[manacost<=19]|mylibrary) moveto(mybattlefield) and!( tap(noevent) )! !$ opponent])) ueot +text=Choose target creature. When that creature dies this turn, search your library for a creature card with lesser mana value, put it onto the battlefield tapped, then shuffle. +mana={B}{G} +type=Instant +[/card] +[card] name=Rustwing Falcon abilities=flying text=Flying @@ -45387,7 +47048,10 @@ toughness=1 [/card] [card] name=Sakashima's Will -auto=ability$!name(Choose creature) target(creature|mybattlefield) moveto(opponentbattlefield)!$ opponent +auto=if type(*[iscommander]|mybattlefield)~equalto~0 then choice name(Opponent choose a creature) name(Opponent choose a creature) ability$!name(Choose creature) name(Choose creature) target(creature|mybattlefield) moveto(opponentbattlefield)!$ opponent +auto=if type(*[iscommander]|mybattlefield)~equalto~0 then choice name(All creatures becomes copy) name(All creatures becomes copy) target(creature|myBattlefield) transforms((,newability[phaseaction[endofturn once] counter(0/0.-1.SakashimaEffect)],newability[counter(0/0.1.SakashimaEffect)],newability[all(other creature|myBattlefield) transforms((,newability[all(creature[counter{0/0.1.SakashimaEffect}]|myBattlefield) copy and!( all(this) transforms((,newability[phaseaction[endofturn once] flip(myorigname) undocpy])) forever )!])) ueot])) oneshot +auto=if type(*[iscommander]|mybattlefield)~morethan~0 then may name(Opponent choose a creature) name(Opponent choose a creature) ability$!name(Choose creature) name(Choose creature) target(creature|mybattlefield) moveto(opponentbattlefield)!$ opponent +auto=if type(*[iscommander]|mybattlefield)~morethan~0 then may name(All creatures becomes copy) name(All creatures becomes copy) target(creature|myBattlefield) transforms((,newability[phaseaction[endofturn once] counter(0/0.-1.SakashimaEffect)],newability[counter(0/0.1.SakashimaEffect)],newability[all(other creature|myBattlefield) transforms((,newability[all(creature[counter{0/0.1.SakashimaEffect}]|myBattlefield) copy and!( all(this) transforms((,newability[phaseaction[endofturn once] flip(myorigname) undocpy])) forever )!])) ueot])) oneshot text=Choose one. If you control a commander as you cast this spell, you may choose both. -- • Target opponent chooses a creature they control. You gain control of it. -- • Choose a creature you control. Each other creature you control becomes a copy of that creature until end of turn. mana={3}{U} type=Sorcery @@ -46355,7 +48019,7 @@ toughness=3 [card] name=Scion of the Swarm abilities=flying -auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection]):counter(1/1,1) +auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection;-Honor Troll]):counter(1/1,1) text=Flying -- Whenever you gain life, put a +1/+1 counter on Scion of the Swarm. mana={3}{B}{B} type=Creature @@ -46567,6 +48231,17 @@ power=2 toughness=2 [/card] [card] +name=Scurrid Colony +abilities=reach +auto=aslongas(land|mybattlefield) 2/2 >7 +text=Reach -- Scurrid Colony gets +2/+2 as long as you control eight or more lands. +mana={1}{G} +type=Creature +subtype=Squirrel +power=2 +toughness=2 +[/card] +[card] name=Scute Swarm auto=_LANDFALL_If type(land|myBattlefield)~morethan~5 then clone all(this) else token(Insect,Creature Insect,1/1,green) text=Landfall — Whenever a land enters the battlefield under your control, create a 1/1 green Insect creature token. If you control six or more lands, create a token that's a copy of Scute Swarm instead. @@ -46737,6 +48412,15 @@ mana={1}{U} type=Legendary Enchantment [/card] [card] +name=Search for Blex +aicode=activate all(*[zpos<=1]|mylibrary) moveto(myhand) and!( transforms((,newability[life:-3 controller],newability[all(*[zpos<=5]|mylibrary) moveto(mygraveyard)])) oneshot )! +auto=name(Look top 5 cards) reveal:5 optionone name(Get any card) target(*|reveal) moveto(myhand) and!( transforms((,newability[life:-3 controller])) oneshot )! optiononeend optiontwo name(put in graveyard) all(*|reveal) moveto(mygraveyard) optiontwoend revealend +auto=transforms((,newability[moveto(mysideboard) and!( transforms((,newablility[shroud],newability[protection from(*)],newability[cantbetargetof(*)])) forever])) forever +text=Look at the top five cards of your library. You may put any number of them into your hand and the rest into your graveyard. You lose 3 life for each card you put into your hand this way. +mana={2}{B}{B} +type=Sorcery +[/card] +[card] name=Search for Glory restriction=compare(mysnowpoolcount)~equalto~0 autohand={1}{i}{W} restriction{compare(mysnowpoolcount)~equalto~1}:name(Cast with 1 snow mana) name(Cast with 1 snow mana) life:1 controller && activate castcard(alternative) @@ -46844,6 +48528,14 @@ text={T}: Add {1}. -- {T}: Add one mana of any color. Spend this mana only to ca type=Land [/card] [card] +name=Secret Rendezvous +auto=draw:3 controller +auto=draw:3 opponent +text=You and target opponent each draw three cards. +mana={1}{W}{W} +type=Sorcery +[/card] +[card] name=Secrets of the Golden City auto=_ASCEND_ auto=_CITY'S_BLESSING_ draw:1 controller @@ -46862,6 +48554,18 @@ mana={4}{W} type=Sorcery [/card] [card] +name=Sedgemoor Witch +abilities=menace +auto=@targeted(this|myBattlefield) from(*[instant;sorcery]|opponentzones):choice name(This spell costs 3 life more) name(This spell costs 3 life more) target(*[instant;sorcery]|opponentzones) transforms((,newability[pay[[{L:3}]] name(pay 3 life) donothing?fizzle])) oneshot +auto=@movedto(*[instant;sorcery]|mystack):name(Create Pest) token(Pest,Creature Pest,1/1,green,blue) and!( transforms((,newability[@movedto(this|mygraveyard) from(battlefield):life:1 controller])) forever )! +text=Menace -- Ward — Pay 3 life. (Whenever this creature becomes the target of a spell or ability an opponent controls, counter it unless that player pays 3 life.) -- Magecraft — Whenever you cast or copy an instant or sorcery spell, create a 1/1 black and green Pest creature token with "When this creature dies, you gain 1 life." +mana={2}{B} +type=Creature +subtype=Human Warlock +power=3 +toughness=2 +[/card] +[card] name=See Red target=creature auto=2/1 @@ -47046,6 +48750,19 @@ power=2 toughness=5 [/card] [card] +name=Selfless Glyphweaver +other={5}{B}{B}{B} name(Deadly Vanity) +otherrestriction=can play sorcery +autostack=if paid(alternative) then transforms((,newability[moveto(mygraveyard)],newability[activate castcard(named!:deadly vanity:!)])) forever +auto={E}:name(All creatures gain indestructible) all(creature|mybattlefield) transforms((,newability[indestructible])) ueot +text=Exile Selfless Glyphweaver: Creatures you control gain indestructible until end of turn. // Choose a creature or planeswalker, then destroy all other creatures and planeswalkers. +mana={2}{W} +type=Creature +subtype=Human Cleric +power=2 +toughness=3 +[/card] +[card] name=Selfless Savior auto={S}:target(other creature|myBattlefield) indestructible ueot text=Sacrifice Selfless Savior: Another target creature you control gains indestructible until end of turn. (Damage and effects that say "destroy" don't destroy it.) @@ -47097,6 +48814,14 @@ power=2 toughness=3 [/card] [card] +name=Semester's End +target=*[creature;planeswalker]|battlefield +auto=moveto(exile) and!( transforms((,newability[phaseaction[endofturn once checkex] moveTo(ownerbattlefield)],newability[@movedto(this|battlefield) from(exile):if cantargetcard(*[creature]|*) then counter(1/1) else counter(0/0.1.Loyalty)])) ueot +text=Exile any number of target creatures and/or planeswalkers you control. At the beginning of the next end step, return each of them to the battlefield under its owner's control. Each of them enters the battlefield with an additional +1/+1 counter on it if it's a creature and an additional loyalty counter on it if it's a planeswalker. +mana={3}{W} +type=Instant +[/card] +[card] name=Sen Triplets auto=@each my upkeep:all(*|opponentBattlefield) noactivatedability && all(*|opponentcastingzone) maxCast(*)0 && may castcard(normal) target(*|opponenthand) text=At the beginning of your upkeep, choose target opponent. This turn, that player can't cast spells or activate abilities and plays with his or her hand revealed. You may play cards from that player's hand this turn. @@ -47303,6 +49028,13 @@ mana={2}{B} type=Artifact [/card] [card] +name=Serpentine Curve +auto=token(Fractal,Creature Fractal,0/0,green,blue) and!( transforms((,newability[counter(1/1)],newability[counter(1/1.pginstantsorcery)],newability[counter(1/1.type:*[instant;sorcery]:myexile)])) oneshot )! +text=Create a 0/0 green and blue Fractal creature token. Put X +1/+1 counters on it, where X is one plus the total number of instant and sorcery cards you own in exile and in your graveyard. +mana={3}{U} +type=Sorcery +[/card] +[card] name=Serra Disciple abilities=flying, first strike auto=@movedTo(*[artifact;legendary;saga]|mystack):+1/+1 ueot @@ -47514,6 +49246,17 @@ mana={2}{R} type=Sorcery [/card] [card] +name=Shadewing Laureate +abilities=flying +auto=@movedto(other creature[flying]|graveyard) from(mybattlefield):name(Put 1/1 counter) target(creature|mybattlefield) counter(1/1) +text=Flying -- Whenever another creature you control with flying dies, put a +1/+1 counter on target creature you control. +mana={W}{WB}{B} +type=Creature +subtype=Human Warlock +power=2 +toughness=2 +[/card] +[card] name=Shadow Stinger auto={T(other creature[rogue]|myBattlefield)}:deathtouch ueot auto=@combatdamagefoeof(player) from(this):deplete:3 opponent @@ -47578,6 +49321,17 @@ power=1 toughness=3 [/card] [card] +name=Shadrix Silverquill +abilities=flying,double strike +auto=@each my combatbegins:transforms((,newability[choice name(You create inkling and opponent loses life) token(Inkling^Creature Inkling^2/1^black^white^flying) && life:-1 opponent && draw:1 opponent],newability[choice name(You create inkling and opponent puts counters) token(Inkling^Creature Inkling^2/1^black^white^flying) && all(creature|opponentbattlefield) counter(1/1)],newability[choice name(Opponent creates inkling and you lose life) token(Inkling^Creature Inkling^2/1^black^white^flying) opponent && life:-1 controller && draw:1 controller],newability[choice name(Opponent creates inkling and you put counters) token(Inkling^Creature Inkling^2/1^black^white^flying) opponent && all(creature|mybattlefield) counter(1/1)],newability[choice name(You lose life and opponent puts counters) life:-1 controller && draw:1 controller && all(creature|opponentbattlefield) counter(1/1)],newability[choice name(Opponent loses life and you put counters) life:-1 opponent && draw:1 opponent && all(creature|mybattlefield) counter(1/1)],newability[choice name(Don't choose anything) donothing])) oneshot +text=Flying, double strike -- At the beginning of combat on your turn, you may choose two. Each mode must target a different player. -- • Target player creates a 2/1 white and black Inkling creature token with flying. -- • Target player draws a card and loses 1 life. -- • Target player puts a +1/+1 counter on each creature they control. +mana={3}{W}{B} +type=Legendary Creature +subtype=Elder Dragon +power=2 +toughness=5 +[/card] +[card] name=Shaggy Camel auto=all(creature|mybattlefield) 1/1 ueot text=When this creature enters the battlefield, creatures you control get +1/+1 until end of turn. @@ -47588,6 +49342,20 @@ power=3 toughness=3 [/card] [card] +name=Shaile, Dean of Radiance +abilities=flying,vigilance +other={2}{B}{B} name(Embrose, Dean of Shadow) +otherrestriction=can play creature +autostack=if paid(alternative) then name(Embrose, Dean of Shadow) name(Embrose, Dean of Shadow) flip(Embrose, Dean of Shadow) forcetype(Legendary Creature) +auto=this(variable{isflipped}<1) {T}:all(creature[fresh]|mybattlefield) counter(1/1) +text=Flying, vigilance -- {T}: Put a +1/+1 counter on each creature that entered the battlefield under your control this turn. +mana={1}{W} +type=Legendary Creature +subtype=Bird Cleric +power=1 +toughness=1 +[/card] +[card] name=Shake the Foundations auto=damage:1 all(creature[-flying]) auto=draw:1 @@ -48088,6 +49856,14 @@ power=1 toughness=1 [/card] [card] +name=Shineshadow Snarl +auto=if type(*[plains;swamp]|myhand)~equalto~0 then tap(noevent) +auto={T}:add{B} +auto={T}:add{W} +text=As Shineshadow Snarl enters the battlefield, you may reveal a Plains or Swamp card from your hand. If you don't, Shineshadow Snarl enters the battlefield tapped. -- {T}: Add {W} or {B}. +type=Land +[/card] +[card] name=Shining Aerosaur abilities=flying text=Flying @@ -48235,6 +50011,32 @@ type=Artifact subtype=Equipment [/card] [card] +name=Show of Confidence +auto=if thisturn(*[instant;sorcery]|mystack)~equalto~1 then thisforeach(variable{1}) ability$!name(Put 1/1 counter) name(Put 1/1 counter) target(creature) transforms((,newability[counter(1/1)],newability[vigilance])) ueot!$ controller +auto=if thisturn(*[instant;sorcery]|mystack)~equalto~2 then thisforeach(variable{2}) ability$!name(Put 1/1 counter) name(Put 1/1 counter) target(creature) transforms((,newability[counter(1/1)],newability[vigilance])) ueot!$ controller +auto=if thisturn(*[instant;sorcery]|mystack)~equalto~3 then thisforeach(variable{3}) ability$!name(Put 1/1 counter) name(Put 1/1 counter) target(creature) transforms((,newability[counter(1/1)],newability[vigilance])) ueot!$ controller +auto=if thisturn(*[instant;sorcery]|mystack)~equalto~4 then thisforeach(variable{4}) ability$!name(Put 1/1 counter) name(Put 1/1 counter) target(creature) transforms((,newability[counter(1/1)],newability[vigilance])) ueot!$ controller +auto=if thisturn(*[instant;sorcery]|mystack)~equalto~5 then thisforeach(variable{5}) ability$!name(Put 1/1 counter) name(Put 1/1 counter) target(creature) transforms((,newability[counter(1/1)],newability[vigilance])) ueot!$ controller +auto=if thisturn(*[instant;sorcery]|mystack)~equalto~6 then thisforeach(variable{6}) ability$!name(Put 1/1 counter) name(Put 1/1 counter) target(creature) transforms((,newability[counter(1/1)],newability[vigilance])) ueot!$ controller +auto=if thisturn(*[instant;sorcery]|mystack)~equalto~7 then thisforeach(variable{7}) ability$!name(Put 1/1 counter) name(Put 1/1 counter) target(creature) transforms((,newability[counter(1/1)],newability[vigilance])) ueot!$ controller +auto=if thisturn(*[instant;sorcery]|mystack)~equalto~8 then thisforeach(variable{8}) ability$!name(Put 1/1 counter) name(Put 1/1 counter) target(creature) transforms((,newability[counter(1/1)],newability[vigilance])) ueot!$ controller +auto=if thisturn(*[instant;sorcery]|mystack)~equalto~9 then thisforeach(variable{9}) ability$!name(Put 1/1 counter) name(Put 1/1 counter) target(creature) transforms((,newability[counter(1/1)],newability[vigilance])) ueot!$ controller +auto=if thisturn(*[instant;sorcery]|mystack)~equalto~10 then thisforeach(variable{10}) ability$!name(Put 1/1 counter) name(Put 1/1 counter) target(creature) transforms((,newability[counter(1/1)],newability[vigilance])) ueot!$ controller +auto=if thisturn(*[instant;sorcery]|mystack)~equalto~11 then thisforeach(variable{11}) ability$!name(Put 1/1 counter) name(Put 1/1 counter) target(creature) transforms((,newability[counter(1/1)],newability[vigilance])) ueot!$ controller +auto=if thisturn(*[instant;sorcery]|mystack)~equalto~12 then thisforeach(variable{12}) ability$!name(Put 1/1 counter) name(Put 1/1 counter) target(creature) transforms((,newability[counter(1/1)],newability[vigilance])) ueot!$ controller +auto=if thisturn(*[instant;sorcery]|mystack)~equalto~13 then thisforeach(variable{13}) ability$!name(Put 1/1 counter) name(Put 1/1 counter) target(creature) transforms((,newability[counter(1/1)],newability[vigilance])) ueot!$ controller +auto=if thisturn(*[instant;sorcery]|mystack)~equalto~14 then thisforeach(variable{14}) ability$!name(Put 1/1 counter) name(Put 1/1 counter) target(creature) transforms((,newability[counter(1/1)],newability[vigilance])) ueot!$ controller +auto=if thisturn(*[instant;sorcery]|mystack)~equalto~15 then thisforeach(variable{15}) ability$!name(Put 1/1 counter) name(Put 1/1 counter) target(creature) transforms((,newability[counter(1/1)],newability[vigilance])) ueot!$ controller +auto=if thisturn(*[instant;sorcery]|mystack)~equalto~16 then thisforeach(variable{16}) ability$!name(Put 1/1 counter) name(Put 1/1 counter) target(creature) transforms((,newability[counter(1/1)],newability[vigilance])) ueot!$ controller +auto=if thisturn(*[instant;sorcery]|mystack)~equalto~17 then thisforeach(variable{17}) ability$!name(Put 1/1 counter) name(Put 1/1 counter) target(creature) transforms((,newability[counter(1/1)],newability[vigilance])) ueot!$ controller +auto=if thisturn(*[instant;sorcery]|mystack)~equalto~18 then thisforeach(variable{18}) ability$!name(Put 1/1 counter) name(Put 1/1 counter) target(creature) transforms((,newability[counter(1/1)],newability[vigilance])) ueot!$ controller +auto=if thisturn(*[instant;sorcery]|mystack)~equalto~19 then thisforeach(variable{19}) ability$!name(Put 1/1 counter) name(Put 1/1 counter) target(creature) transforms((,newability[counter(1/1)],newability[vigilance])) ueot!$ controller +auto=if thisturn(*[instant;sorcery]|mystack)~morethan~19 then thisforeach(variable{20}) ability$!name(Put 1/1 counter) name(Put 1/1 counter) target(creature) transforms((,newability[counter(1/1)],newability[vigilance])) ueot!$ controller +text=When you cast this spell, copy it for each other instant and sorcery spell you've cast this turn. You may choose new targets for the copies. -- Put a +1/+1 counter on target creature. It gains vigilance until end of turn. +mana={1}{W} +type=Instant +[/card] +[card] name=Showdown of the Skalds auto=counter(0/0,1,Lore) auto=@each my firstmain:counter(0/0,1,Lore) @@ -48748,6 +50550,61 @@ power=2 toughness=1 [/card] [card] +name=Silverquill Apprentice +auto=@movedto(*[instant;sorcery]|mystack):name(Creature gains 1/0) target(creature) 1/0 ueot +text=Magecraft — Whenever you cast or copy an instant or sorcery spell, target creature gets +1/+0 until end of turn. +mana={W}{B} +type=Creature +subtype=Human Warlock +power=2 +toughness=2 +[/card] +[card] +name=Silverquill Campus +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot +auto=tap(noevent) +auto={4}{T}:name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend +auto={T}:add{B} +auto={T}:add{W} +text=Silverquill Campus enters the battlefield tapped. -- {T}: Add {W} or {B}. -- {4}, {T}: Scry 1. +type=Land +[/card] +[card] +name=Silverquill Command +auto=choice name(Creature gains 3/3 and return creature) target(creature) transforms((,newability[3/3],newability[flying])) ueot && ability$!name(Return creature) name(Return creature) target(creature[manacost<=2]|mygraveyard) moveto(mybattlefield)!$ controller +auto=choice name(Creature gains 3/3 and you draw) target(creature) transforms((,newability[3/3],newability[flying])) ueot && draw:1 controller && life:-1 controller +auto=choice name(Creature gains 3/3 and opponent draws) target(creature) transforms((,newability[3/3],newability[flying])) ueot && draw:1 opponent && life:-1 opponent +auto=choice name(Creature gains 3/3 and sacrifice creature) target(creature) transforms((,newability[3/3],newability[flying])) ueot && ability$!name(Sacrifice creature) name(Sacrifice creature) notatarget(creature|mybattlefield) sacrifice!$ opponent +auto=choice name(Return creature and you draw) target(creature[manacost<=2]|mygraveyard) moveto(mybattlefield) && draw:1 controller && life:-1 controller +auto=choice name(Return creature and opponent draws) target(creature[manacost<=2]|mygraveyard) moveto(mybattlefield) && draw:1 opponent && life:-1 opponent +auto=choice name(Return creature and sacrifice creature) target(creature[manacost<=2]|mygraveyard) moveto(mybattlefield) && ability$!name(Sacrifice creature) name(Sacrifice creature) notatarget(creature|mybattlefield) sacrifice!$ opponent +auto=choice name(You draw and sacrifice creature) draw:1 controller && life:-1 controller && ability$!name(Sacrifice creature) name(Sacrifice creature) notatarget(creature|mybattlefield) sacrifice!$ opponent +auto=choice name(Opponent draws and sacrifice creature) draw:1 opponent && life:-1 opponent && ability$!name(Sacrifice creature) name(Sacrifice creature) notatarget(creature|mybattlefield) sacrifice!$ opponent +text=Choose two — -- • Target creature gets +3/+3 and gains flying until end of turn. -- • Return target creature card with mana value 2 or less from your graveyard to the battlefield. -- • Target player draws a card and loses 1 life. -- • Target opponent sacrifices a creature. +mana={2}{W}{B} +type=Sorcery +[/card] +[card] +name=Silverquill Pledgemage +auto=@movedto(*[instant;sorcery]|mystack):name(Choose one) transforms((,newability[choice name(Silverquill gains flying) all(this) flying ueot],newability[choice name(Silverquill gains lifelink) all(this) lifelink ueot])) oneshot +text=Magecraft — Whenever you cast or copy an instant or sorcery spell, Silverquill Pledgemage gains your choice of flying or lifelink until end of turn. +mana={1}{WB}{WB} +type=Creature +subtype=Vampire Cleric +power=3 +toughness=1 +[/card] +[card] +name=Silverquill Silencer +auto=chooseanameopp transforms((,newability[@movedto(*[chosenname]|opponentstack):life:-3 opponent && draw:1 controller])) forever chooseend nonland +text=As Silverquill Silencer enters the battlefield, choose a nonland card name. -- Whenever an opponent casts a spell with the chosen name, they lose 3 life and you draw a card. +mana={W}{B} +type=Creature +subtype=Human Cleric +power=3 +toughness=2 +[/card] +[card] name=Silversmote Ghoul autograveyard=@each my endofturn restriction{compare(lifegain)~morethan~2}:moveTo(myBattlefield) and!(transforms((,newability[tap(noevent)]))) oneshot auto={1}{B}{S}:draw:1 controller @@ -49191,7 +51048,7 @@ toughness=2 [/card] [card] name=Skittering Surveyor -auto=target(land[basic]|mylibrary) moveto(myhand) +auto=may name(Search basic land) target(land[basic]|mylibrary) moveto(myhand) and!( shuffle )! text=When Skittering Surveyor enters the battlefield, you may search your library for a basic land card, reveal it, put it into your hand, then shuffle your library. mana={3} type=Artifact Creature @@ -49978,6 +51835,15 @@ power=1 toughness=1 [/card] [card] +name=Snow Day +target=creature +auto=freeze +auto=draw:2 && transforms((,newability[target(*|myhand) reject])) forever +text=Tap up to two target creatures. Those creatures don't untap during their controller's next untap step. -- Draw two cards, then discard a card. +mana={4}{U}{U} +type=Instant +[/card] +[card] name=Snowfield Sinkhole auto=tap(noevent) text=({T}: Add {W} or {B}.) -- Snowfield Sinkhole enters the battlefield tapped. @@ -50192,6 +52058,13 @@ power=3 toughness=2 [/card] [card] +name=Solve the Equation +auto=name(Search instant or sorcery) target(*[instant;sorcery]|mylibrary) moveto(myhand) and!( shuffle )! +text=Search your library for an instant or sorcery card, reveal it, put it into your hand, then shuffle. +mana={2}{U} +type=Sorcery +[/card] +[card] name=Somberwald Sage auto=this(variable{type:creature:myrestrictedcastingzone}>0) {T}:add{W}{W}{W} auto=this(variable{type:creature:myrestrictedcastingzone}>0) {T}:add{G}{G}{G} @@ -50287,6 +52160,16 @@ power=2 toughness=2 [/card] [card] +name=Soothsayer Adept +auto={1}{U}{T}:draw:1 && transforms((,newability[target(*|myhand) reject])) forever +text=1{U}, {T}: Draw a card, then discard a card. +mana={1}{U} +type=Creature +subtype=Merfolk Wizard +power=1 +toughness=3 +[/card] +[card] name=Sorcerer of the Fang auto={5}{B}{T}:damage:2 target(opponent,planeswalker) text={5}{B}, {T}: Sorcerer of the Fang deals 2 damage to target opponent or planeswalker. @@ -50786,6 +52669,14 @@ power=3 toughness=3 [/card] [card] +name=Sparring Regimen +auto=name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot +auto=@each my blockers:name(Put 1/1 counter) target(creature[attacking]|myBattlefield) transforms((,newability[counter(1/1),newability[untap])) oneshot +text=When Sparring Regimen enters the battlefield, learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) -- Whenever you attack, put a +1/+1 counter on target attacking creature and untap it. +mana={2}{W} +type=Enchantment +[/card] +[card] name=Spawn of Mayhem abilities=flying, trample auto=@each my upkeep:damage:1 controller && damage:1 opponent && if compare(lifetotal)~lessthan~10 then counter(1/1) @@ -50841,6 +52732,18 @@ power=2 toughness=3 [/card] [card] +name=Spectacle Mage +abilities=flying +auto=lord(instant[manacost>=5]|mycastingzone) changecost(colorless:-1) forcedalive +auto=lord(instant[manacost>=5]|mycastingzone) changecost(colorless:-1) forcedalive +text=Flying -- Instant and sorcery spells you cast with mana value 5 or greater cost 1 less to cast. +mana={1}{U}{R} +type=Creature +subtype=Bird Shaman +power=2 +toughness=2 +[/card] +[card] name=Spectator Seating auto=tap(noevent) auto={T}:add{R} @@ -50911,6 +52814,15 @@ mana={1}{U}{U} type=Instant [/card] [card] +name=Spell Satchel +auto=@movedto(*[instant;sorcery]|mystack):counter(0/0,1,Book) +auto={T}{C(0/0,-1,Book)}:name(Add 1 mana) add{C} +auto={3}{T}{C(0/0,-3,Book)}:name(Draw 1 card) draw:1 controller +text=Magecraft — Whenever you cast or copy an instant or sorcery spell, put a book counter on Spell Satchel. -- {T}, Remove a book counter from Spell Satchel: Add {C}. -- {3}, {T}, Remove three book counters from Spell Satchel: Draw a card. +mana={2} +type=Artifact +[/card] +[card] name=Spell Snuff target=*|stack auto=fizzle @@ -51230,6 +53142,14 @@ power=-1 toughness=-1 [/card] [card] +name=Spined Karok +mana={2}{G} +type=Creature +subtype=Crocodile +power=2 +toughness=4 +[/card] +[card] name=Spined Megalodon abilities=opponentshroud aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot @@ -51372,6 +53292,14 @@ power=2 toughness=4 [/card] [card] +name=Spirit Summoning +auto=token(Spirit,Creature Spirit,3/2,white,red) +text=Create a 3/2 red and white Spirit creature token. +mana={1}{RW}{RW} +type=Sorcery +subtype=Lesson +[/card] +[card] name=Spiritual Focus auto=@discarded(*|hand):may draw:1 controller auto=@discarded(*|hand):life:2 controller @@ -51419,6 +53347,37 @@ power=2 toughness=2 [/card] [card] +name=Spiteful Squad +abilities=deathtouch +auto=counter(1/1,2) +auto=_DIES_this(counter{1/1}=1) name(Put 1/1 counters on another creature) target(creature|mybattlefield) counter(1/1,1) +auto=_DIES_this(counter{1/1}=2) name(Put 1/1 counters on another creature) target(creature|mybattlefield) counter(1/1,2) +auto=_DIES_this(counter{1/1}=3) name(Put 1/1 counters on another creature) target(creature|mybattlefield) counter(1/1,3) +auto=_DIES_this(counter{1/1}=4) name(Put 1/1 counters on another creature) target(creature|mybattlefield) counter(1/1,4) +auto=_DIES_this(counter{1/1}=5) name(Put 1/1 counters on another creature) target(creature|mybattlefield) counter(1/1,5) +auto=_DIES_this(counter{1/1}=6) name(Put 1/1 counters on another creature) target(creature|mybattlefield) counter(1/1,6) +auto=_DIES_this(counter{1/1}=7) name(Put 1/1 counters on another creature) target(creature|mybattlefield) counter(1/1,7) +auto=_DIES_this(counter{1/1}=8) name(Put 1/1 counters on another creature) target(creature|mybattlefield) counter(1/1,8) +auto=_DIES_this(counter{1/1}=9) name(Put 1/1 counters on another creature) target(creature|mybattlefield) counter(1/1,9) +auto=_DIES_this(counter{1/1}=10) name(Put 1/1 counters on another creature) target(creature|mybattlefield) counter(1/1,10) +auto=_DIES_this(counter{1/1}=11) name(Put 1/1 counters on another creature) target(creature|mybattlefield) counter(1/1,11) +auto=_DIES_this(counter{1/1}=12) name(Put 1/1 counters on another creature) target(creature|mybattlefield) counter(1/1,12) +auto=_DIES_this(counter{1/1}=13) name(Put 1/1 counters on another creature) target(creature|mybattlefield) counter(1/1,13) +auto=_DIES_this(counter{1/1}=14) name(Put 1/1 counters on another creature) target(creature|mybattlefield) counter(1/1,14) +auto=_DIES_this(counter{1/1}=15) name(Put 1/1 counters on another creature) target(creature|mybattlefield) counter(1/1,15) +auto=_DIES_this(counter{1/1}=16) name(Put 1/1 counters on another creature) target(creature|mybattlefield) counter(1/1,16) +auto=_DIES_this(counter{1/1}=17) name(Put 1/1 counters on another creature) target(creature|mybattlefield) counter(1/1,17) +auto=_DIES_this(counter{1/1}=18) name(Put 1/1 counters on another creature) target(creature|mybattlefield) counter(1/1,18) +auto=_DIES_this(counter{1/1}=19) name(Put 1/1 counters on another creature) target(creature|mybattlefield) counter(1/1,19) +auto=_DIES_this(counter{1/1}>=20) name(Put 1/1 counters on another creature) target(creature|mybattlefield) counter(1/1,20) +text=Deathtouch -- Spiteful Squad enters the battlefield with two +1/+1 counters on it. -- When Spiteful Squad dies, put its counters on target creature you control. +mana={2}{W}{B} +type=Creature +subtype=Human Warlock +power=0 +toughness=0 +[/card] +[card] name=Spitfire Bastion auto={T}:Add{R} auto={2}{R}{T}:damage:3 target(creature,player) @@ -51668,6 +53627,16 @@ mana={1} type=Artifact [/card] [card] +name=Springmane Cervin +auto=life:2 controller +text=When Springmane Cervin enters the battlefield, you gain 2 life. +mana={2}{G} +type=Creature +subtype=Elk +power=3 +toughness=2 +[/card] +[card] name=Springmantle Cleric abilities=sunburst auto=counter(1/1,sunburst) @@ -51778,6 +53747,14 @@ mana={B}{G} type=Enchantment [/card] [card] +name=Square Up +target=creature +auto=becomes(,4/4) ueot +text=Target creature has base power and toughness 4/4 until end of turn. +mana={1}{GU} +type=Instant +[/card] +[card] name=Squash target=creature,planeswalker other={1}{R} name(Cast with giant) @@ -51928,6 +53905,36 @@ mana={5}{R}{R} type=Sorcery [/card] [card] +name=Star Pupil +auto=counter(1/1) +auto=_DIES_this(counter{1/1}=1) name(Put 1/1 counters on another creature) target(creature|mybattlefield) counter(1/1,1) +auto=_DIES_this(counter{1/1}=2) name(Put 1/1 counters on another creature) target(creature|mybattlefield) counter(1/1,2) +auto=_DIES_this(counter{1/1}=3) name(Put 1/1 counters on another creature) target(creature|mybattlefield) counter(1/1,3) +auto=_DIES_this(counter{1/1}=4) name(Put 1/1 counters on another creature) target(creature|mybattlefield) counter(1/1,4) +auto=_DIES_this(counter{1/1}=5) name(Put 1/1 counters on another creature) target(creature|mybattlefield) counter(1/1,5) +auto=_DIES_this(counter{1/1}=6) name(Put 1/1 counters on another creature) target(creature|mybattlefield) counter(1/1,6) +auto=_DIES_this(counter{1/1}=7) name(Put 1/1 counters on another creature) target(creature|mybattlefield) counter(1/1,7) +auto=_DIES_this(counter{1/1}=8) name(Put 1/1 counters on another creature) target(creature|mybattlefield) counter(1/1,8) +auto=_DIES_this(counter{1/1}=9) name(Put 1/1 counters on another creature) target(creature|mybattlefield) counter(1/1,9) +auto=_DIES_this(counter{1/1}=10) name(Put 1/1 counters on another creature) target(creature|mybattlefield) counter(1/1,10) +auto=_DIES_this(counter{1/1}=11) name(Put 1/1 counters on another creature) target(creature|mybattlefield) counter(1/1,11) +auto=_DIES_this(counter{1/1}=12) name(Put 1/1 counters on another creature) target(creature|mybattlefield) counter(1/1,12) +auto=_DIES_this(counter{1/1}=13) name(Put 1/1 counters on another creature) target(creature|mybattlefield) counter(1/1,13) +auto=_DIES_this(counter{1/1}=14) name(Put 1/1 counters on another creature) target(creature|mybattlefield) counter(1/1,14) +auto=_DIES_this(counter{1/1}=15) name(Put 1/1 counters on another creature) target(creature|mybattlefield) counter(1/1,15) +auto=_DIES_this(counter{1/1}=16) name(Put 1/1 counters on another creature) target(creature|mybattlefield) counter(1/1,16) +auto=_DIES_this(counter{1/1}=17) name(Put 1/1 counters on another creature) target(creature|mybattlefield) counter(1/1,17) +auto=_DIES_this(counter{1/1}=18) name(Put 1/1 counters on another creature) target(creature|mybattlefield) counter(1/1,18) +auto=_DIES_this(counter{1/1}=19) name(Put 1/1 counters on another creature) target(creature|mybattlefield) counter(1/1,19) +auto=_DIES_this(counter{1/1}>=20) name(Put 1/1 counters on another creature) target(creature|mybattlefield) counter(1/1,20) +text=Star Pupil enters the battlefield with a +1/+1 counter on it. -- When Star Pupil dies, put its counters on target creature you control. +mana={W} +type=Creature +subtype=Human Wizard +power=0 +toughness=0 +[/card] +[card] name=Star-Crowned Stag auto=@combat(attacking) source(this):tap target(creature|opponentBattlefield) text=Whenever Star-Crowned Stag attacks, tap target creature defending player controls. @@ -52000,6 +54007,15 @@ mana={2}{W} type=Instant [/card] [card] +name=Start from Scratch +auto=choice name(Deal 1 damage) target(player,creature,planeswalker) damage:1 +auto=choice name(Destroy artifact) target(artifact|battlefield) destroy +text=Choose one — -- • Start from Scratch deals 1 damage to any target. -- • Destroy target artifact. +mana={2}{R} +type=Sorcery +subtype=Lesson +[/card] +[card] name=Startling Development abilities=cycling target=creature @@ -52362,6 +54378,27 @@ power=2 toughness=2 [/card] [card] +name=Stonebinder's Familiar +auto=@movedto(*|exile) restriction{during my turn} turnlimited:counter(1/1) +text=Whenever one or more cards are put into exile during your turn, put a +1/+1 counter on Stonebinder's Familiar. This ability triggers only once each turn. +mana={W} +type=Creature +subtype=Spirit Dog +power=1 +toughness=1 +[/card] +[card] +name=Stonebound Mentor +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot +auto=@movedto(*|mybattlefield,mystack,myhand,mylibrary,mysideboard,myexile,mycommandzone) from(mygraveyard):name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend +text=Whenever one or more cards leave your graveyard, scry 1. +mana={1}{R}{W} +type=Creature +subtype=Spirit Advisor +power=3 +toughness=3 +[/card] +[card] name=Stonecoil Serpent abilities=reach,trample auto=protection from(*[multicolor]) @@ -52374,6 +54411,17 @@ power=0 toughness=0 [/card] [card] +name=Stonerise Spirit +abilities=flying +auto={4}{E(*|mygraveyard)}:name(Creature gains flying) target(creature) transforms((,newability[flying])) ueot +text=Flying -- {4}, Exile a card from your graveyard: Target creature gains flying until end of turn. +mana={1}{W} +type=Creature +subtype=Spirit Bird +power=1 +toughness=2 +[/card] +[card] name=Stonewise Fortifier auto={4}{W}:preventAllDamage to(this) ueot text={4}{W}: Prevent all damage that would be dealt to Stonewise Fortifier by target creature this turn. @@ -52538,6 +54586,17 @@ mana={2}{U}{R} type=Legendary Enchantment [/card] [card] +name=Storm-Kiln Artist +auto=foreach(artifact|mybattlefield) 1/0 +auto=@movedto(*[instant;sorcery]|mystack):name(Create Treasure) token(Treasure Sur) +text=Storm-Kiln Artist gets +1/+0 for each artifact you control. -- Magecraft — Whenever you cast or copy an instant or sorcery spell, create a Treasure token. +mana={3}{R} +type=Creature +subtype=Dwarf Shaman +power=2 +toughness=2 +[/card] +[card] name=Storm's Wrath auto=damage:4 all(creature,planeswalker) text=Storm’s Wrath deals 4 damage to each creature and each planeswalker. @@ -52741,6 +54800,17 @@ mana={X}{G}{G} type=Instant [/card] [card] +name=Strict Proctor +#MISSING:counter ability +abilities=flying +text=Flying -- Whenever a permanent entering the battlefield causes a triggered ability to trigger, counter that ability unless its controller pays {2}. +mana={1}{W} +type=Creature +subtype=Spirit Cleric +power=1 +toughness=3 +[/card] +[card] name=Striped Riverwinder abilities=opponentshroud,cycling autohand=__CYCLING__({U}) @@ -52752,6 +54822,16 @@ power=5 toughness=5 [/card] [card] +name=Strixhaven Stadium +auto={T}:add{C} +auto=@combatdamageof(player) from(creature|opponentbattlefield):counter(0/0,-1,Point) +auto=@combatdamagefoeof(player) from(creature|mybattlefield):counter(0/0,1,Point) +auto=@counteradded(0/0,1,Point) from(this) restriction{compare(hascnttime)~morethan~9}:wingame controller +text={T}: Add {C}. Put a point counter on Strixhaven Stadium. -- Whenever a creature deals combat damage to you, remove a point counter from Strixhaven Stadium. -- Whenever a creature you control deals combat damage to an opponent, put a point counter on Strixhaven Stadium. Then if it has ten or more point counters on it, remove them all and that player loses the game. +mana={3} +type=Artifact +[/card] +[card] name=Strongarm Tactics auto=ability$!name(Choose one) choice name(Discard Creature) notatarget(*[creature]|myhand) reject _ choice name(Discard non creature and loose 4 life) notatarget(*[-creature]|myhand) reject && life:-4!$ controller auto=ability$!name(Choose one) choice name(Discard Creature) notatarget(*[creature]|myhand) reject _ choice name(Discard non creature and loose 4 life) notatarget(*[-creature]|myhand) reject && life:-4!$ opponent @@ -52802,6 +54882,15 @@ mana={3}{G} type=Sorcery [/card] [card] +name=Study Break +target=creature +auto=tap +auto=name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot +text=Tap up to two target creatures. -- Learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) +mana={1}{W} +type=Instant +[/card] +[card] name=Study Hall aicode=activate transforms((,newability[all(*[zpos<=pnumofcommandcast]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveTo(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot auto={1}{T}:name(Add white mana) add{W} and!( transforms((,newability[@movedto(*[iscommander]|mybattlefield):scry:pnumofcommandcast scrycore delayed dontshow donothing scrycoreend scryend])) ueot )! @@ -53703,6 +55792,17 @@ power=1 toughness=1 [/card] [card] +name=Symmetry Sage +abilities=flying +auto=@movedto(*[instant;sorcery]|mystack):name(Creature has base power 2) target(creature|mybattlefield) transforms((,settoughness=2)) ueot +text=Flying -- Magecraft — Whenever you cast or copy an instant or sorcery spell, target creature you control has base power 2 until end of turn. +mana={U} +type=Creature +subtype=Human Wizard +power=0 +toughness=2 +[/card] +[card] name=Synchronized Spellcraft target=creature auto=damage:4 @@ -54158,6 +56258,18 @@ power=2 toughness=2 [/card] [card] +name=Tanazir Quandrix +abilities=flying,trample +auto=name(Double the 1/1 counters) target(creature[counter{1/1}]|mybattlefield) transforms((,newability[thisforeach(counter{1/1.1}) counter(1/1) all(this)])) oneshot +auto=@combat(attacking) source(this):may name(Transform all other creatures) all(creature|mybattlefield) becomes(,power/toughness) ueot +text=Flying, trample -- When Tanazir Quandrix enters the battlefield, double the number of +1/+1 counters on target creature you control. -- Whenever Tanazir Quandrix attacks, you may have the base power and toughness of other creatures you control become equal to Tanazir Quandrix's power and toughness until end of turn. +mana={3}{G}{U} +type=Legendary Creature +subtype=Elder Dragon +power=4 +toughness=4 +[/card] +[card] name=Tangleclaw Werewolf auto={6}{G}:flip(Fibrous Entangler) text=Tangleclaw Werewolf can block an additional creature each combat. -- {6}{G}: Transform Tangleclaw Werewolf. @@ -54186,6 +56298,14 @@ text=Tangle Vale enters the battlefield tapped. -- {T}: Add {G}. type=Land [/card] [card] +name=Tangletrap +auto=if type(creature[flying]|battlefield)~morethan~0 then choice name(Deals 5 damage) name(Deals 5 damage) target(creature[flying]|battlefield) damage:5 +auto=if type(artifact|battlefield)~morethan~0 then choice name(Destroy artifact) name(Destroy artifact) target(artifact|battlefield) destroy +text=Choose one — -- • Tangletrap deals 5 damage to target creature with flying. -- • Destroy target artifact. +mana={1}{G} +type=Instant +[/card] +[card] name=Tar Fiend auto=choice name(Don't sacrifice any creature) donothing auto=if type(*[creature]|myBattlefield)~morethan~0 then choice name(Sacrifice 1 creature) ability$!sacrifice notatarget(creature|mybattlefield)!$ controller && counter(1/1,2) all(this) && ability$!name(Discard 1 card) reject notatarget(*|myhand)!$ opponent @@ -54331,6 +56451,34 @@ power=4 toughness=6 [/card] [card] +name=Teach by Example +auto=emblem transforms((,newability[@movedto(*[instant;sorcery]|myStack) turnlimited:all(trigger[to]) activate castcard(copied noevent)])) ueot +text=When you cast your next instant or sorcery spell this turn, copy that spell. You may choose new targets for the copy. +mana={UR}{UR} +type=Instant +[/card] +[card] +name=Teachings of the Archaics +auto=if compare(type:*:opponenthand)~morethan~compare(type:*:myhand) then if compare(type:*:opponenthandminustype:*:myhandminusend)~lessthan~4 then draw:2 controller +auto=if compare(type:*:opponenthandminustype:*:myhandminusend)~morethan~3 then draw:3 controller +text=If an opponent has more cards in hand than you, draw two cards. Draw three cards instead if an opponent has at least four more cards in hand than you. +mana={2}{U} +type=Sorcery +subtype=Lesson +[/card] +[card] +name=Team Pennant +auto={3}:equip +auto={1}:rehook target(creature[token]|mybattlefield) +auto=teach(creature) 1/1 +auto=teach(creature) vigilance +auto=teach(creature) trample +text=Equipped creature gets +1/+1 and has vigilance and trample. -- Equip creature token {1} -- Equip {3} +mana={1} +type=Artifact +subtype=Equipment +[/card] +[card] name=Team Spirit auto=choice name(Target opponent) all(creature|opponentbattlefield) 1/1 ueot auto=choice name(Target controller) all(creature|mybattlefield) 1/1 ueot @@ -54543,6 +56691,14 @@ mana={2}{U} type=Sorcery [/card] [card] +name=Tempted by the Oriq +target=*[creature;planeswalker;manacost<=3]|opponentbattlefield +auto=moveto(mybattlefield) +text=For each opponent, gain control of up to one target creature or planeswalker that player controls with mana value 3 or less. +mana={1}{U}{U}{U} +type=Sorcery +[/card] +[card] name=Tempting Contract auto=@each my upkeep:if compare(genrand2)~equalto~0 then token(Treasure Sur) && token(Treasure Sur) opponent text=At the beginning of your upkeep, each opponent may create a Treasure token. For each opponent who does, you create a Treasure token. @@ -54572,6 +56728,13 @@ power=4 toughness=4 [/card] [card] +name=Tend the Pests +auto=thisforeach(storedpower>0) token(Pest,Creature Pest,1/1,green,blue) and!( transforms((,newability[@movedto(this|mygraveyard) from(battlefield):life:1 controller])) forever )! +text=As an additional cost to cast this spell, sacrifice a creature. -- Create X 1/1 black and green Pest creature tokens with "When this creature dies, you gain 1 life," where X is the sacrificed creature's power. +mana={B}{G}{S(creature|mybattlefield)} +type=Instant +[/card] +[card] name=Tendershoot Dryad auto=_ASCEND_ auto=@movedTo(*|myBattlefield):_ASCEND_ @@ -54670,8 +56833,6 @@ abilities=menace other={3}{B} name(Tergrid's Lantern) otherrestriction=can play artifact autostack=if paid(alternative) then flip(Tergrid's Lantern) forcetype(Legendary Artifact) -auto={0}:sacrifice target(*|opponentbattlefield) -auto={0}:reject target(*|opponenthand) auto=@sacrificed(*[-instant;-sorcery;-token]|opponentbattlefield) restriction{compare(isflipped)~equalto~0}:may name(Put on battlefield) transforms((,newability[all(*[zpos=type:*:opponentgraveyard]|opponentgraveyard) moveto(mybattlefield)])) forever auto=@discarded(*[-instant;-sorcery]|opponenthand) restriction{compare(isflipped)~equalto~0}:may name(Put on battlefield) transforms((,newability[all(*[zpos=type:*:opponentgraveyard]|opponentgraveyard) moveto(mybattlefield)])) forever text=Menace -- Whenever an opponent sacrifices a nontoken permanent or discards a permanent card, you may put that card onto the battlefield under your control from their graveyard. @@ -54779,6 +56940,14 @@ mana={1}{W} type=Instant [/card] [card] +name=Test of Talents +target=*[instant;sorcery]|stack +auto=transforms((,newability[fizzle],newability[all(*[share!name!]|mygraveyard) moveto(exile)],newability[all(*[share!name!]|myhand) transforms((,newability[moveto(exile)],newability[draw:1 controller])) oneshot],newability[all(*[share!name!]|mylibrary) moveto(exile) and!( shuffle )!])) oneshot +text=Counter target instant or sorcery spell. Search its controller's graveyard, hand, and library for any number of cards with the same name as that spell and exile them. That player shuffles, then draws a card for each card exiled from their hand this way. +mana={1}{U} +type=Instant +[/card] +[card] name=Tetsuko Umezawa, Fugitive auto=lord(creature[power<=1]|myBattlefield) unblockable auto=lord(creature[toughness<=1]|myBattlefield) unblockable @@ -55001,6 +57170,15 @@ type=Enchantment subtype=Saga [/card] [card] +name=The Biblioplex +aicode=activate moveTo(myhand) target(*[instant;sorcery;zpos=1]|mylibrary) +auto={T}:add{C} +auto={2}{T} restriction{type(*|myhand)~equalto~0}:name(Look top card) reveal:1 optionone target(*[instant;sorcery]|reveal) moveto(hand) optiononeend optiontwo name(Put back or graveyard) target(<1>*|reveal) transforms((,newability[choice name(Put back) moveto(mylibrary)],newability[choice name(Put graveyard) moveto(mygraveyard)])) oneshot optiontwoend revealend +auto={2}{T} restriction{type(*|myhand)~equalto~7}:name(Look top card) reveal:1 optionone target(*[instant;sorcery]|reveal) moveto(hand) optiononeend optiontwo name(Put back or graveyard) target(<1>*|reveal) transforms((,newability[choice name(Put back) moveto(mylibrary)],newability[choice name(Put graveyard) moveto(mygraveyard)])) oneshot optiontwoend revealend +text={T}: Add {C}. -- {2}, {T}: Look at the top card of your library. If it's an instant or sorcery card, you may reveal it and put it into your hand. If you don't put the card into your hand, you may put it into your graveyard. Activate only if you have exactly zero or seven cards in hand. +type=Land +[/card] +[card] name=The Big Idea auto={2}{BR}{BR}{T}:all(this) rolladie 6 winability token(Brainiac,Creature Brainiac,1/1,red)*lastrollresult winabilityend loseability token(Brainiac,Creature Brainiac,1/1,red)*lastrollresult loseabilityend rollend text={2}{BR}{BR}, {T}: Roll a six-sided die. Create a number of 1/1 red Brainiac creature tokens equal to the result. -- Tap three untapped Brainiacs you control: The next time you would roll a six-sided die, instead roll two six-sided dice and use the total of those results. @@ -55722,6 +57900,14 @@ mana={1}{R}{D} type=Instant [/card] [card] +name=Thrilling Discovery +auto=life:2 controller +auto=may name(Discard 2 and draw 3) target(*|myhand) transforms((,newability[reject],newability[name(Discard another card) target(*|myhand) transforms((,newability[reject],newability[draw:3 controller])) oneshot])) oneshot +text=You gain 2 life. Then you may discard two cards. If you do, draw three cards. +mana={R}{W} +type=Sorcery +[/card] +[card] name=Thrilling Encore auto=moveTo(myBattlefield) all(creature[fresh]|graveyard) text=Put onto the battlefield under your control all creature cards in all graveyards that were put there from the battlefield this turn. @@ -55999,6 +58185,23 @@ power=5 toughness=5 [/card] [card] +name=Thunderous Orator +abilities=vigilance +auto=@combat(attacking) source(this) restriction{type(creature[flying]|myBattlefield)~morethan~0}:name(Gains flying) transforms((,newability[flying])) ueot +auto=@combat(attacking) source(this) restriction{type(creature[first strike]|myBattlefield)~morethan~0}:name(Gains first strike) transforms((,newability[first strike])) ueot +auto=@combat(attacking) source(this) restriction{type(creature[double strike]|myBattlefield)~morethan~0}:name(Gains double strike) transforms((,newability[double strike])) ueot +auto=@combat(attacking) source(this) restriction{type(creature[deathtouch]|myBattlefield)~morethan~0}:name(Gains deathtouch) transforms((,newability[deathtouch])) ueot +auto=@combat(attacking) source(this) restriction{type(creature[lifelink]|myBattlefield)~morethan~0}:name(Gains lifelink) transforms((,newability[lifelink])) ueot +auto=@combat(attacking) source(this) restriction{type(creature[menace]|myBattlefield)~morethan~0}:name(Gains menace) transforms((,newability[menace])) ueot +auto=@combat(attacking) source(this) restriction{type(creature[trample]|myBattlefield)~morethan~0}:name(Gains trample) transforms((,newability[trample])) ueot +text=Vigilance -- Whenever Thunderous Orator attacks, it gains flying until end of turn if you control a creature with flying. The same is true for first strike, double strike, deathtouch, indestructible, lifelink, menace, and trample. +mana={1}{W} +type=Creature +subtype=Kor Wizard +power=2 +toughness=2 +[/card] +[card] name=Thunderous Snapper auto=@movedTo(*[manacost>=5]|mystack):draw:1 controller text=Whenever you cast a spell with converted mana cost 5 or greater, draw a card. @@ -56644,7 +58847,7 @@ abilities=trample other={1}{R} name(Toralf's Hammer) otherrestriction=can play equipment autostack=if paid(alternative) then flip(Toralf's Hammer) forcetype(Legendary Artifact) -auto=@noncombatdamaged(*[creature;planeswalker]|opponentbattlefield):name(Deals damage) target(player,creature,planeswalker) damage:excessdamage +auto=@noncombatdamaged(*[creature;planeswalker]|opponentbattlefield) restriction{compare(isflipped)~equalto~0}:name(Deals damage) target(player,creature,planeswalker) damage:excessdamage text=Trample -- Whenever a creature or planeswalker an opponent controls is dealt excess noncombat damage, Toralf, God of Fury deals damage equal to the excess to any target other than that permanent. mana={2}{R}{R} type=Legendary Creature @@ -56749,6 +58952,40 @@ mana={X}{R}{R} type=Sorcery [/card] [card] +name=Torrent Sculptor +other={1}{R} name(Flamethrower Sonata) +otherrestriction=can play sorcery +autostack=if paid(alternative) then transforms((,newability[moveto(mygraveyard)],newability[activate castcard(named!:flamethrower sonata:!)])) forever +auto=@targeted(this|myBattlefield) from(*[instant;sorcery]|opponentzones):choice name(This spell costs 2 more) name(This spell costs 2 more) target(*[instant;sorcery]|opponentzones) transforms((,newability[pay[[{2}]] name(pay 2 mana) donothing?fizzle])) oneshot +auto=if type(*[instant;sorcery:manacost=0]|mygraveyard)~morethan~0 then choice name(Exile instant or sorcery with manacost 0) name(Exile instant or sorcery with manacost 0) target(*[instant;sorcery;manacost=0]|mygraveyard) moveto(myexile) +auto=if type(*[instant;sorcery:manacost=1]|mygraveyard)~morethan~0 then choice name(Exile instant or sorcery with manacost 1) name(Exile instant or sorcery with manacost 1) target(*[instant;sorcery;manacost=1]|mygraveyard) moveto(myexile) and!( all(this) counter(1/1) )! +auto=if type(*[instant;sorcery:manacost=2]|mygraveyard)~morethan~0 then choice name(Exile instant or sorcery with manacost 2) name(Exile instant or sorcery with manacost 2) target(*[instant;sorcery;manacost=2]|mygraveyard) moveto(myexile) and!( all(this) counter(1/1) )! +auto=if type(*[instant;sorcery:manacost=3]|mygraveyard)~morethan~0 then choice name(Exile instant or sorcery with manacost 3) name(Exile instant or sorcery with manacost 3) target(*[instant;sorcery;manacost=3]|mygraveyard) moveto(myexile) and!( all(this) counter(1/1,2) )! +auto=if type(*[instant;sorcery:manacost=4]|mygraveyard)~morethan~0 then choice name(Exile instant or sorcery with manacost 4) name(Exile instant or sorcery with manacost 4) target(*[instant;sorcery;manacost=4]|mygraveyard) moveto(myexile) and!( all(this) counter(1/1,2) )! +auto=if type(*[instant;sorcery:manacost=5]|mygraveyard)~morethan~0 then choice name(Exile instant or sorcery with manacost 5) name(Exile instant or sorcery with manacost 5) target(*[instant;sorcery;manacost=5]|mygraveyard) moveto(myexile) and!( all(this) counter(1/1,3) )! +auto=if type(*[instant;sorcery:manacost=6]|mygraveyard)~morethan~0 then choice name(Exile instant or sorcery with manacost 6) name(Exile instant or sorcery with manacost 6) target(*[instant;sorcery;manacost=6]|mygraveyard) moveto(myexile) and!( all(this) counter(1/1,3) )! +auto=if type(*[instant;sorcery:manacost=7]|mygraveyard)~morethan~0 then choice name(Exile instant or sorcery with manacost 7) name(Exile instant or sorcery with manacost 7) target(*[instant;sorcery;manacost=7]|mygraveyard) moveto(myexile) and!( all(this) counter(1/1,4) )! +auto=if type(*[instant;sorcery:manacost=8]|mygraveyard)~morethan~0 then choice name(Exile instant or sorcery with manacost 8) name(Exile instant or sorcery with manacost 8) target(*[instant;sorcery;manacost=8]|mygraveyard) moveto(myexile) and!( all(this) counter(1/1,4) )! +auto=if type(*[instant;sorcery:manacost=9]|mygraveyard)~morethan~0 then choice name(Exile instant or sorcery with manacost 9) name(Exile instant or sorcery with manacost 9) target(*[instant;sorcery;manacost=9]|mygraveyard) moveto(myexile) and!( all(this) counter(1/1,5) )! +auto=if type(*[instant;sorcery:manacost=10]|mygraveyard)~morethan~0 then choice name(Exile instant or sorcery with manacost 10) name(Exile instant or sorcery with manacost 10) target(*[instant;sorcery;manacost=10]|mygraveyard) moveto(myexile) and!( all(this) counter(1/1,5) )! +auto=if type(*[instant;sorcery:manacost=11]|mygraveyard)~morethan~0 then choice name(Exile instant or sorcery with manacost 11) name(Exile instant or sorcery with manacost 11) target(*[instant;sorcery;manacost=11]|mygraveyard) moveto(myexile) and!( all(this) counter(1/1,6) )! +auto=if type(*[instant;sorcery:manacost=12]|mygraveyard)~morethan~0 then choice name(Exile instant or sorcery with manacost 12) name(Exile instant or sorcery with manacost 12) target(*[instant;sorcery;manacost=12]|mygraveyard) moveto(myexile) and!( all(this) counter(1/1,6) )! +auto=if type(*[instant;sorcery:manacost=13]|mygraveyard)~morethan~0 then choice name(Exile instant or sorcery with manacost 13) name(Exile instant or sorcery with manacost 13) target(*[instant;sorcery;manacost=13]|mygraveyard) moveto(myexile) and!( all(this) counter(1/1,7) )! +auto=if type(*[instant;sorcery:manacost=14]|mygraveyard)~morethan~0 then choice name(Exile instant or sorcery with manacost 14) name(Exile instant or sorcery with manacost 14) target(*[instant;sorcery;manacost=14]|mygraveyard) moveto(myexile) and!( all(this) counter(1/1,7) )! +auto=if type(*[instant;sorcery:manacost=15]|mygraveyard)~morethan~0 then choice name(Exile instant or sorcery with manacost 15) name(Exile instant or sorcery with manacost 15) target(*[instant;sorcery;manacost=15]|mygraveyard) moveto(myexile) and!( all(this) counter(1/1,8) )! +auto=if type(*[instant;sorcery:manacost=16]|mygraveyard)~morethan~0 then choice name(Exile instant or sorcery with manacost 16) name(Exile instant or sorcery with manacost 16) target(*[instant;sorcery;manacost=16]|mygraveyard) moveto(myexile) and!( all(this) counter(1/1,8) )! +auto=if type(*[instant;sorcery:manacost=17]|mygraveyard)~morethan~0 then choice name(Exile instant or sorcery with manacost 17) name(Exile instant or sorcery with manacost 17) target(*[instant;sorcery;manacost=17]|mygraveyard) moveto(myexile) and!( all(this) counter(1/1,9) )! +auto=if type(*[instant;sorcery:manacost=18]|mygraveyard)~morethan~0 then choice name(Exile instant or sorcery with manacost 18) name(Exile instant or sorcery with manacost 18) target(*[instant;sorcery;manacost=18]|mygraveyard) moveto(myexile) and!( all(this) counter(1/1,9) )! +auto=if type(*[instant;sorcery:manacost=19]|mygraveyard)~morethan~0 then choice name(Exile instant or sorcery with manacost 19) name(Exile instant or sorcery with manacost 19) target(*[instant;sorcery;manacost=19]|mygraveyard) moveto(myexile) and!( all(this) counter(1/1,10) )! +auto=if type(*[instant;sorcery:manacost>=20]|mygraveyard)~morethan~0 then choice name(Exile instant or sorcery with manacost 20) name(Exile instant or sorcery with manacost 20) target(*[instant;sorcery;manacost=20]|mygraveyard) moveto(myexile) and!( all(this) counter(1/1,10) )! +text=Ward {2} (Whenever this creature becomes the target of a spell or ability an opponent controls, counter it unless that player pays {2}.) -- When Torrent Sculptor enters the battlefield, exile an instant or sorcery card from your graveyard. Put a number of +1/+1 counters on Torrent Sculptor equal to half that card's mana value, rounded up. // Discard a card, then draw a card. When you discard an instant or sorcery card this way, Flamethrower Sonata deals damage equal to that card's mana value to target creature or planeswalker you don't control. +mana={2}{U}{U} +type=Creature +subtype=Merfolk Wizard +power=2 +toughness=2 +[/card] +[card] name=Toski, Bearer of Secrets abilities=nofizzle,indestructible,mustattack auto=@combatdamaged(player) from(creature|myBattlefield):draw:1 controller @@ -57302,7 +59539,7 @@ type=Enchantment [/card] [card] name=Trudge Garden -auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection]):pay({2}) token(Fungus Beast,Creature Fungus Beast,4/4,trample,green) +auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection;-Honor Troll]):pay({2}) token(Fungus Beast,Creature Fungus Beast,4/4,trample,green) text=Whenever you gain life, you may pay 2 . If you do, create a 4/4 green Fungus Beast creature token with trample. mana={2}{G} type=Enchantment @@ -57697,7 +59934,7 @@ toughness=4 [/card] [card] name=Twinblade Paladin -auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection]):counter(1/1) +auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection;-Honor Troll]):counter(1/1) auto=this(controllerlife > 24) double strike text=Whenever you gain life, put a +1/+1 counter on Twinblade Paladin. -- As long as you have 25 or more life, Twinblade Paladin has double strike. (It deals both first-strike and regular combat damage.) mana={3}{W} @@ -58607,6 +60844,19 @@ type=Artifact subtype=Equipment [/card] [card] +name=Uvilda, Dean of Perfection +other={3}{R}{R} name(Nassari, Dean of Expression) +otherrestriction=can play creature +autostack=if paid(alternative) then name(Nassari, Dean of Expression) name(Nassari, Dean of Expression) flip(Nassari, Dean of Expression) forcetype(Legendary Creature) +auto=this(variable{isflipped}<1) {T}:name(Exile instant or sorcery) target(*[instant;sorcery]|myhand) moveto(exile) and!( transforms((,newability[counter(0/0.3.hone)],newability[@each my upkeep restriction{compare(hascnthone)~morethan~0}:counter(0/0.-1.hone)],newability[@each my upkeep restriction{compare(hascnthone)~equalto~1}:changecost(colorless:-4)],newability[@each my upkeep restriction{compare(hascnthone)~lessthan~2}:canplayfromexile])) forever +text={T}: You may exile an instant or sorcery card from your hand and put three hone counters on it. It gains "At the beginning of your upkeep, if this card is exiled, remove a hone counter from it" and "When the last hone counter is removed from this card, if it's exiled, you may cast it. It costs 4 less to cast this way." +mana={2}{U} +type=Legendary Creature +subtype=Djinn Wizard +power=2 +toughness=2 +[/card] +[card] name=Vacuumelt auto=choice name(Don't replicate) ability$!name(Return 1 creature) name(Return 1 creature) target(<1>creature) moveto(ownerhand)!$ controller auto=choice name(Replicate 1 time) ability$!name(Return 2 creatures) pay[[{2}{U}]] name(Return 2 creatures) target(<2>creature) moveto(ownerhand)!$ controller @@ -58700,6 +60950,20 @@ power=3 toughness=2 [/card] [card] +name=Valentin, Dean of the Vein +abilities=menace,lifelink +other={2}{G}{G} name(Lisette, Dean of the Root) +otherrestriction=can play creature +autostack=if paid(alternative) then name(Lisette, Dean of the Root) name(Lisette, Dean of the Root) flip(Lisette, Dean of the Root) forcetype(Legendary Creature) +auto=@movedto(creature[-token]|graveyard) from(opponentbattlefield) restriction{compare(isflipped)~equalto~0}:transforms((,newability[all(creature[zpos=type:*:opponentgraveyard]|opponentgraveyard) moveto(opponentexile) and!( pay({2}) name(pay 2 and create pest) token(Pest^Creature Pest^1/1^green^blue) and!( transforms((,newability[@movedto(this|mygraveyard) from(battlefield):life:1 controller])) forever )! )! ])) oneshot +text=Menace, lifelink -- If a nontoken creature an opponent controls would die, exile it instead. When you do, you may pay {2}. If you do, create a 1/1 black and green Pest creature token with "When this creature dies, you gain 1 life." +mana={B} +type=Legendary Creature +subtype=Vampire Warlock +power=1 +toughness=1 +[/card] +[card] name=Valiant Knight auto=lord(other knight|myBattlefield) +1/+1 auto={3}{W}{W}:all(knights|myBattlefield)) double strike ueot @@ -58918,6 +61182,14 @@ type=Artifact subtype=Equipment [/card] [card] +name=Vanishing Verse +target=*[-multicolor]|battlefield +auto=moveto(exile) +text=Exile target monocolored permanent. +mana={W}{B} +type=Instant +[/card] +[card] name=Vanquish the Weak target=creature[power<=3] auto=destroy @@ -59170,7 +61442,7 @@ toughness=2 [card] name=Veinwitch Coven abilities=menace -auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection]):pay({B}) target(creature|mygraveyard) moveto(myhand) +auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection;-Honor Troll]):pay({B}) target(creature|mygraveyard) moveto(myhand) text=Menace -- Whenever you gain life, you may pay {B}. If you do, return target creature card from your graveyard to your hand. mana={2}{B} type=Creature @@ -59179,6 +61451,18 @@ power=3 toughness=3 [/card] [card] +name=Velomachus Lorehold +abilities=flying,vigilance,haste +aicode=activate transforms((,newability[target(*[instant;sorcery;manacost<=power;zpos<=7]|mylibrary) transforms((,newability[may activate castcard(normal)],newability[all(*[zpos<=7]|mylibrary) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot +auto=@combat(attacking) source(this):name(Reveal top 7 cards) reveal:7 optionone name(Choose instant or sorcery) target(*[instant;sorcery;manacost<=power]|reveal) bottomoflibrary and!( becomes(spelltobecast) ueot )! optiononeend optiontwo name(put on bottom) target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend afterrevealed if type(spelltobecast|mylibrary)~morethan~0 then may name(Cast chosen spell) name(Cast chosen spell) all(spelltobecast|mylibrary) activate castcard(normal) afterrevealedend revealend +text=Flying, vigilance, haste -- Whenever Velomachus Lorehold attacks, look at the top seven cards of your library. You may cast an instant or sorcery spell with mana value less than or equal to Velomachus Lorehold's power from among them without paying its mana cost. Put the rest on the bottom of your library in a random order. +mana={5}{R}{W} +type=Legendary Creature +subtype=Elder Dragon +power=5 +toughness=5 +[/card] +[card] name=Venarian Gold target=creature auto=counter(0/0,x,Sleep) @@ -59200,6 +61484,17 @@ power=2 toughness=1 [/card] [card] +name=Venerable Warsinger +abilities=trample,vigilance +auto=@combatdamaged(player) from(this):name(Return creature) transforms((,newability[may name(Return creature) target(creature[manacost<=thatmuch]|mygraveyard) moveto(mybattlefield)])) oneshot +text=Vigilance, trample -- Whenever Venerable Warsinger deals combat damage to a player, you may return target creature card with mana value X or less from your graveyard to the battlefield, where X is the amount of damage Venerable Warsinger dealt to that player. +mana={1}{R}{W} +type=Creature +subtype=Spirit Cleric +power=3 +toughness=3 +[/card] +[card] name=Venerated Loxodon other={convoke} name(Convoke) auto=lord(creature[tapped;-attacking]|myBattlefield) counter(1/1,1) @@ -59404,6 +61699,23 @@ mana={3}{G} type=Sorcery [/card] [card] +name=Verdant Mastery +other={3}{G} name(Cast for less) +restriction=type(land[basic]|myLibrary)~morethan~0 +otherrestriction=type(land[basic]|myLibrary)~morethan~0 +auto=ifnot paid(alternative) then if type(land[basic]|myLibrary)~morethan~1 then ability$!name(Put 2 lands in play) name(Put 2 lands in play) target(<2>land[basic]|mylibrary) moveto(mybattlefield) and!( tap(noevent) )! !$ controller +auto=ifnot paid(alternative) then if type(land[basic]|myLibrary)~morethan~3 then ability$!name(Put 2 lands in your hand) name(Put 2 lands in your hand) target(<2>land[basic]|mylibrary) moveto(myhand)!$ controller +auto=ifnot paid(alternative) then if type(land[basic]|myLibrary)~equalto~3 then ability$!name(Put 1 land in your hand) name(Put 1 land in your hand) target(land[basic]|mylibrary) moveto(myhand)!$ controller +auto=ifnot paid(alternative) then if type(land[basic]|myLibrary)~equalto~1 then ability$!name(Put 1 land in play) name(Put 1 land in play) target(land[basic]|mylibrary) moveto(mybattlefield) and!( tap(noevent) )! !$ controller +auto=if paid(alternative) then ability$!name(Put 1 land in opponent battlefield) name(Put 1 land in opponent battlefield) target(land[basic]|mylibrary) moveto(opponentbattlefield) and!( tap(noevent) )! !$ controller +auto=if paid(alternative) then if type(land[basic]|myLibrary)~equalto~2 then ability$!name(Put 1 land in play) name(Put 1 land in play) target(land[basic]|mylibrary) moveto(mybattlefield) and!( tap(noevent) )! !$ controller +auto=if paid(alternative) then if type(land[basic]|myLibrary)~morethan~2 then ability$!name(Put 2 lands in play) name(Put 2 lands in play) target(<2>land[basic]|mylibrary) moveto(mybattlefield) and!( tap(noevent) )! !$ controller +auto=if paid(alternative) then if type(land[basic]|myLibrary)~morethan~3 then ability$!name(Put 1 land in your hand) name(Put 1 land in your hand) target(land[basic]|mylibrary) moveto(myhand)!$ controller +text=You may pay {3}{G} rather than pay this spell's mana cost. -- Search your library for up to four basic land cards and reveal them. Put one of them onto the battlefield tapped under an opponent's control if the {3}{G} cost was paid. Put two of them onto the battlefield tapped under your control and the rest into your hand. Then shuffle. +mana={5}{G} +type=Sorcery +[/card] +[card] name=Verdant Rebirth target=creature auto=transforms((,newability[handdeath])) ueot @@ -59783,6 +62095,14 @@ power=5 toughness=3 [/card] [card] +name=Vineglimmer Snarl +auto=if type(*[forest;island]|myhand)~equalto~0 then tap(noevent) +auto={T}:Add{G} +auto={T}:Add{U} +text=As Vineglimmer Snarl enters the battlefield, you may reveal a Forest or Island card from your hand. If you don't, Vineglimmer Snarl enters the battlefield tapped. -- {T}: Add {G} or {U}. +type=Land +[/card] +[card] name=Vineshaper Mystic auto=target(merfolk|mybattlefield) counter(1/1,1) text=When Vineshaper Mystic enters the battlefield, put a +1/+1 counter on each of up to two target Merfolk you control. @@ -60311,6 +62631,17 @@ power=6 toughness=6 [/card] [card] +name=Vortex Runner +auto=aslongas(land|mybattlefield) 1/0 >7 +auto=aslongas(land|mybattlefield) unblockable >7 +text=As long as you control eight or more lands, Vortex Runner gets +1/+0 and can't be blocked. +mana={2}{U} +type=Creature +subtype=Human Wizard +power=2 +toughness=3 +[/card] +[card] name=Vow of Torment target=creature auto=2/2 @@ -60574,10 +62905,13 @@ type=Sorcery [/card] [card] name=Wandering Archaic +other={3} name(Explore the Vastlands) +otherrestriction=can play sorcery +autostack=if paid(alternative) then transforms((,newability[moveto(mygraveyard)],newability[activate castcard(named!:explore the vastlands:!)])) forever auto=@movedto(*[instant;sorcery]|opponentstack):all(trigger[to]) transforms((,newability[[pay[[{2}]] name(pay 2 mana) donothing?counter(0/0.1.WanderingEffect)])) oneshot auto=@counteradded(0/0,1,WanderingEffect) from(instant|opponentstack):may name(Copy spell) all(instant[counter{0/0.1.WanderingEffect}]|opponentstack) activate castcard(copied) auto=@counteradded(0/0,1,WanderingEffect) from(sorcery|opponentstack):may name(Copy spell) all(sorcery[counter{0/0.1.WanderingEffect}]|opponentstack) activate castcard(copied) -text=Whenever an opponent casts an instant or sorcery spell, they may pay {2}. If they don't, you may copy that spell. You may choose new targets for the copy. +text=Whenever an opponent casts an instant or sorcery spell, they may pay {2}. If they don't, you may copy that spell. You may choose new targets for the copy. // Each player looks at the top five cards of their library and may reveal a land card and/or an instant or sorcery card from among them. Each player puts the cards they revealed this way into their hand and the rest on the bottom of their library in a random order. Each player gains 3 life. mana={5} type=Creature subtype=Avatar @@ -60932,6 +63266,17 @@ power=2 toughness=2 [/card] [card] +name=Waterfall Aerialist +abilities=flying +auto=@targeted(this|myBattlefield) from(*[instant;sorcery]|opponentzones):choice name(This spell costs 2 more) name(This spell costs 2 more) target(*[instant;sorcery]|opponentzones) transforms((,newability[pay[[{2}]] name(pay 2 mana) donothing?fizzle])) oneshot +text=Flying -- Ward {2} (Whenever this creature becomes the target of a spell or ability an opponent controls, counter it unless that player pays {2}.) +mana={3}{U} +type=Creature +subtype=Djinn Wizard +power=3 +toughness=1 +[/card] +[card] name=Waterkin Shaman auto=@movedto(creature[flying]|mybattlefield):1/1 ueot text=Whenever a creature with flying enters the battlefield under your control, Waterkin Shaman gets +1/+1 until end of turn. @@ -61814,6 +64159,51 @@ mana={U}{U} type=Instant [/card] [card] +name=Witherbloom Apprentice +auto=@movedto(*[instant;sorcery]|mystack):life:1 controller && life:-1 opponent +text=Magecraft — Whenever you cast or copy an instant or sorcery spell, each opponent loses 1 life and you gain 1 life. +mana={B}{G} +type=Creature +subtype=Human Druid +power=2 +toughness=2 +[/card] +[card] +name=Witherbloom Campus +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot +auto=tap(noevent) +auto={4}{T}:name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend +auto={T}:add{B} +auto={T}:add{G} +text=Witherbloom Campus enters the battlefield tapped. -- {T}: Add {B} or {G}. -- {4}, {T}: Scry 1. +type=Land +[/card] +[card] +name=Witherbloom Command +auto=choice name(You mill and destroy permanent) transforms((,newability[deplete:3 controller],newability[target(land|mygraveyard) moveto(myhand)])) oneshot && ability$!name(Destroy permanent) name(Destroy permanent) target(*[-creature;-land;manacost<=2]|battlefield) destroy!$ controller +auto=choice name(Opponent mills and destroy permanent) transforms((,newability[deplete:3 opponent],newability[target(land|mygraveyard) moveto(myhand)])) oneshot && ability$!name(Destroy permanent) name(Destroy permanent) target(*[-creature;-land;manacost<=2]|battlefield) destroy!$ controller +auto=choice name(You mill and creature gets -3/-1) transforms((,newability[deplete:3 controller],newability[target(land|mygraveyard) moveto(myhand)])) oneshot && ability$!name(Creature gets -3/-1) name(Creature gets -3/-1) target(creature|battlefield) -3/-1 ueot!$ controller +auto=choice name(Opponent mills and creature gets -3/-1) transforms((,newability[deplete:3 opponent],newability[target(land|mygraveyard) moveto(myhand)])) oneshot && ability$!!name(Creature gets -3/-1) name(Creature gets -3/-1) target(creature|battlefield) -3/-1 ueot!$ controller +auto=choice name(You mill and you gain life) transforms((,newability[life:-2 opponent],newability[life:2 controller],newability[deplete:3 controller],newability[target(land|mygraveyard) moveto(myhand)])) oneshot +auto=choice name(Opponent mills and you gain life) transforms((,newability[life:-2 opponent],newability[life:2 controller],newability[deplete:3 opponent],newability[target(land|mygraveyard) moveto(myhand)])) oneshot +auto=choice name(Destroy permanent and creature gets -3/-1) target(*[-creature;-land;manacost<=2]|battlefield) destroy && ability$!name(Creature gets -3/-1) name(Creature gets -3/-1) target(creature|battlefield) -3/-1 ueot!$ controller +auto=choice name(Destroy permanent and you gain life) target(*[-creature;-land;manacost<=2]|battlefield) destroy && life:2 controller && life:-2 opponent +auto=choice name(Creature gets -3/-1 and you gain life) target(creature|battlefield) -3/-1 ueot && life:2 controller && life:-2 opponent +text=Choose two — -- • Target player mills three cards, then you return a land card from your graveyard to your hand. -- • Destroy target noncreature, nonland permanent with mana value 2 or less. -- • Target creature gets -3/-1 until end of turn. -- • Target opponent loses 2 life and you gain 2 life. +mana={B}{G} +type=Sorcery +[/card] +[card] +name=Witherbloom Pledgemage +auto=@movedto(*[instant;sorcery]|mystack):name(Gain 1 life) life:1 controller +text=Magecraft — Whenever you cast or copy an instant or sorcery spell, you gain 1 life. +mana={3}{BG}{BG} +type=Creature +subtype=Treefolk Warlock +power=5 +toughness=5 +[/card] +[card] name=Withercrown target=creature auto=teach(creature) transforms((,setpower=0,newability[upcost[{L:1}] sacrifice])) @@ -62048,6 +64438,16 @@ power=3 toughness=6 [/card] [card] +name=Wormhole Serpent +auto={3}{U}:name(Creature becomes unblockable) target(creature) transforms((,newability[unblockable])) ueot +text={3}{U}: Target creature can't be blocked this turn. +mana={4}{U} +type=Creature +subtype=Serpent +power=3 +toughness=5 +[/card] +[card] name=Worthy Knight auto=@movedTo(creature[knight]|mystack):create(Human:creature Human:1/1:white) text=Whenever you cast a Knight spell, create a 1/1 white Human creature token. @@ -62538,6 +64938,16 @@ power=2 toughness=2 [/card] [card] +name=Zephyr Boots +auto={2}:equip +auto=teach(creature) flying +auto=@combatdamaged(player) from(mytgt):name(Draw and discard) draw:1 && reject target(*|myhand) +text=Equipped creature has flying. -- Whenever equipped creature deals combat damage to a player, draw a card, then discard a card. -- Equip {2} ({2}: Attach to target creature you control. Equip only as a sorcery.) +mana={1} +type=Artifact +subtype=Equipment +[/card] +[card] name=Zephyr Gull abilities=flying mana={U} @@ -62598,6 +65008,18 @@ power=2 toughness=2 [/card] [card] +name=Zimone, Quandrix Prodigy +auto={1}{T}:name(Put land in play) target(land|myhand) moveto(mybattlefield) and!( tap(noevent) )! +auto=this(variable{type:land:mybattlefield}<8) {4}{T}:name(Draw 1 card) draw:1 controller +auto=this(variable{type:land:mybattlefield}>7) {4}{T}:name(Draw 2 cards) draw:2 controller +text={1}, {T}: You may put a land card from your hand onto the battlefield tapped. -- {4}, {T}: Draw a card. If you control eight or more lands, draw two cards instead. +mana={G}{U} +type=Legendary Creature +subtype=Human Wizard +power=1 +toughness=2 +[/card] +[card] name=Zndrsplt's Judgment auto=ability$!name(Create a token copy) name(Create a token copy) target(creature|mybattlefield) clone!$ controller auto=ability$!name(Return to hand) name(Return to hand) target(creature|mybattlefield) moveto(ownerhand)!$ opponent diff --git a/projects/mtg/bin/Res/sets/primitives/mtg.txt b/projects/mtg/bin/Res/sets/primitives/mtg.txt index 45666204a..24277f051 100644 --- a/projects/mtg/bin/Res/sets/primitives/mtg.txt +++ b/projects/mtg/bin/Res/sets/primitives/mtg.txt @@ -1,6 +1,6 @@ #Primitives Pack for Wagic the Homebrew. #Please keep these card alphabetized, and try to have the "name=" line at the top of each card -#I sorted this programatically so the other comments are removed except for AUTO_DEFINE - Vitty85 30-11-2020 +#I sorted this programatically so the other comments are removed except for AUTO_DEFINE - Vitty85 25-04-2021 [card] name=Abandon Reason target=creature @@ -1975,7 +1975,7 @@ type=Enchantment [/card] [card] name=Ajani's Pridemate -auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection]):counter(1/1,1) +auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection;-Honor Troll]):counter(1/1,1) text=Whenever you gain life, put a +1/+1 counter on Ajani's Pridemate. mana={1}{W} type=Creature @@ -3466,8 +3466,7 @@ type=Sorcery [/card] [card] name=Ancient Amphitheater -auto=tap(noevent) -auto=aslongas(giant|myHand) untap +auto=if type(*[giant]|myhand)~equalto~0 then tap(noevent) auto={T}:Add{R} auto={T}:Add{W} text=As Ancient Amphitheater enters the battlefield, you may reveal a Giant card from your hand. If you don't, Ancient Amphitheater enters the battlefield tapped. -- {T}: Add {R} or {W} to your mana pool. @@ -5144,7 +5143,7 @@ toughness=4 [card] name=Archangel of Thune abilities=flying,lifelink -auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection]):all(creature|mybattlefield) counter(1/1,1) +auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection;-Honor Troll]):all(creature|mybattlefield) counter(1/1,1) text=Flying. -- Lifelink. -- Whenever you gain life, put a +1/+1 counter on each creature you control. mana={3}{W}{W} type=Creature @@ -6907,8 +6906,7 @@ toughness=1 [/card] [card] name=Auntie's Hovel -auto=tap(noevent) -auto=aslongas(goblin|myHand) untap +auto=if type(*[goblin]|myhand)~equalto~0 then tap(noevent) auto={T}:Add{B} auto={T}:Add{R} text=As Auntie's Hovel enters the battlefield, you may reveal a Goblin card from your hand. If you don't, Auntie's Hovel enters the battlefield tapped. -- {T}: Add {B} or {R} to your mana pool. @@ -12219,7 +12217,7 @@ type=Enchantment [/card] [card] name=Bloodbond Vampire -auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection]):counter(1/1,1) +auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection;-Honor Troll]):counter(1/1,1) text=Whenever you gain life, put a +1/+1 counter on Bloodbond Vampire. mana={2}{B}{B} type=Creature @@ -19444,7 +19442,7 @@ toughness=2 [/card] [card] name=Choked Estuary -auto=aslongas(island,swamp|myhand) tap(noevent) <1 +auto=if type(*[island;swamp]|myhand)~equalto~0 then tap(noevent) auto={T}:add{U} auto={T}:add{B} text=As Choked Estuary enters the battlefield, you may reveal an Island or Swamp card from your hand. If you don't, Choked Estuary enters the battlefield tapped. -- {T}: Add {U} or {B} to your mana pool. @@ -20323,7 +20321,7 @@ toughness=1 [card] name=Cliffhaven Vampire abilities=flying -auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection]):life:-1 opponent +auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection;-Honor Troll]):life:-1 opponent text=Flying -- Whenever you gain life, each opponent loses 1 life. mana={2}{W}{B} type=Creature @@ -32126,7 +32124,7 @@ toughness=4 [card] name=Drogskol Reaver abilities=flying,double strike,lifelink -auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection]):draw:1 controller +auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection;-Honor Troll]):draw:1 controller text=Flying, double strike, lifelink -- Whenever you gain life, draw a card. mana={5}{W}{U} type=Creature @@ -41212,8 +41210,7 @@ toughness=1 [/card] [card] name=Flamekin Village -auto=tap(noevent) -auto=aslongas(Elemental|myHand) untap +auto=if type(*[elemental]|myhand)~equalto~0 then tap(noevent) auto={T}:Add{r} auto={r}{t}:target(creature) haste ueot text=As Flamekin Village enters the battlefield, you may reveal an Elemental card from your hand. If you don't, Flamekin Village enters the battlefield tapped. -- {T}: Add {R} to your mana pool. -- {R}, {T}: Target creature gains haste until end of turn. @@ -42707,7 +42704,7 @@ toughness=1 [/card] [card] name=Foreboding Ruins -auto=aslongas(mountain,swamp|myhand) tap(noevent) <1 +auto=if type(*[mountain;swamp]|myhand)~equalto~0 then tap(noevent) auto={T}:add{B} auto={T}:add{R} text=As Foreboding Ruins enters the battlefield, you may reveal a Swamp or Mountain card from your hand. If you don't, Foreboding Ruins enters the battlefield tapped. -- {T}: Add {B} or {R} to your mana pool. @@ -42962,7 +42959,7 @@ toughness=6 [/card] [card] name=Fortified Village -auto=aslongas(forest,plains|myhand) tap(noevent) <1 +auto=if type(*[plains;forest]|myhand)~equalto~0 then tap(noevent) auto={T}:add{G} auto={T}:add{W} text=As Fortified Village enters the battlefield, you may reveal a Forest or Plains card from your hand. If you don't, Fortified Village enters the battlefield tapped. -- {T}: Add {G} or {W} to your mana pool. @@ -44475,7 +44472,7 @@ type=Sorcery [/card] [card] name=Game Trail -auto=aslongas(mountain,forest|myhand) tap(noevent) <1 +auto=if type(*[mountain;forest]|myhand)~equalto~0 then tap(noevent) auto={T}:add{R} auto={T}:add{G} text=As Game Trail enters the battlefield, you may reveal a Mountain or Forest card from your hand. If you don't, Game Trail enters the battlefield tapped. -- {T}: Add {R} or {G} to your mana pool. @@ -46418,8 +46415,7 @@ toughness=3 [/card] [card] name=Gilt-Leaf Palace -auto=tap(noevent) -auto=aslongas(elf|myHand) untap +auto=if type(*[elf]|myhand)~equalto~0 then tap(noevent) auto={T}:Add{B} auto={T}:Add{G} text=As Gilt-Leaf Palace enters the battlefield, you may reveal an Elf card from your hand. If you don't, Gilt-Leaf Palace enters the battlefield tapped. -- {T}: Add {B} or {G} to your mana pool. @@ -61152,7 +61148,7 @@ toughness=2 [/card] [card] name=Kalastria Nightwatch -auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection]):flying ueot +auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection;-Honor Troll]):flying ueot text=Whenever you gain life, Kalastria Nightwatch gains flying until end of turn. mana={4}{B} type=Creature @@ -61549,7 +61545,7 @@ type=Sorcery [/card] [card] name=Karlov of the Ghost Council -auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection]):counter(1/1,2) +auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection;-Honor Troll]):counter(1/1,2) auto={W}{B}{C(1/1,-6)}:moveto(exile) target(creature) text=Whenever you gain life, put two +1/+1 counters on Karlov of the Ghost Council. -- {W}{B}, Remove six +1/+1 counters from Karlov of the Ghost Council: Exile target creature. mana={W}{B} @@ -70056,7 +70052,7 @@ toughness=1 [card] name=Malakir Familiar abilities=flying,deathtouch -auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection]):1/1 ueot +auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection;-Honor Troll]):1/1 ueot text=Flying, deathtouch -- Whenever you gain life, Malakir Familiar gets +1/+1 until end of turn. mana={2}{B} type=Creature @@ -77134,7 +77130,7 @@ toughness=4 [/card] [card] name=Murmuring Bosk -auto=if type(treefolk|myhand)~lessthan~1 then tap(noevent) +auto=if type(treefolk|myhand)~equalto~0 then tap(noevent) auto={T}:Add{W} and!( damage:1 controller )! auto={T}:Add{B} and!( damage:1 controller )! text=({T}: Add {G} to your mana pool.) -- As Murmuring Bosk enters the battlefield, you may reveal a Treefolk card from your hand. If you don't, Murmuring Bosk enters the battlefield tapped. -- {T}: Add {W} or {B} to your mana pool. Murmuring Bosk deals 1 damage to you. @@ -80038,7 +80034,7 @@ toughness=1 [/card] [card] name=Nirkana Assassin -auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection]):deathtouch ueot +auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection;-Honor Troll]):deathtouch ueot text=Whenever you gain life, Nirkana Assassin gains deathtouch until end of turn. (Any amount of damage it deals to a creature is enough to destroy it.) mana={2}{B} type=Creature @@ -87568,7 +87564,7 @@ toughness=2 [/card] [card] name=Port Town -auto=aslongas(island,plains|myhand) tap(noevent) <1 +auto=if type(*[plains;island]|myhand)~equalto~0 then tap(noevent) auto={T}:add{W} auto={T}:add{U} text=As Port Town enters the battlefield, you may reveal a Plains or Island card from your hand. If you don't, Port Town enters the battlefield tapped. -- {T}: Add {W} or {U} to your mana pool. @@ -97604,8 +97600,7 @@ toughness=1 [/card] [card] name=Rustic Clachan -auto=tap(noevent) -auto=aslongas(kithkin|myHand) untap +auto=if type(*[kithkin]|myhand)~equalto~0 then tap(noevent) auto={T}:Add{W} autohand={1}{W}{discard}:counter(1/1,1) target(creature) text=As Rustic Clachan enters the battlefield, you may reveal a Kithkin card from your hand. If you don't, Rustic Clachan enters the battlefield tapped. -- {T}: Add {W} to your mana pool. -- Reinforce 1 - {1}{W} ({1}{W}, Discard this card: Put a +1/+1 counter on target creature.) @@ -101136,7 +101131,7 @@ type=Instant [/card] [card] name=Searing Meditation -auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection]):pay({2}) target(creature,player) damage:2 +auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection;-Honor Troll]):pay({2}) target(creature,player) damage:2 text=Whenever you gain life, you may pay {2}. If you do, Searing Meditation deals 2 damage to target creature or player. mana={1}{R}{W} type=Enchantment @@ -101263,8 +101258,7 @@ type=Artifact Land [/card] [card] name=Secluded Glen -auto=tap(noevent) -auto=aslongas(faerie|myHand) untap +auto=if type(*[faerie]|myhand)~equalto~0 then tap(noevent) auto={T}:Add{U} auto={T}:Add{B} text=As Secluded Glen enters the battlefield, you may reveal a Faerie card from your hand. If you don't, Secluded Glen enters the battlefield tapped. -- {T}: Add {U} or {B} to your mana pool. @@ -102343,7 +102337,7 @@ type=Sorcery [/card] [card] name=Serene Steward -auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection]):pay({W}) counter(1/1) target(creature) +auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection;-Honor Troll]):pay({W}) counter(1/1) target(creature) text=Whenever you gain life, you may pay {W}. If you do, put a +1/+1 counter on target creature. mana={1}{W} type=Creature @@ -131082,7 +131076,7 @@ toughness=5 [card] name=Wall of Limbs abilities=defender -auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection]):counter(1/1,1) +auto=@lifeof(player) from(*[-Alhammarret's Archive;-Angel of Vitality;-Boon Reflection;-Honor Troll]):counter(1/1,1) auto={5}{B}{B}{S}:name(Lose Life) target(player) life:-storedpower text=Defender (This creature can't attack.) -- Whenever you gain life, put a +1/+1 counter on Wall of Limbs. -- {5}{B}{B}, Sacrifice Wall of Limbs: Target player loses X life, where X is Wall of Limbs's power. mana={2}{B} @@ -131510,8 +131504,7 @@ subtype=Aura [/card] [card] name=Wanderwine Hub -auto=tap(noevent) -auto=aslongas(merfolk|myHand) untap +auto=if type(*[merfolk]|myhand)~equalto~0 then tap(noevent) auto={T}:Add{W} auto={T}:Add{U} text=As Wanderwine Hub enters the battlefield, you may reveal a Merfolk card from your hand. If you don't, Wanderwine Hub enters the battlefield tapped. -- {T}: Add {W} or {U} to your mana pool. diff --git a/projects/mtg/bin/Res/sets/primitives/planeswalkers.txt b/projects/mtg/bin/Res/sets/primitives/planeswalkers.txt index 30d660bb4..c2491e591 100644 --- a/projects/mtg/bin/Res/sets/primitives/planeswalkers.txt +++ b/projects/mtg/bin/Res/sets/primitives/planeswalkers.txt @@ -1,7 +1,7 @@ grade=borderline #Planeswalkers Primitives Pack for Wagic the Homebrew. #Please keep these card alphabetized, and try to have the "name=" line at the top of each card -#We sorted this in alphabetical order - Luruz & Vitty85 30-11-2020 +#We sorted this in alphabetical order - Luruz & Vitty85 25-04-2021 [card] name=Abian, Luvion Usurper auto=counter(0/0,5,loyalty) @@ -570,7 +570,7 @@ color=red name=Chandra, the Firebrand auto=counter(0/0,3,loyalty) auto={C(0/0,1,Loyalty)}:name(+1: Deals 1 damage to any target) damage:1 target(player,creature,planeswalker) -auto={C(0/0,-2,Loyalty)}:name(-2: When cast instant or sorcery, copy spell) emblem transforms((,newability[@moveTo(*[instant;sorcery]|myStack):castcard(copied noevent) target(*[instant;sorcery]|mystack)])) oneshot ueot +auto={C(0/0,-2,Loyalty)}:name(-2: When cast instant or sorcery, copy spell) emblem transforms((,newability[@movedto(*[instant;sorcery]|myStack) turnlimited:all(trigger[to]) activate castcard(copied noevent)])) ueot auto={C(0/0,-6,Loyalty)}:name(-6: Deals 6 damage up to six targets) ability$!name(Choose one) choice name(Damage opponent and five creature) damage:6 opponent && damage:6 target(creature) _ choice name(Damage controller and five creature) damage:6 controller && damage:6 target(creature) _ choice name(Damage creature) damage:6 target(creature)!$ controller text=+1: Chandra, the Firebrand deals 1 damage to any target. -- -2: When you cast your next instant or sorcery spell this turn, copy that spell. You may choose new targets for the copy. -- -6: Chandra, the Firebrand deals 6 damage to each of up to six target creatures and/or players. mana={3}{R} @@ -727,18 +727,6 @@ type=Legendary Planeswalker subtype=Dovin [/card] [card] -name=Personal Decoy -abilities=exiledeath -auto=counter(0/0,lifetotal,loyalty) -auto=lord(creature|opponentBattlefield) cantattack -auto={C(0/0,1,Loyalty)}:name(+1: Gain 1 life) life:1 controller -auto={C(0/0,-4,Loyalty)}:name(-4: Draw a card) draw:1 controller -text=Personal Decoy enters the battlefield with a number of loyalty counters on it equal to your life total. If it would leave the battlefield, exile it instead of putting it anywhere else. You can’t be attacked. -- +1: You gain 1 life. -- βˆ’4: Draw a card. -mana={5}{W}{U} -type=Planeswalker -subtype=Duck -[/card] -[card] name=Elspeth, Knight-Errant auto=counter(0/0,4,loyalty) auto={C(0/0,1,Loyalty)}:name(+1: Create a 1/1 soldier) create(Soldier:creature Soldier:1/1:white) @@ -1355,6 +1343,59 @@ type=Legendary Planeswalker subtype=Karn [/card] [card] +name=Kasmina, Enigma Sage +auto=counter(0/0,2,Loyalty) +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot +auto={C(0/0.2.Loyalty)}:limit:1 name(+2: Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend +auto={C(0/0.-1.Loyalty)}:limit:1 name(-1: Create fractal with 1 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.1) )! +auto={C(0/0.-2.Loyalty)}:limit:1 name(-2: Create fractal with 2 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.2) )! +auto={C(0/0.-3.Loyalty)}:limit:1 name(-3: Create fractal with 3 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.3) )! +auto={C(0/0.-4.Loyalty)}:limit:1 name(-4: Create fractal with 4 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.4) )! +auto={C(0/0.-5.Loyalty)}:limit:1 name(-5: Create fractal with 5 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.5) )! +auto={C(0/0.-6.Loyalty)}:limit:1 name(-6: Create fractal with 6 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.6) )! +auto={C(0/0.-7.Loyalty)}:limit:1 name(-7: Create fractal with 7 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.7) )! +auto={C(0/0.-8.Loyalty)}:limit:1 name(-8: Create fractal with 8 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.8) )! +auto={C(0/0.-9.Loyalty)}:limit:1 name(-9: Create fractal with 9 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.9) )! +auto={C(0/0.-10.Loyalty)}:limit:1 name(-10: Create fractal with 10 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.10) )! +auto={C(0/0.-11.Loyalty)}:limit:1 name(-11: Create fractal with 11 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.11) )! +auto={C(0/0.-12.Loyalty)}:limit:1 name(-12: Create fractal with 12 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.12) )! +auto={C(0/0.-13.Loyalty)}:limit:1 name(-13: Create fractal with 13 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.13) )! +auto={C(0/0.-14.Loyalty)}:limit:1 name(-14: Create fractal with 14 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.14) )! +auto={C(0/0.-15.Loyalty)}:limit:1 name(-15: Create fractal with 15 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.15) )! +auto={C(0/0.-16.Loyalty)}:limit:1 name(-16: Create fractal with 16 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.16) )! +auto={C(0/0.-17.Loyalty)}:limit:1 name(-17: Create fractal with 17 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.17) )! +auto={C(0/0.-18.Loyalty)}:limit:1 name(-18: Create fractal with 18 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.18) )! +auto={C(0/0.-19.Loyalty)}:limit:1 name(-19: Create fractal with 19 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.19) )! +auto={C(0/0.-20.Loyalty)}:limit:1 name(-20: Create fractal with 20 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.20) )! +auto={C(0/0.-8.Loyalty)}:limit:1 name(-8: Search instant or sorcery) target(*[instant;sorcery;share!color!]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[zerocast],newability[@each untap:canplayfromexile],newability[@each untap:zerocast])) forever )! +auto=lord(other planeswalker|mybattlefield) transforms((,newability[{C(0/0.2.Loyalty)}:limit:1 name(+2: Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend])) +auto=lord(other planeswalker|mybattlefield) transforms((,newability[{C(0/0.-1.Loyalty)}:limit:1 name(-1: Create fractal with 1 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.1) )!])) +auto=lord(other planeswalker|mybattlefield) transforms((,newability[{C(0/0.-2.Loyalty)}:limit:1 name(-2: Create fractal with 2 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.2) )!])) +auto=lord(other planeswalker|mybattlefield) transforms((,newability[{C(0/0.-3.Loyalty)}:limit:1 name(-3: Create fractal with 3 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.3) )!])) +auto=lord(other planeswalker|mybattlefield) transforms((,newability[{C(0/0.-4.Loyalty)}:limit:1 name(-4: Create fractal with 4 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.4) )!])) +auto=lord(other planeswalker|mybattlefield) transforms((,newability[{C(0/0.-5.Loyalty)}:limit:1 name(-5: Create fractal with 5 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.5) )!])) +auto=lord(other planeswalker|mybattlefield) transforms((,newability[{C(0/0.-6.Loyalty)}:limit:1 name(-6: Create fractal with 6 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.6) )!])) +auto=lord(other planeswalker|mybattlefield) transforms((,newability[{C(0/0.-7.Loyalty)}:limit:1 name(-7: Create fractal with 7 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.7) )!])) +auto=lord(other planeswalker|mybattlefield) transforms((,newability[{C(0/0.-8.Loyalty)}:limit:1 name(-8: Create fractal with 8 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.8) )!])) +auto=lord(other planeswalker|mybattlefield) transforms((,newability[{C(0/0.-9.Loyalty)}:limit:1 name(-9: Create fractal with 9 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.9) )!])) +auto=lord(other planeswalker|mybattlefield) transforms((,newability[{C(0/0.-10.Loyalty)}:limit:1 name(-10: Create fractal with 10 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.10) )!])) +auto=lord(other planeswalker|mybattlefield) transforms((,newability[{C(0/0.-11.Loyalty)}:limit:1 name(-11: Create fractal with 11 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.11) )!])) +auto=lord(other planeswalker|mybattlefield) transforms((,newability[{C(0/0.-12.Loyalty)}:limit:1 name(-12: Create fractal with 12 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.12) )!])) +auto=lord(other planeswalker|mybattlefield) transforms((,newability[{C(0/0.-13.Loyalty)}:limit:1 name(-13: Create fractal with 13 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.13) )!])) +auto=lord(other planeswalker|mybattlefield) transforms((,newability[{C(0/0.-14.Loyalty)}:limit:1 name(-14: Create fractal with 14 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.14) )!])) +auto=lord(other planeswalker|mybattlefield) transforms((,newability[{C(0/0.-15.Loyalty)}:limit:1 name(-15: Create fractal with 15 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.15) )!])) +auto=lord(other planeswalker|mybattlefield) transforms((,newability[{C(0/0.-16.Loyalty)}:limit:1 name(-16: Create fractal with 16 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.16) )!])) +auto=lord(other planeswalker|mybattlefield) transforms((,newability[{C(0/0.-17.Loyalty)}:limit:1 name(-17: Create fractal with 17 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.17) )!])) +auto=lord(other planeswalker|mybattlefield) transforms((,newability[{C(0/0.-18.Loyalty)}:limit:1 name(-18: Create fractal with 18 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.18) )!])) +auto=lord(other planeswalker|mybattlefield) transforms((,newability[{C(0/0.-19.Loyalty)}:limit:1 name(-19: Create fractal with 19 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.19) )!])) +auto=lord(other planeswalker|mybattlefield) transforms((,newability[{C(0/0.-20.Loyalty)}:limit:1 name(-20: Create fractal with 20 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.20) )!])) +auto=lord(other planeswalker|mybattlefield) transforms((,newability[{C(0/0.-8.Loyalty)}:limit:1 name(-8: Search instant or sorcery) target(*[instant;sorcery;share!color!]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[zerocast],newability[@each untap:canplayfromexile],newability[@each untap:zerocast])) forever )!])) +text=Each other planeswalker you control has the loyalty abilities of Kasmina, Enigma Sage. -- +2: Scry 1. -- βˆ’X: Create a 0/0 green and blue Fractal creature token. Put X +1/+1 counters on it. -- βˆ’8: Search your library for an instant or sorcery card that shares a color with this planeswalker, exile that card, then shuffle. You may cast that card without paying its mana cost. +mana={1}{G}{U} +type=Legendary Planeswalker +subtype=Kasmina +[/card] +[card] name=Kasmina, Enigmatic Mentor auto=counter(0/0,5,loyalty) auto=@targeted(*[creature;planeswalker]|myBattlefield) from(*[instant;sorcery]|opponentzones):choice name(This spell costs 2 more) name(This spell costs 2 more) target(*[instant;sorcery]|opponentzones) transforms((,newability[pay[[{2}]] name(pay 2 mana) donothing?fizzle])) oneshot @@ -1634,6 +1675,18 @@ type=Legendary Planeswalker subtype=Lukka [/card] [card] +name=Lukka, Wayward Bonder +auto=counter(0/0,5,loyalty) +auto={C(0/0,1,Loyalty)}:name(+1: Don't discard any card) donothing +auto={C(0/0,1,Loyalty)}:name(+1: Discard and draw) target(*|myhand) transforms((,newability[reject],newability[if cantargetcard(*[creature]|*) then draw:2 else draw:1])) oneshot +auto={C(0/0,-2,Loyalty)}:name(-2: Return creature from graveyard) target(creature|mygraveyard) moveto(mybattlefield) and!( transforms((,newability[unearth],newability[haste])) forever )! +auto={C(0/0,-7,Loyalty)}:name(-7: Get emblem powerstrike) emblem transforms((,newability[@movedTo(creature|mybattlefield):name(Damage any target) all(trigger[to]) transforms((,newability[name(Damage any target) damage:power target(player^creature^planeswalker)])) oneshot])) forever dontremove +text=+1: You may discard a card. If you do, draw a card. If a creature card was discarded this way, draw two cards instead. -- βˆ’2: Return target creature card from your graveyard to the battlefield. It gains haste. Exile it at the beginning of your next upkeep. -- βˆ’7: You get an emblem with "Whenever a creature enters the battlefield under your control, it deals damage equal to its power to any target." +mana={4}{R}{R} +type=Legendary Planeswalker +subtype=Lukka +[/card] +[card] name=Mu Yanling auto=counter(0/0,5,loyalty) auto={C(0/0,2,Loyalty)}:name(+2: Target creature can't be blocked) unblockable target(creature) @@ -2002,6 +2055,31 @@ type=Legendary Planeswalker subtype=Oko [/card] [card] +name=Personal Decoy +abilities=exiledeath +auto=counter(0/0,lifetotal,loyalty) +auto=lord(creature|opponentBattlefield) cantattack +auto={C(0/0,1,Loyalty)}:name(+1: Gain 1 life) life:1 controller +auto={C(0/0,-4,Loyalty)}:name(-4: Draw a card) draw:1 controller +text=Personal Decoy enters the battlefield with a number of loyalty counters on it equal to your life total. If it would leave the battlefield, exile it instead of putting it anywhere else. You can’t be attacked. -- +1: You gain 1 life. -- βˆ’4: Draw a card. +mana={5}{W}{U} +type=Planeswalker +subtype=Duck +[/card] +[card] +name=Professor Onyx +auto=counter(0/0,5,Loyalty) +auto=@movedto(*[instant;sorcery]|mystack):name(Gain life) life:2 controller && life:-2 opponent +aicode=activate transforms((,newability[target(*[zpos<=3]|mylibrary) moveto(myhand) and!( all(*[zpos<=3]|mylibrary) moveto(mygraveyard) )!])) ueot +auto={C(0/0,1,Loyalty)}:name(+1: Lose life and look cards) life:-1 controller && name(Look top cards) reveal:3 optionone name(Get a Card) target(<1>*|reveal) moveto(myhand) optiononeend optiontwo name(put in grave) all(*|reveal) moveto(mygraveyard) optiontwoend revealend +auto={C(0/0,-3,Loyalty)}:name(-3: Sacrifice creature) ability$!name(Sacrifice creature) name(Sacrifice creature) sacrifice notatarget(creature[power=power:highest:creature:myBattlefield]|mybattlefield)!$ opponent +auto={C(0/0,-8,Loyalty)}:name(-8: Discard or lose life) name(-8: Discard or lose life) life:-7minusohandcountminusend opponent && life:-7minusohandcountminusend opponent && life:-7minusohandcountminusend opponent && ability$!name(Choose cards) name(Choose cards) target(<7>*|myhand) transforms((,newability[choice name(Discard this card) reject],newability[choice name(Lose 3 life) life:-3 controller])) oneshot!$ opponent +text=Magecraft β€” Whenever you cast or copy an instant or sorcery spell, each opponent loses 2 life and you gain 2 life. -- +1: You lose 1 life. Look at the top three cards of your library. Put one of them into your hand and the rest into your graveyard. -- βˆ’3: Each opponent sacrifices a creature with the greatest power among creatures that player controls. -- βˆ’8: Each opponent may discard a card. If they don't, they lose 3 life. Repeat this process six more times. +mana={4}{B}{B} +type=Legendary Planeswalker +subtype=Liliana +[/card] +[card] name=Ral, Caller of Storms auto=counter(0/0,4,loyalty) auto={C(0/0,1,Loyalty)}:name(+1: Draw a card) draw:1 controller @@ -2030,7 +2108,7 @@ auto=counter(0/0,4,loyalty) aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot auto=@movedTo(*[instant;sorcery]|myStack):ability$!name(Choose one) choice name(Damage opponent) damage:1 target(opponent) _ choice name(Damage Planeswalker) damage:1 target(planeswalker)!$ controller auto={C(0/0,2,Loyalty)}:name(+2: Scry: 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend -auto={C(0/0,-2,Loyalty)}:name(-2: Whenever cast instant or sorcery copy spell) emblem transforms((,newability[@movedTo(*[instant;sorcery]|myStack):castcard(copied noevent) target(*[instant;sorcery]|mystack)])) ueot oneshot +auto={C(0/0,-2,Loyalty)}:name(-2: Whenever cast instant or sorcery copy spell) emblem transforms((,newability[@movedto(*[instant;sorcery]|myStack) turnlimited:all(trigger[to]) activate castcard(copied noevent)])) ueot text=Whenever you cast or copy an instant or sorcery spell, Ral, Storm Conduit deals 1 damage to target opponent or planeswalker. -- +2: Scry 1. -- βˆ’2: When you cast your next instant or sorcery spell this turn, copy that spell. You may choose new targets for the copy. mana={3}{U}{R} type=Legendary Planeswalker @@ -2072,6 +2150,20 @@ type=Legendary Planeswalker subtype=Rowan [/card] [card] +name=Rowan, Scholar of Sparks +other={4}{U} name(Will, Scholar of Frost) +otherrestriction=can play planeswalker +autostack=if paid(alternative) then name(Will, Scholar of Frost) name(Will, Scholar of Frost) flip(Will, Scholar of Frost) forcetype(Legendary Planeswalker) +auto=if paid(alternative) then counter(0/0,4,Loyalty) else counter(0/0,2,loyalty) +auto=this(variable{isflipped}<1) lord(instant,sorcery|mycastingzone) altercost(colorless,-1) +auto=this(variable{isflipped}<1) {C(0/0,1,Loyalty)}:name(+1: Deals damage) name(+1: Deals damage) if compare(pdrewcount)~lessthan~3 then damage:1 opponent else damage:3 opponent +auto=this(variable{isflipped}<1) {C(0/0,-4,Loyalty)}:name(-4: Emblem copy spells) name(-4: Emblem copy spells) emblem transforms((,newability[@movedto(*[instant;sorcery]|mystack):all(trigger[to]<1>) transforms((,newability[pay[[{2}]] name(copy spell) activate name(copy spell) castcard(copied noevent)])) forever])) forever dontremove +text=Instant and sorcery spells you cast cost {1} less to cast. -- +1: Rowan, Scholar of Sparks deals 1 damage to each opponent. If you've drawn three or more cards this turn, she deals 3 damage to each opponent instead. -- βˆ’4: You get an emblem with "Whenever you cast an instant or sorcery spell, you may pay 2 . If you do, copy that spell. You may choose new targets for the copy." +mana={2}{R} +type=Legendary Planeswalker +subtype=Rowan +[/card] +[card] name=Saheeli Rai auto=counter(0/0,3,loyalty) aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot @@ -2825,6 +2917,19 @@ type=Legendary Planeswalker subtype=Will [/card] [card] +name=Will, Scholar of Frost +auto=counter(0/0,4,loyalty) +auto=this(variable{isflipped}>0) lord(instant,sorcery|mycastingzone) altercost(colorless,-1) +auto=this(variable{isflipped}>0) {C(0/0,1,Loyalty)}:name(+1: Dont't target any creature) name(+1: Dont't target any creature) donothing +auto=this(variable{isflipped}>0) {C(0/0,1,Loyalty)}:name(+1: Target creature becomes 0/2) name(+1: Target creature becomes 0/2) target(creature) transforms((,setpower=0,settoughness=2)) uynt +auto=this(variable{isflipped}>0) {C(0/0,-3,Loyalty)}:name(-3: Draw 2 cards) name(-3: Draw 2 cards) draw:2 controller +auto=this(variable{isflipped}>0) {C(0/0,-7,Loyalty)}:name(-7: Exile 5 permanents) name(-7: Exile 5 permanents) target(*|battlefield) moveto(exile) and!( transforms((,newability[token(Elemental^Creature Elemental^4/4^blue^red)])) oneshot )! +text=Instant and sorcery spells you cast cost {1} less to cast. -- +1: Up to one target creature has base power and toughness 0/2 until your next turn. -- βˆ’3: Draw two cards. -- βˆ’7: Exile up to five target permanents. For each permanent exiled this way, its controller creates a 4/4 blue and red Elemental creature token. +mana={4}{U} +type=Legendary Planeswalker +subtype=Will +[/card] +[card] name=Wrenn and Six auto=counter(0/0,3,loyalty) auto={C(0/0,1,Loyalty)}:restriction{type(land|mygraveyard)~morethan~0} name(+1: Return target land from graveyard) moveTo(myHand) target(land|myGraveyard) diff --git a/projects/mtg/bin/Res/sets/primitives/unsupported.txt b/projects/mtg/bin/Res/sets/primitives/unsupported.txt index 1203fad07..12bf6a763 100644 --- a/projects/mtg/bin/Res/sets/primitives/unsupported.txt +++ b/projects/mtg/bin/Res/sets/primitives/unsupported.txt @@ -2,7 +2,7 @@ grade=unsupported #The cards in this file are not implemented/incomplete yet. #Updated Card lists not in primitives (Borderline, Crappy, Unsupported and Missing Cards up to Aether Revolt) as of 3/14/2017 #Please keep these card alphabetized, and try to have the "name=" line at the top of each card -#I sorted this programatically - Vitty85 30-11-2020 +#I sorted this programatically - Vitty85 25-04-2021 [card] name="Ach! Hans, Run!" text=At the beginning of your upkeep, you may say "Ach Hans, run It's the . . ." and name a creature card. If you do, search your library for the named card, put it into play, then shuffle your library. That creature has haste. Remove it from the game at end of turn. diff --git a/projects/mtg/src/MTGAbility.cpp b/projects/mtg/src/MTGAbility.cpp index 007a9240f..88bb9374f 100644 --- a/projects/mtg/src/MTGAbility.cpp +++ b/projects/mtg/src/MTGAbility.cpp @@ -6219,11 +6219,18 @@ int ActivatedAbility::isReactingToClick(MTGCardInstance * card, ManaCost * mana) return 1; if(card->hasType(Subtypes::TYPE_PLANESWALKER)) { - for(unsigned int k = 0;k < card->cardsAbilities.size();++k) + /*for(unsigned int k = 0;k < card->cardsAbilities.size();++k) { ActivatedAbility * check = dynamic_cast(card->cardsAbilities[k]); if(check && check->counters) return 0; + }*/ + // Improved the check to avoid the multiple triggers in case of abilities gained from other cards (e.g. Kasmina, Enigma Sage) + for(unsigned int k = 0;k < card->getObserver()->mLayers->actionLayer()->mObjects.size();++k) + { + ActivatedAbility * check = dynamic_cast(card->getObserver()->mLayers->actionLayer()->mObjects[k]); + if(check && check->source == card && check->counters) + return 0; } if (player != game->currentPlayer) return 0; diff --git a/projects/mtg/src/TargetChooser.cpp b/projects/mtg/src/TargetChooser.cpp index 73c53208f..3f7ba763d 100644 --- a/projects/mtg/src/TargetChooser.cpp +++ b/projects/mtg/src/TargetChooser.cpp @@ -171,6 +171,7 @@ TargetChooser * TargetChooserFactory::createTargetChooser(string s, MTGCardInsta s2 = s.substr(found + 1); while (s2.size()) { + replace(s2.begin(), s2.end(), '^', ','); // To allow the usage of ^ instead of , char (e.g. target multiple zones within transforms keyword) found = s2.find(","); string zoneName; if (found != string::npos)