From a72c35a693d78ea4ce4f49b65f1215caab3b6526 Mon Sep 17 00:00:00 2001 From: Vittorio Alfieri Date: Wed, 10 Feb 2021 22:29:08 +0100 Subject: [PATCH] Fixed all cards with "scry" ability, fixed all cards with "surveil" ability, fixed all cards with "explores" ability, fixed all cards with "adventure" ability. --- .../bin/Res/sets/primitives/borderline.txt | 576 +++++++++++------- projects/mtg/bin/Res/sets/primitives/mtg.txt | 123 +++- .../bin/Res/sets/primitives/planeswalkers.txt | 11 +- .../bin/Res/sets/primitives/unsupported.txt | 16 +- 4 files changed, 446 insertions(+), 280 deletions(-) diff --git a/projects/mtg/bin/Res/sets/primitives/borderline.txt b/projects/mtg/bin/Res/sets/primitives/borderline.txt index bcb9e6875..cf39181fd 100644 --- a/projects/mtg/bin/Res/sets/primitives/borderline.txt +++ b/projects/mtg/bin/Res/sets/primitives/borderline.txt @@ -1670,11 +1670,11 @@ type=Land [/card] [card] name=Animating Faerie // Bring to Life -abilities=canplayfromexile,flying,adventure +abilities=flying,adventure other={2}{U} name(Adventure) -auto=if paid(alternative) then target(artifact[-creature]|myBattlefield) transforms((Artifact Creature,newability[counter(1/1.4)])) forever -auto=if paid(alternative) then moveto(exile) all(this) -text=Flying -- Target noncreature artifact you control becomes a 0/0 artifact creature. Put four +1/+1 counters on it. +autostack=if paid(alternative) then name(Target artifact becomes creature) name(Target artifact becomes creature) target(artifact[-creature]|myBattlefield) transforms((Artifact Creature,newability[counter(1/1.4)])) forever +autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever +text=Flying // Target noncreature artifact you control becomes a 0/0 artifact creature. Put four +1/+1 counters on it. mana={2}{U} type=Creature subtype=Faerie @@ -1824,6 +1824,7 @@ subtype=Aura [card] name=Anticognition target=*[creature;planeswalker]|stack +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=transforms((,newability[pay[[{2}]] name(pay 2 mana) donothing?fizzle])) forever auto=if type(*|opponentGraveyard)~morethan~7 then scry:2 scrycore delayed dontshow donothing scrycoreend scryend text=Counter target creature or planeswalker spell unless its controller pays {2}. If an opponent has eight or more cards in their graveyard, instead counter that spell, then scry 2. @@ -2393,12 +2394,14 @@ toughness=5 [/card] [card] name=Ardenvale Tactician // Dizzying Swoop -abilities=canplayfromexile,flying,flash,adventure -restriction=myturnonly +abilities=flying,flash,adventure +restriction=can play creature other={1}{W} name(Adventure) -auto=if paid(alternative) then target(creature|battlefield) tap(noevent) -auto=if paid(alternative) then moveto(exile) all(this) -text=Flying -- Tap up to two target creatures. (Then exile this card. You may cast the creature later from exile.) +autostack=if paid(alternative) then if type(creature|battlefield)~morethan~1 then choice name(Tap 2 creatures) name(Tap 2 creatures) name(Tap 2 creatures) target(<2>creature|battlefield) tap(noevent) +autostack=if paid(alternative) then if type(creature|battlefield)~morethan~0 then choice name(Tap 1 creature) name(Tap 1 creature) name(Tap 1 creature) target(creature|battlefield) tap(noevent) +autostack=if paid(alternative) then choice name(Don't tap any creature) name(Don't tap any creature) donothing +autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever +text=Flying // Tap up to two target creatures. (Then exile this card. You may cast the creature later from exile.) mana={1}{W}{W} type=Creature subtype=Human Knight @@ -2611,6 +2614,7 @@ type=Instant [card] name=Artificer's Assistant abilities=flying +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=@movedTo(*[artifact;legendary;saga]|mystack):scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Flying -- Whenever you cast a historic spell, scry 1. (Artifacts, legendaries, and Sagas are historic. To scry 1, look at the top card of your library, then you may put that card on the bottom of your library.) mana={U} @@ -3855,8 +3859,8 @@ type=Instant [card] name=Barrier of Bones abilities=defender -aicode=surveil && name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=psurveiloffsetplus1plusend]|mylibrary) moverandom(*[zpos<=psurveiloffsetplus1plusend]) from(mylibrary) to(mylibrary)])) ueot -auto=surveil && name(surveil) reveal:psurveiloffsetplus1plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend revealend +aicode=activate transforms((,newability[surveil],newability[all(*[zpos<=psurveiloffsetplus1plusend]|mylibrary) transforms((,newability[if compare(genrand2)~equalto~1 then moveto(mygraveyard)])) oneshot])) oneshot +auto=name(Surveil 1) reveal:psurveiloffsetplus1plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend afterrevealed surveil afterrevealedend revealend text=Defender -- When Barrier of Bones enters the battlefield, surveil 1. (Look at the top card of your library. You may put that card into your graveyard.) mana={B} type=Creature @@ -4076,6 +4080,7 @@ subtype=Saga [card] name=Battle of Frost and Fire auto=counter(0/0,1,Lore) +aicode=activate transforms((,newability[all(*[zpos<=3]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=@each my firstmain:counter(0/0,1,Lore) auto=all(creature[-giant]|battlefield) damage:3 auto=all(planeswalker|battlefield) damage:3 @@ -4183,12 +4188,12 @@ toughness=2 [/card] [card] name=Beanstalk Giant // Fertile Footsteps -abilities=canplayfromexile,adventure +abilities=adventure other={2}{G} name(Adventure) anyzone=type:land:myBattlefield/type:land:myBattlefield cdaactive -auto=if paid(alternative) then target(land[basic]|mylibrary) moveto(mybattlefield) -auto=if paid(alternative) then moveto(exile) all(this) -text=Beanstalk Giant's power and toughness are each equal to the number of lands you control. -- Search your library for a basic land card, put it onto the battlefield, then shuffle your library. (Then exile this card. You may cast the creature later from exile.) +autostack=if paid(alternative) then name(Search basic land) name(Search basic land) target(land[basic]|mylibrary) moveto(mybattlefield) +autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever +text=Beanstalk Giant's power and toughness are each equal to the number of lands you control. // Search your library for a basic land card, put it onto the battlefield, then shuffle your library. (Then exile this card. You may cast the creature later from exile.) mana={6}{G} type=Creature subtype=Giant @@ -5899,15 +5904,15 @@ toughness=3 [/card] [card] name=Bonecrusher Giant // Stomp -abilities=canplayfromexile,flash,adventure -restriction=myturnonly +abilities=flash,adventure +restriction=can play creature other={1}{R} name(Adventure) #MISSING: damage can't be prevented -auto=if paid(alternative) then damage:2 target(player,creature,planeswalker) -auto=if paid(alternative) then moveto(exile) all(this) -auto=@targeted(this) from(*|opponentzones):damage:2 opponent -auto=@targeted(this) from(*|myzones):damage:2 controller -text=Whenever Bonecrusher Giant becomes the target of a spell, Bonecrusher Giant deals 2 damage to that spell's controller. -- Damage can't be prevented this turn. Stomp deals 2 damage to any target. +autostack=if paid(alternative) then name(Deals 2 damage) name(Deals 2 damage) damage:2 target(player,creature,planeswalker) +autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever +auto=@targeted(this) from(*|opponentzones):name(Deals 2 damage) damage:2 opponent +auto=@targeted(this) from(*|myzones):name(Deals 2 damage) damage:2 controller +text=Whenever Bonecrusher Giant becomes the target of a spell, Bonecrusher Giant deals 2 damage to that spell's controller. // Damage can't be prevented this turn. Stomp deals 2 damage to any target. mana={2}{R} type=Creature subtype=Giant @@ -5978,6 +5983,7 @@ type=Sorcery [card] name=Bontu the Glorified abilities=menace,indestructible,cantattack,cantblock +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=@movedto(creature|mygraveyard) from(mybattlefield):-cantattack ueot auto=@movedto(creature|mygraveyard) from(mybattlefield):-cantblock ueot auto={1}{B}{S(other creature|mybattlefield)}:scry:1 scrycore delayed dontshow donothing scrycoreend scryend && life:-1 opponent && life:1 controller @@ -6360,11 +6366,11 @@ toughness=3 [/card] [card] name=Brazen Borrower // Petty Theft -abilities=canplayfromexile,flash,flying,cloud,adventure +abilities=flash,flying,cloud,adventure other={1}{U} name(Adventure) -auto=if paid(alternative) then target(*[-land]|opponentbattlefield) moveTo(ownerHand) -auto=if paid(alternative) then moveto(exile) all(this) -text=Flash -- Flying -- Brazen Borrower can block only creatures with flying. -- Return target nonland permanent an opponent controls to its owner's hand. +autostack=if paid(alternative) then name(Return to hand) name(Return to hand) target(*[-land]|opponentbattlefield) moveTo(ownerHand) +autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever +text=Flash -- Flying -- Brazen Borrower can block only creatures with flying. // Return target nonland permanent an opponent controls to its owner's hand. mana={1}{U}{U} type=Creature subtype=Faerie Rogue @@ -6374,8 +6380,8 @@ toughness=1 [card] name=Brazen Buccaneers abilities=haste -aicode=activate if type(land[zpos=1]|mylibrary)~lessthan~1 then all(this) counter(1/1) else all(land[zpos=1]|mylibrary) moveto(myhand) -auto=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 revealend limit:1 +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 limit:1 text=Haste -- When Brazen Buccaneers 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={3}{R} type=Creature @@ -6831,6 +6837,7 @@ type=Instant [/card] [card] name=Burning Prophet +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot 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. @@ -7032,6 +7039,7 @@ type=Land [card] name=Calculated Dismissal target=*|stack +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=transforms((,newability[pay[[{3}]] name(pay 3 mana) donothing?fizzle])) oneshot auto=if type(*[instant;sorcery]|mygraveyard)~morethan~1 then scry:2 scrycore delayed dontshow donothing scrycoreend scryend text=Counter target spell unless its controller pays {3}. -- Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, scry 2. (To scry 2, look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.) @@ -7494,6 +7502,7 @@ subtype=Aura Cartouche [/card] [card] name=Cascade Seer +aicode=activate transforms((,newability[all(*[zpos<=calculateparty]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:calculateparty scrycore delayed dontshow donothing scrycoreend scryend text=When Cascade Seer enters the battlefield, scry X, where X is the number of creatures in your party. (Your party consists of up to one each of Cleric, Rogue, Warrior, and Wizard.) mana={3}{U} @@ -7596,6 +7605,7 @@ type=Land [/card] [card] name=Castle Vantress +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto={T}:add{U} auto=aslongas(land[island]|myBattlefield) tap(noevent) <1 oneshot auto={2}{U}{U}{T}:scry:2 scrycore delayed dontshow donothing scrycoreend scryend @@ -7801,6 +7811,7 @@ toughness=5 [card] name=Cavalier of Gales abilities=flying +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=draw:3 controller && transforms((,newability[target(<2>*|myhand) moveto(mylibrary)])) oneshot auto=@movedTo(this|graveyard) from(myBattlefield):all(trigger[to]) moveTo(mylibrary) and!( transforms((,newability[scry:2 scrycore delayed dontshow donothing scrycoreend scryend],newability[shuffle])) oneshot )! text=Flying -- When Cavalier of Gales enters the battlefield, draw three cards, then put two cards from your hand on top of your library in any order. -- When Cavalier of Gales dies, shuffle it into its owner's library, then scry 2. @@ -8024,6 +8035,7 @@ type=Instant [card] name=Chain to Memory target=creature +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=-4/-0 auto=scry:2 scrycore delayed dontshow donothing scrycoreend scryend text=Target creature gets -4/-0 until end of turn. Scry 2. @@ -8556,9 +8568,10 @@ toughness=1 [/card] [card] name=Charming Prince -auto=choice scry:2 scrycore delayed dontshow donothing scrycoreend scryend -auto=choice life:3 -auto=choice (blink)ueot target(another creature |mybattlefield) +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot +auto=choice name(Scry 2) scry:2 scrycore delayed dontshow donothing scrycoreend scryend +auto=choice name(Gain 3 life) life:3 +auto=choice name(Exile your creature) (blink)ueot target(other *[creature]|mybattlefield) text=When Charming Prince enters the battlefield, choose one — -- • Scry 2. -- • You gain 3 life. -- • Exile another target creature you own. Return it to the battlefield under your control at the beginning of the next end step. mana={1}{W} type=Creature @@ -8978,8 +8991,8 @@ type=Sorcery [card] name=Citywatch Sphinx abilities=flying -auto=@movedTo(this|graveyard) from(battlefield):surveil && name(surveil) reveal:psurveiloffsetplus2plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend revealend -aicode=surveil && name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=psurveiloffsetplus2plusend]|mylibrary) moverandom(*[zpos<=psurveiloffsetplus2plusend]) from(mylibrary) to(mylibrary)])) ueot +aicode=activate transforms((,newability[surveil],newability[all(*[zpos<=psurveiloffsetplus2plusend]|mylibrary) transforms((,newability[if compare(genrand2)~equalto~1 then moveto(mygraveyard)])) oneshot])) oneshot +auto=@movedTo(this|graveyard) from(battlefield):name(Surveil 2) reveal:psurveiloffsetplus2plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend afterrevealed surveil afterrevealedend revealend text=Flying -- When Citywatch Sphinx dies, surveil 2. (Look at the top two cards of your library, then put any number of them into your graveyard and the rest on the top of your library in any order.) mana={5}{U} type=Creature @@ -9328,6 +9341,7 @@ toughness=4 [card] name=Cloudreader Sphinx abilities=flying +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:2 scrycore delayed dontshow donothing scrycoreend scryend text=Flying -- When Cloudreader Sphinx enters the battlefield, scry 2. (Look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.) mana={4}{U} @@ -10053,8 +10067,8 @@ toughness=4 [card] name=Connive // Concoct other={3}{U}{B} name(Concoct) -aicode=if paid(alternative) then surveil && name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=psurveiloffsetplus3plusend]|mylibrary) moverandom(*[zpos<=psurveiloffsetplus3plusend]) from(mylibrary) to(mylibrary)],newability[moveto(myBattlefield) target(creature|mygraveyard)])) ueot -auto=if paid(alternative) then surveil && name(surveil) reveal:psurveiloffsetplus3plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend afterrevealed target(creature|mygraveyard) moveto(myBattlefield) afterrevealedend revealend +aicode=activate transforms((,newability[surveil],newability[all(*[zpos<=psurveiloffsetplus3plusend]|mylibrary) transforms((,newability[if compare(genrand2)~equalto~1 then moveto(mygraveyard)])) oneshot])) oneshot +auto=if paid(alternative) then name(Surveil 3) reveal:psurveiloffsetplus3plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend afterrevealed target(creature|mygraveyard) moveto(myBattlefield) && surveil afterrevealedend revealend auto=ifnot paid(alternative) then moveTo(myBattlefield) target(creature[power<=2]) text=Gain control of target creature with power 2 or less. -- Surveil 3, then return a creature card from your graveyard to the battlefield. mana={2}{UB}{UB} @@ -10983,6 +10997,7 @@ type=Land [/card] [card] name=Cryptic Annelid +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:1 scrycore delayed dontshow donothing scrycoreend scryend auto=scry:3 scrycore delayed dontshow donothing scrycoreend scryend auto=scry:2 scrycore delayed dontshow donothing scrycoreend scryend @@ -11164,6 +11179,7 @@ toughness=3 [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) bottomoflibrary])) oneshot])) oneshot auto=@movedto(*|mygraveyard) from(myhand):scry:1 scrycore delayed dontshow donothing scrycoreend scryend autohand=__CYCLING__({U}) text=Flying -- Whenever you cycle or discard another card, scry 1. -- Cycling {U} ({U}, Discard this card: Draw a card.) @@ -11222,9 +11238,10 @@ subtype=Aura [/card] [card] name=Curious Pair // Treats to Share -abilities=canplayfromexile,adventure +abilities=adventure other={G} name(Adventure) -auto=if paid(alternative) then token(-473141) && moveto(exile) all(this) +autostack=if paid(alternative) then name(Create Food) name(Create Food) token(-473141) +autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever text=Create a Food token. (Then exile this card. You may cast the creature later from exile. A Food token is an artifact with "{2}, {T}, Sacrifice this artifact: You gain 3 life.") mana={1}{G} type=Creature @@ -11815,8 +11832,8 @@ type=Instant name=Dazzling Lights target=creature auto=-3/-0 -aicode=surveil && name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=psurveiloffsetplus2plusend]|mylibrary) moverandom(*[zpos<=psurveiloffsetplus2plusend]) from(mylibrary) to(mylibrary)])) ueot -auto=surveil && name(surveil) reveal:psurveiloffsetplus2plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend revealend +aicode=activate transforms((,newability[surveil],newability[all(*[zpos<=psurveiloffsetplus2plusend]|mylibrary) transforms((,newability[if compare(genrand2)~equalto~1 then moveto(mygraveyard)])) oneshot])) oneshot +auto=name(Surveil 2) reveal:psurveiloffsetplus2plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend afterrevealed surveil afterrevealedend revealend text=Target creature gets -3/-0 until end of turn. -- Surveil 2. (Look at the top two cards of your library, then put any number of them into your graveyard and the rest on the top of your library in any order.) mana={U} type=Instant @@ -11930,8 +11947,8 @@ toughness=2 [/card] [card] name=Deadeye Tracker -aicode=activate if type(land[zpos=1]|mylibrary)~lessthan~1 then all(this) counter(1/1) else all(land[zpos=1]|mylibrary) moveto(myhand) -auto={1}{B}{T}{E(*|opponentgraveyard)} restriction{type(*|opponentgraveyard)~morethan~1}:moveto(exile) target(*|opponentgraveyard) && 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 revealend limit:1 +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={1}{B}{T}{E(*|opponentgraveyard)} restriction{type(*|opponentgraveyard)~morethan~1}:moveto(exile) target(*|opponentgraveyard) && 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 text={1}{B}, {T}: Exile two target cards from an opponent's graveyard. Deadeye Tracker 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={B} type=Creature @@ -11973,8 +11990,8 @@ type=Instant name=Deadly Visit target=creature auto=destroy -aicode=surveil && name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=psurveiloffsetplus2plusend]|mylibrary) moverandom(*[zpos<=psurveiloffsetplus2plusend]) from(mylibrary) to(mylibrary)])) ueot -auto=surveil && name(surveil) reveal:psurveiloffsetplus2plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend revealend +aicode=activate transforms((,newability[surveil],newability[all(*[zpos<=psurveiloffsetplus2plusend]|mylibrary) transforms((,newability[if compare(genrand2)~equalto~1 then moveto(mygraveyard)])) oneshot])) oneshot +auto=name(Surveil 2) reveal:psurveiloffsetplus2plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend afterrevealed surveil afterrevealedend revealend text=Destroy target creature. -- Surveil 2. (Look at the top two cards of your library, then put any number of them into your graveyard and the rest on top of your library in any order.) mana={3}{B}{B} type=Sorcery @@ -12903,6 +12920,7 @@ subtype=Arcane [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) bottomoflibrary])) oneshot])) oneshot auto=moveTo(exile) auto=scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Exile target creature or planeswalker that's black or red. Scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) @@ -13041,8 +13059,8 @@ type=Instant [/card] [card] name=Dimir Informant -aicode=surveil && name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=psurveiloffsetplus2plusend]|mylibrary) moverandom(*[zpos<=psurveiloffsetplus2plusend]) from(mylibrary) to(mylibrary)])) ueot -auto=surveil && name(surveil) reveal:psurveiloffsetplus2plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend revealend +aicode=activate transforms((,newability[surveil],newability[all(*[zpos<=psurveiloffsetplus2plusend]|mylibrary) transforms((,newability[if compare(genrand2)~equalto~1 then moveto(mygraveyard)])) oneshot])) oneshot +auto=name(Surveil 2) reveal:psurveiloffsetplus2plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend afterrevealed surveil afterrevealedend revealend text=When Dimir Informant enters the battlefield, surveil 2. (Look at the top two cards of your library, then put any number of them into your graveyard and the rest on the top of your library in any order.) mana={2}{U} type=Creature @@ -13140,8 +13158,8 @@ toughness=1 [card] name=Dire Fleet Interloper abilities=menace -aicode=activate if type(land[zpos=1]|mylibrary)~lessthan~1 then all(this) counter(1/1) else all(land[zpos=1]|mylibrary) moveto(myhand) -auto=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 revealend limit:1 +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 text=Menace -- When Dire Fleet Interloper 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={3}{B} type=Creature @@ -13270,11 +13288,12 @@ toughness=1 name=Discovery // Dispersal abilities=flash other={3}{U}{B} name(Dispersal) -restriction=myturnonly -aicode=ifnot paid(alternative) then surveil && name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=psurveiloffsetplus2plusend]|mylibrary) moverandom(*[zpos<=psurveiloffsetplus2plusend]) from(mylibrary) to(mylibrary)],newability[draw:1 controller])) ueot -auto=ifnot paid(alternative) then surveil && name(surveil) reveal:psurveiloffsetplus2plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend afterrevealed draw:1 controller afterrevealedend revealend -auto=if paid(alternative) then ability$!name(return non-land permanent) name(return non-land permanent) moveto(ownerhand) notatarget(*[-land;manacost=convertedcost:highest:*:myBattlefield])!$ opponent && ability$!name(Discard a card) name(Discard a card) target(*|myhand) reject!$ opponent -text=Surveil 2, then draw a card. -- (To surveil 2, look at the top two cards of your library, then put any number of them into your graveyard and the rest on top of your library in any order.) -- Each opponent returns a nonland permanent they control with the highest converted mana cost among permanents they control to its owner’s hand, then discards a card. +restriction=can play sorcery +aicode=activate transforms((,newability[surveil],newability[draw:1 controller])) oneshot +auto=ifnot paid(alternative) then name(Surveil 2) reveal:psurveiloffsetplus2plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend afterrevealed draw:1 controller && surveil afterrevealedend revealend +auto=if paid(alternative) then ability$!name(return non-land permanent) name(return non-land permanent) moveto(ownerhand) notatarget(*[-land;manacost=convertedcost:highest:*:myBattlefield])!$ opponent +auto=if paid(alternative) then ability$!name(Discard a card) name(Discard a card) target(*|myhand) reject!$ opponent +text=Surveil 2, then draw a card. -- (To surveil 2, look at the top two cards of your library, then put any number of them into your graveyard and the rest on top of your library in any order.) // Each opponent returns a nonland permanent they control with the highest converted mana cost among permanents they control to its owner’s hand, then discards a card. mana={1}{UB} type=Sorcery [/card] @@ -13542,9 +13561,9 @@ type=Enchantment [/card] [card] name=Doom Whisperer -abilities=flying, trample -auto={L:2}:surveil && name(surveil) reveal:psurveiloffsetplus2plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend revealend -aicode=surveil && name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=psurveiloffsetplus2plusend]|mylibrary) moverandom(*[zpos<=psurveiloffsetplus2plusend]) from(mylibrary) to(mylibrary)])) ueot +abilities=flying,trample +aicode=activate transforms((,newability[surveil],newability[all(*[zpos<=psurveiloffsetplus2plusend]|mylibrary) transforms((,newability[if compare(genrand2)~equalto~1 then moveto(mygraveyard)])) oneshot])) oneshot +auto={L:2}:name(Surveil 2) reveal:psurveiloffsetplus2plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend afterrevealed surveil afterrevealedend revealend text=Flying, trample -- Pay 2 life: Surveil 2. (Look at the top two cards of your library, then put any number of them into your graveyard and the rest on the top of your library in any order.) mana={3}{B}{B} type=Creature @@ -14163,10 +14182,10 @@ toughness=3 [/card] [card] name=Dream Eater -abilities=flash, flying -auto=moveTo(ownerHand) target(*[-land]) -aicode=surveil && name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=psurveiloffsetplus4plusend]|mylibrary) moverandom(*[zpos<=psurveiloffsetplus4plusend]) from(mylibrary) to(mylibrary)])) ueot -auto=surveil && name(surveil) reveal:psurveiloffsetplus4plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend revealend +abilities=flash,flying +aicode=activate transforms((,newability[surveil],newability[may name(Return non-land permanent) target(*[-land]|opponentBattlefield) moveTo(ownerhand)],newability[all(*[zpos<=psurveiloffsetplus4plusend]|mylibrary) transforms((,newability[if compare(genrand2)~equalto~1 then moveto(mygraveyard)])) oneshot])) oneshot +auto=if type(*[-land]|opponentBattlefield)~morethan~0 then choice name(Surveil 4 and return permanent) name(Surveil 4 and return permanent) reveal:psurveiloffsetplus4plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend afterrevealed name(Return non-land permanent) target(*[-land]|opponentBattlefield) moveTo(ownerhand) && surveil afterrevealedend revealend +auto=choice name(Surveil 4 and don't return permanent) reveal:psurveiloffsetplus4plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend afterrevealed surveil afterrevealedend revealend text=Flash -- Flying -- When Dream Eater enters the battlefield, surveil 4. When you do, you may return target nonland permanent an opponent controls to its owner's hand. (To surveil 4, look at the top four cards of your library, then put any number of them into your graveyard and the rest on top of your library in any order.) mana={4}{U}{U} type=Creature @@ -14689,6 +14708,7 @@ toughness=2 [/card] [card] name=Eager Construct +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=may name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend auto=ability$!name(Scry 1) may name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend!$ opponent text=When Eager Construct enters the battlefield, each player may scry 1. @@ -14754,7 +14774,9 @@ type=Instant [card] name=Eat to Extinction target=creature,planeswalker -auto=moveto(exile) target(creature,planeswalker) && scry:1 scrycore delayed dontshow donothing scrycoreend scryend +auto=moveto(exile) +aicode=activate may moveto(mygraveyard) all(*[zpos=1]|mylibrary) +auto=name(Look) reveal:1 optionone name(Put On Top) target(*|reveal) moveto(mylibrary) optiononeend optiontwo name(put in graveyard) target(<1>*|reveal) moveto(mygraveyard) optiontwoend revealend text=Exile target creature or planeswalker. Look at the top card of your library. You may put that card into your graveyard. mana={3}{B} type=Instant @@ -14793,7 +14815,7 @@ toughness=4 [/card] [card] name=Edgewall Innkeeper -auto=@movedTo(creature[adventure]|mystack):draw:1 controller +auto=@movedTo(creature[adventure]|myBattlefield):draw:1 controller text=Whenever you cast a creature spell that has an Adventure, draw a card. (It doesn't need to have gone on the adventure first.) mana={G} type=Creature @@ -15315,10 +15337,10 @@ toughness=1 [/card] [card] name=Embereth Shieldbreaker // Battle Display -abilities=canplayfromexile,adventure +abilities=adventure other={R} name(Adventure) -auto=if paid(alternative) then target(artifact|battlefield) destroy -auto=if paid(alternative) then moveto(exile) all(this) +autostack=if paid(alternative) then name(Destroy artifact) name(Destroy artifact) target(artifact|battlefield) destroy +autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever text=Destroy target artifact. (Then exile this card. You may cast the creature later from exile.) mana={1}{R} type=Creature @@ -15471,8 +15493,8 @@ toughness=4 [card] name=Emissary of Sunrise abilities=first strike -aicode=activate if type(land[zpos=1]|mylibrary)~lessthan~1 then all(this) counter(1/1) else all(land[zpos=1]|mylibrary) moveto(myhand) -auto=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 revealend limit:1 +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 text=First strike -- When Emissary of Sunrise 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={2}{W} type=Creature @@ -15492,8 +15514,8 @@ toughness=2 [/card] [card] name=Emperor's Vanguard -aicode=activate if type(land[zpos=1]|mylibrary)~lessthan~1 then all(this) counter(1/1) else all(land[zpos=1]|mylibrary) moveto(myhand) -auto=@combatdamaged(player) from(this):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 revealend limit:1 +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=@combatdamaged(player) from(this):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 text=Whenever Emperor's Vanguard deals combat damage to a player, 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={3}{G} type=Creature @@ -15781,9 +15803,9 @@ type=Sorcery [card] name=Enter the Unknown target=creature|mybattlefield -aicode=activate if type(land[zpos=1]|mylibrary)~lessthan~1 then counter(1/1) else all(land[zpos=1]|mylibrary) moveto(myhand) +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=choice name(Target creature you control explores) name(Target creature you control 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 auto=maxPlay(land)+1 -auto=choice name(Target creature you control explores) name(Target creature you control explores) 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 revealend limit:1 text=Target creature you control 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 the creature, then put the card back or put it into your graveyard.) -- You may play an additional land this turn. mana={G} type=Sorcery @@ -16543,6 +16565,7 @@ type=Sorcery name=Expose to Daylight target=artifact,enchantment auto=destroy +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Destroy target artifact or enchantment. Scry 1. mana={2}{W} @@ -16634,6 +16657,7 @@ toughness=2 [/card] [card] name=Eyes Everywhere +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto={5}{U}:moveto(mybattlefield) target(*[-land]|opponentbattlefield) and!( moveto(opponentbattlefield) all(this) )! asSorcery auto=@each my upkeep:scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=At the beginning of your upkeep, scry 1. -- {5}{U}: Exchange control of Eyes Everywhere and target nonland permanent. Activate this ability only any time you could cast a sorcery. @@ -16709,11 +16733,12 @@ type=Sorcery [/card] [card] name=Fae of Wishes // Granted -abilities=canplayfromexile,flying,adventure +abilities=flying,adventure other={3}{U} name(Adventure) -auto=if paid(alternative) then reveal:type:*:mysideboard revealzone(mysideboard) optionone name(choose card) target(<1>*[-creature]|reveal) moveto(myhand) and!(all(other *|reveal) moveto(ownersideboard))! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownersideboard) and!(all(other *|reveal) moveto(ownersideboard))! optiontwoend revealend && moveto(exile) all(this) -auto={1}{U}{D(*|myhand)}{D(*|myhand)}:moveTo(ownerhand) -text=Flying -- {1}{U}, Discard two cards: Return Fae of Wishes to its owner's hand. -- You may choose a noncreature card you own from outside the game, reveal it, and put it into your hand. +autostack=if paid(alternative) then name(Pick non-creature from sideboard) name(Pick non-creature from sideboard) target(*[-creature]|mysideboard) moveTo(myhand) +autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever +auto={1}{U}{D(*|myhand)}{D(*|myhand)}:name(Return to hand) moveTo(ownerhand) +text=Flying -- {1}{U}, Discard two cards: Return Fae of Wishes to its owner's hand. // You may choose a noncreature card you own from outside the game, reveal it, and put it into your hand. mana={1}{U} type=Creature subtype=Faerie Wizard @@ -16767,11 +16792,11 @@ toughness=4 [/card] [card] name=Faerie Guidemother // Gift of the Fae -abilities=canplayfromexile,flying,adventure +abilities=flying,adventure other={1}{W} name(Adventure) -auto=if paid(alternative) then target(creature) transforms((,newability[flying],newability[2/1])) ueot -auto=if paid(alternative) then moveto(exile) all(this) -text=Flying -- Target creature gets +2/+1 and gains flying until end of turn. (Then exile this card. You may cast the creature later from exile.) +autostack=if paid(alternative) then name(Creature gets 2/1 and flying) name(Creature gets 2/1 and flying) target(creature) transforms((,newability[flying],newability[2/1])) ueot +autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever +text=Flying // Target creature gets +2/+1 and gains flying until end of turn. (Then exile this card. You may cast the creature later from exile.) mana={W} type=Creature subtype=Faerie @@ -16781,6 +16806,7 @@ toughness=1 [card] name=Faerie Seer abilities=flying +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:2 scrycore delayed dontshow donothing scrycoreend scryend text=Flying -- When Faerie Seer enters the battlefield, scry 2. mana={U} @@ -17017,6 +17043,7 @@ toughness=3 name=Fateful End target=player,creature,plansewalker auto=damage:3 +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Fateful End deals 3 damage to any target. Scry 1. mana={2}{R} @@ -18303,11 +18330,12 @@ type=Instant [/card] [card] name=Flaxen Intruder // Welcome Home -abilities=canplayfromexile,adventure +abilities=adventure other={5}{G}{G} name(Adventure) -auto=if paid(alternative) then token(Bear,Creature Bear,2/2,green)*3 && moveto(exile) all(this) +autostack=if paid(alternative) then name(Create 3 Bears) name(Create 3 Bears) token(Bear,Creature Bear,2/2,green)*3 +autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever auto=@combatdamaged(player) from(this):may sacrifice all(this) && destroy target(*[artifact;enchantment]|battlefield) -text=Whenever Flaxen Intruder deals combat damage to a player, you may sacrifice it. When you do, destroy target artifact or enchantment. -- Create three 2/2 green Bear creature tokens. (Then exile this card. You may cast the creature later from exile.) +text=Whenever Flaxen Intruder deals combat damage to a player, you may sacrifice it. When you do, destroy target artifact or enchantment. // Create three 2/2 green Bear creature tokens. (Then exile this card. You may cast the creature later from exile.) mana={G} type=Creature subtype=Human Berserker @@ -18788,11 +18816,12 @@ type=Sorcery [/card] [card] name=Foulmire Knight // Profane Insight -abilities=canplayfromexile,deathtouch,flash,adventure -restriction=myturnonly +abilities=deathtouch,flash,adventure +restriction=can play creature other={2}{B} name(Adventure) -auto=if paid(alternative) then draw:1 controller && life:-1 controller && moveto(exile) all(this) -text=Deathtouch -- You draw a card and you lose 1 life. (Then exile this card. You may cast the creature later from exile.) +autostack=if paid(alternative) then name(Draw 1 and opponent looses 1 life) name(Draw 1 and opponent looses 1 life) draw:1 controller && life:-1 controller +autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever +text=Deathtouch // You draw a card and you lose 1 life. (Then exile this card. You may cast the creature later from exile.) mana={B} type=Creature subtype=Zombie Knight @@ -19451,11 +19480,11 @@ toughness=3 [/card] [card] name=Garenbrig Carver // Shield's Might -abilities=canplayfromexile,flash,adventure -restriction=myturnonly +abilities=flash,adventure +restriction=can play creature other={1}{G} name(Adventure) -auto=if paid(alternative) then target(creature|battlefield) 2/2 ueot -auto=if paid(alternative) then moveto(exile) all(this) +autostack=if paid(alternative) then name(Creature gets 2/2) name(Creature gets 2/2) target(creature|battlefield) 2/2 ueot +autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever text=Target creature gets +2/+2 until end of turn. (Then exile this card. You may cast the creature later from exile.) mana={3}{G} type=Creature @@ -19477,7 +19506,7 @@ toughness=4 [/card] [card] name=Garenbrig Squire -auto=@movedTo(creature[adventure]|mystack):1/1 ueot +auto=@movedTo(creature[adventure]|myBattlefield):1/1 ueot text=Whenever you cast a creature spell that has an Adventure, Garenbrig Squire gets +1/+1 until end of turn. (It doesn't need to have gone on the adventure first.) mana={1}{G} type=Creature @@ -19733,6 +19762,18 @@ power=4 toughness=4 [/card] [card] +name=Gemstone Caverns +autohand=@each my upkeep restriction{compare(currentturn)~equalto~1}:may name(Start with gemstone in play) transforms((,newability[moveto(mybattlefield) and!( counter(0/0.1.luck) )!],newability[name(Exile card from hand) target(other *|myhand) moveto(myexile)])) oneshot +auto={T}:add{C} +auto=this(counter{0/0.1.luck}>0) {T}:add{W} +auto=this(counter{0/0.1.luck}>0) {T}:add{U} +auto=this(counter{0/0.1.luck}>0) {T}:add{G} +auto=this(counter{0/0.1.luck}>0) {T}:add{B} +auto=this(counter{0/0.1.luck}>0) {T}:add{R} +text=If Gemstone Caverns is in your opening hand and you're not playing first, you may begin the game with Gemstone Caverns on the battlefield with a luck counter on it. If you do, exile a card from your hand. -- {T}: Add {1} to your mana pool. If Gemstone Caverns has a luck counter on it, instead add one mana of any color to your mana pool. +type=Legendary Land +[/card] +[card] name=General Kudro of Drannith auto=lord(other creature[human]|myBattlefield) 1/1 auto=moveTo(exile) target(*|opponentGraveyard) @@ -19870,6 +19911,7 @@ toughness=3 name=Get the Point target=creature auto=destroy +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Destroy target creature. Scry 1. mana={3}{B}{R} @@ -20040,13 +20082,13 @@ toughness=1 [/card] [card] name=Giant Killer // Chop Down -abilities=canplayfromexile,flash,adventure -restriction=myturnonly +abilities=flash,adventure +restriction=can play creature other={2}{W} name(Adventure) -auto=if paid(alternative) then target(creature[power>=4]) destroy -auto=if paid(alternative) then moveto(exile) all(this) +autostack=if paid(alternative) then name(Destroy creature) name(Destroy creature) target(creature[power>=4]|battlefield) destroy +autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever auto={1}{W}{T}:target(creature) tap(noevent) -text={1}{W}, {T}: Tap target creature. -- Destroy target creature with power 4 or greater. (Then exile this card. You may cast the creature later from exile.) +text={1}{W}, {T}: Tap target creature. // Destroy target creature with power 4 or greater. (Then exile this card. You may cast the creature later from exile.) mana={W} type=Creature subtype=Human Peasant @@ -20899,6 +20941,7 @@ toughness=2 [/card] [card] name=Gnostro, Voice of the Crags +aicode=activate transforms((,newability[all(*[zpos<=pstormcount]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto={T}:name(Scry) name(Scry) scry:pstormcount scrycore delayed dontshow donothing scrycoreend scryend auto={T}:name(Damage creature) name(Damage creature) damage:pstormcount target(creature) auto={T}:name(Gain life) name(Gain life) life:pstormcount controller @@ -21916,6 +21959,7 @@ toughness=1 [card] name=Graven Lore restriction=compare(mysnowpoolcount)~equalto~0 +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot autohand={2}{i}{U}{U} restriction{compare(mysnowpoolcount)~equalto~1}:name(Cast with 1 snow mana) name(Cast with 1 snow mana) scry:1 scrycore delayed dontshow donothing scrycoreend scryend && activate castcard(alternative) autohand={1}{i}{i}{U}{U} restriction{compare(mysnowpoolcount)~equalto~2}:name(Cast with 2 snow mana) name(Cast with 2 snow mana) scry:2 scrycore delayed dontshow donothing scrycoreend scryend && activate castcard(alternative) autohand={i}{i}{i}{U}{U} restriction{compare(mysnowpoolcount)~morethan~2}:name(Cast with 3 snow mana) name(Cast with 3 snow mana) scry:3 scrycore delayed dontshow donothing scrycoreend scryend && activate castcard(alternative) @@ -22754,6 +22798,7 @@ toughness=2 [card] name=Hakka, Whispering Raven abilities=flying +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=@combatdamagefoeof(player) from(this):name(Return to hand and scry 2) name(Return to hand and scry 2) moveTo(ownerhand) and!( scry:2 scrycore delayed dontshow donothing scrycoreend scryend )! auto=@combatdamageof(player) from(this):name(Return to hand and scry 2) name(Return to hand and scry 2) moveTo(ownerhand) and!( scry:2 scrycore delayed dontshow donothing scrycoreend scryend )! text=Flying -- Whenever Hakka, Whispering Raven deals combat damage to a player, return it to its owner’s hand, then scry 2. @@ -24519,9 +24564,9 @@ type=Sorcery [/card] [card] name=House Guildmage -auto={1}{U}{T}:target(creature) freeze -auto={2}{B}{T}:surveil && name(surveil) reveal:psurveiloffsetplus2plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend revealend -aicode=surveil && name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=psurveiloffsetplus2plusend]|mylibrary) moverandom(*[zpos<=psurveiloffsetplus2plusend]) from(mylibrary) to(mylibrary)])) ueot +auto={1}{U}{T}:target(creature) frozen +aicode=activate transforms((,newability[surveil],newability[all(*[zpos<=psurveiloffsetplus2plusend]|mylibrary) transforms((,newability[if compare(genrand2)~equalto~1 then moveto(mygraveyard)])) oneshot])) oneshot +auto={2}{B}{T}:name(Surveil 2) reveal:psurveiloffsetplus2plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend afterrevealed surveil afterrevealedend revealend text={1}{U}, {T}: Target creature doesn't untap during its controller's next untap step. -- {2}{B}, {T}: Surveil 2. (Look at the top two cards of your library, then put any number of them into your graveyard and the rest on top of your library in any order.) mana={U}{B} type=Creature @@ -24934,12 +24979,12 @@ type=Sorcery [/card] [card] name=Hypnotic Sprite // Mesmeric Glare -abilities=canplayfromexile,flying,flash,adventure -restriction=myturnonly +abilities=flying,flash,adventure +restriction=can play creature other={2}{U} name(Adventure) -auto=if paid(alternative) then target(*[manacost<=3]|stack) fizzle -auto=if paid(alternative) then moveto(exile) all(this) -text=Flying -- Counter target spell with converted mana cost 3 or less. (Then exile this card. You may cast the creature later from exile.) +autostack=if paid(alternative) then name(Counter spell) name(Counter spell) target(*[manacost<=3]|stack) fizzle +autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever +text=Flying // Counter target spell with converted mana cost 3 or less. (Then exile this card. You may cast the creature later from exile.) mana={U}{U} type=Creature subtype=Faerie @@ -25642,6 +25687,7 @@ type=Instant [/card] [card] name=In Search of Greatness +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=@each my upkeep restriction{type(*[-instant;-sorcery;manacost=convertedcost:highest:*:mybattlefieldplus1plusend]|myhand)~morethan~0}:ability$!name(Choose one) choice name(Cast permanent) target(*[-instant;-sorcery;manacost=convertedcost:highest:*:mybattlefieldplus1plusend]|myhand) activate castcard(normal) _ choice name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend!$ controller auto=@each my upkeep restriction{type(*[-instant;-sorcery;manacost=convertedcost:highest:*:mybattlefieldplus1plusend]|myhand)~equalto~0}:name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=At the beginning of your upkeep, you may cast a permanent spell from your hand with converted mana cost equal to 1 plus the highest converted mana cost among other permanents you control without paying its mana cost. If you don’t, scry 1. @@ -26033,6 +26079,7 @@ 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) bottomoflibrary])) oneshot])) oneshot auto=scry:3 scrycore delayed dontshow donothing scrycoreend scryend auto=@movedto(creature|graveyard) from(battlefield):counter(0/0,1,IngaEffect) auto=@movedto(this|graveyard) from(mybattlefield):this(counter{0/0.1.IngaEffect}>=3) draw:3 controller @@ -26127,6 +26174,7 @@ toughness=4 name=Inordinate Rage target=creature auto=3/2 ueot +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Target creature gets +3/+2 until end of turn. Scry 1. mana={1}{R} @@ -26134,6 +26182,7 @@ type=Instant [/card] [card] name=Inquisitive Puppet +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:1 scrycore delayed dontshow donothing scrycoreend scryend auto={E}:create(Human:creature Human:1/1:white) text=When Inquisitive Puppet enters the battlefield, scry 1. -- Exile Inquisitive Puppet: Create a 1/1 white Human creature token. @@ -26276,6 +26325,7 @@ type=Instant [card] name=Inspire Awe auto=preventallcombatdamage from(creature[-enchantment;-enchanted]|battlefield) ueot +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:2 scrycore delayed dontshow donothing scrycoreend scryend text=Prevent all combat damage that would be dealt this turn except by enchanted creatures and enchantment creatures. Scry 2. mana={3}{G} @@ -26499,6 +26549,7 @@ toughness=5 name=Invasion of the Giants auto=counter(0/0,1,Lore) auto=@each my firstmain:counter(0/0,1,Lore) +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:2 scrycore delayed dontshow donothing scrycoreend scryend auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.2.Lore}=) transforms((,newability[draw:1 controller],newability[if type(giant|myhand)~morethan~0 then damage:2 target(player^planeswalker)])) oneshot auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.3.Lore}) name(Next giant costs 2 less) target(giant|mycastingzone) transforms((,newability[changecost(colorless:-2)])) ueot @@ -26781,8 +26832,8 @@ type=Enchantment [/card] [card] name=Ixalli's Diviner -aicode=activate if type(land[zpos=1]|mylibrary)~lessthan~1 then all(this) counter(1/1) else all(land[zpos=1]|mylibrary) moveto(myhand) -auto=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 revealend limit:1 +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 text=When Ixalli's Diviner 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 @@ -26882,6 +26933,7 @@ type=Instant name=Jace's Defeat target=*[blue]|stack auto=fizzle +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=if casted(this) then if type(jace|opponentstack)~morethan~0 then scry:2 scrycore delayed dontshow donothing scrycoreend scryend text=Counter target blue spell. If it was a Jace planeswalker spell, scry 2. mana={1}{U} @@ -27017,9 +27069,9 @@ type=Instant [/card] [card] name=Jadelight Ranger -aicode=activate if type(land[zpos=1]|mylibrary)~lessthan~1 then all(this) counter(1/1) else all(land[zpos=1]|mylibrary) moveto(myhand) -auto=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 revealend limit:1 -auto=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 revealend limit:1 +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 +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 text=When Jadelight Ranger enters the battlefield, it explores, then it explores again. (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. Then repeat this process.) mana={1}{G}{G} type=Creature @@ -27121,6 +27173,7 @@ type=Sorcery name=Jaya's Greeting target=creature auto=damage:3 +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=_SCRY_(1) text=Jaya's Greeting deals 3 damage to target creature. Scry 1. mana={1}{R} @@ -29756,8 +29809,8 @@ subtype=Aura [/card] [card] name=Lazav, the Multifarious -aicode=activate surveil && name(surveil) transforms((,newability[foreach(*[zpos<=psurveiloffsetplus1plusend]|mylibrary) moverandom(*[zpos<=psurveiloffsetplus1plusend]) from(mylibrary) to(mylibrary)])) ueot -auto=surveil && name(surveil) reveal:psurveiloffsetplus1plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend revealend +aicode=activate transforms((,newability[surveil],newability[all(*[zpos<=psurveiloffsetplus1plusend]|mylibrary) transforms((,newability[if compare(genrand2)~equalto~1 then moveto(mygraveyard)])) oneshot])) oneshot +auto=name(Surveil 1) reveal:psurveiloffsetplus1plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend afterrevealed surveil afterrevealedend revealend auto=counter(0/0,1,LazavEffect) auto=emblem transforms((,newability[lord(creature[counter{0/0.1.LazavEffect}]|mybattlefield) transforms((,newability[{X}:name(Copy creature) transforms((,newability[name(Copy creature) target(creature[manacost=x]|mygraveyard) copy and!( transforms((Legendary Lazav)) forever )!])) forever])) forever])) forever dontremove text=When Lazav, the Multifarious enters the battlefield, surveil 1. (Look at the top card of your library. You may put it into your graveyard.) -- {X}: Lazav, the Multifarious becomes a copy of target creature card in your graveyard with converted mana cost X, except its name is Lazav, the Multifarious, it's legendary in addition to its other types, and it has this ability. @@ -30701,6 +30754,7 @@ toughness=3 [card] name=Littjara Kinseekers abilities=changeling +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=if compare(variable{sametypecreatures})~morethan~2 then counter(1/1) && scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Changeling (This card is every creature type.) -- When Littjara Kinseekers enters the battlefield, if you control three or more creatures that share a creature type, put a +1/+1 counter on Littjara Kinseekers, then scry 1. mana={3}{U} @@ -30962,10 +31016,11 @@ type=Instant [/card] [card] name=Lonesome Unicorn // Rider in Need -abilities=canplayfromexile,vigilance,adventure +abilities=vigilance,adventure other={2}{W} name(Adventure) -auto=if paid(alternative) then token(Knight,creature Knight,2/2,white,vigilance) && moveto(exile) all(this) -text=Vigilance -- Create a 2/2 white Knight creature token with vigilance. (Then exile this card. You may cast the creature later from exile.) +autostack=if paid(alternative) then name(Create knight) name(Create knight) token(Knight,creature Knight,2/2,white,vigilance) +autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever +text=Vigilance // Create a 2/2 white Knight creature token with vigilance. (Then exile this card. You may cast the creature later from exile.) mana={4}{W} type=Creature subtype=Unicorn @@ -31061,6 +31116,7 @@ type=Sorcery [/card] [card] name=Lost Legion +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:2 scrycore delayed dontshow donothing scrycoreend scryend text=When Lost Legion enters the battlefield, scry 2. (Look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.) mana={1}{B}{B} @@ -31104,12 +31160,13 @@ type=Land [/card] [card] name=Lovestruck Beast // Heart's Desire -abilities=canplayfromexile,adventure +abilities=adventure other={G} name(Adventure) -auto=if paid(alternative) then create(Human:creature Human:1/1:white) && moveto(exile) all(this) +autostack=if paid(alternative) then name(Create human) name(Create human) token(Human,Creature Human,1/1,white) +autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever auto=@each my combatbegins:if type(creature[power=1]|mybattlefield)~lessthan~1 then cantattack ueot auto=@each my combatbegins:if type(creature[toughness=1]|mybattlefield)~lessthan~1 then cantattack ueot -text=Lovestruck Beast can't attack unless you control a 1/1 creature. -- Create a 1/1 white Human creature token. (Then exile this card. You may cast the creature later from exile.) +text=Lovestruck Beast can't attack unless you control a 1/1 creature. // Create a 1/1 white Human creature token. (Then exile this card. You may cast the creature later from exile.) mana={2}{G} type=Creature subtype=Beast Noble @@ -31214,13 +31271,6 @@ power=3 toughness=4 [/card] [card] -name=Lucky Clover -auto=@movedto(*[adventure]|mystack) from(mylibrary):all(trigger[to]) castcard(copied noevent) -text=Whenever you cast an Adventure instant or sorcery spell, copy it. You may choose new targets for the copy. -mana={2} -type=Artifact -[/card] -[card] name=Ludevic, Necro-Alchemist abilities=partner auto=@each my end restriction{compare(oplifelost)~morethan~0}:may draw:1 controller @@ -31233,6 +31283,17 @@ power=1 toughness=4 [/card] [card] +name=Lullmage Mentor +auto=@targeted(*|stack) from(*|myzones):may name(Create merfolk) token(Merfolk,Creature Merfolk,1/1,blue) +auto={T(merfolk[-tapped]|mybattlefield)}{T(merfolk[-tapped]|mybattlefield)}{T(merfolk[-tapped]|mybattlefield)}{T(merfolk[-tapped]|mybattlefield)}{T(merfolk[-tapped]|mybattlefield)}{T(merfolk[-tapped]|mybattlefield)}{T(merfolk[-tapped]|mybattlefield)}:name(Counter spell) target(*|stack) fizzle +text=Whenever a spell or ability you control counters a spell, you may put a 1/1 blue Merfolk creature token onto the battlefield. -- Tap seven untapped Merfolk you control: Counter target spell. +mana={1}{U}{U} +type=Creature +subtype=Merfolk Wizard +power=2 +toughness=2 +[/card] +[card] name=Lullmage's Domination anyzone=if type(*|opponentGraveyard)~morethan~7 then changecost(colorless:-3) forcedalive target=creature[manacost=X] @@ -31798,6 +31859,7 @@ type=Instant [/card] [card] name=Mana Geode +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=_SCRY_(1) auto={T}:Add{W} auto={T}:Add{U} @@ -32063,6 +32125,7 @@ toughness=5 [/card] [card] name=Marit Lage's Slumber +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:1 scrycore delayed dontshow donothing scrycoreend scryend auto=@movedTo(*[snow]|mybattlefield):scry:1 scrycore delayed dontshow donothing scrycoreend scryend auto=@each my upkeep restriction{type(*[snow]|myBattlefield)~morethan~9}:may sacrifice all(this) && token(Avatar,creature Avatar,20/20,black,flying,indestructible) controller @@ -32447,6 +32510,7 @@ type=Land [/card] [card] name=Mazemind Tome +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto={T}{C(0/0,1,Page)}:name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend auto={2}{T}{C(0/0,1,Page)}:name(Draw 1) draw:1 controller auto=@counteradded(0/0,1,Page) from(this):this(counter{0/0.1.Page}>=4) moveTo(myExile) all(this) && life:4 controller @@ -32531,6 +32595,7 @@ type=Land name=Memory Drain target=*|stack auto=fizzle +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:2 scrycore delayed dontshow donothing scrycoreend scryend text=Counter target spell. Scry 2. mana={2}{U}{U} @@ -32549,9 +32614,9 @@ type=Sorcery [/card] [card] name=Memory Theft -target=opponent -aicode=activate reject notatarget(*[-land]|targetedpersonshand) -auto=reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) notatarget(<1>*[-creature;-land]|reveal) transforms((,newability[moveto(ownerhand) all(other *|reveal)],newability[moveto(ownerhand) and!(reject)!])) ueot optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend && may moveTo(targetedpersonsgraveyard) target(*[Adventure]) from(targetedpersonsexile) +aicode=activate transforms((,newability[reject target(*[-land]|opponenthand)],newability[ability$!name(Put adventure in graveyard) moveTo(opponentgraveyard) target(*[adventure]|opponentexile)!$ controller])) oneshot +auto=if type(*[adventure]|opponentexile)~morethan~0 then choice name(Put adventure in graveyard) name(Put adventure in graveyard) reveal:type:*:opponenthand revealzone(opponenthand) optionone name(choose non-land card) target(*[-land]|reveal) reject optiononeend optiontwo name(put back) target(*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend afterrevealed name(Choose adventure from exile) moveTo(opponentgraveyard) target(*[adventure]|opponentexile) afterrevealedend revealend +auto=choice name(Don't put adventure in graveyard) reveal:type:*:opponenthand revealzone(opponenthand) optionone name(choose non-land card) target(*[-land]|reveal) reject optiononeend optiontwo name(put back) target(*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend text=Target opponent reveals their hand. You choose a nonland card from it. That player discards that card. You may put a card that has an Adventure that player owns from exile into that player's graveyard. mana={2}{B} type=Sorcery @@ -32570,8 +32635,8 @@ toughness=2 [card] name=Mephitic Vapors auto=all(creature) -1/-1 -aicode=surveil && name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=psurveiloffsetplus2plusend]|mylibrary) moverandom(*[zpos<=psurveiloffsetplus2plusend]) from(mylibrary) to(mylibrary)])) ueot -auto=surveil && name(surveil) reveal:psurveiloffsetplus2plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend revealend +aicode=activate transforms((,newability[surveil],newability[all(*[zpos<=psurveiloffsetplus2plusend]|mylibrary) transforms((,newability[if compare(genrand2)~equalto~1 then moveto(mygraveyard)])) oneshot])) oneshot +auto=name(Surveil 2) reveal:psurveiloffsetplus2plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend afterrevealed surveil afterrevealedend revealend text=All creatures get -1/-1 until end of turn. -- Surveil 2. (Look at the top two cards of your library, then put any number of them into your graveyard and the rest on the top of your library in any order.) mana={2}{B} type=Sorcery @@ -32599,12 +32664,13 @@ toughness=4 [/card] [card] name=Merchant of the Vale // Haggle -abilities=canplayfromexile,flash,adventure -restriction=myturnonly +abilities=flash,adventure +restriction=can play creature other={R} name(Adventure) -auto=if paid(alternative) then may ability$!name(discard) reject notatarget(*|myhand) and!(draw:1) controller!$ && moveto(exile) all(this) +autostack=if paid(alternative) then may name(Discard and draw) reject notatarget(*|myhand) and!( draw:1 controller ) +autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever auto={2}{R}{D(*|myhand)}:draw:1 -text={2}{R}, Discard a card: Draw a card. -- You may discard a card. If you do, draw a card. (Then exile this card. You may cast the creature later from exile.) +text={2}{R}, Discard a card: Draw a card. // You may discard a card. If you do, draw a card. (Then exile this card. You may cast the creature later from exile.) mana={2}{R} type=Creature subtype=Human Peasant @@ -32663,8 +32729,8 @@ toughness=2 [/card] [card] name=Merfolk Branchwalker -aicode=activate if type(land[zpos=1]|mylibrary)~lessthan~1 then all(this) counter(1/1) else all(land[zpos=1]|mylibrary) moveto(myhand) -auto=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 revealend limit:1 +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 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 @@ -32675,6 +32741,7 @@ toughness=1 [card] name=Merfolk Falconer abilities=flying +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=@movedTo(*[kicked>=1]|myStack):scry:2 scrycore delayed dontshow donothing scrycoreend scryend text=Flying -- Whenever you cast a kicked spell, scry 2. mana={3}{U}{U} @@ -32695,10 +32762,11 @@ toughness=2 [/card] [card] name=Merfolk Secretkeeper // Venture Deeper -abilities=canplayfromexile,adventure +abilities=adventure other={U} name(Adventure) -auto=if paid(alternative) then target(player) deplete:4 -auto=if paid(alternative) then moveto(exile) all(this) +autostack=if paid(alternative) then choice name(Opponent mills 4 cards) name(Opponent mills 4 cards) deplete:4 opponent +autostack=if paid(alternative) then choice name(You mill 4 cards) name(You mill 4 cards) deplete:4 controller +autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever text=Target player puts the top four cards of their library into their graveyard. (Then exile this card. You may cast the creature later from exile.) mana={U} type=Creature @@ -33219,6 +33287,7 @@ type=Instant [card] name=Mischievous Chimera abilities=flying +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=@movedto(*|mystack) restriction{opponentturnonly,thisturn(*|mystack)~equalto~0}:damage:1 opponent && scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Flying -- Whenever you cast your first spell during each opponent's turn, Mischievous Chimera deals 1 damage to each opponent. Scry 1. mana={U}{R} @@ -33255,8 +33324,8 @@ type=Land [/card] [card] name=Mission Briefing -aicode=surveil && name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=psurveiloffsetplus2plusend]|mylibrary) moverandom(*[zpos<=psurveiloffsetplus2plusend]) from(mylibrary) to(mylibrary)])) ueot -auto=surveil && name(surveil) reveal:psurveiloffsetplus2plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend afterrevealed target(*[instant;sorcery;fresh]|mygraveyard) transforms((,newability[canplayfromgraveyard],newability[gainedexiledeath])) ueot afterrevealedend revealend +aicode=activate transforms((,newability[surveil],newability[all(*[zpos<=psurveiloffsetplus2plusend]|mylibrary) transforms((,newability[if compare(genrand2)~equalto~1 then moveto(mygraveyard)])) oneshot])) oneshot +auto=name(Surveil 2) reveal:psurveiloffsetplus2plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend afterrevealed target(*[instant;sorcery;fresh]|mygraveyard) transforms((,newability[canplayfromgraveyard],newability[gainedexiledeath])) ueot && surveil afterrevealedend revealend text=Surveil 2, then choose an instant or sorcery card in your graveyard. You may cast it this turn. If that spell would be put into your graveyard this turn, exile it instead. (To surveil 2, look at the top two cards of your library, then put any number of them into your graveyard and the rest on top of your library in any order.) mana={U}{U} type=Instant @@ -33886,14 +33955,14 @@ type=Enchantment [/card] [card] name=Murderous Rider // Swift End -abilities=canplayfromexile,flash,lifelink,adventure -restriction=myturnonly +abilities=flash,lifelink,adventure +restriction=can play creature other={1}{B}{B} name(Adventure) -auto=if paid(alternative) then target(creature,planeswalker) destroy -auto=if paid(alternative) then life:-2 controller -auto=if paid(alternative) then moveto(exile) all(this) -auto=@movedTo(graveyard) from(this|battlefield):all(trigger[from]) bottomoflibrary -text=Lifelink -- When Murderous Rider dies, put it on the bottom of its owner's library. -- Destroy target creature or planeswalker. You lose 2 life. (Then exile this card. You may cast the creature later from exile.) +autostack=if paid(alternative) then name(Destroy creature or planeswalker) name(Destroy creature or planeswalker) target(creature,planeswalker) destroy +autostack=if paid(alternative) then name(You loose 2 life) name(You loose 2 life) life:-2 controller +autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever +auto=@movedTo(this|graveyard) from(battlefield):name(Put on the bottom of library) all(trigger[to]) bottomoflibrary +text=Lifelink -- When Murderous Rider dies, put it on the bottom of its owner's library. // Destroy target creature or planeswalker. You lose 2 life. (Then exile this card. You may cast the creature later from exile.) mana={1}{B}{B} type=Creature subtype=Zombie Knight @@ -34011,7 +34080,7 @@ toughness=2 [card] name=Mysterious Pathlighter abilities=flying -auto=lord(creature[adventure]|myBattlefield) counter(1/1,1) +auto=@movedto(creature[adventure]|myBattlefield):all(trigger[to]) counter(1/1) text=Flying -- Each creature you control that has an Adventure enters the battlefield with an additional +1/+1 counter on it. (It doesn't need to have gone on the adventure first.) mana={2}{W} type=Creature @@ -35119,8 +35188,8 @@ toughness=3 [card] name=Nightveil Sprite abilities=flying -auto=@combat(attacking) source(this):surveil && name(surveil) reveal:psurveiloffsetplus1plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend revealend -aicode=surveil && name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=psurveiloffsetplus1plusend]|mylibrary) moverandom(*[zpos<=psurveiloffsetplus1plusend]) from(mylibrary) to(mylibrary)])) ueot +aicode=activate transforms((,newability[surveil],newability[all(*[zpos<=psurveiloffsetplus1plusend]|mylibrary) transforms((,newability[if compare(genrand2)~equalto~1 then moveto(mygraveyard)])) oneshot])) oneshot +auto=@combat(attacking) source(this):name(Surveil 1) reveal:psurveiloffsetplus1plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend afterrevealed surveil afterrevealedend revealend text=Flying -- Whenever Nightveil Sprite attacks, surveil 1. (Look at the top card of your library. You may put that card into your graveyard.) mana={1}{U} type=Creature @@ -35387,6 +35456,7 @@ type=Land name=No Escape target=*[creature;planeswalker]|stack auto=fizzleto(exile) +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot 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} @@ -35460,10 +35530,8 @@ type=Sorcery [/card] [card] name=Notion Rain -aicode=surveil && name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=psurveiloffsetplus2plusend]|mylibrary) moverandom(*[zpos<=psurveiloffsetplus2plusend]) from(mylibrary) to(mylibrary)])) ueot -auto=surveil && name(surveil) reveal:psurveiloffsetplus2plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend revealend -auto=damage:2 -auto=draw:2 +aicode=activate transforms((,newability[surveil],newability[draw:2 controller],newability[damage:2 controller])) oneshot +auto=name(surveil 2) reveal:psurveiloffsetplus2plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend afterrevealed damage:2 controller && draw:2 controller && surveil afterrevealedend revealend text=Surveil 2, then draw two cards. Notion Rain deals 2 damage to you. (To surveil 2, look at the top two cards of your library, then put any number of them into your graveyard and the rest on top of your library in any order.) mana={1}{U}{B} type=Sorcery @@ -35916,6 +35984,7 @@ toughness=1 [/card] [card] name=Octoprophet +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:2 scrycore delayed dontshow donothing scrycoreend scryend text=When Octoprophet enters the battlefield, scry 2. (Look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.) mana={3}{U} @@ -36146,6 +36215,7 @@ type=Instant name=Omen of the Dead abilities=flash auto=moveto(myHand) target(creature|myGraveyard) +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto={2}{W}{S}:scry:2 scrycore delayed dontshow donothing scrycoreend scryend text=Flash -- When Omen of the Dead enters the battlefield, return target creature card from your graveyard to your hand. -- {2}{B}, Sacrifice Omen of the Dead: Scry 2. mana={B} @@ -36154,6 +36224,7 @@ type=Enchantment [card] name=Omen of the Forge abilities=flash +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=damage:2 target(player,creature,planeswalker) auto={2}{R}{S}:scry:2 scrycore delayed dontshow donothing scrycoreend scryend text=Flash -- When Omen of the Forge enters the battlefield, it deals 2 damage to any target. -- {2}{R}, Sacrifice Omen of the Forge: Scry 2. @@ -36163,8 +36234,8 @@ type=Enchantment [card] name=Omen of the Hunt abilities=flash -aicode=activate moveTo(myBattlefield) and!(tap(noevent))! target(land[basic]|myLibrary) -auto=name(search a land) reveal:plibrarycount optionone name(choose card) target(land[basic]|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 transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot +auto=may name(Search a basic land) target(land[basic]|mylibrary) moveto(myBattlefield) and!( transforms((,newability[tap(noevent)],newability[shuffle])) oneshot )! auto={2}{G}{S}:scry:2 scrycore delayed dontshow donothing scrycoreend scryend text=Flash -- When Omen of the Hunt enters the battlefield, you may search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library. -- {2}{G}, Sacrifice Omen of the Hunt: Scry 2. mana={2}{G} @@ -36185,6 +36256,7 @@ name=Omen of the Sun abilities=flash auto=token(Soldier,Creature Human Soldier,1/1,white)*2 auto=life:2 controller +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto={2}{W}{S}:scry:2 scrycore delayed dontshow donothing scrycoreend scryend text=Flash -- When Omen of the Sun enters the battlefield, create two 1/1 white Human Soldier creature tokens and you gain 2 life. -- {2}{W}, Sacrifice Omen of the Sun: Scry 2. mana={2}{W} @@ -36700,11 +36772,11 @@ type=Instant [/card] [card] name=Order of Midnight // Alter Fate -abilities=canplayfromexile,flying,cantblock,adventure +abilities=flying,cantblock,adventure other={1}{B} name(Adventure) -auto=if paid(alternative) then target(creature|mygraveyard) moveto(myhand) -auto=if paid(alternative) then moveto(exile) all(this) -text=Flying -- Order of Midnight can't block. -- Return target creature card from your graveyard to your hand. (Then exile this card. You may cast the creature later from exile.) +autostack=if paid(alternative) then name(Return creature from graveyard) name(Return creature from graveyard) target(creature|mygraveyard) moveto(myhand) +autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever +text=Flying -- Order of Midnight can't block. // Return target creature card from your graveyard to your hand. (Then exile this card. You may cast the creature later from exile.) mana={1}{B} type=Creature subtype=Human Knight @@ -37037,6 +37109,7 @@ type=Instant [card] name=Overwhelmed Apprentice auto=deplete:2 opponent +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:2 scrycore delayed dontshow donothing scrycoreend scryend text=When Overwhelmed Apprentice enters the battlefield, each opponent puts the top two cards of their library into their graveyard. Then you scry 2. (Look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.) mana={U} @@ -37527,6 +37600,7 @@ toughness=4 [card] name=Path of Ancestry auto=tap(noevent) +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=if type(*[red]|myzones)~morethan~0 then transforms((,newability[{T}:add{R} && scry:1 scrycore delayed dontshow donothing scrycoreend scryend])) forever auto=if type(*[white]|myzones)~morethan~0 then transforms((,newability[{T}:add{W} && scry:1 scrycore delayed dontshow donothing scrycoreend scryend}])) forever auto=if type(*[green]|myzones)~morethan~0 then transforms((,newability[{T}:add{G} && scry:1 scrycore delayed dontshow donothing scrycoreend scryend])) forever @@ -37538,8 +37612,8 @@ type=Land [/card] [card] name=Path of Discovery -aicode=activate if type(land[zpos=1]|mylibrary)~lessthan~1 then counter(1/1) else all(land[zpos=1]|mylibrary) moveto(myhand) -auto=@movedTo(creature|myBattlefield):all(trigger[to]) 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 revealend limit:1 +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=@movedTo(creature|myBattlefield):all(trigger[to]) 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 text=Whenever a creature enters the battlefield under your control, 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 the creature, then put the card back or put it into your graveyard.) mana={3}{G} type=Enchantment @@ -37766,6 +37840,7 @@ type=Sorcery [/card] [card] name=Perilous Voyage +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=if type(*[-land;manacost<=2]|opponentBattlefield)~morethan~0 then choice name(Return permanent with manacost 2 or less) name(Return permanent with manacost 2 or less) target(*[-land;manacost<=2]|opponentBattlefield) moveto(ownerhand) && scry:2 scrycore delayed dontshow donothing scrycoreend scryend auto=choice name(Return permanent with manacost 3 or more) target(*[-land;manacost>=3]|opponentBattlefield) moveto(ownerhand) text=Return target nonland permanent you don't control to its owner's hand. If its converted mana cost was 2 or less, scry 2. @@ -38425,6 +38500,7 @@ subtype=Arcane name=Poison the Cup target=creature abilities=foretell +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot autohand={2}:name(Pay 2 and exile face-down) name(Pay 2 and exile face-down) doforetell myturnonly autoexile={1}{B} restriction{compare(canforetellcast)~morethan~0}:name(Cast with foretell) name(Cast with foretell) activate castcard(alternative) auto=destroy @@ -38822,10 +38898,11 @@ type=Sorcery name=Price of Fame other={1}{B} name(Target Legendary) otherrestriction=type(creature[legendary]|battlefield)~morethan~0 -auto=if paid(alternative) then destroy target(creature[legendary]) -auto=ifnot paid(alternative) then destroy target(creature) -aicode=surveil && name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=psurveiloffsetplus2plusend]|mylibrary) moverandom(*[zpos<=psurveiloffsetplus2plusend]) from(mylibrary) to(mylibrary)])) ueot -auto=surveil && name(surveil) reveal:psurveiloffsetplus2plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend revealend +restriction=type(creature[-legendary]|battlefield)~morethan~0 +auto=if paid(alternative) then if type(creature[legendary]|opponentbattlefield)~morethan~0 then choice name(Destroy opponent's legendary creature) name(Destroy opponent's legendary creature) name(Destroy opponent's legendary creature) target(creature[legendary]|opponentbattlefield) transforms((,newability[destroy],newability[ability$!name(Surveil 2) name(Surveil 2) reveal:psurveiloffsetplus2plusend revealzone(mylibrary) optionone name(put in graveyard) target(*|reveal) moveto(mygraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(mylibrary) optiontwoend afterrevealed surveil afterrevealedend revealend!$ opponent])) oneshot +auto=ifnot paid(alternative) then if type(creature[-legendary]|opponentbattlefield)~morethan~0 then choice name(Destroy opponent's non-legendary creature) name(Destroy opponent's non-legendary creature) name(Destroy opponent's non-legendary creature) target(creature[-legendary]|opponentbattlefield) transforms((,newability[destroy],newability[ability$!name(Surveil 2) name(Surveil 2) reveal:psurveiloffsetplus2plusend revealzone(mylibrary) optionone name(put in graveyard) target(*|reveal) moveto(mygraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(mylibrary) optiontwoend afterrevealed surveil afterrevealedend revealend!$ opponent])) oneshot +auto=if paid(alternative) then if type(creature[legendary]|mybattlefield)~morethan~0 then choice name(Destroy your legendary creature) name(Destroy your legendary creature) name(Destroy your legendary creature) target(creature[legendary]|mybattlefield) transforms((,newability[destroy],newability[name(Surveil 2) reveal:psurveiloffsetplus2plusend revealzone(mylibrary) optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend afterrevealed surveil afterrevealedend revealend])) oneshot +auto=ifnot paid(alternative) then if type(creature[-legendary]|mybattlefield)~morethan~0 then choice name(Destroy your non-legendary creature) name(Destroy your non-legendary creature) name(Destroy your non-legendary creature) target(creature[-legendary]|mybattlefield) transforms((,newability[destroy],newability[name(Surveil 2) reveal:psurveiloffsetplus2plusend revealzone(mylibrary) optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend afterrevealed surveil afterrevealedend revealend])) oneshot text=This spell costs {2} less to cast if it targets a legendary creature. -- Destroy target creature. -- Surveil 2. (Look at the top two cards of your library, then put any number of them into your graveyard and the rest on top of your library in any order.) mana={3}{B} type=Instant @@ -39017,6 +39094,7 @@ toughness=1 [card] name=Prison Realm auto=(blink)forsrc target(*[creature;planeswalker]|opponentbattlefield) +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:1 scrycore delayed dontshow donothing scrycoreend scryend 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} @@ -39100,6 +39178,7 @@ type=Enchantment [/card] [card] name=Prophet of the Peak +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:2 scrycore delayed dontshow donothing scrycoreend scryend text=When Prophet of the Peak enters the battlefield, scry 2. (Look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.) mana={6} @@ -39319,6 +39398,7 @@ name=Psychic Impetus target=creature auto=mustattack auto=2/2 +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=@combat(attacking) source(this):scry:2 scrycore delayed dontshow donothing scrycoreend scryend text=Enchant creature -- Enchanted creature gets +2/+2 and is goaded. (It attacks each combat if able and attacks a player other than you if able.) -- Whenever enchanted creature attacks, you scry 2. mana={2}{U} @@ -39733,12 +39813,12 @@ toughness=3 [/card] [card] name=Queen of Ice // Rage of Winter -abilities=canplayfromexile,adventure +abilities=adventure other={1}{U} name(Adventure) -auto=if paid(alternative) then target(creature|battlefield) freeze -auto=if paid(alternative) then moveto(exile) all(this) -auto=@combatdamaged(creature) from(this):all(trigger[to]) tap && all(trigger[to]) frozen -text=Whenever Queen of Ice deals combat damage to a creature, tap that creature. It doesn't untap during its controller's next untap step. -- Tap target creature. It doesn't untap during its controller's next untap step. (Then exile this card. You may cast the creature later from exile.) +autostack=if paid(alternative) then name(Freeze creature) name(Freeze creature) target(creature|battlefield) freeze +autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever +auto=@combatdamaged(creature) from(this):all(trigger[to]) freeze +text=Whenever Queen of Ice deals combat damage to a creature, tap that creature. It doesn't untap during its controller's next untap step. // Tap target creature. It doesn't untap during its controller's next untap step. (Then exile this card. You may cast the creature later from exile.) mana={2}{U} type=Creature subtype=Human Noble Wizard @@ -39748,8 +39828,8 @@ toughness=3 [card] name=Queen's Agent abilities=lifelink -aicode=activate if type(land[zpos=1]|mylibrary)~lessthan~1 then all(this) counter(1/1) else all(land[zpos=1]|mylibrary) moveto(myhand) -auto=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 revealend limit:1 +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 text=Lifelink -- When Queen's Agent 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={5}{B} type=Creature @@ -40741,10 +40821,11 @@ toughness=5 [/card] [card] name=Realm-Cloaked Giant // Cast Off -abilities=canplayfromexile,vigilance,adventure +abilities=vigilance,adventure other={3}{W}{W} name(Adventure) -auto=if paid(alternative) then destroy all(creature[-giant]) && moveto(exile) all(this) -text=Vigilance -- Destroy all non-Giant creatures. (Then exile this card. You may cast the creature later from exile.) +autostack=if paid(alternative) then name(Destroy all non-giants) name(Destroy all non-giants) destroy all(creature[-giant]|battlefield) +autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever +text=Vigilance // Destroy all non-Giant creatures. (Then exile this card. You may cast the creature later from exile.) mana={5}{W}{W} type=Creature subtype=Giant @@ -40794,11 +40875,12 @@ type=Sorcery [/card] [card] name=Reaper of Night // Harvest Fear -abilities=canplayfromexile,adventure +abilities=adventure other={3}{B} name(Adventure) -auto=if paid(alternative) then ability$!name(discard 2 cards) target(<2>*|myhand) reject!$ opponent && moveto(exile) all(this) -auto=@combat(attacking) source(this):if type(*|opponenthand)~lessthan~3 then flying ueot -text=Whenever Reaper of Night attacks, if defending player has two or fewer cards in hand, it gains flying until end of turn. -- Target opponent discards two cards. (Then exile this card. You may cast the creature later from exile.) +autostack=if paid(alternative) then ability$!name(discard 2 cards) name(discard 2 cards) target(<2>*|myhand) reject!$ opponent +autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever +auto=@combat(attacking) source(this) restriction{type(*|opponenthand)~lessthan~3}:name(Gains flying) all(this) transforms((,newability[flying])) ueot +text=Whenever Reaper of Night attacks, if defending player has two or fewer cards in hand, it gains flying until end of turn. // Target opponent discards two cards. (Then exile this card. You may cast the creature later from exile.) mana={5}{B}{B} type=Creature subtype=Specter @@ -40807,6 +40889,7 @@ toughness=5 [/card] [card] name=Reason // Believe +aicode=activate transforms((,newability[all(*[zpos<=3]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:3 scrycore delayed dontshow donothing scrycoreend scryend autograveyard={4}{G}{E} restriction{type(creature[zpos=1]|mylibrary)~morethan~0}:name(Look top card) all(creature[zpos=1]|mylibrary) moveTo(myhand) and!( transforms((,newability[may name(Put on battlefield) moveto(myBattlefield)])) oneshot )! autograveyard={4}{G}{E} restriction{type(creature[zpos=1]|mylibrary)~equalto~0}:name(Look top card) all(*[zpos=1]|mylibrary) moveTo(myhand) @@ -41925,6 +42008,7 @@ toughness=3 [/card] [card] name=Riddleform +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=@movedTo(*[-creature]|mystack):may transforms((Sphinx Creature,setpower=3,settoughness=3,flying)) ueot auto={2}{U}:scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Whenever you cast a noncreature spell, you may have Riddleform become a 3/3 Sphinx creature with flying in addition to its other types until end of turn. -- {2}{U}: Scry 1. @@ -42063,12 +42147,12 @@ subtype=Forest Island [/card] [card] name=Rimrock Knight // Boulder Rush -abilities=canplayfromexile,cantblock,flash,adventure +abilities=cantblock,flash,adventure restriction=myturnonly other={R} name(Adventure) -auto=if paid(alternative) then target(creature|battlefield) 2/0 ueot -auto=if paid(alternative) then moveto(exile) all(this) -text=Rimrock Knight can't block. -- Target creature gets +2/+0 until end of turn. (Then exile this card. You may cast the creature later from exile.) +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 +text=Rimrock Knight can't block. // Target creature gets +2/+0 until end of turn. (Then exile this card. You may cast the creature later from exile.) mana={1}{R} type=Creature subtype=Dwarf Knight @@ -42825,15 +42909,16 @@ toughness=4 [/card] [card] name=Rosethorn Acolyte // Seasonal Ritual -abilities=canplayfromexile,adventure +abilities=adventure other={G} name(Adventure) -auto=if paid(alternative) then transforms((,newability[activatechooseacolor add{chosencolor} activatechooseend])) forever asSorcery && moveto(exile) all(this) +autostack=if paid(alternative) then name(Add 1 mana of any color) name(Add 1 mana of any color) transforms((,newability[activatechooseacolor add{chosencolor} activatechooseend])) forever +autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever auto={T}:add{U} auto={T}:add{B} auto={T}:add{R} auto={T}:add{G} auto={T}:add{W} -text={T}: Add one mana of any color. -- Add one mana of any color. (Then exile this card. You may cast the creature later from exile.) +text={T}: Add one mana of any color. // Add one mana of any color. (Then exile this card. You may cast the creature later from exile.) mana={2}{G} type=Creature subtype=Elf Druid @@ -43005,6 +43090,7 @@ toughness=3 name=Rubble Reading target=land auto=destroy +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:2 scrycore delayed dontshow donothing scrycoreend scryend text=Destroy target land. Scry 2. mana={3}{R} @@ -43148,6 +43234,7 @@ toughness=6 [/card] [card] name=Rumbling Sentry +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=When Rumbling Sentry enters the battlefield, scry 1. mana={3}{W}{W} @@ -43544,6 +43631,7 @@ toughness=5 [/card] [card] name=Sage's Row Savant +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:2 scrycore delayed dontshow donothing scrycoreend scryend text=When Sage's Row Savant enters the battlefield, scry 2. mana={1}{U} @@ -43713,6 +43801,7 @@ name=Samut's Sprint target=creature auto=+2/+1 auto=haste +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=_SCRY_(1) text=Target creature gets +2/+1 and gains haste until end of turn. Scry 1. mana={R} @@ -44969,6 +45058,7 @@ type=Land [/card] [card] name=Season of Growth +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=@movedto(creature|mybattlefield):scry:1 scrycore delayed dontshow donothing scrycoreend scryend auto=@targeted(creature|myBattlefield) from(instant,sorcery|mystack):draw:1 controller auto=@targeted(creature|mybattlefield) from(*[instant;sorcery]|nonbattlezone,stack):draw:1 controller @@ -45082,8 +45172,8 @@ toughness=3 [/card] [card] name=Seekers' Squire -aicode=activate if type(land[zpos=1]|mylibrary)~lessthan~1 then all(this) counter(1/1) else all(land[zpos=1]|mylibrary) moveto(myhand) -auto=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 revealend limit:1 +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 text=When Seekers' Squire 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}{B} type=Creature @@ -45291,6 +45381,7 @@ toughness=4 [card] name=Senate Griffin abilities=flying +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Flying -- When Senate Griffin enters the battlefield, scry 1. mana={2}{WU}{WU} @@ -45323,6 +45414,7 @@ toughness=4 [/card] [card] name=Sentinel Totem +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=_SCRY_(1) text=When Sentinel Totem enters the battlefield, scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) -- {T}, Exile Sentinel Totem: Exile all cards from all graveyards. mana={1} @@ -46023,6 +46115,7 @@ subtype=Mountain Forest name=Sheltering Light target=creature auto=indestructible +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=_SCRY_(1) text=Target creature gains indestructible until end of turn. Scry 1. (Damage and effects that say "destroy" don't destroy the creature.) mana={W} @@ -46063,11 +46156,11 @@ toughness=3 [/card] [card] name=Shepherd of the Flock // Usher to Safety -abilities=canplayfromexile,flash,adventure -restriction=myturnonly +abilities=flash,adventure +restriction=can play creature other={W} name(Adventure) -auto=if paid(alternative) then target(*|myBattlefield) moveTo(ownerhand) -auto=if paid(alternative) then moveto(exile) all(this) +autostack=if paid(alternative) then name(Return permanent to hand) name(Return permanent to hand) target(*|myBattlefield) moveTo(ownerhand) +autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever text=Return target permanent you control to its owner's hand. (Then exile this card. You may cast the creature later from exile.) mana={1}{W} type=Creature @@ -46465,6 +46558,7 @@ type=Instant [card] name=Siani, Eye of the Storm abilities=flying,partner +aicode=activate transforms((,newability[all(*[zpos<=type:creature[attacking;flying]:battlefield]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=@combat(attacking) source(this):scry:type:creature[attacking;flying]:battlefield scrycore delayed dontshow donothing scrycoreend scryend text=Flying -- Whenever Siani, Eye of the Storm attacks, scry X, where X is the number of attacking creatures with flying. -- Partner (You can have two commanders if both have partner.) mana={3}{U} @@ -46851,11 +46945,11 @@ type=Sorcery [/card] [card] name=Silverflame Squire // On Alert -abilities=canplayfromexile,flash,adventure -restriction=myturnonly +abilities=flash,adventure +restriction=can play creature other={2}{W} name(Adventure) -auto=if paid(alternative) then target(creature|battlefield) transform((,newability[2/2],newability[untap])) ueot -auto=if paid(alternative) then moveto(exile) all(this) +autostack=if paid(alternative) then name(Creature gets 2/2 and untap) name(Creature gets 2/2 and untap) target(creature|battlefield) transforms((,newability[2/2],newability[untap])) ueot +autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever text=Target creature gets +2/+2 until end of turn. Untap it. (Then exile this card. You may cast the creature later from exile.) mana={1}{W} type=Creature @@ -46982,8 +47076,8 @@ type=Sorcery name=Sinister Sabotage target=*|stack auto=fizzle -aicode=surveil && name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=psurveiloffsetplus1plusend]|mylibrary) moverandom(*[zpos<=psurveiloffsetplus1plusend]) from(mylibrary) to(mylibrary)])) ueot -auto=surveil && name(surveil) reveal:psurveiloffsetplus1plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend revealend +aicode=activate transforms((,newability[surveil],newability[all(*[zpos<=psurveiloffsetplus1plusend]|mylibrary) transforms((,newability[if compare(genrand2)~equalto~1 then moveto(mygraveyard)])) oneshot])) oneshot +auto=name(Surveil 1) reveal:psurveiloffsetplus1plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend afterrevealed surveil afterrevealedend revealend text=Counter target spell. -- Surveil 1. (Look at the top card of your library. You may put that card into your graveyard.) mana={1}{U}{U} type=Instant @@ -47042,8 +47136,8 @@ toughness=2 [card] name=Siren Lookout abilities=flying -aicode=activate if type(land[zpos=1]|mylibrary)~lessthan~1 then all(this) counter(1/1) else all(land[zpos=1]|mylibrary) moveto(myhand) -auto=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 revealend limit:1 +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 text=Flying -- When Siren Lookout 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={2}{U} type=Creature @@ -47959,10 +48053,12 @@ type=Sorcery [/card] [card] name=Smitten Swordmaster // Curry Favor -abilities=canplayfromexile,lifelink,adventure +abilities=lifelink,adventure other={B} name(Adventure) -auto=if paid(alternative) then life:type:creature[knight]:mybattlefieldminus1minusend controller && life:-type:creature[knight]:mybattlefieldminus1minusend opponent && moveto(exile) all(this) -text=Lifelink -- You gain X life and each opponent loses X life, where X is the number of Knights you control. +autostack=if paid(alternative) then name(You gain life) name(You gain life) life:type:knight:mybattlefield controller +autostack=if paid(alternative) then name(Opponent looses life) name(Opponent looses life) life:-type:knight:mybattlefield opponent +autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever +text=Lifelink // You gain X life and each opponent loses X life, where X is the number of Knights you control. mana={1}{B} type=Creature subtype=Human Knight @@ -49170,6 +49266,7 @@ toughness=5 [card] name=Sphinx of Foresight abilities=flying +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=@each my upkeep:scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=You may reveal this card from your opening hand. If you do, scry 3 at the beginning of your first upkeep. -- Flying -- At the beginning of your upkeep, scry 1. mana={2}{U}{U} @@ -49319,6 +49416,7 @@ toughness=-1 [card] name=Spined Megalodon abilities=opponentshroud +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=@combat(attacking) source(this):scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Hexproof (This creature can't be the target of spells or abilities your opponents control.) -- Whenever Spined Megalodon attacks, scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) mana={5}{U}{U} @@ -50581,6 +50679,7 @@ name=Storm Strike target=creature auto=first strike auto=+1/+0 +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Target creature gets +1/+0 and gains first strike until end of turn. Scry 1. mana={R} @@ -50672,6 +50771,7 @@ toughness=3 [card] name=Stormwing Entity abilities=flying,prowess +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot anyzone=@movedTo(*[instant;sorcery]|mystack) once:changecost(colorless:-2) ueot forcedalive anyzone=@movedTo(*[instant;sorcery]|mystack) once:altercost(blue:-1) ueot forcedalive auto=@movedTo(*[-creature]|mystack):1/1 ueot @@ -51163,8 +51263,8 @@ toughness=3 [card] name=Sunrise Seeker abilities=vigilance -aicode=activate if type(land[zpos=1]|mylibrary)~lessthan~1 then all(this) counter(1/1) else all(land[zpos=1]|mylibrary) moveto(myhand) -auto=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 revealend limit:1 +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 text=Vigilance -- When Sunrise Seeker 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={4}{W} type=Creature @@ -51207,6 +51307,7 @@ toughness=3 [/card] [card] name=Sunset Pyramid +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=counter(0/0,3,brick) auto={2}{T}{counter(0/0,-1,brick)}:name(Draw 1) draw:1 controller auto={2}{T}:name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend @@ -51383,6 +51484,7 @@ toughness=6 name=Surtland Frostpyre auto=tap(noevent) auto={T}:add{R} +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto={2}{U}{U}{R}{T}{S}:scry:2 scrycore delayed dontshow donothing scrycoreend scryend && damage:2 all(creature|battlefield) asSorcery text=Surtland Frostpyre enters the battlefield tapped. -- {T}: Add {R}. -- {2}{U}{U}{R}, {T}, Sacrifice Surtland Frostpyre: Scry 2. Surtland Frostpyre deals 2 damage to each creature. Activate this ability only any time you could cast a sorcery. type=Land @@ -52645,6 +52747,7 @@ toughness=2 [card] name=Tenth District Legionnaire abilities=haste +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=@targeted(this):counter(1/1) && _SCRY_(1) text=Haste -- Whenever you cast a spell that targets Tenth District Legionnaire, put a +1/+1 counter on Tenth District Legionnaire, then scry 1. mana={R}{W} @@ -52972,6 +53075,7 @@ type=Artifact [card] name=Thaumaturge's Familiar abilities=flying +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Flying -- When Thaumaturge's Familiar enters the battlefield, scry 1. mana={3} @@ -53314,6 +53418,7 @@ type=Legendary Artifact [/card] [card] name=The Scarab God +aicode=activate transforms((,newability[all(*[zpos<=type:zombie:mybattlefield]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto={2}{U}{B}:target(creature|graveyard) clone and!( transforms((Zombie,setpower=4,settoughness=4,black)) forever )! && moveTo(exile) auto=@each my upkeep:name(Opponent looses life) foreach(zombie|mybattlefield) life:-1 opponent auto=@each my upkeep:name(Scry cards) scry:type:zombie:mybattlefield scrycore delayed scrycoreend scryend @@ -53600,10 +53705,8 @@ type=Sorcery [/card] [card] name=Thought Erasure -aicode=activate reject notatarget(*[-land]|opponenthand) -auto=reveal:type:*:opponenthand revealzone(opponenthand) optionone name(choose discards) notatarget(<1>*[-land]|reveal) transforms((,newability[moveto(ownerhand) all(other *|reveal)],newability[moveto(ownerhand) and!(reject)!])) ueot optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend -aicode=surveil && name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=psurveiloffsetplus1plusend]|mylibrary) moverandom(*[zpos<=psurveiloffsetplus1plusend]) from(mylibrary) to(mylibrary)])) ueot -auto=surveil && name(surveil) reveal:psurveiloffsetplus1plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend revealend +auto=if type(*[-land]|opponenthand)~morethan~0 then name(Discard opponent non-land card) name(Discard opponent non-land card) target(*[-land]|opponenthand) transforms((,newability[reject],newability[ability$!name(Surveil 1) name(Surveil 1) reveal:psurveiloffsetplus1plusend revealzone(mylibrary) optionone name(put in graveyard) target(*|reveal) moveto(mygraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(mylibrary) optiontwoend afterrevealed surveil afterrevealedend revealend!$ opponent])) oneshot +auto=if type(*[-land]|opponenthand)~equalto~0 then name(Look opponent hand) name(Look opponent hand) target(*|opponenthand) transforms((,newability[ability$!name(Surveil 1) name(Surveil 1) reveal:psurveiloffsetplus1plusend revealzone(mylibrary) optionone name(put in graveyard) target(*|reveal) moveto(mygraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(mylibrary) optiontwoend afterrevealed surveil afterrevealedend revealend!$ opponent])) oneshot text=Target opponent reveals their hand. You choose a nonland card from it. That player discards that card. -- Surveil 1. (Look at the top card of your library. You may put it into your graveyard.) mana={U}{B} type=Sorcery @@ -54301,8 +54404,8 @@ toughness=2 [/card] [card] name=Tishana's Wayfinder -aicode=activate if type(land[zpos=1]|mylibrary)~lessthan~1 then all(this) counter(1/1) else all(land[zpos=1]|mylibrary) moveto(myhand) -auto=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 revealend limit:1 +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 text=When Tishana's Wayfinder 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={2}{G} type=Creature @@ -54375,6 +54478,7 @@ toughness=11 [/card] [card] name=Titans' Nest +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=@each my upkeep:scry:1 scrycore delayed dontshow donothing scrycoreend scryend auto={E(*|myGraveyard)}:Add{C} text=At the beginning of your upkeep, look at the top card of your library. You may put that card into your graveyard. -- Exile a card from your graveyard: Add Colorless . Spend this mana only to cast a colored spell without Variable Colorless in its mana cost. @@ -54493,8 +54597,8 @@ toughness=3 [card] name=Tomb Robber abilities=menace -aicode=activate if type(land[zpos=1]|mylibrary)~lessthan~1 then all(this) counter(1/1) else all(land[zpos=1]|mylibrary) moveto(myhand) -auto={1}{D(*|myhand)}:name(Explores) 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 revealend limit:1 +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={1}{D(*|myhand)}: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 text=Menace -- {1}, Discard a card: Tomb Robber 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={2}{B} type=Creature @@ -54992,6 +55096,7 @@ type=Artifact Treasure [/card] [card] name=Treasure Map +aicode=activate transforms((,newability[all(*[zpos<=type:zombie:mybattlefield]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto={1}{T}:_SCRY_(1) && counter(0/0,1,landmark) auto=@counteradded(0/0,1,landmark) from(this):this(counter{0/0.3.landmark}=) removeallcounters(0/0.1.landmark) && flip(Treasure Cove) && _TREASURE_*3 text={1}, {T}: Scry 1. Put a landmark counter on Treasure Map. Then if there are three or more landmark counters on it, remove those counters, transform Treasure Map, and create three colorless Treasure artifact tokens with "{T}, Sacrifice this artifact: Add one mana of any color to your mana pool." @@ -55433,10 +55538,10 @@ toughness=3 [/card] [card] name=Tuinvale Treefolk // Oaken Boon -abilities=canplayfromexile,adventure +abilities=adventure other={3}{G} name(Adventure) -auto=if paid(alternative) then target(creature|battlefield) counter(1/1,2) -auto=if paid(alternative) then moveto(exile) all(this) +autostack=if paid(alternative) then name(Put two 1/1 counters) name(Put two 1/1 counters) target(creature|battlefield) counter(1/1,2) +autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever text=Put two +1/+1 counters on target creature. (Then exile this card. You may cast the creature later from exile.) mana={5}{G} type=Creature @@ -55770,6 +55875,7 @@ toughness=2 name=Tymaret Calls the Dead auto=transforms((,newability[deplete:3 controller],newability[may name(Exile card and create zombie) moveto(exile) target(*[creature;enchantment]|myGraveyard) && token(Zombie^Creature Zombie^2/2^black)])) oneshot auto=counter(0/0,1,Lore) +aicode=activate transforms((,newability[all(*[zpos<=type:zombie:mybattlefield]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=@each my firstmain:counter(0/0,1,Lore) auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.2.Lore}):transforms((,newability[deplete:3 controller],newability[may name(Exile card and create zombie) moveto(exile) target(*[creature;enchantment]|myGraveyard) && token(Zombie^Creature Zombie^2/2^black)])) oneshot auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.3.Lore}):life:type:zombie:mybattlefield controller @@ -56018,6 +56124,7 @@ toughness=3 [/card] [card] name=Undercity Scavenger +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=may name(Sacrifice Creature) sacrifice notatarget(other creature|mybattlefield) and!( all(this) counter(1/1,2) && scry:2 scrycore delayed dontshow donothing scrycoreend scryend )! text=When Undercity Scavenger enters the battlefield, you may sacrifice another creature. If you do, put two +1/+1 counters on Undercity Scavenger, then scry 2. mana={3}{B} @@ -56177,27 +56284,17 @@ type=Sorcery [card] name=Unexpectedly Absent target=*[-land] -auto=this(X=0) moveto(ownerlibrary) -auto=this(X=1) moveto(ownerlibrary) && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller -auto=this(X=2) moveto(ownerlibrary) && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller -auto=this(X=3) moveto(ownerlibrary) && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller -auto=this(X=4) moveto(ownerlibrary) && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller -auto=this(X=5) moveto(ownerlibrary) && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller -auto=this(X=6) moveto(ownerlibrary) && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller -auto=this(X=7) moveto(ownerlibrary) && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller -auto=this(X=8) moveto(ownerlibrary) && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller -auto=this(X=9) moveto(ownerlibrary) && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller -auto=this(X=10) moveto(ownerlibrary) && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller && ability$!moverandom(*) from(mylibrary) to(mylibrary)!$ controller +auto=placefromthetop(fullpaidplus1plusend) text=Put target nonland permanent into its owner's library just beneath the top X cards of that library. mana={X}{W}{W} type=Instant [/card] [card] name=Unexplained Disappearance -target=creature -auto=moveTo(ownerHand) -aicode=surveil && name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=psurveiloffsetplus1plusend]|mylibrary) moverandom(*[zpos<=psurveiloffsetplus1plusend]) from(mylibrary) to(mylibrary)])) ueot -auto=surveil && name(surveil) reveal:psurveiloffsetplus1plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend revealend +target=creature|battlefield +auto=moveto(ownerHand) +aicode=activate transforms((,newability[surveil],newability[all(*[zpos<=psurveiloffsetplus1plusend]|mylibrary) transforms((,newability[if compare(genrand2)~equalto~1 then moveto(mygraveyard)])) oneshot])) oneshot +auto=name(Surveil 1) reveal:psurveiloffsetplus1plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend afterrevealed surveil afterrevealedend revealend text=Return target creature to its owner's hand. -- Surveil 1. (Look at the top card of your library. You may put that card into your graveyard.) mana={1}{U} type=Instant @@ -56205,6 +56302,7 @@ type=Instant [card] name=Unexplained Vision other={2}{U}{U}{U} name(Adamant) +aicode=activate transforms((,newability[all(*[zpos<=3]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=if paid(alternative) then scry:3 scrycore delayed dontshow donothing scrycoreend scryend auto=draw:3 controller text=Draw three cards. -- Adamant — If at least three blue mana was spent to cast this spell, scry 3. @@ -58454,6 +58552,7 @@ toughness=5 [card] name=Wall of Runes abilities=defender +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=_SCRY_(1) text=Defender -- When Wall of Runes enters the battlefield, scry 1. mana={U} @@ -58511,7 +58610,7 @@ toughness=3 [/card] [card] name=Wandermare -auto=@movedto(creature[adventure]|mystack) from(mylibrary):counter(1/1,1) +auto=@movedto(creature[adventure]|myBattlefield):counter(1/1,1) text=Whenever you cast a creature spell that has an Adventure, put a +1/+1 counter on Wandermare. (It doesn't need to have gone on the adventure first.) mana={1}{G}{W} type=Creature @@ -58714,6 +58813,7 @@ toughness=1 [/card] [card] name=Warteye Witch +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=@movedTo(creature|graveyard) from(mybattlefield):scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Whenever Warteye Witch or another creature you control dies, scry 1. mana={2}{B} @@ -58768,8 +58868,8 @@ toughness=2 [card] name=Watcher in the Mist abilities=flying -aicode=surveil && name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=psurveiloffsetplus2plusend]|mylibrary) moverandom(*[zpos<=psurveiloffsetplus2plusend]) from(mylibrary) to(mylibrary)])) ueot -auto=surveil && name(surveil) reveal:psurveiloffsetplus2plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend revealend +aicode=activate transforms((,newability[surveil],newability[all(*[zpos<=psurveiloffsetplus2plusend]|mylibrary) transforms((,newability[if compare(genrand2)~equalto~1 then moveto(mygraveyard)])) oneshot])) oneshot +auto=name(Surveil 2) reveal:psurveiloffsetplus2plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend afterrevealed surveil afterrevealedend revealend text=Flying -- When Watcher in the Mist enters the battlefield, surveil 2. (Look at the top two cards of your library, then put any number of them into your graveyard and the rest on the top of your library in any order.) mana={3}{U}{U} type=Creature @@ -59126,8 +59226,8 @@ type=Enchantment [card] name=Whisper Agent abilities=flash -aicode=surveil && name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=psurveiloffsetplus1plusend]|mylibrary) moverandom(*[zpos<=psurveiloffsetplus1plusend]) from(mylibrary) to(mylibrary)])) ueot -auto=surveil && name(surveil) reveal:psurveiloffsetplus1plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend revealend +aicode=activate transforms((,newability[surveil],newability[all(*[zpos<=psurveiloffsetplus1plusend]|mylibrary) transforms((,newability[if compare(genrand2)~equalto~1 then moveto(mygraveyard)])) oneshot])) oneshot +auto=name(Surveil 1) reveal:psurveiloffsetplus1plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend afterrevealed surveil afterrevealedend revealend text=Flash -- When Whisper Agent enters the battlefield, surveil 1. (Look at the top card of your library. You may put it into your graveyard.) mana={1}{UB}{UB} type=Creature @@ -59692,6 +59792,7 @@ type=Sorcery [/card] [card] name=Witching Well +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:2 scrycore delayed dontshow donothing scrycoreend scryend auto={3}{U}{S}:draw:2 controller text=When Witching Well enters the battlefield, scry 2. (Look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.) -- {3}{U}, Sacrifice Witching Well: Draw two cards. @@ -59728,6 +59829,7 @@ type=Instant [card] name=Witness of Tomorrows abilities=flying +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto={3}{U}:scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Flying -- {3}{U}: Scry 1. mana={4}{U} @@ -59761,6 +59863,7 @@ type=Instant [card] name=Woe Strider auto=token(Goat,Creature Goat,0/1,white) +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto={S(other creature|myBattlefield}:scry:1 scrycore delayed dontshow donothing scrycoreend scryend autograveyard={3}{B}{B}{E(other *|myGraveyard)}{E(other *|myGraveyard)}{E(other *|myGraveyard)}{E(other *|myGraveyard)}:name(Escape-{3}{B}{B},exile four) activate castcard(alternative) auto=if paid(alternative) then counter(1/1,2) @@ -60467,6 +60570,7 @@ toughness=3 [/card] [card] name=Zhalfirin Void +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:1 scrycore delayed dontshow donothing scrycoreend scryend auto={T}:Add{C} text=When Zhalfirin Void enters the battlefield, scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) -- {T}: Add {C}. diff --git a/projects/mtg/bin/Res/sets/primitives/mtg.txt b/projects/mtg/bin/Res/sets/primitives/mtg.txt index aa0c3a0df..47d0b1ae0 100644 --- a/projects/mtg/bin/Res/sets/primitives/mtg.txt +++ b/projects/mtg/bin/Res/sets/primitives/mtg.txt @@ -1354,6 +1354,7 @@ toughness=2 [card] name=Aether Theorist auto=alterenergy:3 controller +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto={t}{e:1}:scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=When Aether Theorist enters the battlefield, you get {E}{E}{E} (three energy counters). -- {T}, Pay {E}: Scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) mana={1}{U} @@ -3456,6 +3457,7 @@ type=Sorcery name=Anchor to the AEther target=creature auto=moveto(ownerlibrary) +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Put target creature on top of its owner's library. Scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) mana={2}{U} @@ -4647,7 +4649,7 @@ toughness=0 [card] name=Aqueous Form target=creature -aicode=activate may bottomoflibrary all(*[zpos=1]|mylibrary) +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=@combat(attacking) source(mytgt):scry:1 scrycore delayed dontshow donothing scrycoreend scryend auto=teach(creature) unblockable text=Enchant creature -- Enchanted creature can't be blocked. -- Whenever enchanted creature attacks, scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) @@ -6179,6 +6181,7 @@ toughness=9 name=Artisan's Sorrow target=*[artifact;enchantment] auto=destroy +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:2 scrycore delayed dontshow donothing scrycoreend scryend text=Destroy target artifact or enchantment. Scry 2. (Look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.) mana={3}{G} @@ -6892,6 +6895,7 @@ toughness=2 [card] name=Augury Owl abilities=flying +aicode=activate transforms((,newability[all(*[zpos<=3]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:3 scrycore delayed dontshow donothing scrycoreend scryend text=Flying -- When Augury Owl enters the battlefield, scry 3. (To scry 3, look at the top three cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.) mana={1}{U} @@ -9850,7 +9854,7 @@ toughness=2 [/card] [card] name=Battlewise Hoplite -aicode=activate may bottomoflibrary all(*[zpos=1]|mylibrary) +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=@targeted(this) from(*[instant;sorcery;enchantment]|mycastingzone):counter(1/1,1) && scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Heroic -- Whenever you cast a spell that targets Battlewise Hoplite, put a +1/+1 counter on Battlewise Hoplite, then scry 1. (To scry 1, look at the top card of your library, then you may put that card on the bottom of your library.) mana={W}{U} @@ -9863,6 +9867,7 @@ toughness=2 name=Battlewise Valor target=creature auto=+2/+2 ueot +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Target creature gets +2/+2 until end of turn. Scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) mana={1}{W} @@ -13413,6 +13418,7 @@ toughness=5 name=Bolt of Keranos target=creature,player auto=damage:3 +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Bolt of Keranos deals 3 damage to target creature or player. Scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) mana={1}{R}{R} @@ -14281,6 +14287,7 @@ type=Instant [/card] [card] name=Brain in a Jar +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto={1}{T}:counter(0/0,1,Charge) && transforms((,newability[target(*[instant;sorcery;manacost=counter{0%0.1.charge}]|myhand) castcard(normal)])) oneshot auto={3}{T}{c(0/0,-1,Charge)}:name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend auto={3}{T}{c(0/0,-2,Charge)}:name(Scry 2) scry:2 scrycore delayed dontshow donothing scrycoreend scryend @@ -17392,7 +17399,7 @@ toughness=4 name=Catacomb Sifter abilities=devoid auto=choice token(Eldrazi Scion,Creature Eldrazi Scion,1/1) and!( transforms((,newability[{S}:Add{C}])) forever )! controller -aicode=activate may bottomoflibrary all(*[zpos=1]|mylibrary) +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=@movedTo(other creature|graveyard) from(myBattlefield):name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Devoid (This card has no color.) -- When Catacomb Sifter enters the battlefield, put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {C} to your mana pool." -- Whenever another creature you control dies, scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) mana={1}{B}{G} @@ -19520,7 +19527,7 @@ type=Instant [card] name=Chorus of the Tides abilities=flying -aicode=activate may bottomoflibrary all(*[zpos=1]|mylibrary) +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=@targeted(this) from(*[instant;sorcery;enchantment]|mycastingzone):counter(1/1,1) && name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Flying -- Heroic -- Whenever you cast a spell that targets Chorus of the Tides, scry 1. (To scry 1, look at the top card of your library, then you may put that card on the bottom of your library.) mana={3}{U} @@ -21730,6 +21737,7 @@ type=Instant name=Condescend target=*|stack auto=transforms((,newability[pay[[{value:storedx}]] name(pay {value} mana) donothing?fizzle])) forever +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:2 scrycore delayed dontshow donothing scrycoreend scryend text=Counter target spell unless its controller pays {X}. -- Scry 2. (To scry 2, look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.) mana={X}{U} @@ -22211,6 +22219,7 @@ type=Sorcery [card] name=Contraband Kingpin abilities=lifelink +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=@movedTo(artifact|mybattlefield):scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Lifelink -- Whenever an artifact enters the battlefield under your control, scry 1. mana={U}{B} @@ -24086,6 +24095,7 @@ type=Sorcery name=Cruel Finality target=creature auto=-2/-2 ueot +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Target creature gets -2/-2 until end of turn. Scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) mana={2}{B} @@ -24502,7 +24512,8 @@ type=Enchantment [/card] [card] name=Crystal Ball -auto={1}{t}:scry:2 scrycore delayed dontshow donothing scrycoreend scryend +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot +auto={1}{T}:scry:2 scrycore delayed dontshow donothing scrycoreend scryend text={1}, {T}: Scry 2. (To scry 2, look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.) mana={3} type=Artifact @@ -30122,6 +30133,7 @@ text=Whenever a permanent deals damage to you, return it to its owner's hand. name=Dissolve target=*|stack auto=fizzle +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Counter target spell. Scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) mana={1}{U}{U} @@ -32388,6 +32400,7 @@ type=Instant [card] name=Drown in Sorrow auto=all(creature) -2/-2 ueot +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=All creatures get -2/-2 until end of turn. Scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) mana={1}{B}{B} @@ -38155,6 +38168,7 @@ type=Instant [/card] [card] name=Eyes of the Watcher +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=@movedto(*[instant;sorcery]|mystack):target(trigger[to]<1>) pay[[{U}{R}]] scry:2 scrycore delayed dontshow donothing scrycoreend scryend text=Whenever you cast an instant or sorcery spell, you may pay {1}. If you do, scry 2. (To scry 2, look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.) mana={2}{U} @@ -39092,6 +39106,7 @@ toughness=4 name=Fated Conflagration target=creature,planeswalker auto=damage:5 +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=if compare(restriction{myturnonly}~morethan~0) then scry:2 scrycore delayed dontshow donothing scrycoreend scryend text=Fated Conflagration deals 5 damage to target creature or planeswalker. If it's your turn, scry 2. (Look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.) mana={1}{R}{R}{R} @@ -39101,6 +39116,7 @@ type=Instant name=Fated Infatuation target=creature|mybattlefield auto=clone +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=if compare(restriction{myturnonly}~morethan~0) then scry:2 scrycore delayed dontshow donothing scrycoreend scryend text=Put a token onto the battlefield that's a copy of target creature you control. If it's your turn, scry 2. (Look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.) mana={U}{U}{U} @@ -39109,6 +39125,7 @@ type=Instant [card] name=Fated Intervention auto=token(Centaur,Enchantment Creature Centaur,3/3,green)*2 controller +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=if compare(restriction{myturnonly}~morethan~0) then scry:2 scrycore delayed dontshow donothing scrycoreend scryend text=Put two 3/3 green Centaur enchantment creature tokens onto the battlefield. If it's your turn, scry 2. (Look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.) mana={2}{G}{G}{G} @@ -39117,6 +39134,7 @@ type=Instant [card] name=Fated Retribution auto=all(creature,planeswalker) destroy +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=if compare(restriction{myturnonly}~morethan~0) then scry:2 scrycore delayed dontshow donothing scrycoreend scryend text=Destroy all creatures and planeswalkers. If it's your turn, scry 2. (Look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.) mana={4}{W}{W}{W} @@ -39127,6 +39145,7 @@ name=Fated Return target=creature|mygraveyard auto=moveto(mybattlefield) auto=transforms((,indestructible)) forever +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=if compare(restriction{myturnonly}~morethan~0) then scry:2 scrycore delayed dontshow donothing scrycoreend scryend text=Put target creature card from a graveyard onto the battlefield under your control. It gains indestructible. If it's your turn, scry 2. (Look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.) mana={4}{B}{B}{B} @@ -39800,6 +39819,7 @@ toughness=3 name=Ferocious Charge target=creature auto=4/4 +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:2 scrycore delayed dontshow donothing scrycoreend scryend text=Target creature gets +4/+4 until end of turn. -- Scry 2. (To scry 2, look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.) mana={2}{G} @@ -40359,7 +40379,8 @@ toughness=3 [/card] [card] name=Fill with Fright -auto=scry:2 scrycore delayed choice name(Choose Target for Discard) target(player) ability$!name(Choose 2 to discard) target(<2>*|myhand) reject!$ targetedplayer ueot scrycoreend scryend +aicode=activate transforms((,newability[name(Choose which player will discard) target(player) ability$!name(Discard 2 cards) name(Discard 2 cards) target(<2>*|myhand) reject!$ targetedplayer ueot])) oneshot +auto=scry:2 scrycore delayed name(Choose which player will discard) target(player) ability$!name(Discard 2 cards) name(Discard 2 cards) target(<2>*|myhand) reject!$ targetedplayer scrycoreend scryend text=Target player discards two cards. -- Scry 2. (To scry 2, look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.) mana={3}{B} type=Sorcery @@ -44885,6 +44906,7 @@ toughness=2 [card] name=Geist of the Archives abilities=defender +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=@each my upkeep:scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Defender -- At the beginning of your upkeep, scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) mana={2}{U} @@ -46630,6 +46652,7 @@ toughness=2 [/card] [card] name=Glassblower's Puzzleknot +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:2 scrycore delayed dontshow donothing scrycoreend scryend && ability$!choice alterenergy:2 controller!$ controller auto={2}{U}{S}:scry:2 scrycore delayed dontshow donothing scrycoreend scryend && ability$!choice alterenergy:2 controller!$ controller text=When Glassblower's Puzzleknot enters the battlefield, scry 2, then you get {E}{E}. (You get two energy counters. To scry 2, look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.) -- {2}{U}, Sacrifice Glassblower's Puzzleknot: Scry 2, then you get {E}{E}. @@ -48506,6 +48529,7 @@ type=Legendary Land [card] name=Gods Willing target=creature|mybattlefield +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=choice name(green) transforms((,newability[protection from green],newability[choice scry:1 scrycore delayed dontshow donothing scrycoreend scryend])) ueot auto=choice name(red) transforms((,newability[protection from red],newability[choice scry:1 scrycore delayed dontshow donothing scrycoreend scryend])) ueot auto=choice name(blue) transforms((,newability[protection from blue],newability[choice scry:1 scrycore delayed dontshow donothing scrycoreend scryend])) ueot @@ -52416,9 +52440,10 @@ type=Sorcery [/card] [card] name=Harsh Scrutiny -aicode=activate reject notatarget(creature|opponenthand) -auto=reveal:type:*:opponenthand revealzone(opponenthand) optionone name(choose discards) notatarget(<1>creature|reveal) transforms((,newability[moveto(ownerhand) all(other *|reveal)],newability[moveto(ownerhand) and!(reject)!])) ueot optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend -auto=scry:1 scrycore delayed dontshow donothing scrycoreend scryend +target=*|opponenthand +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot +auto=if cantargetcard(*[creature]|hand) then reject +auto=name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Target opponent reveals his or her hand. You choose a creature card from it. That player discards that card. Scry 1. mana={B} type=Sorcery @@ -53354,6 +53379,7 @@ toughness=2 [/card] [card] name=Hedron Alignment +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=@each my upkeep:aslongas(Hedron Alignment|myhand) aslongas(Hedron Alignment|mygraveyard) aslongas(Hedron Alignment|myexile) aslongas(Hedron Alignment|mybattlefield) wingame controller auto={1}{u}:name(Scry 1) scry:1 scrycore delayed dontshow scrycoreend scryend text=Hexproof -- At the beginning of your upkeep, you may reveal your hand. If you do, you win the game if you own a card named Hedron Alignment in exile, in your hand, in your graveyard, and on the battlefield. -- {1}{U}: Scry 1. @@ -54327,6 +54353,7 @@ type=Enchantment [/card] [card] name=Hidden Stockpile +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=@each my end restriction{revolt}:create(Servo:Artifact Creature Servo:1/1) auto={1}{S(creature|mybattlefield)}:scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Revolt -- At the beginning of your end step, if a permanent you controlled left the battlefield this turn, create a 1/1 colorless Servo artifact creature token. -- {1}, Sacrifice a creature: Scry 1. @@ -55362,6 +55389,7 @@ toughness=1 [card] name=Horizon Scholar abilities=flying +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:2 scrycore delayed dontshow donothing scrycoreend scryend text=Flying -- When Horizon Scholar enters the battlefield, scry 2. (Look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.) mana={5}{U} @@ -59574,6 +59602,7 @@ toughness=1 [card] name=Jace's Sanctum auto=lord(*[instant;sorcery]|mycastingzone) altercost(colorless, -1) +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=@movedTo(instant,sorcery|mystack):scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Instant and sorcery spells you cast cost {1} less to cast. -- Whenever you cast an instant or sorcery spell, scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) mana={3}{U} @@ -66687,6 +66716,7 @@ toughness=4 [/card] [card] name=Lifecrafter's Bestiary +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=@each my upkeep:scry:1 scrycore delayed dontshow donothing scrycoreend scryend auto=@movedto(creature|mystack):pay({G}) draw:1 controller text=At the beginning of your upkeep, scry 1. -- Whenever you cast a creature spell, you may pay {G}. If you do, draw a card. @@ -67032,6 +67062,7 @@ toughness=2 name=Lightning Javelin target=creature,player auto=damage:3 +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Lightning Javelin deals 3 damage to target creature or player. Scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) mana={3}{R} @@ -68204,6 +68235,7 @@ type=Sorcery name=Lose Hope target=creature auto=-1/-1 +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:2 scrycore delayed dontshow donothing scrycoreend scryend text=Target creature gets -1/-1 until end of turn. -- Scry 2. (To scry 2, look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.) mana={B} @@ -68224,6 +68256,7 @@ toughness=3 name=Lost in a Labyrinth target=creature auto=-3/-0 ueot +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Target creature gets -3/-0 until end of turn. Scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) mana={U} @@ -69470,6 +69503,7 @@ toughness=5 name=Magma Jet target=creature,player auto=damage:2 +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:2 scrycore delayed dontshow donothing scrycoreend scryend text=Magma Jet deals 2 damage to target creature or player. -- Scry 2. (To scry 2, look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.) mana={1}{R} @@ -77733,6 +77767,7 @@ toughness=2 [card] name=Mystic Speculation buyback={u}{2} +aicode=activate transforms((,newability[all(*[zpos<=3]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:3 scrycore delayed dontshow donothing scrycoreend scryend text=Buyback {2} (You may pay an additional {2} as you cast this spell. If you do, put this card into your hand as it resolves.) -- Scry 3. (To scry 3, look at the top three cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.) mana={U} @@ -79250,8 +79285,8 @@ type=Artifact [card] name=New Benalia auto=tap(noevent) -auto={t}:add{w} -aicode=activate may bottomoflibrary all(*[zpos=1]|mylibrary) +auto={T}:add{W} +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=New Benalia enters the battlefield tapped. -- When New Benalia enters the battlefield, scry 1. (To scry 1, look at the top card of your library, then you may put that card on the bottom of your library.) -- {T}: Add {W} to your mana pool. type=Land @@ -80073,6 +80108,7 @@ type=Sorcery [/card] [card] name=Nissa's Revelation +aicode=activate transforms((,newability[target(creature[zpos<=5]|mylibrary) transforms((,newability[moveTo(myreveal) and!( placefromthetop(1) )!],newability[draw:power controller],newability[life:toughness controller])) oneshot])) oneshot auto=scry:5 scrycore delayed draw:revealedp && life:revealedt scrycoreend scryend text=Scry 5, then reveal the top card of your library. If it's a creature card, you draw cards equal to its power and you gain life equal to its toughness. mana={5}{G}{G} @@ -81078,6 +81114,7 @@ type=Legendary Enchantment [card] name=Oath of Jace auto=ability$!draw:3 _ notatarget(<2>*|myhand) reject!$ controller +aicode=activate transforms((,newability[all(*[zpos<=type:type:planeswalker:mybattlefield]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=@each my upkeep:name(Scry cards) scry:type:type:planeswalker:mybattlefield scrycore delayed dontshow donothing scrycoreend scryend text=When Oath of Jace enters the battlefield, draw three cards, then discard two cards. -- At the beginning of your upkeep, scry X, where X is the number of planeswalkers you control. mana={2}{U} @@ -81898,6 +81935,7 @@ type=Sorcery [/card] [card] name=Omenspeaker +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:2 scrycore delayed dontshow donothing scrycoreend scryend text=When Omenspeaker enters the battlefield, scry 2. (Look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.) mana={1}{U} @@ -82456,6 +82494,7 @@ toughness=2 [card] name=Oracle's Insight target=creature +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=teach(creature) {t}:scry:1 scrycore delayed draw:1 scrycoreend scryend text=Enchant creature -- Enchanted creature has "{T}: Scry 1, then draw a card." (To scry 1, look at the top card of your library, then you may put that card on the bottom of your library.) mana={3}{U} @@ -87542,6 +87581,7 @@ type=Artifact [card] name=Portent of Betrayal target=creature +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=moveto(mybattlefield) and!(transforms((,newability[phaseaction[endofturn sourceinplay] moveTo(previousbattlefield)],newability[untap],haste)) ueot)! auto=scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Gain control of target creature until end of turn. Untap that creature. It gains haste until end of turn. Scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) @@ -87978,6 +88018,7 @@ type=Sorcery [card] name=Prescient Chimera abilities=flying +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=@movedTo(instant,sorcery|mystack):scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Flying -- Whenever you cast an instant or sorcery spell, scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) mana={3}{U}{U} @@ -88499,6 +88540,7 @@ toughness=4 name=Prism Array auto=counter(0/0,converge,crystal) auto={c(0/0,-1,crystal)}:tap target(creature) +aicode=activate transforms((,newability[all(*[zpos<=3]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto={W}{U}{B}{R}{G}:scry:3 scrycore delayed dontshow donothing scrycoreend scryend text=Converge -- Prism Array enters the battlefield with a crystal counter on it for each color of mana spent to cast it. -- Remove a crystal counter from Prism Array: Tap target creature. -- {W}{U}{B}{R}{G}: Scry 3. (Look at the top three cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.) mana={4}{U} @@ -88855,6 +88897,7 @@ toughness=10 name=Prognostic Sphinx abilities=flying auto={D(*|myhand)}:opponentshroud && tap +aicode=activate transforms((,newability[all(*[zpos<=3]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=@combat(attacking) source(this):scry:3 scrycore delayed dontshow donothing scrycoreend scryend text=Flying -- Discard a card: Prognostic Sphinx gains hexproof until end of turn. Tap it. -- Whenever Prognostic Sphinx attacks, scry 3. (Look at the top three cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.) mana={3}{U}{U} @@ -90801,6 +90844,7 @@ name=Rage of Purphoros target=creature auto=cantregen auto=damage:4 +aicode=activate transforms((,newability[all(*[zpos<=4]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Rage of Purphoros deals 4 damage to target creature. It can't be regenerated this turn. Scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) mana={4}{R} @@ -92600,6 +92644,7 @@ toughness=5 [/card] [card] name=Reaper of the Wilds +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=@movedTo(graveyard) from(other creature|battlefield):scry:1 scrycore delayed dontshow donothing scrycoreend scryend auto={B}:deathtouch ueot auto={1}{G}:opponentshroud ueot @@ -94364,6 +94409,7 @@ type=Instant [/card] [card] name=Retreat to Coralhelm +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=@movedTo(land|myBattlefield):name(Choose one) transforms((,newability[choice name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend],newability[choice name(untap creature) target(creature) untap],newability[choice name(tap creature) target(creature) tap])) ueot text=Landfall -- Whenever a land enters the battlefield under your control, choose one -- -- You may tap or untap target creature. -- Scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) mana={2}{U} @@ -95508,6 +95554,7 @@ type=Sorcery [card] name=Rise of Eagles auto=create(Bird:Creature Bird Enchantment:2/2:flying:blue)*2 +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Put two 2/2 blue Bird enchantment creature tokens with flying onto the battlefield. Scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) mana={4}{U}{U} @@ -100198,6 +100245,7 @@ type=Artifact [card] name=Scouring Sands auto=damage:1 all(creature|opponentbattlefield) +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Scouring Sands deals 1 damage to each creature your opponents control. Scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) mana={1}{R} @@ -101553,8 +101601,8 @@ subtype=Aura [/card] [card] name=Seer's Lantern -auto={t}:add{c} -aicode=activate may bottomoflibrary all(*[zpos=1]|mylibrary) +auto={T}:add{C} +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto={2}{t}:name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend text={T}: Add {C} to your mana pool. ({C} represents colorless mana.) -- {2}, {T}: Scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) mana={3} @@ -101766,6 +101814,7 @@ toughness=3 name=Select for Inspection target=creature[tapped] auto=moveto(ownerhand) +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Return target tapped creature to its owner's hand. Scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) mana={U} @@ -102603,7 +102652,7 @@ type=Artifact [card] name=Serum Visions auto=draw:1 -aicode=activate may bottomoflibrary all(*[zpos<=2]|mylibrary) +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=name(Scry 2) scry:2 scrycore delayed dontshow donothing scrycoreend scryend text=Draw a card. -- Scry 2. (To scry 2, look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.) mana={U} @@ -103041,7 +103090,7 @@ toughness=3 [/card] [card] name=Shadows of the Past -aicode=activate may bottomoflibrary all(*[zpos=1]|mylibrary) +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=@movedTo(creature|graveyard) from(battlefield):name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend auto={4}{B}:life:-2 opponent && life:2 controller restriction{type(creature|mygraveyard)~morethan~3} text=Whenever a creature dies, scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) -- {4}{B}: Each opponent loses 2 life and you gain 2 life. Activate this ability only if there are four or more creature cards in your graveyard. @@ -105074,6 +105123,7 @@ toughness=2 [/card] [card] name=Sigiled Skink +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=@combat(attacking) source(this):scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Whenever Sigiled Skink attacks, scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) mana={1}{R} @@ -105084,7 +105134,8 @@ toughness=1 [/card] [card] name=Sigiled Starfish -auto={t}:scry:1 scrycore delayed dontshow donothing scrycoreend scryend +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot +auto={T}:scry:1 scrycore delayed dontshow donothing scrycoreend scryend text={T}: Scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) mana={1}{U} type=Creature @@ -107358,6 +107409,7 @@ toughness=1 name=Skywhaler's Shot target=creature[power>=3] auto=destroy +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Destroy target creature with power 3 or greater. Scry 1. mana={2}{W} @@ -109894,6 +109946,7 @@ toughness=1 name=Spark Jolt target=creature,player auto=damage:1 +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Spark Jolt deals 1 damage to target creature or player. Scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) mana={R} @@ -111405,6 +111458,7 @@ type=Instant name=Spite of Mogis target=creature auto=damage:type:*[instant;sorcery]:mygraveyard +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Spite of Mogis deals damage to target creature equal to the number of instant and sorcery cards in your graveyard. Scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) mana={R} @@ -112472,6 +112526,7 @@ toughness=4 name=Stand Firm target=creature auto=1/1 +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:2 scrycore delayed dontshow donothing scrycoreend scryend text=Target creature gets +1/+1 until end of turn. -- Scry 2. (To scry 2, look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.) mana={W} @@ -113927,6 +113982,7 @@ toughness=4 [card] name=Stormcaller of Keranos abilities=haste +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto={1}{u}:scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Haste -- {1}{U}: Scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) mana={2}{R} @@ -114776,6 +114832,7 @@ toughness=* name=Stymied Hopes target=*|stack auto=transforms((,newability[pay[[{1}]] name(pay 1 mana) donothing?fizzle])) forever +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Counter target spell unless its controller pays {1}. Scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) mana={1}{U} @@ -118326,6 +118383,7 @@ toughness=1 name=Tel-Jilad Justice target=artifact auto=destroy +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:2 scrycore delayed dontshow donothing scrycoreend scryend text=Destroy target artifact. -- Scry 2. (To scry 2, look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.) mana={1}{G} @@ -118463,7 +118521,7 @@ name=Temple of Abandon auto=tap(noevent) auto={t}:add{r} auto={t}:add{g} -aicode=activate may bottomoflibrary all(*[zpos=1]|mylibrary) +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Temple of Abandon enters the battlefield tapped. -- When Temple of Abandon enters the battlefield, scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) -- {T}: Add {R} or {G} to your mana pool. type=Land @@ -118473,7 +118531,7 @@ name=Temple of Deceit auto=tap(noevent) auto={t}:add{u} auto={t}:add{b} -aicode=activate may bottomoflibrary all(*[zpos=1]|mylibrary) +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Temple of Deceit enters the battlefield tapped. -- When Temple of Deceit enters the battlefield, scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) -- {T}: Add {U} or {B} to your mana pool. type=Land @@ -118483,7 +118541,7 @@ name=Temple of Enlightenment auto=tap(noevent) auto={t}:add{w} auto={t}:add{u} -aicode=activate may bottomoflibrary all(*[zpos=1]|mylibrary) +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Temple of Enlightenment enters the battlefield tapped. -- When Temple of Enlightenment enters the battlefield, scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) -- {T}: Add {W} or {U} to your mana pool. type=Land @@ -118493,7 +118551,7 @@ name=Temple of Epiphany auto=tap(noevent) auto={t}:add{u} auto={t}:add{r} -aicode=activate may bottomoflibrary all(*[zpos=1]|mylibrary) +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Temple of Epiphany enters the battlefield tapped. -- When Temple of Epiphany enters the battlefield, scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) -- {T}: Add {U} or {R} to your mana pool. type=Land @@ -118503,7 +118561,7 @@ name=Temple of Malady auto=tap(noevent) auto={t}:add{b} auto={t}:add{g} -aicode=activate may bottomoflibrary all(*[zpos=1]|mylibrary) +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Temple of Malady enters the battlefield tapped. -- When Temple of Malady enters the battlefield, scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) -- {T}: Add {B} or {G} to your mana pool. type=Land @@ -118513,7 +118571,7 @@ name=Temple of Malice auto=tap(noevent) auto={t}:add{b} auto={t}:add{r} -aicode=activate may bottomoflibrary all(*[zpos=1]|mylibrary) +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Temple of Malice enters the battlefield tapped. -- When Temple of Malice enters the battlefield, scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) -- {T}: Add {B} or {R} to your mana pool. type=Land @@ -118523,7 +118581,7 @@ name=Temple of Mystery auto=tap(noevent) auto={t}:add{g} auto={t}:add{u} -aicode=activate may bottomoflibrary all(*[zpos=1]|mylibrary) +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Temple of Mystery enters the battlefield tapped. -- When Temple of Mystery enters the battlefield, scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) -- {T}: Add {G} or {U} to your mana pool. type=Land @@ -118533,7 +118591,7 @@ name=Temple of Plenty auto=tap(noevent) auto={t}:add{g} auto={t}:add{w} -aicode=activate may bottomoflibrary all(*[zpos=1]|mylibrary) +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Temple of Plenty enters the battlefield tapped. -- When Temple of Plenty enters the battlefield, scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) -- {T}: Add {G} or {W} to your mana pool. type=Land @@ -118543,7 +118601,7 @@ name=Temple of Silence auto=tap(noevent) auto={t}:add{w} auto={t}:add{b} -aicode=activate may bottomoflibrary all(*[zpos=1]|mylibrary) +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Temple of Silence enters the battlefield tapped. -- When Temple of Silence enters the battlefield, scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) -- {T}: Add {W} or {B} to your mana pool. type=Land @@ -118559,7 +118617,7 @@ name=Temple of Triumph auto=tap(noevent) auto={t}:add{r} auto={t}:add{w} -aicode=activate may bottomoflibrary all(*[zpos=1]|mylibrary) +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Temple of Triumph enters the battlefield tapped. -- When Temple of Triumph enters the battlefield, scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) -- {T}: Add {R} or {W} to your mana pool. type=Land @@ -119440,6 +119498,7 @@ toughness=1 name=Thassa, God of the Sea abilities=Indestructible auto={1}{u}:target(creature|mybattlefield) unblockable ueot +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=@each my upkeep:scry:1 scrycore delayed dontshow donothing scrycoreend scryend auto=this(variable{type:manau}<5) transforms((removetypes,newability[becomes(Legendary Enchantment God)])) auto=this(variable{type:manau}>4) transforms((Legendary Enchantment Creature)) @@ -121848,7 +121907,7 @@ toughness=3 name=Titan's Strength target=creature auto=3/1 -aicode=activate may bottomoflibrary all(*[zpos=1]|mylibrary) +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Target creature gets +3/+1 until end of turn. Scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) mana={R} @@ -127118,7 +127177,7 @@ type=Instant name=Vanquish the Foul target=creature[power>=4] auto=destroy -aicode=activate may bottomoflibrary all(*[zpos=1]|mylibrary) +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Destroy target creature with power 4 or greater. Scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) mana={5}{W} @@ -128159,6 +128218,7 @@ toughness=1 [card] name=Veteran Motorist crewbonus=1/1 +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=scry:2 scrycore delayed dontshow donothing scrycoreend scryend text=When Veteran Motorist enters the battlefield, scry 2. -- Whenever Veteran Motorist crews a Vehicle, that Vehicle gets +1/+1 until end of turn. mana={R}{W} @@ -129242,7 +129302,7 @@ toughness=3 [/card] [card] name=Viscera Seer -aicode=activate may bottomoflibrary all(*[zpos=1]|mylibrary) +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto={S(creature|myBattlefield)}:name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Sacrifice a creature: Scry 1. (To scry 1, look at the top card of your library, then you may put that card on the bottom of your library.) mana={B} @@ -130364,7 +130424,7 @@ type=Artifact name=Voyage's End target=creature auto=moveto(ownerhand) -aicode=activate may bottomoflibrary all(*[zpos=1]|mylibrary) +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Return target creature to its owner's hand. Scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) mana={1}{U} @@ -132115,6 +132175,7 @@ toughness=2 [/card] [card] name=Watchful Automaton +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto={2}{U}:name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend text={2}{U}: Scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) mana={3} @@ -134162,6 +134223,7 @@ toughness=2 [card] name=Windrider Patrol abilities=flying +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=@combatdamaged(player) from(this):name(Scry 2) scry:2 scrycore delayed dontshow donothing scrycoreend scryend text=Flying -- Whenever Windrider Patrol deals combat damage to a player, scry 2. (Look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.) mana={3}{U}{U} @@ -134680,6 +134742,7 @@ type=Artifact [card] name=Witches' Eye auto={1}:equip +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto=teach(creature) {1}{t}:name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Equipped creature has "{1}, {T}: Scry 1." (To scry 1, look at the top card of your library, then you may put that card on the bottom of your library.) -- Equip {1} mana={1} diff --git a/projects/mtg/bin/Res/sets/primitives/planeswalkers.txt b/projects/mtg/bin/Res/sets/primitives/planeswalkers.txt index 3345f3060..eb0968362 100644 --- a/projects/mtg/bin/Res/sets/primitives/planeswalkers.txt +++ b/projects/mtg/bin/Res/sets/primitives/planeswalkers.txt @@ -1145,6 +1145,7 @@ auto=counter(0/0,1,loyalty) auto=if paid(kicker) then clone auto=if casted(this) then counter(0/0,3,loyalty) auto=if casted(this) then becomes(Legendary) all(this) +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto={C(0/0,1,Loyalty)}:name(+1: Scry 2) scry:2 scrycore delayed dontshow donothing scrycoreend scryend auto={C(0/0,0,Loyalty)}:name(+0: Draw 1 and remove Loyalty counters) draw:1 restriction{type(*[manacost=0;zpos=1]|mylibrary)~morethan~0} auto={C(0/0,0,Loyalty)}:name(+0: Draw 1 and remove Loyalty counters) draw:1 && counter(0/0,-1,loyalty) restriction{type(*[manacost=1;zpos=1]|mylibrary)~morethan~0} @@ -1874,9 +1875,12 @@ subtype=Nissa [card] name=Nissa, Steward of Elements auto=counter(0/0,X,loyalty) +aicode=activate transforms((,newability[if type(creature[manacost<=hascntloyalty;zpos=1]|mylibrary)~morethan~0 then all(*[zpos<=1]|mylibrary) name(Put on battlefield) moveto(mybattlefield)],newability[if type(land[zpos=1]|mylibrary)~morethan~0 then all(*[zpos<=1]|mylibrary) name(Put on battlefield) moveto(mybattlefield)])) oneshot auto={C(0/0,2,Loyalty)}:name(+2: Scry 2) scry:2 scrycore delayed dontshow donothing scrycoreend scryend -auto={C(0/0,0,Loyalty)}:name(+0: Put a creature or land from library) flipacoin winability moverandom(creature,land[convertedmanacost<=counter(loyalty)]) from(mylibrary) to(mybattleifeld) winabilityend flipend -auto={C(0/0,-6,Loyalty)}:name(-6: Two lands become creatures 5/5 with flying) untap target(land|mybattlefield) && transforms((,creature,setpower=5,settoughness=5,newability[haste],newability[flying])) ueot +auto={C(0/0,0,Loyalty)}: restriction{type(land[zpos=1]|mylibrary)~morethan~0} name(+0: Look top card) reveal:1 optionone name(Put on battlefield) target(land|reveal) moveto(mybattlefield) optiononeend optiontwo name(Put back) target(*|reveal) moveto(mylibrary) optiontwoend revealend +auto={C(0/0,0,Loyalty)}: restriction{type(creature[zpos=1]|mylibrary)~morethan~0} name(+0: Look top card) reveal:1 optionone name(Put on battlefield) target(creature[manacost<=hascntloyalty]|reveal) moveto(mybattlefield) optiononeend optiontwo name(Put back) target(*|reveal) moveto(mylibrary) optiontwoend revealend +auto={C(0/0,0,Loyalty)}: restriction{type(*[-creature;-land;zpos=1]|mylibrary)~morethan~0} name(+0: Look top card)) reveal:1 optionone name(Put back) target(*|reveal) moveto(mylibrary) optiononeend optiontwo name(Put back) all(*|reveal) moveto(mylibrary) optiontwoend revealend +auto={C(0/0,-6,Loyalty)}:name(-6: Two lands become creatures 5/5 with flying) target(land|mybattlefield) transforms((Creature Elemental,setpower=5,settoughness=5,newability[haste],newability[flying],newability[untap])) ueot text=+2: Scry 2. -- 0: Look at the top card of your library. If it's a land card or a creature card with converted mana cost less than or equal to the number of loyalty counters on Nissa, Steward of Elements, you may put that card onto the battlefield. -- -6: Untap up to two target lands you control. They become 5/5 Elemental creatures with flying and haste until end of turn. They're still lands. mana={X}{G}{U} type=Legendary Planeswalker @@ -2020,6 +2024,7 @@ subtype=Ral [card] name=Ral, Storm Conduit auto=counter(0/0,4,loyalty) +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) 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 @@ -2066,6 +2071,7 @@ subtype=Rowan [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) bottomoflibrary])) oneshot])) oneshot auto={C(0/0,1,Loyalty)}:name(+1: Scry and deals 1 damage) scry:1 scrycore delayed dontshow donothing scrycoreend scryend && damage:1 opponent auto={C(0/0,-2,Loyalty)}:name(-2: Create a copy of artifact or creature) target(*[creature;artifact]|myBattlefield) clone with(treason,haste) addtype(artifact) auto={C(0/0,-7,Loyalty)}:name(-7: Search three different artifacts) reveal:plibrarycount optionone name(choose cards) target(artifact|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))! afterrevealedend revealend @@ -2112,6 +2118,7 @@ subtype=Samut name=Samut, Tyrant Smasher auto=counter(0/0,5,loyalty) auto=lord(other creature|myBattlefield) haste +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) bottomoflibrary])) oneshot])) oneshot auto={C(0/0,-1,Loyalty)}:name(-1: Creature gains +2/+1, haste and scry 1) target(creature) transforms((,newability[2/1],newability[haste])) ueot && _SCRY_(1) text=Creatures you control have haste. -- -1: Target creature gets +2/+1 and gains haste until end of turn. Scry 1. mana={2}{RG}{RG} diff --git a/projects/mtg/bin/Res/sets/primitives/unsupported.txt b/projects/mtg/bin/Res/sets/primitives/unsupported.txt index b23bc8a81..85b062d37 100644 --- a/projects/mtg/bin/Res/sets/primitives/unsupported.txt +++ b/projects/mtg/bin/Res/sets/primitives/unsupported.txt @@ -4405,11 +4405,6 @@ mana={3}{BG} type=Instant [/card] [card] -name=Gemstone Caverns -text=If Gemstone Caverns is in your opening hand and you're not playing first, you may begin the game with Gemstone Caverns on the battlefield with a luck counter on it. If you do, exile a card from your hand. -- {T}: Add {1} to your mana pool. If Gemstone Caverns has a luck counter on it, instead add one mana of any color to your mana pool. -type=Legendary Land -[/card] -[card] name=General Jarkeld text={T}: Switch the blocking creatures of two target attacking creatures. Activate this ability only during the declare blockers step. mana={3}{W} @@ -6927,13 +6922,10 @@ mana={3}{G}{G} type=Enchantment [/card] [card] -name=Lullmage Mentor -text=Whenever a spell or ability you control counters a spell, you may put a 1/1 blue Merfolk creature token onto the battlefield. -- Tap seven untapped Merfolk you control: Counter target spell. -mana={1}{U}{U} -type=Creature -subtype=Merfolk Wizard -power=2 -toughness=2 +name=Lucky Clover +text=Whenever you cast an Adventure instant or sorcery spell, copy it. You may choose new targets for the copy. +mana={2} +type=Artifact [/card] [card] name=Luminous Guardian