Added missing cards from GRN sets, improved mutation trigger, improved Surveil ability, implemented trigger and offset on surveil ability to allow combo with other cards (see issue #1037 opened by luisguerin).

This commit is contained in:
valfieri
2020-10-12 01:25:34 +02:00
parent 8cf2b7ab69
commit 29985718a7
13 changed files with 791 additions and 101 deletions
+9 -54
View File
@@ -1105,52 +1105,27 @@ id=452970
rarity=C rarity=C
[/card] [/card]
[card] [card]
primitive=Assemble primitive=Assure // Assemble
id=452971 id=452971
rarity=R rarity=R
[/card] [/card]
[card] [card]
primitive=Assure primitive=Connive // Concoct
id=452971
rarity=R
[/card]
[card]
primitive=Concoct
id=452972 id=452972
rarity=R rarity=R
[/card] [/card]
[card] [card]
primitive=Connive primitive=Discovery // Dispersal
id=452972
rarity=R
[/card]
[card]
primitive=Dispersal
id=452973 id=452973
rarity=U rarity=U
[/card] [/card]
[card] [card]
primitive=Discovery primitive=Expansion // Explosion
id=452973
rarity=U
[/card]
[card]
primitive=Explosion
id=452974 id=452974
rarity=R rarity=R
[/card] [/card]
[card] [card]
primitive=Expansion primitive=Find // Finality
id=452974
rarity=R
[/card]
[card]
primitive=Finality
id=452975
rarity=R
[/card]
[card]
primitive=Find
id=452975 id=452975
rarity=R rarity=R
[/card] [/card]
@@ -1160,42 +1135,22 @@ id=452976
rarity=U rarity=U
[/card] [/card]
[card] [card]
primitive=Intervention primitive=Integrity // Intervention
id=452977 id=452977
rarity=U rarity=U
[/card] [/card]
[card] [card]
primitive=Integrity primitive=Invert // Invent
id=452977
rarity=U
[/card]
[card]
primitive=Invent
id=452978 id=452978
rarity=U rarity=U
[/card] [/card]
[card] [card]
primitive=Invert primitive=Response // Resurgence
id=452978
rarity=U
[/card]
[card]
primitive=Resurgence
id=452979 id=452979
rarity=R rarity=R
[/card] [/card]
[card] [card]
primitive=Response primitive=Status // Statue
id=452979
rarity=R
[/card]
[card]
primitive=Statue
id=452980
rarity=U
[/card]
[card]
primitive=Status
id=452980 id=452980
rarity=U rarity=U
[/card] [/card]
@@ -1,7 +1,7 @@
grade=borderline grade=borderline
#Bordeline Primitives Pack for Wagic the Homebrew. #Bordeline Primitives Pack for Wagic the Homebrew.
#Please keep these card alphabetized, and try to have the "name=" line at the top of each card #Please keep these card alphabetized, and try to have the "name=" line at the top of each card
#I sorted this programatically - Vitty85 10-10-2020 #I sorted this programatically - Vitty85 12-10-2020
[card] [card]
name=AEther Rift name=AEther Rift
auto=@each my upkeep:moverandom(*) from(myHand) to(myGraveyard) auto=@each my upkeep:moverandom(*) from(myHand) to(myGraveyard)
@@ -381,6 +381,14 @@ power=2
toughness=3 toughness=3
[/card] [/card]
[card] [card]
name=Aether Gale
target=<6>*[-land]|battlefield
auto=moveto(ownerhand)
text=Return six target nonland permanents to their owners' hands.
mana={3}{U}{U}
type=Sorcery
[/card]
[card]
name=Aether Gust name=Aether Gust
target=*[red;green]|battlefield,stack target=*[red;green]|battlefield,stack
auto=transforms((,newability[Choice name(Top) moveto(library)],newability[Choice name(Bottom) bottomoflibrary])) controller auto=transforms((,newability[Choice name(Top) moveto(library)],newability[Choice name(Bottom) bottomoflibrary])) controller
@@ -510,9 +518,8 @@ toughness=2
[/card] [/card]
[card] [card]
name=Agonizing Remorse name=Agonizing Remorse
target=opponent aicode=activate moveto(exile) notatarget(*[-land]|opponenthand,opponentGraveyard)
aicode=activate moveto(exile) notatarget(*[-land]|targetedpersonshand) auto=choice name(reveal from hand) reveal:type:*:opponenthand revealzone(opponenthand) optionone name(choose to exile) notatarget(<1>*[-land]|reveal) transforms((,newability[moveto(ownerhand) all(other *|reveal)],newability[moveto(exile)])) ueot optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend && life:-1 controller
auto=choice name(reveal from hand) reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose to exile) notatarget(<1>*[-land]|reveal) transforms((,newability[moveto(ownerhand) all(other *|reveal)],newability[moveto(exile)])) ueot optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend && life:-1 controller
auto=choice name(reveal from graveyard) moveto(exile) target(*[-land]|opponentGraveyard) && life:-1 controller auto=choice name(reveal from graveyard) moveto(exile) target(*[-land]|opponentGraveyard) && life:-1 controller
text=Target opponent reveals their hand. You choose a nonland card from it or a card from their graveyard. Exile that card. You lose 1 life. text=Target opponent reveals their hand. You choose a nonland card from it or a card from their graveyard. Exile that card. You lose 1 life.
mana={1}{B} mana={1}{B}
@@ -2018,6 +2025,15 @@ mana={1}{B}{B}
type=Sorcery type=Sorcery
[/card] [/card]
[card] [card]
name=Artful Takedown
auto=choice name(Tap creature) target(creature) tap(noevent)
auto=choice name(Target creature gets -2/-4) target(creature) -2/-4 ueot
auto=choice name(Choose both) target(creature) tap(noevent) && ability$!name(Target creature gets -2/-4) name(Target creature gets -2/-4) target(creature) -2/-4 ueot!$ controller
text=Choose one or both — -- • Tap target creature. -- • Target creature gets -2/-4 until end of turn.
mana={2}{U}{B}
type=Instant
[/card]
[card]
name=Artificer's Assistant name=Artificer's Assistant
abilities=flying abilities=flying
auto=@movedTo(*[artifact;legendary;saga]|mystack):scry:1 scrycore delayed dontshow donothing scrycoreend scryend auto=@movedTo(*[artifact;legendary;saga]|mystack):scry:1 scrycore delayed dontshow donothing scrycoreend scryend
@@ -2168,6 +2184,15 @@ mana={R}
type=Sorcery type=Sorcery
[/card] [/card]
[card] [card]
name=Assure // Assemble
other={4}{G}{W} name(Assemble)
auto=if paid(alternative) then token(Elf Knight,Creature Elf Knight,2/2,green,white,vigilance)*3
auto=ifnot paid(alternative) then target(creature) tansforms((,newability[indestructible],newability[counter(1/1)])) ueot
text=Put a +1/+1 counter on target creature. That creature gains indestructible until end of turn. -- Create three 2/2 green and white Elf Knight creature tokens with vigilance.
mana={GW}{GW}
type=Instant
[/card]
[card]
name=Astral Cornucopia name=Astral Cornucopia
auto=if paid(kicker) then counter(0/0,kicked,Charge) auto=if paid(kicker) then counter(0/0,kicked,Charge)
auto={T}:name(Add X white mana) thisforeach(counter{0/0,1,Charge}) add{W} auto={T}:name(Add X white mana) thisforeach(counter{0/0,1,Charge}) add{W}
@@ -2954,8 +2979,8 @@ type=Instant
[card] [card]
name=Barrier of Bones name=Barrier of Bones
abilities=defender abilities=defender
aicode=name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=1]|mylibrary) moverandom(*[zpos<=1]) from(mylibrary) to(mylibrary)])) ueot aicode=surveil && name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=psurveiloffsetplus1plusend]|mylibrary) moverandom(*[zpos<=psurveiloffsetplus1plusend]) from(mylibrary) to(mylibrary)])) ueot
auto=name(surveil) reveal:1 optionone name(put in graveyard) target(<upto:1>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<1>*|reveal) moveto(ownerlibrary) optiontwoend revealend auto=surveil && name(surveil) reveal:psurveiloffsetplus1plusend optionone name(put in graveyard) target(<upto:psurveiloffsetplus1plusend>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<psurveiloffsetplus1plusend>*|reveal) moveto(ownerlibrary) optiontwoend 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.) 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} mana={B}
type=Creature type=Creature
@@ -3183,6 +3208,26 @@ power=3
toughness=4 toughness=4
[/card] [/card]
[card] [card]
name=Beacon Bolt
target=creature
auto=damage:pginstantsorcery
auto=foreach(*[instant;sorcery]|myexile) damage:1
flashback={1}{U}{R}{D(*|myhand)}
text=Beacon Bolt deals damage to target creature equal to the total number of instant and sorcery cards you own in exile and in your graveyard. -- Jump-start (You may cast this card from your graveyard by discarding a card in addition to paying its other costs. Then exile this card.)
mana={1}{U}{R}
type=Sorcery
[/card]
[card]
name=Beamsplitter Mage
auto=@targeted(this) from(*[instant;sorcery]|mycastingzone):all(trigger[from]) castcard(copied noevent)
text=Whenever you cast an instant or sorcery spell that targets only Beamsplitter Mage, if you control one or more other creatures that spell could target, choose one of those creatures. Copy that spell. The copy targets the chosen creature.
mana={U}{R}
type=Creature
subtype=Vedalken Wizard
power=2
toughness=2
[/card]
[card]
name=Beanstalk Giant // Fertile Footsteps name=Beanstalk Giant // Fertile Footsteps
abilities=canplayfromexile,adventure abilities=canplayfromexile,adventure
other={2}{G} name(Adventure) other={2}{G} name(Adventure)
@@ -4070,6 +4115,18 @@ power=4
toughness=3 toughness=3
[/card] [/card]
[card] [card]
name=Blood Operative
abilities=lifelink
auto=may moveto(exile) target(*|graveyard)
autograveyard=@surveiled(*|mybattlefield,mystack):pay({L:3}) name(return to hand) moveto(myhand) all(this)
text=Lifelink -- When Blood Operative enters the battlefield, you may exile target card from a graveyard. -- Whenever you surveil, if Blood Operative is in your graveyard, you may pay 3 life. If you do, return Blood Operative to your hand.
mana={1}{B}{B}
type=Creature
subtype=Vampire Assassin
power=3
toughness=1
[/card]
[card]
name=Blood Price name=Blood Price
aicode=activate transforms((,newability[moveto(myhand) all(*[zpos<=2]|mylibrary) && life:-2)])) ueot aicode=activate transforms((,newability[moveto(myhand) all(*[zpos<=2]|mylibrary) && life:-2)])) ueot
auto=name(look) reveal:4 optionone name(Get 2 card) target(<2>*|reveal) moveto(myhand) optiononeend optiontwo name(put bottom of library) all(*|reveal) bottomoflibrary optiontwoend afterrevealed choice life:-2 afterrevealedend revealend auto=name(look) reveal:4 optionone name(Get 2 card) target(<2>*|reveal) moveto(myhand) optiononeend optiontwo name(put bottom of library) all(*|reveal) bottomoflibrary optiontwoend afterrevealed choice life:-2 afterrevealedend revealend
@@ -6778,6 +6835,19 @@ power=2
toughness=2 toughness=2
[/card] [/card]
[card] [card]
name=Charnel Troll
abilities=trample
auto=upcost[{S(creature|mygraveyard)}] sacrifice
auto=@each my upkeep:counter(1/1)
auto={B}{G}{D(creature|myhand)}:counter(1/1)
text=Trample -- At the beginning of your upkeep, exile a creature card from your graveyard. If you do, put a +1/+1 counter on Charnel Troll. Otherwise, sacrifice it. -- {B}{G}, Discard a creature card: Put a +1/+1 counter on Charnel Troll.
mana={1}{B}{G}
type=Creature
subtype=Troll
power=4
toughness=4
[/card]
[card]
name=Chart a Course name=Chart a Course
auto=draw:2 controller auto=draw:2 controller
auto=if type(creature[attacking])~lessthan~1 then discard(*|myhand) auto=if type(creature[attacking])~lessthan~1 then discard(*|myhand)
@@ -7076,8 +7146,8 @@ type=Sorcery
[card] [card]
name=Citywatch Sphinx name=Citywatch Sphinx
abilities=flying abilities=flying
auto=@movedTo(this|graveyard) from(battlefield):name(surveil) reveal:2 optionone name(put in graveyard) target(<upto:2>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<2>*|reveal) moveto(ownerlibrary) optiontwoend revealend auto=@movedTo(this|graveyard) from(battlefield):surveil && name(surveil) reveal:psurveiloffsetplus2plusend optionone name(put in graveyard) target(<upto:psurveiloffsetplus2plusend>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<psurveiloffsetplus2plusend>*|reveal) moveto(ownerlibrary) optiontwoend revealend
aicode=name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=2]|mylibrary) moverandom(*[zpos<=2]) from(mylibrary) to(mylibrary)])) ueot aicode=surveil && name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=psurveiloffsetplus2plusend]|mylibrary) moverandom(*[zpos<=psurveiloffsetplus2plusend]) from(mylibrary) to(mylibrary)])) ueot
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.) 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} mana={5}{U}
type=Creature type=Creature
@@ -7966,6 +8036,16 @@ power=4
toughness=4 toughness=4
[/card] [/card]
[card] [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(<upto:psurveiloffsetplus3plusend>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<psurveiloffsetplus3plusend>*|reveal) moveto(ownerlibrary) optiontwoend afterrevealed target(creature|mygraveyard) moveto(myBattlefield) 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}
type=Sorcery
[/card]
[card]
name=Conqueror's Flail name=Conqueror's Flail
auto={2}:equip auto={2}:equip
auto=aslongas(*[white]|myBattlefield) teach(creature) 1/1 auto=aslongas(*[white]|myBattlefield) teach(creature) 1/1
@@ -9248,6 +9328,16 @@ power=2
toughness=2 toughness=2
[/card] [/card]
[card] [card]
name=Darkblade Agent
auto=@surveiled(*|mybattlefield,mystack):all(this) transforms((,newability[deathtouch],newability[@combatdamaged(player) from(this):draw:1 controller])) ueot
text=As long as you've surveilled this turn, Darkblade Agent has deathtouch and "Whenever this creature deals combat damage to a player, you draw a card."
mana={1}{U}{B}
type=Creature
subtype=Human Assassin
power=2
toughness=3
[/card]
[card]
name=Darksteel Mutation name=Darksteel Mutation
target=creature target=creature
auto=indestructible auto=indestructible
@@ -9440,8 +9530,8 @@ type=Instant
name=Dazzling Lights name=Dazzling Lights
target=creature target=creature
auto=-3/-0 auto=-3/-0
aicode=name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=2]|mylibrary) moverandom(*[zpos<=2]) from(mylibrary) to(mylibrary)])) ueot aicode=surveil && name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=psurveiloffsetplus2plusend]|mylibrary) moverandom(*[zpos<=psurveiloffsetplus2plusend]) from(mylibrary) to(mylibrary)])) ueot
auto=name(surveil) reveal:2 optionone name(put in graveyard) target(<upto:2>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<2>*|reveal) moveto(ownerlibrary) optiontwoend revealend auto=surveil && name(surveil) reveal:psurveiloffsetplus2plusend optionone name(put in graveyard) target(<upto:psurveiloffsetplus2plusend>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<psurveiloffsetplus2plusend>*|reveal) moveto(ownerlibrary) optiontwoend 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.) 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} mana={U}
type=Instant type=Instant
@@ -9589,8 +9679,8 @@ type=Instant
name=Deadly Visit name=Deadly Visit
target=creature target=creature
auto=destroy auto=destroy
aicode=name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=2]|mylibrary) moverandom(*[zpos<=2]) from(mylibrary) to(mylibrary)])) ueot aicode=surveil && name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=psurveiloffsetplus2plusend]|mylibrary) moverandom(*[zpos<=psurveiloffsetplus2plusend]) from(mylibrary) to(mylibrary)])) ueot
auto=name(surveil) reveal:2 optionone name(put in graveyard) target(<upto:2>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<2>*|reveal) moveto(ownerlibrary) optiontwoend revealend auto=surveil && name(surveil) reveal:psurveiloffsetplus2plusend optionone name(put in graveyard) target(<upto:psurveiloffsetplus2plusend>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<psurveiloffsetplus2plusend>*|reveal) moveto(ownerlibrary) optiontwoend 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.) 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} mana={3}{B}{B}
type=Sorcery type=Sorcery
@@ -10568,8 +10658,8 @@ type=Instant
[/card] [/card]
[card] [card]
name=Dimir Informant name=Dimir Informant
aicode=name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=2]|mylibrary) moverandom(*[zpos<=2]) from(mylibrary) to(mylibrary)])) ueot aicode=surveil && name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=psurveiloffsetplus2plusend]|mylibrary) moverandom(*[zpos<=psurveiloffsetplus2plusend]) from(mylibrary) to(mylibrary)])) ueot
auto=name(surveil) reveal:2 optionone name(put in graveyard) target(<upto:2>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<2>*|reveal) moveto(ownerlibrary) optiontwoend revealend auto=surveil && name(surveil) reveal:psurveiloffsetplus2plusend optionone name(put in graveyard) target(<upto:psurveiloffsetplus2plusend>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<psurveiloffsetplus2plusend>*|reveal) moveto(ownerlibrary) optiontwoend 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.) 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} mana={2}{U}
type=Creature type=Creature
@@ -10587,6 +10677,17 @@ mana={3}
type=Artifact type=Artifact
[/card] [/card]
[card] [card]
name=Dimir Spybug
abilities=flying,menace
auto=@surveiled(*|mybattlefield,mystack):all(this) counter(1/1)
text=Flying -- Menace (This creature can't be blocked except by two or more creatures.) -- Whenever you surveil, put a +1/+1 counter on Dimir Spybug.
mana={U}{B}
type=Creature
subtype=Insect
power=1
toughness=1
[/card]
[card]
name=Dinosaur For name=Dinosaur For
abilities=haste abilities=haste
type=Creature type=Creature
@@ -10772,6 +10873,27 @@ power=2
toughness=1 toughness=1
[/card] [/card]
[card] [card]
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(<upto:psurveiloffsetplus2plusend>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<psurveiloffsetplus2plusend>*|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 owners hand, then discards a card.
mana={1}{UB}
type=Sorcery
[/card]
[card]
name=Disinformation Campaign
auto=draw:1 controller
auto=ability$!name(Discard a card) notatarget(*|myhand) reject!$ opponent
auto=@surveiled(*|mybattlefield,mystack):all(this) moveto(ownerhand)
text=When Disinformation Campaign enters the battlefield, you draw a card and each opponent discards a card. -- Whenever you surveil, return Disinformation Campaign to its owner's hand.
mana={1}{U}{B}
type=Enchantment
[/card]
[card]
name=Dismantling Wave name=Dismantling Wave
target=artifact,enchantment target=artifact,enchantment
auto=destroy auto=destroy
@@ -10881,6 +11003,13 @@ mana={1}{W}
type=Instant type=Instant
[/card] [/card]
[card] [card]
name=Divine Visitation
auto=@movedto(creature[token]|mybattlefield):all(trigger) destroy && token(Angel,Creature Angel,4/4,white,flying,vigilance)
text=If one or more creature tokens would be created under your control, that many 4/4 white Angel creature tokens with flying and vigilance are created instead.
mana={3}{W}{W}
type=Enchantment
[/card]
[card]
name=Djeru's Renunciation name=Djeru's Renunciation
target=<upto:2>creature target=<upto:2>creature
auto=tap auto=tap
@@ -10987,8 +11116,8 @@ type=Enchantment
[card] [card]
name=Doom Whisperer name=Doom Whisperer
abilities=flying, trample abilities=flying, trample
auto={L:2}:name(surveil) reveal:2 optionone name(put in graveyard) target(<upto:2>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<2>*|reveal) moveto(ownerlibrary) optiontwoend revealend auto={L:2}:surveil && name(surveil) reveal:psurveiloffsetplus2plusend optionone name(put in graveyard) target(<upto:psurveiloffsetplus2plusend>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<psurveiloffsetplus2plusend>*|reveal) moveto(ownerlibrary) optiontwoend revealend
aicode=name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=2]|mylibrary) moverandom(*[zpos<=2]) from(mylibrary) to(mylibrary)])) ueot aicode=surveil && name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=psurveiloffsetplus2plusend]|mylibrary) moverandom(*[zpos<=psurveiloffsetplus2plusend]) from(mylibrary) to(mylibrary)])) ueot
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.) 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} mana={3}{B}{B}
type=Creature type=Creature
@@ -11463,8 +11592,8 @@ subtype=Aura
name=Dream Eater name=Dream Eater
abilities=flash, flying abilities=flash, flying
auto=moveTo(ownerHand) target(*[-land]) auto=moveTo(ownerHand) target(*[-land])
aicode=name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=4]|mylibrary) moverandom(*[zpos<=4]) from(mylibrary) to(mylibrary)])) ueot aicode=surveil && name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=psurveiloffsetplus4plusend]|mylibrary) moverandom(*[zpos<=psurveiloffsetplus4plusend]) from(mylibrary) to(mylibrary)])) ueot
auto=name(surveil) reveal:4 optionone name(put in graveyard) target(<upto:4>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<4>*|reveal) moveto(ownerlibrary) optiontwoend revealend auto=surveil && name(surveil) reveal:psurveiloffsetplus4plusend optionone name(put in graveyard) target(<upto:psurveiloffsetplus4plusend>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<psurveiloffsetplus4plusend>*|reveal) moveto(ownerlibrary) optiontwoend 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.) 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} mana={4}{U}{U}
type=Creature type=Creature
@@ -12715,6 +12844,14 @@ mana={2}{R}{R}
type=Sorcery type=Sorcery
[/card] [/card]
[card] [card]
name=Enhanced Surveillance
auto=altersurvoffset:2 controller
auto={E}:all(*|myGraveyard) moveto(myLibrary) and!(shuffle)!
text=You may look at an additional two cards each time you surveil. -- Exile Enhanced Surveillance: Shuffle your graveyard into your library.
mana={1}{U}
type=Enchantment
[/card]
[card]
name=Enigma Drake name=Enigma Drake
abilities=flying abilities=flying
auto=foreach(instant,sorcery|mygraveyard) 1/0 auto=foreach(instant,sorcery|mygraveyard) 1/0
@@ -12931,6 +13068,36 @@ power=3
toughness=5 toughness=5
[/card] [/card]
[card] [card]
name=Erratic Cyclops
abilities=trample
auto=@movedto(*[instant;sorcery;manacost=1]|mystack):all(this) 1/0 ueot
auto=@movedto(*[instant;sorcery;manacost=2]|mystack):all(this) 2/0 ueot
auto=@movedto(*[instant;sorcery;manacost=3]|mystack):all(this) 3/0 ueot
auto=@movedto(*[instant;sorcery;manacost=4]|mystack):all(this) 4/0 ueot
auto=@movedto(*[instant;sorcery;manacost=5]|mystack):all(this) 5/0 ueot
auto=@movedto(*[instant;sorcery;manacost=6]|mystack):all(this) 6/0 ueot
auto=@movedto(*[instant;sorcery;manacost=7]|mystack):all(this) 7/0 ueot
auto=@movedto(*[instant;sorcery;manacost=8]|mystack):all(this) 8/0 ueot
auto=@movedto(*[instant;sorcery;manacost=9]|mystack):all(this) 9/0 ueot
auto=@movedto(*[instant;sorcery;manacost=10]|mystack):all(this) 10/0 ueot
auto=@movedto(*[instant;sorcery;manacost=11]|mystack):all(this) 11/0 ueot
auto=@movedto(*[instant;sorcery;manacost=12]|mystack):all(this) 12/0 ueot
auto=@movedto(*[instant;sorcery;manacost=13]|mystack):all(this) 13/0 ueot
auto=@movedto(*[instant;sorcery;manacost=14]|mystack):all(this) 14/0 ueot
auto=@movedto(*[instant;sorcery;manacost=15]|mystack):all(this) 15/0 ueot
auto=@movedto(*[instant;sorcery;manacost=16]|mystack):all(this) 16/0 ueot
auto=@movedto(*[instant;sorcery;manacost=17]|mystack):all(this) 17/0 ueot
auto=@movedto(*[instant;sorcery;manacost=18]|mystack):all(this) 18/0 ueot
auto=@movedto(*[instant;sorcery;manacost=19]|mystack):all(this) 19/0 ueot
auto=@movedto(*[instant;sorcery;manacost=20]|mystack):all(this) 20/0 ueot
text=Trample -- Whenever you cast an instant or sorcery spell, Erratic Cyclops gets +X/+0 until end of turn, where X is that spell's converted mana cost.
mana={3}{R}
type=Creature
subtype=Cyclops Shaman
power=0
toughness=8
[/card]
[card]
name=Erratic Visionary name=Erratic Visionary
auto={1}{U}{T}:draw:1 && transforms((,newability[target(*|myhand) reject])) forever auto={1}{U}{T}:draw:1 && transforms((,newability[target(*|myhand) reject])) forever
text={1}{U}, {T}: Draw a card, then discard a card. text={1}{U}, {T}: Draw a card, then discard a card.
@@ -13321,6 +13488,16 @@ text={T}: Add one mana of any color that a land an opponent controls could produ
type=Land type=Land
[/card] [/card]
[card] [card]
name=Expansion // Explosion
other={X}{U}{U}{R}{R} name(Explosion)
auto=if paid(alternative) then choice name(Damage any target and you draw) damage:X target(player,creature) && draw:X controller
auto=if paid(alternative) then choice name(Damage any target and opponent draws) damage:X target(player,creature) && draw:X opponent
auto=ifnot paid(alternative) then name(copy spell) target(*[instant;sorcery;manacost<=4]|stack) castcard(copied noevent)
text=Copy target instant or sorcery spell with converted mana cost 4 or less. You may choose new targets for the copy. -- Explosion deals X damage to any target. Target player draws X cards.
mana={UR}{UR}
type=Instant
[/card]
[card]
name=Expedition Champion name=Expedition Champion
auto=aslongas(other creature[warrior]|myBattlefield) 2/0 auto=aslongas(other creature[warrior]|myBattlefield) 2/0
text=Expedition Champion gets +2/+0 as long as you control another warrior. text=Expedition Champion gets +2/+0 as long as you control another warrior.
@@ -17989,6 +18166,16 @@ mana={2}{B}
type=Sorcery type=Sorcery
[/card] [/card]
[card] [card]
name=Gruesome Menagerie
target=creature[manacost=1]|mygraveyard
auto=moveto(mybattlefield)
auto=ability$!name(Select creature with manacost 2) name(Select creature with manacost 2) moveto(mybattlefield) target(creature[manacost=2]|mygraveyard)!$ controller
auto=ability$!name(Select creature with manacost 3) name(Select creature with manacost 3) moveto(mybattlefield) target(creature[manacost=3]|mygraveyard)!$ controller
text=Choose a creature card with converted mana cost 1 in your graveyard, then do the same for creature cards with converted mana costs 2 and 3. Return those cards to the battlefield.
mana={3}{B}{B}
type=Sorcery
[/card]
[card]
name=Gruesome Scourger name=Gruesome Scourger
auto=damage:type:creature:mybattlefield target(planeswalker,opponent) auto=damage:type:creature:mybattlefield target(planeswalker,opponent)
text=When Gruesome Scourger enters the battlefield, it deals damage to target opponent or planeswalker equal to the number of creatures you control. text=When Gruesome Scourger enters the battlefield, it deals damage to target opponent or planeswalker equal to the number of creatures you control.
@@ -18115,6 +18302,17 @@ mana={2}{U}
type=Enchantment type=Enchantment
[/card] [/card]
[card] [card]
name=Guildmages' Forum
auto={T}:add{C}
auto={1}{T}:emblem transforms((,newability[add{W}],newability[@movedto(creature[multicolor]|mybattlefield) once:all(trigger) counter(1/1)])) ueot
auto={1}{T}:emblem transforms((,newability[add{U}],newability[@movedto(creature[multicolor]|mybattlefield) once:all(trigger) counter(1/1)])) ueot
auto={1}{T}:emblem transforms((,newability[add{R}],newability[@movedto(creature[multicolor]|mybattlefield) once:all(trigger) counter(1/1)])) ueot
auto={1}{T}:emblem transforms((,newability[add{G}],newability[@movedto(creature[multicolor]|mybattlefield) once:all(trigger) counter(1/1)])) ueot
auto={1}{T}:emblem transforms((,newability[add{B}],newability[@movedto(creature[multicolor]|mybattlefield) once:all(trigger) counter(1/1)])) ueot
text={T}: Add {C}. -- {1}, {T}: Add one mana of any color. If that mana is spent on a multicolored creature spell, that creature enters the battlefield with an additional +1/+1 counter on it.
type=Land
[/card]
[card]
name=Guildpact Informant name=Guildpact Informant
abilities=flying abilities=flying
auto=@combatdamaged(player,planeswalker) from(this):_PROLIFERATE_ auto=@combatdamaged(player,planeswalker) from(this):_PROLIFERATE_
@@ -18570,6 +18768,17 @@ type=Land
subtype=Desert subtype=Desert
[/card] [/card]
[card] [card]
name=Hatchery Spider
abilities=reach
auto=name(Reveal) reveal:type:creature:mygraveyard revealzone(mylibrary) optionone name(Get green permanent) target(*[green;creature;enchantment;planeswalker;manacost<=type:creature:mygraveyard]|reveal) moveto(mybattlefield) optiononeend optiontwo name(put on bottom) all(*|reveal) bottomoflibrary optiontwoend revealend
text=Reach -- Undergrowth — When you cast this spell, reveal the top X cards of your library, where X is the number of creature cards in your graveyard. You may put a green permanent card with converted mana cost X or less from among them onto the battlefield. Put the rest on the bottom of your library in a random order.
mana={5}{G}{G}
type=Creature
subtype=Spider
power=5
toughness=7
[/card]
[card]
name=Hate Mirage name=Hate Mirage
auto=clone with(treason,haste) target(<upto:2>creature|opponentbattlefield) auto=clone with(treason,haste) target(<upto:2>creature|opponentbattlefield)
text=Choose up to two target creatures you don't control. For each of those creatures, create a token that's a copy of that creature. Those tokens gain haste. Exile them at the beginning of the next end step. text=Choose up to two target creatures you don't control. For each of those creatures, create a token that's a copy of that creature. Those tokens gain haste. Exile them at the beginning of the next end step.
@@ -19658,8 +19867,8 @@ type=Sorcery
[card] [card]
name=House Guildmage name=House Guildmage
auto={1}{U}{T}:target(creature) freeze auto={1}{U}{T}:target(creature) freeze
auto={2}{B}{T}:name(surveil) reveal:2 optionone name(put in graveyard) target(<upto:2>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<2>*|reveal) moveto(ownerlibrary) optiontwoend revealend auto={2}{B}{T}:surveil && name(surveil) reveal:psurveiloffsetplus2plusend optionone name(put in graveyard) target(<upto:psurveiloffsetplus2plusend>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<psurveiloffsetplus2plusend>*|reveal) moveto(ownerlibrary) optiontwoend revealend
aicode=name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=2]|mylibrary) moverandom(*[zpos<=2]) from(mylibrary) to(mylibrary)])) ueot aicode=surveil && name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=psurveiloffsetplus2plusend]|mylibrary) moverandom(*[zpos<=psurveiloffsetplus2plusend]) from(mylibrary) to(mylibrary)])) ueot
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.) 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} mana={U}{B}
type=Creature type=Creature
@@ -20111,6 +20320,15 @@ power=2
toughness=1 toughness=1
[/card] [/card]
[card] [card]
name=Hypothesizzle
auto=draw:2 controller
auto=choice name(Discard and deal damage) ability$!name(Discard non-land card) notatarget(*[-land]|myhand) reject!$ controller && damage:4 target(creature)
auto=choice name(Don't discard) donothing
text=Draw two cards. Then you may discard a nonland card. When you do, Hypothesizzle deals 4 damage to target creature.
mana={3}{U}{R}
type=Instant
[/card]
[card]
name=Hyrax Tower Scout name=Hyrax Tower Scout
auto=untap target(creature) auto=untap target(creature)
text=When Hyrax Tower Scout enters the battlefield, untap target creature. text=When Hyrax Tower Scout enters the battlefield, untap target creature.
@@ -21194,6 +21412,16 @@ mana={2}{R}
type=Sorcery type=Sorcery
[/card] [/card]
[card] [card]
name=Integrity // Intervention
other={2}{R}{W} name(Intervention)
auto=ifnot paid(alternative) then target(creature) 2/2 ueot
auto=if paid(alternative) then life:3 controller
auto=if paid(alternative) then ability$!name(Choose one) choice name(Damage player) damage:3 target(player) _ choice name(Damage creature) damage:3 target(creature) _ choice name(Damage planeswalker) damage:3 target(planeswalker)!$ controller
text=Target creature gets +2/+2 until end of turn. -- Intervention deals 3 damage to any target and you gain 3 life.
mana={R or W}
type=Instant
[/card]
[card]
name=Intellectual Offering name=Intellectual Offering
auto=draw:3 all(player) auto=draw:3 all(player)
auto=untap all(*[-land]) auto=untap all(*[-land])
@@ -21280,6 +21508,15 @@ power=4
toughness=5 toughness=5
[/card] [/card]
[card] [card]
name=Invert // Invent
other={4}{U}{R} name(Invent)
auto=ifnot paid(alternative) then target(<upto:2>creature) transforms((,setpower=toughness,settoughness=power)) ueot
auto=if paid(alternative) then target(<upto:2>*[instant;sorcery]|myLibrary) moveTo(myHand) and!(shuffle)!
text=Switch the power and toughness of each of up to two target creatures until end of turn. -- Search your library for an instant card and/or a sorcery card, reveal them, put them into your hand, then shuffle your library.
mana={UR}
type=Instant
[/card]
[card]
name=Invigorated Rampage name=Invigorated Rampage
auto=choice name(One creature gets +4/0 and trample) target(creature) 4/0 ueot && trample ueot auto=choice name(One creature gets +4/0 and trample) target(creature) 4/0 ueot && trample ueot
auto=choice name(Two creature gets +2/0 and trample) target(<2>creature) 2/0 ueot && trample ueot auto=choice name(Two creature gets +2/0 and trample) target(<2>creature) 2/0 ueot && trample ueot
@@ -21480,6 +21717,13 @@ mana={W}
type=Instant type=Instant
[/card] [/card]
[card] [card]
name=Isolated Watchtower
auto={T}:add{C}
auto={2}{T}:scry:1 scrycore delayed target(land[zpos<=1]|mylibrary) moveto(mybattlefield) and!(tap(noevent))! scrycoreend scryend restriction{type(land|opponentbattlefield)~morethan~1}
text={T}: Add {C}. -- {2}, {T}: Scry 1, then you may reveal the top card of your library. If a basic land card is revealed this way, put it onto the battlefield tapped. Activate this ability only if an opponent controls at least two more lands than you.
type=Land
[/card]
[card]
name=Itlimoc, Cradle of the Sun name=Itlimoc, Cradle of the Sun
auto={T}:Add{G} auto={T}:Add{G}
auto={T}:foreach(creature|mybattlefield) add{G} auto={T}:foreach(creature|mybattlefield) add{G}
@@ -23116,6 +23360,17 @@ power=4
toughness=4 toughness=4
[/card] [/card]
[card] [card]
name=Kraul Harpooner
abilities=reach
auto=may name(Fight with flying creature) type:creature:mygraveyard/0 ueot && transforms((,newability[target(creature[flying]|opponentbattlefield) dynamicability<!powerstrike eachother!>])) ueot
text=Reach -- Undergrowth — When Kraul Harpooner enters the battlefield, choose up to one target creature with flying you don't control. Kraul Harpooner gets +X/+0 until end of turn, where X is the number of creature cards in your graveyard, then you may have Kraul Harpooner fight that creature.
mana={1}{G}
type=Creature
subtype=Insect Warrior
power=3
toughness=2
[/card]
[card]
name=Kraul Raider name=Kraul Raider
abilities=menace abilities=menace
text=Menace (This creature can't be blocked except by two or more creatures.) text=Menace (This creature can't be blocked except by two or more creatures.)
@@ -23547,6 +23802,18 @@ type=Enchantment
subtype=Aura subtype=Aura
[/card] [/card]
[card] [card]
name=Lazav, the Multifarious
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(<upto:psurveiloffsetplus1plusend>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<psurveiloffsetplus1plusend>*|reveal) moveto(ownerlibrary) optiontwoend revealend
auto={X}:target(creature[manacost<=X]|mygraveyard) copy and!( transforms((Legendary)) forever )!
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.
mana={U}{B}
type=Legendary Creature
subtype=Shapeshifter
power=1
toughness=3
[/card]
[card]
name=Lazotep Behemoth name=Lazotep Behemoth
mana={4}{B} mana={4}{B}
type=Creature type=Creature
@@ -23608,6 +23875,17 @@ power=1
toughness=1 toughness=1
[/card] [/card]
[card] [card]
name=League Guildmage
auto={3}{U}{T}:draw:1 controller
auto={X}{R}{T}:name(copy target instant or sorcery) name(copy target instant or sorcery) target(*[instant;sorcery;manacost<=X]|mystack) castcard(copied noevent)
text={3}{U},{T}: Draw a card. -- {X}{R}, {T}: Copy target instant or sorcery spell you control with converted mana cost X. You may choose new targets for the copy.
mana={U}{R}
type=Creature
subtype=Human Wizard
power=2
toughness=2
[/card]
[card]
name=Leap of Flame name=Leap of Flame
kicker=multi{U}{R} kicker=multi{U}{R}
auto=if compare(kicked)~equalto~0 then name(choose 1 creature) name(choose 1 creature) target(creature) transforms((,newability[flying],newability[first strike],newability[1/0])) ueot auto=if compare(kicked)~equalto~0 then name(choose 1 creature) name(choose 1 creature) target(creature) transforms((,newability[flying],newability[first strike],newability[1/0])) ueot
@@ -26106,8 +26384,8 @@ toughness=2
[card] [card]
name=Mephitic Vapors name=Mephitic Vapors
auto=all(creature) -1/-1 auto=all(creature) -1/-1
aicode=name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=2]|mylibrary) moverandom(*[zpos<=2]) from(mylibrary) to(mylibrary)])) ueot aicode=surveil && name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=psurveiloffsetplus2plusend]|mylibrary) moverandom(*[zpos<=psurveiloffsetplus2plusend]) from(mylibrary) to(mylibrary)])) ueot
auto=name(surveil) reveal:2 optionone name(put in graveyard) target(<upto:2>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<2>*|reveal) moveto(ownerlibrary) optiontwoend revealend auto=surveil && name(surveil) reveal:psurveiloffsetplus2plusend optionone name(put in graveyard) target(<upto:psurveiloffsetplus2plusend>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<psurveiloffsetplus2plusend>*|reveal) moveto(ownerlibrary) optiontwoend 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.) 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} mana={2}{B}
type=Sorcery type=Sorcery
@@ -26727,6 +27005,14 @@ text={T}: Add {3}. Spend this mana only to cast artifact spells.
type=Land type=Land
[/card] [/card]
[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(<upto:psurveiloffsetplus2plusend>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<psurveiloffsetplus2plusend>*|reveal) moveto(ownerlibrary) optiontwoend afterrevealed target(*[instant;sorcery;fresh]|mygraveyard) transforms((,newability[canplayfromgraveyard],newability[exiledeath])) ueot 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
[/card]
[card]
name=Mist-Cloaked Herald name=Mist-Cloaked Herald
abilities=unblockable abilities=unblockable
text=Mist-Cloaked Herald can't be blocked. text=Mist-Cloaked Herald can't be blocked.
@@ -26992,6 +27278,16 @@ mana={4}{G}
type=Sorcery type=Sorcery
[/card] [/card]
[card] [card]
name=Moodmark Painter
auto=target(creature) transforms((,newability[menace],newability[type:creature:mygraveyard/0])) ueot
text=Undergrowth — When Moodmark Painter enters the battlefield, target creature gains menace and gets +X/+0 until end of turn, where X is the number of creature cards in your graveyard. (It can't be blocked except by two or more creatures.)
mana={2}{B}{B}
type=Creature
subtype=Human Shaman
power=2
toughness=3
[/card]
[card]
name=Moon-Eating Dog name=Moon-Eating Dog
auto=aslongas(planeswalker[Yanling]|mybattlefield) flying auto=aslongas(planeswalker[Yanling]|mybattlefield) flying
text=As long as you control a Yanling planeswalker, Moon-Eating Dog has flying. (It can't be blocked except by creatures with flying or reach.) text=As long as you control a Yanling planeswalker, Moon-Eating Dog has flying. (It can't be blocked except by creatures with flying or reach.)
@@ -28074,6 +28370,15 @@ mana={1}{B}{B}
type=Sorcery type=Sorcery
[/card] [/card]
[card] [card]
name=Never Happened
aicode=activate moveto(exile) notatarget(*[-land]|opponentGraveyard,opponenthand)
auto=choice name(exile from hand) reveal:type:*:opponenthand revealzone(opponenthand) optionone name(choose to exile) notatarget(<1>*[-land]|reveal) transforms((,newability[moveto(ownerhand) all(other *|reveal)],newability[moveto(exile)])) ueot optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend
auto=choice name(exile from graveyard) moveto(exile) target(*[-land]|opponentGraveyard)
text=Target opponent reveals their hand. You choose a nonland card from that player's graveyard or hand and exile it.
mana={2}{B}
type=Sorcery
[/card]
[card]
name=New Frontiers name=New Frontiers
auto=thisforeach(X) ability$!notatarget(land|mylibrary) moveto(ownerhand) && tap!$ opponent auto=thisforeach(X) ability$!notatarget(land|mylibrary) moveto(ownerhand) && tap!$ opponent
auto=name(search basic lands) reveal:plibrarycount optionone name(choose card) target(<upto:prex>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 auto=name(search basic lands) reveal:plibrarycount optionone name(choose card) target(<upto:prex>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
@@ -28337,8 +28642,8 @@ toughness=3
[card] [card]
name=Nightveil Sprite name=Nightveil Sprite
abilities=flying abilities=flying
auto=@combat(attacking) source(this):name(surveil) reveal:1 optionone name(put in graveyard) target(<upto:1>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<1>*|reveal) moveto(ownerlibrary) optiontwoend revealend auto=@combat(attacking) source(this):surveil && name(surveil) reveal:psurveiloffsetplus1plusend optionone name(put in graveyard) target(<upto:psurveiloffsetplus1plusend>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<psurveiloffsetplus1plusend>*|reveal) moveto(ownerlibrary) optiontwoend revealend
aicode=name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=1]|mylibrary) moverandom(*[zpos<=1]) from(mylibrary) to(mylibrary)])) ueot aicode=surveil && name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=psurveiloffsetplus1plusend]|mylibrary) moverandom(*[zpos<=psurveiloffsetplus1plusend]) from(mylibrary) to(mylibrary)])) ueot
text=Flying -- Whenever Nightveil Sprite attacks, surveil 1. (Look at the top card of your library. You may put that card into your graveyard.) 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} mana={1}{U}
type=Creature type=Creature
@@ -28664,8 +28969,8 @@ type=Sorcery
[/card] [/card]
[card] [card]
name=Notion Rain name=Notion Rain
aicode=name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=2]|mylibrary) moverandom(*[zpos<=2]) from(mylibrary) to(mylibrary)])) ueot aicode=surveil && name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=psurveiloffsetplus2plusend]|mylibrary) moverandom(*[zpos<=psurveiloffsetplus2plusend]) from(mylibrary) to(mylibrary)])) ueot
auto=name(surveil) reveal:2 optionone name(put in graveyard) target(<upto:2>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<2>*|reveal) moveto(ownerlibrary) optiontwoend revealend auto=surveil && name(surveil) reveal:psurveiloffsetplus2plusend optionone name(put in graveyard) target(<upto:psurveiloffsetplus2plusend>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<psurveiloffsetplus2plusend2>*|reveal) moveto(ownerlibrary) optiontwoend revealend
auto=damage:2 auto=damage:2
auto=draw:2 auto=draw:2
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.) 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.)
@@ -28724,6 +29029,20 @@ mana={4}{B}{B}
type=Enchantment type=Enchantment
[/card] [/card]
[card] [card]
name=Nullhide Ferox
abilities=opponentshroud
auto=maxCast(*[-creature])0
auto={2}:transforms((,newability[loseabilities])) ueot
auto=foreach(land[-tapped]|opponentBattlefield) transforms((,newability[ability$!name(Pay 2) pay[[{2}]] name(Pay 2) loseabilities notatarget(Nullhide Ferox|opponentBattlefield)ueot?donothing!$ opponent])) forever
autograveyard=while(restriction{discardbyopponent}) moveto(ownerbattlefield)
text=Hexproof -- You can't cast noncreature spells. -- {2}: Nullhide Ferox loses all abilities until end of turn. Any player may activate this ability. -- If a spell or ability an opponent controls causes you to discard Nullhide Ferox, put it onto the battlefield instead of putting it into your graveyard.
mana={2}{G}{G}
type=Creature
subtype=Beast
power=6
toughness=6
[/card]
[card]
name=Nullpriest of Oblivion name=Nullpriest of Oblivion
abilities=menace,lifelink abilities=menace,lifelink
kicker={3}{B} kicker={3}{B}
@@ -31504,8 +31823,8 @@ other={1}{B} name(Target Legendary)
otherrestriction=type(creature[legendary]|battlefield)~morethan~0 otherrestriction=type(creature[legendary]|battlefield)~morethan~0
auto=if paid(alternative) then destroy target(creature[legendary]) auto=if paid(alternative) then destroy target(creature[legendary])
auto=ifnot paid(alternative) then destroy target(creature) auto=ifnot paid(alternative) then destroy target(creature)
aicode=name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=2]|mylibrary) moverandom(*[zpos<=2]) from(mylibrary) to(mylibrary)])) ueot aicode=surveil && name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=psurveiloffsetplus2plusend]|mylibrary) moverandom(*[zpos<=psurveiloffsetplus2plusend]) from(mylibrary) to(mylibrary)])) ueot
auto=name(surveil) reveal:2 optionone name(put in graveyard) target(<upto:2>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<2>*|reveal) moveto(ownerlibrary) optiontwoend revealend auto=surveil && name(surveil) reveal:psurveiloffsetplus2plusend optionone name(put in graveyard) target(<upto:psurveiloffsetplus2plusend>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<psurveiloffsetplus2plusend>*|reveal) moveto(ownerlibrary) optiontwoend revealend
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.) 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} mana={3}{B}
type=Instant type=Instant
@@ -33744,6 +34063,17 @@ power=2
toughness=2 toughness=2
[/card] [/card]
[card] [card]
name=Response // Resurgence
other={3}{R}{W} name(Resurgence)
otherrestriction=myturnonly
auto=if paid(alternative) then all(creature|mybattlefield) transforms((,newability[first strike],newability[vigilance])) ueot asSorcery
auto=if paid(alternative) then nextphasealter(add,combatphaseswithmain,controller,after<this>) asSorcery
auto=ifnot paid(alternative) then damage:5 target(creature[attacking;blocking])
text=Response deals 5 damage to target attacking or blocking creature. -- Creatures you control gain first strike and vigilance until end of turn. After this main phase, there is an additional combat phase followed by an additional main phase.
mana={R or W}{R or W}
type=Instant
[/card]
[card]
name=Restless Dreams name=Restless Dreams
auto=if type(*|myHand)~morethan~0 then choice ability$!name(X=1) target(*|myhand) reject!$ controller && moveto(myhand) target(*[creature]|mygraveyard) auto=if type(*|myHand)~morethan~0 then choice ability$!name(X=1) target(*|myhand) reject!$ controller && moveto(myhand) target(*[creature]|mygraveyard)
auto=if type(*|myHand)~morethan~1 then choice ability$!name(X=2) target(<2>*|myhand) reject!$ controller && moveto(myhand) target(<2>*[creature]|mygraveyard) auto=if type(*|myHand)~morethan~1 then choice ability$!name(X=2) target(<2>*|myhand) reject!$ controller && moveto(myhand) target(<2>*[creature]|mygraveyard)
@@ -34288,6 +34618,14 @@ power=2
toughness=2 toughness=2
[/card] [/card]
[card] [card]
name=Risk Factor
auto=ability$!name(Choose one) choice name(Damage 4) damage:4 controller _ choice name(Draw cards) draw:3 opponent!$ opponent
flashback={2}{R}{D(*|myhand)}
text=Target opponent may have Risk Factor deal 4 damage to them. If that player doesn't, you draw three cards. -- Jump-start (You may cast this card from your graveyard by discarding a card in addition to paying its other costs. Then exile this card.)
mana={2}{R}
type=Instant
[/card]
[card]
name=Rite of Belzenlok name=Rite of Belzenlok
auto=counter(0/0,1,Lore) auto=counter(0/0,1,Lore)
auto=@each my firstmain:counter(0/0,1,Lore) auto=@each my firstmain:counter(0/0,1,Lore)
@@ -36803,6 +37141,13 @@ power=0
toughness=0 toughness=0
[/card] [/card]
[card] [card]
name=Selective Snare
auto=chooseatype target(<prex>creature[chosentype]) moveto(ownerhand) chooseend
text=Return X target creatures of the creature type of your choice to their owner's hand.
mana={X}{U}
type=Sorcery
[/card]
[card]
name=Selesnya Eulogist name=Selesnya Eulogist
auto={2}{G}:target(creature|graveyard) moveto(exile) && ability$! name(populate) clone notatarget(creature[token]|mybattlefield) !$ controller auto={2}{G}:target(creature|graveyard) moveto(exile) && ability$! name(populate) clone notatarget(creature[token]|mybattlefield) !$ controller
text={2}{G}: Exile target creature card from a graveyard, then populate. (Create a token that's a copy of a creature token you control.) text={2}{G}: Exile target creature card from a graveyard, then populate. (Create a token that's a copy of a creature token you control.)
@@ -38418,8 +38763,8 @@ toughness=1
name=Sinister Sabotage name=Sinister Sabotage
target=*|stack target=*|stack
auto=fizzle auto=fizzle
aicode=name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=1]|mylibrary) moverandom(*[zpos<=1]) from(mylibrary) to(mylibrary)])) ueot aicode=surveil && name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=psurveiloffsetplus1plusend]|mylibrary) moverandom(*[zpos<=psurveiloffsetplus1plusend]) from(mylibrary) to(mylibrary)])) ueot
auto=name(surveil) reveal:1 optionone name(put in graveyard) target(<upto:1>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<1>*|reveal) moveto(ownerlibrary) optiontwoend revealend auto=surveil && name(surveil) reveal:psurveiloffsetplus1plusend optionone name(put in graveyard) target(<upto:psurveiloffsetplus1plusend>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<psurveiloffsetplus1plusend>*|reveal) moveto(ownerlibrary) optiontwoend revealend
text=Counter target spell. -- Surveil 1. (Look at the top card of your library. You may put that card into your graveyard.) 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} mana={1}{U}{U}
type=Instant type=Instant
@@ -41112,6 +41457,15 @@ mana={3}
type=Artifact type=Artifact
[/card] [/card]
[card] [card]
name=Status // Statue
other={2}{B}{G} name(Statue)
auto=if paid(alternative) then target(*[creature;artifact;enchantment]) destroy
auto=ifnot paid(alternative) then target(creature) transforms((,newability[1/1],newability[deathtouch])) ueot
text=Target creature gets +1/+1 and gains deathtouch until end of turn. -- Destroy target artifact, creature, or enchantment.
mana={BG}
type=Instant
[/card]
[card]
name=Staunch Shieldmate name=Staunch Shieldmate
mana={W} mana={W}
type=Creature type=Creature
@@ -44111,13 +44465,25 @@ type=Sorcery
name=Thought Erasure name=Thought Erasure
aicode=activate reject notatarget(*[-land]|opponenthand) 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 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=name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=1]|mylibrary) moverandom(*[zpos<=1]) from(mylibrary) to(mylibrary)])) ueot aicode=surveil && name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=psurveiloffsetplus1plusend]|mylibrary) moverandom(*[zpos<=psurveiloffsetplus1plusend]) from(mylibrary) to(mylibrary)])) ueot
auto=name(Reveal) reveal:1 optionone name(put in graveyard) target(<upto:1>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<1>*|reveal) moveto(ownerlibrary) optiontwoend revealend auto=surveil && name(surveil) reveal:psurveiloffsetplus1plusend optionone name(put in graveyard) target(<upto:psurveiloffsetplus1plusend>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<psurveiloffsetplus1plusend>*|reveal) moveto(ownerlibrary) optiontwoend revealend
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.) 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} mana={U}{B}
type=Sorcery type=Sorcery
[/card] [/card]
[card] [card]
name=Thoughtbound Phantasm
abilities=defender
auto=this(counter{1/1}>=3) canattack
auto=@surveiled(*|mybattlefield,mystack):all(this) counter(1/1)
text=Defender -- Whenever you surveil, put a +1/+1 counter on Thoughtbound Phantasm. -- As long as Thoughtbound Phantasm has three or more +1/+1 counters on it, it can attack as though it didn't have defender.
mana={U}
type=Creature
subtype=Spirit
power=2
toughness=2
[/card]
[card]
name=Thousand-Year Elixir name=Thousand-Year Elixir
auto=all(creature|mybattlefield) transforms((,newability[haste])) forever auto=all(creature|mybattlefield) transforms((,newability[haste])) forever
auto={1}{T}:target(creature) untap auto={1}{T}:target(creature) untap
@@ -44126,6 +44492,14 @@ mana={3}
type=Artifact type=Artifact
[/card] [/card]
[card] [card]
name=Thousand-Year Storm
auto=@movedTo(instant,sorcery|mystack):foreach(instant[fresh]|mygraveyard) all(trigger[to]) castcard(copied noevent)
auto=@movedTo(instant,sorcery|mystack):foreach(sorcery[fresh]|mygraveyard) all(trigger[to]) castcard(copied noevent)
text=Whenever you cast an instant or sorcery spell, copy it for each other instant and sorcery spell you've cast before it this turn. You may choose new targets for the copies.
mana={4}{U}{R}
type=Enchantment
[/card]
[card]
name=Thran Temporal Gateway name=Thran Temporal Gateway
auto={4}{T}:notatarget(*[artifact;legendary;saga]|myhand) moveTo(mybattlefield) auto={4}{T}:notatarget(*[artifact;legendary;saga]|myhand) moveTo(mybattlefield)
text={4}, {T}: You may put a historic permanent card from your hand onto the battlefield. (Artifacts, legendaries, and Sagas are historic.) text={4}, {T}: You may put a historic permanent card from your hand onto the battlefield. (Artifacts, legendaries, and Sagas are historic.)
@@ -46280,8 +46654,8 @@ type=Instant
name=Unexplained Disappearance name=Unexplained Disappearance
target=creature target=creature
auto=moveTo(ownerHand) auto=moveTo(ownerHand)
aicode=name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=1]|mylibrary) moverandom(*[zpos<=1]) from(mylibrary) to(mylibrary)])) ueot aicode=surveil && name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=psurveiloffsetplus1plusend]|mylibrary) moverandom(*[zpos<=psurveiloffsetplus1plusend]) from(mylibrary) to(mylibrary)])) ueot
auto=name(surveil) reveal:1 optionone name(put in graveyard) target(<upto:1>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<1>*|reveal) moveto(ownerlibrary) optiontwoend revealend auto=surveil && name(surveil) reveal:psurveiloffsetplus1plusend optionone name(put in graveyard) target(<upto:psurveiloffsetplus1plusend>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<psurveiloffsetplus1plusend>*|reveal) moveto(ownerlibrary) optiontwoend 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.) 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} mana={1}{U}
type=Instant type=Instant
@@ -46476,6 +46850,20 @@ mana={2}{U}
type=Instant type=Instant
[/card] [/card]
[card] [card]
name=Urban Utopia
target=land
auto=draw:1 controller
auto=teach(land) {T}:add{G}
auto=teach(land) {T}:add{W}
auto=teach(land) {T}:add{U}
auto=teach(land) {T}:add{R}
auto=teach(land) {T}:add{B}
text=Enchant land -- When Urban Utopia enters the battlefield, draw a card. -- Enchanted land has " {T}: Add one mana of any color."
mana={1}{G}
type=Enchantment
subtype=Aura
[/card]
[card]
name=Urborg Panther name=Urborg Panther
auto={B}{S}:destroy target(creature[blocking]) auto={B}{S}:destroy target(creature[blocking])
auto={S(*[Feral Shadow|mybattlefield)}{S(*[Breathstealer]|mybattlefield)}{S(*[Urborg Panther]|mybattlefield)}:name(search card) reveal:plibrarycount optionone name(choose card) target(*[Spirit of the Night]|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 auto={S(*[Feral Shadow|mybattlefield)}{S(*[Breathstealer]|mybattlefield)}{S(*[Urborg Panther]|mybattlefield)}:name(search card) reveal:plibrarycount optionone name(choose card) target(*[Spirit of the Night]|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
@@ -47404,6 +47792,15 @@ mana={1}{B}
type=Instant type=Instant
[/card] [/card]
[card] [card]
name=Vicious Rumors
auto=damage:1 opponent
auto=life:1 controller
auto=ability$!name(Discard a card) notatarget(*|myhand) reject!$ opponent
text=Vicious Rumors deals 1 damage to each opponent. Each opponent discards a card, then mills a card. You gain 1 life.
mana={B}
type=Sorcery
[/card]
[card]
name=Victimize name=Victimize
target=<2>*[creature]|mygraveyard target=<2>*[creature]|mygraveyard
auto=moveto(mybattlefield) and!(tap(noevent))! auto=moveto(mybattlefield) and!(tap(noevent))!
@@ -48133,6 +48530,16 @@ power=0
toughness=4 toughness=4
[/card] [/card]
[card] [card]
name=Wall of Mist
abilities=defender
text=Defender
mana={1}{U}
type=Creature
subtype=Wall
power=0
toughness=5
[/card]
[card]
name=Wall of One Thousand Cuts name=Wall of One Thousand Cuts
abilities=defender,flying abilities=defender,flying
auto={W}:canattack ueot auto={W}:canattack ueot
@@ -48418,8 +48825,8 @@ toughness=2
[card] [card]
name=Watcher in the Mist name=Watcher in the Mist
abilities=flying abilities=flying
aicode=name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=2]|mylibrary) moverandom(*[zpos<=2]) from(mylibrary) to(mylibrary)])) ueot aicode=surveil && name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=psurveiloffsetplus2plusend]|mylibrary) moverandom(*[zpos<=psurveiloffsetplus2plusend]) from(mylibrary) to(mylibrary)])) ueot
auto=name(surveil) reveal:2 optionone name(put in graveyard) target(<upto:2>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<2>*|reveal) moveto(ownerlibrary) optiontwoend revealend auto=surveil && name(surveil) reveal:psurveiloffsetplus2plusend optionone name(put in graveyard) target(<upto:psurveiloffsetplus2plusend>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<psurveiloffsetplus2plusend>*|reveal) moveto(ownerlibrary) optiontwoend 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.) 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} mana={3}{U}{U}
type=Creature type=Creature
@@ -48749,8 +49156,8 @@ type=Enchantment
[card] [card]
name=Whisper Agent name=Whisper Agent
abilities=flash abilities=flash
aicode=name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=1]|mylibrary) moverandom(*[zpos<=1]) from(mylibrary) to(mylibrary)])) ueot aicode=surveil && name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=psurveiloffsetplus1plusend]|mylibrary) moverandom(*[zpos<=psurveiloffsetplus1plusend]) from(mylibrary) to(mylibrary)])) ueot
auto=name(surveil) reveal:1 optionone name(put in graveyard) target(<upto:1>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<1>*|reveal) moveto(ownerlibrary) optiontwoend revealend auto=surveil && name(surveil) reveal:psurveiloffsetplus1plusend optionone name(put in graveyard) target(<upto:psurveiloffsetplus1plusend>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<psurveiloffsetplus1plusend>*|reveal) moveto(ownerlibrary) optiontwoend 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.) 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} mana={1}{UB}{UB}
type=Creature type=Creature
@@ -48780,6 +49187,16 @@ power=2
toughness=2 toughness=2
[/card] [/card]
[card] [card]
name=Whispering Snitch
auto=@surveiled(*|mybattlefield,mystack) turnlimited:damage:1 opponent && life:1 controller
text=Whenever you surveil for the first time each turn, Whispering Snitch deals 1 damage to each opponent and you gain 1 life.
mana={1}{B}
type=Creature
subtype=Vampire Rogue
power=1
toughness=3
[/card]
[card]
name=Whispersteel Dagger name=Whispersteel Dagger
auto={3}:equip auto={3}:equip
auto=teach(creature) 2/0 auto=teach(creature) 2/0
+3 -3
View File
@@ -1,6 +1,6 @@
#Primitives Pack for Wagic the Homebrew. #Primitives Pack for Wagic the Homebrew.
#Please keep these card alphabetized, and try to have the "name=" line at the top of each card #Please keep these card alphabetized, and try to have the "name=" line at the top of each card
#I sorted this programatically so the other comments are removed except for AUTO_DEFINE - kevlahnota 03-16-2017 #I sorted this programatically so the other comments are removed except for AUTO_DEFINE - Vitty85 12-10-2020
[card] [card]
name=Abandon Reason name=Abandon Reason
target=<upto:2>creature target=<upto:2>creature
@@ -68782,7 +68782,7 @@ toughness=3
[card] [card]
name=Luminarch Ascension name=Luminarch Ascension
auto=@each opponent end restriction{compare(lifelost)~lessthan~1}:may counter(0/0,1,Quest) auto=@each opponent end restriction{compare(lifelost)~lessthan~1}:may counter(0/0,1,Quest)
auto=this(counter{0/0.1.Quest}>=4) {1}{W}:token(Angel,Creature Angel,4/4,white flying) auto=this(counter{0/0.1.Quest}>=4) {1}{W}:token(Angel,Creature Angel,4/4,white,flying)
text=At the beginning of each opponent's end step, if you didn't lose life this turn, you may put a quest counter on Luminarch Ascension. (Damage causes loss of life.) -- {1}{W}: Put a 4/4 white Angel creature token with flying onto the battlefield. Activate this ability only if Luminarch Ascension has four or more quest counters on it. text=At the beginning of each opponent's end step, if you didn't lose life this turn, you may put a quest counter on Luminarch Ascension. (Damage causes loss of life.) -- {1}{W}: Put a 4/4 white Angel creature token with flying onto the battlefield. Activate this ability only if Luminarch Ascension has four or more quest counters on it.
mana={1}{W} mana={1}{W}
type=Enchantment type=Enchantment
@@ -104989,7 +104989,7 @@ subtype=Aura
[/card] [/card]
[card] [card]
name=Sigil of the Empty Throne name=Sigil of the Empty Throne
auto=@movedTo(enchantment|mystack):token(Angel,Creature Angel,4/4,white flying) auto=@movedTo(enchantment|mystack):token(Angel,Creature Angel,4/4,white,flying)
text=Whenever you cast an enchantment spell, put a 4/4 white Angel creature token with flying onto the battlefield. text=Whenever you cast an enchantment spell, put a 4/4 white Angel creature token with flying onto the battlefield.
mana={3}{W}{W} mana={3}{W}{W}
type=Enchantment type=Enchantment
@@ -1,7 +1,7 @@
grade=borderline grade=borderline
#Planeswalkers Primitives Pack for Wagic the Homebrew. #Planeswalkers Primitives Pack for Wagic the Homebrew.
#Please keep these card alphabetized, and try to have the "name=" line at the top of each card #Please keep these card alphabetized, and try to have the "name=" line at the top of each card
#We sorted this in alphabetical order - Luruz & Vitty85 09-08-2020 #We sorted this in alphabetical order - Luruz & Vitty85 12-10-2020
[card] [card]
primitive=Abian, Luvion Usurper primitive=Abian, Luvion Usurper
id=476217 id=476217
@@ -2,7 +2,7 @@ grade=unsupported
#The cards in this file are not implemented/incomplete yet. #The cards in this file are not implemented/incomplete yet.
#Updated Card lists not in primitives (Borderline, Crappy, Unsupported and Missing Cards up to Aether Revolt) as of 3/14/2017 #Updated Card lists not in primitives (Borderline, Crappy, Unsupported and Missing Cards up to Aether Revolt) as of 3/14/2017
#Please keep these card alphabetized, and try to have the "name=" line at the top of each card #Please keep these card alphabetized, and try to have the "name=" line at the top of each card
#I sorted this programatically - Vitty85 04-07-2020 #I sorted this programatically - Vitty85 12-10-2020
[card] [card]
name="Ach! Hans, Run!" name="Ach! Hans, Run!"
text=At the beginning of your upkeep, you may say "Ach Hans, run It's the . . ." and name a creature card. If you do, search your library for the named card, put it into play, then shuffle your library. That creature has haste. Remove it from the game at end of turn. text=At the beginning of your upkeep, you may say "Ach Hans, run It's the . . ." and name a creature card. If you do, search your library for the named card, put it into play, then shuffle your library. That creature has haste. Remove it from the game at end of turn.
@@ -64,6 +64,12 @@ mana={3}
type=Artifact type=Artifact
[/card] [/card]
[card] [card]
name=Aminatou's Augury
text=Exile the top eight cards of your library. You may put a land card from among them onto the battlefield. Until end of turn, for each nonland card type, you may cast a spell of that type from among the exiled cards without paying its mana cost.
mana={6}{U}{U}
type=Sorcery
[/card]
[card]
name=Absolver Thrull name=Absolver Thrull
text=Haunt (When this creature dies, exile it haunting target creature.) -- When Absolver Thrull enters the battlefield or the creature it haunts dies, destroy target enchantment. text=Haunt (When this creature dies, exile it haunting target creature.) -- When Absolver Thrull enters the battlefield or the creature it haunts dies, destroy target enchantment.
mana={3}{W} mana={3}{W}
@@ -194,6 +200,12 @@ power=2
toughness=2 toughness=2
[/card] [/card]
[card] [card]
name=Aethermage's Touch
text=Reveal the top four cards of your library. You may put a creature card from among them onto the battlefield. It gains "At the beginning of your end step, return this creature to its owner's hand." Then put the rest of the cards revealed this way on the bottom of your library in any order.
mana={2}{W}{U}
type=Instant
[/card]
[card]
name=Agent of Acquisitions name=Agent of Acquisitions
text=Draft Agent of Acquisitions face up. -- Instead of drafting a card from a booster pack, you may draft each card in that booster pack, one at a time. If you do, turn Agent of Acquisitions face down and you can't draft cards for the rest of this draft round. (You may look at booster packs passed to you.) text=Draft Agent of Acquisitions face up. -- Instead of drafting a card from a booster pack, you may draft each card in that booster pack, one at a time. If you do, turn Agent of Acquisitions face down and you can't draft cards for the rest of this draft round. (You may look at booster packs passed to you.)
mana={2} mana={2}
@@ -1341,6 +1353,15 @@ power=3
toughness=1 toughness=1
[/card] [/card]
[card] [card]
name=Boreas Charger
text=Flying -- When Boreas Charger leaves the battlefield, choose an opponent who controls more lands than you. Search your library for a number of Plains cards equal to the difference and reveal them. Put one of them onto the battlefield tapped and the rest into your hand. Then shuffle your library.
mana={2}{W}
type=Creature
subtype=Pegasus
power=2
toughness=1
[/card]
[card]
name=Boros Battleshaper name=Boros Battleshaper
text=At the beginning of each combat, up to one target creature attacks or blocks this combat if able and up to one target creature can't attack or block this combat. text=At the beginning of each combat, up to one target creature attacks or blocks this combat if able and up to one target creature can't attack or block this combat.
mana={5}{R}{W} mana={5}{R}{W}
@@ -3787,6 +3808,15 @@ power=0
toughness=1 toughness=1
[/card] [/card]
[card] [card]
name=Emissary of Grudges
text=Flying, haste -- As Emissary of Grudges enters the battlefield, secretly choose an opponent. -- Reveal the player you chose: Choose new targets for target spell or ability if it's controlled by the chosen player and if it targets you or a permanent you control. Activate this ability only once.
mana={5}{R}
type=Creature
subtype=Efreet
power=6
toughness=5
[/card]
[card]
name=Emissary's Ploy name=Emissary's Ploy
text=(Start the game with this conspiracy face up in the command zone.) -- Before drawing your opening hand, choose 1, 2, or 3. -- You may spend mana as though it were mana of any color to cast creature spells with converted mana cost equal to the chosen number. text=(Start the game with this conspiracy face up in the command zone.) -- Before drawing your opening hand, choose 1, 2, or 3. -- You may spend mana as though it were mana of any color to cast creature spells with converted mana cost equal to the chosen number.
type=Conspiracy type=Conspiracy
@@ -3811,6 +3841,12 @@ power=13
toughness=13 toughness=13
[/card] [/card]
[card] [card]
name=Enchanter's Bane
text=At the beginning of your end step, target enchantment deals damage equal to its converted mana cost to its controller unless that player sacrifices it.
mana={1}{R}
type=Enchantment
[/card]
[card]
name=Enchantment Alteration name=Enchantment Alteration
text=Attach target Aura attached to a creature or land to another permanent of that type. text=Attach target Aura attached to a creature or land to another permanent of that type.
mana={U} mana={U}
@@ -3981,6 +4017,15 @@ power=6
toughness=6 toughness=6
[/card] [/card]
[card] [card]
name=Etrata, the Silencer
text=Etrata, the Silencer can't be blocked. -- Whenever Etrata deals combat damage to a player, exile target creature that player controls and put a hit counter on that card. That player loses the game if they own three or more exiled cards with hit counters on them. Etrata's owner shuffles Etrata into their library.
mana={2}{U}{B}
type=Legendary Creature
subtype=Vampire Assassin
power=3
toughness=5
[/card]
[card]
name=Everdream name=Everdream
text=Draw a card. -- Splice onto instant or sorcery {2}{U} (As you cast an instant or sorcery spell, you may reveal this card from your hand and pay its splice cost. If you do, add this card's effects to that spell.) text=Draw a card. -- Splice onto instant or sorcery {2}{U} (As you cast an instant or sorcery spell, you may reveal this card from your hand and pay its splice cost. If you do, add this card's effects to that spell.)
mana={1}{U} mana={1}{U}
@@ -4569,6 +4614,11 @@ mana={5}
type=Artifact type=Artifact
[/card] [/card]
[card] [card]
name=Forge of Heroes
text={T}: Add {C}. -- {T}: Choose target commander that entered the battlefield this turn. Put a +1/+1 counter on it if it's a creature and a loyalty counter on it if it's a planeswalker.
type=Land
[/card]
[card]
name=Forgotten Lore name=Forgotten Lore
text=Target opponent chooses a card in your graveyard. You may pay {G}. If you do, repeat this process except that opponent can't choose a card already chosen for Forgotten Lore. Then put the last chosen card into your hand. text=Target opponent chooses a card in your graveyard. You may pay {G}. If you do, repeat this process except that opponent can't choose a card already chosen for Forgotten Lore. Then put the last chosen card into your hand.
mana={G} mana={G}
@@ -4899,6 +4949,12 @@ mana={3}
type=Artifact type=Artifact
[/card] [/card]
[card] [card]
name=Genesis Storm
text=When you cast this spell, copy it for each time you've cast your commander from the command zone this game. -- Reveal cards from the top of your library until you reveal a nonland permanent card. You may put that card onto the battlefield. Then put all cards revealed this way that weren't put onto the battlefield on the bottom of your library in a random order.
mana={4}{G}{G}
type=Sorcery
[/card]
[card]
name=Genetic Recombinator name=Genetic Recombinator
text=Whenever you crank Genetic Recombinator, up to two target creatures each get +2/+2 until end of turn. text=Whenever you crank Genetic Recombinator, up to two target creatures each get +2/+2 until end of turn.
type=Artifact type=Artifact
@@ -8782,6 +8838,12 @@ power=2
toughness=2 toughness=2
[/card] [/card]
[card] [card]
name=Mnemonic Betrayal
text=Exile all cards from all opponents' graveyards. You may cast spells from among those cards this turn, and you may spend mana as though it were mana of any type to cast those spells. At the beginning of the next end step, if any of those cards remain exiled, return them to their owners' graveyards. -- Exile Mnemonic Betrayal.
mana={1}{U}{B}
type=Sorcery
[/card]
[card]
name=Mob Mentality name=Mob Mentality
text=Enchant creature -- Enchanted creature has trample. -- Whenever all non-Wall creatures you control attack, enchanted creature gets +X/+0 until end of turn, where X is the number of attacking creatures. text=Enchant creature -- Enchanted creature has trample. -- Whenever all non-Wall creatures you control attack, enchanted creature gets +X/+0 until end of turn, where X is the number of attacking creatures.
mana={R} mana={R}
@@ -9102,6 +9164,12 @@ type=Enchantment
subtype=Aura subtype=Aura
[/card] [/card]
[card] [card]
name=Myth Unbound
text=Your commander costs {1} less to cast for each time it's been cast from the command zone this game. -- Whenever your commander is put into the command zone from anywhere, draw a card.
mana={2}{G}
type=Enchantment
[/card]
[card]
name=Mythos of Snapdax name=Mythos of Snapdax
text=Each player chooses an artifact, a creature, an enchantment, and a planeswalker from among the nonland permanents they control, then sacrifices the rest. If {B}{R} was spent to cast this spell, you choose the permanents for each player instead. text=Each player chooses an artifact, a creature, an enchantment, and a planeswalker from among the nonland permanents they control, then sacrifices the rest. If {B}{R} was spent to cast this spell, you choose the permanents for each player instead.
mana={2}{W}{W} mana={2}{W}{W}
@@ -9476,6 +9544,15 @@ power=1
toughness=1 toughness=1
[/card] [/card]
[card] [card]
name=Nylea's Colossus
text=Constellation — Whenever Nylea's Colossus or another enchantment enters the battlefield under your control, double target creature's power and toughness until end of turn.
mana={6}{G}
type=Enchantment Creature
subtype=Giant
power=6
toughness=6
[/card]
[card]
name=Oaken Brawler name=Oaken Brawler
text=When Oaken Brawler enters the battlefield, clash with an opponent. If you win, put a +1/+1 counter on Oaken Brawler. (Each clashing player reveals the top card of his or her library, then puts that card on the top or bottom. A player wins if his or her card had a higher converted mana cost.) text=When Oaken Brawler enters the battlefield, clash with an opponent. If you win, put a +1/+1 counter on Oaken Brawler. (Each clashing player reveals the top card of his or her library, then puts that card on the top or bottom. A player wins if his or her card had a higher converted mana cost.)
mana={3}{W} mana={3}{W}
@@ -10489,6 +10566,12 @@ mana={1}{R}
type=Sorcery type=Sorcery
[/card] [/card]
[card] [card]
name=Primordial Mist
text=At the beginning of your end step, you may manifest the top card of your library. (Put it onto the battlefield face down as a 2/2 creature. Turn it face up any time for its mana cost if it's a creature card.) -- Exile a face-down permanent you control face up: You may play that card this turn. (You still pay its costs. Timing rules still apply.)
mana={4}{U}
type=Enchantment
[/card]
[card]
name=Primordial Ooze name=Primordial Ooze
text=Primordial Ooze attacks each turn if able. -- At the beginning of your upkeep, put a +1/+1 counter on Primordial Ooze. Then you may pay {X}, where X is the number of +1/+1 counters on it. If you don't, tap Primordial Ooze and it deals X damage to you. text=Primordial Ooze attacks each turn if able. -- At the beginning of your upkeep, put a +1/+1 counter on Primordial Ooze. Then you may pay {X}, where X is the number of +1/+1 counters on it. If you don't, tap Primordial Ooze and it deals X damage to you.
mana={R} mana={R}
@@ -10951,6 +11034,12 @@ type=Enchantment
subtype=Aura subtype=Aura
[/card] [/card]
[card] [card]
name=Reality Scramble
text=Put target permanent you own on the bottom of your library. Reveal cards from the top of your library until you reveal a card that shares a card type with that permanent. Put that card onto the battlefield and the rest on the bottom of your library in a random order. -- Retrace (You may cast this card from your graveyard by discarding a land card in addition to paying its other costs.)
mana={2}{R}{R}
type=Sorcery
[/card]
[card]
name=Reality Shaping name=Reality Shaping
text=When you encounter Reality Shaping, starting with you, each player may put a permanent card from his or her hand onto the battlefield. (Then planeswalk away from this phenomenon.) text=When you encounter Reality Shaping, starting with you, each player may put a permanent card from his or her hand onto the battlefield. (Then planeswalk away from this phenomenon.)
type=Phenomenon type=Phenomenon
@@ -12338,6 +12427,12 @@ power=4
toughness=1 toughness=1
[/card] [/card]
[card] [card]
name=Skull Storm
text=When you cast this spell, copy it for each time you've cast your commander from the command zone this game. -- Each opponent sacrifices a creature. Each opponent who can't loses half their life, rounded up.
mana={7}{B}{B}
type=Sorcery
[/card]
[card]
name=Skullbriar, the Walking Grave name=Skullbriar, the Walking Grave
text=Haste -- Whenever Skullbriar, the Walking Grave deals combat damage to a player, put a +1/+1 counter on it. -- Counters remain on Skullbriar as it moves to any zone other than a player's hand or library. text=Haste -- Whenever Skullbriar, the Walking Grave deals combat damage to a player, put a +1/+1 counter on it. -- Counters remain on Skullbriar as it moves to any zone other than a player's hand or library.
mana={B}{G} mana={B}{G}
@@ -13623,6 +13718,15 @@ mana={4}
type=Artifact type=Artifact
[/card] [/card]
[card] [card]
name=Tawnos, Urza's Apprentice
text=Haste -- {U}{R}, {T}: Copy target activated or triggered ability you control from an artifact source. You may choose new targets for the copy. (Mana abilities can't be targeted.)
mana={U}{R}
type=Legendary Creature
subtype=Human Artificer
power=1
toughness=3
[/card]
[card]
name=Tayam, Luminous Enigma name=Tayam, Luminous Enigma
text=Each other creature you control enters the battlefield with an additional vigilance counter on it. -- {3}, Remove three counters from among creatures you control: Put the top three cards of your library into your graveyard, then return a permanent card with converted mana cost 3 or less from your graveyard to the battlefield. text=Each other creature you control enters the battlefield with an additional vigilance counter on it. -- {3}, Remove three counters from among creatures you control: Put the top three cards of your library into your graveyard, then return a permanent card with converted mana cost 3 or less from your graveyard to the battlefield.
mana={1}{W}{B}{G} mana={1}{W}{B}{G}
@@ -13919,6 +14023,16 @@ power=1
toughness=1 toughness=1
[/card] [/card]
[card] [card]
name=Thief of Sanity
abilities=flying
text=Flying -- Whenever Thief of Sanity deals combat damage to a player, look at the top three cards of that player's library, exile one of them face down, then put the rest into their graveyard. You may look at and cast that card for as long as it remains exiled, and you may spend mana as though it were mana of any type to cast that spell.
mana={1}{U}{B}
type=Creature
subtype=Specter
power=2
toughness=2
[/card]
[card]
name=Thieves' Auction name=Thieves' Auction
text=Exile all nontoken permanents. Starting with you, each player chooses one of the exiled cards and puts it onto the battlefield tapped under his or her control. Repeat this process until all cards exiled this way have been chosen. text=Exile all nontoken permanents. Starting with you, each player chooses one of the exiled cards and puts it onto the battlefield tapped under his or her control. Repeat this process until all cards exiled this way have been chosen.
mana={4}{R}{R}{R} mana={4}{R}{R}{R}
@@ -14498,6 +14612,12 @@ text=Black legendary creatures you control have "bands with other legendary crea
type=Land type=Land
[/card] [/card]
[card] [card]
name=Unmoored Ego
text=Choose a card name. Search target opponent's graveyard, hand, and library for up to four cards with that name and exile them. That player shuffles their library, then draws a card for each card exiled from their hand this way.
mana={1}{U}{B}
type=Sorcery
[/card]
[card]
name=Unpredictable Cyclone name=Unpredictable Cyclone
text=If a cycling ability of another nonland card would cause you to draw a card, instead exile cards from the top of your library until you exile a card that shares a card type with the cycled card. You may cast that card without paying its mana cost. Then put the exiled cards that weren't cast this way on the bottom of your library in a random order. -- Cycling {2} ({2}, Discard this card: Draw a card.) text=If a cycling ability of another nonland card would cause you to draw a card, instead exile cards from the top of your library until you exile a card that shares a card type with the cycled card. You may cast that card without paying its mana cost. Then put the exiled cards that weren't cast this way on the bottom of your library in a random order. -- Cycling {2} ({2}, Discard this card: Draw a card.)
mana={3}{R}{R} mana={3}{R}{R}
@@ -15499,6 +15619,15 @@ power=3
toughness=6 toughness=6
[/card] [/card]
[card] [card]
name=Yennett, Cryptic Sovereign
text=Flying, vigilance, menace -- Whenever Yennett, Cryptic Sovereign attacks, reveal the top card of your library. You may cast it without paying its mana cost if its converted mana cost is odd. If you don't cast it, draw a card.
mana={2}{W}{U}{B}
type=Legendary Creature
subtype=Sphinx
power=3
toughness=5
[/card]
[card]
name=Yet Another AEther Vortex name=Yet Another AEther Vortex
text=All creatures have haste. -- Players play with the top card of their libraries revealed. -- Noninstant, nonsorcery cards on top of a library are in play under their owner's control in addition to being in that library. text=All creatures have haste. -- Players play with the top card of their libraries revealed. -- Noninstant, nonsorcery cards on top of a library are in play under their owner's control in addition to being in that library.
mana={3}{R}{R} mana={3}{R}{R}
@@ -15554,6 +15683,15 @@ power=1
toughness=1 toughness=1
[/card] [/card]
[card] [card]
name=Yuriko, the Tiger's Shadow
text=Commander ninjutsu {U}{B} ({U}{B}, Return an unblocked attacker you control to hand: Put this card onto the battlefield from your hand or the command zone tapped and attacking.) -- Whenever a Ninja you control deals combat damage to a player, reveal the top card of your library and put that card into your hand. Each opponent loses life equal to that card's converted mana cost.
mana={1}{U}{B}
type=Legendary Creature
subtype=Human Ninja
power=1
toughness=3
[/card]
[card]
name=Zada, Hedron Grinder name=Zada, Hedron Grinder
text=Whenever you cast an instant or sorcery spell that targets only Zada, Hedron Grinder, copy that spell for each other creature you control that the spell could target. Each copy targets a different one of those creatures. text=Whenever you cast an instant or sorcery spell that targets only Zada, Hedron Grinder, copy that spell for each other creature you control that the spell could target. Each copy targets a different one of those creatures.
mana={3}{R} mana={3}{R}
+63 -2
View File
@@ -582,6 +582,10 @@ private:
{ {
intValue = (s == "pyidarocount")?card->controller()->yidaroCount:card->controller()->opponent()->yidaroCount; intValue = (s == "pyidarocount")?card->controller()->yidaroCount:card->controller()->opponent()->yidaroCount;
} }
else if (s == "psurveiloffset" || s == "osurveiloffset")
{
intValue = (s == "psurveiloffset")?card->controller()->surveilOffset:card->controller()->opponent()->surveilOffset;
}
else if (s == "praidcount") else if (s == "praidcount")
{ {
intValue = card->controller()->raidcount; intValue = card->controller()->raidcount;
@@ -1679,8 +1683,9 @@ public:
class TrCardMutated: public Trigger class TrCardMutated: public Trigger
{ {
public: public:
bool thiscontroller, thisopponent; bool limitOnceATurn;
TrCardMutated(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc,bool once = false) : int triggeredTurn;
TrCardMutated(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc,bool once = false,bool limitOnceATurn = false) :
Trigger(observer, id, source,once, tc) Trigger(observer, id, source,once, tc)
{ {
} }
@@ -1689,7 +1694,10 @@ public:
{ {
WEventCardMutated * e = dynamic_cast<WEventCardMutated *> (event); WEventCardMutated * e = dynamic_cast<WEventCardMutated *> (event);
if (!e) return 0; if (!e) return 0;
if (limitOnceATurn && triggeredTurn == game->turn)
return 0;
if (!tc->canTarget(e->card)) return 0; if (!tc->canTarget(e->card)) return 0;
triggeredTurn = game->turn;
return 1; return 1;
} }
@@ -1699,6 +1707,33 @@ public:
} }
}; };
class TrCardSurveiled: public Trigger
{
public:
bool limitOnceATurn;
int triggeredTurn;
TrCardSurveiled(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc,bool once = false,bool limitOnceATurn = false) :
Trigger(observer, id, source,once, tc),limitOnceATurn(limitOnceATurn)
{
}
int triggerOnEventImpl(WEvent * event)
{
WEventCardSurveiled * e = dynamic_cast<WEventCardSurveiled *> (event);
if (!e) return 0;
if (limitOnceATurn && triggeredTurn == game->turn)
return 0;
if (!tc->canTarget(e->card)) return 0;
triggeredTurn = game->turn;
return 1;
}
TrCardSurveiled * clone() const
{
return NEW TrCardSurveiled(*this);
}
};
class TrTokenCreated: public Trigger class TrTokenCreated: public Trigger
{ {
public: public:
@@ -4842,6 +4877,19 @@ public:
AAAlterEnergy * clone() const; AAAlterEnergy * clone() const;
~AAAlterEnergy(); ~AAAlterEnergy();
}; };
//Surveil Event
class AASurveilEvent: public ActivatedAbilityTP
{
public:
MTGCardInstance * card;
AASurveilEvent(GameObserver* observer, int _id, MTGCardInstance * _source, Targetable * _target, ManaCost * _cost = NULL,
int who = TargetChooser::UNSET);
int resolve();
const string getMenuText();
AASurveilEvent * clone() const;
~AASurveilEvent();
};
//Yidaro Counter //Yidaro Counter
class AAAlterYidaroCount: public ActivatedAbilityTP class AAAlterYidaroCount: public ActivatedAbilityTP
{ {
@@ -4855,6 +4903,19 @@ public:
AAAlterYidaroCount * clone() const; AAAlterYidaroCount * clone() const;
~AAAlterYidaroCount(); ~AAAlterYidaroCount();
}; };
//Surveil Offset
class AAAlterSurveilOffset: public ActivatedAbilityTP
{
public:
int surveilOffset;
AAAlterSurveilOffset(GameObserver* observer, int _id, MTGCardInstance * _source, Targetable * _target, int surveilOffset, ManaCost * _cost = NULL,
int who = TargetChooser::UNSET);
int resolve();
const string getMenuText();
AAAlterSurveilOffset * clone() const;
~AAAlterSurveilOffset();
};
/* Standard Damager, can choose a NEW target each time the price is paid */ /* Standard Damager, can choose a NEW target each time the price is paid */
class TADamager: public TargetAbility class TADamager: public TargetAbility
{ {
+1
View File
@@ -44,6 +44,7 @@ public:
int drawCounter; int drawCounter;
int energyCount; int energyCount;
int yidaroCount; int yidaroCount;
int surveilOffset;
int epic; int epic;
int forcefield; int forcefield;
int dealsdamagebycombat; int dealsdamagebycombat;
+6
View File
@@ -353,6 +353,12 @@ struct WEventplayerEnergized : public WEvent {
virtual Targetable * getTarget(Player * player); virtual Targetable * getTarget(Player * player);
}; };
//surveil event
struct WEventCardSurveiled : public WEventCardUpdate {
WEventCardSurveiled(MTGCardInstance * card);
virtual Targetable * getTarget(int target);
};
//mutation event //mutation event
struct WEventCardMutated : public WEventCardUpdate { struct WEventCardMutated : public WEventCardUpdate {
WEventCardMutated(MTGCardInstance * card); WEventCardMutated(MTGCardInstance * card);
+74
View File
@@ -1023,6 +1023,80 @@ AAAlterPoison::~AAAlterPoison()
{ {
} }
//AA Surveil Event
AASurveilEvent::AASurveilEvent(GameObserver* observer, int _id, MTGCardInstance * _source, Targetable * _target, ManaCost * _cost,
int who) :
ActivatedAbilityTP(observer, _id, _source, _target, _cost, who), card(_source)
{
}
int AASurveilEvent::resolve()
{
Damageable * _target = (Damageable *) getTarget();
if (_target)
{
Player * pTarget = (Player*)_target;
if(pTarget)
{
WEvent * e = NEW WEventCardSurveiled(card);
game->receiveEvent(e);
}
}
return 0;
}
const string AASurveilEvent::getMenuText()
{
return "Surveil event called";
}
AASurveilEvent * AASurveilEvent::clone() const
{
return NEW AASurveilEvent(*this);
}
AASurveilEvent::~AASurveilEvent()
{
}
//AA Surveil Offset
AAAlterSurveilOffset::AAAlterSurveilOffset(GameObserver* observer, int _id, MTGCardInstance * _source, Targetable * _target, int surveilOffset, ManaCost * _cost,
int who) :
ActivatedAbilityTP(observer, _id, _source, _target, _cost, who), surveilOffset(surveilOffset)
{
}
int AAAlterSurveilOffset::resolve()
{
Damageable * _target = (Damageable *) getTarget();
if (_target)
{
Player * pTarget = (Player*)_target;
if(pTarget)
{
pTarget->surveilOffset += surveilOffset;
if(pTarget->surveilOffset < 0)
pTarget->surveilOffset = 0;
}
}
return 0;
}
const string AAAlterSurveilOffset::getMenuText()
{
WParsedInt parsedNum(surveilOffset);
return _(parsedNum.getStringValue() + " Surveil Offset ").c_str();
}
AAAlterSurveilOffset * AAAlterSurveilOffset::clone() const
{
return NEW AAAlterSurveilOffset(*this);
}
AAAlterSurveilOffset::~AAAlterSurveilOffset()
{
}
//AA Yidaro Count //AA Yidaro Count
AAAlterYidaroCount::AAAlterYidaroCount(GameObserver* observer, int _id, MTGCardInstance * _source, Targetable * _target, int yidarocount, ManaCost * _cost, AAAlterYidaroCount::AAAlterYidaroCount(GameObserver* observer, int _id, MTGCardInstance * _source, Targetable * _target, int yidarocount, ManaCost * _cost,
int who) : int who) :
+27 -2
View File
@@ -1208,8 +1208,12 @@ TriggeredAbility * AbilityFactory::parseTrigger(string s, string, int id, Spell
//Card is mutated //Card is mutated
if (TargetChooser * tc = parseSimpleTC(s, "mutated", card)) if (TargetChooser * tc = parseSimpleTC(s, "mutated", card))
return NEW TrCardMutated(observer, id, card, tc,once); return NEW TrCardMutated(observer, id, card, tc,once,limitOnceATurn);
//Surveil has been performed from controller
if (TargetChooser * tc = parseSimpleTC(s, "surveiled", card))
return NEW TrCardSurveiled(observer, id, card, tc,once,limitOnceATurn);
//Token has been created //Token has been created
if (TargetChooser * tc = parseSimpleTC(s, "tokencreated", card)) if (TargetChooser * tc = parseSimpleTC(s, "tokencreated", card))
return NEW TrTokenCreated(observer, id, card, tc,once); return NEW TrTokenCreated(observer, id, card, tc,once);
@@ -3389,6 +3393,27 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG
card->mutation += atoi(splitMutatedUnder[1].c_str()); card->mutation += atoi(splitMutatedUnder[1].c_str());
} }
//perform surveil
found = s.find("surveil");
if (found != string::npos)
{
Targetable * t = spell ? spell->getNextTarget() : NULL;
MTGAbility * a = NEW AASurveilEvent(observer, id, card, t, NULL, who);
a->oneShot = 1;
return a;
}
//set surveil offset controller (eg. Enhanced Surveillance)
vector<string> splitSurveilOffset = parseBetween(s, "altersurvoffset:", " ", false);
if (splitSurveilOffset.size())
{
int surveilOffset = atoi(splitSurveilOffset[1].c_str());
Targetable * t = spell ? spell->getNextTarget() : NULL;
MTGAbility * a = NEW AAAlterSurveilOffset(observer, id, card, t, surveilOffset, NULL, who);
a->oneShot = 1;
return a;
}
//prevent next damage //prevent next damage
vector<string> splitPrevent = parseBetween(s, "prevent:", " ", false); vector<string> splitPrevent = parseBetween(s, "prevent:", " ", false);
if (splitPrevent.size()) if (splitPrevent.size())
+1
View File
@@ -36,6 +36,7 @@ Player::Player(GameObserver *observer, string file, string fileSmall, MTGDeck *
drawCounter = 0; drawCounter = 0;
energyCount = 0; energyCount = 0;
yidaroCount = 0; yidaroCount = 0;
surveilOffset = 0;
epic = 0; epic = 0;
forcefield = 0; forcefield = 0;
dealsdamagebycombat = 0; dealsdamagebycombat = 0;
+1
View File
@@ -598,6 +598,7 @@ void Rules::initGame(GameObserver *g, bool currentPlayerSet)
p->preventable = initState.playerData[i].player->preventable; p->preventable = initState.playerData[i].player->preventable;
p->energyCount = initState.playerData[i].player->energyCount; p->energyCount = initState.playerData[i].player->energyCount;
p->yidaroCount = initState.playerData[i].player->yidaroCount; p->yidaroCount = initState.playerData[i].player->yidaroCount;
p->surveilOffset = initState.playerData[i].player->surveilOffset;
if (initState.playerData[i].player->mAvatarName.size()) if (initState.playerData[i].player->mAvatarName.size())
{ {
p->mAvatarName = initState.playerData[i].player->mAvatarName; p->mAvatarName = initState.playerData[i].player->mAvatarName;
+11
View File
@@ -287,6 +287,11 @@ WEventplayerEnergized::WEventplayerEnergized(Player * player, int nb_count) :
{ {
} }
WEventCardSurveiled::WEventCardSurveiled(MTGCardInstance * card) :
WEventCardUpdate(card)
{
}
WEventCardMutated::WEventCardMutated(MTGCardInstance * card) : WEventCardMutated::WEventCardMutated(MTGCardInstance * card) :
WEventCardUpdate(card) WEventCardUpdate(card)
{ {
@@ -500,6 +505,12 @@ Targetable * WEventCardMutated::getTarget(int target)
return NULL; return NULL;
} }
Targetable * WEventCardSurveiled::getTarget(int target)
{
if (target) return card;
return NULL;
}
Targetable * WEventTokenCreated::getTarget(int target) Targetable * WEventTokenCreated::getTarget(int target)
{ {
if (target) return card; if (target) return card;