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
+7 -1
View File
@@ -2,8 +2,14 @@
## [master] (https://github.com/WagicProject/wagic/tree/master) ## [master] (https://github.com/WagicProject/wagic/tree/master)
### 18/12/21
- *Committed:* 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"). ([Vitty85](https://github.com/Vitty85))
### 09/12/21
- *Committed:* Fixes to primitives. https://github.com/WagicProject/wagic/commit/8551f556364d5eae66fe72fc81753361f28244e7 ([EduardoMunozGomez](https://github.com/EduardoMunozGomez))
### 08/12/21 ### 08/12/21
- *Committed:* Fixed DBL set. ([Vitty85](https://github.com/Vitty85)) - *Committed:* Fixed DBL set. https://github.com/WagicProject/wagic/commit/059107b00741c127e1f60608289b38d82dca8f64 ([Vitty85](https://github.com/Vitty85))
### 07/12/21 ### 07/12/21
- *Committed:* Fixes to primitives. https://github.com/WagicProject/wagic/commit/a4670f0b82ed3fee875712f9b009abd745f393a0 ([EduardoMunozGomez](https://github.com/EduardoMunozGomez)) - *Committed:* Fixes to primitives. https://github.com/WagicProject/wagic/commit/a4670f0b82ed3fee875712f9b009abd745f393a0 ([EduardoMunozGomez](https://github.com/EduardoMunozGomez))
+97
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
@@ -114,7 +114,7 @@ type=Instant
[/card] [/card]
[card] [card]
name=Abu Ja'far 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. text=When Abu Ja'far dies, destroy all creatures blocking or blocked by it. They can't be regenerated.
mana={W} mana={W}
type=Creature type=Creature
@@ -124,7 +124,7 @@ toughness=1
[/card] [/card]
[card] [card]
name=Abu Jafar 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. text=When Abu Ja'far dies, destroy all creatures blocking or blocked by it. They can't be regenerated.
mana={W} mana={W}
type=Creature type=Creature
@@ -2303,7 +2303,7 @@ toughness=10
[/card] [/card]
[card] [card]
name=Apex Devastator 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.) 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} mana={8}{G}{G}
type=Creature type=Creature
@@ -2313,18 +2313,12 @@ toughness=10
[/card] [/card]
[card] [card]
name=Apex of Power 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) 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
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) 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
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) 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
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) 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
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 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=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=all(*[zpos<=7]|mylibrary) moveto(exile) and!( if cantargetcard(*[-land]|*) then transforms((,newability[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 )!
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. 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} mana={7}{R}{R}{R}
type=Sorcery type=Sorcery
@@ -2399,7 +2393,10 @@ toughness=4
[/card] [/card]
[card] [card]
name=Approach of the Second Sun 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. 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} mana={6}{W}
type=Sorcery type=Sorcery
@@ -3046,7 +3043,11 @@ toughness=4
[card] [card]
name=Archon of Valor's Reach name=Archon of Valor's Reach
abilities=flying,vigilance,trample 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. 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} mana={4}{G}{W}
type=Creature type=Creature
@@ -3145,7 +3146,8 @@ toughness=2
[card] [card]
name=Ardenn, Intrepid Archaeologist name=Ardenn, Intrepid Archaeologist
abilities=partner 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.) 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} mana={2}{W}
type=Legendary Creature type=Legendary Creature
@@ -5899,12 +5901,12 @@ toughness=1
[/card] [/card]
[card] [card]
name=Benthic Explorers name=Benthic Explorers
auto=this(variable{olandg}>0) {Q(land[manag]|opponentbattlefield)}{T}:Add{G} 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) {Q(land[manau]|opponentbattlefield)}{T}:Add{U} 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) {Q(land[manar]|opponentbattlefield)}{T}:Add{R} 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) {Q(land[manab]|opponentbattlefield)}{T}:Add{B} 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) {Q(land[manaw]|opponentbattlefield)}{T}:Add{W} 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) {Q(land[cmana]|opponentbattlefield)}{T}:Add{C} 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. 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} mana={3}{U}
type=Creature type=Creature
@@ -6809,11 +6811,13 @@ type=Instant
[/card] [/card]
[card] [card]
name=Blinding Beam name=Blinding Beam
target=player
other={3}{W} name(Entwine) other={3}{W} name(Entwine)
auto=if paid(alternative) then target(<2>creature) tap(noevent) && lord(creature|targetedpersonsbattlefield) frozen 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 transforms((,newability[choice target(<2>creature) tap(noevent)],newability[choice lord(creature|targetedpersonsbattlefield) frozen])) auto=ifnot paid(alternative) then choice name(Opponent creatures don't untap) name(Opponent creatures don't untap) all(creature|opponentbattlefield) 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(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} mana={2}{W}
type=Instant type=Instant
[/card] [/card]
@@ -6924,7 +6928,7 @@ type=Snow Sorcery
[card] [card]
name=Blizzard Strix name=Blizzard Strix
abilities=flash,flying 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. 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} mana={4}{U}
type=Snow Creature type=Snow Creature
@@ -7285,7 +7289,7 @@ toughness=1
[/card] [/card]
[card] [card]
name=Bloodmist Infiltrator 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. text=Whenever Bloodmist Infiltrator attacks, you may sacrifice another creature. If you do, Bloodmist Infiltrator can't be blocked this turn.
mana={2}{B} mana={2}{B}
type=Creature type=Creature
@@ -8755,7 +8759,7 @@ type=Land
[card] [card]
name=Breya's Apprentice name=Breya's Apprentice
auto=token(Thopter,Artifact Creature Thopter,1/1,flying) 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 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. 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} mana={2}{R}
@@ -9432,7 +9436,9 @@ toughness=3
[/card] [/card]
[card] [card]
name=Burning Sun's Avatar 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. 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} mana={3}{R}{R}{R}
type=Creature type=Creature
@@ -13335,8 +13341,7 @@ toughness=3
[/card] [/card]
[card] [card]
name=Combat Celebrant name=Combat Celebrant
auto=@exerted(this) restriction{once}:untap all(other creature|mybattlefield) && nextphasealter(add,combatphases,controller,after<combatends>) oneshot 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
auto=_ATTACKING_may exert
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.) 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} mana={2}{R}
type=Creature type=Creature
@@ -15127,9 +15132,9 @@ toughness=3
[card] [card]
name=Crush Contraband name=Crush Contraband
restriction=type(*[artifact;enchantment]|battlefield)~morethan~0 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(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) 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(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 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. text=Choose one or both -- Exile target artifact. -- Exile target enchantment.
mana={3}{W} mana={3}{W}
type=Instant type=Instant
@@ -18231,8 +18236,11 @@ toughness=1
[/card] [/card]
[card] [card]
name=Diabolic Servitude name=Diabolic Servitude
auto={B}{B}{L:2}{S(swamp|mybattlefield)}:name(Return creature) moveTo(myBattlefield) target(creature|mygraveyard) auto={B}{B}{L:2}{S(swamp|mybattlefield)}:name(Return creature) target(creature|mygraveyard) moveTo(myBattlefield) and!( counter(0/0.1.DiabolicReturned) )!
text={B}{B}, Pay 2 life, Sacrifice a Swamp: Return target creature card from your graveyard to the battlefield. 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} mana={3}{B}
type=Enchantment type=Enchantment
[/card] [/card]
@@ -20121,8 +20129,7 @@ toughness=3
name=Dream Eater name=Dream Eater
abilities=flash,flying 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 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=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
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
text=Flash -- Flying -- When Dream Eater enters the battlefield, surveil 4. When you do, you may return target nonland permanent an opponent controls to its owner's hand. (To surveil 4, look at the top four cards of your library, then put any number of them into your graveyard and the rest on top of your library in any order.) text=Flash -- Flying -- When Dream Eater enters the battlefield, surveil 4. When you do, you may return target nonland permanent an opponent controls to its owner's hand. (To surveil 4, look at the top four cards of your library, then put any number of them into your graveyard and the rest on top of your library in any order.)
mana={4}{U}{U} mana={4}{U}{U}
type=Creature type=Creature
@@ -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}=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) maxPlay(land)+1
auto=this(variable{hascntlevel}=2) {4}{G}:name(Level 3) counter(0/0,1,Level) asSorcery 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. 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} mana={1}{G}
type=Enchantment type=Enchantment
@@ -20956,7 +20963,7 @@ toughness=1
name=Dwindle name=Dwindle
target=creature target=creature
auto=teach(creature) -6/-0 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.) text=Enchant creature -- Enchanted creature gets -6/-0. -- When enchanted creature blocks, destroy it. (The attacking creature remains blocked.)
mana={2}{U} mana={2}{U}
type=Enchantment type=Enchantment
@@ -21831,8 +21838,8 @@ toughness=2
[/card] [/card]
[card] [card]
name=Elvish Rejuvenator name=Elvish Rejuvenator
aicode=activate moveTo(myBattlefield) tap(noevent) target(land|myLibrary) 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 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 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. 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} mana={2}{G}
type=Creature type=Creature
@@ -22732,7 +22739,8 @@ subtype=Aura
[/card] [/card]
[card] [card]
name=Escape to the Wilds 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 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. 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} mana={3}{R}{G}
@@ -25005,8 +25013,7 @@ type=Land
[card] [card]
name=Fiend Artisan name=Fiend Artisan
auto=foreach(creature|myGraveyard) 1/1 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) transforms((,newability[name(Search creature) target(creature[manacost<=X]|mylibrary) moveto(myBattlefield) and!( shuffle )!])) oneshot assorcery
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
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. 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} mana={BG}{BG}
type=Creature type=Creature
@@ -27808,6 +27815,7 @@ toughness=3
[card] [card]
name=Garruk's Harbinger name=Garruk's Harbinger
auto=cantbetargetof(*[black]) 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(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 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. 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]
[card] [card]
name=Ghalta, Primal Hunger name=Ghalta, Primal Hunger
anyzone=changecost(colorless:-powertotalinplay) forcedalive
abilities=trample 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 text=This spell costs {X} less to cast, where X is the total power of creatures you control. -- Trample
mana={10}{G}{G} mana={10}{G}{G}
type=Legendary Creature type=Legendary Creature
@@ -29669,10 +29677,11 @@ toughness=1
[/card] [/card]
[card] [card]
name=Goblin Barrage name=Goblin Barrage
kicker={S(*[artifact;goblin]|mybattlefield)}
target=creature target=creature
abilities=hasotherkicker
other={3}{R}{S(*[artifact;goblin]|mybattlefield)} name(Pay kicker)
auto=damage:4 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. 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} mana={3}{R}
type=Sorcery type=Sorcery
@@ -31904,7 +31913,8 @@ toughness=1
[/card] [/card]
[card] [card]
name=Gyrus, Waker of Corpses 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~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~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) 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~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~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~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~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~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~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~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) 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] [card]
name=Hammer of Nazahn name=Hammer of Nazahn
auto={4}:equip auto={4}:equip
auto=teach(creature) indestructible && 2/0 auto=teach(creature) indestructible
auto=@may rehook auto=teach(creature) 2/0
auto=@movedto(artifact[Equipment]|mybattlefield):may all(trigger[to]) rehook 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} 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} mana={4}
type=Legendary Artifact type=Legendary Artifact
@@ -34464,7 +34475,12 @@ toughness=4
[/card] [/card]
[card] [card]
name=Hostage Taker 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. 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} mana={2}{U}{B}
type=Creature type=Creature
@@ -34572,9 +34588,9 @@ type=Instant
[/card] [/card]
[card] [card]
name=Hour of Promise name=Hour of Promise
auto=aslongas(Desert|mybattlefield) token(Zombie,creature Zombie,2/2,black)*2 >2 auto=choice name(Don't search any land) if type(desert|mybattlefield)~morethan~2 then token(Zombie^Creature Zombie^2/2^black)
auto=moveto(mybattlefield) target(<upto:2>land|mylibrary) and!(tap(noevent))! 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=transforms((,newability[if type(desert|mybattlefield)~morethan~2 then token(Zombie,creature Zombie,2/2,black)])) ueot 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. 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} mana={4}{G}
type=Sorcery type=Sorcery
@@ -35031,8 +35047,9 @@ toughness=4
[/card] [/card]
[card] [card]
name=Hurl Through Hell name=Hurl Through Hell
target=creature restriction=type(creature|battlefield)~morethan~0
auto=moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[anytypeofmana],newability[phaseaction[my endofturn next once checkex] moveTo(ownerexile)])) forever )! 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. 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} mana={2}{B}{R}
type=Instant type=Instant
@@ -35403,8 +35420,9 @@ type=Instant
[card] [card]
name=Ignite the Future name=Ignite the Future
flashback={7}{R} flashback={7}{R}
auto=moveto(exile) and!( transforms((,canplayfromexile)) ueot )! all(*[zpos<=3]|mylibrary) 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=if gravecast then changecost(colorless:-3) && changecost(R:-1) 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.) 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} mana={3}{R}
type=Sorcery type=Sorcery
@@ -35591,16 +35609,11 @@ toughness=1
[/card] [/card]
[card] [card]
name=Ilysian Caryatid name=Ilysian Caryatid
auto={T} restriction{type(creature[power>=4]|myhand)~morethan~0}:add{G}{G} 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} restriction{type(creature[power>=4]|myhand)~morethan~0}:add{W}{W} 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} restriction{type(creature[power>=4]|myhand)~morethan~0}:add{U}{U} 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} restriction{type(creature[power>=4]|myhand)~morethan~0}:add{B}{B} 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} restriction{type(creature[power>=4]|myhand)~morethan~0}:add{R}{R} 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}
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}
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. 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} mana={1}{G}
type=Creature type=Creature
@@ -38573,9 +38586,49 @@ toughness=4
[/card] [/card]
[card] [card]
name=Kamahl's Druidic Vow 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 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} mana={X}{G}{G}
type=Legendary Sorcery type=Legendary Sorcery
[/card] [/card]
@@ -38640,8 +38693,8 @@ toughness=3
[/card] [/card]
[card] [card]
name=Karador, Ghost Chieftain name=Karador, Ghost Chieftain
anyzone=foreach(creature|mygraveyard) changecost(colorless:-1) forcedalive anyzone=thisforeach(variable{type:creature:mygraveyard}>0) changecost(colorless:-1) forcedalive
auto=lord(creature[maxCast(creature)1]|mygraveyard) canPlayFromGraveyard 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. 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} mana={5}{B}{G}{W}
type=Legendary Creature type=Legendary Creature
@@ -38900,7 +38953,7 @@ type=Sorcery
[card] [card]
name=Kaza, Roil Chaser name=Kaza, Roil Chaser
abilities=flying,haste 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. 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} mana={U}{R}
type=Legendary Creature type=Legendary Creature
@@ -40641,9 +40694,10 @@ toughness=4
[card] [card]
name=Kunoros, Hound of Athreos name=Kunoros, Hound of Athreos
abilities=vigilance,menace,lifelink abilities=vigilance,menace,lifelink
auto=@movedto(creature|battlefield) from(graveyard):all(trigger[to]) moveto(ownergraveyard) 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=maxCast(*|graveyard)0 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=maxCast(*|graveyard)0 opponent 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. text=Vigilance, menace, lifelink -- Creature cards in graveyards can't enter the battlefield. -- Players can't cast spells from graveyards.
mana={1}{W}{B} mana={1}{W}{B}
type=Legendary Creature type=Legendary Creature
@@ -41186,7 +41240,7 @@ toughness=4
[/card] [/card]
[card] [card]
name=Lavabelly Sliver 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." 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} mana={1}{R}{W}
type=Creature type=Creature
@@ -41912,10 +41966,12 @@ toughness=5
[/card] [/card]
[card] [card]
name=Life // Death name=Life // Death
auto=choice {G}:lord(land|myBattlefield) becomes(Creature,1/1) ueot other={1}{B} name(Death)
auto=choice {1}{B}:target(creature|myGraveyard) moveTo(myBattlefield) then life:-manacost controller otherrestriction=type(creature|myGraveyard)~morethan~0
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. auto=ifnot paid(alternative) then name(Lands become creatures) name(Lands become creatures) all(land|myBattlefield) becomes(Creature,1/1) ueot
mana={0} 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 type=Sorcery
[/card] [/card]
[card] [card]
@@ -41958,7 +42014,8 @@ type=Sorcery
[/card] [/card]
[card] [card]
name=Light Up the Stage 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. 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) other={R} name(Spectacle)
otherrestriction=compare(oplifelost)~morethan~0 otherrestriction=compare(oplifelost)~morethan~0
@@ -43460,7 +43517,8 @@ toughness=5
[/card] [/card]
[card] [card]
name=Lurrus of the Dream-Den 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. 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} mana={1}{WB}{WB}
type=Legendary Creature type=Legendary Creature
@@ -43554,8 +43612,7 @@ subtype=Equipment
[/card] [/card]
[card] [card]
name=Mad Dog name=Mad Dog
auto=@each my endofturn restriction{didntattack}:sacrifice auto=@each my endofturn restriction{didntattack}:if cantargetcard(*[-fresh]|*) then name(Sacrifice) name(Sacrifice) sacrifice
auto=@each my endofturn restriction{type(Mad Dog[fresh]|mybattlefield)~morethan~0}:sacrifice
text=At the beginning of your end step, if Mad Dog didn't attack or come under your control this turn, sacrifice it. 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} mana={1}{R}
type=Creature type=Creature
@@ -44350,7 +44407,8 @@ toughness=3
[card] [card]
name=Marauding Raptor name=Marauding Raptor
auto=lord(creature|mycastingzone) altercost(colorless, -1) 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. 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} mana={1}{R}
type=Creature 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=this(variable{hascntmonkeffect}=1) lord(*|mycastingzone) altercost(colorless, -1)
auto=@each endofturn restriction{compare(hascntmonkeffect)~morethan~0}:removeallcounters(0/0,1,MonkEffect) 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=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=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 )! 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." 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]
[card] [card]
name=Muldrotha, the Gravetide 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=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=@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=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=@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=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=@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=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=@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 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.) 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} mana={3}{B}{G}{U}
type=Legendary Creature type=Legendary Creature
@@ -47544,7 +47602,8 @@ toughness=2
[/card] [/card]
[card] [card]
name=Naga Oracle 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. 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} mana={3}{U}
type=Creature type=Creature
@@ -47581,10 +47640,10 @@ subtype=Aura
[/card] [/card]
[card] [card]
name=Nahiri's Lithoforming name=Nahiri's Lithoforming
target=<x>land|myBattlefield target=<prex>land|myBattlefield
auto=transforms((,newability[sacrifice],newability[draw:1])) ueot
auto=maxPlay(land)+1 ueot
auto=emblem transforms((,newability[_LANDFALL_all(trigger[to]) tap(noevent)])) ueot 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. 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} mana={X}{R}{R}
type=Sorcery type=Sorcery
@@ -48483,7 +48542,7 @@ backside=Nicol Bolas, the Arisen
restriction=compare(isflipped)~equalto~0 restriction=compare(isflipped)~equalto~0
anyzone={0}:doubleside(backside) anyzone={0}:doubleside(backside)
auto=ability$!name(Discard a card) name(Discard a card) reject notatarget(*|myhand)!$ opponent 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 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} mana={1}{U}{B}{R}
type=Legendary Creature type=Legendary Creature
@@ -48581,9 +48640,8 @@ type=Sorcery
[/card] [/card]
[card] [card]
name=Nightmare's Thirst name=Nightmare's Thirst
target=creature auto=target(creature|battlefield) -lifegain/-lifegain ueot
auto=foreach(lifegain) -X/-X auto=life:1 controller
auto=life:1
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. 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} mana={B}
type=Instant type=Instant
@@ -48855,10 +48913,12 @@ toughness=4
[card] [card]
name=Nine Lives name=Nine Lives
abilities=opponentshroud abilities=opponentshroud
auto=preventalldamage to(controller) auto=@damaged(controller):name(Put incarnation counter) counter(0/0,1,Incarnation)
auto=@damaged(controller):counter(0/0,1,Incarnation) all(this) auto=counter(0/0.1.NineEffect) notrg
auto=this(counter{0/0.9.Incarnation}) moveTo(Exile) auto=all(other *[Nine Lives]|myBattlefield) removeallcounters(0/0.1.NineEffect)
auto=@movedTo(this|nonbattlezone) from(battlefield):wingame opponent 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. 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} mana={1}{W}{W}
type=Enchantment type=Enchantment
@@ -51050,9 +51110,8 @@ type=Instant
[/card] [/card]
[card] [card]
name=Out of Time name=Out of Time
auto=counter(0/0,type:creature:battlefield,Time) auto=vanishing:type:creature:battlefield
auto=vanishing:0 auto=all(creature|battlefield) transforms((,newability[untap],newability[phaseout])) ueot
auto=all(creature|battlefield) transforms((,newability[untap],newability[phaseout])) forever
auto=@each upkeep restriction{compare(hascnttime)~morethan~0}:phaseout all(creature|battlefield) auto=@each upkeep restriction{compare(hascnttime)~morethan~0}:phaseout all(creature|battlefield)
auto=@each my upkeep restriction{compare(hascnttime)~equalto~0}:sacrifice 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.) 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]
[card] [card]
name=Pale Moon name=Pale Moon
auto=lord(land|mybattlefield) 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
auto=lord(land|opponentbattlefield) loseabilities && transforms((,newability[producecolor:land])) ueot
text=Until end of turn, if a player taps a nonbasic land for mana, it produces colorless mana instead of any other type. 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} mana={1}{U}
type=Instant type=Instant
@@ -54420,7 +54478,8 @@ toughness=4
[card] [card]
name=Prosper, Tome-Bound name=Prosper, Tome-Bound
abilities=deathtouch 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) 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. 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} mana={2}{B}{R}
@@ -54644,8 +54703,8 @@ type=Enchantment
name=Psychic Impetus name=Psychic Impetus
target=creature 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 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=teach(creature) transforms((,newability[2/2],newability[counter(0/0.1.Goaded)],newability[this(counter{0/0.1.Goaded}>0) mustattack]))
auto=2/2 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. 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} mana={2}{U}
type=Enchantment type=Enchantment
@@ -55699,9 +55758,10 @@ type=Instant
[/card] [/card]
[card] [card]
name=Rain of Thorns name=Rain of Thorns
auto=choice name(Destroy target artifact) destroy target(artifact) restriction=type(*[artifact;land]|battlefield)~morethan~0
auto=choice name(Destroy target land) destroy target(land) auto=if type(artifact|battlefield)~morethan~0 then choice name(Destroy artifact) name(Destroy artifact) destroy target(artifact|battlefield)
auto=name(More...) emblem transforms((,newability[({0}:name(Destroy target artifact) destroy target(artifact)],newability[{0}:name(Destroy target land) destroy target(land)])) ueot 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. text=Choose one or both -- Destroy target artifact. -- Destroy target land.
mana={4}{G}{G} mana={4}{G}{G}
type=Sorcery 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=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=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=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.) 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} mana={3}{W}
type=Legendary Creature type=Legendary Creature
@@ -56800,7 +56859,8 @@ type=Sorcery
[/card] [/card]
[card] [card]
name=Reckless Impulse 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. text=Exile the top two cards of your library. Until the end of your next turn, you may play those cards.
mana={1}{R} mana={1}{R}
type=Sorcery type=Sorcery
@@ -58608,9 +58668,10 @@ type=Instant
[/card] [/card]
[card] [card]
name=Rise to Glory name=Rise to Glory
auto=choice name(Return target creature...) moveTo(myBattlefield) target(creature|myGraveyard) restriction=type(*[creature;aura]|mygraveyard)~morethan~0
auto=choice name(Return target aura...) moveTo(myBattlefield) target(enchantment[aura]|myGraveyard) auto=if type(creature|mygraveyard)~morethan~0 then choice name(Return creature) name(Return creature) moveTo(myBattlefield) target(creature|myGraveyard)
auto=choice name(Return target creature and aura...) moveTo(myBattlefield) target(creature|myGraveyard) && moveTo(myBattlefield) target(enchantment[aura]|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. 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} mana={3}{W}{B}
type=Sorcery type=Sorcery
@@ -59323,7 +59384,8 @@ toughness=4
[card] [card]
name=Rooting Moloch name=Rooting Moloch
abilities=cycling 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}) 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.) 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} mana={4}{R}
@@ -59534,8 +59596,7 @@ type=Sorcery
[/card] [/card]
[card] [card]
name=Rousing of Souls 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=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 )!
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
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. 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} mana={2}{W}
type=Sorcery type=Sorcery
@@ -60333,8 +60394,8 @@ toughness=1
[card] [card]
name=Sage-Eye Avengers name=Sage-Eye Avengers
abilities=prowess abilities=prowess
auto=@movedTo(*[-creature]|mystack):1/1 ueot auto=@movedTo(*[-creature]|mystack):name(Gets 1/1) 1/1 ueot
auto=_ATTACKING_may moveTo(ownerhand) target(creature[power<=pminus1minusend]) 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. 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} mana={4}{U}{U}
type=Creature type=Creature
@@ -60778,7 +60839,7 @@ type=Artifact
[card] [card]
name=Sandstone Oracle name=Sandstone Oracle
abilities=flying 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. 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} mana={7}
type=Artifact Creature type=Artifact Creature
@@ -64043,7 +64104,8 @@ type=Instant
name=Showdown of the Skalds name=Showdown of the Skalds
auto=counter(0/0,1,Lore) auto=counter(0/0,1,Lore)
auto=@each my firstmain:counter(0/0,1,Lore) auto=@each my firstmain:counter(0/0,1,Lore)
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.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}) 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) auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.3.Lore}) sacrifice(this)
@@ -64900,12 +64962,9 @@ toughness=1
[/card] [/card]
[card] [card]
name=Single Combat name=Single Combat
auto=maxCast(creature)0 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=maxCast(planeswalker)0 opponent auto=ability$!name(Sacrifice creatures) name(Sacrifice creatures) notatarget(<type:*[creature;planeswalker]:mybattlefieldminus1minusend>*[creature;planeswalker]|mybattlefield) sacrifice !$ controller
auto=maxCast(creature)0 controller auto=ability$!name(Sacrifice creatures) name(Sacrifice creatures) notatarget(<type:*[creature;planeswalker]:mybattlefieldminus1minusend>*[creature;planeswalker]|mybattlefield) sacrifice !$ opponent
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
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. 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} mana={3}{W}{W}
type=Sorcery type=Sorcery
@@ -64991,9 +65050,9 @@ toughness=2
[card] [card]
name=Siona, Captain of the Pyleas name=Siona, Captain of the Pyleas
abilities=hiddenface abilities=hiddenface
aicode=activate target(aura[zpos<=7]|mylibrary) moveto(ownerhand) 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=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=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):token(Soldier,Creature Human Soldier,1/1,white) 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. 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} mana={1}{G}{W}
type=Legendary Creature type=Legendary Creature
@@ -65091,9 +65150,9 @@ toughness=2
[/card] [/card]
[card] [card]
name=Sisters of Stone Death name=Sisters of Stone Death
auto={G}:target(creature|opponentBattlefield) mustblock ueot auto={G}:name(Opponent creature must block) target(creature|opponentBattlefield) transforms((,newability[mustblock])) ueot
auto={B}{G}:@combat(blocking,blocked) source(this):moveTo(exile) target(creature[blocking,blocked]) oneshot 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}:moveTo(mybattlefield) target(creature|opponentexile) 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. 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} mana={4}{B}{B}{G}{G}
type=Legendary Creature type=Legendary Creature
@@ -65302,7 +65361,7 @@ toughness=3
[/card] [/card]
[card] [card]
name=Skinshifter 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. 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} mana={1}{G}
type=Creature type=Creature
@@ -65509,7 +65568,7 @@ type=Sorcery
[card] [card]
name=Skullwinder name=Skullwinder
abilities=deathtouch 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. 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} mana={2}{G}
type=Creature type=Creature
@@ -66563,9 +66622,11 @@ color=white
[/card] [/card]
[card] [card]
name=Solemnity name=Solemnity
abilities=poisonshroud abilities=poisonshroud,energyshroud,expshroud
auto=countershroud(any) *[-planeswalker]|battlefield auto=lord(*|opponentBattlefield) poisonshroud
auto=countershroud(any) player 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. text=Players can't get counters. -- Counters can't be put on artifacts, creatures, enchantments, or lands.
mana={2}{W} mana={2}{W}
type=Enchantment type=Enchantment
@@ -68840,7 +68901,7 @@ type=Sorcery
[/card] [/card]
[card] [card]
name=Stalking Leonin 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. 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} mana={2}{W}
type=Creature type=Creature
@@ -69430,8 +69491,7 @@ type=Instant
name=Stir the Sands name=Stir the Sands
abilities=cycling abilities=cycling
auto=token(Zombie,creature Zombie,2/2,black)*3 auto=token(Zombie,creature Zombie,2/2,black)*3
autohand=@cycled(this|hand):token(Zombie,creature Zombie,2/2,black) autohand=__CYCLING__({3}{B}) && token(Zombie,creature Zombie,2/2,black)
autohand=__CYCLING__({3}{B})
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. 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} mana={4}{B}{B}
type=Sorcery type=Sorcery
@@ -70540,8 +70600,16 @@ type=Sorcery
[/card] [/card]
[card] [card]
name=Sundering Titan name=Sundering Titan
auto=destroy all(land[plains,island,swamp,mountain,forest]) auto=ability$!name(Destroy a plains) name(Destroy a plains) target(plains|battlefield) destroy!$ controller
auto=_DIES_destroy all(land[plains,island,swamp,mountain,forest]) 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. 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} mana={8}
type=Artifact Creature type=Artifact Creature
@@ -71181,7 +71249,8 @@ auto={2}:equip
auto=teach(creature) protection from(cleric) auto=teach(creature) protection from(cleric)
auto=teach(creature) protection from(rogue) auto=teach(creature) protection from(rogue)
auto=teach(creature) 2/2 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} 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} mana={3}
type=Artifact type=Artifact
@@ -72275,7 +72344,12 @@ type=Instant
[/card] [/card]
[card] [card]
name=Tectonic Giant 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. 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} mana={2}{R}{R}
type=Creature type=Creature
@@ -72664,8 +72738,8 @@ otherrestriction=can play artifact,compare(isflipped)~equalto~1
restriction=compare(isflipped)~equalto~0 restriction=compare(isflipped)~equalto~0
anyzone={0}:doubleside(Tergrid's Lantern) anyzone={0}:doubleside(Tergrid's Lantern)
autostack=if paid(alternative) then flip(Tergrid's Lantern) forcetype(Legendary Artifact) 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=@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(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(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 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} mana={3}{B}{B}
type=Legendary Creature type=Legendary Creature
@@ -72793,8 +72867,7 @@ toughness=2
[card] [card]
name=Test of Faith name=Test of Faith
target=creature target=creature
auto=prevent:3 ueot 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
auto=counter(1/1,3)
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. 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} mana={1}{W}
type=Instant type=Instant
@@ -73530,11 +73603,12 @@ subtype=Saga
[card] [card]
name=The Triumph of Anax name=The Triumph of Anax
auto=counter(0/0,1,Lore) auto=counter(0/0,1,Lore)
auto=foreach(counter{0/0,1,Lore}) 1/0 && trample target(creature) auto=@each my firstmain:name(Add lore counter) counter(0/0,1,Lore)
auto=@each my firstmain: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):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) 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):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) 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):this(counter{0/0.4.Lore}) target(creature|mybattlefield) transforms((,newability[target(creature|opponentBattlefield) dynamicability<!powerstrike eachother!>])) && sacrifice(this) 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.) 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} mana={2}{R}
type=Enchantment type=Enchantment
@@ -74882,8 +74956,10 @@ type=Sorcery
[card] [card]
name=Toils of Night and Day name=Toils of Night and Day
target=*|battlefield target=*|battlefield
auto=ability$!name(Tap or untap) choice name(Tap permanent) tap(noevent) _ choice name(Untap permanent) untap!$ controller auto=choice name(Don't tap or untap anything) donothing
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(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. text=You may tap or untap target permanent, then you may tap or untap another target permanent.
mana={2}{U} mana={2}{U}
type=Instant type=Instant
@@ -75609,7 +75685,7 @@ toughness=3
[/card] [/card]
[card] [card]
name=Trapjaw Tyrant 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. text=Enrage - Whenever Trapjaw Tyrant is dealt damage, exile target creature an opponent controls until Trapjaw Tyrant leaves the battlefield.
mana={3}{W}{W} mana={3}{W}{W}
type=Creature type=Creature
@@ -75733,7 +75809,8 @@ type=Artifact
[/card] [/card]
[card] [card]
name=Treasure Nabber 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. text=Whenever an opponent taps an artifact for mana, gain control of that artifact until the end of your next turn.
mana={2}{R} mana={2}{R}
type=Creature type=Creature
@@ -78157,8 +78234,8 @@ toughness=3
[card] [card]
name=Varragoth, Bloodsky Sire name=Varragoth, Bloodsky Sire
abilities=boast,deathtouch 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={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) 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) )! !$ 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.) 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} mana={2}{B}
type=Legendary Creature 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 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=@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=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=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 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.) 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]
[card] [card]
name=Winds of Abandon name=Winds of Abandon
target=creature|opponentbattlefield restriction=type(creature|oppponentbattlefield)~morethan~0
abilities=overload
other={4}{W}{W} name(Overload) other={4}{W}{W} name(Overload)
auto=overload moveto(exile) all(creature|opponentbattlefield) 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=paidmana moveto(exile) 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 )!
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
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.") 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} mana={1}{W}
type=Sorcery type=Sorcery
@@ -82754,8 +82828,9 @@ toughness=4
[card] [card]
name=Yasharn, Implacable Earth name=Yasharn, Implacable Earth
#Forbid the life and sacrifice payments is not supported ATM... #Forbid the life and sacrifice payments is not supported ATM...
aicode=activate target(<upto:2>land[basic;forest;plains]|myLibrary) moveTo(myHand) 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=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)~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. 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} mana={2}{G}{W}
type=Legendary Creature type=Legendary Creature
@@ -82886,9 +82961,10 @@ type=Instant
[/card] [/card]
[card] [card]
name=You Find Some Prisoners 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 )! 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=choice name(Destroy artifact) target(artifact) destroy 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[canplayfromexile],newability[anytypeofmana],newability[my endofturn next once checkex] moveto(ownerexile)])) forever )! optiononeend optiontwo name(Exile cards) all(*|reveal) moveto(ownerexile) optiontwoend revealend 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. 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} mana={1}{R}
type=Instant type=Instant
+65 -56
View File
@@ -13718,7 +13718,8 @@ type=Instant
[/card] [/card]
[card] [card]
name=Boompile 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. text={T}: Flip a coin. If you win the flip, destroy all nonland permanents.
mana={4} mana={4}
type=Artifact type=Artifact
@@ -16577,7 +16578,8 @@ toughness=2
[/card] [/card]
[card] [card]
name=Caller of the Hunt 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. 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} mana={2}{G}
type=Creature type=Creature
@@ -17421,14 +17423,14 @@ toughness=2
[card] [card]
name=Cataclysmic Gearhulk name=Cataclysmic Gearhulk
abilities=vigilance 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(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(artifact[-land]|opponentbattlefield)~morethan~1 then ability$! sacrifice notatarget(<type:artifact[-land]:mybattlefieldminus1minusend>artifact[-land]|mybattlefield) !$ opponent 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(creature[-land]|mybattlefield)~morethan~1 then ability$! sacrifice notatarget(<type:creature[-land]:mybattlefieldminus1minusend>creature[-land]|mybattlefield) !$ controller 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(creature[-land]|opponentbattlefield)~morethan~1 then ability$! sacrifice notatarget(<type:creature[-land]:mybattlefieldminus1minusend>creature[-land]|mybattlefield) !$ opponent 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$! sacrifice notatarget(<type:enchantment[-land]:mybattlefieldminus1minusend>enchantment[-land]|mybattlefield) !$ controller 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$! sacrifice notatarget(<type:enchantment[-land]:mybattlefieldminus1minusend>enchantment[-land]|mybattlefield) !$ opponent 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$! sacrifice notatarget(<type:planeswalker[-land]:mybattlefieldminus1minusend>planeswalker[-land]|mybattlefield) !$ controller 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$! sacrifice notatarget(<type:planeswalker[-land]:mybattlefieldminus1minusend>planeswalker[-land]|mybattlefield) !$ opponent 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. 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} mana={3}{W}{W}
type=Artifact Creature type=Artifact Creature
@@ -21581,7 +21583,8 @@ type=Instant
[/card] [/card]
[card] [card]
name=Commune with Lava 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. 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} mana={X}{R}{R}
type=Instant type=Instant
@@ -22357,8 +22360,7 @@ type=Artifact
[card] [card]
name=Conversion name=Conversion
auto=upcost[{W}{W}] sacrifice auto=upcost[{W}{W}] sacrifice
auto=lord(mountain) losesubtypesof(land) auto=lord(mountain) transforms((Plains,newability[losesatype(mountain)]))
auto=lord(mountain) transforms((plains))
text=At the beginning of your upkeep, sacrifice Conversion unless you pay {W}{W}. -- All Mountains are Plains. text=At the beginning of your upkeep, sacrifice Conversion unless you pay {W}{W}. -- All Mountains are Plains.
mana={2}{W}{W} mana={2}{W}{W}
type=Enchantment type=Enchantment
@@ -30502,8 +30504,11 @@ toughness=4
[card] [card]
name=Docent of Perfection name=Docent of Perfection
abilities=flying abilities=flying
auto=@movedto(instant,sorcery|mystack):token(Wizard,Creature Human Wizard,1/1,blue) backside=Final Iteration
auto=aslongas(wizard|myBattlefield) flip(Final Iteration) while >2 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. 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} mana={3}{U}{U}
type=Creature type=Creature
@@ -30745,9 +30750,8 @@ toughness=5
[/card] [/card]
[card] [card]
name=Dormant Sliver name=Dormant Sliver
auto=lord(sliver) defender auto=lord(sliver|battlefield) defender
auto=@movedTo(sliver|myBattlefield):draw:1 controller auto=@movedTo(sliver|battlefield):name(Draw a card) all(trigger[to]) name(Draw a card) transforms((,newability[draw:1 controller])) oneshot
auto=@movedTo(sliver|opponentBattlefield):draw:1 opponent
text=All Sliver creatures have defender. -- All Slivers have "When this permanent enters the battlefield, draw a card." text=All Sliver creatures have defender. -- All Slivers have "When this permanent enters the battlefield, draw a card."
mana={2}{G}{U} mana={2}{G}{U}
type=Creature type=Creature
@@ -36367,8 +36371,8 @@ type=Instant
[/card] [/card]
[card] [card]
name=Ensnaring Bridge name=Ensnaring Bridge
auto=lord(creature|mybattlefield) transforms((,newability[while(restriction{powermorethancontrollerhand}) cantattack],newability[while(restriction{powermorethancontrollerhand}) 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=lord(creature|opponentbattlefield) transforms((,newability[while(restriction{powermorethanopponenthand}) cantattack],newability[while(restriction{powermorethanopponenthand}) cantpwattack])) 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. text=Creatures with power greater than the number of cards in your hand can't attack.
mana={3} mana={3}
type=Artifact type=Artifact
@@ -36880,14 +36884,14 @@ toughness=2
[/card] [/card]
[card] [card]
name=Escaped Shapeshifter name=Escaped Shapeshifter
auto=aslongas(creature[flying;-escaped shapeshifter]|opponentinplay) flying auto=aslongas(creature[flying;-escaped shapeshifter]|opponentBattlefield) flying
auto=aslongas(creature[first strike;-escaped shapeshifter]|opponentinplay) first strike auto=aslongas(creature[first strike;-escaped shapeshifter]|opponentBattlefield) first strike
auto=aslongas(creature[trample;-escaped shapeshifter]|opponentinplay) trample auto=aslongas(creature[trample;-escaped shapeshifter]|opponentBattlefield) trample
auto=aslongas(creature[protection from black;-escaped shapeshifter]|opponentinplay) protection from black auto=aslongas(creature[protection from black;-escaped shapeshifter]|opponentBattlefield) protection from black
auto=aslongas(creature[protection from blue;-escaped shapeshifter]|opponentinplay) protection from blue auto=aslongas(creature[protection from blue;-escaped shapeshifter]|opponentBattlefield) protection from blue
auto=aslongas(creature[protection from red;-escaped shapeshifter]|opponentinplay) protection from red auto=aslongas(creature[protection from red;-escaped shapeshifter]|opponentBattlefield) protection from red
auto=aslongas(creature[protection from white;-escaped shapeshifter]|opponentinplay) protection from white auto=aslongas(creature[protection from white;-escaped shapeshifter]|opponentBattlefield) protection from white
auto=aslongas(creature[protection from green;-escaped shapeshifter]|opponentinplay) protection from green 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. 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} mana={3}{U}{U}
type=Creature type=Creature
@@ -37224,10 +37228,9 @@ subtype=Aura
[/card] [/card]
[card] [card]
name=Eternity Vessel 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=counter(0/0,lifetotal,Charge)
auto=_LANDFALL_may lifeset:counter{0%0.1.Charge} controller auto=_LANDFALL_may name(Set life to charge) transforms((,newability[lifeset:hascntcharge controller])) oneshot
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. 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} mana={6}
type=Artifact type=Artifact
[/card] [/card]
@@ -40507,7 +40510,8 @@ type=Instant
[card] [card]
name=Final Iteration name=Final Iteration
abilities=flying 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) 2/1
auto=lord(wizard|mybattlefield) flying 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. 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]
[card] [card]
name=Gaea's Blessing name=Gaea's Blessing
target=player auto=choice name(Target yourself) target(<upto:3>other *|mygraveyard) moveto(mylibrary) and!( shuffle )!
auto=ability$!moveto(mylibrary) and!(shuffle)! target(<upto:3>*|mygraveyard)!$ targetedplayer 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 auto=draw:1 controller
autograveyard=@movedTo(this|mygraveyard) from(mylibrary):moveto(mylibrary) and!(shuffle)! all(*|mygraveyard) 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. 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] [card]
name=Gatecreeper Vine name=Gatecreeper Vine
abilities=defender abilities=defender
aicode=activate target(land[basic;gate]|mylibrary) moveto(myhand) auto=choice name(Don't search anything) donothing
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=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. 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} mana={1}{G}
type=Creature type=Creature
@@ -52566,10 +52571,10 @@ type=Sorcery
[/card] [/card]
[card] [card]
name=Harsh Scrutiny 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 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=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=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. text=Target opponent reveals his or her hand. You choose a creature card from it. That player discards that card. Scry 1.
mana={B} mana={B}
type=Sorcery type=Sorcery
@@ -73705,7 +73710,7 @@ type=Sorcery
[/card] [/card]
[card] [card]
name=Mijae Djinn 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. 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} mana={R}{R}{R}
type=Creature type=Creature
@@ -82138,8 +82143,8 @@ toughness=2
[/card] [/card]
[card] [card]
name=Omen 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 aicode=activate transforms((,newability[foreach(*[zpos<=3]|mylibrary) moverandom(*[zpos<=3]) 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 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. 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} mana={1}{U}
type=Sorcery type=Sorcery
@@ -89868,8 +89873,9 @@ toughness=2
[/card] [/card]
[card] [card]
name=Puresteel Paladin name=Puresteel Paladin
auto=@movedTo(equipment|mybattlefield):may draw:1 controller auto=@movedTo(equipment|mybattlefield):may name(Draw a card) 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=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}. 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} mana={W}{W}
type=Creature type=Creature
@@ -92449,7 +92455,7 @@ toughness=3
[card] [card]
name=Ray of Command name=Ray of Command
target=creature|opponentBattlefield 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. 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} mana={3}{U}
type=Instant 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) cantattack
auto=aslongas(creature[attacking]|battlefield) lord(creature[-attacking]|battlefield) cantpwattack auto=aslongas(creature[attacking]|battlefield) lord(creature[-attacking]|battlefield) cantpwattack
auto=aslongas(creature[blocking]|battlefield) lord(creature[-blocking]|battlefield) cantblock 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. text=No more than one creature can attack each combat. -- No more than one creature can block each combat.
mana={4} mana={4}
type=Artifact Creature type=Artifact Creature
@@ -117115,8 +117125,8 @@ type=Sorcery
[/card] [/card]
[card] [card]
name=Synapse Sliver name=Synapse Sliver
auto=@combatdamagefoeof(player) from(sliver):ability$!name(Draw) may draw:1!$ opponent auto=@combatdamaged(player) from(sliver|opponentbattlefield):ability$!may name(Draw a card) may draw:1 controller!$ opponent
auto=@combatdamageof(player) from(sliver):ability$!name(Draw) may draw:1!$ controller 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. text=Whenever a Sliver deals combat damage to a player, its controller may draw a card.
mana={4}{U} mana={4}{U}
type=Creature type=Creature
@@ -121619,9 +121629,8 @@ toughness=5
[/card] [/card]
[card] [card]
name=Tidewalker name=Tidewalker
auto=foreach(island|myBattlefield) counter(0/0,1,Time) oneshot auto=vanishing:type:island:mybattlefield
anyzone=counter{0%0.1.Time}/counter{0%0.1.Time} cdaactive auto=hascnttime/hascnttime cdaactive
auto=vanishing:0
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. 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} mana={2}{U}
type=Creature type=Creature
@@ -127483,7 +127492,7 @@ toughness=4
[/card] [/card]
[card] [card]
name=Varchild's Crusader 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. 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} mana={3}{R}
type=Creature type=Creature
@@ -130688,7 +130697,7 @@ type=Artifact
name=Voyage's End name=Voyage's End
target=creature target=creature
auto=moveto(ownerhand) 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 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.) 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} mana={1}{U}
@@ -134473,10 +134482,10 @@ toughness=1
[card] [card]
name=Windreaver name=Windreaver
abilities=flying abilities=flying
auto={W}:vigilance auto={W}:name(Gains vigilance) vigilance ueot
auto={W}:0/1 auto={W}:name(Gains 0/1) name(Gains 0/1) 0/1 ueot
auto={U}:swap auto={U}:name(Swap power/toughness) swap
auto={U}:moveTo(ownerhand) 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. 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} mana={3}{W}{U}
type=Creature type=Creature
@@ -363,9 +363,9 @@ subtype=B.O.B.
[card] [card]
name=Basri, Devoted Paladin name=Basri, Devoted Paladin
auto=counter(0/0,4,loyalty) 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: 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 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,-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) 2/2 && flying 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. 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} mana={4}{W}{W}
type=Legendary Planeswalker type=Legendary Planeswalker
@@ -626,11 +626,14 @@ subtype=Chandra
[card] [card]
name=Chandra, Torch of Defiance name=Chandra, Torch of Defiance
auto=counter(0/0,4,loyalty) 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,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,-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 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 target creature or player." 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} mana={2}{R}{R}
type=Legendary Planeswalker type=Legendary Planeswalker
subtype=Chandra subtype=Chandra
@@ -640,7 +643,7 @@ name=Dack Fayden
auto=counter(0/0,3,loyalty) 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,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,-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." 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} mana={1}{U}{R}
type=Legendary Planeswalker 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,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,-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 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} mana={2}{R}{G}
type=Legendary Planeswalker type=Legendary Planeswalker
subtype=Domri 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: 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,-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 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} mana={2}{W}{U}
type=Legendary Planeswalker type=Legendary Planeswalker
subtype=Dovin subtype=Dovin
@@ -1032,11 +1035,12 @@ subtype=Gideon
[card] [card]
name=Gideon Blackblade name=Gideon Blackblade
auto=counter(0/0,4,loyalty) 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=this(variable{controllerturn}>0) transforms((Human Soldier Creature,setpower=4,settoughness=4,newability[indestructible],newability[preventAllDamage to(this)]))
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: Don't target any creature) donothing
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: Other creature gains vigilance) target(other creature|myBattlefield) transforms((,newability[vigilance])) ueot
auto={C(0/0,1,Loyalty)}:name(+1: Loyalty counter) donothing restriction{compare(cantargetcre)~lessthan~1} auto={C(0/0,1,Loyalty)}:name(+1: Other creature gains lifelink) target(other creature|myBattlefield) transforms((,newability[lifelink])) ueot
auto={C(0/0,-6,Loyalty)}:name(-6: Exile target nonland permanent) moveTo(exile) target(*[-land]) 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. 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} mana={1}{W}{W}
type=Legendary Planeswalker 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: 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,-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 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} mana={2}{G}{W}
type=Legendary Planeswalker type=Legendary Planeswalker
subtype=Huatli subtype=Huatli
@@ -1252,10 +1256,12 @@ subtype=Jace
[card] [card]
name=Jace, Cunning Castaway name=Jace, Cunning Castaway
auto=counter(0/0,3,loyalty) 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=@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={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=@each endofturn restriction{compare(hascntjaceeffect)~morethan~0}:name(Effect Ends) removeallcounters(0/0.1.JaceEffect)
auto={C(0/0,-5,Loyalty)}:name(-5: Create two tokens of Jace Cunning Castaway) clone all(this) with([-legendary])*2 auto={C(0/0,1,Loyalty)}:name(+1: Draw on damage) counter(0/0.1.JaceEffect) notrg
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={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} mana={1}{U}{U}
type=Legendary Planeswalker type=Legendary Planeswalker
subtype=Jace 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: 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,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 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} mana={2}{R}{R}{R}
type=Legendary Planeswalker type=Legendary Planeswalker
subtype=Jaya 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,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,-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 )! 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} mana={4}
type=Legendary Planeswalker type=Legendary Planeswalker
subtype=Karn 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={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=@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 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} mana={2}{W}{U}
type=Legendary Planeswalker type=Legendary Planeswalker
subtype=Narset 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: 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,-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 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} mana={3}{B}{B}
type=Legendary Planeswalker type=Legendary Planeswalker
subtype=Nixilis subtype=Nixilis
@@ -2306,9 +2312,9 @@ name=Ral, Izzet Viceroy
auto=counter(0/0,4,loyalty) 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 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,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 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} mana={3}{U}{R}
type=Legendary Planeswalker type=Legendary Planeswalker
subtype=Ral subtype=Ral
@@ -2352,11 +2358,11 @@ name=Rowan Kenrith
abilities=partner,canbecommander abilities=partner,canbecommander
partner=Will Kenrith partner=Will Kenrith
auto=counter(0/0,4,loyalty) 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: 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) all(creature|mybattlefield) mustattack ueot 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 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) 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} mana={4}{R}{R}
type=Legendary Planeswalker type=Legendary Planeswalker
subtype=Rowan 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,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,-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 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} mana={3}{W}{U}
type=Legendary Planeswalker type=Legendary Planeswalker
subtype=Teferi subtype=Teferi
@@ -2748,7 +2754,7 @@ name=Teferi, Timeless Voyager
auto=counter(0/0,4,loyalty) auto=counter(0/0,4,loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: Draw a card) draw:1 controller 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,-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.) 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} mana={4}{U}{U}
type=Legendary Planeswalker 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,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,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 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} mana={3}{U}{U}
type=Legendary Planeswalker type=Legendary Planeswalker
subtype=Tezzeret subtype=Tezzeret
@@ -2965,9 +2971,9 @@ subtype=Tibalt
[card] [card]
name=Tibalt, the Fiend-Blooded name=Tibalt, the Fiend-Blooded
auto=counter(0/0,2,Loyalty) 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,1,Loyalty)}:name(+1: Draw and discard) draw:1 controller && discard:1 controller
auto={counter(0/0,-4,Loyalty)}:name(-4: Deals damage target player equal to hand) target(player) damage:type:*:targetedpersonshand 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: "Insurrection") all(creature|battlefield) moveTo(mybattlefield) && all(creature) transforms((,newability[untap],newability[haste],newability[phaseaction[endofturn sourceinplay] moveTo(ownerbattlefield)])) ueot 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. 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} mana={R}{R}
type=Legendary Planeswalker 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,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,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 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} mana={2}{G}{G}
type=Legendary Planeswalker type=Legendary Planeswalker
subtype=Tyvar subtype=Tyvar
@@ -3176,9 +3182,11 @@ name=Will Kenrith
abilities=partner,canbecommander abilities=partner,canbecommander
partner=Rowan Kenrith partner=Rowan Kenrith
auto=counter(0/0,4,loyalty) 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: Don't target any creature) donothing
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,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,-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: 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. 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} mana={4}{U}{U}
type=Legendary Planeswalker type=Legendary Planeswalker
+43 -5
View File
@@ -347,16 +347,22 @@ public:
class TrCardExerted: public Trigger class TrCardExerted: public Trigger
{ {
public: public:
TrCardExerted(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc, bool once = false) : bool limitOnceATurn;
Trigger(observer, id, source, once, tc) 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) int triggerOnEventImpl(WEvent * event)
{ {
WEventCardExerted * e = dynamic_cast<WEventCardExerted *> (event); WEventCardExerted * e = dynamic_cast<WEventCardExerted *> (event);
if (!e) return 0; if (!e) return 0;
if (limitOnceATurn && triggeredTurn == game->turn)
return 0;
if (!tc->canTarget(e->card)) return 0; if (!tc->canTarget(e->card)) return 0;
triggeredTurn = game->turn;
return 1; return 1;
} }
@@ -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 class TrplayerEnergized: public Trigger
{ {
public: public:
@@ -4904,9 +4939,10 @@ public:
bool newAbilityFound; bool newAbilityFound;
bool aForever; bool aForever;
bool UYNT; bool UYNT;
bool UENT;
int myCurrentTurn; int myCurrentTurn;
string menutext; //this overrides the previous. 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 addToGame();
int reapplyCountersBonus(MTGCardInstance * rtarget= NULL, bool powerapplied=false, bool toughnessapplied=false); int reapplyCountersBonus(MTGCardInstance * rtarget= NULL, bool powerapplied=false, bool toughnessapplied=false);
int testDestroy(); int testDestroy();
@@ -4930,9 +4966,10 @@ public:
bool newAbilityFound; bool newAbilityFound;
bool aForever; bool aForever;
bool UYNT; bool UYNT;
bool UENT;
string menu; 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(); int resolve();
const string getMenuText(); const string getMenuText();
ATransformerInstant * clone() const; ATransformerInstant * clone() const;
@@ -5087,8 +5124,9 @@ class ALoseSubtypes: public MTGAbility
{ {
public: public:
int parentType; int parentType;
bool specificType; // added to remove a specific type (e.g. "Conversion").
vector <int> storedSubtypes; 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 addToGame();
int destroy(); int destroy();
ALoseSubtypes * clone() const; ALoseSubtypes * clone() const;
+4 -1
View File
@@ -333,7 +333,10 @@ class Constants
NOENTERTRG = 206, NOENTERTRG = 206,
NODIETRG = 207, NODIETRG = 207,
TRAINING = 208, TRAINING = 208,
NB_BASIC_ABILITIES = 209, ENERGYSHROUD = 209,
EXPSHROUD = 210,
COUNTERSHROUD = 211,
NB_BASIC_ABILITIES = 212,
RARITY_S = 'S', //Special Rarity RARITY_S = 'S', //Special Rarity
RARITY_M = 'M', //Mythics RARITY_M = 'M', //Mythics
+9
View File
@@ -350,6 +350,15 @@ struct WEventCardCopiedACard : public WEventCardUpdate {
virtual Targetable * getTarget(int target); 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 //alterenergy event
struct WEventplayerEnergized : public WEvent { struct WEventplayerEnergized : public WEvent {
WEventplayerEnergized(Player * player, int nb_count); WEventplayerEnergized(Player * player, int nb_count);
+34 -10
View File
@@ -1037,8 +1037,16 @@ int AAAlterPoison::resolve()
if (_target) if (_target)
{ {
Player * pTarget = (Player*)_target; Player * pTarget = (Player*)_target;
if(!pTarget->inPlay()->hasAbility(Constants::POISONSHROUD) || poison < 0) if(!pTarget->inPlay()->hasAbility(Constants::POISONSHROUD) || poison < 0){
_target->poisonCount += poison; _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; return 0;
} }
@@ -1377,6 +1385,7 @@ int AAAlterEnergy::resolve()
Player * pTarget = (Player*)_target; Player * pTarget = (Player*)_target;
if(pTarget) if(pTarget)
{ {
if(!pTarget->inPlay()->hasAbility(Constants::ENERGYSHROUD) || energy < 0){
pTarget->energyCount += energy; pTarget->energyCount += energy;
if(pTarget->energyCount < 0) if(pTarget->energyCount < 0)
pTarget->energyCount = 0; pTarget->energyCount = 0;
@@ -1387,6 +1396,7 @@ int AAAlterEnergy::resolve()
}//todo loses enegy event }//todo loses enegy event
} }
} }
}
return 0; return 0;
} }
@@ -1420,6 +1430,7 @@ int AAAlterExperience::resolve()
Player * pTarget = (Player*)_target; Player * pTarget = (Player*)_target;
if(pTarget) if(pTarget)
{ {
if(!pTarget->inPlay()->hasAbility(Constants::EXPSHROUD) || experience < 0){
pTarget->experienceCount += experience; pTarget->experienceCount += experience;
if(pTarget->experienceCount < 0) if(pTarget->experienceCount < 0)
pTarget->experienceCount = 0; pTarget->experienceCount = 0;
@@ -1430,6 +1441,7 @@ int AAAlterExperience::resolve()
}//todo loses experience event }//todo loses experience event
} }
} }
}
return 0; return 0;
} }
@@ -2551,6 +2563,9 @@ AACounter::AACounter(GameObserver* observer, int id, MTGCardInstance * source, M
} }
if (nb > 0) 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++) for (int i = 0; i < nb; i++)
{ {
while (_target->next) while (_target->next)
@@ -7533,8 +7548,8 @@ AAlterCost::~AAlterCost()
} }
// ATransformer // 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) : 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),menutext(_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) { if (target != source) {
@@ -7576,7 +7591,7 @@ ATransformer::ATransformer(GameObserver* observer, int id, MTGCardInstance * sou
int ATransformer::addToGame() int ATransformer::addToGame()
{ {
if(UYNT) if(UYNT || UENT)
myCurrentTurn = game->turn; myCurrentTurn = game->turn;
MTGCardInstance * _target = NULL; MTGCardInstance * _target = NULL;
Interruptible * action = (Interruptible *) target; Interruptible * action = (Interruptible *) target;
@@ -7785,6 +7800,12 @@ int ATransformer::addToGame()
return 1; 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. 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(); return MTGAbility::testDestroy();
} }
@@ -7896,10 +7917,10 @@ ATransformer::~ATransformer()
} }
//ATransformerInstant //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) : 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),menu(_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; aType = MTGAbility::STANDARD_BECOMES;
} }
@@ -8163,8 +8184,8 @@ ALoseAbilities * ALoseAbilities::clone() const
} }
//ALoseSubtypes //ALoseSubtypes
ALoseSubtypes::ALoseSubtypes(GameObserver* observer, int id, MTGCardInstance * source, MTGCardInstance * _target, int parentType) : ALoseSubtypes::ALoseSubtypes(GameObserver* observer, int id, MTGCardInstance * source, MTGCardInstance * _target, int parentType, bool specificType) :
MTGAbility(observer, id, source), parentType(parentType) MTGAbility(observer, id, source), parentType(parentType), specificType(specificType)
{ {
target = _target; target = _target;
} }
@@ -8181,7 +8202,7 @@ int ALoseSubtypes::addToGame()
for (int i = ((int)_target->types.size())-1; i >= 0; --i) for (int i = ((int)_target->types.size())-1; i >= 0; --i)
{ {
int subtype = _target->types[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); storedSubtypes.push_back(subtype);
_target->removeType(subtype); _target->removeType(subtype);
@@ -9328,7 +9349,10 @@ void ABlink::returnCardIntoPlay(MTGCardInstance* _target) {
spell->source->toughness = spell->source->origtoughness; spell->source->toughness = spell->source->origtoughness;
spell->source->X = 0; spell->source->X = 0;
if (!spell->source->hasSubtype(Subtypes::TYPE_AURA)) { if (!spell->source->hasSubtype(Subtypes::TYPE_AURA)) {
MTGGameZone* prev = spell->source->previousZone; // Save the previous zone of card before spell resolution.
spell->resolve(); 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) if (stored)
{ {
MTGAbility * clonedStored = stored->clone(); MTGAbility * clonedStored = stored->clone();
+14 -5
View File
@@ -189,8 +189,14 @@ int Damage::resolve()
{ {
// Poison on player // Poison on player
Player * _target = (Player *) target; 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. _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; _target->damageCount += damage;
if(typeOfDamage == 2) if(typeOfDamage == 2)
_target->nonCombatDamage += damage; _target->nonCombatDamage += damage;
@@ -225,20 +231,23 @@ int Damage::resolve()
} }
if(!_target->inPlay()->hasAbility(Constants::POISONSHROUD)) if(!_target->inPlay()->hasAbility(Constants::POISONSHROUD))
{ {
int poison = 0;
if (source->has(Constants::POISONTOXIC)) if (source->has(Constants::POISONTOXIC))
{ {
_target->poisonCount += 1; poison = 1;
} }
else if (source->has(Constants::POISONTWOTOXIC)) else if (source->has(Constants::POISONTWOTOXIC))
{ {
_target->poisonCount += 2; poison = 2;
} }
else 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 else
{ {
+37 -11
View File
@@ -1188,7 +1188,7 @@ TriggeredAbility * AbilityFactory::parseTrigger(string s, string, int id, Spell
//Card Exerted //Card Exerted
if (TargetChooser *tc = parseSimpleTC(s,"exerted", card)) 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 //CombatTrigger
//Card card attacked and is blocked //Card card attacked and is blocked
@@ -1228,6 +1228,14 @@ TriggeredAbility * AbilityFactory::parseTrigger(string s, string, int id, Spell
attackingTrigger, attackedAloneTrigger, notBlockedTrigger, attackBlockedTrigger, blockingTrigger); 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 //energized player - controller of card
if (TargetChooser * tc = parseSimpleTC(s, "energizedof", card)) if (TargetChooser * tc = parseSimpleTC(s, "energizedof", card))
return NEW TrplayerEnergized(observer, id, card, tc, once, true, false); 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 oneShot = false;
bool forceForever = false; bool forceForever = false;
bool untilYourNextTurn = false; bool untilYourNextTurn = false;
bool untilYourNextEndTurn = false;
found = s.find("ueot"); found = s.find("ueot");
if (found != string::npos) if (found != string::npos)
forceUEOT = true; forceUEOT = true;
@@ -3735,6 +3744,9 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG
found = s.find("uynt"); found = s.find("uynt");
if (found != string::npos) if (found != string::npos)
untilYourNextTurn = true; untilYourNextTurn = true;
found = s.find("uent");
if (found != string::npos)
untilYourNextEndTurn = true;
//Prevent Damage //Prevent Damage
const string preventDamageKeywords[] = { "preventallcombatdamage", "preventallnoncombatdamage", "preventalldamage", "fog" }; const string preventDamageKeywords[] = { "preventallcombatdamage", "preventallnoncombatdamage", "preventalldamage", "fog" };
const int preventDamageTypes[] = {0, 2, 1, 0}; //TODO enum ? 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()) if (splitLoseTypes.size())
{ {
int parentType = MTGAllCards::findType(splitLoseTypes[1]); 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 //Cast/Play Restrictions
@@ -4448,9 +4468,9 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG
} }
} }
if (oneShot || forceUEOT || forceForever) 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 //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) 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 //bloodthirst
vector<string> splitBloodthirst = parseBetween(s, "bloodthirst:", " ", false); vector<string> splitBloodthirst = parseBetween(s, "bloodthirst:", " ", false);
if (splitBloodthirst.size()) 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 //Vanishing
vector<string> splitVanishing = parseBetween(s, "vanishing:", " ", false); vector<string> splitVanishing = parseBetween(s, "vanishing:", " ", false);
if (splitVanishing.size()) 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 //Fading
vector<string> splitFading = parseBetween(s, "fading:", " ", false); vector<string> splitFading = parseBetween(s, "fading:", " ", false);
if (splitFading.size()) 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 //Alter cost
@@ -4581,9 +4607,9 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG
sabilities.replace(pos, 14, "transforms((" + storedString + "))"); sabilities.replace(pos, 14, "transforms((" + storedString + "))");
if (oneShot || forceUEOT || forceForever) 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);
} }
+4
View File
@@ -926,6 +926,10 @@ void MTGCardInstance::switchPT(bool apply)
stripPTbonus(); stripPTbonus();
swapP = power; swapP = power;
swapT = toughness; 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 += origpower;
power -= swapP; power -= swapP;
addToToughness(origtoughness); addToToughness(origtoughness);
+4 -1
View File
@@ -239,7 +239,10 @@ const char* Constants::MTGBasicAbilities[] = {
"hasaftermath", //Flashback cost is an aftemath cost (e.g. "Claim // Fame") "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"). "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"). "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; map<string,int> Constants::MTGBasicAbilitiesMap;
+11
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) : WEventplayerEnergized::WEventplayerEnergized(Player * player, int nb_count) :
player(player), nb_count(nb_count) player(player), nb_count(nb_count)
{ {
@@ -634,6 +639,12 @@ Targetable * WEventTokenCreated::getTarget(int target)
return NULL; return NULL;
} }
Targetable * WEventplayerPoisoned::getTarget(Player * player)
{
if (player) return player;
return NULL;
}
Targetable * WEventplayerEnergized::getTarget(Player * player) Targetable * WEventplayerEnergized::getTarget(Player * player)
{ {
if (player) return player; if (player) return player;
+2 -2
View File
@@ -965,7 +965,7 @@ void WParsedInt::init(string s, Spell * spell, MTGCardInstance * card)
intValue += card->controller()->game->graveyard->cards[j]->myconvertedcost; 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; intValue = 0;
for (int j = card->controller()->game->inPlay->nb_cards - 1; j >= 0; --j) 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(); 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; intValue = 0;
for (int j = card->controller()->game->inPlay->nb_cards - 1; j >= 0; --j) for (int j = card->controller()->game->inPlay->nb_cards - 1; j >= 0; --j)