Fixed several primitives, added a new Commander Deck for AI, Fixed an issue on "blink" return ability (e.g. "Otherworldly Journey"), improved "exerted" trigger adding "turnlimited" option, added a new keyword "losesatype" to remove a specific type from a card (e.g. "Conversion"), improved "vanishing", "fading" and "bloodthirst" keywords in order to allow the usage of variables (e.g. "Tidewalker"), added new triggers "poisonedof" and "poisonedfoeof" to handle the event when a player gets a poison counter, added new keywords "countershroud" to avoid a card can get any kind of counter, added new keywords "expshroud" and "energyshroud" to avoid a player can get one of those counters, added new option "uent" for "transforms" keyword ability to allow transformation effects end at the end of your next turn, fixed an issue on "swap" keyword when a non-creature card is firstly transformed into a creature (e.g. "Wandering Fumarole").

This commit is contained in:
Vittorio Alfieri
2021-12-18 13:45:58 +01:00
parent 8551f55636
commit 7fa03e620d
15 changed files with 655 additions and 332 deletions

View File

@@ -0,0 +1,97 @@
#NAME:Edgar Markov Commander
#DESC:Original Deck Concept by DespairFaction (tappedout.net)
#DESC:Designed for Wagic by Bob
#HINT:castpriority(commander,creature,*)
#HINT:alwaysattackwith(Edgar Markov)
Ancient Tomb (*) * 1
Asylum Visitor (*) * 1
Badlands (*) * 1
Basri's Solidarity (*) * 1
Bishop's Soldier (*) * 1
Blackcleave Cliffs (*) * 1
Blade of the Bloodchief (*) * 1
Blood Artist (*) * 1
Blood Burglar (*) * 1
Blood Crypt (*) * 1
Bloodfell Caves (*) * 1
Bloodline Keeper (*) * 1
Bloodmad Vampire (*) * 1
Bold Impaler (*) * 1
Captivating Vampire (*) * 1
Cathars' Crusade (*) * 1
Child of Night (*) * 1
Clifftop Retreat (*) * 1
Coat of Arms (*) * 1
Command Tower (*) * 1
Concealed Courtyard (*) * 1
Cordial Vampire (*) * 1
Crescendo of War (*) * 1
Dark Ritual (*) * 1
Dragonskull Summit (*) * 1
Drana, Liberator of Malakir (*) * 1
Duskborne Skymarcher (*) * 1
Elenda, the Dusk Rose (*) * 1
Exquisite Blood (*) * 1
Falkenrath Exterminator (*) * 1
Falkenrath Noble (*) * 1
Falkenrath Perforator (*) * 1
Fervor (*) * 1
Gift of Estates (*) * 1
Gifted Aetherborn (*) * 1
Godless Shrine (*) * 1
Guul Draz Assassin (*) * 1
Guul Draz Vampire (*) * 1
Impact Tremors (*) * 1
Inspiring Vantage (*) * 1
Iroas, God of Victory (*) * 1
Isolated Chapel (*) * 1
Knight of the Ebon Legion (*) * 1
Land Tax (*) * 1
Legion Lieutenant (*) * 1
Legion's Landing (*) * 1
Malakir Cullblade (*) * 1
Martyr of Dusk (*) * 1
Mountain (*) * 1
Necropolis Regent (*) * 1
Nomad Outpost (*) * 1
Nullpriest of Oblivion (*) * 1
Orcish Oriflamme (EMA) (*) * 1
Path of Ancestry (*) * 1
Path of Bravery (*) * 1
Plains (*) * 3
Plateau (*) * 1
Pulse Tracker (*) * 1
Purphoros, God of the Forge (*) * 1
Quag Vampires (*) * 1
Ruthless Cullblade (*) * 1
Sacred Foundry (*) * 1
Sanctum Seeker (*) * 1
Scoured Barrens (*) * 1
Scrubland (*) * 1
Shadow Alley Denizen (*) * 1
Skyblade of the Legion (*) * 1
Skymarcher Aspirant (*) * 1
Smoldering Marsh (*) * 1
Sol Ring (*) * 1
Stensia Masquerade (*) * 1
Stromkirk Captain (*) * 1
Stromkirk Noble (*) * 1
Swamp (ICE) (*) * 4
Swamp (MIR) (*) * 4
Swamp (M20) (*) * 2
Throne of the God-Pharaoh (*) * 1
Tithe (*) * 1
Unholy Officiant (*) * 1
Urborg, Tomb of Yawgmoth (*) * 1
Vampire Cutthroat (*) * 1
Vampire Interloper (*) * 1
Vampire Lacerator (*) * 1
Vampire Neonate (*) * 1
Vampire of the Dire Moon (*) * 1
Vampire Socialite (*) * 1
Vicious Conquistador (*) * 1
Vito, Thorn of the Dusk Rose (*) * 1
Voldaren Stinger (*) * 1
Whispersilk Cloak (*) * 1
Wing-Scarred Crag (*) * 1
#CMD:Edgar Markov (*) * 1

View File

