Added some new primitives from MOM set, fixed some primitives, added new keyword "hasconvoke" to target spells which have convoke cost.

This commit is contained in:
Vittorio Alfieri
2023-05-19 20:43:26 +02:00
parent 3bd3933c66
commit 0e0b3a78fe
7 changed files with 450 additions and 4 deletions

View File

@@ -845,6 +845,18 @@ power=3
toughness=3
[/card]
[card]
name=Aetherwing, Golden-Scale Flagship
abilities=flying
anyzone=type:artifact:myBattlefield/4 cdaactive
auto={crew(other creature[power>=1]|myBattlefield)}:name(crew 1 [1 creature]) becomes(Artifact Creature) ueot restriction{type(other creature[-tapped;power>=1]|mybattlefield)~morethan~0,compare(crewtotalpower)~morethan~0}
text=Flying -- Aetherwing, Golden-Scale Flagship's power is equal to the number of artifacts you control. -- Crew 1 (Tap any number of creatures you control with total power 1 or more: This Vehicle becomes an artifact creature until end of turn.)
coor=blue,red
type=Legendary Artifact
subtype=Vehicle
power=*
toughness=4
[/card]
[card]
name=Aeve, Progenitor Ooze
auto=foreach(other ooze|mybattlefield) counter(1/1)
auto=if cantargetcard(*[-token]) then thisforeach(variable{pstormcount}>=2) clone options(nolegend)
@@ -4719,7 +4731,8 @@ toughness=1
[card]
name=Attentive Skywarden
abilities=flying
auto=combatdamaged(player) from(this):may name(Transform incubator) target(incubator|mybattlefield) transforms((,newability[name(Becomes creature) becomes(Creature Phyrexian) forever])) forever
auto=@combatdamaged(player) from(this):may name(Transform incubator) target(incubator|myBattlefield) flip(backside)
auto=@combatdamaged(battle) from(this):may name(Transform incubator) target(incubator|myBattlefield) flip(backside)
text=Flying -- Whenever Attentive Skywarden deals combat damage to a player or battle, transform up to one target Incubator token you control.
mana={2}{W}
type=Creature
@@ -9215,6 +9228,17 @@ power=4
toughness=4
[/card]
[card]
name=Bloomwielder Dryads
auto=_WARD_(2)
auto=@each my endofturn:name(Put 1/1 counter) target(creature|myBattlefield) counter(1/1)
text=Ward {2} (Whenever this creature becomes the target of a spell or ability an opponent controls, counter it unless that player pays {2}.) -- At the beginning of your end step, put a +1/+1 counter on target creature you control.
color=green,white
type=Creature
subtype=Dryad
power=3
toughness=3
[/card]
[card]
name=Blossom Dryad
auto={T}:untap target(land)
text={T}: Untap target land.
@@ -9986,6 +10010,18 @@ type=Artifact
subtype=Equipment
[/card]
[card]
name=Borborygmos and Fblthp
auto=name(Draw and discard lands) draw:1 && transforms((,newability[if type(land|myhand)~morethan~0 then choice name(Don't discard any land) name(Don't discard any land) donothing],newability[if type(land|myhand)~morethan~0 then choice name(Discard 1 land) name(Discard 1 land) target(land|myhand) reject and!( name(Damage creature) target(creature|battlefield) damage:2 )!],newability[if type(land|myhand)~morethan~1 then choice name(Discard 2 lands) name(Discard 2 lands) target(<2>land|myhand) reject and!( name(Damage creature) target(creature|battlefield) damage:4 )!],newability[if type(land|myhand)~morethan~2 then choice name(Discard 3 lands) name(Discard 3 lands) target(<3>land|myhand) reject and!( name(Damage creature) target(creature|battlefield) damage:6 )!],newability[if type(land|myhand)~morethan~3 then choice name(Discard 4 lands) name(Discard 4 lands) target(<4>land|myhand) reject and!( name(Damage creature) target(creature|battlefield) damage:8 )!],newability[if type(land|myhand)~morethan~4 then choice name(Discard 5 lands) name(Discard 5 lands) target(<5>land|myhand) reject and!( name(Damage creature) target(creature|battlefield) damage:10 )!],newability[if type(land|myhand)~morethan~5 then choice name(Discard 6 lands) name(Discard 6 lands) target(<6>land|myhand) reject and!( name(Damage creature) target(creature|battlefield) damage:12 )!],newability[if type(land|myhand)~morethan~6 then choice name(Discard 7 lands) name(Discard 7 lands) target(<7>land|myhand) reject and!( name(Damage creature) target(creature|battlefield) damage:14 )!],newability[if type(land|myhand)~morethan~7 then choice name(Discard 8 lands) name(Discard 8 lands) target(<8>land|myhand) reject and!( name(Damage creature) target(creature|battlefield) damage:16 )!],newability[if type(land|myhand)~morethan~8 then choice name(Discard 9 lands) name(Discard 9 lands) target(<9>land|myhand) reject and!( name(Damage creature) target(creature|battlefield) damage:18 )!],newability[if type(land|myhand)~morethan~9 then choice name(Discard 10 lands) name(Discard 10 lands) target(<10>land|myhand) reject and!( name(Damage creature) target(creature|battlefield) damage:20 )!],newability[if type(land|myhand)~morethan~10 then choice name(Discard 11 lands) name(Discard 11 lands) target(<11>land|myhand) reject and!( name(Damage creature) target(creature|battlefield) damage:22 )!],newability[if type(land|myhand)~morethan~11 then choice name(Discard 12 lands) name(Discard 12 lands) target(<12>land|myhand) reject and!( name(Damage creature) target(creature|battlefield) damage:24 )!],newability[if type(land|myhand)~morethan~12 then choice name(Discard 13 lands) name(Discard 13 lands) target(<13>land|myhand) reject and!( name(Damage creature) target(creature|battlefield) damage:26 )!],newability[if type(land|myhand)~morethan~13 then choice name(Discard 14 lands) name(Discard 14 lands) target(<14>land|myhand) reject and!( name(Damage creature) target(creature|battlefield) damage:28 )!],newability[if type(land|myhand)~morethan~14 then choice name(Discard 15 lands) name(Discard 15 lands) target(<15>land|myhand) reject and!( name(Damage creature) target(creature|battlefield) damage:30 )!],newability[if type(land|myhand)~morethan~15 then choice name(Discard 16 lands) name(Discard 16 lands) target(<16>land|myhand) reject and!( name(Damage creature) target(creature|battlefield) damage:32 )!],newability[if type(land|myhand)~morethan~16 then choice name(Discard 17 lands) name(Discard 17 lands) target(<17>land|myhand) reject and!( name(Damage creature) target(creature|battlefield) damage:34 )!],newability[if type(land|myhand)~morethan~17 then choice name(Discard 18 lands) name(Discard 18 lands) target(<18>land|myhand) reject and!( name(Damage creature) target(creature|battlefield) damage:36 )!],newability[if type(land|myhand)~morethan~18 then choice name(Discard 19 lands) name(Discard 19 lands) target(<19>land|myhand) reject and!( name(Damage creature) target(creature|battlefield) damage:38 )!],newability[if type(land|myhand)~morethan~19 then choice name(Discard 20 lands) name(Discard 20 lands) target(<20>land|myhand) reject and!( name(Damage creature) target(creature|battlefield) damage:40 )!])) oneshot
auto=_ATTACKING_name(Draw and discard lands) draw:1 && transforms((,newability[if type(land|myhand)~morethan~0 then name(Don't discard any land) choice name(Don't discard any land) donothing],newability[if type(land|myhand)~morethan~0 then choice name(Discard 1 land) name(Discard 1 land) target(land|myhand) reject and!( name(Damage creature) target(creature|battlefield) damage:2 )!],newability[if type(land|myhand)~morethan~1 then choice name(Discard 2 lands) name(Discard 2 lands) target(<2>land|myhand) reject and!( name(Damage creature) target(creature|battlefield) damage:4 )!],newability[if type(land|myhand)~morethan~2 then choice name(Discard 3 lands) name(Discard 3 lands) target(<3>land|myhand) reject and!( name(Damage creature) target(creature|battlefield) damage:6 )!],newability[if type(land|myhand)~morethan~3 then choice name(Discard 4 lands) name(Discard 4 lands) target(<4>land|myhand) reject and!( name(Damage creature) target(creature|battlefield) damage:8 )!],newability[if type(land|myhand)~morethan~4 then choice name(Discard 5 lands) name(Discard 5 lands) target(<5>land|myhand) reject and!( name(Damage creature) target(creature|battlefield) damage:10 )!],newability[if type(land|myhand)~morethan~5 then choice name(Discard 6 lands) name(Discard 6 lands) target(<6>land|myhand) reject and!( name(Damage creature) target(creature|battlefield) damage:12 )!],newability[if type(land|myhand)~morethan~6 then choice name(Discard 7 lands) name(Discard 7 lands) target(<7>land|myhand) reject and!( name(Damage creature) target(creature|battlefield) damage:14 )!],newability[if type(land|myhand)~morethan~7 then choice name(Discard 8 lands) name(Discard 8 lands) target(<8>land|myhand) reject and!( name(Damage creature) target(creature|battlefield) damage:16 )!],newability[if type(land|myhand)~morethan~8 then choice name(Discard 9 lands) name(Discard 9 lands) target(<9>land|myhand) reject and!( name(Damage creature) target(creature|battlefield) damage:18 )!],newability[if type(land|myhand)~morethan~9 then choice name(Discard 10 lands) name(Discard 10 lands) target(<10>land|myhand) reject and!( name(Damage creature) target(creature|battlefield) damage:20 )!],newability[if type(land|myhand)~morethan~10 then choice name(Discard 11 lands) name(Discard 11 lands) target(<11>land|myhand) reject and!( name(Damage creature) target(creature|battlefield) damage:22 )!],newability[if type(land|myhand)~morethan~11 then choice name(Discard 12 lands) name(Discard 12 lands) target(<12>land|myhand) reject and!( name(Damage creature) target(creature|battlefield) damage:24 )!],newability[if type(land|myhand)~morethan~12 then choice name(Discard 13 lands) name(Discard 13 lands) target(<13>land|myhand) reject and!( name(Damage creature) target(creature|battlefield) damage:26 )!],newability[if type(land|myhand)~morethan~13 then choice name(Discard 14 lands) name(Discard 14 lands) target(<14>land|myhand) reject and!( name(Damage creature) target(creature|battlefield) damage:28 )!],newability[if type(land|myhand)~morethan~14 then choice name(Discard 15 lands) name(Discard 15 lands) target(<15>land|myhand) reject and!( name(Damage creature) target(creature|battlefield) damage:30 )!],newability[if type(land|myhand)~morethan~15 then choice name(Discard 16 lands) name(Discard 16 lands) target(<16>land|myhand) reject and!( name(Damage creature) target(creature|battlefield) damage:32 )!],newability[if type(land|myhand)~morethan~16 then choice name(Discard 17 lands) name(Discard 17 lands) target(<17>land|myhand) reject and!( name(Damage creature) target(creature|battlefield) damage:34 )!],newability[if type(land|myhand)~morethan~17 then choice name(Discard 18 lands) name(Discard 18 lands) target(<18>land|myhand) reject and!( name(Damage creature) target(creature|battlefield) damage:36 )!],newability[if type(land|myhand)~morethan~18 then choice name(Discard 19 lands) name(Discard 19 lands) target(<19>land|myhand) reject and!( name(Damage creature) target(creature|battlefield) damage:38 )!],newability[if type(land|myhand)~morethan~19 then choice name(Discard 20 lands) name(Discard 20 lands) target(<20>land|myhand) reject and!( name(Damage creature) target(creature|battlefield) damage:40 )!])) oneshot
auto={1}{U}:name(Put third from top) placefromthetop(3)
text=Whenever Borborygmos and Fblthp enters the battlefield or attacks, draw a card, then you may discard any number of land cards. When you discard one or more cards this way, Borborygmos and Fblthp deals twice that much damage to target creature. -- {1}{U}: Put Borborygmos and Fblthp into its owner's library third from the top.
mana={2}{G}{U}{R}
type=Legendary Creature
subtype=Cyclops Homunculus
power=6
toughness=5
[/card]
[card]
name=Boreal Elemental
abilities=flying
auto=@targeted(this) from(*[instant;sorcery]|opponentzones):choice name(This spell costs 2 more) name(This spell costs 2 more) target(*[instant;sorcery]|opponentzones) transforms((,newability[pay[[{2}]] name(pay 2 mana) donothing?fizzle])) oneshot
@@ -22580,6 +22616,19 @@ mana={X}{U}{U}{U}
type=Instant
[/card]
[card]
name=Djeru and Hazoret
aicode=activate transforms((,newability[if type(creature[legendary&zpos<=6]|myLibrary)~morethan~0 then target(creature[legendary&zpos<=6]|myLibrary) moveTo(myexile) and!( transforms((,newability[canplayfromexile],newability[zerocast],newability[all(other *[zpos<=6]|mylibrary) moveto(myreveal) and!( bottomoflibrary )!])) ueot )!],newability[if type(creature[legendary&zpos<=6]|myLibrary)~equalto~0 then all(*[zpos<=6]|mylibrary) moveto(myreveal) and!( bottomoflibrary )! ])) oneshot
auto=_ATTACKING_name(Look top 6 cards) reveal:6 optionone name(Exile legendary creature) target(<upto:1>creature[legendary]|reveal) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[zerocast])) ueot )! optiononeend optiontwo name(put on bottom) target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend
auto=aslongas(*|myhand) vigilance <2
auto=aslongas(*|myhand) haste <2
text=As long as you have one or fewer cards in hand, Djeru and Hazoret has vigilance and haste. -- Whenever Djeru and Hazoret attacks, look at the top six cards of your library. You may exile a legendary creature card from among them. Put the rest on the bottom of your library in a random order. Until end of turn, you may cast the exiled card without paying its mana cost.
mana={2}{R}{R}{W}
type=Legendary Creature
subtype=Human God
power=5
toughness=4
[/card]
[card]
name=Djeru's Renunciation
abilities=cycling
target=<upto:2>creature
@@ -23548,6 +23597,18 @@ power=3
toughness=2
[/card]
[card]
name=Drana and Linvala
#MISSING: has all activated abilities
abilities=flying,vigilance
auto=lord(creature|opponentBattlefield) noactivatedability
text=Flying, vigilance -- Activated abilities of creatures your opponents control can't be activated. -- Drana and Linvala has all activated abilities of all creatures your opponents control. You may spend mana as though it were mana of any color to activate those abilities.
mana={1}{W}{W}{B}
type=Legendary Creature
subtype=Vampire Angel
power=3
toughness=4
[/card]
[card]
name=Drana, the Last Bloodchief
abilities=flying
auto=_ATTACKING_ability$!name(Choose a non-legendary creature) notAtarget(creature[-legendary]|opponentGraveyard) moveTo(opponentBattlefield) and!( counter(1/1) and!(becomes(vampire) forever)! )! !$ opponent
@@ -27158,6 +27219,35 @@ power=4
toughness=2
[/card]
[card]
name=Etali, Primal Conqueror
abilities=trample
backside=Etali, Primal Sickness
restriction=compare(isflipped)~equalto~0
anyzone={0}:doubleside(backside)
auto=ability$!name(Exile top cards) all(*[zpos<=findfirsttypenonland]|mylibrary) moveto(myexile) and!( if cantargetcard(*[-land]|*) then transforms((,newability[choice name(Cast spell) activate castcard(normal)],newability[choice name(Don't cast spell) donothing])) oneshot )!!$ opponent
auto=name(Exile top cards) all(*[zpos<=findfirsttypenonland]|mylibrary) moveto(myexile) and!( if cantargetcard(*[-land]|*) then transforms((,newability[choice name(Cast spell) activate castcard(normal)],newability[choice name(Don't cast spell) donothing])) oneshot )!
auto={9}{G}:name(Pay G and transform Etali) flip(backside) asSorcery
auto={9}{L:2}:name(Pay life and transform Etali) flip(backside) asSorcery
text=Trample -- When Etali, Primal Conqueror enters the battlefield, each player exiles cards from the top of their library until they exile a nonland card. You may cast any number of spells from among the nonland cards exiled this way without paying their mana costs. -- {9}{G/P}: Transform Etali. Activate only as a sorcery.
mana={5}{R}{R}
type=Legendary Creature
subtype=Elder Dinosaur
power=7
toughness=7
[/card]
[card]
name=Etali, Primal Sickness
abilities=indestructible,trample
auto=@combatdamagefoeof(player) from(this):name(Infect player) thisforeach(variable{thatmuch}>0) alterpoison:1 opponent
auto=@combatdamageof(player) from(this):name(Infect player) thisforeach(variable{thatmuch}>0) alterpoison:1 controller
text=Trample, indestructible -- Whenever Etali, Primal Sickness deals combat damage to a player, they get that many poison counters. (A player with ten or more poison counters loses the game.)
color=red,green
type=Legendary Creature
subtype=Phyrexian Elder Dinosaur
power=11
toughness=11
[/card]
[card]
name=Etali, Primal Storm
auto=_ATTACKING_Reveal:1 revealzone(mylibrary) revealuntil(*|mylibrary) optionone choice name(Cast Card) target(*[-land]|reveal) moveto(myExile) and!(activate castcard(putinplay))! optiononeend optiontwo target(<1>*|reveal) moveto(myExile) optiontwoend revealend
auto=_ATTACKING_Reveal:1 revealzone(opponentlibrary) revealuntil(*|opponentlibrary) optionone choice name(Cast Card) target(*[-land]|reveal) moveto(opponentExile) and!(activate castcard(putinplay))! optiononeend optiontwo target(<1>*|reveal) moveto(opponentExile) optiontwoend revealend
@@ -32940,6 +33030,19 @@ power=7
toughness=5
[/card]
[card]
name=Gargantuan Slabhorn
abilities=trample
auto=_WARD_(2)
auto=lord(other *[isflipped]|myBattlefield) trample
auto=@targeted(other *[isflipped]|myBattlefield) from(*|opponentzones):choice name(This spell costs 2 more) name(This spell costs 2 more) target(*|opponentzones) transforms((,newability[pay[[{2}]] name(pay 2 mana) donothing?fizzle])) oneshot
text=Trample, ward {2} -- Other transformed permanents you control have trample and ward {2}.
color=green,blue
type=Creature
subtype=Beast
power=4
toughness=4
[/card]
[card]
name=Gargos, Vicious Watcher
abilities=vigilance
auto=lord(hydra|mycastingzone) altercost(colorless,-4)
@@ -33605,6 +33708,17 @@ power=3
toughness=4
[/card]
[card]
name=Ghalta and Mavren
abilities=trample
auto=@each my blockers:name(Choose one) transforms((,newability[choice name(Create Dinosaur) token(Dinosaur^Creature Dinosaur^power:highest:creature[attacking]:mybattlefield/power:highest:creature[attacking]:mybattlefield^trample^battleready)],newability[choice name(Create vampires) token(Vampire^Creature Vampire^1/1^white^lifelink)*type:creature[attacking]:myBattlefield])) oneshot
text=Trample -- Whenever you attack, choose one -- Create a tapped and attacking X/X green Dinosaur creature token with trample, where X is the greatest power among other attacking creatures. -- Create X 1/1 white Vampire creature tokens with lifelink, where X is the number of other attacking creatures.
mana={3}{G}{G}{W}{W}
type=Legendary Creature
subtype=Dinosaur Vampire
power=12
toughness=12
[/card]
[card]
name=Ghalta, Primal Hunger
abilities=trample
anyzone=thisforeach(variable{pwrtotalinplay}>0) changecost(colorless:-1) forcedalive
@@ -34738,6 +34852,16 @@ power=0
toughness=0
[/card]
[card]
name=Glissa, Herald of Predation
auto=@each my combatbegins:name(Choose one) transforms((,newability[choice name(Create Incubate 2 twice) thisforeach(variable{2}) activate castcard(noevent costx!:2:! named!:Incubator:!)],newability[choice name(Transform all incubator) all(incubator|myBattlefield) flip(backside)],newability[choice name(All phyrexians gain first strike and deathtouch) all(phyrexian|myBattlefield) transforms((,newability[first strike],newability[deathtouch])) ueot])) oneshot
text=At the beginning of combat on your turn, choose one -- Incubate 2 twice. (To incubate 2, create an Incubator token with two +1/+1 counters on it and "{2}: Transform this artifact." It transforms into a 0/0 Phyrexian artifact creature.) -- Transform all Incubator tokens you control. -- Phyrexians you control gain first strike and deathtouch until end of turn.
mana={3}{B}{G}
type=Legendary Creature
subtype=Phyrexian Zombie Elf
power=3
toughness=5
[/card]
[card]
name=Glissa Sunseeker
abilities=first strike
auto={T}:name(destroy artifact) name(destroy artifact) destroy target(artifact[manacost=mypoolcount])
@@ -38323,6 +38447,20 @@ text=Cumulative upkeep {1} (At the beginning of your upkeep, put an age counter
type=Land
[/card]
[card]
name=Halo Forager
abilities=flying
auto=if type(instant[manacost=fullpaid]|mygraveyard)~morethan~0 then choice name(Don't cast spell) name(Don't cast spell) name(Don't cast spell) donothing
auto=if type(instant[manacost=fullpaid]|mygraveyard)~equalto~0 then if type(sorcery[manacost=fullpaid]|mygraveyard)~morethan~0 then choice name(Don't cast spell) name(Don't cast spell) name(Don't cast spell) donothing
auto=if type(instant[manacost=fullpaid]|mygraveyard)~morethan~0 then choice name(Cast instant) name(Cast instant) target(instant[manacost=fullpaid]|mygraveyard) activate castcard(normal) and!( transforms((,newability[gainedexiledeath])) forever )!
auto=if type(sorcery[manacost=fullpaid]|mygraveyard)~morethan~0 then choice name(Cast sorcery) name(Cast sorcery) target(sorcery[manacost=fullpaid]|mygraveyard) activate castcard(normal) and!( transforms((,newability[gainedexiledeath])) forever )!
text=Flying -- When Halo Forager enters the battlefield, you may pay {X}. When you do, you may cast target instant or sorcery card with mana value X from a graveyard without paying its mana cost. If that spell would be put into a graveyard, exile it instead.
mana={X}{1}{U}{B}
type=Creature
subtype=Faerie Rogue
power=3
toughness=1
[/card]
[card]
name=Halo Fountain
auto={W}{T}{Q(creature[tapped]|mybattlefield)}:create(citizen:creature citizen:1/1:green,white)
auto={W}{W}{T}{Q(creature[tapped]|mybattlefield)}{Q(creature[tapped]|mybattlefield)}:draw:1
@@ -40157,6 +40295,18 @@ power=4
toughness=5
[/card]
[card]
name=Hidetsugu and Kairi
abilities=flying
auto=draw:3 && transforms((,newability[name(Put on library) target(<2>*|myhand) moveto(mylibrary)])) oneshot
auto=_DIES_name(Exile top card) all(*[zpos=1]|mylibrary) moveto(myexile) and!( transforms((,newability[life:-manacost opponent],newability[if cantargetcard(*[instant;sorcery]|*) then may name(Cast card) activate castcard(normal)])) ueot )!
text=Flying -- When Hidetsugu and Kairi enters the battlefield, draw three cards, then put two cards from your hand on top of your library in any order. -- When Hidetsugu and Kairi dies, exile the top card of your library. Target opponent loses life equal to its mana value. If it's an instant or sorcery card, you may cast it without paying its mana cost.
mana={2}{U}{U}{B}
type=Legendary Creature
subtype=Ogre Demon Dragon
power=5
toughness=4
[/card]
[card]
name=Hieroglyphic Illumination
abilities=cycling
auto=draw:2 controller
@@ -40668,6 +40818,15 @@ type=Artifact
subtype=Equipment
[/card]
[card]
name=Holy Frazzle-Cannon
auto={1}:equip
auto=teach(creature) transforms((,newability[_ATTACKING_name(Put 1/1 counter) all(other *[creature;share!types!]|myBattlefield) counter(1/1)]))
text=Whenever equipped creature attacks, put a +1/+1 counter on that creature and each other creature you control that shares a creature type with it. -- Equip {1}
color=black,white
type=Artifact
subtype=Equipment
[/card]
[card]
name=Homarid Explorer
auto=target(player) deplete:4
text=When Homarid Explorer enters the battlefield, target player mills four cards.
@@ -44349,6 +44508,20 @@ type=Battle
subtype=Siege
[/card]
[card]
name=Invasion of Kaladesh
backside=Aetherwing, Golden-Scale Flagship
restriction=compare(isflipped)~equalto~0
anyzone={0}:doubleside(backside)
auto=counter(0/0.4.Defense)
auto=ability$!name(Create a thopter) _THOPTERTOKEN_ !$ controller
auto=moveto(opponentbattlefield)
auto=@defeated(this):name(Exile and transforms) name(Exile and transforms) moveto(ownerexile) and!( flip(backside) forcetype(Legendary Artifact Vehicle) )!
text=(As a Siege enters, choose an opponent to protect it. You and others can attack it. When it's defeated, exile it, then cast it transformed.) -- When Invasion of Kaladesh enters the battlefield, create a 1/1 colorless Thopter artifact creature token with flying.
mana={U}{R}
type=Battle
subtype=Siege
[/card]
[card]
name=Invasion of Kamigawa
backside=Rooftop Saboteurs
restriction=compare(isflipped)~equalto~0
@@ -44391,6 +44564,34 @@ type=Battle
subtype=Siege
[/card]
[card]
name=Invasion of Kylem
backside=Valor's Reach Tag Team
restriction=compare(isflipped)~equalto~0
anyzone={0}:doubleside(backside)
auto=counter(0/0.5.Defense)
auto=ability$!may name(Creatures get 2/0) target(<upto:2>creature|battlefield) transforms((,newability[2/0],newability[vigilance],newability[haste])) ueot !$ controller
auto=moveto(opponentbattlefield)
auto=@defeated(this):name(Exile and transforms) name(Exile and transforms) moveto(ownerexile) and!( moveto(ownergraveyard) and!( transforms((,newability[activate castcard(copied named!:valor's reach tag team:!)])) oneshot )! )!
text=(As a Siege enters, choose an opponent to protect it. You and others can attack it. When it's defeated, exile it, then cast it transformed.) -- When Invasion of Kylem enters the battlefield, up to two target creatures each get +2/+0 and gain vigilance and haste until end of turn.
mana={2}{R}{W}
type=Battle
subtype=Siege
[/card]
[card]
name=Invasion of Lorwyn
backside=Winnowing Forces
restriction=compare(isflipped)~equalto~0
anyzone={0}:doubleside(backside)
auto=counter(0/0.5.Defense)
auto=ability$!name(Destroy creature) target(creature[-elf&power<=type:land:mybattlefield]|opponentBattlefield) destroy!$ controller
auto=moveto(opponentbattlefield)
auto=@defeated(this):name(Exile and transforms) name(Exile and transforms) moveto(ownerexile) and!( flip(backside) forcetype(Creature Elf Warrior) )!
text=(As a Siege enters, choose an opponent to protect it. You and others can attack it. When it's defeated, exile it, then cast it transformed.) -- When Invasion of Lorwyn enters the battlefield, destroy target non-Elf creature an opponent controls with power X or less, where X is the number of lands you control.
mana={4}{B}{G}
type=Battle
subtype=Siege
[/card]
[card]
name=Invasion of Mercadia
backside=Kyren Flamewright
restriction=compare(isflipped)~equalto~0
@@ -44405,6 +44606,20 @@ type=Battle
subtype=Siege
[/card]
[card]
name=Invasion of Moag
backside=Bloomwielder Dryads
restriction=compare(isflipped)~equalto~0
anyzone={0}:doubleside(backside)
auto=counter(0/0.5.Defense)
auto=ability$!name(Put 1/1 counter) all(creature|myBattlefield) counter(1/1)!$ controller
auto=moveto(opponentbattlefield)
auto=@defeated(this):name(Exile and transforms) name(Exile and transforms) moveto(ownerexile) and!( flip(backside) forcetype(Creature Dryad) )!
text=(As a Siege enters, choose an opponent to protect it. You and others can attack it. When it's defeated, exile it, then cast it transformed.) -- When Invasion of Moag enters the battlefield, put a +1/+1 counter on each creature you control.
mana={2}{G}{W}
type=Battle
subtype=Siege
[/card]
[card]
name=Invasion of Muraganda
backside=Primordial Plasm
restriction=compare(isflipped)~equalto~0
@@ -44419,6 +44634,49 @@ type=Battle
subtype=Siege
[/card]
[card]
name=Invasion of New Capenna
backside=Holy Frazzle-Cannon
restriction=compare(isflipped)~equalto~0
anyzone={0}:doubleside(backside)
auto=this(variable{isflipped}<1) counter(0/0.4.Defense)
auto=this(variable{isflipped}<1) ability$!may name(Sacrifice artifact or creature) target(*[artifact;creature]|mybattlefield) sacrifice and!( name(Exile creature or artifact) target(*[artifact;creature]|opponentbattlefield) moveto(ownerexile) )! !$ controller
auto=this(variable{isflipped}<1) moveto(opponentbattlefield)
auto=@defeated(this):name(Exile and transforms) name(Exile and transforms) moveto(ownerexile) and!( flip(backside) forcetype(Artifact) )!
text=(As a Siege enters, choose an opponent to protect it. You and others can attack it. When it's defeated, exile it, then cast it transformed.) -- When Invasion of New Capenna enters the battlefield, you may sacrifice an artifact or creature. When you do, exile target artifact or creature an opponent controls.
mana={W}{B}
type=Battle
subtype=Siege
[/card]
[card]
name=Invasion of New Phyrexia
backside=Teferi Akosa of Zhalfir
restriction=compare(isflipped)~equalto~0
anyzone={0}:doubleside(backside)
auto=counter(0/0.6.Defense)
auto=thisforeach(variable{fullpaid}>0) ability$!name(Create knight) token(Knight,Creature Knight,2/2,white,blue,vigilance)!$ controller
auto=moveto(opponentbattlefield)
auto=@defeated(this):name(Exile and transforms) name(Exile and transforms) moveto(ownerexile) and!( flip(backside) forcetype(Legendary Planeswalker Teferi) )!
text=(As a Siege enters, choose an opponent to protect it. You and others can attack it. When it's defeated, exile it, then cast it transformed.) -- When Invasion of New Phyrexia enters the battlefield, create X 2/2 white and blue Knight creature tokens with vigilance.
mana={X}{W}{U}
type=Battle
subtype=Siege
[/card]
[card]
name=Invasion of Pyrulea
backside=Gargantuan Slabhorn
restriction=compare(isflipped)~equalto~0
anyzone={0}:doubleside(backside)
auto=counter(0/0.4.Defense)
aicode=activate transforms((,newability[all(*[zpos=1]|mylibrary) transforms((,newability[if cantargetcard(*[land;hasbackside]|*) then name(Draw a card) draw:1 controller])) oneshot])) oneshot
auto=ability$!scry:3 scrycore delayed dontshow transforms((,newability[if type(*[hasbackside&zpos=1]|mylibrary)~equalto~1 then all(*[hasbackside&zpos=1]|mylibrary) moveto(myhand) else if type(land[zpos=1]|mylibrary)~equalto~1 then all(land[zpos=1]|mylibrary) moveto(myhand)])) oneshot scrycoreend scryend!$ controller
auto=moveto(opponentbattlefield)
auto=@defeated(this):name(Exile and transforms) name(Exile and transforms) moveto(ownerexile) and!( flip(backside) forcetype(Creature Beast) )!
text=(As a Siege enters, choose an opponent to protect it. You and others can attack it. When it's defeated, exile it, then cast it transformed.) -- When Invasion of Pyrulea enters the battlefield, scry 3, then reveal the top card of your library. If it's a land or double-faced card, draw a card.
mana={G}{U}
type=Battle
subtype=Siege
[/card]
[card]
name=Invasion of Ravnica
backside=Guildpact Paragon
restriction=compare(isflipped)~equalto~0
@@ -44516,6 +44774,20 @@ type=Battle
subtype=Siege
[/card]
[card]
name=Invasion of Tolvada
backside=The Broken Sky
restriction=compare(isflipped)~equalto~0
anyzone={0}:doubleside(backside)
auto=counter(0/0.5.Defense)
auto=ability$!name(Return permanent) target(*[-instant;-sorcery;-battle]|mygraveyard) moveTo(mybattlefield)!$ controller
auto=moveto(opponentbattlefield)
auto=@defeated(this):name(Exile and transforms) name(Exile and transforms) moveto(ownerexile) and!( flip(backside) forcetype(Creature Beast) )!
text=(As a Siege enters, choose an opponent to protect it. You and others can attack it. When it's defeated, exile it, then cast it transformed.) -- When Invasion of Tolvada enters the battlefield, return target nonbattle permanent card from your graveyard to the battlefield.
mana={3}{W}{B}
type=Battle
subtype=Siege
[/card]
[card]
name=Invasion of Ulgrotha
backside=Grandmother Ravi Sengir
restriction=compare(isflipped)~equalto~0
@@ -44545,6 +44817,20 @@ type=Battle
subtype=Siege
[/card]
[card]
name=Invasion of Xerex
backside=Vertex Paladin
restriction=compare(isflipped)~equalto~0
anyzone={0}:doubleside(backside)
auto=counter(0/0.4.Defense)
auto=ability$!may name(Return creature) name(Return creature) target(creature|battlefield) moveto(ownerhand)!$ controller
auto=moveto(opponentbattlefield)
auto=@defeated(this):name(Exile and transforms) name(Exile and transforms) moveto(ownerexile) and!( flip(backside) forcetype(Creature Beast) )!
text=(As a Siege enters, choose an opponent to protect it. You and others can attack it. When it's defeated, exile it, then cast it transformed.) -- When Invasion of Xerex enters the battlefield, return up to one target creature to its owner's hand.
mana={2}{W}{U}
type=Battle
subtype=Siege
[/card]
[card]
name=Invasion of Zendikar
backside=Awakened Skyclave
restriction=compare(isflipped)~equalto~0
@@ -45971,6 +46257,17 @@ type=Artifact
subtype=Equipment
[/card]
[card]
name=Joyful Stormsculptor
auto=name(Create 2 Elementals) token(Elemental,Creature Elemental,1/1,blue,red)*2
auto=@movedTo(*[hasconvoke]|mystack):name(Deals 1 damage) transforms((,newability[all(battle|opponentBattlefield) damage:1],newability[damage:1 opponent])) oneshot
text=When Joyful Stormsculptor enters the battlefield, create two 1/1 blue and red Elemental creature tokens. -- Whenever you cast a spell that has convoke, Joyful Stormsculptor deals 1 damage to each opponent and each battle they protect.
mana={3}{U}{R}
type=Creature
subtype=Human Shaman
power=2
toughness=3
[/card]
[card]
name=Jubilant Mascot
auto=@each my combatbegins:may pay({3}{w}):target(<upto:2>other creature|battlefield) counter(1/1)
text=At the beginning of combat on your turn, you may pay {3}{W}. If you do, support 2. (Put a +1/+1 counter on each of up to two other target creatures.)
@@ -48251,6 +48548,18 @@ power=6
toughness=6
[/card]
[card]
name=Kogla and Yidaro
autohand={2}{R}{G}:name(Discard and destroy) reject and!( transforms((,newability[may name(Destroy artifact or enchantment) target(*[artifact;enchantment]|battlefield) destroy],newability[name(Shuffle into library) moveto(mylibrary) and!( shuffle )!],newability[draw:1 controller])) oneshot )!
auto=choice name(Gets trample and haste) transforms((,newability[haste],newability[trample])) ueot
auto=choice name(Fights opponent's creature) transforms((,newability[target(creature|opponentBattlefield) dynamicability<!powerstrike eachother!>])) ueot
text=When Kogla and Yidaro enters the battlefield, choose one -- It gains trample and haste until end of turn. -- It fights target creature you don't control. -- {2}{R}{G}, Discard Kogla and Yidaro: Destroy up to one target artifact or enchantment. Shuffle Kogla and Yidaro into your library from your graveyard, then draw a card.
mana={2}{R}{R}{G}{G}
type=Legendary Creature
subtype=Ape Dinosaur Turtle
power=7
toughness=7
[/card]
[card]
name=Kogla, the Titan Ape
auto=target(creature|opponentbattlefield) dynamicability<!powerstrike eachother!>
auto=_ATTACKING_destroy target(artifact,enchantment|opponentBattlefield)
@@ -56696,6 +57005,17 @@ mana={X}{U}{U}
type=Sorcery
[/card]
[card]
name=Mutagen Connoisseur
abilities=flying,vigilance
auto=foreach(*[isflipped]|myBattlefield) 1/0
text=Flying, vigilance -- Mutagen Connoisseur gets +1/+0 for each transformed permanent you control.
mana={1}{G}{U}
type=Creature
subtype=Vedalken Mutant
power=0
toughness=5
[/card]
[card]
name=Mutiny
target=creature|opponentbattlefield
auto=transforms((,newability[dynamicability<!powerstrike!> target(other creature|myBattlefield)])) ueot
@@ -71319,8 +71639,8 @@ restriction=compare(isflipped)~equalto~0
anyzone={0}:doubleside(backside)
auto=@movedTo(*[legendary]|mystack) restriction{compare(isflipped)~equalto~0}:name(Untap rona) name(Untap rona) untap
auto={T}:name(Draw and discard) draw:1 && transforms((,newability[name(Discard a card) target(*|myhand) reject])) oneshot
auto={5}{B}:name(Pay B and transform Rona) flip(backside) forcetype(Legendary Creature Phyrexian Wizard) asSorcery
auto={5}{L:2}:name(Pay life and transform Rona) flip(backside) forcetype(Legendary Creature Phyrexian Wizard) asSorcery
auto={5}{B}:name(Pay B and transform Rona) flip(backside) asSorcery
auto={5}{L:2}:name(Pay life and transform Rona) flip(backside) asSorcery
text=Whenever you cast a legendary spell, untap Rona, Herald of Invasion. -- {T}: Draw a card, then discard a card. -- {5}{B/P}: Transform Rona. Activate only as a sorcery. ({B/P} can be paid with either {B} or 2 life.)
mana={1}{U}
type=Legendary Creature
@@ -87668,6 +87988,14 @@ mana={B}{B}{B}
type=Legendary Artifact
[/card]
[card]
name=The Broken Sky
auto=lord(creature[token]|myBattlefield) transforms((,newability[1/0],newability[lifelink]))
auto=@each my endofturn:name(Create spirit) token(Spirit,Creature Spirit,1/1,white,black,flying)
text=Creature tokens you control get +1/+0 and have lifelink. -- At the beginning of your end step, create a 1/1 white and black Spirit creature token with flying.
color=white,black
type=Enchantment
[/card]
[card]
name=The Cauldron of Eternity
anyzone=foreach(creature|mygraveyard) changecost(colorless:-2) forcedalive
auto=@movedTo(graveyard) from(creature|myBattlefield):all(trigger[from]) bottomoflibrary
@@ -93548,6 +93876,14 @@ type=Artifact
subtype=Equipment
[/card]
[card]
name=Valor's Reach Tag Team
abilities=doublefacedeath
auto=name(Create warriors) token(Warrior,Creature Warrior,3/2,red,white)*2 and!( transforms((,newability[@combat(attacking) source(this) restriction{type(creature[attacking]|battlefield)~morethan~1}:name(Put 1/1 counter) counter(1/1)])) forever )!
text=Create two 3/2 red and white Warrior creature tokens with "Whenever this creature and at least one other creature token attack, put a +1/+1 counter on this creature."
color=red,white
type=Sorcery
[/card]
[card]
name=Valor Singer
auto=@each my combatbegins:name(Creature gets 1/0) target(creature|myBattlefield) 1/0 ueot
text=Combat Inspiration - At the beginning of combat on your turn, target creature you control gets +1/+0 until end of turn.
@@ -94535,6 +94871,17 @@ power=2
toughness=2
[/card]
[card]
name=Vertex Paladin
abilities=flying
anyzone=type:creature:myBattlefield/type:creature:myBattlefield cdaactive
text=Flying -- Vertex Paladin's power and toughness are each equal to the number of creatures you control.
color=white,blue
type=Creature
subtype=Angel Knight
power=*
toughness=*
[/card]
[card]
name=Vesperlark
abilities=flying
other={1}{W} name(Evoke)
@@ -98121,6 +98468,16 @@ power=2
toughness=3
[/card]
[card]
name=Winnowing Forces
anyzone=type:land:mybattlefield/type:land:mybattlefield cdaactive
text=Winnowing Forces's power and toughness are each equal to the number of lands you control.
mana=black,green
type=Creature
subtype=Elf Warrior
power=*
toughness=*
[/card]
[card]
name=Winota, Joiner of Forces
auto=@combat(attacking) source(creature[-human]|myBattlefield):Reveal:6 revealzone(mylibrary) optionone name(Get Creature) target(human|reveal) transforms((,newability[moveto(mybattlefield)],newability[battleready],newability[indestructible])) ueot optiononeend optiontwo choice name(Shuffle) all(*|reveal) bottomoflibrary && shuffle controller optiontwoend revealend
text=Whenever a non-Human creature you control attacks, look at the top six cards of your library. You may put a Human creature card from among them onto the battlefield tapped and attacking. It gains indestructible until end of turn. Put the rest of the cards on the bottom of your library in a random order.

View File

@@ -2806,6 +2806,37 @@ type=Legendary Planeswalker
subtype=Tasha
[/card]
[card]
name=Teferi Akosa of Zhalfir
auto=counter(0/0,4,loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: Draw and discard) draw:2 controller && transforms((,newability[if type(creature|myhand)~morethan~0 then choice name(Discard a creature) name(Discard a creature) target(creature|myhand) reject],newability[choice name(Discard 2 cards) target(<2>*[-creature]|myhand) reject])) oneshot
auto={C(0/0,-2,Loyalty)}:name(-2: Emblem for knights) emblem transforms((,newability[lord(knight|mybattlefield) transforms((,newability[1/0],newability[_WARD_(1)]))])) forever dontremove
auto={C(0/0,-3,Loyalty)}:name(-3: Tap 0 creatures and return permanent) target(*[-land&manacost<=0]|opponentbattlefield) moveto(ownerlibrary) and!( transforms((,newability[shuffle])) oneshot )!
auto={C(0/0,-3,Loyalty)}{T(creature[-tapped]|mybattlefield)}:name(-3: Tap 1 creature and return permanent) target(*[-land&manacost<=1]|opponentbattlefield) moveto(ownerlibrary) and!( transforms((,newability[shuffle])) oneshot )!
auto={C(0/0,-3,Loyalty)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}:name(-3: Tap 2 creatures and return permanent) target(*[-land&manacost<=2]|opponentbattlefield) moveto(ownerlibrary) and!( transforms((,newability[shuffle])) oneshot )!
auto={C(0/0,-3,Loyalty)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}:name(-3: Tap 3 creatures and return permanent) target(*[-land&manacost<=3]|opponentbattlefield) moveto(ownerlibrary) and!( transforms((,newability[shuffle])) oneshot )!
auto={C(0/0,-3,Loyalty)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}:name(-3: Tap 4 creatures and return permanent) target(*[-land&manacost<=4]|opponentbattlefield) moveto(ownerlibrary) and!( transforms((,newability[shuffle])) oneshot )!
auto={C(0/0,-3,Loyalty)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}:name(-3: Tap 5 creatures and return permanent) target(*[-land&manacost<=5]|opponentbattlefield) moveto(ownerlibrary) and!( transforms((,newability[shuffle])) oneshot )!
auto={C(0/0,-3,Loyalty)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}:name(-3: Tap 6 creatures and return permanent) target(*[-land&manacost<=6]|opponentbattlefield) moveto(ownerlibrary) and!( transforms((,newability[shuffle])) oneshot )!
auto={C(0/0,-3,Loyalty)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}:name(-3: Tap 7 creatures and return permanent) target(*[-land&manacost<=7]|opponentbattlefield) moveto(ownerlibrary) and!( transforms((,newability[shuffle])) oneshot )!
auto={C(0/0,-3,Loyalty)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}:name(-3: Tap 8 creatures and return permanent) target(*[-land&manacost<=8]|opponentbattlefield) moveto(ownerlibrary) and!( transforms((,newability[shuffle])) oneshot )!
auto={C(0/0,-3,Loyalty)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}:name(-3: Tap 9 creatures and return permanent) target(*[-land&manacost<=9]|opponentbattlefield) moveto(ownerlibrary) and!( transforms((,newability[shuffle])) oneshot )!
auto={C(0/0,-3,Loyalty)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}:name(-3: Tap 10 creatures and return permanent) target(*[-land&manacost<=10]|opponentbattlefield) moveto(ownerlibrary) and!( transforms((,newability[shuffle])) oneshot )!
auto={C(0/0,-3,Loyalty)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}:name(-3: Tap 11 creatures and return permanent) target(*[-land&manacost<=11]|opponentbattlefield) moveto(ownerlibrary) and!( transforms((,newability[shuffle])) oneshot )!
auto={C(0/0,-3,Loyalty)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}:name(-3: Tap 12 creatures and return permanent) target(*[-land&manacost<=12]|opponentbattlefield) moveto(ownerlibrary) and!( transforms((,newability[shuffle])) oneshot )!
auto={C(0/0,-3,Loyalty)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}:name(-3: Tap 13 creatures and return permanent) target(*[-land&manacost<=13]|opponentbattlefield) moveto(ownerlibrary) and!( transforms((,newability[shuffle])) oneshot )!
auto={C(0/0,-3,Loyalty)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}:name(-3: Tap 14 creatures and return permanent) target(*[-land&manacost<=14]|opponentbattlefield) moveto(ownerlibrary) and!( transforms((,newability[shuffle])) oneshot )!
auto={C(0/0,-3,Loyalty)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}:name(-3: Tap 15 creatures and return permanent) target(*[-land&manacost<=15]|opponentbattlefield) moveto(ownerlibrary) and!( transforms((,newability[shuffle])) oneshot )!
auto={C(0/0,-3,Loyalty)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}:name(-3: Tap 16 creatures and return permanent) target(*[-land&manacost<=16]|opponentbattlefield) moveto(ownerlibrary) and!( transforms((,newability[shuffle])) oneshot )!
auto={C(0/0,-3,Loyalty)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}:name(-3: Tap 17 creatures and return permanent) target(*[-land&manacost<=17]|opponentbattlefield) moveto(ownerlibrary) and!( transforms((,newability[shuffle])) oneshot )!
auto={C(0/0,-3,Loyalty)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}:name(-3: Tap 18 creatures and return permanent) target(*[-land&manacost<=18]|opponentbattlefield) moveto(ownerlibrary) and!( transforms((,newability[shuffle])) oneshot )!
auto={C(0/0,-3,Loyalty)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}:name(-3: Tap 19 creatures and return permanent) target(*[-land&manacost<=19]|opponentbattlefield) moveto(ownerlibrary) and!( transforms((,newability[shuffle])) oneshot )!
auto={C(0/0,-3,Loyalty)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}{T(creature[-tapped]|mybattlefield)}:name(-3: Tap 20 creatures and return permanent) target(*[-land&manacost<=20]|opponentbattlefield) moveto(ownerlibrary) and!( transforms((,newability[shuffle])) oneshot )!
text=[+1]: Draw two cards. Then discard two cards unless you discard a creature card. -- [2]: You get an emblem with "Knights you control get +1/+0 and have ward {1}." -- [3]: Tap X untapped creatures you control. When you do, shuffle target nonland permanent an opponent controls with mana value X or less into its owner's library.
color=white,blue
type=Legendary Planeswalker
subtype=Teferi
[/card]
[card]
name=Teferi, Hero of Dominaria
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)

View File

@@ -6530,6 +6530,16 @@ mana={7}
type=Artifact
[/card]
[card]
name=Mirror-Shield Hoplite
abilities=vigilance
text=Vigilance -- Whenever a creature you control becomes the target of a backup ability, copy that ability. You may choose new targets for the copy. This ability triggers only once each turn.
mana={R}{W}
type=Creature
subtype=Human Soldier
power=2
toughness=2
[/card]
[card]
name=Mirror Strike
text=All combat damage that would be dealt to you this turn by target unblocked creature is dealt to its controller instead.
mana={3}{W}

View File

@@ -46,6 +46,7 @@ class CardDescriptor: public MTGCardInstance
int zposComparisonMode;
int zposition;
int hasKickerCost;
int hasConvokeCost;
int hasFlashbackCost;
int hasBackSide;
int hasPartner;
@@ -55,6 +56,7 @@ class CardDescriptor: public MTGCardInstance
CardDescriptor();
void unsecureSetKicked(int i);
void unsecureSetHasKickerCost(int i);
void unsecureSetHasConvokeCost(int i);
void unsecureSetHasFlashbackCost(int i);
void unsecureSetHasBackSide(int i);
void unsecureSetHasPartner(int i);

View File

@@ -3,6 +3,7 @@
#include "CardDescriptor.h"
#include "Subtypes.h"
#include "Counters.h"
#include "ExtraCost.h"
CardDescriptor::CardDescriptor()
: MTGCardInstance(), mColorExclusions(0)
@@ -23,6 +24,7 @@ CardDescriptor::CardDescriptor()
zposComparisonMode = COMPARISON_NONE;
zposition = -1;
hasKickerCost = 0;
hasConvokeCost = 0;
hasFlashbackCost = 0;
hasBackSide = 0;
hasPartner = 0;
@@ -69,6 +71,11 @@ void CardDescriptor::unsecureSetHasKickerCost(int k)
hasKickerCost = k;
}
void CardDescriptor::unsecureSetHasConvokeCost(int k)
{
hasConvokeCost = k;
}
void CardDescriptor::unsecureSetHasFlashbackCost(int k)
{
hasFlashbackCost = k;
@@ -296,6 +303,21 @@ MTGCardInstance * CardDescriptor::match(MTGCardInstance * card)
if (excludedSet.any())
return NULL;
if (hasConvokeCost != 0){
bool hasConvoke = false;
ManaCost * extra = card->getManaCost()->getAlternative();
if(extra && extra->extraCosts){
for(unsigned int i = 0; i < extra->extraCosts->costs.size() && !hasConvoke; i++){
if(dynamic_cast<Convoke*> (extra->extraCosts->costs[i]))
hasConvoke = true;
}
}
if ((hasConvokeCost == -1 && hasConvoke) || (hasConvokeCost == 1 && !hasConvoke))
{
match = NULL;
}
}
if ((hasKickerCost == -1 && ((card->getManaCost()->getKicker() && !card->basicAbilities[Constants::HASNOKICKER]) || (!card->getManaCost()->getKicker() && card->basicAbilities[Constants::HASOTHERKICKER]))) || (hasKickerCost == 1 && !((card->getManaCost()->getKicker() && !card->basicAbilities[Constants::HASNOKICKER]) || (!card->getManaCost()->getKicker() && card->basicAbilities[Constants::HASOTHERKICKER]))))
{
match = NULL; //Some kicker costs are not a real kicker (e.g. Fuse cost).

View File

@@ -1520,7 +1520,19 @@ bool CardGui::FilterCard(MTGCard * _card,string filter)
cd.unsecureSetHasKickerCost(1);
}
}
//Has kicker cost
//Has convoke cost
else if (attribute.find("hasconvoke") != string::npos)
{
if (minus)
{
cd.unsecureSetHasConvokeCost(-1);
}
else
{
cd.unsecureSetHasConvokeCost(1);
}
}
//Has flashback cost
else if (attribute.find("hasflashback") != string::npos)
{
if (minus)

View File

@@ -615,6 +615,18 @@ TargetChooser * TargetChooserFactory::createTargetChooser(string s, MTGCardInsta
cd->unsecureSetHasKickerCost(1);
}
}
//Has convoke cost
else if (attribute.find("hasconvoke") != string::npos)
{
if (minus)
{
cd->unsecureSetHasConvokeCost(-1);
}
else
{
cd->unsecureSetHasConvokeCost(1);
}
}
//Has flashback cost
else if (attribute.find("hasflashback") != string::npos)
{