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 toughness=3
[/card] [/card]
[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 name=Aeve, Progenitor Ooze
auto=foreach(other ooze|mybattlefield) counter(1/1) auto=foreach(other ooze|mybattlefield) counter(1/1)
auto=if cantargetcard(*[-token]) then thisforeach(variable{pstormcount}>=2) clone options(nolegend) auto=if cantargetcard(*[-token]) then thisforeach(variable{pstormcount}>=2) clone options(nolegend)
@@ -4719,7 +4731,8 @@ toughness=1
[card] [card]
name=Attentive Skywarden name=Attentive Skywarden
abilities=flying 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. 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} mana={2}{W}
type=Creature type=Creature
@@ -9215,6 +9228,17 @@ power=4
toughness=4 toughness=4
[/card] [/card]
[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 name=Blossom Dryad
auto={T}:untap target(land) auto={T}:untap target(land)
text={T}: Untap target land. text={T}: Untap target land.
@@ -9986,6 +10010,18 @@ type=Artifact
subtype=Equipment subtype=Equipment
[/card] [/card]
[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 name=Boreal Elemental
abilities=flying 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 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 type=Instant
[/card] [/card]
[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 name=Djeru's Renunciation
abilities=cycling abilities=cycling
target=<upto:2>creature target=<upto:2>creature
@@ -23548,6 +23597,18 @@ power=3
toughness=2 toughness=2
[/card] [/card]
[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 name=Drana, the Last Bloodchief
abilities=flying 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 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 toughness=2
[/card] [/card]
[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 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(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 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 toughness=5
[/card] [/card]
[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 name=Gargos, Vicious Watcher
abilities=vigilance abilities=vigilance
auto=lord(hydra|mycastingzone) altercost(colorless,-4) auto=lord(hydra|mycastingzone) altercost(colorless,-4)
@@ -33605,6 +33708,17 @@ power=3
toughness=4 toughness=4
[/card] [/card]
[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 name=Ghalta, Primal Hunger
abilities=trample abilities=trample
anyzone=thisforeach(variable{pwrtotalinplay}>0) changecost(colorless:-1) forcedalive anyzone=thisforeach(variable{pwrtotalinplay}>0) changecost(colorless:-1) forcedalive
@@ -34738,6 +34852,16 @@ power=0
toughness=0 toughness=0
[/card] [/card]
[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 name=Glissa Sunseeker
abilities=first strike abilities=first strike
auto={T}:name(destroy artifact) name(destroy artifact) destroy target(artifact[manacost=mypoolcount]) 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 type=Land
[/card] [/card]
[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 name=Halo Fountain
auto={W}{T}{Q(creature[tapped]|mybattlefield)}:create(citizen:creature citizen:1/1:green,white) 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 auto={W}{W}{T}{Q(creature[tapped]|mybattlefield)}{Q(creature[tapped]|mybattlefield)}:draw:1
@@ -40157,6 +40295,18 @@ power=4
toughness=5 toughness=5
[/card] [/card]
[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 name=Hieroglyphic Illumination
abilities=cycling abilities=cycling
auto=draw:2 controller auto=draw:2 controller
@@ -40668,6 +40818,15 @@ type=Artifact
subtype=Equipment subtype=Equipment
[/card] [/card]
[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 name=Homarid Explorer
auto=target(player) deplete:4 auto=target(player) deplete:4
text=When Homarid Explorer enters the battlefield, target player mills four cards. text=When Homarid Explorer enters the battlefield, target player mills four cards.
@@ -44349,6 +44508,20 @@ type=Battle
subtype=Siege subtype=Siege
[/card] [/card]
[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 name=Invasion of Kamigawa
backside=Rooftop Saboteurs backside=Rooftop Saboteurs
restriction=compare(isflipped)~equalto~0 restriction=compare(isflipped)~equalto~0
@@ -44391,6 +44564,34 @@ type=Battle
subtype=Siege subtype=Siege
[/card] [/card]
[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 name=Invasion of Mercadia
backside=Kyren Flamewright backside=Kyren Flamewright
restriction=compare(isflipped)~equalto~0 restriction=compare(isflipped)~equalto~0
@@ -44405,6 +44606,20 @@ type=Battle
subtype=Siege subtype=Siege
[/card] [/card]
[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 name=Invasion of Muraganda
backside=Primordial Plasm backside=Primordial Plasm
restriction=compare(isflipped)~equalto~0 restriction=compare(isflipped)~equalto~0
@@ -44419,6 +44634,49 @@ type=Battle
subtype=Siege subtype=Siege
[/card] [/card]
[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 name=Invasion of Ravnica
backside=Guildpact Paragon backside=Guildpact Paragon
restriction=compare(isflipped)~equalto~0 restriction=compare(isflipped)~equalto~0
@@ -44516,6 +44774,20 @@ type=Battle
subtype=Siege subtype=Siege
[/card] [/card]
[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 name=Invasion of Ulgrotha
backside=Grandmother Ravi Sengir backside=Grandmother Ravi Sengir
restriction=compare(isflipped)~equalto~0 restriction=compare(isflipped)~equalto~0
@@ -44545,6 +44817,20 @@ type=Battle
subtype=Siege subtype=Siege
[/card] [/card]
[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 name=Invasion of Zendikar
backside=Awakened Skyclave backside=Awakened Skyclave
restriction=compare(isflipped)~equalto~0 restriction=compare(isflipped)~equalto~0
@@ -45971,6 +46257,17 @@ type=Artifact
subtype=Equipment subtype=Equipment
[/card] [/card]
[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 name=Jubilant Mascot
auto=@each my combatbegins:may pay({3}{w}):target(<upto:2>other creature|battlefield) counter(1/1) 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.) 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 toughness=6
[/card] [/card]
[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 name=Kogla, the Titan Ape
auto=target(creature|opponentbattlefield) dynamicability<!powerstrike eachother!> auto=target(creature|opponentbattlefield) dynamicability<!powerstrike eachother!>
auto=_ATTACKING_destroy target(artifact,enchantment|opponentBattlefield) auto=_ATTACKING_destroy target(artifact,enchantment|opponentBattlefield)
@@ -56696,6 +57005,17 @@ mana={X}{U}{U}
type=Sorcery type=Sorcery
[/card] [/card]
[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 name=Mutiny
target=creature|opponentbattlefield target=creature|opponentbattlefield
auto=transforms((,newability[dynamicability<!powerstrike!> target(other creature|myBattlefield)])) ueot auto=transforms((,newability[dynamicability<!powerstrike!> target(other creature|myBattlefield)])) ueot
@@ -71319,8 +71639,8 @@ restriction=compare(isflipped)~equalto~0
anyzone={0}:doubleside(backside) anyzone={0}:doubleside(backside)
auto=@movedTo(*[legendary]|mystack) restriction{compare(isflipped)~equalto~0}:name(Untap rona) name(Untap rona) untap 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={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}{B}:name(Pay B and transform Rona) flip(backside) asSorcery
auto={5}{L:2}:name(Pay life and transform Rona) flip(backside) forcetype(Legendary Creature Phyrexian Wizard) 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.) 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} mana={1}{U}
type=Legendary Creature type=Legendary Creature
@@ -87668,6 +87988,14 @@ mana={B}{B}{B}
type=Legendary Artifact type=Legendary Artifact
[/card] [/card]
[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 name=The Cauldron of Eternity
anyzone=foreach(creature|mygraveyard) changecost(colorless:-2) forcedalive anyzone=foreach(creature|mygraveyard) changecost(colorless:-2) forcedalive
auto=@movedTo(graveyard) from(creature|myBattlefield):all(trigger[from]) bottomoflibrary auto=@movedTo(graveyard) from(creature|myBattlefield):all(trigger[from]) bottomoflibrary
@@ -93548,6 +93876,14 @@ type=Artifact
subtype=Equipment subtype=Equipment
[/card] [/card]
[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 name=Valor Singer
auto=@each my combatbegins:name(Creature gets 1/0) target(creature|myBattlefield) 1/0 ueot 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. 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 toughness=2
[/card] [/card]
[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 name=Vesperlark
abilities=flying abilities=flying
other={1}{W} name(Evoke) other={1}{W} name(Evoke)
@@ -98121,6 +98468,16 @@ power=2
toughness=3 toughness=3
[/card] [/card]
[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 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 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. 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 subtype=Tasha
[/card] [/card]
[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 name=Teferi, Hero of Dominaria
auto=counter(0/0,4,loyalty) auto=counter(0/0,4,loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: Draw a card and untap two lands) draw:1 controller && phaseaction[endofturn once] untap target(<2>land) auto={C(0/0,1,Loyalty)}:name(+1: Draw a card and untap two lands) draw:1 controller && phaseaction[endofturn once] untap target(<2>land)

View File

@@ -6530,6 +6530,16 @@ mana={7}
type=Artifact type=Artifact
[/card] [/card]
[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 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. 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} mana={3}{W}

View File

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

View File

@@ -3,6 +3,7 @@
#include "CardDescriptor.h" #include "CardDescriptor.h"
#include "Subtypes.h" #include "Subtypes.h"
#include "Counters.h" #include "Counters.h"
#include "ExtraCost.h"
CardDescriptor::CardDescriptor() CardDescriptor::CardDescriptor()
: MTGCardInstance(), mColorExclusions(0) : MTGCardInstance(), mColorExclusions(0)
@@ -23,6 +24,7 @@ CardDescriptor::CardDescriptor()
zposComparisonMode = COMPARISON_NONE; zposComparisonMode = COMPARISON_NONE;
zposition = -1; zposition = -1;
hasKickerCost = 0; hasKickerCost = 0;
hasConvokeCost = 0;
hasFlashbackCost = 0; hasFlashbackCost = 0;
hasBackSide = 0; hasBackSide = 0;
hasPartner = 0; hasPartner = 0;
@@ -69,6 +71,11 @@ void CardDescriptor::unsecureSetHasKickerCost(int k)
hasKickerCost = k; hasKickerCost = k;
} }
void CardDescriptor::unsecureSetHasConvokeCost(int k)
{
hasConvokeCost = k;
}
void CardDescriptor::unsecureSetHasFlashbackCost(int k) void CardDescriptor::unsecureSetHasFlashbackCost(int k)
{ {
hasFlashbackCost = k; hasFlashbackCost = k;
@@ -296,6 +303,21 @@ MTGCardInstance * CardDescriptor::match(MTGCardInstance * card)
if (excludedSet.any()) if (excludedSet.any())
return NULL; 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])))) 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). 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); 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) else if (attribute.find("hasflashback") != string::npos)
{ {
if (minus) if (minus)

View File

@@ -615,6 +615,18 @@ TargetChooser * TargetChooserFactory::createTargetChooser(string s, MTGCardInsta
cd->unsecureSetHasKickerCost(1); 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 //Has flashback cost
else if (attribute.find("hasflashback") != string::npos) else if (attribute.find("hasflashback") != string::npos)
{ {