Fixed WAR, C18, PAL00, UST set, added/fixed primitives, improved Android downloader, implemented Foretell ability, improved castcard keyword, improved "can play" restriction, improved primitives parsed in order to allow the nesting of transforms, ability$! reveal, scry, pay, grant keywords.

This commit is contained in:
Vittorio Alfieri
2021-01-14 17:51:13 +01:00
parent 69885cf90a
commit 91d19e2852
19 changed files with 340 additions and 312 deletions

View File

@@ -12,9 +12,6 @@
# Basic Landcycling
#AUTO_DEFINE __BASIC_LANDCYCLING__($cost) $cost{cycle}:name(basic landcycling) moveTo(myhand) target(land[basic]|mylibrary)
# Fabricate
#AUTO_DEFINE _FABRICATE_($c) transforms((,newability[choice counter(1/1.$c)],newability[choice create(Servo:Artifact Creature Servo:1/1)*$c])) ueot
# Dies, Evergreen
#AUTO_DEFINE _DIES_ @movedTo(this|mygraveyard) from(battlefield):

View File

@@ -173,7 +173,7 @@ toughness=2
[card]
name=Act of Authority
auto=may name(Exile artifact or enchantment) target(*[artifact;enchantment]|battlefield) moveTo(ownerExile)
auto=@each my upkeep:ability$!name(Choose one) choice name(Exile opponent's artifact or enchantment) target(*[artifact;enchantment]|opponentbattlefield) moveTo(ownerExile) && all(mystored) moveto(opponentBattlefield) _ choice name(Exile your artifact or enchantment) target(*[artifact;enchantment]|mybattlefield) moveTo(ownerExile) _ choice name(Don't exile any artifact or enchantment) donothing!$ controller
auto=@each my upkeep:ability$!name(Choose one) choice name(Exile opponent's artifact or enchantment) target(*[artifact;enchantment]|opponentbattlefield) moveTo(ownerExile) && all(mysource) moveto(opponentBattlefield) _ choice name(Exile your artifact or enchantment) target(*[artifact;enchantment]|mybattlefield) moveTo(ownerExile) _ choice name(Don't exile any artifact or enchantment) donothing!$ controller
text=When Act of Authority enters the battlefield, you may exile target artifact or enchantment. -- At the beginning of your upkeep, you may exile target artifact or enchantment. If you do, its controller gains control of Act of Authority.
mana={1}{W}{W}
type=Enchantment
@@ -526,7 +526,7 @@ type=Sorcery
[/card]
[card]
name=Agadeem, the Undercrypt
auto=ability$!name(Choose one) choice name(Pay 3 life) life:-3 _ choice name(Tap) tap(noevent) all(mystored)!$ controller
auto=ability$!name(Choose one) choice name(Pay 3 life) life:-3 _ choice name(Tap) tap(noevent) all(mysource)!$ controller
auto={T}:add{B}
text=As Agadeem, the Undercrypt enters the battlefield, you may pay 3 life. If you don't, it enters the battlefield tapped. -- {T}: Add {B}.
type=Land
@@ -1040,6 +1040,21 @@ power=2
toughness=2
[/card]
[card]
name=Alrund, God of the Cosmos
other={1}{U} name(Hakka, Whispering Raven)
otherrestriction=can play creature
autostack=if paid(alternative) then name(Hakka, Whispering Raven) name(Hakka, Whispering Raven) flip(Hakka, Whispering Raven) forcetype(Legendary Creature)
auto=this(variable{isflipped}<1) foreach(*[foretold]|myexile) 1/1
auto=@each my endofturn restriction{compare(isflipped)~equalto~0}:transforms((,newability[choice name(Creature) reveal:2 optionone name(Get Creature) target(<2>Creature|reveal) moveto(myhand) optiononeend optiontwo name(Bottom of library) target(<2>*|reveal) bottomoflibrary optiontwoend revealend],newability[choice name(Artifact) reveal:2 optionone name(Get Artifact) target(<2>artifact|reveal) moveto(myhand) optiononeend optiontwo name(Bottom of library) target(<2>*|reveal) bottomoflibrary optiontwoend revealend],newability[choice name(Enchantment) reveal:2 optionone name(Get Enchantment) target(<2>enchantment|reveal) moveto(myhand) optiononeend optiontwo name(Bottom of library) target(<2>*|reveal) bottomoflibrary optiontwoend revealend],newability[choice name(Instant) reveal:2 optionone name(Get Instant) target(<2>instant|reveal) moveto(myhand) optiononeend optiontwo name(put in grave) name(Bottom of library) bottomoflibrary optiontwoend revealend],newability[choice name(Land) reveal:2 optionone name(Get Land) target(<2>land|reveal) moveto(myhand) optiononeend optiontwo name(Bottom of library) target(<2>*|reveal) bottomoflibrary optiontwoend revealend],newability[choice name(Planeswalker) reveal:2 optionone name(Get Planeswalker) target(<2>planeswalker|reveal) moveto(myhand) optiononeend optiontwo name(Bottom of library) target(<2>*|reveal) bottomoflibrary optiontwoend revealend],newability[choice name(Sorcery) reveal:2 optionone name(Get Sorcery) target(<2>sorcery|reveal) moveto(myhand) optiononeend optiontwo name(Bottom of library) target(<2>*|reveal) bottomoflibrary optiontwoend revealend],newability[choice name(Tribal) reveal:2 optionone name(Get Tribal) target(<2>tribal|reveal) moveto(myhand) optiononeend optiontwo name(Bottom of library) target(<2>*|reveal) bottomoflibrary optiontwoend revealend])) oneshot
aicode=@each my endofturn restriction{compare(isflipped)~equalto~0}:ability$!name(Choose one) choice name(Creature) all(*[creature;zpos<=2]|mylibrary) moveto(myhand) && all(*[-creature;zpos<=2]|mylibrary) bottomoflibrary _ choice name(Artifact) all(*[artifact;zpos<=2]|mylibrary) moveto(myhand) && all(*[-artifact;zpos<=2]|mylibrary) bottomoflibrary _ choice name(Enchantment) all(*[enchantment;zpos<=2]|mylibrary) moveto(myhand) && all(*[-enchantment;zpos<=2]|mylibrary) bottomoflibrary _ choice name(Instant) all(*[instant;zpos<=2]|mylibrary) moveto(myhand) && all(*[-instant;zpos<=2]|mylibrary) bottomoflibrary _ choice name(Land) all(*[land;zpos<=2]|mylibrary) moveto(myhand) && all(*[-land;zpos<=2]|mylibrary) bottomoflibrary _ choice name(Planeswalker) all(*[planeswalker;zpos<=2]|mylibrary) moveto(myhand) && all(*[-planeswalker;zpos<=2]|mylibrary) bottomoflibrary _ choice name(Sorcery) all(*[sorcery;zpos<=2]|mylibrary) moveto(myhand) && all(*[-sorcery;zpos<=2]|mylibrary) bottomoflibrary _ choice name(Tribal) all(*[tribal;zpos<=2]|mylibrary) moveto(myhand) && all(*[-tribal;zpos<=2]|mylibrary) bottomoflibrary!$ controller
text=Alrund gets +1/+1 for each card in your hand and each foretold card you own in exile. -- At the beginning of your end step, choose a card type, then reveal the top two cards of your library. Put all cards of the chosen type into your hand and the rest on the bottom of your library in any order.
mana={3}{U}{U}
type=Legendary Creature
subtype=God
power=1
toughness=1
[/card]
[card]
name=Alseid of Life's Bounty
abilities=lifelink
auto={1}{S}:name(Protection from white) protection from white target(creature,enchantment|myBattlefield)
@@ -6713,8 +6728,8 @@ toughness=3
[/card]
[card]
name=Carrion Rats
auto=@combat(attacking,blocking) source(this):ability$!name(Choose one) choice name(Exile a card) moveto(exile) target(*|mygraveyard) && all(mystored) fog from(this) _ choice name(Don't exile any card) donothing!$ opponent
auto=@combat(attacking,blocking) source(this):ability$!name(Choose one) choice name(Exile a card) moveto(exile) target(*|mygraveyard) && all(mystored) fog from(this) _ choice name(Don't exile any card) donothing!$ controller
auto=@combat(attacking,blocking) source(this):ability$!name(Choose one) choice name(Exile a card) moveto(exile) target(*|mygraveyard) && all(mysource) fog from(this) _ choice name(Don't exile any card) donothing!$ opponent
auto=@combat(attacking,blocking) source(this):ability$!name(Choose one) choice name(Exile a card) moveto(exile) target(*|mygraveyard) && all(mysource) fog from(this) _ choice name(Don't exile any card) donothing!$ controller
text=Whenever Carrion Rats attacks or blocks, any player may exile a card from his or her graveyard. If a player does, Carrion Rats assigns no combat damage this turn.
mana={B}
type=Creature
@@ -6734,8 +6749,8 @@ toughness=1
[/card]
[card]
name=Carrion Wurm
auto=@combat(attacking,blocking) source(this):ability$!name(Choose one) choice name(Exile a card) moveto(exile) target(*|mygraveyard) && all(mystored) fog from(this) _ choice name(Don't exile any card) donothing!$ opponent
auto=@combat(attacking,blocking) source(this):ability$!name(Choose one) choice name(Exile a card) moveto(exile) target(*|mygraveyard) && all(mystored) fog from(this) _ choice name(Don't exile any card) donothing!$ controller
auto=@combat(attacking,blocking) source(this):ability$!name(Choose one) choice name(Exile a card) moveto(exile) target(*|mygraveyard) && all(mysource) fog from(this) _ choice name(Don't exile any card) donothing!$ opponent
auto=@combat(attacking,blocking) source(this):ability$!name(Choose one) choice name(Exile a card) moveto(exile) target(*|mygraveyard) && all(mysource) fog from(this) _ choice name(Don't exile any card) donothing!$ controller
text=Whenever Carrion Wurm attacks or blocks, any player may exile three cards from his or her graveyard. If a player does, Carrion Wurm assigns no combat damage this turn.
mana={3}{B}{B}
type=Creature
@@ -11091,7 +11106,7 @@ toughness=2
[/card]
[card]
name=Deadeye Tracker
auto={1}{B}{T}:moveto(exile) target(<2>*|opponentgraveyard) && explores && reveal:1 optionone if type(land|reveal)~lessthan~1 then transforms((,newability[counter(1/1)])) forever optiononeend optiontwo if type(land|reveal)~morethan~0 then name(move to Hand) target(<1>*|reveal) moveto(myHand) else transforms((,newability[Choice name(back to library) target(<1>*|reveal) moveto(mylibrary)],newability[Choice name(put into Graveyard) target(<1>*|reveal) moveto(myGraveyard)])) oneshot optiontwoend revealend limit:1
auto={1}{B}{T}{E(*|opponentgraveyard)} restriction{type(*|opponentgraveyard)~morethan~1}:moveto(exile) target(*|opponentgraveyard) && explores && reveal:1 optionone if type(land|reveal)~lessthan~1 then transforms((,newability[counter(1/1)])) forever optiononeend optiontwo if type(land|reveal)~morethan~0 then name(move to Hand) target(<1>*|reveal) moveto(myHand) else transforms((,newability[Choice name(back to library) target(<1>*|reveal) moveto(mylibrary)],newability[Choice name(put into Graveyard) target(<1>*|reveal) moveto(myGraveyard)])) oneshot optiontwoend revealend limit:1
text={1}{B}, {T}: Exile two target cards from an opponent's graveyard. Deadeye Tracker explores. (Reveal the top card of your library. Put that card into your hand if it's a land. Otherwise, put a +1/+1 counter on this creature, then put the card back or put it into your graveyard.)
mana={B}
type=Creature
@@ -14308,7 +14323,7 @@ type=Sorcery
[/card]
[card]
name=Emeria, Shattered Skyclave
auto=ability$!name(Choose one) choice name(Pay 3 life) life:-3 _ choice name(Tap) tap(noevent) all(mystored)!$ controller
auto=ability$!name(Choose one) choice name(Pay 3 life) life:-3 _ choice name(Tap) tap(noevent) all(mysource)!$ controller
auto={T}:add{W}
text=As Emeria, Shattered Skyclave enters the battlefield, you may pay 3 life. If you don't, it enters the battlefield tapped. -- {T}: Add {W}.
type=Land
@@ -21071,6 +21086,18 @@ mana={X}{W}
type=Instant
[/card]
[card]
name=Hakka, Whispering Raven
abilities=flying
auto=@combatdamagefoeof(player) from(this):name(Return to hand and scry 2) name(Return to hand and scry 2) moveTo(ownerhand) and!( scry:2 scrycore delayed dontshow donothing scrycoreend scryend )!
auto=@combatdamageof(player) from(this):name(Return to hand and scry 2) name(Return to hand and scry 2) moveTo(ownerhand) and!( scry:2 scrycore delayed dontshow donothing scrycoreend scryend )!
text=Flying -- Whenever Hakka, Whispering Raven deals combat damage to a player, return it to its owners hand, then scry 2.
mana={1}{U}
type=Legendary Creature
subtype=Bird
power=2
toughness=3
[/card]
[card]
name=Halana, Kessig Ranger
abilities=reach,partner
auto=@movedTo(other creature|mybattlefield):may pay({2}) name(Pay 2) all(trigger[to]) transforms((,newability[name(Damage creature) dynamicability<!powerstrike!> target(creature)])) oneshot
@@ -21149,6 +21176,22 @@ text=Cumulative upkeep {1} (At the beginning of your upkeep, put an age counter
type=Land
[/card]
[card]
name=Halvar, God of Battle
other={1}{W} name(Sword of the Realms)
otherrestriction=can play equipment
autostack=if paid(alternative) then flip(Sword of the Realms) forcetype(Legendary Artifact)
auto=this(variable{isflipped}<1) lord(creature[geared;enchanted]|myBattlefield) double strike
auto=@each combatbegins restriction{compare(isflipped)~equalto~0,type(creature|mybattlefield)~morethan~1,type(creature[equipped]|mybattlefield)~morethan~0,type(creature[enchanted]|mybattlefield)~equalto~0}:may name(Re-attach target equipment) target(*[equipment]|mybattlefield) transforms((,newability[name(Attach to creature) name(Attach to creature) rehook target(creature|mybattlefield)])) oneshot
auto=@each combatbegins restriction{compare(isflipped)~equalto~0,type(creature|mybattlefield)~morethan~1,type(creature[equipped]|mybattlefield)~equalto~0,type(creature[enchanted]|mybattlefield)~morethan~0}:may name(Re-attach target aura) target(*[aura]|mybattlefield) transforms((,newability[name(Attach to creature) name(Attach to creature) rehook target(creature|mybattlefield)])) oneshot
auto=@each combatbegins restriction{compare(isflipped)~equalto~0,type(creature|mybattlefield)~morethan~1,type(creature[equipped]|mybattlefield)~morethan~0,type(creature[enchanted]|mybattlefield)~morethan~0}:may name(Re-attach target equipment or aura) target(*[aura;equipment]|mybattlefield) transforms((,newability[name(Attach to creature) name(Attach to creature) rehook target(creature|mybattlefield)])) oneshot
text=Creatures you control that are enchanted or equipped have double strike. -- At the beginning of each combat, you may attach target Aura or Equipment attached to a creature you control to target creature you control.
mana={2}{W}{W}
type=Legendary Creature
subtype=God
power=4
toughness=4
[/card]
[card]
name=Hammer Dropper
abilities=mentor
auto=@combat(attacking) source(this) restriction{compare(p)~lessthan~1}:counter(1/1,1) target(other creature[attacking;power<=-1]|myBattlefield)
@@ -23020,7 +23063,7 @@ type=Instant
[/card]
[card]
name=Hungry Hungry Heifer
auto=@each my upkeep:if type(*[counter{any}]|mybattlefield)~equalto~0 then sacrifice all(this) else ability!$name(Choose one) choice name(Remove a counter) removesinglecountertype(1) target(*[counter{any}]|mybattlefield) _ choice name(Sacrifice) sacrifice all(mystored)!$ controller
auto=@each my upkeep:if type(*[counter{any}]|mybattlefield)~equalto~0 then sacrifice all(this) else ability!$name(Choose one) choice name(Remove a counter) removesinglecountertype(1) target(*[counter{any}]|mybattlefield) _ choice name(Sacrifice) sacrifice all(mysource)!$ controller
text=During your upkeep, remove a counter from any card you control or sacrifice Hungry Hungry Heifer.
mana={2}{G}
type=Summon
@@ -25356,6 +25399,19 @@ power=3
toughness=2
[/card]
[card]
name=Jorn, God of Winter
other={1}{U}{B} name(Kaldring, the Rimestaff)
otherrestriction=can play artifact
autostack=if paid(alternative) then flip(Kaldring, the Rimestaff) forcetype(Legendary Snow Artifact)
auto=@combat(attacking) source(this) restriction{compare(isflipped)~equalto~0}:all(*[snow]|mybattlefield) untap
text=Whenever Jorn attacks, untap each snow permanent you control.
mana={2}{G}
type=Legendary Snow Creature
subtype=God
power=4
toughness=4
[/card]
[card]
name=Josu Vess, Lich Knight
abilities=menace
kicker={5}{B}
@@ -25688,6 +25744,18 @@ power=3
toughness=3
[/card]
[card]
name=Kaldring, the Rimestaff
auto={T}:name(Choose snow permanent) name(Choose snow permanent) target(*[snow]|mygraveyard) transforms((,newability[canplayfromgraveyard])) ueot && counter(0/0,1,KaldEffect) all(this)
auto=@movedto(*[snow]|mybattlefield) from(mygraveyard):this(counter{0/0.1.KaldEffect}>0) all(trigger[to]) tap(noevent) && ability$!counter(0/0,-1,KaldEffect) all(mysource)!$ controller
auto=@movedto(*[snow]|mystack) from(mygraveyard):this(counter{0/0.1.KaldEffect}>0) counter(0/0,1,KaldEffect2) && ability$!counter(0/0,-1,KaldEffect) all(mysource)!$ controller
auto=@movedto(*[snow]|mybattlefield):this(counter{0/0.1.KaldEffect2}>0) all(trigger[to]) tap(noevent) && ability$!counter(0/0,-1,KaldEffect2) all(mysource)!$ controller
auto=@each endofturn:this(counter{0/0.1.KaldEffect}>0) counter(0/0,-1,KaldEffect)
auto=@each endofturn:this(counter{0/0.1.KaldEffect2}>0) counter(0/0,-1,KaldEffect2)
text={T}: You may play target snow permanent card from your graveyard this turn. If you do, it enters the battlefield tapped.
mana={1}{U}{B}
type=Legendary Snow Artifact
[/card]
[card]
name=Kalitas, Traitor of Ghet
abilities=lifelink
auto=@movedto(creature[token]|opponentbattlefield):all(trigger[to]) moveTo(exile) && token(Zombie,Creature Zombie,2/2,black)
@@ -32438,7 +32506,7 @@ toughness=3
[card]
name=Nessian Wilds Ravager
abilities=flying
auto=ability$!choice name(Tribute 6) all(mystored) counter(1/1,6) _ choice name(May fight another target creature) may transforms((,newability[target(creature) dynamicability<!powerstrike eachother!>])) ueot opponent !$ opponent
auto=ability$!choice name(Tribute 6) all(mysource) counter(1/1,6) _ choice name(May fight another target creature) may transforms((,newability[target(creature) dynamicability<!powerstrike eachother!>])) ueot opponent !$ opponent
text=Tribute 6 (As this creature enters the battlefield, an opponent of your choice may put six +1/+1 counters on it.) -- When Nessian Wilds Ravager enters the battlefield, if tribute wasnt paid, you may have Nessian Wilds Ravager fight another target creature. (Each deals damage equal to its power to the other.)
mana={4}{G}{G}
type=Creature
@@ -33689,7 +33757,7 @@ toughness=4
[card]
name=Ogre Marauder
text=Whenever Ogre Marauder attacks, it gains "Ogre Marauder can't be blocked" until end of turn unless defending player sacrifices a creature.
auto=@combat(attacking) source(this):ability$!name(choose one) if type(creature|mybattlefield)~morethan~0 then choice sacrifice notatarget(creature|mybattlefield) _ choice all(mystored) unblockable ueot!$ opponent
auto=@combat(attacking) source(this):ability$!name(choose one) if type(creature|mybattlefield)~morethan~0 then choice sacrifice notatarget(creature|mybattlefield) _ choice all(mysource) unblockable ueot!$ opponent
mana={1}{B}{B}
type=Creature
subtype=Ogre Warrior
@@ -41468,6 +41536,17 @@ power=3
toughness=3
[/card]
[card]
name=Saw It Coming
abilities=foretell
target=*|stack
auto=fizzle
autohand={2}:name(Pay 2 and exile face-down) name(Pay 2 and exile face-down) foretell myturnonly
autoexile={1}{U} restriction{compare(canforetellcast)~morethan~0,type(*|stack)~morethan~0}:name(Cast with foretell) name(Cast with foretell) activate castcard(alternative)
text=Counter target spell. -- Foretell {1}{U} (During your turn, you may pay {2} and exile this card from your hand face down. Cast it on a later turn for its foretell cost.)
mana={1}{U}{U}
type=Instant
[/card]
[card]
name=Sawtusk Demolisher
abilities=trample,mutate
otherrestriction=type(creature[-human]|mybattlefield)~morethan~0
@@ -41999,7 +42078,7 @@ toughness=1
[/card]
[card]
name=Sea Gate, Reborn
auto=ability$!name(Choose one) choice name(Pay 3 life) life:-3 _ choice name(Tap) tap(noevent) all(mystored)!$ controller
auto=ability$!name(Choose one) choice name(Pay 3 life) life:-3 _ choice name(Tap) tap(noevent) all(mysource)!$ controller
auto={T}:add{U}
text=As Sea Gate, Reborn enters the battlefield, you may pay 3 life. If you don't, it enters the battlefield tapped. -- {T}: Add {U}.
type=Land
@@ -43085,7 +43164,7 @@ type=Sorcery
[/card]
[card]
name=Shatterskull, the Hammer Pass
auto=ability$!name(Choose one) choice name(Pay 3 life) life:-3 _ choice name(Tap) tap(noevent) all(mystored)!$ controller
auto=ability$!name(Choose one) choice name(Pay 3 life) life:-3 _ choice name(Tap) tap(noevent) all(mysource)!$ controller
auto={T}:add{R}
text=As Shatterskull, the Hammer Pass enters the battlefield, you may pay 3 life. If you don't, it enters the battlefield tapped. -- {T}: Add {R}.
type=Land
@@ -43532,7 +43611,7 @@ type=Instant
[/card]
[card]
name=Shrouded Serpent
auto=@combat(attacking) source(this):ability$!name(pay 4 mana) pay[[{4}]] donothing?unblockable all(mystored) ueot!$ opponent
auto=@combat(attacking) source(this):ability$!name(pay 4 mana) pay[[{4}]] donothing?unblockable all(mysource) ueot!$ opponent
text=Whenever Shrouded Serpent attacks, defending player may pay {4}. If he or she doesn't, Shrouded Serpent is unblockable this turn.
mana={4}{U}{U}{U}
type=Creature
@@ -48491,6 +48570,17 @@ type=Artifact
subtype=Equipment
[/card]
[card]
name=Sword of the Realms
auto={1}{W}:equip
auto=teach(creature) 2/0
auto=teach(creature) vigilance
auto=teach(creature) handdeath
text=Equipped creature gets +2/+0 and has vigilance. -- Whenever equipped creature dies, return it to its owners hand. -- Equip {1}{W}
mana={1}{W}
type=Legendary Artifact
subttype=Equipment
[/card]
[card]
name=Sword of Truth and Justice
auto={2}:equip
auto=teach(creature) protection from white
@@ -52212,7 +52302,7 @@ type=Sorcery
[/card]
[card]
name=Turntimber, Serpentine Wood
auto=ability$!name(Choose one) choice name(Pay 3 life) life:-3 _ choice name(Tap) tap(noevent) all(mystored)!$ controller
auto=ability$!name(Choose one) choice name(Pay 3 life) life:-3 _ choice name(Tap) tap(noevent) all(mysource)!$ controller
auto={T}:add{G}
text=As Turntimber, Serpentine Wood enters the battlefield, you may pay 3 life. If you don't, it enters the battlefield tapped. -- {T}: Add {G}.
type=Land

View File

@@ -12010,7 +12010,7 @@ type=Artifact
[/card]
[card]
name=Blood Crypt
auto=ability$!name(Choose one) choice name(Pay 2 life) life:-2 _ choice name(Tap) tap(noevent) all(mystored)!$ controller
auto=ability$!name(Choose one) choice name(Pay 2 life) life:-2 _ choice name(Tap) tap(noevent) all(mysource)!$ controller
text=({T}: Add {B} or {R} to your mana pool.) -- As Blood Crypt enters the battlefield, you may pay 2 life. If you don't, Blood Crypt enters the battlefield tapped.
type=Land
subtype=Swamp Mountain
@@ -14762,7 +14762,7 @@ type=Enchantment
[/card]
[card]
name=Breeding Pool
auto=ability$!name(Choose one) choice name(Pay 2 life) life:-2 _ choice name(Tap) tap(noevent) all(mystored)!$ controller
auto=ability$!name(Choose one) choice name(Pay 2 life) life:-2 _ choice name(Tap) tap(noevent) all(mysource)!$ controller
text=({T}: Add {G} or {U} to your mana pool.) -- As Breeding Pool enters the battlefield, you may pay 2 life. If you don't, Breeding Pool enters the battlefield tapped.
type=Land
subtype=Forest Island
@@ -15510,7 +15510,10 @@ type=Sorcery
[card]
name=Budoka Gardener
doublefaced=kamiflip
auto={T}:all(this) transforms((,newability[if type(land|mybattlefield)~morethan~9 then flip(Dokai, Weaver of Life)],newability[may moveto(mybattlefield) notatarget(land|myhand)],newability[@movedto(land|mybattlefield) restriction{type:land:mybattlefield~morethan~9}:flip(Dokai, Weaver of Life)]))
auto={T}:name(Put land in play) name(Put land in play) target(land|myhand) moveto(mybattlefield) && if type(land|mybattlefield)~morethan~9 then all(this) flip(Dokai, Weaver of Life) else all(this) counter(0/0.1.BudokaFlp)
auto={T}:name(Don't put land in play) name(Don't put land in play) if type(land|mybattlefield)~lessthan~10 then counter(0/0.1.BudokaFlp) else flip(Dokai, Weaver of Life) && counter(0/0.-1.BudokaFlp)
auto=@movedto(land|mybattlefield) restriction{compare(type:land:mybattlefield)~morethan~9}:this(counter{0/0.1.BudokaFlp}>0) flip(Dokai, Weaver of Life) && counter(0/0.-1.BudokaFlp)
auto=@each endofturn:this(counter{0/0.1.BudokaFlp}>0) counter(0/0.-1.BudokaFlp)
text={T}: You may put a land card from your hand onto the battlefield. If you control ten or more lands, flip Budoka Gardener.
mana={1}{G}
type=Creature
@@ -20101,7 +20104,7 @@ toughness=2
[/card]
[card]
name=Civilized Scholar
auto={T}:draw:1 && ability$! reject notatarget(*|myhand) and!( if cantargetcard(creature|*) then all(mystored) flip(Homicidal Brute) && all(mystored) untap )! !$ controller
auto={T}:draw:1 && ability$! reject notatarget(*|myhand) and!( if cantargetcard(creature|*) then all(mysource) flip(Homicidal Brute) && all(mysource) untap )! !$ controller
text={T}: Draw a card, then discard a card. If a creature card is discarded this way, untap Civilized Scholar, then transform it.
mana={2}{U}
type=Creature
@@ -25075,7 +25078,7 @@ toughness=5
[card]
name=Custody Battle
target=creature
auto=teach(creature) transforms((,newability[@each my upkeep:ability$!name(sacrifice or exchange) if type(land|mybattlefield)~morethan~0 then choice sacrifice notatarget(land|mybattlefield) _ choice name(exchange controller) moveto(opponentbattlefield) all(mystored)!$ controller]))
auto=teach(creature) transforms((,newability[@each my upkeep:ability$!name(sacrifice or exchange) if type(land|mybattlefield)~morethan~0 then choice sacrifice notatarget(land|mybattlefield) _ choice name(exchange controller) moveto(opponentbattlefield) all(mysource)!$ controller]))
text=Enchant creature -- Enchanted creature has "At the beginning of your upkeep, target opponent gains control of this creature unless you sacrifice a land."
mana={1}{R}
type=Enchantment
@@ -38814,7 +38817,7 @@ toughness=2
[card]
name=Fanatic of Xenagos
abilities=trample
auto=ability$!choice name(Tribute 1) all(mystored) counter(1/1) _ choice name(+1/+1 and Haste) all(mystored) haste ueot && all(mystored) 1/1 ueot!$ opponent
auto=ability$!choice name(Tribute 1) all(mysource) counter(1/1) _ choice name(+1/+1 and Haste) all(mysource) haste ueot && all(mysource) 1/1 ueot!$ opponent
text=Trample -- Tribute 1 (As this creature enters the battlefield, an opponent of your choice may place a +1/+1 counter on it.) -- When Fanatic of Xenagos enters the battlefield, if tribute wasn't paid, it gets +1/+1 and gains haste until end of turn.
mana={1}{R}{G}
type=Creature
@@ -38968,7 +38971,7 @@ toughness=3
[card]
name=Farrel's Mantle
target=creature
auto=@combat(notblocked) source(mytgt):all(mystored) fog && target(creature) damage:storedpower && damage:2
auto=@combat(notblocked) source(mytgt):all(mysource) fog && target(creature) damage:storedpower && damage:2
text=Enchant creature -- Whenever enchanted creature attacks and isn't blocked, its controller may have it deal damage equal to its power plus 2 to target creature. If that player does, the attacking creature assigns no combat damage this turn.
mana={2}{W}
type=Enchantment
@@ -48476,7 +48479,7 @@ toughness=5
[/card]
[card]
name=Godless Shrine
auto=ability$!name(Choose one) choice name(Pay 2 life) life:-2 _ choice name(Tap) tap(noevent) all(mystored)!$ controller
auto=ability$!name(Choose one) choice name(Pay 2 life) life:-2 _ choice name(Tap) tap(noevent) all(mysource)!$ controller
text=({T}: Add {W} or {B} to your mana pool.) -- As Godless Shrine enters the battlefield, you may pay 2 life. If you don't, Godless Shrine enters the battlefield tapped.
type=Land
subtype=Plains Swamp
@@ -51808,7 +51811,7 @@ type=Sorcery
[/card]
[card]
name=Hallowed Fountain
auto=ability$!name(Choose one) choice name(Pay 2 life) life:-2 _ choice name(Tap) tap(noevent) all(mystored)!$ controller
auto=ability$!name(Choose one) choice name(Pay 2 life) life:-2 _ choice name(Tap) tap(noevent) all(mysource)!$ controller
text=({T}: Add {W} or {U} to your mana pool.) -- As Hallowed Fountain enters the battlefield, you may pay 2 life. If you don't, Hallowed Fountain enters the battlefield tapped.
type=Land
subtype=Plains Island
@@ -65576,7 +65579,7 @@ toughness=1
name=Lathnu Hellion
abilities=haste
auto=alterenergy:2 controller
auto=@each my end:name(pay for effect) ability$!if compare(penergy)~morethan~1 then choice alterenergy:-2 controller _ choice sacrifice all(mystored)!$ controller
auto=@each my end:name(pay for effect) ability$!if compare(penergy)~morethan~1 then choice alterenergy:-2 controller _ choice sacrifice all(mysource)!$ controller
text=Haste -- When Lathnu Hellion enters the battlefield, you get {E}{E} (two energy counters). -- At the beginning of your end step, sacrifice Lathnu Hellion unless you pay {E}{E}.
mana={2}{R}
type=Creature
@@ -68719,7 +68722,7 @@ toughness=1
[/card]
[card]
name=Lumengrid Augur
auto={1}{t}:target(player) draw:1 && ability$! reject notatarget(*|myhand) and!( if cantargetcard(artifact|*) then untap all(mystored) )! !$ targetedplayer
auto={1}{t}:target(player) draw:1 && ability$! reject notatarget(*|myhand) and!( if cantargetcard(artifact|*) then untap all(mysource) )! !$ targetedplayer
text={1}, {T}: Target player draws a card, then discards a card. If that player discards an artifact card this way, untap Lumengrid Augur.
mana={3}{U}
type=Creature
@@ -76367,7 +76370,7 @@ subtype=Equipment
[/card]
[card]
name=Mortician Beetle
auto=@sacrificed(creature):name(counter +1/+1) ability$!may counter(1/1,1) all(mystored)!$ controller
auto=@sacrificed(creature):name(counter +1/+1) ability$!may counter(1/1,1) all(mysource)!$ controller
text=Whenever a player sacrifices a creature, you may put a +1/+1 counter on Mortician Beetle.
mana={B}
type=Creature
@@ -83041,7 +83044,7 @@ type=Instant
[card]
name=Ornitharch
abilities=flying
auto=ability$!choice name(Tribute 2) all(mystored) counter(1/1,2) _ choice name(Two 1/1 birds) token(Bird,Creature Bird,1/1,flying,white)*2 opponent !$ opponent
auto=ability$!choice name(Tribute 2) all(mysource) counter(1/1,2) _ choice name(Two 1/1 birds) token(Bird,Creature Bird,1/1,flying,white)*2 opponent !$ opponent
text=Tribute 2 (As this creature enters the battlefield, an opponent of your choice may place two +1/+1 counters on it.) -- When Ornitharch enters the battlefield, if tribute wasn't paid, put two 1/1 white Bird creature tokens with flying onto the battlefield.
mana={3}{W}{W}
type=Creature
@@ -83380,7 +83383,7 @@ type=Enchantment
[/card]
[card]
name=Overgrown Tomb
auto=ability$!name(Choose one) choice name(Pay 2 life) life:-2 _ choice name(Tap) tap(noevent) all(mystored)!$ controller
auto=ability$!name(Choose one) choice name(Pay 2 life) life:-2 _ choice name(Tap) tap(noevent) all(mysource)!$ controller
text=({T}: Add {B} or {G} to your mana pool.) -- As Overgrown Tomb enters the battlefield, you may pay 2 life. If you don't, Overgrown Tomb enters the battlefield tapped.
type=Land
subtype=Swamp Forest
@@ -86541,7 +86544,7 @@ toughness=3
name=Pillar Tombs of Aku
auto=@movedTo(other enchantment[world]|battlefield):sacrifice all(this)
auto=@each my upkeep restriction{type(creature|mybattlefield)~lessthan~2}:sacrifice && life:-5 controller
auto=@each opponent upkeep restriction{type(creature|opponentbattlefield)~morethan~0}:ability$!choice name(sacrifice creature) notatarget(creature|mybattlefield) sacrifice _ choice name(life loss and sacrifice Tombs) sacrifice all(mystored) && life:-5!$ opponent
auto=@each opponent upkeep restriction{type(creature|opponentbattlefield)~morethan~0}:ability$!choice name(sacrifice creature) notatarget(creature|mybattlefield) sacrifice _ choice name(life loss and sacrifice Tombs) sacrifice all(mysource) && life:-5!$ opponent
auto=@each opponent upkeep restriction{type(creature|opponentbattlefield)~lessthan~1}:sacrifice && life:-5 opponent
text=At the beginning of each player's upkeep, that player may sacrifice a creature. If that player doesn't, he or she loses 5 life and you sacrifice Pillar Tombs of Aku.
mana={2}{B}{B}
@@ -89705,7 +89708,7 @@ subtype=Aura
[/card]
[card]
name=Pursuit of Knowledge
auto=replacedraw ability$!name(study counter or draw) choice counter(0/0.1.Study) all(mystored) _ choice draw:1 noreplace!$ controller
auto=replacedraw ability$!name(study counter or draw) choice counter(0/0.1.Study) all(mysource) _ choice draw:1 noreplace!$ controller
auto={C(0/0,-3,Study)}{S}:draw:7 controller
text=If you would draw a card, you may put a study counter on Pursuit of Knowledge instead. -- Remove three study counters from Pursuit of Knowledge, Sacrifice Pursuit of Knowledge: Draw seven cards.
mana={3}{W}
@@ -97766,7 +97769,7 @@ type=Artifact
[/card]
[card]
name=Sacred Foundry
auto=ability$!name(Choose one) choice name(Pay 2 life) life:-2 _ choice name(Tap) tap(noevent) all(mystored)!$ controller
auto=ability$!name(Choose one) choice name(Pay 2 life) life:-2 _ choice name(Tap) tap(noevent) all(mysource)!$ controller
text=({T}: Add {R} or {W} to your mana pool.) -- As Sacred Foundry enters the battlefield, you may pay 2 life. If you don't, Sacred Foundry enters the battlefield tapped.
type=Land
subtype=Mountain Plains
@@ -104631,7 +104634,7 @@ subtype=Equipment
[/card]
[card]
name=Shyft
auto=@each my upkeep:may name(choose color/s) ability$!name(choose color/s) choice name(white) all(mystored) becomes(,white) forever _ choice name(blue) all(mystored) becomes(,blue) forever _ choice name(black) all(mystored) becomes(,black) forever _ choice name(red) all(mystored) becomes(,red) forever _ choice name(green) all(mystored) becomes(,green) forever _ choice name(white & blue) all(mystored) becomes(,white,blue) forever _ choice name(blue & black) all(mystored) becomes(,black,blue) forever _ choice name(black & red) all(mystored) becomes(,black,red) forever _ choice name(red & green) all(mystored) becomes(,red,green) forever _ choice name(green & white) all(mystored) becomes(,white,green) forever _ choice name(white & black) all(mystored) becomes(,white,black) forever _ choice name(blue & red) all(mystored) becomes(,red,blue) forever _ choice name(black & green) all(mystored) becomes(,black,green) forever _ choice name(red & white) all(mystored) becomes(,white,red) forever _ choice name(green & blue) all(mystored) becomes(,green,blue) forever _ choice name(green & white & blue) all(mystored) becomes(,green,white,blue) forever _ choice name(white & blue & black) all(mystored) becomes(,black,white,blue) forever _ choice name(blue & black & red) all(mystored) becomes(,black,red,blue) forever _ choice name(black & red & green) all(mystored) becomes(,green,black,red) forever _ choice name(red & green & white) all(mystored) becomes(,green,white,red) forever _ choice name(white & black & green) all(mystored) becomes(,green,white,black) forever _ choice name(blue & red & white) all(mystored) becomes(,red,white,blue) forever _ choice name(black & green & blue) all(mystored) becomes(,green,black,blue) forever _ choice name(red & white & black) all(mystored) becomes(,black,white,red) forever _ choice name(green & blue & red) all(mystored) becomes(,green,red,blue) forever _ choice name(green & red & blue & black) all(mystored) becomes(,green,red,blue,black) forever _ choice name(green & red & blue & white) all(mystored) becomes(,green,red,blue,white) forever _ choice name(white & blue & black & red) all(mystored) becomes(,white,red,blue,black) forever _ choice name(white & blue & black & green) all(mystored) becomes(,white,green,blue,black) forever _ choice name(all colors) all(mystored) becomes(,white,red,blue,black,green) forever!$ controller
auto=@each my upkeep:may name(choose color/s) ability$!name(choose color/s) choice name(white) all(mysource) becomes(,white) forever _ choice name(blue) all(mysource) becomes(,blue) forever _ choice name(black) all(mysource) becomes(,black) forever _ choice name(red) all(mysource) becomes(,red) forever _ choice name(green) all(mysource) becomes(,green) forever _ choice name(white & blue) all(mysource) becomes(,white,blue) forever _ choice name(blue & black) all(mysource) becomes(,black,blue) forever _ choice name(black & red) all(mysource) becomes(,black,red) forever _ choice name(red & green) all(mysource) becomes(,red,green) forever _ choice name(green & white) all(mysource) becomes(,white,green) forever _ choice name(white & black) all(mysource) becomes(,white,black) forever _ choice name(blue & red) all(mysource) becomes(,red,blue) forever _ choice name(black & green) all(mysource) becomes(,black,green) forever _ choice name(red & white) all(mysource) becomes(,white,red) forever _ choice name(green & blue) all(mysource) becomes(,green,blue) forever _ choice name(green & white & blue) all(mysource) becomes(,green,white,blue) forever _ choice name(white & blue & black) all(mysource) becomes(,black,white,blue) forever _ choice name(blue & black & red) all(mysource) becomes(,black,red,blue) forever _ choice name(black & red & green) all(mysource) becomes(,green,black,red) forever _ choice name(red & green & white) all(mysource) becomes(,green,white,red) forever _ choice name(white & black & green) all(mysource) becomes(,green,white,black) forever _ choice name(blue & red & white) all(mysource) becomes(,red,white,blue) forever _ choice name(black & green & blue) all(mysource) becomes(,green,black,blue) forever _ choice name(red & white & black) all(mysource) becomes(,black,white,red) forever _ choice name(green & blue & red) all(mysource) becomes(,green,red,blue) forever _ choice name(green & red & blue & black) all(mysource) becomes(,green,red,blue,black) forever _ choice name(green & red & blue & white) all(mysource) becomes(,green,red,blue,white) forever _ choice name(white & blue & black & red) all(mysource) becomes(,white,red,blue,black) forever _ choice name(white & blue & black & green) all(mysource) becomes(,white,green,blue,black) forever _ choice name(all colors) all(mysource) becomes(,white,red,blue,black,green) forever!$ controller
text=At the beginning of your upkeep, you may have Shyft become the color or colors of your choice. (This effect lasts indefinitely.)
mana={4}{U}
type=Creature
@@ -108287,7 +108290,7 @@ subtype=Aura
[/card]
[card]
name=Snake of the Golden Grove
auto=ability$!choice name(Tribute 3) all(mystored) counter(1/1,3) _ choice name(4 life opponent) life:4 opponent !$ opponent
auto=ability$!choice name(Tribute 3) all(mysource) counter(1/1,3) _ choice name(4 life opponent) life:4 opponent !$ opponent
text=Tribute 3 (As this creature enters the battlefield, an opponent of your choice may place three +1/+1 counters on it.) -- When Snake of the Golden Grove enters the battlefield, if tribute wasn't paid, you gain 4 life.
mana={4}{G}
type=Creature
@@ -108817,7 +108820,7 @@ type=Instant
[/card]
[card]
name=Solitary Confinement
auto=@each my upkeep :name(discard or sacrifice) ability$!if type(*|myhand)~morethan~0 then choice reject notatarget(*|myhand) _ choice sacrifice all(mystored)!$ controller
auto=@each my upkeep :name(discard or sacrifice) ability$!if type(*|myhand)~morethan~0 then choice reject notatarget(*|myhand) _ choice sacrifice all(mysource)!$ controller
auto=phasealter(remove,draw,controller)
abilities=playershroud
auto=preventalldamage to(controller)
@@ -112862,7 +112865,7 @@ toughness=5
[/card]
[card]
name=Steam Vents
auto=ability$!name(Choose one) choice name(Pay 2 life) life:-2 _ choice name(Tap) tap(noevent) all(mystored)!$ controller
auto=ability$!name(Choose one) choice name(Pay 2 life) life:-2 _ choice name(Tap) tap(noevent) all(mysource)!$ controller
text=({T}: Add {U} or {R} to your mana pool.) -- As Steam Vents enters the battlefield, you may pay 2 life. If you don't, Steam Vents enters the battlefield tapped.
type=Land
subtype=Island Mountain
@@ -113427,7 +113430,7 @@ toughness=3
[/card]
[card]
name=Stomping Ground
auto=ability$!name(Choose one) choice name(Pay 2 life) life:-2 _ choice name(Tap) tap(noevent) all(mystored)!$ controller
auto=ability$!name(Choose one) choice name(Pay 2 life) life:-2 _ choice name(Tap) tap(noevent) all(mysource)!$ controller
text=({T}: Add {R} or {G} to your mana pool.) -- As Stomping Ground enters the battlefield, you may pay 2 life. If you don't, Stomping Ground enters the battlefield tapped.
type=Land
subtype=Mountain Forest
@@ -118450,7 +118453,7 @@ toughness=2
[/card]
[card]
name=Temple Garden
auto=ability$!name(Choose one) choice name(Pay 2 life) life:-2 _ choice name(Tap) tap(noevent) all(mystored)!$ controller
auto=ability$!name(Choose one) choice name(Pay 2 life) life:-2 _ choice name(Tap) tap(noevent) all(mysource)!$ controller
text=({T}: Add {G} or {W} to your mana pool.) -- As Temple Garden enters the battlefield, you may pay 2 life. If you don't, Temple Garden enters the battlefield tapped.
type=Land
subtype=Forest Plains
@@ -120598,7 +120601,7 @@ toughness=3
name=Thraximundar
abilities=haste
auto=@combat(attacking) source(this):ability$!name(sacrifice) notatarget(creature|mybattlefield) sacrifice!$ opponent
auto=@sacrificed(creature):name(counter +1/+1) ability$!may counter(1/1,1) all(mystored)!$ controller
auto=@sacrificed(creature):name(counter +1/+1) ability$!may counter(1/1,1) all(mysource)!$ controller
text=Haste -- Whenever Thraximundar attacks, defending player sacrifices a creature. -- Whenever a player sacrifices a creature, you may put a +1/+1 counter on Thraximundar.
mana={4}{U}{B}{R}
type=Legendary Creature
@@ -120869,7 +120872,7 @@ type=Artifact
[card]
name=Thunder Brute
abilities=trample
auto=ability$!choice name(Tribute 3) all(mystored) counter(1/1,3) _ choice name(Haste) all(mystored) haste ueot!$ opponent
auto=ability$!choice name(Tribute 3) all(mysource) counter(1/1,3) _ choice name(Haste) all(mysource) haste ueot!$ opponent
text=Trample -- Tribute 3 (As this creature enters the battlefield, an opponent of your choice may place three +1/+1 counters on it.) -- When Thunder Brute enters the battlefield, if tribute wasn't paid, it gains haste until end of turn.
mana={4}{R}{R}
type=Creature
@@ -131305,7 +131308,7 @@ type=Sorcery
[/card]
[card]
name=Wand of Denial
auto={t}:target(player) reveal:1 optionone name(Get Creature) target(<upto:1>*|reveal) transforms((,newability[pay[[{L:2}]] name(Pay Life) moveto(ownergraveyard) ])) forever optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerlibrary) optiontwoend revealend
auto={t}:target(player) reveal:1 optionone name(Look top card) target(<upto:1>*|reveal) transforms((,newability[pay[[{L:2}]] name(Pay Life) moveto(ownergraveyard) ])) forever optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerlibrary) optiontwoend revealend
text={T}: Look at the top card of target player's library. If it's a nonland card, you may pay 2 life. If you do, put it into that player's graveyard.
mana={2}
type=Artifact
@@ -132241,7 +132244,7 @@ type=Instant
[/card]
[card]
name=Watery Grave
auto=ability$!name(Choose one) choice name(Pay 2 life) life:-2 _ choice name(Tap) tap(noevent) all(mystored)!$ controller
auto=ability$!name(Choose one) choice name(Pay 2 life) life:-2 _ choice name(Tap) tap(noevent) all(mysource)!$ controller
text=({T}: Add {U} or {B} to your mana pool.) -- As Watery Grave enters the battlefield, you may pay 2 life. If you don't, Watery Grave enters the battlefield tapped.
type=Land
subtype=Island Swamp