@@ -114,7 +114,7 @@ type=Instant
[/card]
[card]
name=Abu Ja'far
auto=_DIES_bury all(creature[blocking;blocked])
auto=_DIES_may name(Destroy blocked or blocking creatures) bury target(<anyamount>creature[blocking;blocked]|opponentBattlefield)
text=When Abu Ja'far dies, destroy all creatures blocking or blocked by it. They can't be regenerated.
mana={W}
type=Creature
@@ -124,7 +124,7 @@ toughness=1
[/card]
[card]
name=Abu Jafar
auto=_DIES_bury all(creature[blocking;blocked])
auto=_DIES_may name(Destroy blocked or blocking creatures) bury target(<anyamount>creature[blocking;blocked]|opponentBattlefield)
text=When Abu Ja'far dies, destroy all creatures blocking or blocked by it. They can't be regenerated.
mana={W}
type=Creature
@@ -2303,7 +2303,7 @@ toughness=10
[/card]
[card]
name=Apex Devastator
autostack=if casted(this) then activate choice cascade:plibrarycount && activate choice cascade:plibrarycount && activate choice cascade:plibrarycount && activate choice cascade:plibrarycount
autostack=if casted(this) then cascade:plibrarycount && cascade:plibrarycount && cascade:plibrarycount && cascade:plibrarycount
text=Cascade, cascade, cascade, cascade (When you cast this spell, exile cards from the top of your library until you exile a nonland card that costs less. You may cast it without paying its mana cost. Put the exiled cards on the bottom of your library in a random order. Multiple instances of cascade each trigger separately.)
mana={8}{G}{G}
type=Creature
@@ -2313,18 +2313,12 @@ toughness=10
[/card]
[card]
name=Apex of Power
autohand={7}{R}{R}{R}:name(Cast from hand and add 10 white mana) name(Cast from hand and add 10 white mana) add{W}{W}{W}{W}{W}{W}{W}{W}{W}{W} controller && target(Apex of Power|myhand) activate castcard(restricted)
autohand={7}{R}{R}{R}:name(Cast from hand and add 10 black mana) name(Cast from hand and add 10 black mana) add{B}{B}{B}{B}{B}{B}{B}{B}{B}{B} controller && target(Apex of Power|myhand) activate castcard(restricted)
autohand={7}{R}{R}{R}:name(Cast from hand and add 10 blue mana) name(Cast from hand and add 10 blue mana) add{U}{U}{U}{U}{U}{U}{U}{U}{U}{U} controller && target(Apex of Power|myhand) activate castcard(restricted)
autohand={7}{R}{R}{R}:name(Cast from hand and add 10 green mana) name(Cast from hand and add 10 green mana) add{G}{G}{G}{G}{G}{G}{G}{G}{G}{G} controller && target(Apex of Power|myhand) activate castcard(restricted)
autohand={7}{R}{R}{R}:name(Cast from hand and add 10 red mana) name(Cast from hand and add 10 red mana) add{R}{R}{R}{R}{R}{R}{R}{R}{R}{R} controller && target(Apex of Power|myhand) activate castcard(restricted)
auto=if type(land[zpos=1]|mylibrary)~equalto~1 then all(*[zpos=1|mylibrary) moveto(exile) else all(*[zpos=1|mylibrary) moveto(exile) and!( transforms((,canplayfromexile)) ueot )!
auto=if type(land[zpos=2]|mylibrary)~equalto~1 then all(*[zpos=2|mylibrary) moveto(exile) else all(*[zpos=2|mylibrary) moveto(exile) and!( transforms((,canplayfromexile)) ueot )!
auto=if type(land[zpos=3]|mylibrary)~equalto~1 then all(*[zpos=3|mylibrary) moveto(exile) else all(*[zpos=3|mylibrary) moveto(exile) and!( transforms((,canplayfromexile)) ueot )!
auto=if type(land[zpos=4]|mylibrary)~equalto~1 then all(*[zpos=4|mylibrary) moveto(exile) else all(*[zpos=4|mylibrary) moveto(exile) and!( transforms((,canplayfromexile)) ueot )!
auto=if type(land[zpos=5]|mylibrary)~equalto~1 then all(*[zpos=5|mylibrary) moveto(exile) else all(*[zpos=5|mylibrary) moveto(exile) and!( transforms((,canplayfromexile)) ueot )!
auto=if type(land[zpos=6]|mylibrary)~equalto~1 then all(*[zpos=6|mylibrary) moveto(exile) else all(*[zpos=6|mylibrary) moveto(exile) and!( transforms((,canplayfromexile)) ueot )!
auto=if type(land[zpos=7]|mylibrary)~equalto~1 then all(*[zpos=7|mylibrary) moveto(exile) else all(*[zpos=7|mylibrary) moveto(exile) and!( transforms((,canplayfromexile)) ueot )!
auto=if casted(this) then choice name(Add 10 white mana) name(Add 10 white mana) add{W}{W}{W}{W}{W}{W}{W}{W}{W}{W} controller
auto=if casted(this) then choice name(Add 10 black mana) name(Add 10 black mana) add{B}{B}{B}{B}{B}{B}{B}{B}{B}{B} controller
auto=if casted(this) then choice name(Add 10 blue mana) name(Add 10 blue mana) add{U}{U}{U}{U}{U}{U}{U}{U}{U}{U} controller
auto=if casted(this) then choice name(Add 10 green mana) name(Add 10 green mana) add{G}{G}{G}{G}{G}{G}{G}{G}{G}{G} controller
auto=if casted(this) then choice name(Add 10 red mana) name(Add 10 red mana) add{R}{R}{R}{R}{R}{R}{R}{R}{R}{R} controller
auto=all(*[zpos<=7]|mylibrary) moveto(exile) and!( if cantargetcard(*[-land]|*) then transforms((,newability[canplayfromexile])) ueot )!
text=Exile the top seven cards of your library. Until end of turn, you may cast spells from among them. -- If this spell was cast from your hand, add ten mana of any one color.
mana={7}{R}{R}{R}
type=Sorcery
@@ -2399,7 +2393,10 @@ toughness=4
[/card]
[card]
name=Approach of the Second Sun
auto=if compare(oyidarocount)~morethan~0 then winGame else alteryidarocount:1 opponent && life:7 controller && all(this) placefromthetop(7)
auto=if casted(this) then if compare(oyidarocount)~morethan~0 then name(You win the game) name(You win the game) name(You win the game) winGame controller
auto=if casted(this) then if compare(oyidarocount)~equalto~0 then name(Gain 7 life) name(Gain 7 life) name(Gain 7 life) life:7 controller
auto=if casted(this) then if compare(oyidarocount)~equalto~0 then name(Put seventh from the top) name(Put seventh from the top) name(Put seventh from the top) all(this|mystack) placefromthetop(7)
auto=if casted(this) then if compare(oyidarocount)~equalto~0 then name(Increase the counter) name(Increase the counter) name(Increase the counter) alteryidarocount:1 opponent
text=If this spell was cast from your hand and you've cast another spell named Approach of the Second Sun this game, you win the game. Otherwise, put Approach of the Second Sun into its owner's library seventh from the top and you gain 7 life.
mana={6}{W}
type=Sorcery
@@ -3046,7 +3043,11 @@ toughness=4
[card]
name=Archon of Valor's Reach
abilities=flying,vigilance,trample
auto=chooseatype transforms((,newability[maxCast(*[chosentype])0 controller],newability[maxCast(*[chosentype])0 opponent])) chooseend
auto=choice name(Choose artifact) transforms((,newability[maxCast(*[artifact])0 controller],newability[maxCast(*[artifact])0 opponent])) forever
auto=choice name(Choose enchantment) transforms((,newability[maxCast(*[enchantment])0 controller],newability[maxCast(*[enchantment])0 opponent])) forever
auto=choice name(Choose instant) transforms((,newability[maxCast(*[instant])0 controller],newability[maxCast(*[instant])0 opponent])) forever
auto=choice name(Choose sorcery) transforms((,newability[maxCast(*[sorcery])0 controller],newability[maxCast(*[sorcery])0 opponent])) forever
auto=choice name(Choose planeswalker) transforms((,newability[maxCast(*[planeswalker])0 controller],newability[maxCast(*[planeswalker])0 opponent])) forever
text=Flying, vigilance, trample -- As Archon of Valor's Reach enters the battlefield, choose artifact, enchantment, instant, sorcery, or planeswalker. -- Players can't cast spells of the chosen type.
mana={4}{G}{W}
type=Creature
@@ -3145,7 +3146,8 @@ toughness=2
[card]
name=Ardenn, Intrepid Archaeologist
abilities=partner
auto=@each my combatbegins:may target(<anyamount>equipment|battlefield) rehook
auto=@each my combatbegins:may name(Attach any equipment) target(<anyamount>equipment|mybattlefield) transforms((,newability[name(Equip a creature) rehook target(creature|myBattlefield)])) oneshot
auto=@each my combatbegins:may name(Attach any aura) target(<anyamount>aura|mybattlefield) moveto(myreveal) and!( moveto(myBattlefield) )!
text=At the beginning of combat on your turn, you may attach any number of Auras and Equipment you control to target permanent or player. -- Partner (You can have two commanders if both have partner.)
mana={2}{W}
type=Legendary Creature
@@ -5899,12 +5901,12 @@ toughness=1
[/card]
[card]
name=Benthic Explorers
auto=this(variable{olandg}>0) {Q(land[manag]|opponentbattlefield)}{T}:Add{G}
auto=this(variable{olandu}>0) {Q(land[manau]|opponentbattlefield)}{T}:Add{U}
auto=this(variable{olandr}>0) {Q(land[manar]|opponentbattlefield)}{T}:Add{R}
auto=this(variable{olandb}>0) {Q(land[manab]|opponentbattlefield)}{T}:Add{B}
auto=this(variable{olandw}>0) {Q(land[manaw]|opponentbattlefield)}{T}:Add{W}
auto=this(variable{olandc}>0) {Q(land[cmana]|opponentbattlefield)}{T}:Add{C}
auto=this(variable{olandg}>0) {T}:name(Untap green) name(Untap green) untap target(land[tapped]|opponentbattlefield) && add{G} controller
auto=this(variable{olandu}>0) {T}:name(Untap blue) name(Untap blue) untap target(land[tapped]|opponentbattlefield) && add{U} controller
auto=this(variable{olandr}>0) {T}:name(Untap red) name(Untap red) untap target(land[tapped]|opponentbattlefield) && add{R} controller
auto=this(variable{olandb}>0) {T}:name(Untap black) name(Untap black) untap target(land[tapped]|opponentbattlefield) && add{B} controller
auto=this(variable{olandw}>0) {T}:name(Untap white) name(Untap white) untap target(land[tapped]|opponentbattlefield) && add{W} controller
auto=this(variable{olandc}>0) {T}:name(Untap colorless) name(Untap colorless) untap target(land[tapped]|opponentbattlefield) && add{C} controller
text={T}, Untap a tapped land an opponent controls: Add one mana of any type that land could produce to your mana pool.
mana={3}{U}
type=Creature
@@ -6809,11 +6811,13 @@ type=Instant
[/card]
[card]
name=Blinding Beam
target=player
other={3}{W} name(Entwine)
auto=if paid(alternative) then target(<2>creature) tap(noevent) && lord(creature|targetedpersonsbattlefield) frozen
auto=ifnot paid(alternative) then transforms((,newability[choice target(<2>creature) tap(noevent)],newability[choice lord(creature|targetedpersonsbattlefield) frozen]))
text=Choose one Tap two target creatures; or creatures don't untap during target player's next untap step. -- Entwine {1} (Choose both if you pay the entwine cost.)
auto=ifnot paid(alternative) then choice name(Tap 2 creatures) name(Tap 2 creatures) target(<2>creature|battlefield) tap(noevent)
auto=ifnot paid(alternative) then choice name(Opponent creatures don't untap) name(Opponent creatures don't untap) all(creature|opponentbattlefield) frozen
auto=ifnot paid(alternative) then choice name(Your creatures don't untap) name(Your creatures don't untap) all(creature|myBattlefield) frozen
auto=if paid(alternative) then name(Tap 2 creatures) name(Tap 2 creatures) target(<2>creature|battlefield) tap(noevent)
auto=if paid(alternative) then name(Creatures don't untap) name(Creatures don't untap) transforms((,newability[choice name(Opponent creatures does not untap) name(Opponent creatures don't untap) all(creature|opponentbattlefield) frozen],newability[choice name(Your creatures don't untap) all(creature|myBattlefield) frozen])) ueot
text=Choose one - Tap two target creatures. - Creatures don't untap during target player's next untap step -- Entwine 1 (Choose both if you pay the entwine cost.)
mana={2}{W}
type=Instant
[/card]
@@ -6924,7 +6928,7 @@ type=Snow Sorcery
[card]
name=Blizzard Strix
abilities=flash,flying
auto=restriction type(other *[snow]|mybattlefield)~morethan~0 moveTo(exile) target(other *|battlefield) && (blink)ueot target(other *|battlefield)
auto=if type(*[snow]|mybattlefield)~morethan~1 then name(Exile a permanent) name(Exile a permanent) target(other *|battlefield) (blink)ueot
text=Flash -- Flying -- When Blizzard Strix enters the battlefield, if you control another snow permanent, exile target permanent other than Blizzard Strix. Return that card to the battlefield under its owner's control at the beginning of the next end step.
mana={4}{U}
type=Snow Creature
@@ -7285,7 +7289,7 @@ toughness=1
[/card]
[card]
name=Bloodmist Infiltrator
auto=_ATTACKING_may name(Sacrifice) sacrifice notatarget(other creature|mybattlefield) && transforms((,newability[unblockable])) forever
auto=_ATTACKING_may name(Sacrifice other creature) target(other creature|mybattlefield) sacrifice and!( all(this) transforms((,newability[unblockable])) ueot )!
text=Whenever Bloodmist Infiltrator attacks, you may sacrifice another creature. If you do, Bloodmist Infiltrator can't be blocked this turn.
mana={2}{B}
type=Creature
@@ -8755,7 +8759,7 @@ type=Land
[card]
name=Breya's Apprentice
auto=token(Thopter,Artifact Creature Thopter,1/1,flying)
auto={T}{S(artifact|myBattlefield)}:name(Exile top card) all(*[zpos=1]|myLibrary) moveto(exile) and!( transforms((,newability[canplayfromexile])) ueot )!
auto={T}{S(artifact|myBattlefield)}:name(Exile top card) emblem transforms((,newability[all(*[zpos=1]|myLibrary) moveto(exile) and!( transforms((,newability[counter(0/0.1.PlayExile)],newability[@each opponent beginofturn restriction{compare(hascntplayexile)~morethan~0}:if cantargetcard(*[-canplayfromexile]|*) then removeallcounters(0/0.1.PlayExile)])) forever )!],newability[lord(*[counter{0/0.1.PlayExile}]|myexile) canplayfromexile])) uent
auto={T}{S(artifact|myBattlefield)}:name(Creature gets 2/0) target(creature) 2/0 ueot
text=When Breya's Apprentice enters the battlefield, create a 1/1 colorless Thopter artifact creature token with flying. -- {T}, Sacrifice an artifact: Choose one -- Exile the top card of your library. Until the end of your next turn, you may play that card. -- Target creature gets +2/+0 until end of turn.
mana={2}{R}
@@ -9432,7 +9436,9 @@ toughness=3
[/card]
[card]
name=Burning Sun's Avatar
auto=damage:3 target(opponent,planeswalker) && damage:3 target(creature|battlefield)
auto=choice name(Damage opponent) damage:3 opponent
auto=if type(planeswalker|battlefield)~morethan~0 then choice name(Damage planeswalker) name(Damage planeswalker) damage:3 target(planeswalker|battlefield)
auto=ability$!may name(Damage creature) name(Damage creature) damage:3 target(creature|battlefield)!$ controller
text=When Burning Sun's Avatar enters the battlefield, it deals 3 damage to target opponent or planeswalker and 3 damage to up to one target creature.
mana={3}{R}{R}{R}
type=Creature
@@ -13335,8 +13341,7 @@ toughness=3
[/card]
[card]
name=Combat Celebrant
auto=@exerted(this) restriction{once}:untap all(other creature|mybattlefield) && nextphasealter(add,combatphases,controller,after<combatends>) oneshot
auto=_ATTACKING_may exert
auto=@combat(attacking) source(this) restriction{notexerted}:may name(Exert) exert && all(other creature|mybattlefield) untap && emblem transforms((,newability[nextphasealter(add^combatphases^controller^after<combatends>)])) ueot
text=If Combat Celebrant hasn't been exerted this turn, you may exert it as it attacks. When you do, untap all other creatures you control and after this phase, there is an additional combat phase. (An exerted creature won't untap during your next untap step.)
mana={2}{R}
type=Creature
@@ -15127,9 +15132,9 @@ toughness=3
[card]
name=Crush Contraband
restriction=type(*[artifact;enchantment]|battlefield)~morethan~0
auto=if type(artifact|battlefield)~morethan~0 then choice name(Exile artifact) name(Exile artifact) moveto(exile) target(artifact)
auto=if type(enchantment|battlefield)~morethan~0 then choice name(Exile enchantment) name(Exile enchantment) moveto(exile) target(enchantment)
auto=if type(artifact|battlefield)~morethan~0 then if type(enchantment|battlefield)~morethan~0 then choice name(Exile artifact amd enchantment) name(Exile artifact amd enchantment) name(Exile artifact amd enchantment) moveto(exile) target(artifact) && ability$!name(Exile enchantment) name(Exile enchantment) moveto(exile) target(enchantment)!$ controller
auto=if type(artifact|battlefield)~morethan~0 then choice name(Exile artifact) name(Exile artifact) moveto(exile) target(artifact|battlefield)
auto=if type(enchantment|battlefield)~morethan~0 then choice name(Exile enchantment) name(Exile enchantment) moveto(exile) target(enchantment|battlefield)
auto=if type(artifact|battlefield)~morethan~0 then if type(enchantment|battlefield)~morethan~0 then choice name(Choose both) name(Choose both) name(Choose both) target(artifact|battlefield) moveto(exile) and!( name(Exile enchantment) moveto(exile) target(enchantment|battlefield) )!
text=Choose one or both -- Exile target artifact. -- Exile target enchantment.
mana={3}{W}
type=Instant
@@ -18231,8 +18236,11 @@ toughness=1
[/card]
[card]
name=Diabolic Servitude
auto={B}{B}{L:2}{S(swamp|mybattlefield)}:name(Return creature) moveTo(myBattlefield) target(creature|mygraveyard)
text={B}{B}, Pay 2 life, Sacrifice a Swamp: Return target creature card from your graveyard to the battlefield.
auto={B}{B}{L:2}{S(swamp|mybattlefield)}:name(Return creature) target(creature|mygraveyard) moveTo(myBattlefield) and!( counter(0/0.1.DiabolicReturned) )!
auto=@movedto(creature[counter{0/0.1.DiabolicReturned}]|graveyard) from(mybattlefield):name(Exile returned creature) all(trigger[to]) name(Exile returned creature) transforms(,newability[moveto(exile)])) oneshot
auto=@movedto(creature[counter{0/0.1.DiabolicReturned}]|graveyard) from(mybattlefield):name(Return to hand) all(this) name(Return to hand) moveto(ownerhand)
auto=@movedto(this|nonbattlezone) from(battlefield):name(Exile returned creatures) all(creature[counter{0/0.1.DiabolicReturned}]|myBattlefield) moveto(exile)
text={B}{B}, Pay 2 life, Sacrifice a Swamp: Return target creature card from your graveyard to the battlefield. -- When the creature put onto the battlefield with Diabolic Servitude dies, exile it and return Diabolic Servitude to its owner's hand. -- When Diabolic Servitude leaves the battlefield, exile the creature put onto the battlefield with Diabolic Servitude.
mana={3}{B}
type=Enchantment
[/card]
@@ -20121,8 +20129,7 @@ toughness=3
name=Dream Eater
abilities=flash,flying
aicode=activate transforms((,newability[surveil],newability[may name(Return non-land permanent) target(*[-land]|opponentBattlefield) moveTo(ownerhand)],newability[all(*[zpos<=psurveiloffsetplus4plusend]|mylibrary) transforms((,newability[if compare(genrand2)~equalto~1 then moveto(mygraveyard)])) oneshot])) oneshot
auto=if type(*[-land]|opponentBattlefield)~morethan~0 then choice name(Surveil 4 and return permanent) name(Surveil 4 and return permanent) reveal:psurveiloffsetplus4plusend optionone name(put in graveyard) target(<upto:psurveiloffsetplus4plusend>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<psurveiloffsetplus4plusend>*|reveal) moveto(ownerlibrary) optiontwoend afterrevealed name(Return non-land permanent) target(*[-land]|opponentBattlefield) moveTo(ownerhand) && surveil afterrevealedend revealend
auto=choice name(Surveil 4 and don't return permanent) reveal:psurveiloffsetplus4plusend optionone name(put in graveyard) target(<upto:psurveiloffsetplus4plusend>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<psurveiloffsetplus4plusend>*|reveal) moveto(ownerlibrary) optiontwoend afterrevealed surveil afterrevealedend revealend
auto=name(Surveil 4) 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 afterrevealed all(this) transforms((,newability[may name(Return non-land permanent) target(*[-land]|opponentBattlefield) moveTo(ownerhand)],newability[surveil])) oneshot afterrevealedend revealend
text=Flash -- Flying -- When Dream Eater enters the battlefield, surveil 4. When you do, you may return target nonland permanent an opponent controls to its owner's hand. (To surveil 4, look at the top four cards of your library, then put any number of them into your graveyard and the rest on top of your library in any order.)
mana={4}{U}{U}
type=Creature
@@ -20504,7 +20511,7 @@ auto=_LANDFALL_life:1 controller
auto=this(variable{hascntlevel}=1) {2}{G}:name(Level 2) counter(0/0,1,Level) asSorcery
auto=this(variable{hascntlevel}>=2) maxPlay(land)+1
auto=this(variable{hascntlevel}=2) {4}{G}:name(Level 3) counter(0/0,1,Level) asSorcery
auto=@counteradded(0/0.1.Level) restriction{compare(hascntlevel)~equalto~3}:name(Land become creature) target(land|mybattlefield) transforms((Creature,newability[haste],newability[type:land:myBattlefield/type:land:myBattlefield cdaactive])) forever
auto=@counteradded(0/0.1.Level) from(this) restriction{compare(hascntlevel)~equalto~3}:name(Land become creature) target(land|mybattlefield) transforms((Creature,newability[haste],newability[type:land:myBattlefield/type:land:myBattlefield cdaactive])) forever
text=(Gain the next level as a sorcery to add its ability.) -- Whenever a land enters the battlefield under your control, you gain 1 life. -- {2}{G}: Level 2 -- You may play an additional land on each of your turns. -- {4}{G}: Level 3 -- When this Class becomes level 3, target land you control becomes a creature with haste and "This creature's power and toughness are each equal to the number of lands you control." it's still a land.
mana={1}{G}
type=Enchantment
@@ -20956,7 +20963,7 @@ toughness=1
name=Dwindle
target=creature
auto=teach(creature) -6/-0
auto=teach(creature) @combat(blocking) source(mytgt):phaseaction[combatends,sourceinplay] destroy
auto=teach(creature) transforms((,newability[@combat(blocking) source(this):phaseaction[combatends once sourceinplay] destroy]))
text=Enchant creature -- Enchanted creature gets -6/-0. -- When enchanted creature blocks, destroy it. (The attacking creature remains blocked.)
mana={2}{U}
type=Enchantment
@@ -21831,8 +21838,8 @@ toughness=2
[/card]
[card]
name=Elvish Rejuvenator
aicode=activate moveTo(myBattlefield) tap(noevent) target(land|myLibrary)
auto=name(Reveal Cards) reveal:5 revealzone(mylibrary) revealuntil(land|mylibrary) optionone choice name(Put a land card) target(land|reveal) moveto(mybattlefield) tap(noevent) optiononeend optiontwo choice name(put on bottom) all(*|reveal) bottomoflibrary optiontwoend revealend
aicode=activate transforms((,newability[if type(land[zpos<=5]|myLibrary)~equalto~0 then all(*[zpos<=5]|myLibrary) moveto(myreveal) and!( bottomoflibrary )!],newability[if type(land[zpos<=5]|myLibrary)~morethan~0 then target(land[zpos<=5]|myLibrary) moveTo(myBattlefield) and!( transforms((,newability[tap(noevent)],newability[all(*[zpos<=5]|myLibrary) moveto(myreveal) and!( bottomoflibrary )!])) oneshot )!])) oneshot
auto=name(Reveal Cards) reveal:5 optionone choice name(Choose a land card) target(<upto:1>land|reveal) moveto(mybattlefield) and!( tap(noevent) )! optiononeend optiontwo choice name(Put on bottom) all(*|reveal) bottomoflibrary optiontwoend revealend
text=When Elvish Rejuvenator enters the battlefield, look at the top five cards of your library. You may put a land card from among them onto the battlefield tapped. Put the rest on the bottom of your library in a random order.
mana={2}{G}
type=Creature
@@ -22732,7 +22739,8 @@ subtype=Aura
[/card]
[card]
name=Escape to the Wilds
auto=moveto(exile) and!( transforms((,canplayfromexile)) ueot )! all(*[zpos<=5]|mylibrary)
auto=all(*[zpos<=5]|mylibrary) moveto(exile) and!( transforms((,newability[counter(0/0.1.PlayExile)],newability[@each opponent beginofturn restriction{compare(hascntplayexile)~morethan~0}:if cantargetcard(*[-canplayfromexile]|*) then removeallcounters(0/0.1.PlayExile)])) forever )!
auto=emblem transforms((,newability[lord(*[counter{0/0.1.PlayExile}]|myexile) canplayfromexile])) uent
auto=maxPlay(land)+1
text=Exile the top five cards of your library. You may play cards exiled this way until the end of your next turn. -- You may play an additional land this turn.
mana={3}{R}{G}
@@ -25005,8 +25013,7 @@ type=Land
[card]
name=Fiend Artisan
auto=foreach(creature|myGraveyard) 1/1
aicode=activate target(creature[manacost<=X]|mylibrary) moveto(myBattlefield)
auto={X}{BG}{T}{S(other creature|myBattlefield}:name(search creature) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose creature) target(creature[manacost<=X]|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(myBattlefield)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>*|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend asSorcery
auto={X}{BG}{T}{S(other creature|myBattlefield)}:name(Search creature) transforms((,newability[name(Search creature) target(creature[manacost<=X]|mylibrary) moveto(myBattlefield) and!( shuffle )!])) oneshot assorcery
text=Fiend Artisan gets +1/+1 for each creature card in your graveyard. -- {X}{BG}, {T}, Sacrifice another creature: Search your library for a creature card with converted mana cost X or less, put it onto the battlefield, then shuffle your library. Activate this ability only any time you could cast a sorcery.
mana={BG}{BG}
type=Creature
@@ -27808,6 +27815,7 @@ toughness=3
[card]
name=Garruk's Harbinger
auto=cantbetargetof(*[black])
aicode=activate transforms((,newability[target(creature[zpos<=thatmuch]|mylibrary) moveto(myHand) and!( all(*[zpos<=thatmuch]|mylibrary) moveto(myreveal) and!( bottomoflibrary )!])) oneshot
auto=@combatdamaged(player) from(this):name(Reveal cards) reveal:thatmuch optionone name(Get a creature or a garruk) target(<upto:1>*[creature;garruk]|reveal) moveto(myHand) optiononeend optiontwo name(put on bottom) target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend
auto=@combatdamaged(planeswalker) from(this):name(Reveal cards) reveal:thatmuch optionone name(Get a creature or a garruk) target(<upto:1>*[creature;garruk]|reveal) moveto(myHand) optiononeend optiontwo name(put on bottom) target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend
text=Hexproof from black -- Whenever Garruk's Harbinger deals combat damage to a player or planeswalker, look at that many cards from the top of your library. You may reveal a creature card or Garruk planeswalker card from among them and put it into your hand. Put the rest on the bottom of your library in a random order.
@@ -28314,8 +28322,8 @@ type=Instant
[/card]
[card]
name=Ghalta, Primal Hunger
anyzone=changecost(colorless:-powertotalinplay) forcedalive
abilities=trample
anyzone=thisforeach(variable{pwrtotalinplay}>0) changecost(colorless:-1) forcedalive
text=This spell costs {X} less to cast, where X is the total power of creatures you control. -- Trample
mana={10}{G}{G}
type=Legendary Creature
@@ -29669,10 +29677,11 @@ toughness=1
[/card]
[card]
name=Goblin Barrage
kicker={S(*[artifact;goblin]|mybattlefield)}
target=creature
abilities=hasotherkicker
other={3}{R}{S(*[artifact;goblin]|mybattlefield)} name(Pay kicker)
auto=damage:4
auto=Kicker damage:4 target(player)
auto=if paid(alternative) then name(Damage player or planeswalker) name(Damage player or planeswalker) damage:4 target(player,planeswalker)
text=Kicker'sacrifice an artifact or Goblin. (You may sacrifice an artifact or Goblin in addition to any other costs as you cast this spell.) -- Goblin Barrage deals 4 damage to target creature. If this spell was kicked, it also deals 4 damage to target player or planeswalker.
mana={3}{R}
type=Sorcery
@@ -31904,7 +31913,8 @@ toughness=1
[/card]
[card]
name=Gyrus, Waker of Corpses
auto=counter(1/1,X) && counter(1/1,3)
auto=if compare(ishuman)~equalto~1 then counter(1/1,totmanaspent)
auto=if compare(ishuman)~equalto~0 then counter(1/1,fullpaidplus3plusend)
auto=@combat(attacking) source(this) restriction{compare(p)~equalto~1}:may name(Exile and copy a creature) target(creature[power<=0]|mygraveyard) moveto(exile) && clone with(unearth,battleready)
auto=@combat(attacking) source(this) restriction{compare(p)~equalto~2}:may name(Exile and copy a creature) target(creature[power<=1]|mygraveyard) moveto(exile) && clone with(unearth,battleready)
auto=@combat(attacking) source(this) restriction{compare(p)~equalto~3}:may name(Exile and copy a creature) target(creature[power<=2]|mygraveyard) moveto(exile) && clone with(unearth,battleready)
@@ -31912,8 +31922,8 @@ auto=@combat(attacking) source(this) restriction{compare(p)~equalto~4}:may name(
auto=@combat(attacking) source(this) restriction{compare(p)~equalto~5}:may name(Exile and copy a creature) target(creature[power<=4]|mygraveyard) moveto(exile) && clone with(unearth,battleready)
auto=@combat(attacking) source(this) restriction{compare(p)~equalto~6}:may name(Exile and copy a creature) target(creature[power<=5]|mygraveyard) moveto(exile) && clone with(unearth,battleready)
auto=@combat(attacking) source(this) restriction{compare(p)~equalto~7}:may name(Exile and copy a creature) target(creature[power<=6]|mygraveyard) moveto(exile) && clone with(unearth,battleready)
auto=@combat(attacking) source(this) restriction{compare(p)~equalto~8}:may name(Exile and copy a creature) target(creature[power=<7]|mygraveyard) moveto(exile) && clone with(unearth,battleready)
auto=@combat(attacking) source(this) restriction{compare(p)~equalto~9}:may name(Exile and copy a creature) target(creature[power=<8]|mygraveyard) moveto(exile) && clone with(unearth,battleready)
auto=@combat(attacking) source(this) restriction{compare(p)~equalto~8}:may name(Exile and copy a creature) target(creature[power<=7]|mygraveyard) moveto(exile) && clone with(unearth,battleready)
auto=@combat(attacking) source(this) restriction{compare(p)~equalto~9}:may name(Exile and copy a creature) target(creature[power<=8]|mygraveyard) moveto(exile) && clone with(unearth,battleready)
auto=@combat(attacking) source(this) restriction{compare(p)~equalto~10}:may name(Exile and copy a creature) target(creature[power<=9]|mygraveyard) moveto(exile) && clone with(unearth,battleready)
auto=@combat(attacking) source(this) restriction{compare(p)~equalto~11}:may name(Exile and copy a creature) target(creature[power<=10]|mygraveyard) moveto(exile) && clone with(unearth,battleready)
auto=@combat(attacking) source(this) restriction{compare(p)~equalto~12}:may name(Exile and copy a creature) target(creature[power<=11]|mygraveyard) moveto(exile) && clone with(unearth,battleready)
@@ -32312,9 +32322,10 @@ toughness=0
[card]
name=Hammer of Nazahn
auto={4}:equip
auto=teach(creature) indestructible && 2/0
auto=@may rehook
auto=@movedto(artifact[Equipment]|mybattlefield):may all(trigger[to]) rehook
auto=teach(creature) indestructible
auto=teach(creature) 2/0
auto=may name(Attach to creature) rehook target(creature|myBattlefield)
auto=@movedto(equipment|mybattlefield):name(Attach to creature) all(trigger[to]) name(Attach to creature) transforms((,newability[ifnot cantargetcard(*[attached]|*) then may name(Attach to creature) name(Attach to creature) rehook target(creature|myBattlefield)])) oneshot
text=Whenever Hammer of Nazahn or another Equipment enters the battlefield under your control, you may attach that Equipment to target creature you control. -- Equipped creature gets +2/+0 and has indestructible. -- Equip {4}
mana={4}
type=Legendary Artifact
@@ -34464,7 +34475,12 @@ toughness=4
[/card]
[card]
name=Hostage Taker
auto=(blink)forsrc target(creature,artifact)
auto=if type(*[creature;artifact]|opponentbattlefield)~morethan~0 then choice name(Exile opponent creature or artifact) name(Exile opponent creature or artifact) target(*[creature;artifact]|opponentbattlefield) imprint
auto=if type(*[creature;artifact]|opponentbattlefield)~morethan~0 then name(Exile your creature or artifact) name(Exile your creature or artifact) target(other *[creature;artifact]|battlefield) imprint and!( transforms((,newability[canplayfromexile],newability[anytypeofmana])) forever )!
auto=this(variable{hasevict}>0) transforms((,newability[@movedto(this|nonbattlezone) from(battlefield):name(Put back exiled card) target(*[evictname]|exile) moveTo(ownerBattlefield)]))
auto=this(variable{hasevict}>0) {0}:name(Cast opponent exiled card) name(Cast opponent exiled card) target(*[evictname]|opponentexile) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[anytypeofmana],newability[counter(0/0.1.HostageExiled)])) ueot )!
auto=@counteradded(0/0.1.HostageExiled) from(creature|myexile):name(Effect ends) transforms((,newability[@movedto(this|nonbattlezone) from(battlefield):name(Put back exiled card) target(*[counter{0/0.1.HostageExiled}]|myexile) moveTo(ownerBattlefield)])) ueot
auto=@each endofturn:if type(*[counter{0/0.1.HostageExiled}]|myexile)~morethan~0 then name(Return card to owner exile) name(Return card to owner exile) target(*[counter{0/0.1.HostageExiled}]|myexile) imprint
text=When Hostage Taker enters the battlefield, exile another target creature or artifact until Hostage Taker leaves the battlefield. You may 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={2}{U}{B}
type=Creature
@@ -34572,9 +34588,9 @@ type=Instant
[/card]
[card]
name=Hour of Promise
auto=aslongas(Desert|mybattlefield) token(Zombie,creature Zombie,2/2,black)*2 >2
auto=moveto(mybattlefield) target(<upto:2>land|mylibrary) and!(tap(noevent))!
#auto=transforms((,newability[if type(desert|mybattlefield)~morethan~2 then token(Zombie,creature Zombie,2/2,black)])) ueot
auto=choice name(Don't search any land) if type(desert|mybattlefield)~morethan~2 then token(Zombie^Creature Zombie^2/2^black)
auto=choice name(Search 1 land) target(land|mylibrary) moveto(mybattlefield) and!( transforms((,newability[tap(noevent)],newability[if type(desert|mybattlefield)~morethan~2 then token(Zombie^Creature Zombie^2/2^black)])) oneshot )!
auto=choice name(Search 2 lands) target(land|mylibrary) moveto(mybattlefield) and!( transforms((,newability[tap(noevent)],newability[name(Search another land) target(other land|mylibrary) moveto(mybattlefield) and!( transforms((,newability[tap(noevent)],newability[if type(desert|mybattlefield)~morethan~2 then token(Zombie^Creature Zombie^2/2^black)])) oneshot )! ])) oneshot )!
text=Search your library for up to two land cards, put them onto the battlefield tapped, then shuffle your library. Then if you control three or more Deserts, create two 2/2 black Zombie creature tokens.
mana={4}{G}
type=Sorcery
@@ -35031,8 +35047,9 @@ toughness=4
[/card]
[card]
name=Hurl Through Hell
target=creature
auto=moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[anytypeofmana],newability[phaseaction[my endofturn next once checkex] moveTo(ownerexile)])) forever )!
restriction=type(creature|battlefield)~morethan~0
auto=if compare(controllerturn)~morethan~0 then name(Exile creature) name(Exile creature) target(creature|battlefield) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[anytypeofmana],newability[phaseaction[my endofturn next once checkex] moveTo(ownerexile)])) forever )!
auto=if compare(controllerturn)~equalto~0 then name(Exile creature) name(Exile creature) target(creature|battlefield) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[anytypeofmana],newability[phaseaction[my endofturn once checkex] moveTo(ownerexile)])) forever )!
text=Exile target creature. Until the end of your next turn, you may cast that card and you may spend mana as though it were mana of any color to cast that spell.
mana={2}{B}{R}
type=Instant
@@ -35403,8 +35420,9 @@ type=Instant
[card]
name=Ignite the Future
flashback={7}{R}
auto=moveto(exile) and!( transforms((,canplayfromexile)) ueot )! all(*[zpos<=3]|mylibrary)
auto=if gravecast then changecost(colorless:-3) && changecost(R:-1)
auto=name(Exile top 3 cards) all(*[zpos<=3]|mylibrary) moveto(exile) and!( transforms((,newability[counter(0/0.1.PlayExile)],newability[@each opponent beginofturn restriction{compare(hascntplayexile)~morethan~0}:if cantargetcard(*[-canplayfromexile]|*) then removeallcounters(0/0.1.PlayExile)])) forever )!
auto=ifnot gravecast then emblem transforms((,newability[lord(*[counter{0/0.1.PlayExile}]|myexile) canplayfromexile])) uent
auto=if gravecast then emblem transforms((,newability[lord(*[counter{0/0.1.PlayExile}]|myexile) canplayfromexile],newability[lord(*[counter{0/0.1.PlayExile}]|myexile) zerocast])) uent
text=Exile the top three cards of your library. Until the end of your next turn, you may play those cards. If this spell was cast from a graveyard, you may play cards this way without paying their mana costs. -- Flashback {7}{R} (You may cast this card from your graveyard for its flashback cost. Then exile it.)
mana={3}{R}
type=Sorcery
@@ -35591,16 +35609,11 @@ toughness=1
[/card]
[card]
name=Ilysian Caryatid
auto={T} restriction{type(creature[power>=4]|myhand)~morethan~0}:add{G}{G}
auto={T} restriction{type(creature[power>=4]|myhand)~morethan~0}:add{W}{W}
auto={T} restriction{type(creature[power>=4]|myhand)~morethan~0}:add{U}{U}
auto={T} restriction{type(creature[power>=4]|myhand)~morethan~0}:add{B}{B}
auto={T} restriction{type(creature[power>=4]|myhand)~morethan~0}:add{R}{R}
auto={T} restriction{type(creature[power>=4]|myhand)~lessthan~1}:add{G}
auto={T} restriction{type(creature[power>=4]|myhand)~lessthan~1}:add{W}
auto={T} restriction{type(creature[power>=4]|myhand)~lessthan~1}:add{U}
auto={T} restriction{type(creature[power>=4]|myhand)~lessthan~1}:add{B}
auto={T} restriction{type(creature[power>=4]|myhand)~lessthan~1}:add{R}
auto={T}:if type(creature[power>=4]|myBattlefield)~morethan~0 then name(Add green mana) name(Add green mana) add{G}{G} else add{G}
auto={T}:if type(creature[power>=4]|myBattlefield)~morethan~0 then name(Add white mana) name(Add white mana) add{W}{W} else add{W}
auto={T}:if type(creature[power>=4]|myBattlefield)~morethan~0 then name(Add blue mana) name(Add blue mana) add{U}{U} else add{U}
auto={T}:if type(creature[power>=4]|myBattlefield)~morethan~0 then name(Add black mana) name(Add black mana) add{B}{B} else add{B}
auto={T}:if type(creature[power>=4]|myBattlefield)~morethan~0 then name(Add red mana) name(Add red mana) add{R}{R} else add{R}
text={T}: Add one mana of any color. If you control a creature with power 4 or greater, add two mana of any one color instead.
mana={1}{G}
type=Creature
@@ -38573,9 +38586,49 @@ toughness=4
[/card]
[card]
name=Kamahl's Druidic Vow
auto=name(Look) reveal:x optionone name(Get a Card) target(<anyamount>*[legendary;manacost<=x;-instant;-sorcery]|reveal) moveto(myBattlefield) optiononeend optiontwo all(*|reveal) moveto(graveyard) optiontwoend revealend
text=(You may cast a legendary sorcery only if you control a legendary creature or planeswalker.) -- Look at the top X cards of your library. You may put any number of land and/or legendary permanent cards with converted mana cost X or less from among them onto the battlefield. Put the rest into your graveyard.
restriction=type(legendary[-artifact;-enchantment;-land]|mybattlefield)~morethan~0
aicode=activate transforms((,newability[target(<upto:fullpaid>*[legendary;manacost<=fullpaid;zpos<=fullpaid;-instant;-sorcery]|mylibrary) moveto(myBattlefield) and!( all(other *[zpos<=fullpaid]|mylibrary) moveto(mygraveyard) )!])) oneshot
auto=if compare(fullpaid)~equalto~1 then if type(land[zpos<=1]|mylibrary)~morethan~0 then name(Look top card) name(Look top card) name(Look top card) reveal:1 optionone name(Choose land) target(<upto:1>land|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Put in graveyard) target(*|myreveal) moveto(mygraveyard) optiontwoend revealend
auto=if compare(fullpaid)~equalto~1 then if type(land[zpos<=1]|mylibrary)~equalto~0 then name(Look top card) name(Look top card) name(Look top card) reveal:1 optionone name(Choose legendary permanent) target(<upto:1>*[legendary;manacost<=1;-instant;-sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Put in graveyard) target(*|myreveal) moveto(mygraveyard) and!( all(*|reveal) moveto(mygraveyard) )! optiontwoend revealend
auto=if compare(fullpaid)~equalto~2 then if type(land[zpos<=2]|mylibrary)~morethan~0 then name(Look top cards) name(Look top cards) name(Look top cards) reveal:2 optionone name(Choose legendary permanents) target(<upto:2>*[legendary;manacost<=2;-instant;-sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Choose land cards) target(<2>land|myreveal) moveto(mygraveyard) and!( transforms((,newability[becomes(tobecast) ueot],newability[all(*|reveal) moveto(mygraveyard)])) oneshot )! optiontwoend afterrevealed all(tobecast|mygraveyard,mylibrary) transforms((,newability[may name(Put on battlefield) moveto(mybattlefield)])) oneshot afterrevealedend revealend
auto=if compare(fullpaid)~equalto~2 then if type(land[zpos<=2]|mylibrary)~equalto~0 then name(Look top cards) name(Look top cards) name(Look top cards) reveal:2 optionone name(Choose legendary permanents) target(<upto:2>*[legendary;manacost<=2;-instant;-sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Put in graveyard) target(*|myreveal) moveto(mygraveyard) and!( all(*|reveal) moveto(mygraveyard) )! optiontwoend revealend
auto=if compare(fullpaid)~equalto~3 then if type(land[zpos<=3]|mylibrary)~morethan~0 then name(Look top cards) name(Look top cards) name(Look top cards) reveal:3 optionone name(Choose legendary permanents) target(<upto:3>*[legendary;manacost<=3;-instant;-sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Choose land cards) target(<3>land|myreveal) moveto(mygraveyard) and!( transforms((,newability[becomes(tobecast) ueot],newability[all(*|reveal) moveto(mygraveyard)])) oneshot )! optiontwoend afterrevealed all(tobecast|mygraveyard,mylibrary) transforms((,newability[may name(Put on battlefield) moveto(mybattlefield)])) oneshot afterrevealedend revealend
auto=if compare(fullpaid)~equalto~3 then if type(land[zpos<=3]|mylibrary)~equalto~0 then name(Look top cards) name(Look top cards) name(Look top cards) reveal:3 optionone name(Choose legendary permanents) target(<upto:3>*[legendary;manacost<=3;-instant;-sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Put in graveyard) target(*|myreveal) moveto(mygraveyard) and!( all(*|reveal) moveto(mygraveyard) )! optiontwoend revealend
auto=if compare(fullpaid)~equalto~4 then if type(land[zpos<=4]|mylibrary)~morethan~0 then name(Look top cards) name(Look top cards) name(Look top cards) reveal:4 optionone name(Choose legendary permanents) target(<upto:4>*[legendary;manacost<=4;-instant;-sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Choose land cards) target(<4>land|myreveal) moveto(mygraveyard) and!( transforms((,newability[becomes(tobecast) ueot],newability[all(*|reveal) moveto(mygraveyard)])) oneshot )! optiontwoend afterrevealed all(tobecast|mygraveyard,mylibrary) transforms((,newability[may name(Put on battlefield) moveto(mybattlefield)])) oneshot afterrevealedend revealend
auto=if compare(fullpaid)~equalto~4 then if type(land[zpos<=4]|mylibrary)~equalto~0 then name(Look top cards) name(Look top cards) name(Look top cards) reveal:4 optionone name(Choose legendary permanents) target(<upto:4>*[legendary;manacost<=4;-instant;-sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Put in graveyard) target(*|myreveal) moveto(mygraveyard) and!( all(*|reveal) moveto(mygraveyard) )! optiontwoend revealend
auto=if compare(fullpaid)~equalto~5 then if type(land[zpos<=5]|mylibrary)~morethan~0 then name(Look top cards) name(Look top cards) name(Look top cards) reveal:5 optionone name(Choose legendary permanents) target(<upto:5>*[legendary;manacost<=5;-instant;-sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Choose land cards) target(<5>land|myreveal) moveto(mygraveyard) and!( transforms((,newability[becomes(tobecast) ueot],newability[all(*|reveal) moveto(mygraveyard)])) oneshot )! optiontwoend afterrevealed all(tobecast|mygraveyard,mylibrary) transforms((,newability[may name(Put on battlefield) moveto(mybattlefield)])) oneshot afterrevealedend revealend
auto=if compare(fullpaid)~equalto~5 then if type(land[zpos<=5]|mylibrary)~equalto~0 then name(Look top cards) name(Look top cards) name(Look top cards) reveal:5 optionone name(Choose legendary permanents) target(<upto:5>*[legendary;manacost<=5;-instant;-sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Put in graveyard) target(*|myreveal) moveto(mygraveyard) and!( all(*|reveal) moveto(mygraveyard) )! optiontwoend revealend
auto=if compare(fullpaid)~equalto~6 then if type(land[zpos<=6]|mylibrary)~morethan~0 then name(Look top cards) name(Look top cards) name(Look top cards) reveal:6 optionone name(Choose legendary permanents) target(<upto:6>*[legendary;manacost<=6;-instant;-sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Choose land cards) target(<6>land|myreveal) moveto(mygraveyard) and!( transforms((,newability[becomes(tobecast) ueot],newability[all(*|reveal) moveto(mygraveyard)])) oneshot )! optiontwoend afterrevealed all(tobecast|mygraveyard,mylibrary) transforms((,newability[may name(Put on battlefield) moveto(mybattlefield)])) oneshot afterrevealedend revealend
auto=if compare(fullpaid)~equalto~6 then if type(land[zpos<=6]|mylibrary)~equalto~0 then name(Look top cards) name(Look top cards) name(Look top cards) reveal:6 optionone name(Choose legendary permanents) target(<upto:6>*[legendary;manacost<=6;-instant;-sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Put in graveyard) target(*|myreveal) moveto(mygraveyard) and!( all(*|reveal) moveto(mygraveyard) )! optiontwoend revealend
auto=if compare(fullpaid)~equalto~7 then if type(land[zpos<=7]|mylibrary)~morethan~0 then name(Look top cards) name(Look top cards) name(Look top cards) reveal:7 optionone name(Choose legendary permanents) target(<upto:7>*[legendary;manacost<=7;-instant;-sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Choose land cards) target(<7>land|myreveal) moveto(mygraveyard) and!( transforms((,newability[becomes(tobecast) ueot],newability[all(*|reveal) moveto(mygraveyard)])) oneshot )! optiontwoend afterrevealed all(tobecast|mygraveyard,mylibrary) transforms((,newability[may name(Put on battlefield) moveto(mybattlefield)])) oneshot afterrevealedend revealend
auto=if compare(fullpaid)~equalto~7 then if type(land[zpos<=7]|mylibrary)~equalto~0 then name(Look top cards) name(Look top cards) name(Look top cards) reveal:7 optionone name(Choose legendary permanents) target(<upto:7>*[legendary;manacost<=7;-instant;-sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Put in graveyard) target(*|myreveal) moveto(mygraveyard) and!( all(*|reveal) moveto(mygraveyard) )! optiontwoend revealend
auto=if compare(fullpaid)~equalto~8 then if type(land[zpos<=8]|mylibrary)~morethan~0 then name(Look top cards) name(Look top cards) name(Look top cards) reveal:8 optionone name(Choose legendary permanents) target(<upto:8>*[legendary;manacost<=8;-instant;-sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Choose land cards) target(<8>land|myreveal) moveto(mygraveyard) and!( transforms((,newability[becomes(tobecast) ueot],newability[all(*|reveal) moveto(mygraveyard)])) oneshot )! optiontwoend afterrevealed all(tobecast|mygraveyard,mylibrary) transforms((,newability[may name(Put on battlefield) moveto(mybattlefield)])) oneshot afterrevealedend revealend
auto=if compare(fullpaid)~equalto~8 then if type(land[zpos<=8]|mylibrary)~equalto~0 then name(Look top cards) name(Look top cards) name(Look top cards) reveal:8 optionone name(Choose legendary permanents) target(<upto:8>*[legendary;manacost<=8;-instant;-sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Put in graveyard) target(*|myreveal) moveto(mygraveyard) and!( all(*|reveal) moveto(mygraveyard) )! optiontwoend revealend
auto=if compare(fullpaid)~equalto~9 then if type(land[zpos<=9]|mylibrary)~morethan~0 then name(Look top cards) name(Look top cards) name(Look top cards) reveal:9 optionone name(Choose legendary permanents) target(<upto:9>*[legendary;manacost<=9;-instant;-sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Choose land cards) target(<9>land|myreveal) moveto(mygraveyard) and!( transforms((,newability[becomes(tobecast) ueot],newability[all(*|reveal) moveto(mygraveyard)])) oneshot )! optiontwoend afterrevealed all(tobecast|mygraveyard,mylibrary) transforms((,newability[may name(Put on battlefield) moveto(mybattlefield)])) oneshot afterrevealedend revealend
auto=if compare(fullpaid)~equalto~9 then if type(land[zpos<=9]|mylibrary)~equalto~0 then name(Look top cards) name(Look top cards) name(Look top cards) reveal:9 optionone name(Choose legendary permanents) target(<upto:9>*[legendary;manacost<=9;-instant;-sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Put in graveyard) target(*|myreveal) moveto(mygraveyard) and!( all(*|reveal) moveto(mygraveyard) )! optiontwoend revealend
auto=if compare(fullpaid)~equalto~10 then if type(land[zpos<=10]|mylibrary)~morethan~0 then name(Look top cards) name(Look top cards) name(Look top cards) reveal:10 optionone name(Choose legendary permanents) target(<upto:10>*[legendary;manacost<=10;-instant;-sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Choose land cards) target(<10>land|myreveal) moveto(mygraveyard) and!( transforms((,newability[becomes(tobecast) ueot],newability[all(*|reveal) moveto(mygraveyard)])) oneshot )! optiontwoend afterrevealed all(tobecast|mygraveyard,mylibrary) transforms((,newability[may name(Put on battlefield) moveto(mybattlefield)])) oneshot afterrevealedend revealend
auto=if compare(fullpaid)~equalto~10 then if type(land[zpos<=10]|mylibrary)~equalto~0 then name(Look top cards) name(Look top cards) name(Look top cards) reveal:10 optionone name(Choose legendary permanents) target(<upto:10>*[legendary;manacost<=10;-instant;-sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Put in graveyard) target(*|myreveal) moveto(mygraveyard) and!( all(*|reveal) moveto(mygraveyard) )! optiontwoend revealend
auto=if compare(fullpaid)~equalto~11 then if type(land[zpos<=11]|mylibrary)~morethan~0 then name(Look top cards) name(Look top cards) name(Look top cards) reveal:11 optionone name(Choose legendary permanents) target(<upto:11>*[legendary;manacost<=11;-instant;-sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Choose land cards) target(<11>land|myreveal) moveto(mygraveyard) and!( transforms((,newability[becomes(tobecast) ueot],newability[all(*|reveal) moveto(mygraveyard)])) oneshot )! optiontwoend afterrevealed all(tobecast|mygraveyard,mylibrary) transforms((,newability[may name(Put on battlefield) moveto(mybattlefield)])) oneshot afterrevealedend revealend
auto=if compare(fullpaid)~equalto~11 then if type(land[zpos<=11]|mylibrary)~equalto~0 then name(Look top cards) name(Look top cards) name(Look top cards) reveal:11 optionone name(Choose legendary permanents) target(<upto:11>*[legendary;manacost<=11;-instant;-sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Put in graveyard) target(*|myreveal) moveto(mygraveyard) and!( all(*|reveal) moveto(mygraveyard) )! optiontwoend revealend
auto=if compare(fullpaid)~equalto~12 then if type(land[zpos<=12]|mylibrary)~morethan~0 then name(Look top cards) name(Look top cards) name(Look top cards) reveal:12 optionone name(Choose legendary permanents) target(<upto:12>*[legendary;manacost<=12;-instant;-sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Choose land cards) target(<12>land|myreveal) moveto(mygraveyard) and!( transforms((,newability[becomes(tobecast) ueot],newability[all(*|reveal) moveto(mygraveyard)])) oneshot )! optiontwoend afterrevealed all(tobecast|mygraveyard,mylibrary) transforms((,newability[may name(Put on battlefield) moveto(mybattlefield)])) oneshot afterrevealedend revealend
auto=if compare(fullpaid)~equalto~12 then if type(land[zpos<=12]|mylibrary)~equalto~0 then name(Look top cards) name(Look top cards) name(Look top cards) reveal:12 optionone name(Choose legendary permanents) target(<upto:12>*[legendary;manacost<=12;-instant;-sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Put in graveyard) target(*|myreveal) moveto(mygraveyard) and!( all(*|reveal) moveto(mygraveyard) )! optiontwoend revealend
auto=if compare(fullpaid)~equalto~13 then if type(land[zpos<=13]|mylibrary)~morethan~0 then name(Look top cards) name(Look top cards) name(Look top cards) reveal:13 optionone name(Choose legendary permanents) target(<upto:13>*[legendary;manacost<=13;-instant;-sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Choose land cards) target(<13>land|myreveal) moveto(mygraveyard) and!( transforms((,newability[becomes(tobecast) ueot],newability[all(*|reveal) moveto(mygraveyard)])) oneshot )! optiontwoend afterrevealed all(tobecast|mygraveyard,mylibrary) transforms((,newability[may name(Put on battlefield) moveto(mybattlefield)])) oneshot afterrevealedend revealend
auto=if compare(fullpaid)~equalto~13 then if type(land[zpos<=13]|mylibrary)~equalto~0 then name(Look top cards) name(Look top cards) name(Look top cards) reveal:13 optionone name(Choose legendary permanents) target(<upto:13>*[legendary;manacost<=13;-instant;-sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Put in graveyard) target(*|myreveal) moveto(mygraveyard) and!( all(*|reveal) moveto(mygraveyard) )! optiontwoend revealend
auto=if compare(fullpaid)~equalto~14 then if type(land[zpos<=14]|mylibrary)~morethan~0 then name(Look top cards) name(Look top cards) name(Look top cards) reveal:14 optionone name(Choose legendary permanents) target(<upto:14>*[legendary;manacost<=14;-instant;-sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Choose land cards) target(<14>land|myreveal) moveto(mygraveyard) and!( transforms((,newability[becomes(tobecast) ueot],newability[all(*|reveal) moveto(mygraveyard)])) oneshot )! optiontwoend afterrevealed all(tobecast|mygraveyard,mylibrary) transforms((,newability[may name(Put on battlefield) moveto(mybattlefield)])) oneshot afterrevealedend revealend
auto=if compare(fullpaid)~equalto~14 then if type(land[zpos<=14]|mylibrary)~equalto~0 then name(Look top cards) name(Look top cards) name(Look top cards) reveal:14 optionone name(Choose legendary permanents) target(<upto:14>*[legendary;manacost<=14;-instant;-sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Put in graveyard) target(*|myreveal) moveto(mygraveyard) and!( all(*|reveal) moveto(mygraveyard) )! optiontwoend revealend
auto=if compare(fullpaid)~equalto~15 then if type(land[zpos<=15]|mylibrary)~morethan~0 then name(Look top cards) name(Look top cards) name(Look top cards) reveal:15 optionone name(Choose legendary permanents) target(<upto:15>*[legendary;manacost<=15;-instant;-sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Choose land cards) target(<15>land|myreveal) moveto(mygraveyard) and!( transforms((,newability[becomes(tobecast) ueot],newability[all(*|reveal) moveto(mygraveyard)])) oneshot )! optiontwoend afterrevealed all(tobecast|mygraveyard,mylibrary) transforms((,newability[may name(Put on battlefield) moveto(mybattlefield)])) oneshot afterrevealedend revealend
auto=if compare(fullpaid)~equalto~15 then if type(land[zpos<=15]|mylibrary)~equalto~0 then name(Look top cards) name(Look top cards) name(Look top cards) reveal:15 optionone name(Choose legendary permanents) target(<upto:15>*[legendary;manacost<=15;-instant;-sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Put in graveyard) target(*|myreveal) moveto(mygraveyard) and!( all(*|reveal) moveto(mygraveyard) )! optiontwoend revealend
auto=if compare(fullpaid)~equalto~16 then if type(land[zpos<=16]|mylibrary)~morethan~0 then name(Look top cards) name(Look top cards) name(Look top cards) reveal:16 optionone name(Choose legendary permanents) target(<upto:16>*[legendary;manacost<=16;-instant;-sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Choose land cards) target(<16>land|myreveal) moveto(mygraveyard) and!( transforms((,newability[becomes(tobecast) ueot],newability[all(*|reveal) moveto(mygraveyard)])) oneshot )! optiontwoend afterrevealed all(tobecast|mygraveyard,mylibrary) transforms((,newability[may name(Put on battlefield) moveto(mybattlefield)])) oneshot afterrevealedend revealend
auto=if compare(fullpaid)~equalto~16 then if type(land[zpos<=16]|mylibrary)~equalto~0 then name(Look top cards) name(Look top cards) name(Look top cards) reveal:16 optionone name(Choose legendary permanents) target(<upto:16>*[legendary;manacost<=16;-instant;-sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Put in graveyard) target(*|myreveal) moveto(mygraveyard) and!( all(*|reveal) moveto(mygraveyard) )! optiontwoend revealend
auto=if compare(fullpaid)~equalto~17 then if type(land[zpos<=17]|mylibrary)~morethan~0 then name(Look top cards) name(Look top cards) name(Look top cards) reveal:17 optionone name(Choose legendary permanents) target(<upto:17>*[legendary;manacost<=17;-instant;-sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Choose land cards) target(<17>land|myreveal) moveto(mygraveyard) and!( transforms((,newability[becomes(tobecast) ueot],newability[all(*|reveal) moveto(mygraveyard)])) oneshot )! optiontwoend afterrevealed all(tobecast|mygraveyard,mylibrary) transforms((,newability[may name(Put on battlefield) moveto(mybattlefield)])) oneshot afterrevealedend revealend
auto=if compare(fullpaid)~equalto~17 then if type(land[zpos<=17]|mylibrary)~equalto~0 then name(Look top cards) name(Look top cards) name(Look top cards) reveal:17 optionone name(Choose legendary permanents) target(<upto:17>*[legendary;manacost<=17;-instant;-sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Put in graveyard) target(*|myreveal) moveto(mygraveyard) and!( all(*|reveal) moveto(mygraveyard) )! optiontwoend revealend
auto=if compare(fullpaid)~equalto~18 then if type(land[zpos<=18]|mylibrary)~morethan~0 then name(Look top cards) name(Look top cards) name(Look top cards) reveal:18 optionone name(Choose legendary permanents) target(<upto:18>*[legendary;manacost<=18;-instant;-sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Choose land cards) target(<18>land|myreveal) moveto(mygraveyard) and!( transforms((,newability[becomes(tobecast) ueot],newability[all(*|reveal) moveto(mygraveyard)])) oneshot )! optiontwoend afterrevealed all(tobecast|mygraveyard,mylibrary) transforms((,newability[may name(Put on battlefield) moveto(mybattlefield)])) oneshot afterrevealedend revealend
auto=if compare(fullpaid)~equalto~18 then if type(land[zpos<=18]|mylibrary)~equalto~0 then name(Look top cards) name(Look top cards) name(Look top cards) reveal:18 optionone name(Choose legendary permanents) target(<upto:18>*[legendary;manacost<=18;-instant;-sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Put in graveyard) target(*|myreveal) moveto(mygraveyard) and!( all(*|reveal) moveto(mygraveyard) )! optiontwoend revealend
auto=if compare(fullpaid)~equalto~19 then if type(land[zpos<=19]|mylibrary)~morethan~0 then name(Look top cards) name(Look top cards) name(Look top cards) reveal:19 optionone name(Choose legendary permanents) target(<upto:19>*[legendary;manacost<=19;-instant;-sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Choose land cards) target(<19>land|myreveal) moveto(mygraveyard) and!( transforms((,newability[becomes(tobecast) ueot],newability[all(*|reveal) moveto(mygraveyard)])) oneshot )! optiontwoend afterrevealed all(tobecast|mygraveyard,mylibrary) transforms((,newability[may name(Put on battlefield) moveto(mybattlefield)])) oneshot afterrevealedend revealend
auto=if compare(fullpaid)~equalto~19 then if type(land[zpos<=19]|mylibrary)~equalto~0 then name(Look top cards) name(Look top cards) name(Look top cards) reveal:19 optionone name(Choose legendary permanents) target(<upto:19>*[legendary;manacost<=19;-instant;-sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Put in graveyard) target(*|myreveal) moveto(mygraveyard) and!( all(*|reveal) moveto(mygraveyard) )! optiontwoend revealend
auto=if compare(fullpaid)~morethan~19 then if type(land[zpos<=20]|mylibrary)~morethan~0 then name(Look top cards) name(Look top cards) name(Look top cards) reveal:20 optionone name(Choose legendary permanents) target(<upto:20>*[legendary;manacost<=20;-instant;-sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Choose land cards) target(<20>land|myreveal) moveto(mygraveyard) and!( transforms((,newability[becomes(tobecast) ueot],newability[all(*|reveal) moveto(mygraveyard)])) oneshot )! optiontwoend afterrevealed all(tobecast|mygraveyard,mylibrary) transforms((,newability[may name(Put on battlefield) moveto(mybattlefield)])) oneshot afterrevealedend revealend
auto=if compare(fullpaid)~morethan~19 then if type(land[zpos<=20]|mylibrary)~equalto~0 then name(Look top cards) name(Look top cards) name(Look top cards) reveal:20 optionone name(Choose legendary permanents) target(<upto:20>*[legendary;manacost<=20;-instant;-sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Put in graveyard) target(*|myreveal) moveto(mygraveyard) and!( all(*|reveal) moveto(mygraveyard) )! optiontwoend revealend
text=(You may cast a legendary sorcery only if you control a legendary creature or planeswalker.) -- Look at the top X cards of your library. You may put any number of land and/or legendary permanent cards with converted mana cost X or less from among them onto the battlefield. Put the rest into your graveyard.
mana={X}{G}{G}
type=Legendary Sorcery
[/card]
@@ -38640,8 +38693,8 @@ toughness=3
[/card]
[card]
name=Karador, Ghost Chieftain
anyzone=foreach(creature|mygraveyard) changecost(colorless:-1) forcedalive
auto=lord(creature[maxCast(creature)1]|mygraveyard) canPlayFromGraveyard
anyzone=thisforeach(variable{type:creature:mygraveyard}>0) changecost(colorless:-1) forcedalive
auto=this(variable{controllerturn}>0) {0}:name(Cast from your graveyard) target(creature|mygraveyard) transforms((,newability[canPlayFromGraveyard])) ueot limit:1
text=This spell costs {1} less to cast for each creature card in your graveyard. -- During each of your turns, you may cast one creature card from your graveyard.
mana={5}{B}{G}{W}
type=Legendary Creature
@@ -38900,7 +38953,7 @@ type=Sorcery
[card]
name=Kaza, Roil Chaser
abilities=flying,haste
auto={T}:transforms((,newability[foreach(creature[wizard]|myBattlefield) lord(*[instant;sorcery]|mycastingzone) altercost(colorless,-1)])) oneshot ueot
auto={T}:name(Next spell cost less) target(*[instant;sorcery]|myhand) transforms((,newability[changecost(colorless:-cardcounttypewizard) forcedalive])) ueot
text=Flying, haste -- {T}: The next instant or sorcery spell you cast this turn costs {X} less to cast, where X is the number of Wizards you control as this ability resolves.
mana={U}{R}
type=Legendary Creature
@@ -40641,9 +40694,10 @@ toughness=4
[card]
name=Kunoros, Hound of Athreos
abilities=vigilance,menace,lifelink
auto=@movedto(creature|battlefield) from(graveyard):all(trigger[to]) moveto(ownergraveyard)
auto=maxCast(*|graveyard)0
auto=maxCast(*|graveyard)0 opponent
auto=@movedto(creature|battlefield) from(graveyard):name(Creatures can't enter from graveyard) all(trigger[to]) name(Creatures can't enter from graveyard) moveto(ownergraveyard)
auto=@movedto(*|stack) from(graveyard):name(Spells can't be casted from graveyard) all(trigger[to]) name(Spells can't be casted from graveyard) spellmover(graveyard)
auto=lord(*[-land]|graveyard) changecost(colorless:+999) forcedalive
auto=lord(*[-land]|graveyard) -canPlayFromGraveyard
text=Vigilance, menace, lifelink -- Creature cards in graveyards can't enter the battlefield. -- Players can't cast spells from graveyards.
mana={1}{W}{B}
type=Legendary Creature
@@ -41186,7 +41240,7 @@ toughness=4
[/card]
[card]
name=Lavabelly Sliver
auto=lord(sliver|mybattlefield) transforms((,newability[@movedTo(mybattlefield) from(this):damage:1 target(*[planeswalker;player])]))
auto=@movedTo(sliver|mybattlefield):name(Sliver entered battlefield) all(trigger[to]) name(Sliver entered battlefield) transforms((,newability[name(Deals 1 damage) damage:1 target(player^planeswalker)],newability[life:1 controller])) oneshot
text=Sliver creatures you control have "When this creature enters the battlefield, it deals 1 damage to target player or planeswalker and you gain 1 life."
mana={1}{R}{W}
type=Creature
@@ -41912,10 +41966,12 @@ toughness=5
[/card]
[card]
name=Life // Death
auto=choice {G}:lord(land|myBattlefield) becomes(Creature,1/1) ueot
auto=choice {1}{B}:target(creature|myGraveyard) moveTo(myBattlefield) then life:-manacost controller
text=All lands you control become 1/1 creatures until end of turn. They're still lands. -- Return target creature card from your graveyard to the battlefield. You lose life equal to its converted mana cost.
mana={0}
other={1}{B} name(Death)
otherrestriction=type(creature|myGraveyard)~morethan~0
auto=ifnot paid(alternative) then name(Lands become creatures) name(Lands become creatures) all(land|myBattlefield) becomes(Creature,1/1) ueot
auto=if paid(alternative) then name(Return creature) name(Return creature) target(creature|myGraveyard) moveTo(myBattlefield) and!( transforms((,newability[life:-manacost controller])) oneshot )!
text=All lands you control become 1/1 creatures until end of turn. They're still lands. // Return target creature card from your graveyard to the battlefield. You lose life equal to its converted mana cost.
mana={G}
type=Sorcery
[/card]
[card]
@@ -41958,7 +42014,8 @@ type=Sorcery
[/card]
[card]
name=Light Up the Stage
auto=moveto(exile) and!(transforms((,canplayfromexile))ueot)! all(*[zpos<=2]|mylibrary)
auto=name(Exile top 2 cards) all(*[zpos<=2]|mylibrary) moveto(exile) and!( transforms((,newability[counter(0/0.1.PlayExile)],newability[@each opponent beginofturn restriction{compare(hascntplayexile)~morethan~0}:if cantargetcard(*[-canplayfromexile]|*) then removeallcounters(0/0.1.PlayExile)])) forever )!
auto=emblem transforms((,newability[lord(*[counter{0/0.1.PlayExile}]|myexile) canplayfromexile])) uent
text=Spectacle {R} (You may cast this spell for its spectacle cost rather than its mana cost if an opponent lost life this turn.) -- Exile the top two cards of your library. Until the end of your next turn, you may play those cards.
other={R} name(Spectacle)
otherrestriction=compare(oplifelost)~morethan~0
@@ -43460,7 +43517,8 @@ toughness=5
[/card]
[card]
name=Lurrus of the Dream-Den
auto=@each my upkeep:may name(Choose a permanent in graveyard) target(*[-instant;-sorcery]|mygraveyard) transforms((,newability[canplayfromgraveyard],newability[{2}:name(Cast from graveyard for 2) activate castcard(alternative)])) ueot
abilities=lifelink
auto={0}:name(Choose a permanent in graveyard) target(*[-instant;-sorcery]|mygraveyard) transforms((,newability[canplayfromgraveyard])) ueot limit:1
text=Companion - Each permanent card in your starting deck has converted mana cost 2 or less. (If this card is your chosen companion, you may cast it once from outside the game.) -- Lifelink -- During each of your turns, you may cast one permanent spell with converted mana cost 2 or less from your graveyard.
mana={1}{WB}{WB}
type=Legendary Creature
@@ -43554,8 +43612,7 @@ subtype=Equipment
[/card]
[card]
name=Mad Dog
auto=@each my endofturn restriction{didntattack}:sacrifice
auto=@each my endofturn restriction{type(Mad Dog[fresh]|mybattlefield)~morethan~0}:sacrifice
auto=@each my endofturn restriction{didntattack}:if cantargetcard(*[-fresh]|*) then name(Sacrifice) name(Sacrifice) sacrifice
text=At the beginning of your end step, if Mad Dog didn't attack or come under your control this turn, sacrifice it.
mana={1}{R}
type=Creature
@@ -44350,7 +44407,8 @@ toughness=3
[card]
name=Marauding Raptor
auto=lord(creature|mycastingzone) altercost(colorless, -1)
auto=@movedto(creature|myBattlefield):all(trigger) damage:2 && if cantargetcard(creature[dinosaur]) then 2/0 ueot]))
auto=@movedto(other creature|myBattlefield):name(Deals 2 damage) all(trigger[to]) damage:2
auto=@damaged(other creature[dinosaur]|myBattlefield) from(this):name(Gets 2/0) 2/0 ueot
text=Creature spells you cast cost {1} less to cast. -- Whenever another creature enters the battlefield under your control, Marauding Raptor deals 2 damage to it. If a Dinosaur is dealt damage this way, Marauding Raptor gets +2/+0 until end of turn.
mana={1}{R}
type=Creature
@@ -46516,7 +46574,7 @@ auto=@movedto(*|mystack):counter(0/0,1,MonkEffect)
auto=this(variable{hascntmonkeffect}=1) lord(*|mycastingzone) altercost(colorless, -1)
auto=@each endofturn restriction{compare(hascntmonkeffect)~morethan~0}:removeallcounters(0/0,1,MonkEffect)
auto=this(variable{hascntlevel}=1) {W}{U}:name(Level 2) counter(0/0,1,Level) asSorcery
auto=@counteradded(0/0.1.Level) restriction{compare(hascntlevel)~equalto~2}:may name(Return non-land permanent) target(*[-land]|battlefield) moveto(ownerhand)
auto=@counteradded(0/0.1.Level) from(this) restriction{compare(hascntlevel)~equalto~2}:may name(Return non-land permanent) target(*[-land]|battlefield) moveto(ownerhand)
auto=this(variable{hascntlevel}=2) {1}{W}{U}:name(Level 3) counter(0/0,1,Level) asSorcery
auto=@each my upkeep restriction{compare(hascntlevel)~morethan~2}:name(Exile top card) all(*[zpos=1]|mylibrary) moveto(myexile) and!( transforms((,newability[@movedto(*|mystack):canplayfromexile ueot])) forever )!
text=(Gain the next level as a sorcery to add its ability.) -- The second spell you cast each turn costs {1} less to cast. -- {W}{U}: Level 2 -- When this Class becomes level 2, return up to one target nonland permanent to its owner's hand. -- {1}{W}{U}: Level 3 -- At the beginning of your upkeep, exile the top card of your library. For as long as it remains exiled, it has "You may cast this card from exile as long as you've cast another spell this turn."
@@ -47011,11 +47069,11 @@ type=Artifact
[/card]
[card]
name=Muldrotha, the Gravetide
auto=@each my firstmain restriction{type(land|myGraveyard)~morethan~0}:may name(Play land from graveyard) ability$!name(Play land from graveyard) name(Play land from graveyard) target(land|myGraveyard) activate castcard(normal)!$ controller
auto=@each my firstmain restriction{type(creature|myGraveyard)~morethan~0}:may name(Cast creature from graveyard) ability$!name(Cast creature from graveyard) name(Cast creature from graveyard) target(creature|myGraveyard) activate castcard(normal)!$ controller
auto=@each my firstmain restriction{type(planeswalker|myGraveyard)~morethan~0}:may name(Cast planeswalker from graveyard) ability$!name(Cast planeswalker from graveyard) name(Cast planeswalker from graveyard) target(planeswalker|myGraveyard) activate castcard(normal)!$ controller
auto=@each my firstmain restriction{type(enchantment|myGraveyard)~morethan~0}:may name(Cast enchantment from graveyard) ability$!name(Cast enchantment from graveyard) name(Cast enchantment from graveyard) target(enchantment|myGraveyard) activate castcard(normal)!$ controller
auto=@each my firstmain restriction{type(artifact|myGraveyard)~morethan~0}:may name(Cast artifact from graveyard) ability$!name(Cast artifact from graveyard) name(Cast artifact from graveyard) target(artifact|myGraveyard) activate castcard(normal)!$ controller
auto=this(variable{controllerturn}>0) {0}:name(May play a land from graveyard) name(May play a land from graveyard) target(land|myGraveyard) canplayfromgraveyard ueot limit:1
auto=this(variable{controllerturn}>0) {0}:name(May cast a creature from graveyard) name(May cast a creature from graveyard) target(creature|myGraveyard) canplayfromgraveyard ueot limit:1
auto=this(variable{controllerturn}>0) {0}:name(May cast a planeswalker from graveyard) name(May cast a planeswalker from graveyard) target(planeswalker|myGraveyard) canplayfromgraveyard ueot limit:1
auto=this(variable{controllerturn}>0) {0}:name(May cast an enchantment from graveyard) name(May cast an enchantment from graveyard) target(enchantment|myGraveyard) canplayfromgraveyard ueot limit:1
auto=this(variable{controllerturn}>0) {0}:name(May cast an artifact from graveyard) name(May cast an artifact from graveyard) target(artifact|myGraveyard) canplayfromgraveyard ueot limit:1
text=During each of your turns, you may play a land and cast a permanent spell of each permanent type from your graveyard. (If a card has multiple permanent types, choose one as you play it.)
mana={3}{B}{G}{U}
type=Legendary Creature
@@ -47544,7 +47602,8 @@ toughness=2
[/card]
[card]
name=Naga Oracle
auto=deplete:3 controller && transforms((,newability[may moveto(mylibrary) target(<anyamount>*|mygraveyard)])) ueot
aicode=activate transforms((,newability[all(*[zpos<=3]|mylibrary) moveto(mygraveyard) and!( transforms((,newability[may name(Put back on top) moveto(mylibrary)])) oneshot )!])) oneshot
auto=name(Look top 3 cards) reveal:3 optionone name(Put in graveyard) target(<upto:3>*|reveal) moveto(mygraveyard) optiononeend optiontwo name(Put back on top) target(<3>*|reveal) moveto(mylibrary) optiontwoend revealend
text=When Naga Oracle enters the battlefield, look at the top three cards of your library. Put any number of them into your graveyard and the rest back on top of your library in any order.
mana={3}{U}
type=Creature
@@ -47581,10 +47640,10 @@ subtype=Aura
[/card]
[card]
name=Nahiri's Lithoforming
target=<x>land|myBattlefield
auto=transforms((,newability[sacrifice],newability[draw:1])) ueot
auto=maxPlay(land)+1 ueot
target=<prex>land|myBattlefield
auto=emblem transforms((,newability[_LANDFALL_all(trigger[to]) tap(noevent)])) ueot
auto=sacrifice and!( draw:1 controller )!
auto=maxPlay(land)+1 ueot
text=Sacrifice X lands. For each land sacrificed this way, draw a card. You may play X additional lands this turn. Lands you control enter the battlefield tapped this turn.
mana={X}{R}{R}
type=Sorcery
@@ -48483,7 +48542,7 @@ backside=Nicol Bolas, the Arisen
restriction=compare(isflipped)~equalto~0
anyzone={0}:doubleside(backside)
auto=ability$!name(Discard a card) name(Discard a card) reject notatarget(*|myhand)!$ opponent
auto={4}{U}{B}{R}:name(Exile and transform) moveto(exile) and!(moveto(ownerbattlefield) and!( flip(backside) )! )! asSorcery
auto={4}{U}{B}{R}:name(Exile and transform) moveto(exile) and!( flip(backside) forcetype(Legendary Planeswalker) )! asSorcery
text=Flying -- When Nicol Bolas, the Ravager enters the battlefield, each opponent discards a card. -- {4}{U}{B}{R}: Exile Nicol Bolas, the Ravager, then return him to the battlefield transformed under his owner's control. Activate this ability only any time you could cast a sorcery. // Nicol Bolas, the Arisen
mana={1}{U}{B}{R}
type=Legendary Creature
@@ -48581,9 +48640,8 @@ type=Sorcery
[/card]
[card]
name=Nightmare's Thirst
target=creature
auto=foreach(lifegain) -X/-X
auto=life:1
auto=target(creature|battlefield) -lifegain/-lifegain ueot
auto=life:1 controller
text=You gain 1 life. Target creature gets -X/-X until end of turn, where X is the amount of life you gained this turn.
mana={B}
type=Instant
@@ -48855,10 +48913,12 @@ toughness=4
[card]
name=Nine Lives
abilities=opponentshroud
auto=preventalldamage to(controller)
auto=@damaged(controller):counter(0/0,1,Incarnation) all(this)
auto=this(counter{0/0.9.Incarnation}) moveTo(Exile)
auto=@movedTo(this|nonbattlezone) from(battlefield):wingame opponent
auto=@damaged(controller):name(Put incarnation counter) counter(0/0,1,Incarnation)
auto=counter(0/0.1.NineEffect) notrg
auto=all(other *[Nine Lives]|myBattlefield) removeallcounters(0/0.1.NineEffect)
auto=@damaged(controller) restriction{compare(hascntNineEffect)~morethan~0}:name(Can't be damaged) life:thatmuch controller
auto=@counteradded(0/0.1.Incarnation) from(this) restriction{compare(hascntincarnation)~morethan~8}:name(Exile card) moveTo(Exile)
auto=@movedTo(this|nonbattlezone) from(battlefield):name(You loose game) wingame opponent
text=Hexproof -- If a source would deal damage to you, prevent that damage and put an incarnation counter on Nine Lives. -- When there are nine or more incarnation counters on Nine Lives, exile it. -- When Nine Lives leaves the battlefield, you lose the game.
mana={1}{W}{W}
type=Enchantment
@@ -51050,9 +51110,8 @@ type=Instant
[/card]
[card]
name=Out of Time
auto=counter(0/0,type:creature:battlefield,Time)
auto=vanishing:0
auto=all(creature|battlefield) transforms((,newability[untap],newability[phaseout])) forever
auto=vanishing:type:creature:battlefield
auto=all(creature|battlefield) transforms((,newability[untap],newability[phaseout])) ueot
auto=@each upkeep restriction{compare(hascnttime)~morethan~0}:phaseout all(creature|battlefield)
auto=@each my upkeep restriction{compare(hascnttime)~equalto~0}:sacrifice
text=When Out of Time enters the battlefield, untap all creatures, then phase them out until Out of Time leaves the battlefield. Put a time counter on Out of Time for each creature phased out this way. -- Vanishing (At the beginning of your upkeep, remove a time counter from this enchantment. When the last is removed, sacrifice it.)
@@ -51514,8 +51573,7 @@ subtype=Equipment
[/card]
[card]
name=Pale Moon
auto=lord(land|mybattlefield) loseabilities && transforms((,newability[producecolor:land])) ueot
auto=lord(land|opponentbattlefield) loseabilities && transforms((,newability[producecolor:land])) ueot
auto=emblem transforms((,newability[lord(land[-basic]|battlefield) transforms((,newability[loseabilities],newability[{T}:name(Add colorless) add{C}]))])) ueot
text=Until end of turn, if a player taps a nonbasic land for mana, it produces colorless mana instead of any other type.
mana={1}{U}
type=Instant
@@ -54420,7 +54478,8 @@ toughness=4
[card]
name=Prosper, Tome-Bound
abilities=deathtouch
auto=@each my end:name(Exile top card) all(*[zpos=1]|mylibrary) moveto(myexile) and!( transforms((,newability[counter(0/0.1.ProsperEffect)],newability[this(counter{0/0.1.ProsperEffect}>0) canplayfromexile],newability[phaseaction[my end next once checkex] counter(0/0.-1.ProsperEffect)])) forever )!
auto=@each my end:name(Exile top card) all(*[zpos<=1]|mylibrary) moveto(exile) and!( transforms((,newability[counter(0/0.1.PlayExile)],newability[@each opponent beginofturn restriction{compare(hascntplayexile)~morethan~0}:if cantargetcard(*[-canplayfromexile]|*) then removeallcounters(0/0.1.PlayExile)])) forever )!
auto=@each my end:emblem transforms((,newability[lord(*[counter{0/0.1.PlayExile}]|myexile) canplayfromexile])) uent
auto=@movedto(*|mystack,mybattlefield) from(myexile):name(Create treasure) token(Treasure Sur)
text=Deathtouch -- Mystic Arcanum - At the beginning of your end step, exile the top card of your library. Until the end of your next turn, you may play that card. -- Pact Boon - Whenever you play a card from exile, create a Treasure token.
mana={2}{B}{R}
@@ -54644,8 +54703,8 @@ type=Enchantment
name=Psychic Impetus
target=creature
aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot
auto=teach(creature) transforms((,newability[counter(0/0.1.Goaded)],newability[this(counter{0/0.1.Goaded}>0) mustattack],newability[_ATTACKING_scry:2 scrycore delayed dontshow donothing scrycoreend scryend]))
auto=2/2
auto=teach(creature) transforms((,newability[2/2],newability[counter(0/0.1.Goaded)],newability[this(counter{0/0.1.Goaded}>0) mustattack]))
auto=@combat(attacking) source(mytgt):name(Scry 2) scry:2 scrycore delayed dontshow donothing scrycoreend scryend
text=Enchant creature -- Enchanted creature gets +2/+2 and is goaded. (It attacks each combat if able and attacks a player other than you if able.) -- Whenever enchanted creature attacks, you scry 2.
mana={2}{U}
type=Enchantment
@@ -55699,9 +55758,10 @@ type=Instant
[/card]
[card]
name=Rain of Thorns
auto=choice name(Destroy target artifact) destroy target(artifact)
auto=choice name(Destroy target land) destroy target(land)
auto=name(More...) emblem transforms((,newability[({0}:name(Destroy target artifact) destroy target(artifact)],newability[{0}:name(Destroy target land) destroy target(land)])) ueot
restriction=type(*[artifact;land]|battlefield)~morethan~0
auto=if type(artifact|battlefield)~morethan~0 then choice name(Destroy artifact) name(Destroy artifact) destroy target(artifact|battlefield)
auto=if type(land|battlefield)~morethan~0 then choice name(Destroy land) name(Destroy land) destroy target(land|battlefield)
auto=if type(artifact|battlefield)~morethan~0 then if type(land|battlefield)~morethan~0 then choice name(Choose both) name(Choose both) name(Choose both) destroy target(artifact|battlefield) and!( name(Destroy land) destroy target(land|battlefield) )!
text=Choose one or both -- Destroy target artifact. -- Destroy target land.
mana={4}{G}{G}
type=Sorcery
@@ -56728,8 +56788,7 @@ auto=aslongas(artifact[manacost=16]|myBattlefield) lord(artifact|mybattlefield)
auto=aslongas(artifact[manacost=17]|myBattlefield) lord(artifact|mybattlefield) transforms((,newability[protection from(*[manacost=17])]))
auto=aslongas(artifact[manacost=18]|myBattlefield) lord(artifact|mybattlefield) transforms((,newability[protection from(*[manacost=18])]))
auto=aslongas(artifact[manacost=19]|myBattlefield) lord(artifact|mybattlefield) transforms((,newability[protection from(*[manacost=19])]))
auto=aslongas(artifact[manacost=20]|myBattlefield) lord(artifact|mybattlefield) transforms((,newability[protection from(*[manacost=20])]))
auto=aslongas(artifact[manacost>20]|myBattlefield) lord(artifact|mybattlefield) transforms((,newability[protection from(*[manacost>20])]))
auto=aslongas(artifact[manacost>=20]|myBattlefield) lord(artifact|mybattlefield) transforms((,newability[protection from(*[manacost>=20])]))
text=Artifacts you control have protection from each converted mana cost among artifacts you control. -- Partner (You can have two commanders if both have partner.)
mana={3}{W}
type=Legendary Creature
@@ -56800,7 +56859,8 @@ type=Sorcery
[/card]
[card]
name=Reckless Impulse
auto=all(*[zpos<=2]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile])) ueot )!
auto=name(Exile top 2 cards) all(*[zpos<=2]|mylibrary) moveto(exile) and!( transforms((,newability[counter(0/0.1.PlayExile)],newability[@each opponent beginofturn restriction{compare(hascntplayexile)~morethan~0}:if cantargetcard(*[-canplayfromexile]|*) then removeallcounters(0/0.1.PlayExile)])) forever )!
auto=emblem transforms((,newability[lord(*[counter{0/0.1.PlayExile}]|myexile) canplayfromexile])) uent
text=Exile the top two cards of your library. Until the end of your next turn, you may play those cards.
mana={1}{R}
type=Sorcery
@@ -58608,9 +58668,10 @@ type=Instant
[/card]
[card]
name=Rise to Glory
auto=choice name(Return target creature...) moveTo(myBattlefield) target(creature|myGraveyard)
auto=choice name(Return target aura...) moveTo(myBattlefield) target(enchantment[aura]|myGraveyard)
auto=choice name(Return target creature and aura...) moveTo(myBattlefield) target(creature|myGraveyard) && moveTo(myBattlefield) target(enchantment[aura]|myGraveyard)
restriction=type(*[creature;aura]|mygraveyard)~morethan~0
auto=if type(creature|mygraveyard)~morethan~0 then choice name(Return creature) name(Return creature) moveTo(myBattlefield) target(creature|myGraveyard)
auto=if type(enchantment[aura]|mygraveyard)~morethan~0 then choice name(Return aura) name(Return aura) moveTo(myBattlefield) target(enchantment[aura]|myGraveyard)
auto=if type(creature|mygraveyard)~morethan~0 then if type(enchantment[aura]|mygraveyard)~morethan~0 then choice name(Choose both) name(Choose both) name(Choose both) target(creature|myGraveyard) moveTo(myBattlefield) and!( name(Return aura) moveTo(myBattlefield) target(enchantment[aura]|myGraveyard) )!
text=Choose one or both -- Return target creature card from your graveyard to the battlefield. -- Return target Aura card from your graveyard to the battlefield.
mana={3}{W}{B}
type=Sorcery
@@ -59323,7 +59384,8 @@ toughness=4
[card]
name=Rooting Moloch
abilities=cycling
auto=moveTo(exile) target(*[cycling]|myGraveyard) and!( transforms((newability[canplayfromexile])) uynt )!
auto=name(Exile card with cycling) target(*[cycling]|myGraveyard) moveto(exile) and!( transforms((,newability[counter(0/0.1.PlayExile)],newability[@each opponent beginofturn restriction{compare(hascntplayexile)~morethan~0}:if cantargetcard(*[-canplayfromexile]|*) then removeallcounters(0/0.1.PlayExile)])) forever )!
auto=emblem transforms((,newability[lord(*[counter{0/0.1.PlayExile}]|myexile) canplayfromexile])) uent
autohand=__CYCLING__({2})
text=When Rooting Moloch enters the battlefield, exile target card with a cycling ability from your graveyard. Until the end of your next turn, you may play that card. -- Cycling {2} ({2}, Discard this card: Draw a card.)
mana={4}{R}
@@ -59534,8 +59596,7 @@ type=Sorcery
[/card]
[card]
name=Rousing of Souls
auto=reveal:1 revealzone(mylibrary) optionone if type(land|reveal)~lessthan~1 then token(Spirit,Creature Spirit,1/1,white,flying) optiononeend optiontwo target(<1>*|reveal) moveto(mylibrary) optiontwoend afterrevealed draw:1 controller afterrevealedend revealend
auto=reveal:1 revealzone(opponentlibrary) optionone if type(land|reveal)~lessthan~1 then token(Spirit,Creature Spirit,1/1,white,flying) optiononeend optiontwo target(<1>*|reveal) moveto(opponentlibrary) optiontwoend afterrevealed draw:1 opponent afterrevealedend revealend
auto=all(*[zpos=1]|library) moveto(myhand) and!( transforms((,newability[if cantargetcard(*[-land]|*) then token(Spirit^Creature Spirit^1/1^white^flying)],newability[choice name(Put back and draw) moveto(ownerlibrary) and!( draw:1 )!])) oneshot )!
text=Parley - Each player reveals the top card of his or her library. For each nonland card revealed this way, you put a 1/1 white Spirit creature token with flying onto the battlefield. Then each player draws a card.
mana={2}{W}
type=Sorcery
@@ -60333,8 +60394,8 @@ toughness=1
[card]
name=Sage-Eye Avengers
abilities=prowess
auto=@movedTo(*[-creature]|mystack):1/1 ueot
auto=_ATTACKING_may moveTo(ownerhand) target(creature[power<=pminus1minusend])
auto=@movedTo(*[-creature]|mystack):name(Gets 1/1) 1/1 ueot
auto=_ATTACKING_may name(Return creature) transforms((,newability[name(Choose creature) target(creature[power<=pminus1minusend]|battlefield) moveTo(ownerhand)])) oneshot
text=Prowess (Whenever you cast a noncreature spell, this creature gets +1/+1 until end of turn.) -- Whenever Sage-Eye Avengers attacks, you may return target creature to its owner's hand if its power is less than Sage-Eye Avengers's power.
mana={4}{U}{U}
type=Creature
@@ -60778,7 +60839,7 @@ type=Artifact
[card]
name=Sandstone Oracle
abilities=flying
auto=foreach(*|targetedpersonshand) if type(*|targetedpersonshand)~morethan~type(*|myhand) then draw:1
auto=if type(*|opponenthand)~morethan~type(*|myhand) then name(Draw cards) name(Draw cards) draw:ohandcountminusphandcountminusend controller
text=Flying -- When Sandstone Oracle enters the battlefield, choose an opponent. If that player has more cards in hand than you, draw cards equal to the difference.
mana={7}
type=Artifact Creature
@@ -64043,7 +64104,8 @@ type=Instant
name=Showdown of the Skalds
auto=counter(0/0,1,Lore)
auto=@each my firstmain:counter(0/0,1,Lore)
auto=name(Exile top 4 cars) all(*[zpos<=4]|mylibrary) moveto(myexile) and!( transforms((,newability[counter(0/0.1.ShowdownEffect)],newability[this(variable{hascntshowdowneffect}>0) canplayfromexile],newability[phaseaction[opponent upkeep once checkex] counter(0/0.1.ShowdownEffect)],newability[phaseaction[my upkeep once checkex] counter(0/0.1.ShowdownEffect)],newability[phaseaction[endofturn checkex] counter(0/0.-1.ShowdownEffect)])) forever )!])) ueot
auto=name(Exile top 4 cards) all(*[zpos<=4]|mylibrary) moveto(exile) and!( transforms((,newability[counter(0/0.1.PlayExile)],newability[@each opponent beginofturn restriction{compare(hascntplayexile)~morethan~0}:if cantargetcard(*[-canplayfromexile]|*) then removeallcounters(0/0.1.PlayExile)])) forever )!
auto=emblem transforms((,newability[lord(*[counter{0/0.1.PlayExile}]|myexile) canplayfromexile])) uent
auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.2.Lore}=) emblem transforms((,newability[@movedTo(*|mystack):name(Put 1/1 counter) counter(1/1) target(creature|mybattlefield)])) ueot
auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.3.Lore}) emblem transforms((,newability[@movedTo(*|mystack):name(Put 1/1 counter) counter(1/1) target(creature|mybattlefield)])) ueot
auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.3.Lore}) sacrifice(this)
@@ -64900,12 +64962,9 @@ toughness=1
[/card]
[card]
name=Single Combat
auto=maxCast(creature)0 opponent
auto=maxCast(planeswalker)0 opponent
auto=maxCast(creature)0 controller
auto=maxCast(planeswalker)0 controller
auto=ability$! notatarget(<type:*[creature;planeswalker]:mybattlefieldminus1minusend>*[creature;planeswalker]|mybattlefield) sacrifice !$ controller
auto=ability$! notatarget(<type:*[creature;planeswalker]:mybattlefieldminus1minusend>*[creature;planeswalker]|mybattlefield) sacrifice !$ opponent
auto=emblem transforms((,newability[maxCast(planeswalker)0 controller],newability[maxCast(creature)0 controller],newability[maxCast(planeswalker)0 opponent],newability[maxCast(creature)0 opponent])) uent
auto=ability$!name(Sacrifice creatures) name(Sacrifice creatures) notatarget(<type:*[creature;planeswalker]:mybattlefieldminus1minusend>*[creature;planeswalker]|mybattlefield) sacrifice !$ controller
auto=ability$!name(Sacrifice creatures) name(Sacrifice creatures) notatarget(<type:*[creature;planeswalker]:mybattlefieldminus1minusend>*[creature;planeswalker]|mybattlefield) sacrifice !$ opponent
text=Each player chooses a creature or planeswalker they control, then sacrifices the rest. Players can't cast creature or planeswalker spells until the end of your next turn.
mana={3}{W}{W}
type=Sorcery
@@ -64991,9 +65050,9 @@ toughness=2
[card]
name=Siona, Captain of the Pyleas
abilities=hiddenface
aicode=activate target(aura[zpos<=7]|mylibrary) moveto(ownerhand)
auto=reveal:7 optionone name(Look at the top seven cards) target(aura|reveal) moveto(myhand) optiononeend optiontwo name(put on bottom) target(<7>*|reveal) bottomoflibrary optiontwoend revealend
auto=@targeted(creature|myBattlefield) from(aura|myzones):token(Soldier,Creature Human Soldier,1/1,white)
aicode=activate transforms((,newability[if type(aura[zpos<=7]|myLibrary)~morethan~0 then target(aura[zpos<=7]|myLibrary) moveTo(myHand) and!( all(other *[zpos<=7]|mylibrary) moveto(myreveal) and!( bottomoflibrary )! )! else all(*[zpos<=7]|mylibrary) moveto(myreveal) and!( bottomoflibrary )! ])) oneshot
auto=name(Look at the top seven cards) reveal:7 optionone name(Choose an aura) target(aura|reveal) moveto(myhand) optiononeend optiontwo name(Put on bottom) target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend
auto=@targeted(creature|myBattlefield) from(aura|myzones):name(Create soldier) token(Soldier,Creature Human Soldier,1/1,white)
text=When Siona, Captain of the Pyleas enters the battlefield, look at the top seven cards of your library. You may reveal an Aura card from among them and put it into your hand. Put the rest on the bottom of your library in a random order. -- Whenever an Aura you control becomes attached to a creature you control, create a 1/1 white Human Soldier creature token.
mana={1}{G}{W}
type=Legendary Creature
@@ -65091,9 +65150,9 @@ toughness=2
[/card]
[card]
name=Sisters of Stone Death
auto={G}:target(creature|opponentBattlefield) mustblock ueot
auto={B}{G}:@combat(blocking,blocked) source(this):moveTo(exile) target(creature[blocking,blocked]) oneshot
auto={2}{B}:moveTo(mybattlefield) target(creature|opponentexile)
auto={G}:name(Opponent creature must block) target(creature|opponentBattlefield) transforms((,newability[mustblock])) ueot
auto=@combat(blocking,attacking) source(this):transforms((,newability[{B}{G}:name(Exile opponent creature) target(creature[blocking;attacking]|opponentBattlefield) moveto(opponentexile) and!( counter(0/0.1.SistersExiled) notrg )!])) ueot
auto={2}{B}:name(Return exiled creature) target(creature[counter{0/0.1.SistersExiled}]|opponentexile) moveTo(mybattlefield)
text={G}: Target creature blocks Sisters of Stone Death this turn if able. -- {B}{G}: Exile target creature blocking or blocked by Sisters of Stone Death. -- {2}{B}: Put a creature card exiled with Sisters of Stone Death onto the battlefield under your control.
mana={4}{B}{B}{G}{G}
type=Legendary Creature
@@ -65302,7 +65361,7 @@ toughness=3
[/card]
[card]
name=Skinshifter
auto={G}:ability$!name(Choose one) choice name(Becomes Rhino) transforms((Rhino Creature,setpower=4,settoughness=4,green,trample)) ueot all(this) _ choice name(Becomes Bird) transforms((Bird Creature,setpower=2,settoughness=2,green,flying)) ueot all(this) _ choice name(Becomes plaint) transforms((Plant Creature,setpower=0,settoughness=8,green)) ueot all(this)!$ controller limit:1
auto={G}:name(Choose transformation) transforms((,newability[choice name(Becomes Rhino) becomes(Rhino Creature^4/4^green^trample) ueot],newability[choice name(Becomes Bird) becomes(Bird Creature^2/2^green^flying) ueot],newability[choice name(Becomes Plant) becomes(Plant Creature^0/8^green) ueot])) ueot limit:1
text={G}: Choose one Until end of turn, Skinshifter becomes a 4/4 Rhino and gains trample; or until end of turn, Skinshifter becomes a 2/2 Bird and gains flying; or until end of turn, Skinshifter becomes a 0/8 Plant. Activate this ability only once each turn.
mana={1}{G}
type=Creature
@@ -65509,7 +65568,7 @@ type=Sorcery
[card]
name=Skullwinder
abilities=deathtouch
auto=target(*|myGraveyard) moveTo(myHand) && target(*|opponentGraveyard) moveTo(opponentHand)
auto=name(Return a card) target(*|myGraveyard) moveTo(myHand) and!( transforms((,newability[ability$!name(Return a card) name(Return a card) target(*|myGraveyard) moveTo(myHand)!$ opponent])) oneshot )!
text=Deathtouch (Any amount of damage this deals to a creature is enough to destroy it.) -- When Skullwinder enters the battlefield, return target card from your graveyard to your hand, then choose an opponent. That player returns a card from their graveyard to their hand.
mana={2}{G}
type=Creature
@@ -66563,9 +66622,11 @@ color=white
[/card]
[card]
name=Solemnity
abilities=poisonshroud
auto=countershroud(any) *[-planeswalker]|battlefield
auto=countershroud(any) player
abilities=poisonshroud,energyshroud,expshroud
auto=lord(*|opponentBattlefield) poisonshroud
auto=lord(*|opponentBattlefield) energyshroud
auto=lord(*|opponentBattlefield) expshroud
auto=lord(*[creature;land;artifact;enchantment]|battlefield) countershroud
text=Players can't get counters. -- Counters can't be put on artifacts, creatures, enchantments, or lands.
mana={2}{W}
type=Enchantment
@@ -68840,7 +68901,7 @@ type=Sorcery
[/card]
[card]
name=Stalking Leonin
auto={0}:name(reveal the opponent) this(counter{0/0.1.StalkingEffect}<1) name(reveal the opponent) transforms((,newability[name(Move to exile) name(Move to exile) target(creature[attacking]|opponentbattlefield) moveto(exile)],newability[counter(0/0.1.StalkingEffect)])) oneshot
auto=this(cantargetcard(*[-LeoninEffect]) {0}:name(reveal the opponent) name(reveal the opponent) all(this) becomes(LeoninEffect) forever && target(creature[attacking]|opponentbattlefield) moveto(exile)
text=When Stalking Leonin enters the battlefield, secretly choose an opponent. -- Reveal the player you chose: Exile target creature that's attacking you if it's controlled by the chosen player. Activate this ability only once.
mana={2}{W}
type=Creature
@@ -69430,8 +69491,7 @@ type=Instant
name=Stir the Sands
abilities=cycling
auto=token(Zombie,creature Zombie,2/2,black)*3
autohand=@cycled(this|hand):token(Zombie,creature Zombie,2/2,black)
autohand=__CYCLING__({3}{B})
autohand=__CYCLING__({3}{B}) && token(Zombie,creature Zombie,2/2,black)
text=Create three 2/2 black Zombie creature tokens. -- Cycling {3}{B} ({3}{B}, Discard this card: Draw a card.) -- When you cycle Stir the Sands, create a 2/2 black Zombie creature token.
mana={4}{B}{B}
type=Sorcery
@@ -70540,8 +70600,16 @@ type=Sorcery
[/card]
[card]
name=Sundering Titan
auto=destroy all(land[plains,island,swamp,mountain,forest])
auto=_DIES_destroy all(land[plains,island,swamp,mountain,forest])
auto=ability$!name(Destroy a plains) name(Destroy a plains) target(plains|battlefield) destroy!$ controller
auto=ability$!name(Destroy an island) name(Destroy an island) target(island|battlefield) destroy!$ controller
auto=ability$!name(Destroy a mountain) name(Destroy a mountain) target(mountain|battlefield) destroy!$ controller
auto=ability$!name(Destroy a forest) name(Destroy a forest) target(forest|battlefield) destroy!$ controller
auto=ability$!name(Destroy a swamp) name(Destroy a swamp) target(swamp|battlefield) destroy!$ controller
auto=@movedto(this|nonbattlezone) from(battlefield):ability$!name(Destroy a plains) name(Destroy a plains) target(plains|battlefield) destroy!$ controller
auto=@movedto(this|nonbattlezone) from(battlefield):ability$!name(Destroy an island) name(Destroy an island) target(island|battlefield) destroy!$ controller
auto=@movedto(this|nonbattlezone) from(battlefield):ability$!name(Destroy a mountain) name(Destroy a mountain) target(mountain|battlefield) destroy!$ controller
auto=@movedto(this|nonbattlezone) from(battlefield):ability$!name(Destroy a forest) name(Destroy a forest) target(forest|battlefield) destroy!$ controller
auto=@movedto(this|nonbattlezone) from(battlefield):ability$!name(Destroy a swamp) name(Destroy a swamp) target(swamp|battlefield) destroy!$ controller
text=When Sundering Titan enters the battlefield or leaves the battlefield, choose a land of each basic land type, then destroy those lands.
mana={8}
type=Artifact Creature
@@ -71181,7 +71249,8 @@ auto={2}:equip
auto=teach(creature) protection from(cleric)
auto=teach(creature) protection from(rogue)
auto=teach(creature) 2/2
auto=@combatdamaged(player) from(mytgt):token(Dragon,Creature Dragon,4/4,white,black,red,blue,green,flying) && transform(newability((flipacoin winability token(Dragon,Creature Dragon,4/4,white,black,red,blue,green,flying) && transform(newability((flipacoin winability winabilityend flipend))) winabilityend flipend)))
auto=teach(creature) transforms((,newability[@combatdamaged(player) from(this):name(Create dragon) token(Gold Dragon^Creature Dragon^4/4^white^black^red^blue^green^flying)]))
auto=teach(creature) transforms((,newability[@tokencreated(Gold Dragon|myBattlefield):name(Roll a d20) rolld20 20 winability token(Gold Dragon^Creature Dragon^4/4^white^black^red^blue^green^flying) winabilityend rolld20end]))
text=Equipped creature gets +2/+2 and has protection from Rogues and from Clerics. -- Whenever equipped creature deals combat damage to a player, create a 4/4 gold Dragon creature token with flying and roll a d20 (a twenty-sided die). If you roll a 20, repeat this process. -- Equip {2}
mana={3}
type=Artifact
@@ -72275,7 +72344,12 @@ type=Instant
[/card]
[card]
name=Tectonic Giant
auto=@targeted(this) from(*|opponentcastingzone):ability$!name(Choose one) choice name(Damage opponent) damage:3 opponent) _ choice name(Exile cards) moveto(myexile) all(*[zpos<=2]|mylibrary) && target(*[fresh]|myexile) may activate castcard(normal)!$ controller
aicode=activate target(*[zpos<=2]|mylibrary) moveto(myexile) and!( transforms((,newability[all(*[zpos<=2]|mylibrary) moveto(ownerexile)],newability[counter(0/0.1.PlayExile)],newability[@each opponent beginofturn restriction{compare(hascntplayexile)~morethan~0}:if cantargetcard(*[-canplayfromexile]|*) then removeallcounters(0/0.1.PlayExile)])) forever )!
auto=@targeted(this) from(*|opponentcastingzone):name(Choose one) ability$!name(Choose one) choice name(Damage opponent) damage:3 opponent _ choice name(Exile 2 cards) all(mysource) counter(0/0.1.ExileEffect) !$ controller
auto=@combat(attacking) source(this):name(Choose one) ability$!name(Choose one) choice name(Damage opponent) damage:3 opponent _ choice name(Exile 2 cards) all(mysource) counter(0/0.1.ExileEffect) !$ controller
auto=@counteradded(0/0.1.ExileEffect) from(this):name(Exile top 2 cards) reveal:2 optionone name(Choose one card) target(*|reveal) moveto(myexile) and!( transforms((,newability[counter(0/0.1.PlayExile)],newability[@each opponent beginofturn restriction{compare(hascntplayexile)~morethan~0}:if cantargetcard(*[-canplayfromexile]|*) then removeallcounters(0/0.1.PlayExile)])) forever )! optiononeend optiontwo name(Exile cards) all(*|reveal) moveto(ownerexile) optiontwoend revealend
auto=@counteradded(0/0.1.ExileEffect) from(this):name(Exile top 2 cards) emblem transforms((,newability[lord(*[counter{0/0.1.PlayExile}]|myexile) canplayfromexile])) uent
auto=@counteradded(0/0.1.ExileEffect) from(this):name(Exile top 2 cards) removeallcounters(0/0.1.ExileEffect)
text=Whenever Tectonic Giant attacks or becomes the target of a spell an opponent controls, Choose one -- Tectonic Giant deals 3 damage to each opponent. -- Exile the top two cards of your library. Choose one of them. Until the end of your next turn, you may play that card.
mana={2}{R}{R}
type=Creature
@@ -72664,8 +72738,8 @@ otherrestriction=can play artifact,compare(isflipped)~equalto~1
restriction=compare(isflipped)~equalto~0
anyzone={0}:doubleside(Tergrid's Lantern)
autostack=if paid(alternative) then flip(Tergrid's Lantern) forcetype(Legendary Artifact)
auto=@sacrificed(*[-token]|opponentbattlefield) restriction{compare(isflipped)~equalto~0}:all(trigger[to]) moveto(myreveal) and!( transforms((,newability[choice name(Put on battlefield) moveTo(myBattlefield)],newability[choice name(Don't put on battlefield) moveto(ownerGraveyard)])) oneshot )!
auto=@discarded(*[-instant;-sorcery]|opponenthand) restriction{compare(isflipped)~equalto~0}:all(trigger[to]) moveto(myreveal) and!( transforms((,newability[choice name(Put on battlefield) moveTo(myBattlefield)],newability[choice name(Don't put on battlefield) moveto(ownerGraveyard)])) oneshot )!
auto=@sacrificed(*[-token]|opponentbattlefield) restriction{compare(isflipped)~equalto~0}:all(trigger[to]) moveto(mysideboard) and!( transforms((,newability[choice name(Put on battlefield) moveTo(myBattlefield)],newability[choice name(Don't put on battlefield) moveto(ownerGraveyard)])) oneshot )!
auto=@discarded(*[-instant;-sorcery]|opponenthand) restriction{compare(isflipped)~equalto~0}:all(trigger[to]) moveto(mysideboard) and!( transforms((,newability[choice name(Put on battlefield) moveTo(myBattlefield)],newability[choice name(Don't put on battlefield) moveto(ownerGraveyard)])) oneshot )!
text=Menace -- Whenever an opponent sacrifices a nontoken permanent or discards a permanent card, you may put that card onto the battlefield under your control from their graveyard. // {3}{B} Tergrid's Lantern
mana={3}{B}{B}
type=Legendary Creature
@@ -72793,8 +72867,7 @@ toughness=2
[card]
name=Test of Faith
target=creature
auto=prevent:3 ueot
auto=counter(1/1,3)
auto=transforms((,newability[@counteradded(1/1) from(this) restriction{compare(hascnt11)~morethan~2}:name(Effect ends) removeallcounters(0/0.1.FaithEffect)],newability[counter(0/0.1.FaithEffect)],newability[this(counter{0/0.1.FaithEffect}>0) vigor],newability[@each endofturn restriction{compare(hascntfaitheffect)~morethan~0}:name(Effect ends) removeallcounters(0/0.1.FaithEffect)])) ueot
text=Prevent the next 3 damage that would be dealt to target creature this turn, and put a +1/+1 counter on that creature for each 1 damage prevented this way.
mana={1}{W}
type=Instant
@@ -73530,11 +73603,12 @@ subtype=Saga
[card]
name=The Triumph of Anax
auto=counter(0/0,1,Lore)
auto=foreach(counter{0/0,1,Lore}) 1/0 && trample target(creature)
auto=@each my firstmain:counter(0/0,1,Lore)
auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.2.Lore}) foreach(counter{0/0,1,Lore}) 1/0 && trample target(creature)
auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.3.Lore}) foreach(counter{0/0,1,Lore}) 1/0 && trample target(creature)
auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.4.Lore}) target(creature|mybattlefield) transforms((,newability[target(creature|opponentBattlefield) dynamicability<!powerstrike eachother!>])) && sacrifice(this) ueot
auto=@each my firstmain:name(Add lore counter) counter(0/0,1,Lore)
auto=name(Creature gets X/0) target(creature|battlefield) transforms((,newability[trample],newability[1/0])) ueot
auto=@counteradded(0/0,1,Lore) from(this) restriction{compare(hascntlore)~equalto~2}:name(Creature gets X/0) target(creature|battlefield) transforms((,newability[trample],newability[2/0])) ueot
auto=@counteradded(0/0,1,Lore) from(this) restriction{compare(hascntlore)~equalto~3}:name(Creature gets X/0) target(creature|battlefield) transforms((,newability[trample],newability[3/0])) ueot
auto=@counteradded(0/0,1,Lore) from(this) restriction{compare(hascntlore)~equalto~4}:name(Your creature fights) target(creature|mybattlefield) transforms((,newability[target(creature|opponentbattlefield) dynamicability<!powerstrike eachother!>])) ueot
auto=@counteradded(0/0,1,Lore) from(this) restriction{compare(hascntlore)~equalto~4}:name(Sacrifice saga) sacrifice
text=(As this Saga enters and after your draw step, add a lore counter. Sacrifice after IV.) -- I, II, III - Until end of turn, target creature gains trample and gets +X/+0, where X is the number of lore counters on The Triumph of Anax. -- IV - Target creature you control fights up to one target creature you don't control. (Each deals damage equal to its power to the other.)
mana={2}{R}
type=Enchantment
@@ -74882,8 +74956,10 @@ type=Sorcery
[card]
name=Toils of Night and Day
target=*|battlefield
auto=ability$!name(Tap or untap) choice name(Tap permanent) tap(noevent) _ choice name(Untap permanent) untap!$ controller
auto=ability$!name(Tap or untap) choice name(Tap another permanent) tap(noevent) target(*|battlefield) _ choice name(Untap another permanent) untap target(*|battlefield)!$ controller
auto=choice name(Don't tap or untap anything) donothing
auto=choice name(Tap permanent) tap
auto=choice name(Untap permanent) untap
auto=all(this|mystack) transforms((,newability[choice name(Don't target another permanent) donothing],newability[choice name(Tap another permanent) target(other *|battlefield) tap(noevent)],newability[choice name(Untap another permanent) untap target(other *|battlefield)])) oneshot
text=You may tap or untap target permanent, then you may tap or untap another target permanent.
mana={2}{U}
type=Instant
@@ -75609,7 +75685,7 @@ toughness=3
[/card]
[card]
name=Trapjaw Tyrant
auto=_ENRAGE_(blink)forsrc target(creature|opponentbattlefield)
auto=_ENRAGE_if type(this|myBattlefield)~morethan~0 then name(Exile a creature) name(Exile a creature) (blink)forsrc target(creature|opponentbattlefield)
text=Enrage - Whenever Trapjaw Tyrant is dealt damage, exile target creature an opponent controls until Trapjaw Tyrant leaves the battlefield.
mana={3}{W}{W}
type=Creature
@@ -75733,7 +75809,8 @@ type=Artifact
[/card]
[card]
name=Treasure Nabber
auto=@tappedformana(artifact|opponentBattlefield):moveTo(myBattlefield) target(artifact[tapped]) uynt
auto=@tappedformana(artifact|opponentBattlefield) restriction{myturnonly}:name(Gain control) all(trigger[to]) name(Gain control) moveTo(myBattlefield) and!( transforms((,newability[phaseaction[my next endofturn once sourceinplay] moveto(ownerBattlefield)])) forever )!
auto=@tappedformana(artifact|opponentBattlefield) restriction{opponentturnonly}:name(Gain control) all(trigger[to]) name(Gain control) moveTo(myBattlefield) and!( transforms((,newability[phaseaction[my endofturn once sourceinplay] moveto(ownerBattlefield)])) forever )!
text=Whenever an opponent taps an artifact for mana, gain control of that artifact until the end of your next turn.
mana={2}{R}
type=Creature
@@ -78157,8 +78234,8 @@ toughness=3
[card]
name=Varragoth, Bloodsky Sire
abilities=boast,deathtouch
auto={1}{B} restriction{didattack,compare(hascntbstreduce)~equalto~0}:doboast && target(player) ability$!name(Search a card) name(Search a card) target(*|mylibrary) moveto(myreveal) and!( moveto(mylibrary) and!( shuffle )! )! !$ opponent limit:hasabilitytwoboastplus1plusend
auto={B} restriction{didattack,compare(hascntbstreduce)~morethan~0}:doboast && target(player) ability$!name(Search a card) name(Search a card) target(*|mylibrary) moveto(myreveal) and!( moveto(mylibrary) and!( shuffle )! )! !$ opponent limit:hasabilitytwoboastplus1plusend
auto={1}{B} restriction{didattack,compare(hascntbstreduce)~equalto~0}:doboast && target(player) ability$!name(Search a card) name(Search a card) target(*|mylibrary) moveto(myreveal) and!( moveto(mylibrary) )! !$ targetedPlayer limit:hasabilitytwoboastplus1plusend
auto={B} restriction{didattack,compare(hascntbstreduce)~morethan~0}:doboast && target(player) ability$!name(Search a card) name(Search a card) target(*|mylibrary) moveto(myreveal) and!( moveto(mylibrary) )! !$ targetedPlayer limit:hasabilitytwoboastplus1plusend
text=Deathtouch -- Boast-{1}{B}: Target player searches their library for a card, then shuffles their library and puts that card on top of it. (Activate this ability only if this creature attacked this turn and only once each turn.)
mana={2}{B}
type=Legendary Creature
@@ -80542,7 +80619,7 @@ auto=counter(0/0,1,Level)
aicode=activate transforms((,newability[target(*[zpos<=3]|mylibrary) moveto(myhand) and!( all(*[zpos<=3]|mylibrary) moveTo(mygraveyard) )!])) oneshot
auto=@each my endofturn restriction{morbid}:name(Opponent looses life) life:-1 opponent
auto=this(variable{hascntlevel}=1) {1}{B}:name(Level 2) counter(0/0,1,Level) asSorcery
auto=@counteradded(0/0.1.Level) restriction{compare(hascntlevel)~equalto~2}:name(Look top 3) reveal:3 optionone name(Get a Card) target(*|reveal) moveto(myhand) optiononeend optiontwo name(put in grave) all(*|reveal) moveto(mygraveyard) optiontwoend revealend
auto=@counteradded(0/0.1.Level) from(this) restriction{compare(hascntlevel)~equalto~2}:name(Look top 3) reveal:3 optionone name(Get a Card) target(*|reveal) moveto(myhand) optiononeend optiontwo name(put in grave) all(*|reveal) moveto(mygraveyard) optiontwoend revealend
auto=this(variable{hascntlevel}=2) {6}{B}:name(Level 3) counter(0/0,1,Level) asSorcery
auto=@each my endofturn restriction{compare(hascntlevel)~morethan~2}:name(Opponent looses life) damage:oplifelost opponent
text=(Gain the next level as a sorcery to add its ability.) -- At the beginning of your end step, if a creature died this turn, each opponent loses 1 life. -- {1}{B}: Level 2 -- When this Class becomes level 2, look at the top three cards of your library. Put one of them into your hand and the rest into your graveyard. -- {6}{B}: Level 3 -- At the beginning of your end step, each opponent loses life equal to the life they lost this turn. (Damage causes loss of life.)
@@ -81686,13 +81763,10 @@ toughness=2
[/card]
[card]
name=Winds of Abandon
target=creature|opponentbattlefield
abilities=overload
restriction=type(creature|oppponentbattlefield)~morethan~0
other={4}{W}{W} name(Overload)
auto=overload moveto(exile) all(creature|opponentbattlefield)
auto=paidmana moveto(exile)
auto=paidmana ability$!name(Reveal) reveal:plibrarycount optionone name(choose basic land) target(<1>land[basic]|reveal) moveto(myBattlefield) optiononeend optiontwo name(put back) moveto(ownerlibrary) all(*|reveal) optiontwoend afterrevealed tap(noevent) notatarget(basic[fresh]|myBattlefield) afterrevealedend revealend!$ opponent
auto=overload ability$!name(Reveal) reveal:plibrarycount optionone name(choose basic lands) target(<type:creature:mybattlefield>land[basic]|reveal) moveto(myBattlefield) optiononeend optiontwo name(put back) moveto(ownerlibrary) all(*|reveal) optiontwoend afterrevealed tap(noevent) notatarget(basic[fresh]|myBattlefield) afterrevealedend revealend!$ opponent
auto=if paid(alternative) then name(Exile all creatures) name(Exile all creatures) all(creature|opponentbattlefield) moveto(exile) and!( transforms((,newability[name(choose basic land) target(land[basic]|mylibrary) moveto(myBattlefield) and!( tap(noevent) )!])) oneshot )!
auto=ifnot paid(alternative) then name(Exile a creature) name(Exile a creature) target(creature|opponentbattlefield) moveto(exile) and!( transforms((,newability[name(choose basic land) target(land[basic]|mylibrary) moveto(myBattlefield) and!( tap(noevent) )!])) oneshot )!
text=Exile target creature you don't control. For each creature exiled this way, its controller searches their library for a basic land card. Those players put those cards onto the battlefield tapped, then shuffle their libraries. -- Overload {4}{W}{W} (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.")
mana={1}{W}
type=Sorcery
@@ -82754,8 +82828,9 @@ toughness=4
[card]
name=Yasharn, Implacable Earth
#Forbid the life and sacrifice payments is not supported ATM...
aicode=activate target(<upto:2>land[basic;forest;plains]|myLibrary) moveTo(myHand)
auto=name(search card) Reveal:type:*:mylibrary revealzone(myLibrary) optionone name(choose card) target(<upto:2>land[basic;forest;plains]|reveal) moveTo(myHand) optiononeend optiontwo name(shuffle) bottomoflibrary target(<2>*|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend
auto=if type(forest[basic]|mylibrary)~morethan~0 then if type(plains[basic]|mylibrary)~morethan~0 then name(Search for basic forest) name(Search for basic forest) name(Search for basic forest) target(forest[basic]|myLibrary) moveTo(myHand) and!( transforms((,newability[name(Search for basic plains) target(plains[basic]|myLibrary) moveTo(myHand) and!( shuffle )!])) oneshot )!
auto=if type(forest[basic]|mylibrary)~morethan~0 then if type(plains[basic]|mylibrary)~equalto~0 then name(Search for basic forest) name(Search for basic forest) name(Search for basic forest) target(forest[basic]|myLibrary) moveTo(myHand) and!( shuffle )!
auto=if type(forest[basic]|mylibrary)~equalto~0 then if type(plains[basic]|mylibrary)~morethan~0 then name(Search for basic plains) name(Search for basic plains) name(Search for basic plains) target(plains[basic]|myLibrary) moveTo(myHand) and!( shuffle )!
text=When Yasharn, Implacable Earth enters the battlefield, search your library for a basic Forest card and a basic Plains card, reveal those cards, put them into your hand, then shuffle your library. -- Players can't pay life or sacrifice nonland permanents to cast spells or activate abilities.
mana={2}{G}{W}
type=Legendary Creature
@@ -82886,9 +82961,10 @@ type=Instant
[/card]
[card]
name=You Find Some Prisoners
aicode=activate target(*[zpos<=3]|opponentlibrary) moveto(myexile) and!( transforms((,newability[all(*[zpos<=3]|opponentlibrary) moveto(ownerexile)],newability[canplayfromexile],newability[anytypeofmana],newability[my endofturn next once checkex] moveto(ownerexile)])) forever )!
auto=choice name(Destroy artifact) target(artifact) destroy
auto=choice name(Exile top 3 cards) reveal:3 revealzone(opponentlibrary) optionone name(Choose one card) target(*|reveal) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[anytypeofmana],newability[my endofturn next once checkex] moveto(ownerexile)])) forever )! optiononeend optiontwo name(Exile cards) all(*|reveal) moveto(ownerexile) optiontwoend revealend
aicode=activate target(*[zpos<=3]|opponentlibrary) moveto(myexile) and!( transforms((,newability[all(*[zpos<=3]|opponentlibrary) moveto(ownerexile)],newability[counter(0/0.1.PlayExile)],newability[@each opponent beginofturn restriction{compare(hascntplayexile)~morethan~0}:if cantargetcard(*[-canplayfromexile]|*) then moveto(ownerexile)])) forever )!
auto=if type(artifact|battlefield)~morethan~0 then choice name(Destroy artifact) name(Destroy artifact) target(artifact) destroy
auto=choice name(Exile top 3 cards) reveal:3 revealzone(opponentlibrary) optionone name(Choose one card) target(*|reveal) moveto(myexile) and!( transforms((,newability[counter(0/0.1.PlayExile)],newability[@each opponent beginofturn restriction{compare(hascntplayexile)~morethan~0}:if cantargetcard(*[-canplayfromexile]|*) then moveto(ownerexile)])) forever )! optiononeend optiontwo name(Exile cards) all(*|reveal) moveto(ownerexile) optiontwoend revealend
auto=emblem transforms((,newability[lord(*[counter{0/0.1.PlayExile}]|myexile) canplayfromexile],newability[lord(*[counter{0/0.1.PlayExile}]|myexile) anytypeofmana])) uent
text=Choose one -- Break Their Chains - Destroy target artifact. -- Interrogate Them - Exile the top three cards of target opponent's library. Choose one of them. Until the end of your next turn, you may play that card, and you may spend mana as through it were mana of any color to cast it.
mana={1}{R}
type=Instant

View File

@@ -13718,7 +13718,8 @@ type=Instant
[/card]
[card]
name=Boompile
auto={t}:flipacoin winability destroy all(*[-land]) winabilityend flipend
auto={T}:name(Choose head) if compare(genrand2)~equalto~1 then all(*[-land]|battlefield) destroy
auto={T}:name(Choose tail) if compare(genrand2)~equalto~0 then all(*[-land]|battlefield) destroy
text={T}: Flip a coin. If you win the flip, destroy all nonland permanents.
mana={4}
type=Artifact
@@ -16577,7 +16578,8 @@ toughness=2
[/card]
[card]
name=Caller of the Hunt
auto=chooseatype foreach(creature[chosentype]|battlefield) 1/1 chooseend
auto=counter(0/1) notrg
auto=chooseatype transforms((,newability[type:creature[chosentype]:battlefield/type:creature[chosentype]:battlefield cdaactive],newability[counter(0/1.-1) notrg])) forever chooseend
text=As Caller of the Hunt enters the battlefield, choose a creature type. -- Caller of the Hunt's power and toughness are each equal to the number of creatures of the chosen type on the battlefield.
mana={2}{G}
type=Creature
@@ -17421,14 +17423,14 @@ toughness=2
[card]
name=Cataclysmic Gearhulk
abilities=vigilance
auto=if type(artifact[-land]|mybattlefield)~morethan~1 then ability$! sacrifice notatarget(<type:artifact[-land]:mybattlefieldminus1minusend>artifact[-land]|mybattlefield) !$ controller
auto=if type(artifact[-land]|opponentbattlefield)~morethan~1 then ability$! sacrifice notatarget(<type:artifact[-land]:mybattlefieldminus1minusend>artifact[-land]|mybattlefield) !$ opponent
auto=if type(creature[-land]|mybattlefield)~morethan~1 then ability$! sacrifice notatarget(<type:creature[-land]:mybattlefieldminus1minusend>creature[-land]|mybattlefield) !$ controller
auto=if type(creature[-land]|opponentbattlefield)~morethan~1 then ability$! sacrifice notatarget(<type:creature[-land]:mybattlefieldminus1minusend>creature[-land]|mybattlefield) !$ opponent
auto=if type(enchantment[-land]|mybattlefield)~morethan~1 then ability$! sacrifice notatarget(<type:enchantment[-land]:mybattlefieldminus1minusend>enchantment[-land]|mybattlefield) !$ controller
auto=if type(enchantment[-land]|opponentbattlefield)~morethan~1 then ability$! sacrifice notatarget(<type:enchantment[-land]:mybattlefieldminus1minusend>enchantment[-land]|mybattlefield) !$ opponent
auto=if type(planeswalker[-land]|mybattlefield)~morethan~1 then ability$! sacrifice notatarget(<type:planeswalker[-land]:mybattlefieldminus1minusend>planeswalker[-land]|mybattlefield) !$ controller
auto=if type(planeswalker[-land]|opponentbattlefield)~morethan~1 then ability$! sacrifice notatarget(<type:planeswalker[-land]:mybattlefieldminus1minusend>planeswalker[-land]|mybattlefield) !$ opponent
auto=if type(creature[-land]|mybattlefield)~morethan~1 then ability$!name(Choose a creature) name(Choose a creature) target(creature[-land]|mybattlefield) transforms((,newability[sacrifice all(other creature[-land]|mybattlefield)])) oneshot!$ controller
auto=if type(creature[-land]|opponentbattlefield)~morethan~1 then ability$!name(Choose a creature) name(Choose a creature) target(creature[-land]|mybattlefield) transforms((,newability[sacrifice all(other creature[-land]|mybattlefield)])) oneshot!$ opponent
auto=if type(artifact[-land]|mybattlefield)~morethan~1 then ability$!name(Choose an artifact) name(Choose an artifact) target(artifact[-land]|mybattlefield) transforms((,newability[sacrifice all(other artifact[-creature;-land]|mybattlefield)])) oneshot!$ controller
auto=if type(artifact[-land]|opponentbattlefield)~morethan~1 then ability$!name(Choose an artifact) name(Choose an artifact) target(artifact[-land]|mybattlefield) transforms((,newability[sacrifice all(other artifact[-creature;-land]|mybattlefield)])) oneshot!$ opponent
auto=if type(enchantment[-land]|mybattlefield)~morethan~1 then ability$!name(Choose an enchantment) name(Choose an enchantment) target(enchantment[-land]|mybattlefield) transforms((,newability[sacrifice all(other enchantment[-creature;-land]|mybattlefield)])) oneshot!$ controller
auto=if type(enchantment[-land]|opponentbattlefield)~morethan~1 then ability$!name(Choose an enchantment) name(Choose an enchantment) target(enchantment[-land]|mybattlefield) transforms((,newability[sacrifice all(other enchantment[-creature;-land]|mybattlefield)])) oneshot!$ opponent
auto=if type(planeswalker[-land]|mybattlefield)~morethan~1 then ability$!name(Choose a planeswalker) name(Choose a planeswalker) target(planeswalker[-land]|mybattlefield) transforms((,newability[sacrifice all(other planeswalker[-land]|mybattlefield)])) oneshot!$ controller
auto=if type(planeswalker[-land]|opponentbattlefield)~morethan~1 then ability$!name(Choose a planeswalker) name(Choose a planeswalker) target(planeswalker[-land]|mybattlefield) transforms((,newability[sacrifice all(other planeswalker[-land]|mybattlefield)])) oneshot!$ opponent
text=Vigilance -- When Cataclysmic Gearhulk enters the battlefield, each player chooses an artifact, a creature, an enchantment, and a planeswalker from among the nonland permanents he or she controls, then sacrifices the rest.
mana={3}{W}{W}
type=Artifact Creature
@@ -21581,7 +21583,8 @@ type=Instant
[/card]
[card]
name=Commune with Lava
auto=moveto(exile) and!( transforms((,canplayfromexile)) uynt )! all(*[zpos<=castx]|mylibrary)
auto=all(*[zpos<=castx]|mylibrary) moveto(exile) and!( transforms((,newability[counter(0/0.1.PlayExile)],newability[@each opponent beginofturn restriction{compare(hascntplayexile)~morethan~0}:if cantargetcard(*[-canplayfromexile]|*) then removeallcounters(0/0.1.PlayExile)])) forever )!
auto=emblem transforms((,newability[lord(*[counter{0/0.1.PlayExile}]|myexile) canplayfromexile])) uent
text=Exile the top X cards of your library. Until the end of your next turn, you may play those cards.
mana={X}{R}{R}
type=Instant
@@ -22357,8 +22360,7 @@ type=Artifact
[card]
name=Conversion
auto=upcost[{W}{W}] sacrifice
auto=lord(mountain) losesubtypesof(land)
auto=lord(mountain) transforms((plains))
auto=lord(mountain) transforms((Plains,newability[losesatype(mountain)]))
text=At the beginning of your upkeep, sacrifice Conversion unless you pay {W}{W}. -- All Mountains are Plains.
mana={2}{W}{W}
type=Enchantment
@@ -30502,8 +30504,11 @@ toughness=4
[card]
name=Docent of Perfection
abilities=flying
auto=@movedto(instant,sorcery|mystack):token(Wizard,Creature Human Wizard,1/1,blue)
auto=aslongas(wizard|myBattlefield) flip(Final Iteration) while >2
backside=Final Iteration
restriction=compare(isflipped)~equalto~0
anyzone={0}:doubleside(backside)
auto=@movedto(*[instant;sorcery]|mystack):name(Create wizard) token(Wizard,Creature Human Wizard,1/1,blue)
auto=aslongas(wizard|myBattlefield) flip(backside) while >2
text=Flying -- Whenever you cast an instant or sorcery spell, put a 1/1 blue Human Wizard creature token onto the battlefield. Then if you control three or more Wizards, transform Docent of Perfection.
mana={3}{U}{U}
type=Creature
@@ -30745,9 +30750,8 @@ toughness=5
[/card]
[card]
name=Dormant Sliver
auto=lord(sliver) defender
auto=@movedTo(sliver|myBattlefield):draw:1 controller
auto=@movedTo(sliver|opponentBattlefield):draw:1 opponent
auto=lord(sliver|battlefield) defender
auto=@movedTo(sliver|battlefield):name(Draw a card) all(trigger[to]) name(Draw a card) transforms((,newability[draw:1 controller])) oneshot
text=All Sliver creatures have defender. -- All Slivers have "When this permanent enters the battlefield, draw a card."
mana={2}{G}{U}
type=Creature
@@ -36367,8 +36371,8 @@ type=Instant
[/card]
[card]
name=Ensnaring Bridge
auto=lord(creature|mybattlefield) transforms((,newability[while(restriction{powermorethancontrollerhand}) cantattack],newability[while(restriction{powermorethancontrollerhand}) cantpwattack]))
auto=lord(creature|opponentbattlefield) transforms((,newability[while(restriction{powermorethanopponenthand}) cantattack],newability[while(restriction{powermorethanopponenthand}) cantpwattack]))
auto=@each combatbegins:name(Creatures can't attack) all(creature|mybattlefield) name(Creatures can't attack) transforms((,newability[if restriction{powermorethancontrollerhand} then cantattack ueot],newability[if restriction{powermorethancontrollerhand} then cantpwattack ueot])) ueot
auto=@each combatbegins:name(Creatures can't attack) all(creature|opponentbattlefield) name(Creatures can't attack) transforms((,newability[if restriction{powermorethanopponenthand} then cantattack ueot],newability[if restriction{powermorethanopponenthand} then cantpwattack ueot])) ueot
text=Creatures with power greater than the number of cards in your hand can't attack.
mana={3}
type=Artifact
@@ -36880,14 +36884,14 @@ toughness=2
[/card]
[card]
name=Escaped Shapeshifter
auto=aslongas(creature[flying;-escaped shapeshifter]|opponentinplay) flying
auto=aslongas(creature[first strike;-escaped shapeshifter]|opponentinplay) first strike
auto=aslongas(creature[trample;-escaped shapeshifter]|opponentinplay) trample
auto=aslongas(creature[protection from black;-escaped shapeshifter]|opponentinplay) protection from black
auto=aslongas(creature[protection from blue;-escaped shapeshifter]|opponentinplay) protection from blue
auto=aslongas(creature[protection from red;-escaped shapeshifter]|opponentinplay) protection from red
auto=aslongas(creature[protection from white;-escaped shapeshifter]|opponentinplay) protection from white
auto=aslongas(creature[protection from green;-escaped shapeshifter]|opponentinplay) protection from green
auto=aslongas(creature[flying;-escaped shapeshifter]|opponentBattlefield) flying
auto=aslongas(creature[first strike;-escaped shapeshifter]|opponentBattlefield) first strike
auto=aslongas(creature[trample;-escaped shapeshifter]|opponentBattlefield) trample
auto=aslongas(creature[protection from black;-escaped shapeshifter]|opponentBattlefield) protection from black
auto=aslongas(creature[protection from blue;-escaped shapeshifter]|opponentBattlefield) protection from blue
auto=aslongas(creature[protection from red;-escaped shapeshifter]|opponentBattlefield) protection from red
auto=aslongas(creature[protection from white;-escaped shapeshifter]|opponentBattlefield) protection from white
auto=aslongas(creature[protection from green;-escaped shapeshifter]|opponentBattlefield) protection from green
text=As long as an opponent controls a creature with flying not named Escaped Shapeshifter, Escaped Shapeshifter has flying. The same is true for first strike, trample, and protection from any color.
mana={3}{U}{U}
type=Creature
@@ -37224,10 +37228,9 @@ subtype=Aura
[/card]
[card]
name=Eternity Vessel
text=Eternity Vessel enters the battlefield with X charge counters on it, where X is your life total. Landfall -- Whenever a land enters the battlefield under your control, you may have your life total become the number of charge counters on Eternity Vessel.
auto=counter(0/0,lifetotal,Charge)
auto=_LANDFALL_may lifeset:counter{0%0.1.Charge} controller
auto=Eternity Vessel enters the battlefield with X charge counters on it, where X is your life total. -- Landfall - Whenever a land enters the battlefield under your control, you may have your life total become the number of charge counters on Eternity Vessel.
auto=_LANDFALL_may name(Set life to charge) transforms((,newability[lifeset:hascntcharge controller])) oneshot
text=Eternity Vessel enters the battlefield with X charge counters on it, where X is your life total. -- Landfall - Whenever a land enters the battlefield under your control, you may have your life total become the number of charge counters on Eternity Vessel.
mana={6}
type=Artifact
[/card]
@@ -40507,7 +40510,8 @@ type=Instant
[card]
name=Final Iteration
abilities=flying
auto=@movedto(instant,sorcery|mystack):token(Wizard,Creature Human Wizard,1/1,blue)
backside=Docent of Perfection
auto=@movedto(*[instant;sorcery]|mystack):name(Create wizard) token(Wizard,Creature Human Wizard,1/1,blue)
auto=lord(wizard|mybattlefield) 2/1
auto=lord(wizard|mybattlefield) flying
text=Flying -- Wizards you control get +2/+1 and have flying. -- Whenever you cast an instant or sorcery spell, put a 1/1 blue Human Wizard creature token onto the battlefield.
@@ -44331,8 +44335,8 @@ toughness=1+*
[/card]
[card]
name=Gaea's Blessing
target=player
auto=ability$!moveto(mylibrary) and!(shuffle)! target(<upto:3>*|mygraveyard)!$ targetedplayer
auto=choice name(Target yourself) target(<upto:3>other *|mygraveyard) moveto(mylibrary) and!( shuffle )!
auto=choice name(Target opponent) ability$!name(Shuffle 3 cards) name(Shuffle 3 cards) target(<upto:3>*|mygraveyard) moveto(mylibrary) and!( shuffle )! !$ opponent
auto=draw:1 controller
autograveyard=@movedTo(this|mygraveyard) from(mylibrary):moveto(mylibrary) and!(shuffle)! all(*|mygraveyard)
text=Target player shuffles up to three target cards from his or her graveyard into his or her library. -- Draw a card. -- When Gaea's Blessing is put into your graveyard from your library, shuffle your graveyard into your library.
@@ -44744,8 +44748,9 @@ type=Artifact
[card]
name=Gatecreeper Vine
abilities=defender
aicode=activate target(land[basic;gate]|mylibrary) moveto(myhand)
auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>land[basic;gate]|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(myhand)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>*|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend
auto=choice name(Don't search anything) donothing
auto=if type(land[basic]|mylibrary)~morethan~0 then choice name(Search basic land) name(Search basic land) target(land[basic]|mylibrary) moveto(myhand) and!( shuffle )!
auto=if type(gate|mylibrary)~morethan~0 then choice name(Search gate) name(Search gate) target(gate|mylibrary) moveto(myhand) and!( shuffle )!
text=Defender -- When Gatecreeper Vine enters the battlefield, you may search your library for a basic land card or a Gate card, reveal it, put it into your hand, then shuffle your library.
mana={1}{G}
type=Creature
@@ -52566,10 +52571,10 @@ type=Sorcery
[/card]
[card]
name=Harsh Scrutiny
target=*|opponenthand
aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot
auto=if cantargetcard(*[creature]|hand) then reject
auto=name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend
auto=if type(*|opponenthand)~morethan~0 then if type(creature|opponenthand)~equalto~0 then name(Look opponent hand) name(Look opponent hand) name(Look opponent hand) target(*|opponenthand) moveto(myreveal) and!( moveto(opponenthand) and!( name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend )! )!
auto=if type(*|opponenthand)~morethan~0 then if type(creature|opponenthand)~morethan~0 then name(Choose a creature) name(Choose a creature) name(Choose a creature) target(creature|opponenthand) reject and!( name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend )!
auto=if type(*|opponenthand)~equalto~0 then name(Scry 1) name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend
text=Target opponent reveals his or her hand. You choose a creature card from it. That player discards that card. Scry 1.
mana={B}
type=Sorcery
@@ -73705,7 +73710,7 @@ type=Sorcery
[/card]
[card]
name=Mijae Djinn
auto=@combat(attacking,turnlimited) source(this):flipacoin loseability name(untap it and remove it from combat) tap && removefromcombat loseabilityend flipend
auto=@combat(attacking,turnlimited) source(this):name(Flip a coin) flipacoin loseability transforms((,newability[name(Tap it) tap],newability[name(Remove from combat) removefromcombat])) oneshot loseabilityend flipend
text=Whenever Mijae Djinn attacks, flip a coin. If you lose the flip, remove Mijae Djinn from combat and tap it.
mana={R}{R}{R}
type=Creature
@@ -82138,8 +82143,8 @@ toughness=2
[/card]
[card]
name=Omen
aicode=name(look) activate name(look) transforms((,newability[foreach(*[zpos<=4]|mylibrary) moverandom(*[zpos<=4]) from(mylibrary) to(mylibrary)],newability[draw:1])) ueot
auto=name(Look) reveal:3 optionone name(Look) target(*|reveal) doNothing optiononeend optiontwo target(<3>*|reveal) moveto(mylibrary) optiontwoend afterrevealed transforms((,newability[choice shuffle && draw:1],newability[choice name(Cancel) draw:1])) afterrevealedend revealend
aicode=activate transforms((,newability[foreach(*[zpos<=3]|mylibrary) moverandom(*[zpos<=3]) from(mylibrary) to(mylibrary)],newability[draw:1])) ueot
auto=name(Look top 3 cards) reveal:3 optionone name(Put back cards) target(<3>*|reveal) moveto(mylibrary) optiononeend optiontwo donothing optiontwoend afterrevealed transforms((,newability[choice name(Shuffle and draw) shuffle && draw:1],newability[choice name(Don't shuffle and draw) draw:1])) ueot afterrevealedend revealend
text=Look at the top three cards of your library, then put them back in any order. You may shuffle your library. -- Draw a card.
mana={1}{U}
type=Sorcery
@@ -89868,8 +89873,9 @@ toughness=2
[/card]
[card]
name=Puresteel Paladin
auto=@movedTo(equipment|mybattlefield):may draw:1 controller
auto=lord(equipment|mybattlefield) transforms((,newability[{0}:name(Equip Zero) rehook target(creature|mybattlefield) assorcery restriction{type(artifact|mybattlefield)~morethan~2}]))
auto=@movedTo(equipment|mybattlefield):may name(Draw a card) draw:1 controller
auto=this(variable{ishuman}>0) lord(equipment|mybattlefield) transforms((,newability[{0}:name(Equip Zero) rehook target(creature|mybattlefield) assorcery restriction{type(artifact|mybattlefield)~morethan~2}]))
auto=this(variable{ishuman}=0) lord(equipment|mybattlefield) transforms((,newability[{0}:name(Equip Zero) rehook target(creature|mybattlefield) assorcery limit:1 restriction{type(artifact|mybattlefield)~morethan~2}]))
text=Whenever an Equipment enters the battlefield under your control, you may draw a card. -- Metalcraft - As long as you control 3 or more artifacts, each Equipment you control has equip {0}.
mana={W}{W}
type=Creature
@@ -92449,7 +92455,7 @@ toughness=3
[card]
name=Ray of Command
target=creature|opponentBattlefield
auto=moveto(mybattlefield) and!(transforms((,newability[phaseactionmulti[endofturn sourceinplay] moveTo(previousbattlefield) && tap],newability[untap],haste)) ueot)!
auto=moveto(mybattlefield) and!( transforms((,newability[phaseactionmulti[endofturn once sourceinplay] moveTo(previousbattlefield) && tap],newability[untap],newability[haste])) ueot )!
text=Untap target creature an opponent controls and gain control of it until end of turn. That creature gains haste until end of turn. When you lose control of the creature, tap it.
mana={3}{U}
type=Instant
@@ -105411,6 +105417,10 @@ name=Silent Arbiter
auto=aslongas(creature[attacking]|battlefield) lord(creature[-attacking]|battlefield) cantattack
auto=aslongas(creature[attacking]|battlefield) lord(creature[-attacking]|battlefield) cantpwattack
auto=aslongas(creature[blocking]|battlefield) lord(creature[-blocking]|battlefield) cantblock
auto=@each my attackers restriction{compare(ishuman)~equalto~0}:name(Only a creature can attack) target(creature|mybattlefield) name(Only a creature can attack) transforms((,newability[all(other creature|mybattlefield) transforms((,newability[cantattack],newability[cantpwattack])) ueot])) oneshot
auto=@each my blockers restriction{compare(ishuman)~equalto~1}:name(Only a creature can block) ability$!name(Only a creature can block) name(Only a creature can block) target(creature|mybattlefield) transforms((,newability[all(other creature|mybattlefield) transforms((,newability[cantblock])) ueot])) oneshot!$ opponent
auto=@each opponent attackers restriction{compare(ishuman)~equalto~1}:name(Only a creature can attack) ability$!name(Only a creature can attack) name(Only a creature can attack) target(creature|mybattlefield) transforms((,newability[all(other creature|mybattlefield) transforms((,newability[cantattack],newability[cantpwattack])) ueot])) oneshot!$ opponent
auto=@each opponent blockers restriction{compare(ishuman)~equalto~0}:name(Only a creature can block) target(creature|mybattlefield) name(Only a creature can block) transforms((,newability[all(other creature|mybattlefield) transforms((,newability[cantblock])) ueot])) oneshot
text=No more than one creature can attack each combat. -- No more than one creature can block each combat.
mana={4}
type=Artifact Creature
@@ -117115,8 +117125,8 @@ type=Sorcery
[/card]
[card]
name=Synapse Sliver
auto=@combatdamagefoeof(player) from(sliver):ability$!name(Draw) may draw:1!$ opponent
auto=@combatdamageof(player) from(sliver):ability$!name(Draw) may draw:1!$ controller
auto=@combatdamaged(player) from(sliver|opponentbattlefield):ability$!may name(Draw a card) may draw:1 controller!$ opponent
auto=@combatdamaged(player) from(sliver|mybattlefield):may name(Draw a card) draw:1 controller
text=Whenever a Sliver deals combat damage to a player, its controller may draw a card.
mana={4}{U}
type=Creature
@@ -121619,9 +121629,8 @@ toughness=5
[/card]
[card]
name=Tidewalker
auto=foreach(island|myBattlefield) counter(0/0,1,Time) oneshot
anyzone=counter{0%0.1.Time}/counter{0%0.1.Time} cdaactive
auto=vanishing:0
auto=vanishing:type:island:mybattlefield
auto=hascnttime/hascnttime cdaactive
text=Tidewalker enters the battlefield with a time counter on it for each Island you control. -- Vanishing (At the beginning of your upkeep, remove a time counter from this permanent. When the last is removed, sacrifice it.) -- Tidewalker's power and toughness are each equal to the number of time counters on it.
mana={2}{U}
type=Creature
@@ -127483,7 +127492,7 @@ toughness=4
[/card]
[card]
name=Varchild's Crusader
auto={0}:name(Block Protection) treason && ueot cantbeblockedby(creature[-wall])
auto={0}:name(Block Protection) transforms((,newability[treason],newability[cantbeblockedby(creature[-wall])])) ueot
text={0}: Varchild's Crusader can't be blocked this turn except by Walls. Sacrifice Varchild's Crusader at the beginning of the next end step.
mana={3}{R}
type=Creature
@@ -130688,7 +130697,7 @@ type=Artifact
name=Voyage's End
target=creature
auto=moveto(ownerhand)
aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot
aicode=activate target(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveto(myreveal) and!( bottomoflibrary )!])) oneshot
auto=name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend
text=Return target creature to its owner's hand. Scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.)
mana={1}{U}
@@ -134473,10 +134482,10 @@ toughness=1
[card]
name=Windreaver
abilities=flying
auto={W}:vigilance
auto={W}:0/1
auto={U}:swap
auto={U}:moveTo(ownerhand)
auto={W}:name(Gains vigilance) vigilance ueot
auto={W}:name(Gains 0/1) name(Gains 0/1) 0/1 ueot
auto={U}:name(Swap power/toughness) swap
auto={U}:name(Return to hand) moveTo(ownerhand)
text=Flying -- {W}: Windreaver gains vigilance until end of turn. -- {W}: Windreaver gets +0/+1 until end of turn. -- {U}: Switch Windreaver's power and toughness until end of turn. -- {U}: Return Windreaver to its owner's hand.
mana={3}{W}{U}
type=Creature

View File

@@ -363,9 +363,9 @@ subtype=B.O.B.
[card]
name=Basri, Devoted Paladin
auto=counter(0/0,4,loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: Put a +1/+1 counter and gains vigilance) counter(1/1,1) target(creature) && vigilance ueot
auto={C(0/0,-1,Loyalty)}:name(-1: Whenever a creature attack put a +1/+1 counter) emblem transforms((,newability[@combat(attacking) source(creature|Battlefield):all(trigger[to]) counter(1/1,1)])) ueot oneshot
auto={C(0/0,-6,Loyalty)}:name(-6: All creatures gets +2/+2 and flying) all(creature|myBattlefield) 2/2 && flying ueot
auto={C(0/0,1,Loyalty)}:name(+1: Creature gets 1/1 counter and vigilance) target(creature|battlefield) transforms((,newability[counter(1/1)],newability[vigilance])) ueot
auto={C(0/0,-1,Loyalty)}:name(-1: Whenever a creature attack put 1/1 counter) emblem transforms((,newability[@combat(attacking) source(creature|battlefield):name(Gets 1/1 counter) all(trigger[to]) counter(1/1)])) ueot
auto={C(0/0,-6,Loyalty)}:name(-6: All creatures gets +2/+2 and flying) all(creature|mybattlefield) transforms((,newability[2/2],newability[flying])) ueot
text=+1: Put a +1/+1 counter on up to one target creature. It gains vigilance until end of turn. -- 1: Whenever a creature attacks this turn, put a +1/+1 counter on it. -- 6: Creatures you control get +2/+2 and gain flying until end of turn.
mana={4}{W}{W}
type=Legendary Planeswalker
@@ -626,11 +626,14 @@ subtype=Chandra
[card]
name=Chandra, Torch of Defiance
auto=counter(0/0,4,loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: Exile Top Card) reveal:1 optionone target(*|reveal) moveto(exile) and!( becomes(tobecast) ueot )! optiononeend afterrevealed if type(tobecast[-land]|myexile)~morethan~0 then transforms((,newability[choice all(tobecast|myexile) castcard(restricted),newability[choice name(deal 2 damage) damage:2 opponent && all(tobecast|myexile) moveto(ownerexile)])) oneshot else choice name(deal 2 damage) damage:2 opponent && all(tobecast|myexile) moveto(ownerexile) afterrevealedend revealend
auto={C(0/0,1,Loyalty)}:name(+1: Exile Top Card) all(*[zpos=1|mylibrary) moveto(myexile) and!( transforms((,newability[choice name(Deals 2 damage) name(Deals 2 damage) damage:2 opponent],newability[if cantargetcard(*[-land]|*) then choice name(Cast card from exile) name(Cast card from exile) counter(0/0.1.ChandraEffect) notrg])) ueot )!
auto=lord(*[counter{0/0.1.ChandraEffect}]|myexile) canplayfromexile
auto=@each endofturn:if type(*[counter{0/0.1.ChandraEffect}]|myexile)~morethan~0 then name(Effect ends) name(Effect ends) all(*[counter{0/0.1.ChandraEffect}]|myexile) removeallcounters(0/0.1.ChandraEffect)
auto=@each endofturn:if type(*[counter{0/0.1.ChandraEffect}]|myexile)~morethan~0 then name(Deals 2 damage) name(Deals 2 damage) damage:2 opponent
auto={C(0/0,1,Loyalty)}:name(+1: Add two red mana) add{R}{R}
auto={C(0/0,-3,Loyalty)}:name(-3: Deals 4 damage to target creature) damage:4 target(creature)
auto={C(0/0,-7,Loyalty)}:name(-7: Emblem: "whenever cast a spell, deals 5 damage any target) emblem transforms((,newability[@movedTo(*|mystack):damage:5 target(player,creature,planeswalker)])) forever dontremove
text=+1: Exile the top card of your library. You may cast that card. If you don't, Chandra, Torch of Defiance deals 2 damage to each opponent. -- +1: Add {R}{R} to your mana pool. -- -3: Chandra, Torch of Defiance deals 4 damage to target creature. -- -7: You get an emblem with "Whenever you cast a spell, this emblem deals 5 damage to target creature or player."
auto={C(0/0,-7,Loyalty)}:name(-7: Emblem: Deals 5 damage when casting a spell) emblem transforms((,newability[@movedTo(*|mystack):damage:5 target(player^creature^planeswalker)])) forever dontremove
text=+1: Exile the top card of your library. You may cast that card. If you don't, Chandra, Torch of Defiance deals 2 damage to each opponent. -- +1: Add {R}{R} to your mana pool. -- -3: Chandra, Torch of Defiance deals 4 damage to target creature. -- -7: You get an emblem with "Whenever you cast a spell, this emblem deals 5 damage to any target."
mana={2}{R}{R}
type=Legendary Planeswalker
subtype=Chandra
@@ -640,7 +643,7 @@ name=Dack Fayden
auto=counter(0/0,3,loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: Target player draws and discards two) target(player) ability$!draw:2 _ choice target(<2>*|myhand) reject!$ targetedplayer
auto={C(0/0,-2,Loyalty)}:name(-2: Gain control of an artifact) moveTo(myBattlefield) target(artifact)
auto={C(0/0,-6,Loyalty)}:name(-6: Emblem: "whenever target a permanent gain control of it") emblem trasforms((,newability[@targeted(*|battlefield) from(*[instant;sorcery;enchantment]|mycastingzone):all(trigger[to]) moveTo(myBattlefield)])) forever dontremove
auto={C(0/0,-6,Loyalty)}:name(-6: Emblem: "whenever target a permanent gain control of it") emblem transforms((,newability[@targeted(*|battlefield) from(*[instant;sorcery;enchantment]|mycastingzone):all(trigger[to]) moveTo(myBattlefield)])) forever dontremove
text=+1: Target player draws two cards, then discards two cards. -- -2: Gain control of target artifact. -- -6: You get an emblem with "Whenever you cast a spell that targets one or more permanents, gain control of those permanents."
mana={1}{U}{R}
type=Legendary Planeswalker
@@ -725,7 +728,7 @@ auto={C(0/0,1,Loyalty)}:name(+1: Add red if its a creature, Riot) add{R} && if t
auto={C(0/0,1,Loyalty)}:name(+1: Add green if its a creature, Riot) add{G} && if type(creature|myStack)~morethan~0 then ability$!name(Choose one) choice name(Put a +1/1 counter) counter(1/1,1) target(creature[fresh]|myBattlefield) _ choice name(Gain Haste) haste target(creature[fresh]|myBattlefield)!$ controller !$ controller
auto={C(0/0,-3,Loyalty)}:name(-3: Reveal four and put up to two creature) name(Look your Library) reveal:4 optionone name(Get a card) target(<upto:2>*[creature]|reveal) moveto(myhand) optiononeend optiontwo name(put on bottom) target(<4>*|reveal) bottomoflibrary optiontwoend revealend
auto={C(0/0,-8,Loyalty)}:name(-8: Emblem: "Each end of turn create a 4/4 Beast) emblem transforms((,newability[@each endofturn: token(Beast,Creature Beast,4/4,red,green,trample)])) forever dontrevome
text=+1: Add {R} or {G}. If that mana is spent on a creature spell, it gains riot. (It enters the battlefield with your choice of a +1/+1 counter or haste.) -- 3: Look at the top four cards of your library. You may reveal up to two creature cards from among them and put them into your hand. Put the rest on the bottom of your library in a random order. -- 8: You get an emblem with At the beginning of each end step, create a 4/4 red and green Beast creature token with trample.
text=+1: Add {R} or {G}. If that mana is spent on a creature spell, it gains riot. (It enters the battlefield with your choice of a +1/+1 counter or haste.) -- 3: Look at the top four cards of your library. You may reveal up to two creature cards from among them and put them into your hand. Put the rest on the bottom of your library in a random order. -- 8: You get an emblem with "At the beginning of each end step, create a 4/4 red and green Beast creature token with trample."
mana={2}{R}{G}
type=Legendary Planeswalker
subtype=Domri
@@ -771,7 +774,7 @@ auto=counter(0/0,3,loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: Target creature gets -3/-0 and no abilities) target(creature) -3/-0 && noactivatedability uynt
auto={C(0/0,-1,Loyalty)}:name(-1: Gain 2 life and Draw a card) life:2 controller && draw:1 controller
auto={C(0/0,-7,Loyalty)}:name(-7: Emblem: "Opponent can't untap more than two") emblem transforms((,newability[phasealter(remove,untap,opponent)],newability[@each opponent untap: may untap(<upto:2>*|opponentBattlefield)])) forever dontremove
text=+1: Until your next turn, up to one target creature gets -3/-0 and its activated abilities cant be activated. -- 1: You gain 2 life and draw a card. -- 7: You get an emblem with Your opponents cant untap more than two permanents during their untap steps.
text=+1: Until your next turn, up to one target creature gets -3/-0 and its activated abilities cant be activated. -- 1: You gain 2 life and draw a card. -- 7: You get an emblem with "Your opponents cant untap more than two permanents during their untap steps."
mana={2}{W}{U}
type=Legendary Planeswalker
subtype=Dovin
@@ -1032,11 +1035,12 @@ subtype=Gideon
[card]
name=Gideon Blackblade
auto=counter(0/0,4,loyalty)
auto=this(variable{controllerturn}>0) transforms((Human Soldier Creature,setpower=4,settoughness=4,indestructible)) ueot && transforms((,newability[preventAllDamage to(this)])) ueot
auto=@each my beginofturn:transforms((Human Soldier Creature,setpower=4,settoughness=4,indestructible)) ueot && transforms((,newability[preventAllDamage to(this)])) ueot
auto={C(0/0,1,Loyalty)}:name(+1: Other creature gains vigilance, lifelink or indestructible) ability$!name(Choose one) choice name(Vigilance) vigilance target(other creature|myBattlefield) _ choice name(Lifelink) lifelink target(other creature|myBattlefield) _ choice name(Indestructible) indestructible target(other creature|myBattlefield)!$ controller
auto={C(0/0,1,Loyalty)}:name(+1: Loyalty counter) donothing restriction{compare(cantargetcre)~lessthan~1}
auto={C(0/0,-6,Loyalty)}:name(-6: Exile target nonland permanent) moveTo(exile) target(*[-land])
auto=this(variable{controllerturn}>0) transforms((Human Soldier Creature,setpower=4,settoughness=4,newability[indestructible],newability[preventAllDamage to(this)]))
auto={C(0/0,1,Loyalty)}:name(+1: Don't target any creature) donothing
auto={C(0/0,1,Loyalty)}:name(+1: Other creature gains vigilance) target(other creature|myBattlefield) transforms((,newability[vigilance])) ueot
auto={C(0/0,1,Loyalty)}:name(+1: Other creature gains lifelink) target(other creature|myBattlefield) transforms((,newability[lifelink])) ueot
auto={C(0/0,1,Loyalty)}:name(+1: Other creature gains indestructible) target(other creature|myBattlefield) transforms((,newability[indestructible])) ueot
auto={C(0/0,-6,Loyalty)}:name(-6: Exile target nonland permanent) target(*[-land]|battlefield) moveTo(exile)
text=As long as it's your turn, Gideon Blackblade is a 4/4 Human Soldier creature with indestructible that's still a planeswalker. -- Prevent all damage that would be dealt to Gideon Blackblade during your turn. -- +1: Up to one other target creature you control gains your choice of vigilance, lifelink, or indestructible until end of turn. -- -6: Exile target nonland permanent.
mana={1}{W}{W}
type=Legendary Planeswalker
@@ -1155,7 +1159,7 @@ auto=counter(0/0,3,loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: Put a Loyalty counter for each creature) foreach(creature|myBattlefield) counter(0/0,1,Loyalty) all(this)
auto={C(0/0,-1,Loyalty)}:name(-1: Target creature gets +X/+X) target(creature) type:creature:myBattlefield/type:creature:myBattlefield ueot
auto={C(0/0,-8,Loyalty)}:name(-8: Emblem: "Whenever creature enters, draw a card) emblem transforms((,newability[@movedTo(creature|myBattlefield):may draw:1 controller])) forever dontremove
text=+1: Put a loyalty counter on Huatli, Radiant Champion for each creature you control. -- 1: Target creature gets +X/+X until end of turn, where X is the number of creatures you control. -- 8: You get an emblem with Whenever a creature enters the battlefield under your control, you may draw a card.
text=+1: Put a loyalty counter on Huatli, Radiant Champion for each creature you control. -- 1: Target creature gets +X/+X until end of turn, where X is the number of creatures you control. -- 8: You get an emblem with "Whenever a creature enters the battlefield under your control, you may draw a card."
mana={2}{G}{W}
type=Legendary Planeswalker
subtype=Huatli
@@ -1252,10 +1256,12 @@ subtype=Jace
[card]
name=Jace, Cunning Castaway
auto=counter(0/0,3,loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: Whenever a creature deals combat...) emblem transforms((,newability[@each combatdamage restriction{opponentdamagedbycombat}:draw:1 controller then reject target(*|myhand)])) ueot oneshot
auto={C(0/0,-2,Loyalty)}:name(-2: Create a 2/2 blue Illusion...) token(Illusion,Creature Illusion,2/2,blue) and!( transforms((,newability[@targeted(this) from(*|opponentStack):sacrifice])) forever )!
auto={C(0/0,-5,Loyalty)}:name(-5: Create two tokens of Jace Cunning Castaway) clone all(this) with([-legendary])*2
text=+1: Whenever one or more creatures you control deal combat damage to a player this turn, draw a card, then discard a card. -- -2: Create a 2/2 blue Illusion creature token with “When this creature becomes the target of a spell, sacrifice it.” -- -5: Create two tokens that are copies of Jace, Cunning Castaway, except theyre not legendary.
auto=@combatdamaged(player) from(creature|mybattlefield) restriction{compare(hascntjaceeffect)~morethan~0} turnlimited:draw:1 controller && transforms((,newability[name(Discard a card) reject target(*|myhand)])) ueot])) ueot
auto=@each endofturn restriction{compare(hascntjaceeffect)~morethan~0}:name(Effect Ends) removeallcounters(0/0.1.JaceEffect)
auto={C(0/0,1,Loyalty)}:name(+1: Draw on damage) counter(0/0.1.JaceEffect) notrg
auto={C(0/0,-2,Loyalty)}:name(-2: Create Illusion) token(Illusion,Creature Illusion,2/2,blue) and!( transforms((,newability[@targeted(this) from(*|stack):name(Sacrifice) sacrifice])) forever )!
auto={C(0/0,-5,Loyalty)}:name(-5: Create two copy) clone options(nolegend) && clone options(nolegend)
text=+1: Whenever one or more creatures you control deal combat damage to a player this turn, draw a card, then discard a card. -- -2: Create a 2/2 blue Illusion creature token with "When this creature becomes the target of a spell, sacrifice it." -- -5: Create two tokens that are copies of Jace, Cunning Castaway, except theyre not legendary.
mana={1}{U}{U}
type=Legendary Planeswalker
subtype=Jace
@@ -1423,7 +1429,7 @@ auto=counter(0/0,5,Loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: Add 3 red mana) if type(*[instant;sorcery]|myhand)~morethan~0 then add{R}{R}{R}
auto={C(0/0,1,Loyalty)}:name(+1: Discard up to three and draw that many) reject notatarget(<upto:3>*|myhand) and!( draw:1 controller )!
auto={C(0/0,-8,Loyalty)}:name(-8: Emblem: "Yoy may cast instants or sorceries from graveyard") emblem transforms((,newability[lord(*[instant;sorcery]|mygraveyard) canplayfromgraveyard],newability[lord(*[instant;sorcery]|mygraveyard) gainedexiledeath])) forever dontremove
text=+1: Add {R}{R}{R}. Spend this mana only to cast instant or sorcery spells. -- +1: Discard up to three cards, then draw that many cards. -- 8: You get an emblem with You may cast instant and sorcery spells from your graveyard. If a spell cast this way would be put into your graveyard, exile it instead.
text=+1: Add {R}{R}{R}. Spend this mana only to cast instant or sorcery spells. -- +1: Discard up to three cards, then draw that many cards. -- 8: You get an emblem with "You may cast instant and sorcery spells from your graveyard. If a spell cast this way would be put into your graveyard, exile it instead."
mana={2}{R}{R}{R}
type=Legendary Planeswalker
subtype=Jaya
@@ -1480,7 +1486,7 @@ auto=counter(0/0,5,loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: Reveal two exile one and put in hand) reveal:2 optionone name(Look at the top two cards) target(*|reveal) moveto(myHand) optiononeend optiontwo name(Exile) target(*|reveal) moveTo(myExile) optiontwoend revealend
auto={C(0/0,-3,Loyalty)}:name(-3: Return a exile card to your hand) moveTo(myHand) target(*|myExile)
auto={C(0/0,-2,Loyalty)}:name(-2: Create a 0/0 Construct) token(Construct,Artifact Creature Construct,0/0) and!( transforms((,newability[foreach(artifact|mybattlefield) 1/1])) forever )!
text=+1: Reveal the top two cards of your library. An opponent chooses one of them. Put that card into your hand and exile the other with a silver counter on it. -- 1: Put a card you own with a silver counter on it from exile into your hand. -- 2: Create a 0/0 colorless Construct artifact creature token with This creature gets +1/+1 for each artifact you control.
text=+1: Reveal the top two cards of your library. An opponent chooses one of them. Put that card into your hand and exile the other with a silver counter on it. -- 1: Put a card you own with a silver counter on it from exile into your hand. -- 2: Create a 0/0 colorless Construct artifact creature token with "This creature gets +1/+1 for each artifact you control."
mana={4}
type=Legendary Planeswalker
subtype=Karn
@@ -2013,7 +2019,7 @@ auto={C(0/0,-2,Loyalty)}:name(-2: Your next instant or sorcery has rebound) coun
auto={C(0/0,-9,Loyalty)}:name(-9: Emblem: "Your opponents can't cast noncreature spells") emblem transforms((,newability[maxCast(*[-creature])0 opponent])) forever dontremove
auto=@movedTo(*[instant;sorcery]|myStack):this(counter{0/0.1.ReboundActive}>=1) all(trigger[to]) transforms((,newability[gainedexiledeath],newability[phaseaction[my upkeep once] counter(0/0.1.NarsetExile)])) ueot && counter(0/0.-1.ReboundActive) all(this)
auto=@each my upkeep:if type(*[instant;sorcery;counter{0/0.1.NarsetExile}]|myexile)~morethan~0 then ability$!name(Choose one) choice name(Cast card from exile) activate castcard(normal) target(*[instant;sorcery;counter{0/0.1.NarsetExile}]|myexile) _ choice name(Don't cast card from exile) all(*[instant;sorcery;counter{0/0.1.NarsetExile}]|myexile) removeallcounters(0/0.-1.NarsetExile)!$ controller
text=+1: Look at the top card of your library. If its a noncreature, nonland card, you may reveal it and put it into your hand. -- 2: When you cast your next instant or sorcery spell from your hand this turn, it gains rebound. (Exile the spell as it resolves. At the beginning of your next upkeep, you may cast that card from exile without paying its mana cost.) -- 9: You get an emblem with Your opponents cant cast noncreature spells.
text=+1: Look at the top card of your library. If its a noncreature, nonland card, you may reveal it and put it into your hand. -- 2: When you cast your next instant or sorcery spell from your hand this turn, it gains rebound. (Exile the spell as it resolves. At the beginning of your next upkeep, you may cast that card from exile without paying its mana cost.) -- 9: You get an emblem with "Your opponents cant cast noncreature spells."
mana={2}{W}{U}
type=Legendary Planeswalker
subtype=Narset
@@ -2217,7 +2223,7 @@ auto=counter(0/0,3,loyalty)
auto={C(0/0,2,Loyalty)}:name(+2: Each opponent loses 1 life...) life:-1 opponent && life:1 controller
auto={C(0/0,-2,Loyalty)}:name(-2: Create a 5/5 black Demon with flying...) token(Demon,Creature Demon,5/5,black,flying) && life:-2 controller
auto={C(0/0,-8,Loyalty)}:name(-8: Emblem: "{1}{B}, sacrifice a creature: Draw X and gain X life") emblem transforms((,newability[{1}{B}{S(creature|myBattlefield}:draw:storedpower && life:storedpower])) forever dontremove
text=+2: Each opponent loses 1 life. You gain life equal to the life lost this way. -- -2: Create a 5/5 black Demon creature token with flying. You lose 2 life. -- -8: You get an emblem with {1}{B}, Sacrifice a creature: You gain X life and draw X cards, where X is the sacrificed creatures power. -- Ob Nixilis of the Black Oath can be your commander.
text=+2: Each opponent loses 1 life. You gain life equal to the life lost this way. -- -2: Create a 5/5 black Demon creature token with flying. You lose 2 life. -- -8: You get an emblem with "{1}{B}, Sacrifice a creature: You gain X life and draw X cards, where X is the sacrificed creatures power." -- Ob Nixilis of the Black Oath can be your commander.
mana={3}{B}{B}
type=Legendary Planeswalker
subtype=Nixilis
@@ -2306,9 +2312,9 @@ name=Ral, Izzet Viceroy
auto=counter(0/0,4,loyalty)
aicode=activate transforms((,newability[choice all(*[zpos=2]|mylibrary) moveto(myhand) and!(deplete:1)!],newability[choice all(*[zpos=1]|mylibrary) moveto(myhand) and!(deplete:1)!])) ueot
auto={C(0/0,1,Loyalty)}:name(+1: Look the top two, put one in hand other graveyard) name(look) reveal:2 optionone name(Get a card) target(<1>*|reveal) moveto(myhand) optiononeend optiontwo all(*|reveal) moveto(mygraveyard) optiontwoend revealend
auto={C(0/0,-3,Loyalty)}:name(-3: Deals damage for each instant and sorcery) damage:type:*[instant;sorcery]:myExile target(creature) && ability$!name(Damage) damage:type:*[instant;sorcery]:myGraveyard targete(creature)!$ controller
auto={C(0/0,-3,Loyalty)}:name(-3: Deals damage for each instant and sorcery) target(creature) damage:type:*[instant;sorcery]:myexilepluspginstantsorceryplusend
auto={C(0/0,-8,Loyalty)}:name(-8: Emblem: "Whenever cast spell, deals 4 damage, draw two cards") emblem transforms((,newability[@movedTo(*[instant;sorcery]|myStack):draw:2 controller && damage:4 target(player,creature,planeswalker)])) forever dontremove
text=+1: Look at the top two cards of your library. Put one of them into your hand and the other into your graveyard. -- 3: Ral, Izzet Viceroy deals damage to target creature equal to the total number of instant and sorcery cards you own in exile and in your graveyard. -- 8: You get an emblem with Whenever you cast an instant or sorcery spell, this emblem deals 4 damage to any target and you draw two cards.
text=+1: Look at the top two cards of your library. Put one of them into your hand and the other into your graveyard. -- 3: Ral, Izzet Viceroy deals damage to target creature equal to the total number of instant and sorcery cards you own in exile and in your graveyard. -- 8: You get an emblem with "Whenever you cast an instant or sorcery spell, this emblem deals 4 damage to any target and you draw two cards."
mana={3}{U}{R}
type=Legendary Planeswalker
subtype=Ral
@@ -2352,11 +2358,11 @@ name=Rowan Kenrith
abilities=partner,canbecommander
partner=Will Kenrith
auto=counter(0/0,4,loyalty)
auto={C(0/0,2,Loyalty)}:name(+2: Opponent creatures must attack) all(creature|opponentbattlefield) mustattack ueot
auto={C(0/0,2,Loyalty)}:name(+2: Your creatures must attack) all(creature|mybattlefield) mustattack ueot
auto={C(0/0,2,Loyalty)}:name(+2: Opponent creatures must attack) token(Rowan Effect,Emblem,0/0,shroud,indestructible,notrigger) and!( transforms((,newability[@each opponent endofturn:name(Sacrifice) sacrifice],newability[lord(creature|opponentbattlefield) mustattack])) forever )!
auto={C(0/0,2,Loyalty)}:name(+2: Your creatures must attack) token(Rowan Effect,Emblem,0/0,shroud,indestructible,notrigger) and!( transforms((,newability[@each opponent endofturn:counter(0/0.1.Rem)],newability[@each my endofturn restriction{compare(hascntrem)~equalto~1}:name(Sacrifice) sacrifice],newability[this(counter{0/0.1.Rem}>0) lord(creature|mybattlefield) mustattack])) forever )!
auto={C(0/0,-2,Loyalty)}:name(-2: Deals 3 damage to opponent tapped creatures) damage:3 all(creature[tapped]|opponentBattlefield)
auto={C(0/0,-2,Loyalty)}:name(-2: Deals 3 damage to your tapped creatures) damage:3 all(creature[tapped]|myBattlefield)
text=+2: During target players next turn, each creature that player controls attacks if able. -- 2: Rowan Kenrith deals 3 damage to each tapped creature target player controls. -- 8: Target player gets an emblem with Whenever you activate an ability that isnt a mana ability, copy it. You may choose new targets for the copy. -- Partner with Will Kenrith -- Rowan Kenrith can be your commander.
text=+2: During target players next turn, each creature that player controls attacks if able. -- 2: Rowan Kenrith deals 3 damage to each tapped creature target player controls. -- 8: Target player gets an emblem with "Whenever you activate an ability that isnt a mana ability, copy it. You may choose new targets for the copy." -- Partner with Will Kenrith -- Rowan Kenrith can be your commander.
mana={4}{R}{R}
type=Legendary Planeswalker
subtype=Rowan
@@ -2703,7 +2709,7 @@ auto=counter(0/0,4,loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: Draw a card and untap two lands) draw:1 controller && phaseaction[endofturn once] untap target(<2>land)
auto={C(0/0,-3,Loyalty)}:name(-3: Return target nonland to library) target(*[-land]) placefromthetop(3)
auto={C(0/0,-8,Loyalty)}:name(-8: Emblem: "Whenever draw, exile permanent") emblem transforms((,newability[@drawof(player):moveTo(exile) target(*|opponentBattlefield)])) forever dontremove
text=+1: Draw a card. At the beginning of the next end step, untap up to two lands. -- 3: Put target nonland permanent into its owners library third from the top. -- 8: You get an emblem with Whenever you draw a card, exile target permanent an opponent controls.
text=+1: Draw a card. At the beginning of the next end step, untap up to two lands. -- 3: Put target nonland permanent into its owners library third from the top. -- 8: You get an emblem with "Whenever you draw a card, exile target permanent an opponent controls."
mana={3}{W}{U}
type=Legendary Planeswalker
subtype=Teferi
@@ -2748,7 +2754,7 @@ name=Teferi, Timeless Voyager
auto=counter(0/0,4,loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: Draw a card) draw:1 controller
auto={C(0/0,-3,Loyalty)}:name(-3: Put a creature on top) moveTo(ownerLibrary) target(creature)
auto={C(0/0,-8,Loyalty)}:name(-8: All creatures you don't control phases out and can't phase in) phaseout all(creature|opponentbattlefield) uynt transforms((,newability[all(creature|opponetBattlefield) cantphasein uynt]))
auto={C(0/0,-8,Loyalty)}:name(-8: Opponent creatures phase out) emblem transforms((,newability[all(creature|opponentbattlefield) phaseout],newability[@each upkeep:all(creature|opponentbattlefield) phaseout])) uent
text=+1: Draw a card. -- 3: Put target creature on top of its owner's library. -- 8: Each creature target opponent controls phases out. Until the end of your next turn, they can't phase in. (Treat them and anything attached to them as though they don't exist.)
mana={4}{U}{U}
type=Legendary Planeswalker
@@ -2836,7 +2842,7 @@ auto=counter(0/0,5,loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: Create a 1/1 Thopter) token(Thopter,Artifact Creature Thopter,1/1,flying)
auto={C(0/0,0,Loyalty)}:name(+0: Draw a card or two) if type(artifact|myBattlefield)~morethan~2 draw:2 controller else draw:1 controller
auto={C(0/0,-9,Loyalty)}:name(-9: Emblem: Each end of turn search a permanent) emblem transforms((,newability[@each my endofturn:moveTo(myBattlefield) target(*[-instant;-sorcery]|myLibrary) && shuffle controller])) forever dontremove
text=+1: Create a 1/1 colorless Thopter artifact creature token with flying. -- 0: Draw a card. If you control three or more artifacts, draw two cards instead. -- 9: You get an emblem with At the beginning of your end step, search your library for a permanent card, put it onto the battlefield, then shuffle your library.
text=+1: Create a 1/1 colorless Thopter artifact creature token with flying. -- 0: Draw a card. If you control three or more artifacts, draw two cards instead. -- 9: You get an emblem with "At the beginning of your end step, search your library for a permanent card, put it onto the battlefield, then shuffle your library."
mana={3}{U}{U}
type=Legendary Planeswalker
subtype=Tezzeret
@@ -2965,9 +2971,9 @@ subtype=Tibalt
[card]
name=Tibalt, the Fiend-Blooded
auto=counter(0/0,2,Loyalty)
auto={counter(0/0,1,Loyalty)}:name(+1: Draw and discard a card) draw:1 controller && reject target(*|myhand)
auto={counter(0/0,-4,Loyalty)}:name(-4: Deals damage target player equal to hand) target(player) damage:type:*:targetedpersonshand
auto={counter(0/0,-6,Loyalty)}:name(-6: "Insurrection") all(creature|battlefield) moveTo(mybattlefield) && all(creature) transforms((,newability[untap],newability[haste],newability[phaseaction[endofturn sourceinplay] moveTo(ownerbattlefield)])) ueot
auto={counter(0/0,1,Loyalty)}:name(+1: Draw and discard) draw:1 controller && discard:1 controller
auto={counter(0/0,-4,Loyalty)}:name(-4: Deal damage to player) target(player) damage:type:*:targetedpersonshand
auto={counter(0/0,-6,Loyalty)}:name(-6: Gain control of creatures) all(creature|battlefield) moveTo(mybattlefield) and!( transforms((,newability[untap],newability[haste],newability[phaseaction[endofturn once sourceinplay] moveTo(ownerbattlefield)])) ueot )!
text=+1: Draw a card, then discard a card at random. -- -4: Tibalt, the Fiend-Blooded deals damage equal to the number of cards in target player's hand to that player. -- -6: Gain control of all creatures until end of turn. Untap them. They gain haste until end of turn.
mana={R}{R}
type=Legendary Planeswalker
@@ -2980,7 +2986,7 @@ auto=lord(elf|mybattlefield) transforms((,newability[{T}:add{B}]))
auto={C(0/0,1,Loyalty)}:name(+1: Put +1/+1 counter) target(elf|mybattlefield) transforms((,newability[counter(1/1)],newability[deathtouch],newability[untap])) ueot
auto={C(0/0,0,Loyalty)}:name(0: Create 1/1 Elf) token(Warrior,Creature Elf Warrior,1/1,green)
auto={C(0/0,-6,Loyalty)}:name(-6: Emblem cast elf) emblem transforms((,newability[@movedTo(elf|mybattlefield):all(trigger[to]) transforms((,newability[haste],newability[draw:2 controller])) ueot])) forever dontremove
text=Elves you control have {T}: Add {B}. -- +1: Put a +1/+1 counter on up to one target Elf. Untap it. It gains deathtouch until end of turn. -- 0: Create a 1/1 green Elf Warrior creature token. -- -6: You get an emblem with Whenever you cast an Elf spell, it gains haste until end of turn and you draw two cards.
text=Elves you control have "{T}: Add {B}." -- +1: Put a +1/+1 counter on up to one target Elf. Untap it. It gains deathtouch until end of turn. -- 0: Create a 1/1 green Elf Warrior creature token. -- -6: You get an emblem with "Whenever you cast an Elf spell, it gains haste until end of turn and you draw two cards."
mana={2}{G}{G}
type=Legendary Planeswalker
subtype=Tyvar
@@ -3176,9 +3182,11 @@ name=Will Kenrith
abilities=partner,canbecommander
partner=Rowan Kenrith
auto=counter(0/0,4,loyalty)
auto={C(0/0,2,Loyalty)}:name(+2: Up to two creatures 0/3 no abilities) target(<upto:2>creatures) transforms(setpower=0,settoughness=3,loseabilities) uynt
auto={C(0/0,-2,Loyalty)}:name(-2: Draw two cards and cost {2} less) target(player) draw:2 targetedplayer && all(this) transforms((,newability[lord(*[instant;sorcery;planeswalker]|mycastingzone) altercost(colorless,-2)])) uynt
auto={C(0/0,-8,Loyalty)}:name(-8: Whenever cast instant or sorcery copy spell) emblem transforms((,newability[@movedTo(*[instant;sorcery]|myStack):may castcard(copied noevent) target(*[instant;sorcery]|mystack)])) forever dontremove
auto={C(0/0,2,Loyalty)}:name(+2: Don't target any creature) donothing
auto={C(0/0,2,Loyalty)}:name(+2: Two creatures become 0/3) target(<upto:2>creature|battlefield) transforms((,setpower=0,settoughness=3,newability[loseabilities])) uynt
auto={C(0/0,-2,Loyalty)}:name(-2: You draw 2 cards) token(Will Effect,Emblem,0/0,shroud,indestructible,notrigger) and!( transforms((,newability[draw:2 controller],newability[@each my beginofturn:name(Sacrifice) sacrifice],newability[lord(*[instant;sorcery;planeswalker]|mycastingzone) changecost(colorless:-2) forcedalive])) forever )!
auto={C(0/0,-2,Loyalty)}:name(-2: Opponent draws 2 cards) token(Will Effect,Emblem,0/0,shroud,indestructible,notrigger) and!( transforms((,newability[draw:2 opponent],newability[@each my beginofturn:name(Sacrifice) sacrifice],newability[lord(*[instant;sorcery;planeswalker]|opponentcastingzone) changecost(colorless:-2) forcedalive])) forever )!
auto={C(0/0,-8,Loyalty)}:name(-8: Whenever you cast instant or sorcery copy spell) emblem transforms((,newability[@movedTo(*[instant;sorcery]|mystack):may name(Copy spell) all(trigger[to]) name(Copy spell) activate castcard(copied noevent)])) forever dontremove
text=+2: Until your next turn, up to two target creatures each have base power and toughness 0/3 and lose all abilities. -- 2: Target player draws two cards. Until your next turn, instant, sorcery, and planeswalker spells that player casts cost {2} less to cast. -- 8: Target player gets an emblem with "Whenever you cast an instant or sorcery spell, copy it. You may choose new targets for the copy." -- Partner with Rowan Kenrith -- Will Kenrith can be your commander.
mana={4}{U}{U}
type=Legendary Planeswalker

View File

@@ -347,16 +347,22 @@ public:
class TrCardExerted: public Trigger
{
public:
TrCardExerted(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc, bool once = false) :
Trigger(observer, id, source, once, tc)
bool limitOnceATurn;
int triggeredTurn;
TrCardExerted(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc, bool once = false, bool limitOnceATurn = false) :
Trigger(observer, id, source, once, tc), limitOnceATurn(limitOnceATurn)
{
triggeredTurn = -1;
}
int triggerOnEventImpl(WEvent * event)
{
WEventCardExerted * e = dynamic_cast<WEventCardExerted *> (event);
if (!e) return 0;
if (limitOnceATurn && triggeredTurn == game->turn)
return 0;
if (!tc->canTarget(e->card)) return 0;
triggeredTurn = game->turn;
return 1;
}
@@ -485,6 +491,35 @@ public:
}
};
class TrplayerPoisoned: public Trigger
{
public:
bool thiscontroller, thisopponent;
TrplayerPoisoned(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc, bool once = false, bool thiscontroller = false, bool thisopponent = false) :
Trigger(observer, id, source, once, tc),thiscontroller(thiscontroller),thisopponent(thisopponent)
{
}
int triggerOnEventImpl(WEvent * event)
{
WEventplayerPoisoned * e = dynamic_cast<WEventplayerPoisoned *> (event);
if (!e) return 0;
if (!tc->canTarget(e->player)) return 0;
if(thiscontroller)
if(e->player != source->controller())
return 0;
if(thisopponent)
if(e->player == source->controller())
return 0;
return 1;
}
TrplayerPoisoned * clone() const
{
return NEW TrplayerPoisoned(*this);
}
};
class TrplayerEnergized: public Trigger
{
public:
@@ -4904,9 +4939,10 @@ public:
bool newAbilityFound;
bool aForever;
bool UYNT;
bool UENT;
int myCurrentTurn;
string menutext; //this overrides the previous.
ATransformer(GameObserver* observer, int id, MTGCardInstance * source, MTGCardInstance * target, string stypes, string sabilities,string newpower, bool newpowerfound,string newtoughness, bool newtoughnessfound,vector<string> newAbilitiesList, bool newAbilityFound = false, bool aForever = false , bool UYNT = false,string menutext = "");
ATransformer(GameObserver* observer, int id, MTGCardInstance * source, MTGCardInstance * target, string stypes, string sabilities,string newpower, bool newpowerfound,string newtoughness, bool newtoughnessfound,vector<string> newAbilitiesList, bool newAbilityFound = false, bool aForever = false, bool UYNT = false, bool UENT = false, string menutext = "");
int addToGame();
int reapplyCountersBonus(MTGCardInstance * rtarget= NULL, bool powerapplied=false, bool toughnessapplied=false);
int testDestroy();
@@ -4930,9 +4966,10 @@ public:
bool newAbilityFound;
bool aForever;
bool UYNT;
bool UENT;
string menu;
ATransformerInstant(GameObserver* observer, int id, MTGCardInstance * source, MTGCardInstance * target, string types = "", string abilities = "",string newpower = "", bool newpowerfound = false, string newtoughness = "", bool newtoughnessfound = false, vector<string>newAbilitiesList = vector<string>(), bool newAbilityFound = false, bool aForever = false, bool UYNT = false, string menutext = "");
ATransformerInstant(GameObserver* observer, int id, MTGCardInstance * source, MTGCardInstance * target, string types = "", string abilities = "",string newpower = "", bool newpowerfound = false, string newtoughness = "", bool newtoughnessfound = false, vector<string>newAbilitiesList = vector<string>(), bool newAbilityFound = false, bool aForever = false, bool UYNT = false, bool UENT = false, string menutext = "");
int resolve();
const string getMenuText();
ATransformerInstant * clone() const;
@@ -5087,8 +5124,9 @@ class ALoseSubtypes: public MTGAbility
{
public:
int parentType;
bool specificType; // added to remove a specific type (e.g. "Conversion").
vector <int> storedSubtypes;
ALoseSubtypes(GameObserver* observer, int id, MTGCardInstance * source, MTGCardInstance * target, int parentType);
ALoseSubtypes(GameObserver* observer, int id, MTGCardInstance * source, MTGCardInstance * target, int parentType, bool specificType = false);
int addToGame();
int destroy();
ALoseSubtypes * clone() const;

View File

@@ -333,7 +333,10 @@ class Constants
NOENTERTRG = 206,
NODIETRG = 207,
TRAINING = 208,
NB_BASIC_ABILITIES = 209,
ENERGYSHROUD = 209,
EXPSHROUD = 210,
COUNTERSHROUD = 211,
NB_BASIC_ABILITIES = 212,
RARITY_S = 'S', //Special Rarity
RARITY_M = 'M', //Mythics

View File

@@ -350,6 +350,15 @@ struct WEventCardCopiedACard : public WEventCardUpdate {
virtual Targetable * getTarget(int target);
};
//alterpoison event
struct WEventplayerPoisoned : public WEvent {
WEventplayerPoisoned(Player * player, int nb_count);
Player * player;
int nb_count;
using WEvent::getTarget;
virtual Targetable * getTarget(Player * player);
};
//alterenergy event
struct WEventplayerEnergized : public WEvent {
WEventplayerEnergized(Player * player, int nb_count);

View File

@@ -1037,8 +1037,16 @@ int AAAlterPoison::resolve()
if (_target)
{
Player * pTarget = (Player*)_target;
if(!pTarget->inPlay()->hasAbility(Constants::POISONSHROUD) || poison < 0)
if(!pTarget->inPlay()->hasAbility(Constants::POISONSHROUD) || poison < 0){
_target->poisonCount += poison;
if(pTarget->poisonCount < 0)
pTarget->poisonCount = 0;
if(poison > 0)
{
WEvent * e = NEW WEventplayerPoisoned(pTarget, poison); // Added an event when player receives any poison counter.
game->receiveEvent(e);
}//todo loses poison event
}
}
return 0;
}
@@ -1377,14 +1385,16 @@ int AAAlterEnergy::resolve()
Player * pTarget = (Player*)_target;
if(pTarget)
{
pTarget->energyCount += energy;
if(pTarget->energyCount < 0)
pTarget->energyCount = 0;
if(energy > 0)
{
WEvent * e = NEW WEventplayerEnergized(pTarget, energy);
game->receiveEvent(e);
}//todo loses enegy event
if(!pTarget->inPlay()->hasAbility(Constants::ENERGYSHROUD) || energy < 0){
pTarget->energyCount += energy;
if(pTarget->energyCount < 0)
pTarget->energyCount = 0;
if(energy > 0)
{
WEvent * e = NEW WEventplayerEnergized(pTarget, energy);
game->receiveEvent(e);
}//todo loses enegy event
}
}
}
return 0;
@@ -1420,14 +1430,16 @@ int AAAlterExperience::resolve()
Player * pTarget = (Player*)_target;
if(pTarget)
{
pTarget->experienceCount += experience;
if(pTarget->experienceCount < 0)
pTarget->experienceCount = 0;
if(experience > 0)
{
WEvent * e = NEW WEventplayerExperienced(pTarget, experience);
game->receiveEvent(e);
}//todo loses experience event
if(!pTarget->inPlay()->hasAbility(Constants::EXPSHROUD) || experience < 0){
pTarget->experienceCount += experience;
if(pTarget->experienceCount < 0)
pTarget->experienceCount = 0;
if(experience > 0)
{
WEvent * e = NEW WEventplayerExperienced(pTarget, experience);
game->receiveEvent(e);
}//todo loses experience event
}
}
}
return 0;
@@ -2551,6 +2563,9 @@ AACounter::AACounter(GameObserver* observer, int id, MTGCardInstance * source, M
}
if (nb > 0)
{
if(_target->has(Constants::COUNTERSHROUD)) // Added to avoid the counter increasement (e.g. "Solemnity").
return 0;
for (int i = 0; i < nb; i++)
{
while (_target->next)
@@ -7533,8 +7548,8 @@ AAlterCost::~AAlterCost()
}
// ATransformer
ATransformer::ATransformer(GameObserver* observer, int id, MTGCardInstance * source, MTGCardInstance * target, string stypes, string sabilities,string newpower,bool newpowerfound,string newtoughness,bool newtoughnessfound,vector<string> newAbilitiesList,bool newAbilityFound,bool aForever, bool aUntilNext,string _menu) :
MTGAbility(observer, id, source, target),newpower(newpower),newpowerfound(newpowerfound),newtoughness(newtoughness),newtoughnessfound(newtoughnessfound),newAbilitiesList(newAbilitiesList),newAbilityFound(newAbilityFound),aForever(aForever),UYNT(aUntilNext),menutext(_menu)
ATransformer::ATransformer(GameObserver* observer, int id, MTGCardInstance * source, MTGCardInstance * target, string stypes, string sabilities,string newpower,bool newpowerfound,string newtoughness,bool newtoughnessfound,vector<string> newAbilitiesList,bool newAbilityFound,bool aForever,bool aUntilNext,bool aUntilEndNext,string _menu) :
MTGAbility(observer, id, source, target),newpower(newpower),newpowerfound(newpowerfound),newtoughness(newtoughness),newtoughnessfound(newtoughnessfound),newAbilitiesList(newAbilitiesList),newAbilityFound(newAbilityFound),aForever(aForever),UYNT(aUntilNext),UENT(aUntilEndNext),menutext(_menu)
{
if (target != source) {
@@ -7576,7 +7591,7 @@ ATransformer::ATransformer(GameObserver* observer, int id, MTGCardInstance * sou
int ATransformer::addToGame()
{
if(UYNT)
if(UYNT || UENT)
myCurrentTurn = game->turn;
MTGCardInstance * _target = NULL;
Interruptible * action = (Interruptible *) target;
@@ -7784,6 +7799,12 @@ int ATransformer::addToGame()
if(myCurrentTurn != 1000 && game->turn > myCurrentTurn && source->controller()->getId() == game->currentPlayer->getId())
return 1;
return 0; // Fixed an issue when the transformation with uynt is triggered by instant/sorcery or by card that left the battlefield before the ability ending turn.
}
else if(UENT)
{
if(myCurrentTurn != 1000 && game->turn > (myCurrentTurn + 1) && source->controller()->getId() != game->currentPlayer->getId())
return 1;
return 0; // Fixed an issue when the transformation with uent is triggered by instant/sorcery or by card that left the battlefield before the ability ending turn.
}
return MTGAbility::testDestroy();
}
@@ -7896,10 +7917,10 @@ ATransformer::~ATransformer()
}
//ATransformerInstant
ATransformerInstant::ATransformerInstant(GameObserver* observer, int id, MTGCardInstance * source, MTGCardInstance * target, string types, string abilities,string newpower,bool newpowerfound,string newtoughness,bool newtoughnessfound,vector<string>newAbilitiesList,bool newAbilityFound,bool aForever,bool aUntilNext,string _menu) :
InstantAbility(observer, id, source, target),newpower(newpower),newpowerfound(newpowerfound),newtoughness(newtoughness),newtoughnessfound(newtoughnessfound),newAbilitiesList(newAbilitiesList),newAbilityFound(newAbilityFound),aForever(aForever),UYNT(aUntilNext),menu(_menu)
ATransformerInstant::ATransformerInstant(GameObserver* observer, int id, MTGCardInstance * source, MTGCardInstance * target, string types, string abilities,string newpower,bool newpowerfound,string newtoughness,bool newtoughnessfound,vector<string>newAbilitiesList,bool newAbilityFound,bool aForever,bool aUntilNext,bool aUntilEndNext,string _menu) :
InstantAbility(observer, id, source, target),newpower(newpower),newpowerfound(newpowerfound),newtoughness(newtoughness),newtoughnessfound(newtoughnessfound),newAbilitiesList(newAbilitiesList),newAbilityFound(newAbilityFound),aForever(aForever),UYNT(aUntilNext),UENT(aUntilEndNext),menu(_menu)
{
ability = NEW ATransformer(game, id, source, target, types, abilities,newpower,newpowerfound,newtoughness,newtoughnessfound,newAbilitiesList,newAbilityFound,aForever,aUntilNext,_menu);
ability = NEW ATransformer(game, id, source, target, types, abilities,newpower,newpowerfound,newtoughness,newtoughnessfound,newAbilitiesList,newAbilityFound,aForever,aUntilNext,aUntilEndNext,_menu);
aType = MTGAbility::STANDARD_BECOMES;
}
@@ -8163,8 +8184,8 @@ ALoseAbilities * ALoseAbilities::clone() const
}
//ALoseSubtypes
ALoseSubtypes::ALoseSubtypes(GameObserver* observer, int id, MTGCardInstance * source, MTGCardInstance * _target, int parentType) :
MTGAbility(observer, id, source), parentType(parentType)
ALoseSubtypes::ALoseSubtypes(GameObserver* observer, int id, MTGCardInstance * source, MTGCardInstance * _target, int parentType, bool specificType) :
MTGAbility(observer, id, source), parentType(parentType), specificType(specificType)
{
target = _target;
}
@@ -8181,7 +8202,7 @@ int ALoseSubtypes::addToGame()
for (int i = ((int)_target->types.size())-1; i >= 0; --i)
{
int subtype = _target->types[i];
if (MTGAllCards::isSubtypeOfType(subtype, parentType))
if ((!specificType && MTGAllCards::isSubtypeOfType(subtype, parentType)) || (specificType && subtype == parentType)) // added to remove a specific type (e.g. "Conversion").
{
storedSubtypes.push_back(subtype);
_target->removeType(subtype);
@@ -9328,7 +9349,10 @@ void ABlink::returnCardIntoPlay(MTGCardInstance* _target) {
spell->source->toughness = spell->source->origtoughness;
spell->source->X = 0;
if (!spell->source->hasSubtype(Subtypes::TYPE_AURA)) {
MTGGameZone* prev = spell->source->previousZone; // Save the previous zone of card before spell resolution.
spell->resolve();
if(prev && spell->source->currentZone == spell->source->previousZone)
spell->source->previousZone = prev; // Fixed issue on previous zone (e.g. "Otherworldly Journey").
if (stored)
{
MTGAbility * clonedStored = stored->clone();

View File

@@ -189,8 +189,14 @@ int Damage::resolve()
{
// Poison on player
Player * _target = (Player *) target;
if(!_target->inPlay()->hasAbility(Constants::POISONSHROUD))
if(!_target->inPlay()->hasAbility(Constants::POISONSHROUD)){
_target->poisonCount += damage;//this will be changed to poison counters.
if(damage > 0)
{
WEvent * e = NEW WEventplayerPoisoned(_target, damage); // Added an event when player receives any poison counter.
_target->getObserver()->receiveEvent(e);
}
}
_target->damageCount += damage;
if(typeOfDamage == 2)
_target->nonCombatDamage += damage;
@@ -225,20 +231,23 @@ int Damage::resolve()
}
if(!_target->inPlay()->hasAbility(Constants::POISONSHROUD))
{
int poison = 0;
if (source->has(Constants::POISONTOXIC))
{
_target->poisonCount += 1;
poison = 1;
}
else if (source->has(Constants::POISONTWOTOXIC))
{
_target->poisonCount += 2;
poison = 2;
}
else
{
_target->poisonCount += 3;
poison = 3;
}
_target->poisonCount += poison;
WEvent * e = NEW WEventplayerPoisoned(_target, damage); // Added an event when player receives any poison counter.
_target->getObserver()->receiveEvent(e);
}
}
else
{

View File

@@ -1188,7 +1188,7 @@ TriggeredAbility * AbilityFactory::parseTrigger(string s, string, int id, Spell
//Card Exerted
if (TargetChooser *tc = parseSimpleTC(s,"exerted", card))
return NEW TrCardExerted(observer, id, card, tc, once);
return NEW TrCardExerted(observer, id, card, tc, once, limitOnceATurn);
//CombatTrigger
//Card card attacked and is blocked
@@ -1228,6 +1228,14 @@ TriggeredAbility * AbilityFactory::parseTrigger(string s, string, int id, Spell
attackingTrigger, attackedAloneTrigger, notBlockedTrigger, attackBlockedTrigger, blockingTrigger);
}
//poisoned player - controller of card
if (TargetChooser * tc = parseSimpleTC(s, "poisonedof", card))
return NEW TrplayerPoisoned(observer, id, card, tc, once, true, false);
//poisoned player - opponent of card controller
if (TargetChooser * tc = parseSimpleTC(s, "poisonedfoeof", card))
return NEW TrplayerPoisoned(observer, id, card, tc, once, false, true);
//energized player - controller of card
if (TargetChooser * tc = parseSimpleTC(s, "energizedof", card))
return NEW TrplayerEnergized(observer, id, card, tc, once, true, false);
@@ -3723,6 +3731,7 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG
bool oneShot = false;
bool forceForever = false;
bool untilYourNextTurn = false;
bool untilYourNextEndTurn = false;
found = s.find("ueot");
if (found != string::npos)
forceUEOT = true;
@@ -3735,6 +3744,9 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG
found = s.find("uynt");
if (found != string::npos)
untilYourNextTurn = true;
found = s.find("uent");
if (found != string::npos)
untilYourNextEndTurn = true;
//Prevent Damage
const string preventDamageKeywords[] = { "preventallcombatdamage", "preventallnoncombatdamage", "preventalldamage", "fog" };
const int preventDamageTypes[] = {0, 2, 1, 0}; //TODO enum ?
@@ -4147,7 +4159,15 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG
if (splitLoseTypes.size())
{
int parentType = MTGAllCards::findType(splitLoseTypes[1]);
return NEW ALoseSubtypes(observer, id, card, target, parentType);
return NEW ALoseSubtypes(observer, id, card, target, parentType, false);
}
//Lose a specific type (e.g. "Conversion").
vector<string> splitLoseSpecType = parseBetween(s, "losesatype(", ")");
if (splitLoseSpecType.size())
{
int typeToLose = MTGAllCards::findType(splitLoseSpecType[1]);
return NEW ALoseSubtypes(observer, id, card, target, typeToLose, true);
}
//Cast/Play Restrictions
@@ -4448,9 +4468,9 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG
}
}
if (oneShot || forceUEOT || forceForever)
return NEW ATransformerInstant(observer, id, card, target, stypes, sabilities,newPower,ptFound,newToughness,ptFound,vector<string>(),false,forceForever,untilYourNextTurn);
return NEW ATransformerInstant(observer, id, card, target, stypes, sabilities,newPower,ptFound,newToughness,ptFound,vector<string>(),false,forceForever,untilYourNextTurn,untilYourNextEndTurn);
return NEW ATransformer(observer, id, card, target, stypes, sabilities,newPower,ptFound,newToughness,ptFound,vector<string>(),false,forceForever,untilYourNextTurn);
return NEW ATransformer(observer, id, card, target, stypes, sabilities,newPower,ptFound,newToughness,ptFound,vector<string>(),false,forceForever,untilYourNextTurn,untilYourNextEndTurn);
}
//Remake... (animate artifact...: Remake(Creature: manacost/manacost) - alternative
@@ -4484,30 +4504,36 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG
}
}
if (oneShot || forceUEOT || forceForever)
return NEW ATransformerInstant(observer, id, card, target, stypes, sabilities,newPower,ptFound,newToughness,ptFound,vector<string>(),false,forceForever,untilYourNextTurn);
return NEW ATransformerInstant(observer, id, card, target, stypes, sabilities,newPower,ptFound,newToughness,ptFound,vector<string>(),false,forceForever,untilYourNextTurn,untilYourNextEndTurn);
return NEW ATransformer(observer, id, card, target, stypes, sabilities,newPower,ptFound,newToughness,ptFound,vector<string>(),false,forceForever,untilYourNextTurn);
return NEW ATransformer(observer, id, card, target, stypes, sabilities,newPower,ptFound,newToughness,ptFound,vector<string>(),false,forceForever,untilYourNextTurn,untilYourNextEndTurn);
}
//bloodthirst
vector<string> splitBloodthirst = parseBetween(s, "bloodthirst:", " ", false);
if (splitBloodthirst.size())
{
return NEW ABloodThirst(observer, id, card, target, atoi(splitBloodthirst[1].c_str()));
WParsedInt* parser = NEW WParsedInt(splitBloodthirst[1], card);
int nb = parser->intValue;
return NEW ABloodThirst(observer, id, card, target, nb);
}
//Vanishing
vector<string> splitVanishing = parseBetween(s, "vanishing:", " ", false);
if (splitVanishing.size())
{
return NEW AVanishing(observer, id, card, NULL, restrictions, atoi(splitVanishing[1].c_str()), "time");
WParsedInt* parser = NEW WParsedInt(splitVanishing[1], card);
int nb = parser->intValue;
return NEW AVanishing(observer, id, card, NULL, restrictions, nb, "time");
}
//Fading
vector<string> splitFading = parseBetween(s, "fading:", " ", false);
if (splitFading.size())
{
return NEW AVanishing(observer, id, card, NULL, restrictions, atoi(splitFading[1].c_str()), "fade");
WParsedInt* parser = NEW WParsedInt(splitFading[1], card);
int nb = parser->intValue;
return NEW AVanishing(observer, id, card, NULL, restrictions, nb, "fade");
}
//Alter cost
@@ -4581,9 +4607,9 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG
sabilities.replace(pos, 14, "transforms((" + storedString + "))");
if (oneShot || forceUEOT || forceForever)
return NEW ATransformerInstant(observer, id, card, target, stypes, sabilities,newpower,newpowerfound,newtoughness,newtoughnessfound,newAbilitiesList,newAbilityFound,forceForever,untilYourNextTurn,newName);
return NEW ATransformerInstant(observer, id, card, target, stypes, sabilities,newpower,newpowerfound,newtoughness,newtoughnessfound,newAbilitiesList,newAbilityFound,forceForever,untilYourNextTurn,untilYourNextEndTurn,newName);
return NEW ATransformer(observer, id, card, target, stypes, sabilities,newpower,newpowerfound,newtoughness,newtoughnessfound,newAbilitiesList,newAbilityFound,forceForever,untilYourNextTurn,newName);
return NEW ATransformer(observer, id, card, target, stypes, sabilities,newpower,newpowerfound,newtoughness,newtoughnessfound,newAbilitiesList,newAbilityFound,forceForever,untilYourNextTurn,untilYourNextEndTurn,newName);
}

View File

@@ -926,6 +926,10 @@ void MTGCardInstance::switchPT(bool apply)
stripPTbonus();
swapP = power;
swapT = toughness;
if(!origpower && !origtoughness){ // Fix when a non-creature card is firstly transformed into a creature (e.g. "Wandering Fumarole").
origpower = power;
origtoughness = toughness;
}
power += origpower;
power -= swapP;
addToToughness(origtoughness);

View File

@@ -239,7 +239,10 @@ const char* Constants::MTGBasicAbilities[] = {
"hasaftermath", //Flashback cost is an aftemath cost (e.g. "Claim // Fame")
"noentertrg", //Creatures entering the battlefield don't cause abilities to trigger (e.g. "Hushbringer").
"nodietrg", //Creatures dying don't cause abilities to trigger (e.g. "Hushbringer").
"training" //Has training ability (e.g. "Gryff Rider")
"training", //Has training ability (e.g. "Gryff Rider")
"energyshroud", //Player can't get energy counters (e.g. "Solemnity").
"expshroud", //Player can't get experience counters (e.g. "Solemnity").
"countershroud" //Card can't get any kind of counter (e.g. "Solemnity").
};
map<string,int> Constants::MTGBasicAbilitiesMap;

View File

@@ -287,6 +287,11 @@ WEventCombatStepChange::WEventCombatStepChange(CombatStep step) :
{
}
WEventplayerPoisoned::WEventplayerPoisoned(Player * player, int nb_count) :
player(player), nb_count(nb_count)
{
}
WEventplayerEnergized::WEventplayerEnergized(Player * player, int nb_count) :
player(player), nb_count(nb_count)
{
@@ -634,6 +639,12 @@ Targetable * WEventTokenCreated::getTarget(int target)
return NULL;
}
Targetable * WEventplayerPoisoned::getTarget(Player * player)
{
if (player) return player;
return NULL;
}
Targetable * WEventplayerEnergized::getTarget(Player * player)
{
if (player) return player;

View File

@@ -965,7 +965,7 @@ void WParsedInt::init(string s, Spell * spell, MTGCardInstance * card)
intValue += card->controller()->game->graveyard->cards[j]->myconvertedcost;
}
}
else if (s == "powertotalinplay")//Count Total Power of Creatures you control... Formidable
else if (s == "powertotalinplay" || s == "pwrtotalinplay")//Count Total Power of Creatures you control... Formidable
{
intValue = 0;
for (int j = card->controller()->game->inPlay->nb_cards - 1; j >= 0; --j)
@@ -974,7 +974,7 @@ void WParsedInt::init(string s, Spell * spell, MTGCardInstance * card)
intValue += card->controller()->game->inPlay->cards[j]->getCurrentPower();
}
}
else if (s == "toughnesstotalinplay")//Count Total toughness of Creatures you control...
else if (s == "toughnesstotalinplay" || s == "thstotalinplay")//Count Total toughness of Creatures you control...
{
intValue = 0;
for (int j = card->controller()->game->inPlay->nb_cards - 1; j >= 0; --j)