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
[/card]
[card]
primitive=Assemble
primitive=Assure // Assemble
id=452971
rarity=R
[/card]
[card]
primitive=Assure
id=452971
rarity=R
[/card]
[card]
primitive=Concoct
primitive=Connive // Concoct
id=452972
rarity=R
[/card]
[card]
primitive=Connive
id=452972
rarity=R
[/card]
[card]
primitive=Dispersal
primitive=Discovery // Dispersal
id=452973
rarity=U
[/card]
[card]
primitive=Discovery
id=452973
rarity=U
[/card]
[card]
primitive=Explosion
primitive=Expansion // Explosion
id=452974
rarity=R
[/card]
[card]
primitive=Expansion
id=452974
rarity=R
[/card]
[card]
primitive=Finality
id=452975
rarity=R
[/card]
[card]
primitive=Find
primitive=Find // Finality
id=452975
rarity=R
[/card]
@@ -1160,42 +1135,22 @@ id=452976
rarity=U
[/card]
[card]
primitive=Intervention
primitive=Integrity // Intervention
id=452977
rarity=U
[/card]
[card]
primitive=Integrity
id=452977
rarity=U
[/card]
[card]
primitive=Invent
primitive=Invert // Invent
id=452978
rarity=U
[/card]
[card]
primitive=Invert
id=452978
rarity=U
[/card]
[card]
primitive=Resurgence
primitive=Response // Resurgence
id=452979
rarity=R
[/card]
[card]
primitive=Response
id=452979
rarity=R
[/card]
[card]
primitive=Statue
id=452980
rarity=U
[/card]
[card]
primitive=Status
primitive=Status // Statue
id=452980
rarity=U
[/card]
@@ -1,7 +1,7 @@
grade=borderline
#Bordeline Primitives Pack for Wagic the Homebrew.
#Please keep these card alphabetized, and try to have the "name=" line at the top of each card
#I sorted this programatically - Vitty85 10-10-2020
#I sorted this programatically - Vitty85 12-10-2020
[card]
name=AEther Rift
auto=@each my upkeep:moverandom(*) from(myHand) to(myGraveyard)
@@ -381,6 +381,14 @@ power=2
toughness=3
[/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
target=*[red;green]|battlefield,stack
auto=transforms((,newability[Choice name(Top) moveto(library)],newability[Choice name(Bottom) bottomoflibrary])) controller
@@ -510,9 +518,8 @@ toughness=2
[/card]
[card]
name=Agonizing Remorse
target=opponent
aicode=activate moveto(exile) notatarget(*[-land]|targetedpersonshand)
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
aicode=activate moveto(exile) notatarget(*[-land]|opponenthand,opponentGraveyard)
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 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.
mana={1}{B}
@@ -2018,6 +2025,15 @@ mana={1}{B}{B}
type=Sorcery
[/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
abilities=flying
auto=@movedTo(*[artifact;legendary;saga]|mystack):scry:1 scrycore delayed dontshow donothing scrycoreend scryend
@@ -2168,6 +2184,15 @@ mana={R}
type=Sorcery
[/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
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}
@@ -2954,8 +2979,8 @@ type=Instant
[card]
name=Barrier of Bones
abilities=defender
aicode=name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=1]|mylibrary) moverandom(*[zpos<=1]) 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
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
text=Defender -- When Barrier of Bones enters the battlefield, surveil 1. (Look at the top card of your library. You may put that card into your graveyard.)
mana={B}
type=Creature
@@ -3183,6 +3208,26 @@ power=3
toughness=4
[/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
abilities=canplayfromexile,adventure
other={2}{G} name(Adventure)
@@ -4070,6 +4115,18 @@ power=4
toughness=3
[/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
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
@@ -6778,6 +6835,19 @@ power=2
toughness=2
[/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
auto=draw:2 controller
auto=if type(creature[attacking])~lessthan~1 then discard(*|myhand)
@@ -7076,8 +7146,8 @@ type=Sorcery
[card]
name=Citywatch Sphinx
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
aicode=name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=2]|mylibrary) moverandom(*[zpos<=2]) from(mylibrary) to(mylibrary)])) ueot
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=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.)
mana={5}{U}
type=Creature
@@ -7966,6 +8036,16 @@ power=4
toughness=4
[/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
auto={2}:equip
auto=aslongas(*[white]|myBattlefield) teach(creature) 1/1
@@ -9248,6 +9328,16 @@ power=2
toughness=2
[/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
target=creature
auto=indestructible
@@ -9440,8 +9530,8 @@ type=Instant
name=Dazzling Lights
target=creature
auto=-3/-0
aicode=name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=2]|mylibrary) moverandom(*[zpos<=2]) 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
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 revealend
text=Target creature gets -3/-0 until end of turn. -- Surveil 2. (Look at the top two cards of your library, then put any number of them into your graveyard and the rest on the top of your library in any order.)
mana={U}
type=Instant
@@ -9589,8 +9679,8 @@ type=Instant
name=Deadly Visit
target=creature
auto=destroy
aicode=name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=2]|mylibrary) moverandom(*[zpos<=2]) 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
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 revealend
text=Destroy target creature. -- Surveil 2. (Look at the top two cards of your library, then put any number of them into your graveyard and the rest on top of your library in any order.)
mana={3}{B}{B}
type=Sorcery
@@ -10568,8 +10658,8 @@ type=Instant
[/card]
[card]
name=Dimir Informant
aicode=name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=2]|mylibrary) moverandom(*[zpos<=2]) 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
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 revealend
text=When Dimir Informant enters the battlefield, surveil 2. (Look at the top two cards of your library, then put any number of them into your graveyard and the rest on the top of your library in any order.)
mana={2}{U}
type=Creature
@@ -10587,6 +10677,17 @@ mana={3}
type=Artifact
[/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
abilities=haste
type=Creature
@@ -10772,6 +10873,27 @@ power=2
toughness=1
[/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
target=artifact,enchantment
auto=destroy
@@ -10881,6 +11003,13 @@ mana={1}{W}
type=Instant
[/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
target=<upto:2>creature
auto=tap
@@ -10987,8 +11116,8 @@ type=Enchantment
[card]
name=Doom Whisperer
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
aicode=name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=2]|mylibrary) moverandom(*[zpos<=2]) from(mylibrary) to(mylibrary)])) ueot
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=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.)
mana={3}{B}{B}
type=Creature
@@ -11463,8 +11592,8 @@ subtype=Aura
name=Dream Eater
abilities=flash, flying
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
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
aicode=surveil && name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=psurveiloffsetplus4plusend]|mylibrary) moverandom(*[zpos<=psurveiloffsetplus4plusend]) from(mylibrary) to(mylibrary)])) ueot
auto=surveil && name(surveil) reveal:psurveiloffsetplus4plusend optionone name(put in graveyard) target(<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.)
mana={4}{U}{U}
type=Creature
@@ -12715,6 +12844,14 @@ mana={2}{R}{R}
type=Sorcery
[/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
abilities=flying
auto=foreach(instant,sorcery|mygraveyard) 1/0
@@ -12931,6 +13068,36 @@ power=3
toughness=5
[/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
auto={1}{U}{T}:draw:1 && transforms((,newability[target(*|myhand) reject])) forever
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
[/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
auto=aslongas(other creature[warrior]|myBattlefield) 2/0
text=Expedition Champion gets +2/+0 as long as you control another warrior.
@@ -17989,6 +18166,16 @@ mana={2}{B}
type=Sorcery
[/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
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.
@@ -18115,6 +18302,17 @@ mana={2}{U}
type=Enchantment
[/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
abilities=flying
auto=@combatdamaged(player,planeswalker) from(this):_PROLIFERATE_
@@ -18570,6 +18768,17 @@ type=Land
subtype=Desert
[/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
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.
@@ -19658,8 +19867,8 @@ type=Sorcery
[card]
name=House Guildmage
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
aicode=name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=2]|mylibrary) moverandom(*[zpos<=2]) from(mylibrary) to(mylibrary)])) ueot
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=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.)
mana={U}{B}
type=Creature
@@ -20111,6 +20320,15 @@ power=2
toughness=1
[/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
auto=untap target(creature)
text=When Hyrax Tower Scout enters the battlefield, untap target creature.
@@ -21194,6 +21412,16 @@ mana={2}{R}
type=Sorcery
[/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
auto=draw:3 all(player)
auto=untap all(*[-land])
@@ -21280,6 +21508,15 @@ power=4
toughness=5
[/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
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
@@ -21480,6 +21717,13 @@ mana={W}
type=Instant
[/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
auto={T}:Add{G}
auto={T}:foreach(creature|mybattlefield) add{G}
@@ -23116,6 +23360,17 @@ power=4
toughness=4
[/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
abilities=menace
text=Menace (This creature can't be blocked except by two or more creatures.)
@@ -23547,6 +23802,18 @@ type=Enchantment
subtype=Aura
[/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
mana={4}{B}
type=Creature
@@ -23608,6 +23875,17 @@ power=1
toughness=1
[/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
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
@@ -26106,8 +26384,8 @@ toughness=2
[card]
name=Mephitic Vapors
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
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
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 revealend
text=All creatures get -1/-1 until end of turn. -- Surveil 2. (Look at the top two cards of your library, then put any number of them into your graveyard and the rest on the top of your library in any order.)
mana={2}{B}
type=Sorcery
@@ -26727,6 +27005,14 @@ text={T}: Add {3}. Spend this mana only to cast artifact spells.
type=Land
[/card]
[card]
name=Mission Briefing
aicode=surveil && name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=psurveiloffsetplus2plusend]|mylibrary) moverandom(*[zpos<=psurveiloffsetplus2plusend]) from(mylibrary) to(mylibrary)])) ueot
auto=surveil && name(surveil) reveal:psurveiloffsetplus2plusend optionone name(put in graveyard) target(<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
abilities=unblockable
text=Mist-Cloaked Herald can't be blocked.
@@ -26992,6 +27278,16 @@ mana={4}{G}
type=Sorcery
[/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
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.)
@@ -28074,6 +28370,15 @@ mana={1}{B}{B}
type=Sorcery
[/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
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
@@ -28337,8 +28642,8 @@ toughness=3
[card]
name=Nightveil Sprite
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
aicode=name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=1]|mylibrary) moverandom(*[zpos<=1]) from(mylibrary) to(mylibrary)])) ueot
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=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.)
mana={1}{U}
type=Creature
@@ -28664,8 +28969,8 @@ type=Sorcery
[/card]
[card]
name=Notion Rain
aicode=name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=2]|mylibrary) moverandom(*[zpos<=2]) 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
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(<psurveiloffsetplus2plusend2>*|reveal) moveto(ownerlibrary) optiontwoend revealend
auto=damage: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.)
@@ -28724,6 +29029,20 @@ mana={4}{B}{B}
type=Enchantment
[/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
abilities=menace,lifelink
kicker={3}{B}
@@ -31504,8 +31823,8 @@ other={1}{B} name(Target Legendary)
otherrestriction=type(creature[legendary]|battlefield)~morethan~0
auto=if paid(alternative) then destroy target(creature[legendary])
auto=ifnot paid(alternative) then destroy target(creature)
aicode=name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=2]|mylibrary) moverandom(*[zpos<=2]) 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
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 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.)
mana={3}{B}
type=Instant
@@ -33744,6 +34063,17 @@ power=2
toughness=2
[/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
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)
@@ -34288,6 +34618,14 @@ power=2
toughness=2
[/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
auto=counter(0/0,1,Lore)
auto=@each my firstmain:counter(0/0,1,Lore)
@@ -36803,6 +37141,13 @@ power=0
toughness=0
[/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
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.)
@@ -38418,8 +38763,8 @@ toughness=1
name=Sinister Sabotage
target=*|stack
auto=fizzle
aicode=name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=1]|mylibrary) moverandom(*[zpos<=1]) 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
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
text=Counter target spell. -- Surveil 1. (Look at the top card of your library. You may put that card into your graveyard.)
mana={1}{U}{U}
type=Instant
@@ -41112,6 +41457,15 @@ mana={3}
type=Artifact
[/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
mana={W}
type=Creature
@@ -44111,13 +44465,25 @@ type=Sorcery
name=Thought Erasure
aicode=activate reject notatarget(*[-land]|opponenthand)
auto=reveal:type:*:opponenthand revealzone(opponenthand) optionone name(choose discards) notatarget(<1>*[-land]|reveal) transforms((,newability[moveto(ownerhand) all(other *|reveal)],newability[moveto(ownerhand) and!(reject)!])) ueot optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend
aicode=name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=1]|mylibrary) moverandom(*[zpos<=1]) 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
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
text=Target opponent reveals their hand. You choose a nonland card from it. That player discards that card. -- Surveil 1. (Look at the top card of your library. You may put it into your graveyard.)
mana={U}{B}
type=Sorcery
[/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
auto=all(creature|mybattlefield) transforms((,newability[haste])) forever
auto={1}{T}:target(creature) untap
@@ -44126,6 +44492,14 @@ mana={3}
type=Artifact
[/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
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.)
@@ -46280,8 +46654,8 @@ type=Instant
name=Unexplained Disappearance
target=creature
auto=moveTo(ownerHand)
aicode=name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=1]|mylibrary) moverandom(*[zpos<=1]) 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
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
text=Return target creature to its owner's hand. -- Surveil 1. (Look at the top card of your library. You may put that card into your graveyard.)
mana={1}{U}
type=Instant
@@ -46476,6 +46850,20 @@ mana={2}{U}
type=Instant
[/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
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
@@ -47404,6 +47792,15 @@ mana={1}{B}
type=Instant
[/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
target=<2>*[creature]|mygraveyard
auto=moveto(mybattlefield) and!(tap(noevent))!
@@ -48133,6 +48530,16 @@ power=0
toughness=4
[/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
abilities=defender,flying
auto={W}:canattack ueot
@@ -48418,8 +48825,8 @@ toughness=2
[card]
name=Watcher in the Mist
abilities=flying
aicode=name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=2]|mylibrary) moverandom(*[zpos<=2]) 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
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 revealend
text=Flying -- When Watcher in the Mist enters the battlefield, surveil 2. (Look at the top two cards of your library, then put any number of them into your graveyard and the rest on the top of your library in any order.)
mana={3}{U}{U}
type=Creature
@@ -48749,8 +49156,8 @@ type=Enchantment
[card]
name=Whisper Agent
abilities=flash
aicode=name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=1]|mylibrary) moverandom(*[zpos<=1]) 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
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
text=Flash -- When Whisper Agent enters the battlefield, surveil 1. (Look at the top card of your library. You may put it into your graveyard.)
mana={1}{UB}{UB}
type=Creature
@@ -48780,6 +49187,16 @@ power=2
toughness=2
[/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
auto={3}:equip
auto=teach(creature) 2/0
+3 -3
View File
@@ -1,6 +1,6 @@
#Primitives Pack for Wagic the Homebrew.
#Please keep these card alphabetized, and try to have the "name=" line at the top of each card
#I sorted this programatically so the other comments are removed except for AUTO_DEFINE - kevlahnota 03-16-2017
#I sorted this programatically so the other comments are removed except for AUTO_DEFINE - Vitty85 12-10-2020
[card]
name=Abandon Reason
target=<upto:2>creature
@@ -68782,7 +68782,7 @@ toughness=3
[card]
name=Luminarch Ascension
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.
mana={1}{W}
type=Enchantment
@@ -104989,7 +104989,7 @@ subtype=Aura
[/card]
[card]
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.
mana={3}{W}{W}
type=Enchantment
@@ -1,7 +1,7 @@
grade=borderline
#Planeswalkers Primitives Pack for Wagic the Homebrew.
#Please keep these card alphabetized, and try to have the "name=" line at the top of each card
#We sorted this in alphabetical order - Luruz & Vitty85 09-08-2020
#We sorted this in alphabetical order - Luruz & Vitty85 12-10-2020
[card]
primitive=Abian, Luvion Usurper
id=476217
@@ -2,7 +2,7 @@ grade=unsupported
#The cards in this file are not implemented/incomplete yet.
#Updated Card lists not in primitives (Borderline, Crappy, Unsupported and Missing Cards up to Aether Revolt) as of 3/14/2017
#Please keep these card alphabetized, and try to have the "name=" line at the top of each card
#I sorted this programatically - Vitty85 04-07-2020
#I sorted this programatically - Vitty85 12-10-2020
[card]
name="Ach! Hans, Run!"
text=At the beginning of your upkeep, you may say "Ach Hans, run It's the . . ." and name a creature card. If you do, search your library for the named card, put it into play, then shuffle your library. That creature has haste. Remove it from the game at end of turn.
@@ -64,6 +64,12 @@ mana={3}
type=Artifact
[/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
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}
@@ -194,6 +200,12 @@ power=2
toughness=2
[/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
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}
@@ -1341,6 +1353,15 @@ power=3
toughness=1
[/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
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}
@@ -3787,6 +3808,15 @@ power=0
toughness=1
[/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
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
@@ -3811,6 +3841,12 @@ power=13
toughness=13
[/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
text=Attach target Aura attached to a creature or land to another permanent of that type.
mana={U}
@@ -3981,6 +4017,15 @@ power=6
toughness=6
[/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
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}
@@ -4569,6 +4614,11 @@ mana={5}
type=Artifact
[/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
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}
@@ -4899,6 +4949,12 @@ mana={3}
type=Artifact
[/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
text=Whenever you crank Genetic Recombinator, up to two target creatures each get +2/+2 until end of turn.
type=Artifact
@@ -8782,6 +8838,12 @@ power=2
toughness=2
[/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
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}
@@ -9102,6 +9164,12 @@ type=Enchantment
subtype=Aura
[/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
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}
@@ -9476,6 +9544,15 @@ power=1
toughness=1
[/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
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}
@@ -10489,6 +10566,12 @@ mana={1}{R}
type=Sorcery
[/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
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}
@@ -10951,6 +11034,12 @@ type=Enchantment
subtype=Aura
[/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
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
@@ -12338,6 +12427,12 @@ power=4
toughness=1
[/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
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}
@@ -13623,6 +13718,15 @@ mana={4}
type=Artifact
[/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
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}
@@ -13919,6 +14023,16 @@ power=1
toughness=1
[/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
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}
@@ -14498,6 +14612,12 @@ text=Black legendary creatures you control have "bands with other legendary crea
type=Land
[/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
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}
@@ -15499,6 +15619,15 @@ power=3
toughness=6
[/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
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}
@@ -15554,6 +15683,15 @@ power=1
toughness=1
[/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
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}
+63 -2
View File
@@ -582,6 +582,10 @@ private:
{
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")
{
intValue = card->controller()->raidcount;
@@ -1679,8 +1683,9 @@ public:
class TrCardMutated: public Trigger
{
public:
bool thiscontroller, thisopponent;
TrCardMutated(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc,bool once = false) :
bool limitOnceATurn;
int triggeredTurn;
TrCardMutated(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc,bool once = false,bool limitOnceATurn = false) :
Trigger(observer, id, source,once, tc)
{
}
@@ -1689,7 +1694,10 @@ public:
{
WEventCardMutated * e = dynamic_cast<WEventCardMutated *> (event);
if (!e) return 0;
if (limitOnceATurn && triggeredTurn == game->turn)
return 0;
if (!tc->canTarget(e->card)) return 0;
triggeredTurn = game->turn;
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
{
public:
@@ -4842,6 +4877,19 @@ public:
AAAlterEnergy * clone() const;
~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
class AAAlterYidaroCount: public ActivatedAbilityTP
{
@@ -4855,6 +4903,19 @@ public:
AAAlterYidaroCount * clone() const;
~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 */
class TADamager: public TargetAbility
{
+1
View File
@@ -44,6 +44,7 @@ public:
int drawCounter;
int energyCount;
int yidaroCount;
int surveilOffset;
int epic;
int forcefield;
int dealsdamagebycombat;
+6
View File
@@ -353,6 +353,12 @@ struct WEventplayerEnergized : public WEvent {
virtual Targetable * getTarget(Player * player);
};
//surveil event
struct WEventCardSurveiled : public WEventCardUpdate {
WEventCardSurveiled(MTGCardInstance * card);
virtual Targetable * getTarget(int target);
};
//mutation event
struct WEventCardMutated : public WEventCardUpdate {
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
AAAlterYidaroCount::AAAlterYidaroCount(GameObserver* observer, int _id, MTGCardInstance * _source, Targetable * _target, int yidarocount, ManaCost * _cost,
int who) :
+27 -2
View File
@@ -1208,8 +1208,12 @@ TriggeredAbility * AbilityFactory::parseTrigger(string s, string, int id, Spell
//Card is mutated
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
if (TargetChooser * tc = parseSimpleTC(s, "tokencreated", card))
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());
}
//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
vector<string> splitPrevent = parseBetween(s, "prevent:", " ", false);
if (splitPrevent.size())
+1
View File
@@ -36,6 +36,7 @@ Player::Player(GameObserver *observer, string file, string fileSmall, MTGDeck *
drawCounter = 0;
energyCount = 0;
yidaroCount = 0;
surveilOffset = 0;
epic = 0;
forcefield = 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->energyCount = initState.playerData[i].player->energyCount;
p->yidaroCount = initState.playerData[i].player->yidaroCount;
p->surveilOffset = initState.playerData[i].player->surveilOffset;
if (initState.playerData[i].player->mAvatarName.size())
{
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) :
WEventCardUpdate(card)
{
@@ -500,6 +505,12 @@ Targetable * WEventCardMutated::getTarget(int target)
return NULL;
}
Targetable * WEventCardSurveiled::getTarget(int target)
{
if (target) return card;
return NULL;
}
Targetable * WEventTokenCreated::getTarget(int target)
{
if (target) return card;