From 8b620627d9941c89b30bf263eafaa91c48ee9c21 Mon Sep 17 00:00:00 2001 From: Eduardo Date: Wed, 1 May 2019 17:19:01 -0500 Subject: [PATCH] Major Corrections to WAR and removing crashing cards Cards that check the colors of mana that lands on the opponent battlefield crashes the game, hard to reproduce but happens often enought that I decided to remove them. Minor fixes in set and Major fixes in WAR primitives --- projects/mtg/bin/Res/sets/primitives/BBD.txt | 4 +- projects/mtg/bin/Res/sets/primitives/DOM.txt | 2 +- projects/mtg/bin/Res/sets/primitives/GRN.txt | 8 +- projects/mtg/bin/Res/sets/primitives/HOU.txt | 8 +- projects/mtg/bin/Res/sets/primitives/M19.txt | 7 +- projects/mtg/bin/Res/sets/primitives/RIX.txt | 7 +- projects/mtg/bin/Res/sets/primitives/RNA.txt | 2 +- projects/mtg/bin/Res/sets/primitives/WAR.txt | 352 +++++++++--------- projects/mtg/bin/Res/sets/primitives/XLN.txt | 24 +- .../mtg/bin/Res/sets/primitives/_macros.txt | 2 +- .../bin/Res/sets/primitives/borderline.txt | 14 +- projects/mtg/bin/Res/sets/primitives/mtg.txt | 102 ++--- 12 files changed, 256 insertions(+), 276 deletions(-) diff --git a/projects/mtg/bin/Res/sets/primitives/BBD.txt b/projects/mtg/bin/Res/sets/primitives/BBD.txt index 0d55009b95..14cba9f878 100644 --- a/projects/mtg/bin/Res/sets/primitives/BBD.txt +++ b/projects/mtg/bin/Res/sets/primitives/BBD.txt @@ -262,7 +262,7 @@ type=Sorcery [card] name=Skystreamer abilities=flying -auto=target(player) 4 life +auto=target(player) life:4 text=Assist (Another player can pay up to {4} of this spell's cost.) -- Flying -- When Skystreamer enters the battlefield, target player gains 4 life. mana={4}{W} type=Creature @@ -408,7 +408,7 @@ toughness=2 [card] name=Gang Up -target=creature[power<=X] +target=creature[power<=prex] auto=destroy text=Assist (Another player can pay up to {X} of this spell's cost. You choose the value of X.) -- Destroy target creature with power X or less. mana={X}{B} diff --git a/projects/mtg/bin/Res/sets/primitives/DOM.txt b/projects/mtg/bin/Res/sets/primitives/DOM.txt index 0553d40b62..9fb2744647 100644 --- a/projects/mtg/bin/Res/sets/primitives/DOM.txt +++ b/projects/mtg/bin/Res/sets/primitives/DOM.txt @@ -1491,7 +1491,7 @@ type=Instant [card] name=Arbor Armament -target=creature +target=creature auto=counter(1/1) auto=reach text=Put a +1/+1 counter on target creature. That creature gains reach until end of turn. diff --git a/projects/mtg/bin/Res/sets/primitives/GRN.txt b/projects/mtg/bin/Res/sets/primitives/GRN.txt index ab61082895..0f6943bb55 100644 --- a/projects/mtg/bin/Res/sets/primitives/GRN.txt +++ b/projects/mtg/bin/Res/sets/primitives/GRN.txt @@ -1062,8 +1062,8 @@ type=Instant [card] name=Circuitous Route -aicode=activate moveTo(myBattlefield) and!(tap(noevent))! target(land[basic;gate]|myLibrary) -auto=name(search card) reveal:plibrarycount optionone name(choose card) target(land[basic;gate]|reveal) moveto(ownerlibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerlibrary) and!( all(*|reveal) moveto(ownerlibrary) and!(shuffle)! )! optiontwoend afterrevealed all(tobecast|mylibrary) moveto(ownerlibrary) and!(moveTo(myBattlefield) and!(tap(noevent))!)! afterrevealedend revealend +aicode=activate moveTo(myBattlefield) and!(tap(noevent))! target(*[basic;gate]|myLibrary) +auto=name(search card) reveal:plibrarycount optionone name(choose card) target(*[basic;gate]|reveal) moveto(ownerlibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerlibrary) and!( all(*|reveal) moveto(ownerlibrary) and!(shuffle)! )! optiontwoend afterrevealed all(tobecast|mylibrary) moveto(ownerlibrary) and!(moveTo(myBattlefield) and!(tap(noevent))!)! afterrevealedend revealend text=Search your library for up to two basic land cards and/or Gate cards, put them onto the battlefield tapped, then shuffle your library. mana={3}{G} type=Sorcery @@ -1315,8 +1315,8 @@ toughness=2 name=Crackling Drake abilities=flying auto=draw:1 -anyzone=pginstantsorcery/4 -anyzone=peinstantsorcery/4 +anyzone=pginstantsorcery/4 cdaactive +#anyzone=peinstantsorcery/4 cdaactive text=Flying -- Crackling Drake's power is equal to the total number of instant and sorcery cards you own in exile and in your graveyard. -- When Crackling Drake enters the battlefield, draw a card. mana={U}{U}{R}{R} type=Creature diff --git a/projects/mtg/bin/Res/sets/primitives/HOU.txt b/projects/mtg/bin/Res/sets/primitives/HOU.txt index c39ce65434..0fe8eae8c0 100644 --- a/projects/mtg/bin/Res/sets/primitives/HOU.txt +++ b/projects/mtg/bin/Res/sets/primitives/HOU.txt @@ -30,7 +30,7 @@ name=Angel of Condemnation abilities=flying, vigilance auto={2}{W}{T}:(blink)ueot target(other creature|battlefield) auto=@exerted(this):(blink)forsrc target(other creature|battlefield) -auto=@combat(attacking) source(this):may exert +auto={2}{W}{T}:exert text=Flying, vigilance -- {2}{W}, {T}: Exile another target creature. Return that card to the battlefield under its owner's control at the beginning of the next end step. -- {2}{W}, {T}, Exert Angel of Condemnation: Exile another target creature until Angel of Condemnation leaves the battlefield. (An exerted creature won't untap during your next untap step.) mana={2}{W}{W} type=Creature @@ -393,7 +393,7 @@ subtype=Aura Curse [card] name=Hour of Eternity -target=creature|myGraveyard +target=creature|myGraveyard auto=clone and!( transforms((Zombie,removemc,setpower=4,settoughness=4,black)) forever )! auto=moveto(exile) text=Exile X target creature cards from your graveyard. For each card exiled this way, create a token that's a copy of that card, except it's a 4/4 black Zombie. @@ -617,7 +617,7 @@ toughness=* [card] name=Banewhip Punisher auto=may counter(-1/-1,1) target(creature) -auto={B}{S}:destroy target(creature[counter(-1/-1)]) +auto={B}{S}:destroy target(creature[counter{-1/-1.1}]) text=When Banewhip Punisher enters the battlefield, you may put a -1/-1 counter on target creature. -- {B}, Sacrifice Banewhip Punisher: Destroy target creature that has a -1/-1 counter on it. mana={2}{B} type=Creature @@ -1755,7 +1755,7 @@ subtype=Equipment [card] name=God-Pharaoh's Gift -auto=@each my combatbegins:may target(creature|graveyard) clone and!( transforms((Zombie,setpower=4,settoughness=4,black,haste ueot)) forever )! && moveTo(exile) +auto=@each my combatbegins:may target(creature|mygraveyard) clone and!( transforms((Zombie,setpower=4,settoughness=4,black,haste ueot)) forever )! && moveTo(exile) text=At the beginning of combat on your turn, you may exile a creature card from your graveyard. If you do, create a token that's a copy of that card, except it's a 4/4 black Zombie. It gains haste until end of turn. mana={7} type=Artifact diff --git a/projects/mtg/bin/Res/sets/primitives/M19.txt b/projects/mtg/bin/Res/sets/primitives/M19.txt index 9d01c78822..8b1dab68c3 100644 --- a/projects/mtg/bin/Res/sets/primitives/M19.txt +++ b/projects/mtg/bin/Res/sets/primitives/M19.txt @@ -927,8 +927,11 @@ toughness=2 [card] name=Sarkhan's Unsealing -auto=@movedTo(creature[6>=power>=4]|mystack):damage:4 target(creature,player) -auto=@movedTo(creature[power>=7]|mystack):damage:4 opponent && all(creature,planeswalker) damage:1 +auto=@movedTo(creature[power=4]|mystack):damage:4 target(creature,player) +auto=@movedTo(creature[power=5]|mystack):damage:4 target(creature,player) +auto=@movedTo(creature[power=6]|mystack):damage:4 target(creature,player) +auto=@movedTo(creature[power>=7]|mystack):damage:4 all(creature,planeswalker|opponentBattlefield) +auto=@movedTo(creature[power>=7]|mystack):damage:4 opponent text=Whenever you cast a creature spell with power 4, 5, or 6, Sarkhan's Unsealing deals 4 damage to any target. -- Whenever you cast a creature spell with power 7 or greater, Sarkhan's Unsealing deals 4 damage to each opponent and each creature and planeswalker they control. mana={3}{R} type=Enchantment diff --git a/projects/mtg/bin/Res/sets/primitives/RIX.txt b/projects/mtg/bin/Res/sets/primitives/RIX.txt index 25c50e8f58..b3c0855797 100644 --- a/projects/mtg/bin/Res/sets/primitives/RIX.txt +++ b/projects/mtg/bin/Res/sets/primitives/RIX.txt @@ -256,10 +256,9 @@ type=Enchantment [card] name=Crashing Tide -abilities=flash -target=creature -auto=if type(creature[merfolk]|mybattlefield)~lessthan~1 then -flash -auto=target(creature) moveto(ownerhand) +auto=if type(creature[merfolk]|mybattlefield)~morethan~0 then asflash +target=creature +auto=moveTo(ownerhand) auto=draw:1 controller text=Crashing Tide has flash as long as you control a Merfolk. -- Return target creature to its owner's hand. -- Draw a card. mana={2}{U} diff --git a/projects/mtg/bin/Res/sets/primitives/RNA.txt b/projects/mtg/bin/Res/sets/primitives/RNA.txt index 467977a96a..a187a42fef 100644 --- a/projects/mtg/bin/Res/sets/primitives/RNA.txt +++ b/projects/mtg/bin/Res/sets/primitives/RNA.txt @@ -956,7 +956,7 @@ toughness=1 [card] name=Light Up the Stage -auto=moveto(exile) and!(transforms((,canplayfromexile)))! all(*[zpos<=2]|mylibrary) +auto=moveto(exile) and!(transforms((,canplayfromexile))ueot)! all(*[zpos<=2]|mylibrary) text=Spectacle {R} (You may cast this spell for its spectacle cost rather than its mana cost if an opponent lost life this turn.) -- Exile the top two cards of your library. Until the end of your next turn, you may play those cards. other={R} name(Spectacle) otherrestriction=compare(oplifelost)~morethan~0 diff --git a/projects/mtg/bin/Res/sets/primitives/WAR.txt b/projects/mtg/bin/Res/sets/primitives/WAR.txt index ed2b246c69..cdeed60705 100644 --- a/projects/mtg/bin/Res/sets/primitives/WAR.txt +++ b/projects/mtg/bin/Res/sets/primitives/WAR.txt @@ -34,9 +34,9 @@ subtype=Ajani [card] name=Angrath's Rampage -auto=ability$!sacrifice notatarget(artifact|mybattlefield)!$ target(player) -auto=ability$!sacrifice notatarget(creature|mybattlefield)!$ target(player) -auto=ability$!sacrifice notatarget(planeswalker|mybattlefield)!$ target(player) +auto=ability$! name(sacrifices artifact) sacrifice notatarget(artifact|mybattlefield)!$ target(player) +auto=ability$! name(sacrifices creature) sacrifice notatarget(creature|mybattlefield)!$ target(player) +auto=ability$! name(sacrifices planeswalker) sacrifice notatarget(planeswalker|mybattlefield)!$ target(player) text=Choose one — -- • Target player sacrifices an artifact. -- • Target player sacrifices a creature. -- • Target player sacrifices a planeswalker. mana={B}{R} type=Sorcery @@ -46,7 +46,8 @@ type=Sorcery name=Angrath, Captain of Chaos auto=counter(0/0,5,loyalty) auto=lord(creature|myBattlefield) menace -auto={C(0/0,-2,Loyalty)}:_AMASS_(2) +auto={C(0/0,-2,Loyalty)}:counter(1/1,2) notATarget(army|myBattlefield) +auto={C(0/0,-2,Loyalty)}:create(Zombie Army:creature Zombie Army:0/0:black) and!(counter(1/1,2) notATarget(army|myBattlefield))! text=Creatures you control have menace. -- -2: Amass 2. (Put two +1/+1 counters on an Army you control. If you don't control one, create a 0/0 black Zombie Army creature token first.) mana={2}{BR}{BR} type=Legendary Planeswalker @@ -102,7 +103,7 @@ toughness=5 name=Ashiok, Dream Render auto=counter(0/0,5,loyalty) auto=lord(*|opponentlibrary) shroud -auto={C(0/0,-1,Loyalty)}:target(player) deplete:4 && moveTo(exile) all(*|graveyard) opponent +auto={C(0/0,-1,Loyalty)}:target(player) deplete:4 && moveTo(exile) all(*|opponentgraveyard) text=Spells and abilities your opponents control can't cause their controller to search their library. -- -1: Target player puts the top four cards of their library into their graveyard. Then exile each opponent's graveyard. mana={1}{UB}{UB} type=Legendary Planeswalker @@ -124,7 +125,7 @@ toughness=2 [card] name=Awakening of Vitu-Ghazi target=land|myBattlefield -auto=transforms((Vitu-Ghazi,Legendary Elemental Creature,newability[counter(1/1.9)],newability[haste])) forever +auto=transforms((Legendary Elemental Creature, Vitu-Ghazi,newability[counter(1/1.9)],newability[haste])) forever text=Put nine +1/+1 counters on target land you control. It becomes a legendary 0/0 Elemental creature with haste named Vitu-Ghazi. It's still a land. mana={3}{G}{G} type=Instant @@ -178,7 +179,7 @@ toughness=4 name=Blast Zone auto=counter(0/0,1,Charge) auto={T}:Add{C} -auto={X}{X}{T}:counter(0/0,1,Charge) +auto={X}{X}{T}:counter(0/0,X,Charge) auto={3}{T}{S}:this(counter{0/0.1.Charge}<1) {T}{S}:destroy all(*[-land;manacost=0]) auto={3}{T}{S}:this(counter{0/0.1.Charge}=) {T}{S}:destroy all(*[-land;manacost=1]) auto={3}{T}{S}:this(counter{0/0.2.Charge}=) {T}{S}:destroy all(*[-land;manacost=2]) @@ -226,8 +227,9 @@ toughness=4 [card] name=Bolas's Citadel -auto={0}:reveal:1 optionone name(Reveal) target(*|reveal) transforms((,newability[life:-manacost controller])) forever optiononeend optiontwo name(Claim your card) choice all(*|reveal) moveto(mybattlefield) optiontwoend revealend -auto={T}{S(*|myBattlefield)}{S(*|myBattlefield)}{S(*|myBattlefield)}{S(*|myBattlefield)}{S(*|myBattlefield)}{S(*|myBattlefield)}{S(*|myBattlefield)}{S(*|myBattlefield)}{S(*|myBattlefield)}{S(*|myBattlefield)}:life:-10 opponent +abilities=showfromtoplibrary +auto={0}:name(play from top) reveal:1 optionone name(Reveal) target(*|reveal) transforms((,newability[life:-manacost controller])) forever optiononeend optiontwo name(Claim your card) choice all(*|reveal) moveto(mybattlefield) optiontwoend revealend +auto={T}{S(*[-land]|myBattlefield)}{S(*[-land]|myBattlefield)}{S(*[-land]|myBattlefield)}{S(*[-land]|myBattlefield)}{S(*[-land]|myBattlefield)}{S(*[-land]|myBattlefield)}{S(*[-land]|myBattlefield)}{S(*[-land]|myBattlefield)}{S(*[-land]|myBattlefield)}{S(*[-land]|myBattlefield)}:life:-10 opponent text=You may look at the top card of your library any time. -- You may play the top card of your library. If you cast a spell this way, pay life equal to its converted mana cost rather than pay its mana cost. -- {T}, Sacrifice ten nonland permanents: Each opponent loses 10 life. mana={3}{B}{B}{B} type=Legendary Artifact @@ -294,7 +296,8 @@ toughness=6 [card] name=Burning Prophet -auto=@movedTo(*[-creature]|mystack):1/0 ueot && _SCRY_(1) +auto=@movedTo(*[-creature]|mystack):1/0 ueot +auto=@movedTo(*[-creature]|mystack):_SCRY_(1) text=Whenever you cast a noncreature spell, Burning Prophet gets +1/+0 until end of turn, then scry 1. mana={1}{R} type=Creature @@ -372,9 +375,9 @@ type=Instant [card] name=Chandra, Fire Artisan auto=counter(0/0,4,loyalty) -auto=@damaged(this):damage:thatmuch target(creature,player) -auto={C(0/0,1,Loyalty)}:moveto(exile) and!(transforms((,canplayfromexile))ueot)! all(*[zpos=1]|mylibrary) && damage:1 target(creature,player) -auto={C(0/0,-7,Loyalty)}:moveto(exile) and!( transforms((,canplayfromexile)) ueot )! all(*[zpos<=7]|mylibrary) && damage:7 target(creature,player) +auto=@counterremoved(0/0,1,Loyalty) from(this):damage:1 target(opponent) +auto={C(0/0,1,Loyalty)}:moveto(exile) and!(transforms((,canplayfromexile))ueot)! all(*[zpos=1]|mylibrary) +auto={C(0/0,-7,Loyalty)}:name(ultimate) moveto(exile) and!( transforms((,canplayfromexile)) ueot )! all(*[zpos<=7]|mylibrary) text=Whenever one or more loyalty counters are removed from Chandra, Fire Artisan, she deals that much damage to target opponent or planeswalker. -- +1: Exile the top card of your library. You may play it this turn. -- -7: Exile the top seven cards of your library. You may play them this turn. mana={2}{R}{R} type=Legendary Planeswalker @@ -406,9 +409,9 @@ toughness=1 [card] name=Command the Dreadhorde -target=creature,planeswalker -auto=moveTo(myBattlefield) +target=creature,planeswalker|myGraveyard auto=life:-manacost controller +auto=moveTo(myBattlefield) text=Choose any number of target creature and/or planeswalker cards in graveyards. Command the Dreadhorde deals damage to you equal to the total converted mana cost of those cards. Put them onto the battlefield under your control. mana={4}{B}{B} type=Sorcery @@ -591,7 +594,7 @@ subtype=Dovin [card] name=Dreadhorde Arcanist abilities=trample -auto=@combat(attacking) source(this):may target(*[instant;sorcery;manacost<=power]|mygraveyard) castcard(restricted) +auto=@combat(attacking) source(this):may target(*[instant;sorcery;manacost<=power]|mygraveyard) castcard(restricted) and!(transforms((,newability[exiledeath])) forever)! text=Trample -- Whenever Dreadhorde Arcanist attacks, you may cast target instant or sorcery card with converted mana cost less than or equal to Dreadhorde Arcanist's power from your graveyard without paying its mana cost. If that card would be put into your graveyard this turn, exile it instead. mana={1}{R} type=Creature @@ -617,7 +620,7 @@ toughness=1 name=Dreadhorde Invasion auto=@each my upkeep:life:-1 auto=@each my upkeep:_AMASS_(1) -auto=lord(Zombie[token;power>=6;attacking]|myBattlefield) lifelink ueot +auto=lord(Zombie[token;power>=6;attacking]|myBattlefield) lifelink text=At the beginning of your upkeep, you lose 1 life and amass 1. (Put a +1/+1 counter on an Army you control. If you don't control one, create a 0/0 black Zombie Army creature token first.) -- Whenever a Zombie token you control with power 6 or greater attacks, it gains lifelink until end of turn. mana={1}{B} type=Enchantment @@ -649,7 +652,7 @@ toughness=1 [card] name=Duskmantle Operative -auto=cantbeblockedby(creature[power<=4]) +auto=cantbeblockedby(creature[power>=4]) text=Duskmantle Operative can't be blocked by creatures with power 4 or greater. mana={1}{B} type=Creature @@ -760,24 +763,25 @@ power=1 toughness=1 [/card] -[card] -name=Feather, the Redeemed -abilities=flying +#[card] +#name=Feather, the Redeemed +#abilities=flying #moveto(exile) && -auto=@targeted(*|myBattlefield) from(instant,sorcery|mystack):trigger[to] phaseaction[endofturn once] moveTo(ownerhand) ueot -text=Flying -- Whenever you cast an instant or sorcery spell that targets a creature you control, exile that card instead of putting it into your graveyard as it resolves. If you do, return it to your hand at the beginning of the next end step. -mana={R}{W}{W} -type=Legendary Creature -subtype=Angel -power=3 -toughness=4 -[/card] +#auto=@targeted(creature|myBattlefield) from(instant,sorcery|mystack):trigger[to] phaseaction[endofturn once] moveTo(ownerhand) ueot +#auto=@targeted(creature|mybattlefield) from(*[instant;sorcery]|nonbattlezone,stack):all(trigger[to]<1>) moveTo(hand) +#text=Flying -- Whenever you cast an instant or sorcery spell that targets a creature you control, exile that card instead of putting it into your graveyard as it resolves. If you do, return it to your hand at the beginning of the next end step. +#mana={R}{W}{W} +#type=Legendary Creature +#subtype=Angel +#power=3 +#toughness=4 +#[/card] [card] name=Finale of Devastation -auto=moveTo(myBattlefield) target(creature[manacost<=X]|myLibrary,myGraveyard) auto=this(X>=10) all(creature|myBattlefield) haste auto=this(X>=10) all(creature|myBattlefield) +x/+x +auto=moveTo(myBattlefield) target(creature[manacost<=X]|myLibrary,myGraveyard) text=Search your library and/or graveyard for a creature card with converted mana cost X or less and put it onto the battlefield. If you search your library this way, shuffle it. If X is 10 or more, creatures you control get +X/+X and gain haste until end of turn. mana={X}{G}{G} type=Sorcery @@ -785,8 +789,9 @@ type=Sorcery [card] name=Finale of Eternity -target=creatures[toughness<=X] -auto=this(X>=10) all(creature|mygraveyard) moveto(mybattlefield) +target=creature[toughness<=prex] +auto=destroy +auto=this(prex>=10) all(creature|mygraveyard) moveto(mybattlefield) text=Destroy up to three target creatures with toughness X or less. If X is 10 or more, return all creature cards from your graveyard to the battlefield. mana={X}{B}{B} type=Sorcery @@ -803,10 +808,9 @@ type=Sorcery [card] name=Finale of Promise -target=*[instant;sorcery;manacost<=X]|mygraveyard +target=*[instant;sorcery;manacost<=prex]|mygraveyard +auto=this(X>=10) castcard(normal) auto=castcard(normal) and!(transforms((,newability[exiledeath])) forever)! -auto=this(X>=10) @movedto(*[instant;sorcery]|mystack):all(trigger[to]<1>) transforms((,newability[name(copy spell) activate name(copy spell) castcard(copied noevent)])) forever -#auto=this(X>=10) @movedto(*[instant;sorcery]|mystack):all(trigger[to]<1>) transforms((,newability[name(copy spell) activate name(copy spell) castcard(copied noevent)])) forever text=You may cast up to one target instant card and/or sorcery card from your graveyard each with converted mana cost X or less without paying their mana costs. If a card cast this way would be put into your graveyard this turn, exile it instead. If X is 10 or more, copy each of those spells twice. You may choose new targets for the copies. mana={X}{R}{R} type=Sorcery @@ -814,8 +818,10 @@ type=Sorcery [card] name=Finale of Revelation -auto=this(X>=10) -auto=draw:x +auto=this(X<10) draw:x +auto=this(X>=10) moveto(myLibrary) all(*|myGraveyard) && shuffle && draw:x +auto=this(X>=10) untap notatarget(land) +autoexile=lord(*|myBattlefield) nomaxhand auto=moveto(exile) text=Draw X cards. If X is 10 or more, instead shuffle your graveyard into your library, draw X cards, untap up to five lands, and you have no maximum hand size for the rest of the game. -- Exile Finale of Revelation. mana={X}{U}{U} @@ -825,16 +831,16 @@ type=Sorcery [card] name=Firemind Vessel auto=tapped(noevent) -auto={T}:{W}{U} -auto={T}:{W}{B} -auto={T}:{W}{R} -auto={T}:{W}{G} -auto={T}:{U}{B} -auto={T}:{U}{R} -auto={T}:{U}{G} -auto={T}:{B}{R} -auto={T}:{B}{G} -auto={T}:{R}{G} +auto={T}:Add{W}{U} +auto={T}:Add{W}{B} +auto={T}:Add{W}{R} +auto={T}:Add{W}{G} +auto={T}:Add{U}{B} +auto={T}:Add{U}{R} +auto={T}:Add{U}{G} +auto={T}:Add{B}{R} +auto={T}:Add{B}{G} +auto={T}:Add{R}{G} text=Firemind Vessel enters the battlefield tapped. -- {T}: Add two mana of different colors. mana={4} type=Artifact @@ -864,10 +870,11 @@ type=Instant name=Gideon Blackblade auto=counter(0/0,4,loyalty) auto=this(variable{controllerturn}>0) transforms((Human Soldier Creature,setpower=4,settoughness=4,indestructible)) ueot && transforms((,newability[preventAllDamage to(this)])) ueot +auto=@each my beginofturn:transforms((Human Soldier Creature,setpower=4,settoughness=4,indestructible)) ueot && transforms((,newability[preventAllDamage to(this)])) ueot auto={C(0/0,1,Loyalty)}:target(other creature|myBattlefield) vigilance auto={C(0/0,1,Loyalty)}:target(other creature|myBattlefield) lifelink auto={C(0/0,1,Loyalty)}:target(other creature|myBattlefield) indestructible -auto={C(0/0,1,Loyalty)}:donothing +auto={C(0/0,1,Loyalty)}:name(no targets) donothing auto={C(0/0,-6,Loyalty)}:moveTo(exile) target(*[-land]) text=As long as it's your turn, Gideon Blackblade is a 4/4 Human Soldier creature with indestructible that's still a planeswalker. -- Prevent all damage that would be dealt to Gideon Blackblade during your turn. -- +1: Up to one other target creature you control gains your choice of vigilance, lifelink, or indestructible until end of turn. -- -6: Exile target nonland permanent. mana={1}{W}{W} @@ -909,8 +916,8 @@ type=Instant [card] name=Gideon, the Oathsworn auto=counter(0/0,4,loyalty) -auto=counter(1/1) -auto={C(0/0,2,Loyalty)}:transforms((Human Soldier Creature,setpower=5,settoughness=5,indestructible)) ueot && transforms((,newability[preventAllDamage to(this)])) ueot +auto=@each my blockers restriction{type(creature[-gideon&attacking]|myBattlefield)~morethan~1}:counter(1/1) all(creature[-gideon&attacking]|myBattlefield) +auto={C(0/0,2,Loyalty)}:transforms((Human Soldier Creature,setpower=5,settoughness=5,newability[preventAllDamage to(this)])) ueot auto={C(0/0,-9,Loyalty)}:moveTo(exile) all(creature|opponentBattlefield) && moveTo(exile) all(this) text=Whenever you attack with two or more non-Gideon creatures, put a +1/+1 counter on each of those creatures. -- +2: Until end of turn, Gideon, the Oathsworn becomes a 5/5 white Soldier creature that's still a planeswalker. Prevent all damage that would be dealt to him this turn. (He can't attack if he was cast this turn.) -- -9: Exile Gideon, the Oathsworn and each creature your opponents control. mana={4}{W}{W} @@ -964,16 +971,16 @@ power=5 toughness=6 [/card] -[card] -name=God-Eternal Kefnet -abilities=flying -text=Flying -- You may reveal the first card you draw each turn as you draw it. Whenever you reveal an instant or sorcery card this way, copy that card and you may cast the copy. That copy costs {2} less to cast. -- When God-Eternal Kefnet dies or is put into exile from the battlefield, you may put it into its owner's library third from the top. -mana={2}{U}{U} -type=Legendary Creature -subtype=Zombie God -power=4 -toughness=5 -[/card] +#[card] +#name=God-Eternal Kefnet +#abilities=flying +#text=Flying -- You may reveal the first card you draw each turn as you draw it. Whenever you reveal an instant or sorcery card this way, copy that card and you may cast the copy. That copy costs {2} less to cast. -- When God-Eternal Kefnet dies or is put into exile from the battlefield, you may put it into its owner's library third from the top. +#mana={2}{U}{U} +#type=Legendary Creature +#subtype=Zombie God +#power=4 +#toughness=5 +#[/card] [card] name=God-Eternal Oketra @@ -990,7 +997,7 @@ toughness=6 [card] name=God-Eternal Rhonas abilities=deathtouch -auto=all(other creature|myBattlefield) power/power ueot +auto=all(other creature|myBattlefield) dynamicability ueot auto=all(other creature|myBattlefield) vigilance ueot text=Deathtouch -- When God-Eternal Rhonas enters the battlefield, double the power of each other creature you control until end of turn. Those creatures gain vigilance until end of turn. -- When God-Eternal Rhonas dies or is put into exile from the battlefield, you may put it into its owner's library third from the top. mana={3}{G}{G} @@ -1024,7 +1031,7 @@ toughness=1 [card] name=Grim Initiate abilities=first strike -auto=_DIES__AMASS_(1) +auto=_DIES_if type(army|mybattlefield)~morethan~0 then counter(1/1) notATarget(army|myBattlefield) else create(Zombie Army:creature Zombie Army:0/0:black) and!(counter(1/1) notATarget(army|myBattlefield))! text=First strike -- When Grim Initiate dies, amass 1. (Put a +1/+1 counter on an Army you control. If you don't control one, create a 0/0 black Zombie Army creature token first.) mana={R} type=Creature @@ -1036,16 +1043,16 @@ toughness=1 [card] name=Guild Globe auto=draw:1 -auto={2}{T}{S}:{W}{U} -auto={2}{T}{S}:{W}{B} -auto={2}{T}{S}:{W}{R} -auto={2}{T}{S}:{W}{G} -auto={2}{T}{S}:{U}{B} -auto={2}{T}{S}:{U}{R} -auto={2}{T}{S}:{U}{G} -auto={2}{T}{S}:{B}{R} -auto={2}{T}{S}:{B}{G} -auto={2}{T}{S}:{R}{G} +auto={2}{T}{S}:Add{W}{U} +auto={2}{T}{S}:Add{W}{B} +auto={2}{T}{S}:Add{W}{R} +auto={2}{T}{S}:Add{W}{G} +auto={2}{T}{S}:Add{U}{B} +auto={2}{T}{S}:Add{U}{R} +auto={2}{T}{S}:Add{U}{G} +auto={2}{T}{S}:Add{B}{R} +auto={2}{T}{S}:Add{B}{G} +auto={2}{T}{S}:Add{R}{G} text=When Guild Globe enters the battlefield, draw a card. -- {2}, {T}, Sacrifice Guild Globe: Add two mana of different colors. mana={2} type=Artifact @@ -1083,7 +1090,7 @@ type=Instant [card] name=Herald of the Dreadhorde -auto=_DIES__AMASS_(2) +auto=_DIES_if type(army|mybattlefield)~morethan~0 then counter(1/1,2) notATarget(army|myBattlefield) else create(Zombie Army:creature Zombie Army:0/0:black) and!(counter(1/1,2) notATarget(army|myBattlefield))! text=When Herald of the Dreadhorde dies, amass 2. (Put two +1/+1 counters on an Army you control. If you don't control one, create a 0/0 black Zombie Army creature token first.) mana={3}{B} type=Creature @@ -1116,7 +1123,7 @@ toughness=3 [card] name=Huatli, the Sun's Heart auto=counter(0/0,7,loyalty) -auto=lord(other creature|myBattlefield) combattoughness +auto=lord(creature|myBattlefield) combattoughness auto={C(0/0,-3,Loyalty)}:life:toughness:highest:creature:myBattlefield text=Each creature you control assigns combat damage equal to its toughness rather than its power. -- -3: You gain life equal to the greatest toughness among creatures you control. mana={2}{GW} @@ -1135,7 +1142,7 @@ type=Instant [card] name=Ilharg, the Raze-Boar abilities=trample -auto=@combat(attacking) source(this):target(creature|myhand) ninjutsu +auto=@combat(attacking) source(this):target(creature|myhand) transforms((,newability[phaseaction[endofturn once] moveTo(hand)],newability[ninjutsu])) forever text=Trample -- Whenever Ilharg, the Raze-Boar attacks, you may put a creature card from your hand onto the battlefield tapped and attacking. Return that creature to your hand at the beginning of the next end step. -- When Ilharg, the Raze-Boar dies or is put into exile from the battlefield, you may put it into its owner's library third from the top. mana={3}{R}{R} type=Legendary Creature @@ -1148,16 +1155,16 @@ toughness=6 name=Interplanar Beacon auto=@movedTo(planeswalker|mystack):life:1 auto={T}:Add{C} -auto={1}{T}:{W}{U} -auto={1}{T}:{W}{B} -auto={1}{T}:{W}{R} -auto={1}{T}:{W}{G} -auto={1}{T}:{U}{B} -auto={1}{T}:{U}{R} -auto={1}{T}:{U}{G} -auto={1}{T}:{B}{R} -auto={1}{T}:{B}{G} -auto={1}{T}:{R}{G} +auto={1}{T}:Add{W}{U} +auto={1}{T}:Add{W}{B} +auto={1}{T}:Add{W}{R} +auto={1}{T}:Add{W}{G} +auto={1}{T}:Add{U}{B} +auto={1}{T}:Add{U}{R} +auto={1}{T}:Add{U}{G} +auto={1}{T}:Add{B}{R} +auto={1}{T}:Add{B}{G} +auto={1}{T}:Add{R}{G} text=Whenever you cast a planeswalker spell, you gain 1 life. -- {T}: Add {C}. -- {1}, {T}: Add two mana of different colors. Spend this mana only to cast planeswalker spells. type=Land [/card] @@ -1235,7 +1242,7 @@ type=Sorcery [card] name=Jace, Arcane Strategist auto=counter(0/0,4,loyalty) -auto=@drawof(player,turnlimited):transforms((,newability[@drawof(player,turnlimited):counter(1/1) target(creature|myBattlefield)])) +auto=@drawof(player):transforms((,newability[@drawof(player) restriction{once}:counter(1/1) target(creature|myBattlefield)])) ueot auto={C(0/0,1,Loyalty)}:draw:1 auto={C(0/0,-7,Loyalty)}:all(creature|myBattlefield) unblockable text=Whenever you draw your second card each turn, put a +1/+1 counter on target creature you control. -- +1: Draw a card. -- -7: Creatures you control can't be blocked this turn. @@ -1250,7 +1257,7 @@ abilities=cantmilllose auto=counter(0/0,4,loyalty) auto=@drawof(player) restriction{type(*|mylibrary)~equalto~0}:wingame auto={C(0/0,1,Loyalty)}:target(player) deplete:2 && draw:1 -auto={C(0/0,-8,Loyalty)}:draw:7 if{type(*|mylibrary)~equalto~0}:wingame +auto={C(0/0,-8,Loyalty)}:name(absolute madman) if type(*|mylibrary)~lessthan~8 then wingame else draw:7 text=If you would draw a card while your library has no cards in it, you win the game instead. -- +1: Target player puts the top two cards of their library into their graveyard. Draw a card. -- -8: Draw seven cards. Then if your library has no cards in it, you win the game. mana={1}{U}{U}{U} type=Legendary Planeswalker @@ -1295,7 +1302,9 @@ name=Karn, the Great Creator auto=counter(0/0,5,loyalty) auto=lord(artifact|opponentBattlefield) noactivatedability auto={C(0/0,1,Loyalty)}:target(artifact[-creature]) dynamicability transforms((creature,setpower=0,settoughness=0)) ueot -auto={C(0/0,-2,Loyalty)}:moveto(ownerhand) target(artifact|myexile) +auto={C(0/0,1,Loyalty)}:name(+1 No targets) donothing +auto={C(0/0,-2,Loyalty)}:name(from exile) moveto(ownerhand) target(artifact|myexile) +auto={C(0/0,-2,Loyalty)}:name(from sideboard) moveto(ownerhand) target(artifact|mysideboard) text=Activated abilities of artifacts your opponents control can't be activated. -- +1: Until your next turn, up to one target noncreature artifact becomes an artifact creature with power and toughness each equal to its converted mana cost. -- -2: You may choose an artifact card you own from outside the game or in exile, reveal that card, and put it into your hand. mana={4} type=Legendary Planeswalker @@ -1305,7 +1314,7 @@ subtype=Karn [card] name=Kasmina's Transmutation target=creature -auto=teach(creature) loseabilities +auto=loseabilities auto=teach(creature) transforms((,setpower=1,settoughness=1)) text=Enchant creature -- Enchanted creature loses all abilities and has base power and toughness 1/1. mana={1}{U} @@ -1370,8 +1379,8 @@ toughness=2 [card] name=Krenko, Tin Street Kingpin -auto=@combat(attacking) source(this):counter(1/1) auto=@combat(attacking) source(this):create(goblin:goblin creature:1/1:red)*power +auto=@combat(attacking) source(this):counter(1/1) text=Whenever Krenko, Tin Street Kingpin attacks, put a +1/+1 counter on it, then create a number of 1/1 red Goblin creature tokens equal to Krenko's power. mana={2}{R} type=Legendary Creature @@ -1415,6 +1424,7 @@ toughness=4 [card] name=Lazotep Plating auto=_AMASS_(1) +auto=playershroud ueot auto=all(creature|myBattlefield) opponentshroud text=Amass 1. (Put a +1/+1 counter on an Army you control. If you don't control one, create a 0/0 black Zombie Army creature token first.) -- You and permanents you control gain hexproof until end of turn. (You and they can't be the targets of spells or abilities your opponents control.) mana={1}{U} @@ -1462,8 +1472,8 @@ name=Liliana, Dreadhorde General auto=counter(0/0,6,loyalty) auto=@movedTo(creature|graveyard) from(mybattlefield):draw:1 auto={C(0/0,1,Loyalty)}:create(zombie:creature zombie:2/2:black) -auto={C(0/0,-4,Loyalty)}:sacrifice notatarget(<2>creature|mybattlefield) && ability$! sacrifice notatarget(<2>creature|mybattlefield) !$ opponent -auto={C(0/0,-9,Loyalty)}:if type(creature|opponentbattlefield)~morethan~1 then ability$! sacrifice notatarget(creature|mybattlefield) !$ opponent && if type(land|opponentbattlefield)~morethan~1 then ability$! sacrifice notatarget(land|mybattlefield) !$ opponent +auto={C(0/0,-4,Loyalty)}:sacrifice notatarget(creature|mybattlefield) && ability$! sacrifice notatarget(<2>creature|mybattlefield) !$ opponent +auto={C(0/0,-9,Loyalty)}:ability$! sacrifice notatarget(creature|mybattlefield) and!( sacrifice notatarget(land|mybattlefield) and!( sacrifice notatarget(enchantment|mybattlefield) and!( sacrifice notatarget(artifact|mybattlefield) and!( sacrifice notatarget(planeswalker|mybattlefield))! )! )! !$ opponent text=Whenever a creature you control dies, draw a card. -- +1: Create a 2/2 black Zombie creature token. -- -4: Each player sacrifices two creatures. -- -9: Each opponent chooses a permanent they control of each permanent type and sacrifices the rest. mana={4}{B}{B} type=Legendary Planeswalker @@ -1472,7 +1482,7 @@ subtype=Liliana [card] name=Living Twister -auto={1}{R}{D(*[land])}:damage:2 target(creature,player) +auto={1}{R}{D(land|myhand)}:damage:2 target(creature,player) auto={G}:target(land[tapped]|myBattlefield) moveto(ownerhand) text={1}{R}, Discard a land card: Living Twister deals 2 damage to any target. -- {G}: Return a tapped land you control to its owner's hand. mana={R}{R}{G} @@ -1485,7 +1495,7 @@ toughness=5 [card] name=Loxodon Sergeant abilities=vigilance -auto=all(other creature|myBattlefield)) vigilance ueot +auto=all(other creature|myBattlefield) vigilance text=Vigilance -- When Loxodon Sergeant enters the battlefield, other creatures you control gain vigilance until end of turn. mana={3}{W} type=Creature @@ -1532,8 +1542,8 @@ toughness=2 [card] name=Massacre Girl abilities=menace +auto=transforms((,newability[@movedto(creature|graveyard) from(battlefield):all(other creature) -1/-1 ueot])) ueot auto=all(other creature) -1/-1 ueot -auto=transforms((,newability[@movedto(creature|graveyard) from(battlefield):all(other creature) -1/-1 ueot)) ueot text=Menace -- When Massacre Girl enters the battlefield, each other creature gets -1/-1 until end of turn. Whenever a creature dies this turn, each creature other than Massacre Girl gets -1/-1 until end of turn. mana={3}{B}{B} type=Legendary Creature @@ -1594,7 +1604,7 @@ type=Land [card] name=Mowu, Loyal Companion abilities=vigilance,trample -auto=@counteradded(1/1) from(this) turnlimited:counter(1/1) +auto=@counteradded(1/1) from(this) restriction{once}:counter(1/1) text=Trample, vigilance -- If one or more +1/+1 counters would be put on Mowu, Loyal Companion, that many plus one +1/+1 counters are put on it instead. mana={3}{G} type=Legendary Creature @@ -1625,15 +1635,15 @@ type=Instant name=Nahiri, Storm of Stone auto=counter(0/0,6,loyalty) auto=this(variable{controllerturn}>0) lord(creature|myBattlefield) first strike -auto={C(0/0,-1,Loyalty)}:damage:1 target(creature[tapped]) -auto={C(0/0,-2,Loyalty)}:damage:2 target(creature[tapped]) -auto={C(0/0,-3,Loyalty)}:damage:3 target(creature[tapped]) -auto={C(0/0,-4,Loyalty)}:damage:4 target(creature[tapped]) -auto={C(0/0,-5,Loyalty)}:damage:5 target(creature[tapped]) -auto={C(0/0,-6,Loyalty)}:damage:6 target(creature[tapped]) -auto={C(0/0,-7,Loyalty)}:damage:7 target(creature[tapped]) -auto={C(0/0,-8,Loyalty)}:damage:8 target(creature[tapped]) -auto={C(0/0,-9,Loyalty)}:damage:9 target(creature[tapped]) +auto={C(0/0,-1,Loyalty)}:name(-1 counter) damage:1 target(creature[tapped]) damage:1 +auto={C(0/0,-2,Loyalty)}:name(-2 counters) damage:2 target(creature[tapped]) +auto={C(0/0,-3,Loyalty)}:name(-3 counters) damage:3 target(creature[tapped]) +auto={C(0/0,-4,Loyalty)}:name(-4 counters) damage:4 target(creature[tapped]) +auto={C(0/0,-5,Loyalty)}:name(-5 counters) damage:5 target(creature[tapped]) +auto={C(0/0,-6,Loyalty)}:name(-6 counters) damage:6 target(creature[tapped]) +auto={C(0/0,-7,Loyalty)}:name(-7 counters) damage:7 target(creature[tapped]) +auto={C(0/0,-8,Loyalty)}:name(-8 counters) damage:8 target(creature[tapped]) +auto={C(0/0,-9,Loyalty)}:name(-9 counters) damage:9 target(creature[tapped]) text=As long as it's your turn, creatures you control have first strike and equip abilities you activate cost {1} less to activate. -- -X: Nahiri, Storm of Stone deals X damage to target tapped creature. mana={2}{RW}{RW} type=Legendary Planeswalker @@ -1643,7 +1653,8 @@ subtype=Nahiri [card] name=Narset's Reversal target=*[instant;sorcery]|stack -auto=castcard(copied noevent) && fizzleto(ownerHand) +auto=fizzleto(hand) +auto=castcard(copied noevent) text=Copy target instant or sorcery spell, then return it to its owner's hand. You may choose new targets for the copy. mana={U}{U} type=Instant @@ -1672,10 +1683,10 @@ type=Sorcery [card] name=Nicol Bolas, Dragon-God auto=counter(0/0,4,loyalty) -auto={C(0/0,0,Loyalty)} copy notatarget(planeswalker) ueot -auto={C(0/0,1,Loyalty)}:draw:1 && ability$!moveto(exile) target(*|myhand)!$ opponent +auto={C(0/0,0,Loyalty)}:clone and!( transforms((,newability[unearth])) )! notatarget(planeswalker) +auto={C(0/0,1,Loyalty)}:draw:1 && ability$!moveto(exile) target(*|myhand,myBattlefield)!$ opponent auto={C(0/0,-3,Loyalty)}:destroy target(creature,planeswalker) -auto={C(0/0,-8,Loyalty)}:if type(creature[legendary],planeswalker|opponentbattlefield))~lessthan~1 then wingame +auto={C(0/0,-8,Loyalty)}:name(ultimate) if type(creature[legendary]|opponentbattlefield)~lessthan~1 then wingame text=Nicol Bolas, Dragon-God has all loyalty abilities of all other planeswalkers on the battlefield. -- +1: You draw a card. Each opponent exiles a card from their hand or a permanent they control. -- -3: Destroy target creature or planeswalker. -- -8: Each opponent who doesn't control a legendary creature or planeswalker loses the game. mana={U}{B}{B}{B}{R} type=Legendary Planeswalker @@ -1684,7 +1695,8 @@ subtype=Bolas [card] name=Nissa's Triumph -auto=transforms((,newability[if type((planeswalker[Nissa]|mybattlefield))~lessthan~1 then moveTo(myhand) and!(tap(noevent))! target(forest[basic]|myLibrary)],newability[if type((planeswalker[Nissa]|mybattlefield))~morethan~0 then moveTo(myhand) and!(tap(noevent))! target(forest[basic]|myLibrary)])) ueot +auto=transforms((,newability[name(search 2 forests) moveTo(myhand) target(forest[basic]|myLibrary)])) ueot +auto=aslongas(*[nissa]|mybattlefield))>0 transforms((,newability[name(search 3 lands) moveTo(myhand) target(land|myLibrary)])) ueot text=Search your library for up to two basic Forest cards. If you control a Nissa planeswalker, instead search your library for up to three land cards. Reveal those cards, put them into your hand, then shuffle your library. mana={G}{G} type=Sorcery @@ -1694,8 +1706,8 @@ type=Sorcery name=Nissa, Who Shakes the World auto=counter(0/0,5,loyalty) auto=lord(forest|mybattlefield) transforms((,newability[producecolor:green])) -auto={C(0/0,1,Loyalty)}:target(land|mybattlefield) transforms((Elemental Creature,newability[counter(1/1.3)],newability[vigilance],newability[haste])) forever -auto={C(0/0,-8,Loyalty)}:emblem transforms((,newability[lord(land|myBattlefield) indestructible])) forever dontremove +auto={C(0/0,1,Loyalty)}:target(*[land;-creature]|mybattlefield) transforms((Elemental Creature,newability[counter(1/1.3)],newability[vigilance],newability[haste],newability[untap])) forever +auto={C(0/0,-8,Loyalty)}:reveal:plibrarycount optionone name(choose card) target(land[forest]|reveal) moveto(ownerlibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerlibrary) and!( all(*|reveal) moveto(ownerlibrary) and!(shuffle)! )! optiontwoend afterrevealed all(tobecast|mylibrary) moveto(ownerlibrary) and!(moveTo(mybattlefield) and!( emblem transforms((,newability[lord(land|myBattlefield) indestructible])) forever dontremove ) forever )! oneshot)! afterrevealedend revealend text=Whenever you tap a Forest for mana, add an additional {G}. -- +1: Put three +1/+1 counters on up to one target noncreature land you control. Untap it. It becomes a 0/0 Elemental creature with vigilance and haste that's still a land. -- -8: You get an emblem with "Lands you control have indestructible." Search your library for any number of Forest cards, put them onto the battlefield tapped, then shuffle your library. mana={3}{G}{G} type=Legendary Planeswalker @@ -1718,7 +1730,7 @@ toughness=6 name=No Escape target=creature,planeswalker|stack auto=fizzleto(exile) -auto=_SCRY_(1) +auto=scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Counter target creature or planeswalker spell. If that spell is countered this way, exile it instead of putting it into its owner's graveyard. -- Scry 1. mana={2}{U} type=Instant @@ -1790,10 +1802,7 @@ toughness=5 [card] name=Planewide Celebration -auto=Create(citizen:Citizen creature:2/2:white:blue:black:red:green) -auto=moveTo(ownerHand) target(permanent|mygraveyard) moveto(ownerhand) -auto=_PROLIFERATE_ -auto=life:4 +auto=ability$! choice Create(citizen:Citizen creature:2/2:white:blue:black:red:green) _ choice moveTo(ownerHand) target(*[-instant;-sorcery]|mygraveyard) moveto(ownerhand) _ choice _PROLIFERATE_ _choice life:4 !$ controller && ability$! choice Create(citizen:Citizen creature:2/2:white:blue:black:red:green) _ choice moveTo(ownerHand) target(*[-instant;-sorcery]|mygraveyard) moveto(ownerhand) _ choice _PROLIFERATE_ _choice life:4 !$ controller && ability$! choice Create(citizen:Citizen creature:2/2:white:blue:black:red:green) _ choice moveTo(ownerHand) target(*[-instant;-sorcery]|mygraveyard) moveto(ownerhand) _ choice _PROLIFERATE_ _choice life:4 !$ controller && ability$! choice Create(citizen:Citizen creature:2/2:white:blue:black:red:green) _ choice moveTo(ownerHand) target(*[-instant;-sorcery]|mygraveyard) moveto(ownerhand) _ choice _PROLIFERATE_ _choice life:4 !$ controller text=Choose four. You may choose the same mode more than once. -- • Create a 2/2 Citizen creature token that's all colors. -- • Return target permanent card from your graveyard to your hand. -- • Proliferate. -- • You gain 4 life. mana={5}{G}{G} type=Sorcery @@ -1810,8 +1819,8 @@ type=Instant [card] name=Pollenbright Druid -auto=counter(1/1) target(creature) -auto=_PROLIFERATE_ +auto=choice counter(1/1) target(creature) +auto=choice _PROLIFERATE_ text=When Pollenbright Druid enters the battlefield, choose one — -- • Put a +1/+1 counter on target creature. -- • Proliferate. (Choose any number of permanents and/or players, then give each another counter of each kind already there.) mana={1}{G} type=Creature @@ -1858,8 +1867,7 @@ toughness=1 [card] name=Prison Realm -auto=(blink)forsrc target(*[-land]|opponentbattlefield) -auto=_SCRY_(1) +auto=(blink)forsrc target(*[creature;planeswalker]|opponentbattlefield) text=When Prison Realm enters the battlefield, exile target creature or planeswalker an opponent controls until Prison Realm leaves the battlefield. -- When Prison Realm enters the battlefield, scry 1. mana={2}{W} type=Enchantment @@ -1886,17 +1894,17 @@ mana={2}{U}{R} type=Instant [/card] -[card] -name=Ral, Storm Conduit -auto=counter(0/0,4,loyalty) -auto=@movedto(*[instant;sorcery]|mystack):damage:1 target(player) -auto={C(0/0,2,Loyalty)}:_SCRY_(1) -auto={C(0/0,-2,Loyalty)}:@movedto(*[instant;sorcery]|mystack):all(trigger[to]<1>) transforms((,newability[name(copy spell) activate name(copy spell) castcard(copied noevent)])) -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={2}{U}{R} -type=Legendary Planeswalker -subtype=Ral -[/card] +#[card] +#name=Ral, Storm Conduit +#auto=counter(0/0,4,loyalty) +#auto=@movedto(*[instant;sorcery]|mystack):damage:1 opponent +#auto={C(0/0,2,Loyalty)}:scry:1 scrycore delayed dontshow donothing scrycoreend scryend +#auto={C(0/0,-2,Loyalty)}:transforms((,newability[@movedto(*[instant;sorcery]|mystack):all(trigger[to]<1>) name(copy spell) activate name(copy spell) target(instant,sorcery|mystack) 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={2}{U}{R} +#type=Legendary Planeswalker +#subtype=Ral +#[/card] [card] name=Rally of Wings @@ -1926,7 +1934,7 @@ type=Sorcery [card] name=Rescuer Sphinx abilities=flying -auto=may notatarget(-land|myBattlefield) moveto(ownerhand) && counter(1/1) +auto=may target(*[-land]|myBattlefield) moveto(ownerhand) && counter(1/1,1) all(this) text=Flying -- As Rescuer Sphinx enters the battlefield, you may return a nonland permanent you control to its owner's hand. If you do, Rescuer Sphinx enters the battlefield with a +1/+1 counter on it. mana={2}{U}{U} type=Creature @@ -1972,11 +1980,11 @@ toughness=5 [card] name=Role Reversal -auto=moveTo(myBattlefield) target(artifact|opponentBattlefield) && moveto(opponentBattlefield) target(artifact|myBattlefield) -auto=moveTo(myBattlefield) target(creature|opponentBattlefield) && moveto(opponentBattlefield) target(creature|myBattlefield) -auto=moveTo(myBattlefield) target(enchantment|opponentBattlefield) && moveto(opponentBattlefield) target(enchantment|myBattlefield) -auto=moveTo(myBattlefield) target(planeswalker|opponentBattlefield) && moveto(opponentBattlefield) target(planeswalker|myBattlefield) -auto=moveTo(myBattlefield) target(land|opponentBattlefield) && moveto(opponentBattlefield) target(land|myBattlefield) +auto=choice name(artifact) moveTo(myBattlefield) target(artifact|opponentBattlefield) and!(moveto(opponentBattlefield) target(artifact|myBattlefield))! +auto=choice name(creature) moveTo(myBattlefield) target(creature|opponentBattlefield) and!(moveto(opponentBattlefield) target(creature|myBattlefield))! +auto=choice name(enchantment) moveTo(myBattlefield) target(enchantment|opponentBattlefield) and!(moveto(opponentBattlefield) target(enchantment|myBattlefield))! +auto=choice name(planeswalker) moveTo(myBattlefield) target(planeswalker|opponentBattlefield) and!(moveto(opponentBattlefield) target(planeswalker|myBattlefield))! +auto=choice name(land) moveTo(myBattlefield) target(land|opponentBattlefield) and!(moveto(opponentBattlefield) target(land|myBattlefield))! text=Exchange control of two target permanents that share a permanent type. mana={U}{U}{R} type=Sorcery @@ -1985,7 +1993,7 @@ type=Sorcery [card] name=Rubblebelt Rioters abilities=haste -auto=@combat(attacking) source(this):type:highest:power:myBattlefield/0 +auto=@combat(attacking) source(this):power:highest:creature:mybattlefield/0 text=Haste -- Whenever Rubblebelt Rioters attacks, it gets +X/+0 until end of turn, where X is the greatest power among creatures you control. mana={1}{R}{G} type=Creature @@ -2009,7 +2017,7 @@ toughness=3 name=Saheeli, Sublime Artificer auto=counter(0/0,5,loyalty) auto=@movedTo(*[-creature]|mystack):create(servo artifact:creature servo artifact:1/1:colorless) -auto={C(0/0,-2,Loyalty)}:target(artifact|myBattlefield) copy target(other artifact,creature|myBattlefield) ueot +auto={C(0/0,-2,Loyalty)}:target(artifact) transforms((,newability[copy target(*[artifact;creature]|mybattlefield)])) text=Whenever you cast a noncreature spell, create a 1/1 colorless Servo artifact creature token. -- -2: Target artifact you control becomes a copy of another target artifact or creature you control until end of turn, except it's an artifact in addition to its other types. mana={1}{UR}{UR} type=Legendary Planeswalker @@ -2041,8 +2049,8 @@ subtype=Samut [card] name=Sarkhan the Masterless auto=counter(0/0,5,loyalty) -auto=lord(dragon|myBattlefield) @each blockers:foreach(creature[attacking]|opponentBattlefield) all(creature[attacking]|Battlefield) damage:1 -auto={C(0/0,1,Loyalty)}:ueot, all(planeswalker|myBattlefield) becomes a 4/4 red dragon creature && flying +auto=@each blockers:all(creature[attacking]|opponentBattlefield) damage:type:dragon:myBattlefield +auto={C(0/0,1,Loyalty)}:all(planeswalker|myBattlefield) becomes(dragon creature,4/4,red,flying) auto={C(0/0,-3,Loyalty)}:create(dragon:creature dragon:4/4:red:flying) text=Whenever a creature attacks you or a planeswalker you control, each Dragon you control deals 1 damage to that creature. -- +1: Until end of turn, each planeswalker you control becomes a 4/4 red Dragon creature and gains flying. -- -3: Create a 4/4 red Dragon creature token with flying. mana={3}{R}{R} @@ -2084,12 +2092,12 @@ power=2 toughness=3 [/card] -[card] -name=Single Combat -text=Each player chooses a creature or planeswalker they control, then sacrifices the rest. Players can't cast creature or planeswalker spells until the end of your next turn. -mana={3}{W}{W} -type=Sorcery -[/card] +#[card] +#name=Single Combat +#text=Each player chooses a creature or planeswalker they control, then sacrifices the rest. Players can't cast creature or planeswalker #spells until the end of your next turn. +#mana={3}{W}{W} +#type=Sorcery +#[/card] [card] name=Sky Theater Strix @@ -2128,7 +2136,15 @@ name=Sorin, Vengeful Bloodlord auto=counter(0/0,4,loyalty) auto=this(variable{controllerturn}>0) lord(creature,planeswalker|myBattlefield) lifelink auto={C(0/0,2,Loyalty)}:damage:1 target(player,planeswalker) -auto={C(0/0,-1,Loyalty)}:target(creature[manacost<=1]|mygraveyard) moveTo(mybattlefield) +auto={C(0/0,-1,Loyalty)}:name(-1 counter) target(creature[manacost=1]|mygraveyard) moveTo(mybattlefield) && becomes(Vampire) forever +auto={C(0/0,-2,Loyalty)}:name(-2 counters) target(creature[manacost=2]|mygraveyard) moveTo(mybattlefield) && becomes(Vampire) forever +auto={C(0/0,-3,Loyalty)}:name(-3 counters) target(creature[manacost=3]|mygraveyard) moveTo(mybattlefield) && becomes(Vampire) forever +auto={C(0/0,-4,Loyalty)}:name(-4 counters) target(creature[manacost=4]|mygraveyard) moveTo(mybattlefield) && becomes(Vampire) forever +auto={C(0/0,-5,Loyalty)}:name(-5 counters) target(creature[manacost=5]|mygraveyard) moveTo(mybattlefield) && becomes(Vampire) forever +auto={C(0/0,-6,Loyalty)}:name(-6 counters) target(creature[manacost=6]|mygraveyard) moveTo(mybattlefield) && becomes(Vampire) forever +auto={C(0/0,-7,Loyalty)}:name(-7 counters) target(creature[manacost=7]|mygraveyard) moveTo(mybattlefield) && becomes(Vampire) forever +auto={C(0/0,-8,Loyalty)}:name(-8 counters) target(creature[manacost=8]|mygraveyard) moveTo(mybattlefield) && becomes(Vampire) forever +auto={C(0/0,-9,Loyalty)}:name(-9 counters) target(creature[manacost=9]|mygraveyard) moveTo(mybattlefield) && becomes(Vampire) forever text=As long as it's your turn, creatures and planeswalkers you control have lifelink. -- +2: Sorin, Vengeful Bloodlord deals 1 damage to target player or planeswalker. -- -X: Return target creature card with converted mana cost X from your graveyard to the battlefield. That creature is a Vampire in addition to its other types. mana={2}{W}{B} type=Legendary Planeswalker @@ -2137,8 +2153,8 @@ subtype=Sorin [card] name=Soul Diviner -auto={T}{C(1/1,-1)}:draw:1 -auto={T}{C(0/0,-1,Loyalty)}:draw:1 +auto={T}:counter(1/1,-1) notATarget(*[artifact;creature;land;counter{1/1.1}]|myBattlefield)} && draw:1 controller +auto={T}:counter(0/0,-1,Loyalty) notATarget(planeswalker|myBattlefield)} && draw:1 controller text={T}, Remove a counter from an artifact, creature, land, or planeswalker you control: Draw a card. mana={U}{B} type=Creature @@ -2149,9 +2165,9 @@ toughness=3 [card] name=Spark Double -auto=may copy NotATarget(creature,planeswalker) and!( transforms((-legendary)) forever )! +auto=may copy NotATarget(creature) and!( transforms((-legendary)) forever )! auto=counter(1/1) -auto=counter(0/0,1,Loyalty) +#auto=counter(0/0,1,Loyalty) text=You may have Spark Double enter the battlefield as a copy of a creature or planeswalker you control, except it enters with an additional +1/+1 counter on it if it's a creature, it enters with an additional loyalty counter on it if it's a planeswalker, and it isn't legendary if that permanent is legendary. mana={3}{U} type=Creature @@ -2164,7 +2180,7 @@ toughness=0 name=Spark Harvest target=creature,planeswalker auto=destroy -other={3}{B}{B} +other={3}{B}{B} name(cast for {3}{B}{B}) text=As an additional cost to cast this spell, sacrifice a creature or pay {3}{B}. -- Destroy target creature or planeswalker. mana={B}{S(creature|myBattlefield)} type=Sorcery @@ -2258,8 +2274,8 @@ toughness=3 [card] name=Tamiyo's Epiphany -auto=_SCRY_(4) -auto=draw:2 +aicode=activate draw:2 controller +auto=name(Scry) reveal:4 optionone name(Put On Top) target(*|reveal) moveto(mylibrary) optiononeend optiontwo name(put on bottom) target(<4>*|reveal) bottomoflibrary optiontwoend afterrevealed transforms((,newability[draw:2 controller])) oneshot afterrevealedend revealend text=Scry 4, then draw two cards. mana={3}{U} type=Sorcery @@ -2279,7 +2295,7 @@ name=Teferi, Time Raveler auto=counter(0/0,4,loyalty) auto=this(variable{controllerturn}>0) maxCast(*)0 opponent auto={C(0/0,1,Loyalty)}:lord(sorcery|mycastingzone) flash uynt -auto={C(0/0,-3,Loyalty)}:target(*[artifact;creature;enchantment) moveTo(ownerhand) && draw:1 +auto={C(0/0,-3,Loyalty)}:target(*[artifact;creature;enchantment]) moveTo(ownerhand) && draw:1 controller text=Each opponent can cast spells only any time they could cast a sorcery. -- +1: Until your next turn, you may cast sorcery spells as though they had flash. -- -3: Return up to one target artifact, creature, or enchantment to its owner's hand. Draw a card. mana={1}{W}{U} type=Legendary Planeswalker @@ -2345,9 +2361,9 @@ type=Sorcery [card] name=The Wanderer auto=counter(0/0,5,loyalty) -auto=preventallnoncombatdamage to(other *|myBattlefield|myBattlefield) +auto=preventallnoncombatdamage to(other *|myBattlefield) auto=preventallnoncombatdamage to(controller) -auto={C(0/0,-2,Loyalty)}:exile target(creature[power>=4]) +auto={C(0/0,-2,Loyalty)}:moveto(exile) target(creature[power>=4]) text=Prevent all noncombat damage that would be dealt to you and other permanents you control. -- -2: Exile target creature with power 4 or greater. mana={3}{W} type=Legendary Planeswalker @@ -2393,7 +2409,7 @@ toughness=2 name=Tibalt, Rakish Instigator auto=counter(0/0,5,loyalty) abilities=nolifegainopponent -auto={C(0/0,-2,Loyalty)}:create(devil:creature devil:1/1:red:@movedTo(this|graveyard) from(battlefield):damage:1 target(creature,player)) +auto={C(0/0,-2,Loyalty)}:create(devil:creature devil:1/1:red) and!( transforms((,newability[@movedto(this|mygraveyard):damage:1 target(*[creature;player])])) forever )! text=Your opponents can't gain life. -- -2: Create a 1/1 red Devil creature token with "Whenever this creature dies, it deals 1 damage to any target." mana={2}{R} type=Legendary Planeswalker @@ -2431,9 +2447,9 @@ type=Sorcery [card] name=Tolsimir, Friend to Wolves -auto=create(Voja, Friend to Elves:legendary wolf creature:3/3:green:white) +auto=@movedto(wolf|myBattlefield):all(trigger[to]) transforms((,newability[may target(creature|opponentbattlefield) dynamicability])) auto=@movedto(wolf|myBattlefield):life:3 -auto=@movedto(wolf|myBattlefield):all(trigger[to]) transforms((,newability[target(creature|opponentbattlefield) dynamicability])) ueot +auto=create(Voja, Friend to Elves:legendary wolf creature:3/3:green:white) text=When Tolsimir, Friend to Wolves enters the battlefield, create Voja, Friend to Elves, a legendary 3/3 green and white Wolf creature token. -- Whenever a Wolf enters the battlefield under your control, you gain 3 life and that creature fights up to one target creature an opponent controls. mana={2}{G}{G}{W} type=Legendary Creature @@ -2447,7 +2463,7 @@ name=Topple the Statue target=* auto=Tap auto=teach(artifact) destroy -auto=draw:1 +auto=draw:1 controller text=Tap target permanent. If it's an artifact, destroy it. -- Draw a card. mana={2}{W} type=Instant @@ -2488,8 +2504,8 @@ type=Instant [card] name=Ugin's Conjurant -auto=counter{1/1,X} -auto=this(counter{1/1.1}>0) phantom +abilities=hydra +auto=counter(1/1,X) text=Ugin's Conjurant enters the battlefield with X +1/+1 counters on it. -- If damage would be dealt to Ugin's Conjurant while it has a +1/+1 counter on it, prevent that damage and remove that many +1/+1 counters from Ugin's Conjurant. mana={X} type=Creature @@ -2502,7 +2518,7 @@ toughness=0 name=Ugin, the Ineffable auto=counter(0/0,4,loyalty) auto=lord(*[colorless]|mycastingzone) altercost(colorless,-2) -auto={C(0/0,1,Loyalty)}:create(spirit:creature spirit:2/2:colorless) +auto={C(0/0,1,Loyalty)}:create(spirit:creature spirit:2/2:colorless) and!( transforms((,newability[@movedto(this|nonbattlezone):draw:1])])) forever )! auto={C(0/0,-3,Loyalty)}:destroy target(*[white;blue;black;red;green]) text=Colorless spells you cast cost {2} less to cast. -- +1: Exile the top card of your library face down and look at it. Create a 2/2 colorless Spirit creature token. When that token leaves the battlefield, put the exiled card into your hand. -- -3: Destroy target permanent that's one or more colors. mana={6} @@ -2533,7 +2549,7 @@ toughness=1 [card] name=Vivien's Arkbow -auto={X}{T}{D(*|myhand)}:reveal:x optionone target(creature[manacost<=x]|reveal) moveto(mybattlefield) optiononeend optiontwo name(Put in library) all(*|reveal) moveto(mylibrary) optiontwoend revealend +auto={X}{T}{D(*|myhand)}:reveal:x optionone target(creature[manacost<=x]|reveal) moveto(mybattlefield) optiononeend optiontwo name(Put in library) all(*|reveal) bottomoflibrary optiontwoend revealend text={X}, {T}, Discard a card: Look at the top X cards of your library. You may put a creature card with converted mana cost X or less from among them onto the battlefield. Put the rest on the bottom of your library in a random order. mana={1}{G} type=Legendary Artifact @@ -2541,7 +2557,7 @@ type=Legendary Artifact [card] name=Vivien's Grizzly -auto={3}{G}:reveal:1 optionone target(creature,planeswalker|reveal) moveto(myhand) optiononeend optiontwo name(Put in library) target(<1>*|reveal) moveto(mylibrary) optiontwoend revealend +auto={3}{G}:reveal:1 optionone target(creature,planeswalker|reveal) moveto(myhand) optiononeend optiontwo name(Bottom of library) target(<1>*|reveal) bottomoflibrary optiontwoend revealend text={3}{G}: Look at the top card of your library. If it's a creature or planeswalker card, you may reveal it and put it into your hand. If you don't put the card into your hand, put it on the bottom of your library. mana={2}{G} type=Creature diff --git a/projects/mtg/bin/Res/sets/primitives/XLN.txt b/projects/mtg/bin/Res/sets/primitives/XLN.txt index f157c55213..6c64b1b204 100644 --- a/projects/mtg/bin/Res/sets/primitives/XLN.txt +++ b/projects/mtg/bin/Res/sets/primitives/XLN.txt @@ -469,7 +469,7 @@ toughness=7 [card] name=Arcane Adaptation -auto=chooseatype lord(creature|mybattlefield,mystack,myhand,mylibrary) transforms((,creature chosentype)) chooseend +auto=chooseatype lord(creature|mybattlefield,mystack,myhand,mylibrary,mysideboard,mygraveyard,myexile) transforms((chosentype)) chooseend text=As Arcane Adaptation enters the battlefield, choose a creature type. -- Creatures you control are the chosen type in addition to their other types. The same is true for creature spells you control and creature cards you own that aren't on the battlefield. mana={2}{U} type=Enchantment @@ -478,7 +478,7 @@ type=Enchantment [card] name=Chart a Course auto=draw:2 controller -auto=if type(creature[attacking]) ~lessthan~ 1 then discard(*|myhand) +auto=if type(creature[attacking])~lessthan~1 then discard(*|myhand) text=Draw two cards. Then discard a card unless you attacked with a creature this turn. mana={1}{U} type=Sorcery @@ -1104,15 +1104,15 @@ power=1 toughness=2 [/card] -[card] -name=Lurking Chupacabra -text=Whenever a creature you control explores, target creature an opponent controls gets -2/-2 until end of turn. -mana={3}{B} -type=Creature -subtype=Beast Horror -power=2 -toughness=3 -[/card] +#[card] +#name=Lurking Chupacabra +#text=Whenever a creature you control explores, target creature an opponent controls gets -2/-2 until end of turn. +#mana={3}{B} +#type=Creature +#subtype=Beast Horror +#power=2 +#toughness=3 +#[/card] [card] name=March of the Drowned @@ -1962,7 +1962,7 @@ toughness=1 [card] name=Merfolk Branchwalker -auto=_EXPLORE_ +auto=flipacoin winability moverandom(land) from(mylibrary) to(myhand) winabilityend loseability counter(1/1,1) loseabilityend flipend text=When Merfolk Branchwalker enters the battlefield, it explores. (Reveal the top card of your library. Put that card into your hand if it's a land. Otherwise, put a +1/+1 counter on this creature, then put the card back or put it into your graveyard.) mana={1}{G} type=Creature diff --git a/projects/mtg/bin/Res/sets/primitives/_macros.txt b/projects/mtg/bin/Res/sets/primitives/_macros.txt index b0a693af71..9cbfcedfe4 100644 --- a/projects/mtg/bin/Res/sets/primitives/_macros.txt +++ b/projects/mtg/bin/Res/sets/primitives/_macros.txt @@ -34,7 +34,7 @@ #AUTO_DEFINE _TREASURE_ create(Treasure:Artifact Treasure:0/0:"{T}, Sacrifice this artifact: Add one mana of any color.") and!( transforms((,newability[{T}{S}:Add{W}],newability[{T}{S}:Add{U}],newability[{T}{S}:Add{R}],newability[{T}{S}:Add{B}],newability[{T}{S}:Add{G}])) forever )! # Proliferate, still need to target players since the old code doesn't work (*[artifact;creature;...;players]) just let you target creature and player -#AUTO_DEFINE _PROLIFERATE_ notatarget(*) proliferate +#AUTO_DEFINE _PROLIFERATE_ name(proliferate) notatarget(*) proliferate # Mentor, still not working with enhancements, pump effects #AUTO_DEFINE _MENTOR_ @combat(attacking) source(this):counter(1/1,1) target(other creature[attacking;power<=pminus1minusend]|myBattlefield) \ No newline at end of file diff --git a/projects/mtg/bin/Res/sets/primitives/borderline.txt b/projects/mtg/bin/Res/sets/primitives/borderline.txt index c57c2b8105..83b4d68b10 100644 --- a/projects/mtg/bin/Res/sets/primitives/borderline.txt +++ b/projects/mtg/bin/Res/sets/primitives/borderline.txt @@ -60,13 +60,23 @@ name=Karn Liberated auto=counter(0/0,6,loyalty) auto={C(0/0,4,Loyalty)}:target(player) ability$!moveto(exile) and!( becomes(tobecast) forever )! target(*|myhand)!$ targetedplayer auto={C(0/0,-3,Loyalty)}:moveto(exile) and!( becomes(tobecast) forever )! target(*) -auto={C(0/0,-14,Loyalty)}:moveto(ownerlibrary) all(*|opponenthand) && moveto(ownerlibrary) all(*|opponentgraveyard) && moveto(ownerlibrary) all(*|opponentbattlefield) && moveto(ownerlibrary) all(-tobecast,aura,instant,sorcery|opponentexile) && shuffle && draw:7 opponent && lifeset:startinglife opponent && moveto(ownerlibrary) all(*|myhand) && moveto(ownerlibrary) all(*|mygraveyard) && moveto(ownerlibrary) all(*|mybattlefield) && moveto(ownerlibrary) all(-tobecast,aura,instant,sorcery|myexile) && shuffle && draw:7 && lifeset:startinglife && moveto(myBattlefield) all(tobecast|exile) && all(creature|myBattlefield) haste && removemana(*) +auto={C(0/0,-14,Loyalty)}:name(ultimate) moveto(ownerlibrary) all(*|opponenthand) && moveto(ownerlibrary) all(*|opponentgraveyard) && moveto(ownerlibrary) all(*|opponentbattlefield) && moveto(ownerlibrary) all(*[-tobecast;aura;instant;sorcery]|opponentexile) && shuffle && draw:7 opponent && lifeset:startinglife opponent && moveto(ownerlibrary) all(*|myhand) && moveto(ownerlibrary) all(*|mygraveyard) && moveto(ownerlibrary) all(*|mybattlefield) && moveto(ownerlibrary) all(*[-tobecast;aura;instant;sorcery]|myexile) && shuffle && draw:7 && lifeset:startinglife && moveto(myBattlefield) all(tobecast|exile) && all(creature|myBattlefield) haste && removemana(*) text=+4: Target player exiles a card from their hand. -- -3: Exile target permanent. -- -14: Restart the game, leaving in exile all non-Aura permanent cards exiled with Karn Liberated. Then put those cards onto the battlefield under your control. mana={7} type=Legendary Planeswalker subtype=Karn [/card] [card] +name=Time Vault +abilities=doesnotuntap +auto=tap(noevent) +auto=@each opponent end sourcetap:may (turns:-1 controller) && untapthis +auto={T}:turns:+1 controller +text=Time Vault enters the battlefield tapped. -- Time Vault doesn't untap during your untap step. -- If you would begin your turn while Time Vault is tapped, you may skip that turn instead. If you do, untap Time Vault. -- {T}: Take an extra turn after this one. +mana={2} +type=Artifact +[/card] +[card] name=Akiri, Line-Slinger abilities=first strike,vigilance auto=type:artifact:mybattlefield/0 nonstatic @@ -473,7 +483,7 @@ type=Sorcery [card] name=Mogg Infestation target=player -auto=all(creature|targetedpersonsbattlefield) destroy and!( if cantargetcard(creature|graveyard) then create(Goblin:Creature Goblin:1/1:red)*2 )! +auto=all(creature|targetedpersonsbattlefield) destroy and!( if cantargetcard(creature|graveyard) then create(Goblin:Creature Goblin:1/1:red)*2 targetedpersonsbattlefield)! mana={3}{R}{R} type=Sorcery text=Destroy all creatures target player controls. For each creature that died this way, put two 1/1 red Goblin creature tokens onto the battlefield under that player's control. diff --git a/projects/mtg/bin/Res/sets/primitives/mtg.txt b/projects/mtg/bin/Res/sets/primitives/mtg.txt index 443a3c2657..cf03a338f6 100644 --- a/projects/mtg/bin/Res/sets/primitives/mtg.txt +++ b/projects/mtg/bin/Res/sets/primitives/mtg.txt @@ -1153,7 +1153,7 @@ abilities=flying,cantblock text=Flying -- Aesthir Glider can't block. mana={3} type=Artifact Creature -subtype=Bird +subtype=Bird Construct power=2 toughness=1 [/card] @@ -3452,7 +3452,7 @@ toughness=5 [/card] [card] name=Ancestral Knowledge -auto=cumulativeupcost[{U}] sacrifice +auto=cumulativeupcost[{1}] sacrifice auto=@movedto(this|nonbattlezone):shuffle controller aicode=name(look) activate name(look) transforms((,newability[foreach(*[zpos<=10]|mylibrary) moverandom(*[zpos<=10]) from(mylibrary) to(mylibrary)])) ueot auto=name(look) reveal:10 optionone name(Choose cards to exile) target(*|reveal) moveto(myexile) optiononeend optiontwo name(put on top) target(<10>*|reveal) moveto(mylibrary) optiontwoend revealend @@ -6949,7 +6949,7 @@ toughness=3 [/card] [card] name=Augur of Bolas -aicode=activate target(instant,sorcery[zpos<=3]|mylibrary) moveto(myhand) +aicode=activate target(*[instant;sorcery;zpos<=3]|mylibrary) moveto(myhand) auto=name(look) reveal:3 optionone name(Get instant or sorcery) target(instant,sorcery|reveal) moveto(myhand) optiononeend optiontwo name(put on bottom) all(*|reveal) bottomoflibrary optiontwoend revealend text=When Augur of Bolas enters the battlefield, look at the top three cards of your library. You may reveal an instant or sorcery card from among them and put it into your hand. Put the rest on the bottom of your library in any order. mana={1}{U} @@ -7003,7 +7003,7 @@ type=Land [card] name=Auntie's Snitch abilities=cantblock -autograveyard=@combatdamaged(player) from(creature[goblin;rogue]|mybattlefield):may moveto(ownerhand) +autograveyard=@combatdamaged(player) from(*[goblin;rogue]|mybattlefield):may moveto(ownerhand) other={1}{B} name(Prowl) otherrestriction=prowl text=Auntie's Snitch can't block. -- Prowl {1}{B} (You may cast this for its prowl cost if you dealt combat damage to a player this turn with a Goblin or Rogue.) -- Whenever a Goblin or Rogue you control deals combat damage to a player, if Auntie's Snitch is in your graveyard, you may return Auntie's Snitch to your hand. @@ -21091,7 +21091,7 @@ subtype=Aura [/card] [card] name=Cloven Casting -auto=@movedto(instant,sorcery[multicolor]|mystack):all(trigger[to]<1>) transforms((,newability[pay[[{1}]] name(copy spell) activate name(copy spell) castcard(copied noevent)])) forever +auto=@movedto(*[instant;sorcery;multicolor]|mystack):all(trigger[to]<1>) transforms((,newability[pay[[{1}]] name(copy spell) activate name(copy spell) castcard(copied noevent)])) forever text=Whenever you cast a multicolored instant or sorcery spell, you may pay {1}. If you do, copy that spell. You may choose new targets for the copy. mana={5}{U}{R} type=Enchantment @@ -29988,7 +29988,7 @@ toughness=1 [/card] [card] name=Disembowel -auto=destroy target(creature[manacost =X]) +auto=destroy target(creature[manacost=prex]) text=Destroy target creature with converted mana cost X. mana={X}{B} type=Instant @@ -30630,7 +30630,7 @@ type=Instant [/card] [card] name=Dominate -auto=moveTo(mybattlefield) target(creature[manacost <=X]) +auto=moveTo(mybattlefield) target(creature[manacost<=prex]) text=Gain control of target creature with converted mana cost X or less. (This effect lasts indefinitely.) mana={X}{1}{U}{U} type=Instant @@ -35254,7 +35254,7 @@ toughness=1 [/card] [card] name=Elvish Soultiller -auto=@movedTo(graveyard) from(battlefield):chooseatype moveTo(mylibrary) all(creature[chosentype]|mygraveyard) chooseend && shuffle +auto=@movedTo(this|graveyard) from(battlefield):chooseatype moveTo(mylibrary) all(creature[chosentype]|mygraveyard) chooseend && shuffle text=When Elvish Soultiller is put into a graveyard from the battlefield, choose a creature type. Shuffle all creature cards of that type from your graveyard into your library. mana={3}{G}{G} type=Creature @@ -37872,16 +37872,6 @@ mana={4}{B} type=Sorcery [/card] [card] -name=Exotic Orchard -auto=this(variable{olandg}>0) {t}:out{g} -auto=this(variable{olandu}>0) {t}:out{u} -auto=this(variable{olandr}>0) {t}:out{r} -auto=this(variable{olandb}>0) {t}:out{b} -auto=this(variable{olandw}>0) {t}:out{w} -text={T}: Add to your mana pool one mana of any color that a land an opponent controls could produce. -type=Land -[/card] -[card] name=Expedite auto=haste auto=draw:1 @@ -39741,17 +39731,6 @@ power=8 toughness=6 [/card] [card] -name=Fellwar Stone -auto=this(variable{olandg}) {t}:out{g} -auto=this(variable{olandu}) {t}:out{u} -auto=this(variable{olandr}) {t}:out{r} -auto=this(variable{olandb}) {t}:out{b} -auto=this(variable{olandw}) {t}:out{w} -text={T}: Add to your mana pool one mana of any color that a land an opponent controls could produce. -mana={2} -type=Artifact -[/card] -[card] name=Femeref Archers auto={T}:damage:4 target(creature[attacking;flying]) text={T}: Femeref Archers deals 4 damage to target attacking creature with flying. @@ -42833,7 +42812,7 @@ type=Enchantment [/card] [card] name=Forced March -auto=destroy all(creature[manacost <=X]) +auto=destroy all(creature[manacost<=X]) text=Destroy all creatures with converted mana cost X or less. mana={X}{B}{B}{B} type=Sorcery @@ -44660,7 +44639,7 @@ type=Land [/card] [card] name=Gamekeeper -auto=@movedTo(this|graveyard) from(battlefield):may all(trigger[to]) moveto(exile) && Reveal:1 revealzone(mylibrary) revealuntil(creature|mylibrary) optionone choice name(Get Card) target(creature|reveal) moveto(myhand) optiononeend optiontwo choice name(put in Graveyard) all(*|reveal) moveto(mygraveyard) optiontwoend revealend +auto=@movedTo(this|graveyard) from(battlefield):may all(trigger[to]) moveto(exile) && Reveal:1 revealzone(mylibrary) revealuntil(creature|mylibrary) optionone choice name(Get Card) target(creature|reveal) moveto(mybattlefield) optiononeend optiontwo choice name(put in Graveyard) all(*|reveal) moveto(mygraveyard) optiontwoend revealend text=When Gamekeeper dies, you may exile it. If you do, reveal cards from the top of your library until you reveal a creature card. Put that card onto the battlefield and put all other cards revealed this way into your graveyard. mana={3}{G} type=Creature @@ -45085,7 +45064,7 @@ subtype=Arcane [/card] [card] name=Gaze of Granite -auto=destroy all(*[-land;manacost<=X]) +auto=destroy all(*[-land;manacost<=prex]) text=Destroy each nonland permanent with converted mana cost X or less. mana={X}{B}{B}{G} type=Sorcery @@ -45424,7 +45403,7 @@ toughness=0 [card] name=Genesis Wave mana={X}{G}{G}{G} -auto=name(Reveal X cards) reveal:X optionone name(Get Any Cards) target(*[manacost <=x]|reveal) moveto(mybattlefield) optiononeend optiontwo choice name(Discard the rest) all(*|reveal) moveto(mygraveyard) optiontwoend revealend +auto=name(Reveal X cards) reveal:X optionone name(Get Any Cards) target(*[manacost<=x]|reveal) moveto(mybattlefield) optiononeend optiontwo choice name(Discard the rest) all(*|reveal) moveto(mygraveyard) optiontwoend revealend type=Sorcery text=Reveal the top X cards of your library. You may put any number of permanent cards with converted mana cost X or less from among them onto the battlefield. Then put all cards revealed this way that weren't put onto the battlefield into your graveyard. [/card] @@ -67569,7 +67548,7 @@ name=Liliana, the Last Hope auto=counter(0/0,3,Loyalty) auto={C(0/0,1,Loyalty)}:name(+1: loyalty) donothing restriction{compare(cantargetoppocre)~lessthan~1} auto={C(0/0,1,Loyalty)}:name(+1: dread) target(creature) transforms((,newability[-2/-1])) uynt restriction{compare(cantargetoppocre)~morethan~0} -auto={C(0/0,-2,Loyalty)}:name(-2: Deplete and fetch) may moveto(myhand) target(creature|mygraveyard) && deplete:2 +auto={C(0/0,-2,Loyalty)}:name(-2: Deplete and fetch) deplete:2 && moveto(myhand) target(creature|mygraveyard) auto={C(0/0,-7,Loyalty)}:name(-7: Zombie Overrun) emblem transforms((,newability[phaseactionmulti[my endofturn] foreach(zombie|mybattlefield) create(Zombie:Creature Zombie:2/2:black:tnum.135272) && create(Zombie:Creature Zombie:2/2:black:tnum.135272)*2])) forever dontremove text=+1: Up to one target creature gets -2/-1 until your next turn. -- -2: Put the top two cards of your library into your graveyard, then you may return a creature card from your graveyard to your hand. -- -7: You get an emblem with "At the beginning of your end step, put X 2/2 black Zombie creature tokens onto the battlefield, where X is two plus the number of Zombies you control." mana={1}{B}{B} @@ -70478,8 +70457,8 @@ toughness=6 [card] name=Malfunction target=*[artifact;creature] -auto=teach(mytgt) tap -auto=teach(mytgt) doesnotuntap +auto=teach(*) tap +auto=teach(*) doesnotuntap text=Enchant artifact or creature -- When Malfunction enters the battlefield, tap enchanted permanent. -- Enchanted permanent doesn't untap during its controller's untap step. mana={3}{U} type=Enchantment @@ -75826,7 +75805,7 @@ toughness=6 [/card] [card] name=Molder -auto=destroy target(*[artifact;enchantment;manacost <=X]) +auto=destroy target(*[artifact;enchantment;manacost<=prex]) auto=life:X text=Destroy target artifact or enchantment with converted mana cost X. It can't be regenerated. You gain X life. mana={X}{G} @@ -82967,8 +82946,8 @@ toughness=5 [card] name=Oracle of Mul Daya abilities=showfromtoplibrary -auto=canplaylandlibrarytop auto=maxPlay(land)+1 +auto=canplaylandlibrarytop text=You may play an additional land on each of your turns. -- Play with the top card of your library revealed. -- You may play the top card of your library if it's a land card. mana={3}{G} type=Creature @@ -91007,20 +90986,6 @@ power=1 toughness=1 [/card] [card] -name=Quirion Explorer -auto=this(variable{olandg}>0) {t}:out{g} -auto=this(variable{olandu}>0) {t}:out{u} -auto=this(variable{olandr}>0) {t}:out{r} -auto=this(variable{olandb}>0) {t}:out{b} -auto=this(variable{olandw}>0) {t}:out{w} -text={T}: Add to your mana pool one mana of any color that a land an opponent controls could produce. -mana={1}{G} -type=Creature -subtype=Elf Druid Scout -power=1 -toughness=1 -[/card] -[card] name=Quirion Ranger auto={H(forest|myBattlefield)}:untap target(creature) limit:1 text=Return a Forest you control to its owner's hand: Untap target creature. Activate this ability only once each turn. @@ -93253,7 +93218,7 @@ type=Enchantment [/card] [card] name=Reciprocate -target=creature[controllerdamager] +target=*[controllerdamager] auto=moveto(exile) text=Exile target creature that dealt damage to you this turn. mana={W} @@ -94367,7 +94332,7 @@ type=Sorcery [/card] [card] name=Repeal -auto=moveTo(ownerhand) target(*[manacost =X]) +auto=moveTo(ownerhand) target(*[manacost=X]) auto=draw:1 controller text=Return target nonland permanent with converted mana cost X to its owner's hand. -- Draw a card. mana={X}{U} @@ -112052,7 +112017,7 @@ name=Spiteful Returned auto=bestow bstw auto=bestow teach(creature) +1/+1 auto=bestow transforms((,newability[@combat(attacking) source(this):life:-2 opponent])) forever -auto=@combat(attacking) source(this):target(creature|opponentbattlefield) life:-2 opponent +auto=@combat(attacking) source(this):life:-2 opponent bestow={3}{b} text=Bestow {3}{B} (If you cast this card for its bestow cost, it's an Aura spell with enchant creature. It becomes a creature again if it's not attached to a creature.) -- Whenever Spiteful Returned or enchanted creature attacks, defending player loses 2 life. -- Enchanted creature gets +1/+1. mana={1}{B} @@ -113871,7 +113836,7 @@ name=Stirring Wildwood auto=tap(noevent) auto={T}:Add{G} auto={T}:Add{W} -auto={1}{G}{W}:transforms((Elemental Creature,setpower=3,settoughness=4,white,green)) ueot +auto={1}{G}{W}:transforms((Elemental Creature,setpower=3,settoughness=4,white,green,reach)) ueot text=Stirring Wildwood enters the battlefield tapped. -- {T}: Add {G} or {W} to your mana pool. -- {1}{G}{W}: Until end of turn, Stirring Wildwood becomes a 3/4 green and white Elemental creature with reach. It's still a land. type=Land [/card] @@ -116272,8 +116237,9 @@ type=Instant [/card] [card] name=Supply-Line Cranes +abilities=flying auto=counter(1/1,1) target(creature) -text=When Supply-Line Cranes enters the battlefield, put a +1/+1 counter on target creature. +text=Flying -- When Supply-Line Cranes enters the battlefield, put a +1/+1 counter on target creature. mana={3}{W}{W} type=Creature subtype=Bird @@ -117341,20 +117307,6 @@ power=* toughness=4 [/card] [card] -name=Sylvok Explorer -auto=this(variable{olandg}>0) {t}:out{g} -auto=this(variable{olandu}>0) {t}:out{u} -auto=this(variable{olandr}>0) {t}:out{r} -auto=this(variable{olandb}>0) {t}:out{b} -auto=this(variable{olandw}>0) {t}:out{w} -text={T}: Add to your mana pool one mana of any color that a land an opponent controls could produce. -mana={1}{G} -type=Creature -subtype=Human Druid -power=1 -toughness=1 -[/card] -[card] name=Sylvok Lifestaff auto=teach(creature) 1/0 auto=@movedTo(mytgt|graveyard) from(battlefield):all(trigger[to]) life:3 controller @@ -135189,10 +135141,10 @@ type=Artifact [/card] [card] name=Wirewood Channeler -auto={T}:name(Red) foreach(elf|myBattlefield) add{R} -auto={T}:name(White) foreach(elf|myBattlefield) add{W} -auto={T}:name(Green) foreach(elf|myBattlefield) add{G} -auto={T}:name(Black) foreach(elf|myBattlefield) add{B} +auto={T}:name(Red) foreach(elf) add{R} +auto={T}:name(White) foreach(elf) add{W} +auto={T}:name(Green) foreach(elf) add{G} +auto={T}:name(Black) foreach(elf) add{B} auto={T}:name(Blue) foreach(elf|myBattlefield) add{U} text={T}: Add X mana of any one color to your mana pool, where X is the number of Elves on the battlefield. mana={3}{G}