From 151905c5f37de26019629471f2905ee960c99420 Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Wed, 10 Aug 2016 01:54:24 +0800 Subject: [PATCH 1/4] Transform Trigger, Turnlimit for TrCardAddedtoZone Cleaned primitives, and fix SOI cards (remove workarounds) todo(recheck BFZ and OGW) --- .../bin/Res/sets/primitives/borderline.txt | 25 + projects/mtg/bin/Res/sets/primitives/mtg.txt | 612 +++++++++--------- projects/mtg/include/AllAbilities.h | 65 +- projects/mtg/include/MTGDefinitions.h | 3 +- projects/mtg/include/ManaCost.h | 1 + projects/mtg/src/AllAbilities.cpp | 22 +- projects/mtg/src/CardGui.cpp | 2 +- projects/mtg/src/GameObserver.cpp | 28 +- projects/mtg/src/MTGAbility.cpp | 24 +- projects/mtg/src/MTGCardInstance.cpp | 8 +- projects/mtg/src/MTGDefinitions.cpp | 3 +- projects/mtg/src/ManaCost.cpp | 24 + 12 files changed, 481 insertions(+), 336 deletions(-) diff --git a/projects/mtg/bin/Res/sets/primitives/borderline.txt b/projects/mtg/bin/Res/sets/primitives/borderline.txt index ca0beaf07..a6adce1f8 100644 --- a/projects/mtg/bin/Res/sets/primitives/borderline.txt +++ b/projects/mtg/bin/Res/sets/primitives/borderline.txt @@ -96,6 +96,19 @@ auto=counter(1/1,X) auto={3}:counter(1/1) #Not all player can use ability [/card] +#need doubler damage ability... +[card] +name=Goldnight Castigator +abilities=flying,haste +auto=@damaged(controller):damage:thatmuch controller +auto=@damaged(this):damage:thatmuch all(this) +text=Flying, haste -- If a source would deal damage to you, it deals double that damage to you instead. -- If a source would deal damage to Goldnight Castigator, it deals double that damage to Goldnight Castigator instead. +mana={2}{R}{R} +type=Creature +subtype=Angel +power=4 +toughness=9 +[/card] [card] name=Govern the Guildless target=creature[-multicolor] @@ -235,6 +248,18 @@ type=Sorcery text=Draw cards equal to the number of cards in target opponent's hand. Rebound (If you cast this spell from your hand, exile it as it resolves. At the beginning of your next upkeep, you may cast this card from exile without paying its mana cost.) [/card] [card] +name=Relentless Dead +auto=@movedTo(this|graveyard) from(battlefield):transforms((,newability[{B}:moveto(myhand)])) ueot +auto=@movedTo(this|graveyard) from(battlefield):transforms((,newability[{X}:moveto(myhand) target(zombie[manacost=X]|mygraveyard)])) ueot +text=Menace (This creature can't be blocked except by two or more creatures.) -- When Relentless Dead dies, you may pay {B}. If you do, return it to its owner's hand. -- When Relentless Dead dies, you may pay {X}. If you do, return another target Zombie creature card with converted mana cost X from your graveyard to the battlefield. +mana={B}{B} +abilities=menace +type=Creature +subtype=Zombie +power=2 +toughness=2 +[/card] +[card] name=Sacellum Godspeaker auto={T}:foreach(creaure[power>4]|myhand) add{G} text={T}: Reveal any number of creature cards with power 5 or greater from your hand. Add {G} to your mana pool for each card revealed this way. diff --git a/projects/mtg/bin/Res/sets/primitives/mtg.txt b/projects/mtg/bin/Res/sets/primitives/mtg.txt index aee0fceaa..f57f8b4a6 100644 --- a/projects/mtg/bin/Res/sets/primitives/mtg.txt +++ b/projects/mtg/bin/Res/sets/primitives/mtg.txt @@ -566,17 +566,6 @@ power=3 toughness=2 [/card] [card] -name=Accursed Witch -auto=@targeted(this) from(opponentstack):add{1} opponent -auto=@movedTo(this|graveyard) from(battlefield):flip(Infectious Curse) && moveto(mybattlefield) -text=Spells your opponents cast that target Accursed Witch cost {1} less to cast. -- When Accursed Witch dies, return it to the battlefield transformed under your control attached to target opponent. -mana={3}{B} -type=Creature -subtype=Human Shaman -power=4 -toughness=2 -[/card] -[card] name=Acid Rain auto=destroy all(forest) text=Destroy all Forests. @@ -1325,7 +1314,7 @@ toughness=4 name=Agent of Erebos auto=choice target(player) moveTo(exile) all(*|targetedpersonsgraveyard) auto=@movedto(enchantment|mybattlefield):choice target(player) moveTo(exile) all(*|targetedpersonsgraveyard) -text=Constellation ? Whenever Agent of Erebos or another enchantment enters the battlefield under your control, exile all cards from target player's graveyard. +text=Constellation — Whenever Agent of Erebos or another enchantment enters the battlefield under your control, exile all cards from target player's graveyard. mana={3}{B} type=Enchantment Creature subtype=Zombie @@ -1784,7 +1773,7 @@ toughness=5 [card] name=Akoum Firebird abilities=flying,haste,mustattack -text=Flying, haste -- Akoum Firebird attacks each turn if able. -- Landfall ? Whenever a land enters the battlefield under your control, you may pay {4}{R}{R}. If you do, return Akoum Firebird from your graveyard to the battlefield. +text=Flying, haste -- Akoum Firebird attacks each turn if able. -- Landfall — Whenever a land enters the battlefield under your control, you may pay {4}{R}{R}. If you do, return Akoum Firebird from your graveyard to the battlefield. autograveyard=@movedto(land|mybattlefield):Pay({4}{R}{R}) name(recover Firebird) moveto(mybattlefield) mana={2}{R}{R} type=Creature @@ -1795,7 +1784,7 @@ toughness=3 [card] name=Akoum Flameseeker auto={T(ally|myBattlefield)}{t}:may name(discard and draw) reject notatarget(*|myhand) && transforms((,newability[draw:1 controller])) forever -text=Cohort ? {T}, Tap an untapped Ally you control: Discard a card. If you do, draw a card. +text=Cohort — {T}, Tap an untapped Ally you control: Discard a card. If you do, draw a card. mana={2}{R} type=Creature subtype=Human Shaman Ally @@ -1807,7 +1796,7 @@ name=Akoum Hellkite abilities=flying auto=@movedTo(land[-mountain]|myBattlefield):damage:1 target(creature,player) auto=@movedTo(land[mountain]|myBattlefield):damage:2 target(creature,player) -text=Flying -- Landfall ? Whenever a land enters the battlefield under your control, Akoum Hellkite deals 1 damage to target creature or player. If that land is a Mountain, Akoum Hellkite deals 2 damage to that creature or player instead. +text=Flying -- Landfall — Whenever a land enters the battlefield under your control, Akoum Hellkite deals 1 damage to target creature or player. If that land is a Mountain, Akoum Hellkite deals 2 damage to that creature or player instead. mana={4}{R}{R} type=Creature subtype=Dragon @@ -1826,7 +1815,7 @@ type=Land [card] name=Akoum Stonewaker auto=@movedTo(land|myBattlefield):pay({2}{R}) token(Elemental,Creature Elemental,3/1,trample,haste,unearth,red) controller -text=Landfall ? Whenever a land enters the battlefield under your control, you may pay {2}{R}. If you do, put a 3/1 red Elemental creature token with trample and haste onto the battlefield. Exile that token at the beginning of the next end step. +text=Landfall — Whenever a land enters the battlefield under your control, you may pay {2}{R}. If you do, put a 3/1 red Elemental creature token with trample and haste onto the battlefield. Exile that token at the beginning of the next end step. mana={1}{R} type=Creature subtype=Human Shaman @@ -1846,7 +1835,7 @@ toughness=1 [card] name=Akroan Conscriptor auto=@targeted(this) from(*[instant;sorcery;enchantment]|myhand,mygraveyard):name(gain control of target creature until end of turn) target(other creature|battlefield) moveTo(mybattlefield) and!( transforms((,newability[phaseaction[endofturn sourceinplay] moveTo(ownerbattlefield)],newability[untap],haste)) ueot )! -text=Heroic ? Whenever you cast a spell that targets Akroan Conscriptor, gain control of another target creature until end of turn. Untap that creature. It gains haste until end of turn. +text=Heroic — Whenever you cast a spell that targets Akroan Conscriptor, gain control of another target creature until end of turn. Untap that creature. It gains haste until end of turn. mana={4}{R} type=Creature subtype=Human Shaman @@ -1856,7 +1845,7 @@ toughness=2 [card] name=Akroan Crusader auto=@targeted(this) from(*[instant;sorcery;enchantment]|myhand,mygraveyard):token(Soldier,Creature Soldier,1/1,red,haste) controller -text=Heroic ? Whenever you cast a spell that targets Akroan Crusader, put a 1/1 red Soldier creature token with haste onto the battlefield. +text=Heroic — Whenever you cast a spell that targets Akroan Crusader, put a 1/1 red Soldier creature token with haste onto the battlefield. mana={R} type=Creature subtype=Human Soldier @@ -1899,7 +1888,7 @@ toughness=1 name=Akroan Line Breaker auto=@targeted(this) from(*[instant;sorcery;enchantment]|myhand,mygraveyard):2/0 ueot auto=@targeted(this) from(*[instant;sorcery;enchantment]|myhand,mygraveyard):intimidate ueot -text=Heroic ? Whenever you cast a spell that targets Akroan Line Breaker, Akroan Line Breaker gets +2/+0 and gains intimidate until end of turn. +text=Heroic — Whenever you cast a spell that targets Akroan Line Breaker, Akroan Line Breaker gets +2/+0 and gains intimidate until end of turn. mana={2}{R} type=Creature subtype=Human Warrior @@ -2523,7 +2512,6 @@ toughness=5 [/card] [card] name=Alpine Grizzly -text= mana={2}{G} type=Creature subtype=Bear @@ -5164,19 +5152,20 @@ type=Artifact [card] name=Arlinn Kord auto=counter(0/0,3,loyalty) -auto={C(0/0,1,Loyalty)}:target(creature) 2/2 ueot -auto={C(0/0,0,Loyalty)}:token(Wolf,creature Wolf,2/2,green) && flip(Arlinn, Embraced by the Moon) -text=+1: target creature gets +2/+2 vigilance and haste until end of turn -- 0: put a 2/2 green wolf token onto the battlefield, transform Arlinn Kord +auto={C(0/0,1,Loyalty)}:name(+1: add 1 loyalty) donothing restriction{compare(cantargetcre)~lessthan~1} +auto={C(0/0,1,Loyalty)}:name(+1: 2/2 creature) target(creature) 2/2 ueot +auto={C(0/0,0,Loyalty)}:name(0: wolf token) token(Wolf,creature Wolf,2/2,green) && flip(Arlinn, Embraced by the Moon) +text=+1: Until end of turn, up to one target creature gets +2/+2 and gains vigilance and haste. -- 0: Put a 2/2 green Wolf creature token onto the battlefield. Transform Arlinn Kord. mana={2}{R}{G} type=Planeswalker subtype=Arlinn [/card] [card] name=Arlinn, Embraced by the Moon -auto={C(0/0,1,Loyalty)}:all(creature|mybattlefield) 1/1 ueot && all(creature|mybattlefield) trample ueot -auto={C(0/0,-1,Loyalty)}:damage:3 target(creature,player) && all(this) flip(Arlinn, Embraced by the Moon) -auto={C(0/0,-6,Loyalty)}:name(emblem) emblem transforms((,newability[lord(creature|mybattlefield) {T}:target(creature,player) dynamicability],newability[lord(creature|mybattlefield) haste])) forever dontremove -text=+1: creatures you control get +1/+1 and trample until end of turn -- -1: Arlinn, Embraced by the Moon deals 3 damage to target creature or player, flip -- -6: you get an emblem with 'creatures you control have haste and '{T}: this creature deals damage equal to its power to target creature or player' +auto={C(0/0,1,Loyalty)}:name(+1: 1/1 & trample) all(creature|mybattlefield) 1/1 ueot && all(creature|mybattlefield) trample ueot +auto={C(0/0,-1,Loyalty)}:name(-1: damage & transform) damage:3 target(creature,player) && all(this) flip(Arlinn Kord) +auto={C(0/0,-6,Loyalty)}:name(-6: emblem) emblem transforms((,newability[lord(creature|mybattlefield) {T}:target(creature,player) dynamicability],newability[lord(creature|mybattlefield) haste])) forever dontremove +text=+1: Creatures you control get +1/+1 and gain trample until end of turn. -- -1: Arlinn, Embraced by the Moon deals 3 damage to target creature or player. Transform Arlinn, Embraced by the Moon. -- -6: You get an emblem with "Creatures you control have haste and ‘{T}: This creature deals damage equal to its power to target creature or player.'" type=Planeswalker subtype=Arlinn color=red,green @@ -5409,7 +5398,6 @@ toughness=3 [/card] [card] name=Armored Wolf-Rider -text= mana={3}{G}{W} type=Creature subtype=Elf Knight @@ -5642,7 +5630,6 @@ toughness=3 [card] name=Ascended Lawmage abilities=flying,opponentshroud -text= mana={2}{W}{U} type=Creature subtype=Vedalkan Wizard @@ -5833,6 +5820,15 @@ power=4 toughness=4 [/card] [card] +name=Ashmouth Blade +auto={3}:equip +auto=teach(creature) 3/3 +auto=teach(creature) first strike +text=Equipped creature gets +3/+3 and has first strike. -- Equip {3} +type=Artifact +subtype=Equipment +[/card] +[card] name=Ashmouth Hound auto=@combat(blocking,blocked) source(this) from(creature):all(trigger[from]) damage:1 text=Whenever Ashmouth Hound blocks or becomes blocked by a creature, Ashmouth Hound deals 1 damage to that creature. @@ -6132,7 +6128,7 @@ type=Artifact [card] name=Atarka Pummeler auto={3}{r}{r}:all(creature|mybattlefield) menace usot restriction{compare(powertotalinplay)~morethan~7} -text=Formidable ? {3}{R}{R}: Creatures you control gain menace until end of turn. Activate this ability only if creatures you control have total power 8 or greater. (They can't be blocked except by two or more creatures.) +text=Formidable — {3}{R}{R}: Creatures you control gain menace until end of turn. Activate this ability only if creatures you control have total power 8 or greater. (They can't be blocked except by two or more creatures.) mana={4}{R} type=Creature subtype=Ogre Warrior @@ -7973,7 +7969,6 @@ type=Instant [/card] [card] name=Bane Alley Blackguard -text= mana={1}{B} type=Creature subtype=Human Rogue @@ -9376,7 +9371,7 @@ type=Enchantment [card] name=Behold the Beyond auto=reject all(*|myhand) -auto=moveto(myhand) target(*|mylibrary) +auto=moveto(myhand) target(<3>*|mylibrary) text=Discard your hand. Search your library for three cards and put those cards into your hand. Then shuffle your library. mana={5}{B}{B} type=Sorcery @@ -9431,7 +9426,7 @@ toughness=2 [card] name=Belligerent Whiptail auto=@movedTo(land|myBattlefield):first strike ueot -text=Landfall ? Whenever a land enters the battlefield under your control, Belligerent Whiptail gains first strike until end of turn. +text=Landfall — Whenever a land enters the battlefield under your control, Belligerent Whiptail gains first strike until end of turn. mana={3}{R} type=Creature subtype=Wurm @@ -9453,7 +9448,7 @@ toughness=3 [card] name=Bellowing Saddlebrute auto=ifnot raid then life:-4 controller -text=Raid ? When Bellowing Saddlebrute enters the battlefield, you lose 4 life unless you attacked with a creature this turn. +text=Raid — When Bellowing Saddlebrute enters the battlefield, you lose 4 life unless you attacked with a creature this turn. mana={3}{B} type=Creature subtype=Orc Warrior @@ -11393,7 +11388,7 @@ toughness=2 name=Bloodcrazed Hoplite auto=@targeted(this) from(*[instant;sorcery;enchantment]|myhand,mygraveyard):counter(1/1,1) auto=@counteradded(1/1) from(this):counter(1/1,-1) target(creature|opponentbattlefield) -text=Heroic ? Whenever you cast a spell that targets Bloodcrazed Hoplite, put a +1/+1 counter on it. -- Whenever a +1/+1 counter is placed on Bloodcrazed Hoplite, remove a +1/+1 counter from target creature an opponent controls. +text=Heroic — Whenever you cast a spell that targets Bloodcrazed Hoplite, put a +1/+1 counter on it. -- Whenever a +1/+1 counter is placed on Bloodcrazed Hoplite, remove a +1/+1 counter from target creature an opponent controls. mana={1}{B} type=Creature subtype=Human Soldier @@ -11766,7 +11761,7 @@ toughness=3 name=Bloodsoaked Champion abilities=cantblock autograveyard={1}{B}:moveTo(mybattlefield) restriction{raid} -text=Bloodsoaked Champion can't block. -- Raid ? {1}{B}: Return Bloodsoaked Champion from your graveyard to the battlefield. Activate this ability only if you attacked with a creature this turn. +text=Bloodsoaked Champion can't block. -- Raid — {1}{B}: Return Bloodsoaked Champion from your graveyard to the battlefield. Activate this ability only if you attacked with a creature this turn. mana={B} type=Creature subtype=Human Warrior @@ -13084,7 +13079,8 @@ name=Bound by Moonsilver target=creature auto=cantattack auto=cantblock -auto={S(other *|mybattlefield)}:rehook target(creature) assorcery +auto=canttransform +auto={S(other *|mybattlefield)}:rehook target(creature) assorcery limit:1 text=Enchant creature -- Enchanted creature can't attack, block, or transform. -- Sacrifice another permanent: Attach Bound by Moonsilver to target creature. Activate this ability only any time you could cast a sorcery and only once each turn. mana={2}{W} type=Enchantment @@ -13166,7 +13162,7 @@ auto={1}{G}{T}:name(+1/+1 counter) counter(1/1,1) target(creature) auto={1}{G}{T}:name(2 damage to flyer) damage:2 target(creature[flying]) auto={1}{G}{T}:name(gain 3 life) life:3 controller auto={1}{G}{T}:name(put up to 4 on bottom) bottomoflibrary target(*|mygraveyard) -text=Attacking creatures you control have deathtouch. -- {1}{G},{T}: Choose one ? Put a +1/+1 counter on target creature; or Bow of Nylea deals 2 damage to target creature with flying; or you gain 3 life; or put up to four target cards from your graveyard on the bottom of your library in any order. +text=Attacking creatures you control have deathtouch. -- {1}{G},{T}: Choose one — Put a +1/+1 counter on target creature; or Bow of Nylea deals 2 damage to target creature with flying; or you gain 3 life; or put up to four target cards from your graveyard on the bottom of your library in any order. mana={1}{G}{G} type=Legendary Enchantment Artifact [/card] @@ -13832,7 +13828,7 @@ type=Sorcery name=Brilliant Spectrum auto=draw:converge auto=reject notatarget(<2>*|myhand) -text=Converge ? Draw X cards, where X is the number of colors of mana spent to cast Brilliant Spectrum. Then discard two cards. +text=Converge — Draw X cards, where X is the number of colors of mana spent to cast Brilliant Spectrum. Then discard two cards. mana={3}{U} type=Sorcery [/card] @@ -13925,7 +13921,7 @@ type=Instant [card] name=Bring to Light auto=notatarget(*[creature;instant;sorcery;manacost<=converge]|mylibrary) moveto(exile) and!( transforms((,newability[may name(cast for free) activate name(cast for free) castcard(normal)])) oneshot)! -text=Converge ? Search your library for a creature, instant, or sorcery card with converted mana cost less than or equal to the number of colors of mana spent to cast Bring to Light, exile that card, then shuffle your library. You may cast that card without paying its mana cost. +text=Converge — Search your library for a creature, instant, or sorcery card with converted mana cost less than or equal to the number of colors of mana spent to cast Bring to Light, exile that card, then shuffle your library. You may cast that card without paying its mana cost. mana={3}{G}{U} type=Sorcery [/card] @@ -17730,7 +17726,7 @@ toughness=3 name=Chasm Guide auto=choice all(creature|mybattlefield) haste ueot auto=@movedTo(ally|myBattlefield):all(creature|mybattlefield) haste ueot -text=Rally ? Whenever Chasm Guide or another Ally enters the battlefield under your control, creatures you control gain haste until end of turn. +text=Rally — Whenever Chasm Guide or another Ally enters the battlefield under your control, creatures you control gain haste until end of turn. mana={3}{R} type=Creature subtype=Goblin Scout Ally @@ -18051,7 +18047,7 @@ toughness=2 [/card] [card] name=Choked Estuary -auto=aslongas(island,swamp|myhand)~lessthan~1 tap(noevent) +auto=aslongas(island,swamp|myhand) tap(noevent) <1 auto={T}:add{U} auto={T}:add{B} text=As Choked Estuary enters the battlefield, you may reveal an Island or Swamp card from your hand. If you don't, Choked Estuary enters the battlefield tapped. -- {T}: Add {U} or {B} to your mana pool. @@ -18560,7 +18556,7 @@ type=Enchantment name=Citadel Siege auto=choice name(Khans) transforms((,newability[counter(0/0.1.Khans)],newability[@each my combatbegins:counter(1/1.2) target(creature|mybattlefield)])) forever auto=choice name(Dragons) transforms((,newability[counter(0/0.1.Dragons)],newability[@each opponent combatbegins:tap target(creature|opponentbattlefield)])) forever -text=As Citadel Siege enters the battlefield, choose Khans or Dragons. -- ? Khans ? At the beginning of combat on your turn, put two +1/+1 counters on target creature you control. -- ? Dragons ? At the beginning of combat on each opponent's turn, tap target creature that player controls. +text=As Citadel Siege enters the battlefield, choose Khans or Dragons. -- — Khans — At the beginning of combat on your turn, put two +1/+1 counters on target creature you control. -- — Dragons — At the beginning of combat on each opponent's turn, tap target creature that player controls. mana={2}{W}{W} type=Enchantment [/card] @@ -18958,7 +18954,6 @@ type=Instant [/card] [card] name=Clip Wings -auto=sacrifice notatarget(creature[flying]|mybattlefield) auto=ability$! sacrifice notatarget(creature[flying]|mybattlefield) !$ opponent text=Each opponent sacrifices a creature with flying. mana={1}{G} @@ -19864,7 +19859,7 @@ auto=aslongas(island|mybattlefield) lord(creature|opponentbattlefield) transform auto=aslongas(mountain|mybattlefield) lord(creature|opponentbattlefield) transforms((,newability[attackcost:1])) auto=aslongas(swamp|mybattlefield) lord(creature|opponentbattlefield) transforms((,newability[attackcost:1])) auto=aslongas(plains|mybattlefield) lord(creature|opponentbattlefield) transforms((,newability[attackcost:1])) -text=Domain ? Creatures can't attack you unless their controller pays {X} for each creature he or she controls that's attacking you, where X is the number of basic land types among lands you control. +text=Domain — Creatures can't attack you unless their controller pays {X} for each creature he or she controls that's attacking you, where X is the number of basic land types among lands you control. mana={3}{U} type=Enchantment [/card] @@ -20046,6 +20041,15 @@ mana={3}{U} type=Instant [/card] [card] +name=Compelling Deterrence +target=*[-land] +auto=moveto(ownerhand) +auto=if type(zombie|mybattlefield)~morethan~0 then ability$!name(discard) target(*|myhand) reject!$ targetcontroller +text=Return target nonland permanent to its owner's hand. Then that player discards a card if you control a Zombie. +mana={1}{U} +type=Instant +[/card] +[card] name=Complete Disregard target=creature[power<=3]|battlefield auto=moveto(exile) @@ -20481,7 +20485,7 @@ subtype=Aura name=Consuming Sinkhole auto=choice target(creature[land]) moveto(exile) auto=choice damage:4 target(player) -text=Devoid (This card has no color.) -- Choose one ? -- ? Exile target land creature. -- ? Consuming Sinkhole deals 4 damage to target player. +text=Devoid (This card has no color.) -- Choose one — -- — Exile target land creature. -- — Consuming Sinkhole deals 4 damage to target player. mana={3}{R} abilities=devoid type=Instant @@ -21658,7 +21662,7 @@ name=Crater's Claws target=creature,player auto=if type(creature[power=>4]|mybattlefield) then damage:2 auto=damage:X -text=Crater's Claws deals X damage to target creature or player. -- Ferocious ? Crater's Claws deals X plus 2 damage to that creature or player instead if you control a creature with power 4 or greater. +text=Crater's Claws deals X damage to target creature or player. -- Ferocious — Crater's Claws deals X plus 2 damage to that creature or player instead if you control a creature with power 4 or greater. mana={R}{X} type=Sorcery [/card] @@ -21715,7 +21719,7 @@ toughness=2 [card] name=Crawling Sensation auto=@each my upkeep:may deplete:2 controller -auto=@movedto(land|mygraveyard) restriction{thisturn(land|mygraveyard)~lessthan~1}:token(Insect,creature Insect,1/1,green) +auto=@movedto(land|mygraveyard) turnlimited:token(Insect,creature Insect,1/1,green) text=At the beginning of your upkeep, you may put the top two cards of your library into your graveyard. -- Whenever one or more land cards are put into your graveyard from anywhere for the first time each turn, put a 1/1 green Insect creature token onto the battlefield. mana={2}{G} type=Enchantment @@ -22161,7 +22165,7 @@ toughness=4 name=Crow of Dark Tidings abilities=flying auto=deplete:2 controller -auto=@movedto(mygraveyard):deplete:2 controller +auto=@movedTo(this|graveyard) from(battlefield):deplete:2 controller text=Flying -- When Crow of Dark Tidings enters the battlefield or dies, put the top two cards of your library into your graveyard. mana={2}{B} type=Creature @@ -23295,7 +23299,6 @@ toughness=3 [/card] [card] name=Cyclops of One-Eyed Pass -text= mana={2}{R}{R} type=Creature subtype=Cyclops @@ -23695,6 +23698,16 @@ power=3 toughness=1 [/card] [card] +name=Daring Sleuth +auto=@sacrificed(clue|mybattlefield):flip(Bearer of Overwhelming Truths) +text=When you sacrifice a Clue, transform Daring Sleuth. +mana={1}{U} +type=Creature +subtype=Human Rogue +power=2 +toughness=1 +[/card] +[card] name=Dark Banishing target=creature[-black] auto=bury @@ -23726,7 +23739,7 @@ target=creature auto=regenerate auto=draw:1 controller auto=if type(*[instant;sorcery]|mygraveyard)~morethan~1 then regenerate all(other creature|mybattlefield) -text=Regenerate target creature. Draw a card. (The next time the creature would be destroyed this turn, it isn't. Instead tap it, remove all damage from it, and remove it from combat.) -- Spell mastery ? If there are two or more instant and/or sorcery cards in your graveyard, also regenerate each other creature you control. +text=Regenerate target creature. Draw a card. (The next time the creature would be destroyed this turn, it isn't. Instead tap it, remove all damage from it, and remove it from combat.) -- Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, also regenerate each other creature you control. mana={2}{B} type=Instant [/card] @@ -23803,7 +23816,7 @@ type=Sorcery name=Dark Petition auto=moveto(myhand) notatarget(*|mylibrary) auto=if type(*[instant;sorcery]|mygraveyard)~morethan~1 then add{B}{B}{B} -text=Search your library for a card and put that card into your hand. Then shuffle your library. -- Spell mastery ? If there are two or more instant and/or sorcery cards in your graveyard, add {B}{B}{B} to your mana pool. +text=Search your library for a card and put that card into your hand. Then shuffle your library. -- Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, add {B}{B}{B} to your mana pool. mana={3}{B}{B} type=Sorcery [/card] @@ -24258,7 +24271,6 @@ toughness=3 [/card] [card] name=Dauntless Cathar -abilities=flying autograveyard={1}{W}{e}:token(Spirit,creature Spirit,1/1,white,flying) assorcery text={1}{W}, Exile Dauntless Cathar from your graveyard: Put a 1/1 white Spirit creature token with flying onto the battlefield. Activate this ability only any time you could cast a sorcery. mana={2}{W} @@ -25389,7 +25401,8 @@ type=Artifact [card] name=Declaration in Stone target=creature -auto=transforms((,newability[all(*[share!name!]) moveto(exile)],newability[moveto(exile)],newability[token(Clue,Artifact Clue,0/0) and!( transforms((,newability[{S}{2}:draw:1])) forever )! controller])) +auto=all(*[-token;share!name!]|targetcontrollerbattlefield) moveto(exile) and!( token(Clue,Artifact Clue,0/0) targetcontroller and!( transforms((,newability[{S}{2}:draw:1])) forever )! )! +auto=all(*[token;share!name!]|targetcontrollerbattlefield) moveto(exile) text=Exile target creature and all other creatures its controller controls with the same name as that creature. That player investigates for each nontoken creature exiled this way. mana={1}{W} type=Sorcery @@ -26301,7 +26314,7 @@ type=Enchantment [card] name=Deny Existence target=creature|stack -auto=fizzle and exiledeath +auto=fizzleto(exile) text=Counter target creature spell. If that spell is countered this way, exile it instead of putting it into its owner's graveyard. mana={2}{U} type=Instant @@ -26387,7 +26400,7 @@ toughness=4 [card] name=Descend upon the Sinful auto=moveto(exile) all(creature) -auto=token(Angel,creature angel,4/4,white,flying) controller restriction{delirium} +auto=if delirium then token(Angel,creature angel,4/4,white,flying) controller text=Exile all creatures. -- Delirium Put a 4/4 white Angel creature token with flying onto the battlefield if there are four or more card types among cards in your graveyard. mana={4}{W}{W} type=Sorcery @@ -27480,7 +27493,7 @@ auto={1}{E(*[instant;sorcery]|mygraveyard)}:name(counter noncreature unless pay auto={1}{E(*[instant;sorcery]|mygraveyard)}:1/1 ueot auto={1}{E(*[instant;sorcery]|mygraveyard)}:tap target(creature) auto={1}{E(*[instant;sorcery]|mygraveyard)}:untap target(creature) -text={1}, Exile an instant or sorcery card from your graveyard: Choose one ? -- ? Counter target noncreature spell unless its controller pays {2}. -- ? Disciple of the Ring gets +1/+1 until end of turn. -- ? Tap target creature. -- ? Untap target creature. +text={1}, Exile an instant or sorcery card from your graveyard: Choose one — -- — Counter target noncreature spell unless its controller pays {2}. -- — Disciple of the Ring gets +1/+1 until end of turn. -- — Tap target creature. -- — Untap target creature. mana={3}{U}{U} type=Creature subtype=Human Wizard @@ -28241,7 +28254,7 @@ toughness=3 name=Doomwake Giant auto=all(creature|opponentbattlefield) -1/-1 auto=@movedTo(enchantment|myBattlefield):all(creature|opponentbattlefield) -1/-1 -text=Constellation ? Whenever Doomwake Giant or another enchantment enters the battlefield under your control, creatures your opponents control get -1/-1 until end of turn. +text=Constellation — Whenever Doomwake Giant or another enchantment enters the battlefield under your control, creatures your opponents control get -1/-1 until end of turn. mana={4}{B} type=Enchantment Creature subtype=Giant @@ -29080,7 +29093,7 @@ toughness=3 [card] name=Drana's Chosen auto={T(ally|myBattlefield)}{t}:token(Zombie,Creature Zombie,2/2,black) and!( tap(noevent) )! -text=Cohort ? {T}, Tap an untapped Ally you control: Put a 2/2 black Zombie creature token onto the battlefield tapped. +text=Cohort — {T}, Tap an untapped Ally you control: Put a 2/2 black Zombie creature token onto the battlefield tapped. mana={3}{B} type=Creature subtype=Vampire Shaman Ally @@ -29246,7 +29259,7 @@ type=Sorcery name=Dreadbringer Lampads auto=name(intimidate) target(creature) transforms((,newability[intimidate])) ueot auto=@movedTo(enchantment|myBattlefield):name(intimidate) target(creature) transforms((,newability[intimidate])) ueot -text=Constellation ? Whenever Dreadbringer Lampads or another enchantment enters the battlefield under your control, target creature gains intimidate until end of turn. (It can't be blocked except by artifact creatures and/or creatures that share a color with it.) +text=Constellation — Whenever Dreadbringer Lampads or another enchantment enters the battlefield under your control, target creature gains intimidate until end of turn. (It can't be blocked except by artifact creatures and/or creatures that share a color with it.) mana={4}{B} type=Enchantment Creature subtype=Nymph @@ -30005,9 +30018,9 @@ toughness=4 [/card] [card] name=Drownyard Temple -auto={T}:Add{1} +auto={T}:Add{C} autograveyard={3}:moveto(mybattlefield) and!(tap(noevent))! -text={T}: Add {1} to your mana pool. -- {3}: Return Drownyard Temple from your graveyard to the battlefield tapped. +text={T}: Add {C} to your mana pool. -- {3}: Return Drownyard Temple from your graveyard to the battlefield tapped. type=Land [/card] [card] @@ -30468,7 +30481,7 @@ toughness=1 [/card] [card] name=Duskwatch Recruiter -auto={2}{G}:reveal:4 optionone name(Get Creature) target(creature|reveal) moveto(myhand) optiononeend optiontwo name(put on bottom) target(<4>*|reveal) bottomoflibrary optiontwoend revealend +auto={2}{G}:reveal:3 optionone name(Get Creature) target(creature|reveal) moveto(myhand) optiononeend optiontwo name(put on bottom) target(<3>*|reveal) bottomoflibrary optiontwoend revealend auto=@each upkeep restriction{lastturn(*|stack)~lessthan~1}:flip(Krallenhorde Howler) text={2}{G}: Look at the top three cards of your library. You may reveal a creature card from among them and put it into your hand. Put the rest on the bottom of your library in any order. -- At the beginning of each upkeep, if no spells were cast last turn, transform Duskwatch Recruiter. mana={1}{G} @@ -31180,7 +31193,7 @@ toughness=1 [/card] [card] name=Ebony Charm -auto=choice life:-1 opponent && life:1 controller +auto=choice target(opponent) life:-1 && life:1 controller auto=choice target(*|graveyard) moveTo(exile) auto=aslongas(creature|battlefield) choice fear target(creature) text=Choose one - Target opponent loses 1 life and you gain 1 life; or exile up to three target cards from a single graveyard; or target creature gains fear until end of turn. (It can't be blocked except by artifact creatures and/or black creatures.) @@ -31341,7 +31354,7 @@ toughness=2 [card] name=Eerie Interlude target=creature|mybattlefield -auto=blink ueot +auto=(blink) text=Exile any number of target creatures you control. Return those cards to the battlefield under their owner's control at the beginning of the next end step. mana={2}{W} type=Instant @@ -31382,7 +31395,7 @@ subtype=Shapeshifter name=Eidolon of Blossoms auto=draw:1 auto=@movedTo(enchantment|myBattlefield):draw:1 -text=Constellation ? Whenever Eidolon of Blossoms or another enchantment enters the battlefield under your control, draw a card. +text=Constellation — Whenever Eidolon of Blossoms or another enchantment enters the battlefield under your control, draw a card. mana={2}{G}{G} type=Enchantment Creature subtype=Spirit @@ -32670,7 +32683,7 @@ name=Embodiment of Fury abilities=trample auto=lord(creature[land]|mybattlefield) trample auto=@movedTo(land|mybattlefield):target(land|mybattlefield) transforms((Elemental Land Creature,3/3,newability[haste])) ueot -text=Trample -- Land creatures you control have trample. -- Landfall ? Whenever a land enters the battlefield under your control, you may have target land you control become a 3/3 Elemental creature with haste until end of turn. It's still a land. +text=Trample -- Land creatures you control have trample. -- Landfall — Whenever a land enters the battlefield under your control, you may have target land you control become a 3/3 Elemental creature with haste until end of turn. It's still a land. mana={3}{R} type=Creature subtype=Elemental @@ -32682,7 +32695,7 @@ name=Embodiment of Insight abilities=vigilance auto=lord(creature[land]|mybattlefield) vigilance auto=@movedTo(land|mybattlefield):target(land|mybattlefield) transforms((Elemental Land Creature,3/3,newability[haste])) ueot -text=Vigilance -- Land creatures you control have vigilance. -- Landfall ? Whenever a land enters the battlefield under your control, you may have target land you control become a 3/3 Elemental creature with haste until end of turn. It's still a land. +text=Vigilance -- Land creatures you control have vigilance. -- Landfall — Whenever a land enters the battlefield under your control, you may have target land you control become a 3/3 Elemental creature with haste until end of turn. It's still a land. mana={4}{G} type=Creature subtype=Elemental @@ -32752,7 +32765,7 @@ name=Emeria Shepherd abilities=flying auto=@movedTo(land[-plains]|myBattlefield):moveto(myhand) target(*[-land;-instant;-sorcery]|mygraveyard) auto=@movedTo(land[plains]|myBattlefield):moveto(mybattlefield) target(*[-land;-instant;-sorcery]|mygraveyard) -text=Flying -- Landfall ? Whenever a land enters the battlefield under your control, you may return target nonland permanent card from your graveyard to your hand. If that land is a Plains, you may return that nonland permanent card to the battlefield instead. +text=Flying -- Landfall — Whenever a land enters the battlefield under your control, you may return target nonland permanent card from your graveyard to your hand. If that land is a Plains, you may return that nonland permanent card to the battlefield instead. mana={5}{W}{W} type=Creature subtype=Angel @@ -33792,7 +33805,7 @@ type=Legendary Enchantment [card] name=Erdwal Illuminator abilities=flying -auto=@movedto(clue|mybattlefield) restriction{type(clue[fresh]|mybattlefield)~equalto~1}:token(Clue,Artifact Clue,0/0) and!( transforms((,newability[{S}{2}:draw:1])) forever )! +auto=@movedto(clue|mybattlefield) turnlimited:token(Clue,Artifact Clue,0/0) and!( transforms((,newability[{S}{2}:draw:1])) forever )! text=Flying -- Whenever you investigate for the first time each turn, investigate an additional time. mana={1}{U} type=Creature @@ -34150,8 +34163,8 @@ subtype=Aura [card] name=Essence Flux target=creature|mybattlefield -auto=blink ueot -auto=if type(mytgt[spirit]) then counter(1/1,1) +auto=if cantargetcard(*[spirit]) then moveto(exile) and!( transforms((,newability[moveto(ownerbattlefield)],newability[counter(1/1.1)])) oneshot )! +auto=if cantargetcard(*[-spirit]) then moveto(exile) and!(moveto(ownerbattlefield))! text=Exile target creature you control, then return that card to the battlefield under its owner's control. If it's a Spirit, put a +1/+1 counter on it. mana={U} type=Instant @@ -34782,7 +34795,7 @@ type=Instant name=Exert Influence target=creature[power<=converge]|battlefield auto=moveto(mybattlefield) -text=Converge ? Gain control of target creature if its power is less than or equal to the number of colors of mana spent to cast Exert Influence. +text=Converge — Gain control of target creature if its power is less than or equal to the number of colors of mana spent to cast Exert Influence. mana={4}{U} type=Sorcery [/card] @@ -35046,7 +35059,7 @@ name=Exquisite Firecraft target=creature,player auto=damage:4 auto=aslongas(*[instant;sorcery]|mygraveyard) nofizzle >1 -text=Exquisite Firecraft deals 4 damage to target creature or player. -- Spell mastery ? If there are two or more instant and/or sorcery cards in your graveyard, Exquisite Firecraft can't be countered by spells or abilities. +text=Exquisite Firecraft deals 4 damage to target creature or player. -- Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, Exquisite Firecraft can't be countered by spells or abilities. mana={1}{R}{R} type=Sorcery [/card] @@ -36658,7 +36671,6 @@ subtype=Aura [/card] [card] name=Feral Krushok -text= mana={4}{G} type=Creature subtype=Beast @@ -37097,7 +37109,7 @@ toughness=2 name=Fiery Impulse target=creature auto=if type(*[instant;sorcery]|mygraveyard)~morethan~1 then damage:3 else damage:2 -text=Fiery Impulse deals 2 damage to target creature. -- Spell mastery ? If there are two or more instant and/or sorcery cards in your graveyard, Fiery Impulse deals 3 damage to that creature instead. +text=Fiery Impulse deals 2 damage to target creature. -- Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, Fiery Impulse deals 3 damage to that creature instead. mana={R} type=Instant [/card] @@ -37564,7 +37576,7 @@ toughness=3 name=Firemantle Mage auto=all(ally|mybattlefield) menace ueot auto=@movedTo(other ally|myBattlefield):may lord(ally|myBattlefield) all(ally|mybattlefield) menace ueot -text=Rally ? Whenever Firemantle Mage or another Ally enters the battlefield under your control, creatures you control gain menace until end of turn. (A creature with menace can't be blocked except by two or more creatures.) +text=Rally — Whenever Firemantle Mage or another Ally enters the battlefield under your control, creatures you control gain menace until end of turn. (A creature with menace can't be blocked except by two or more creatures.) mana={2}{R} type=Creature subtype=Human Shaman Ally @@ -37864,8 +37876,8 @@ type=Sorcery [card] name=Flameblade Angel abilities=flying -auto=@damaged(controller):may damage:1 opponent -auto=@damaged(creature|mybattlefield):may damage:1 opponent +auto=@damaged(controller) from(*|opponentbattlefield,opponentstack,opponentgraveyard,opponentlibrary,opponentexile,opponenthand):may damage:1 opponent +auto=@damaged(*|mybattlefield) from(*|opponentbattlefield,opponentstack,opponentgraveyard,opponentlibrary,opponentexile,opponenthand):may damage:1 opponent text=Flying -- Whenever a source an opponent controls deals damage to you or a permanent you control, you may have Flameblade Angel deal 1 damage to that source's controller. mana={4}{R}{R} type=Creature @@ -38374,7 +38386,7 @@ toughness=1 [card] name=Fleeting Memories auto=token(Clue,Artifact Clue,0/0) and!( transforms((,newability[{S}{2}:draw:1])) forever )! controller -auto=@movedto(clue|mygraveyard):deplete:3 opponent +auto=@sacrificed(clue|mybattlefield):target(player) deplete:3 text=When Fleeting Memories enters the battlefield, investigate. (Put a colorless Clue artifact token onto the battlefield with "{2}, Sacrifice this artifact: Draw a card.") -- Whenever you sacrifice a Clue, target player puts the top three cards of his or her library into his or her graveyard. mana={2}{U} type=Enchantment @@ -39464,7 +39476,7 @@ toughness=1 name=Forgeborn Oreads auto=damage:1 target(creature,player) auto=@movedTo(enchantment|myBattlefield):damage:1 target(creature,player) -text=Constellation ? Whenever Forgeborn Oreads or another enchantment enters the battlefield under your control, Forgeborn Oreads deals 1 damage to target creature or player. +text=Constellation — Whenever Forgeborn Oreads or another enchantment enters the battlefield under your control, Forgeborn Oreads deals 1 damage to target creature or player. mana={2}{R}{R} type=Enchantment Creature subtype=Nymph @@ -40603,7 +40615,7 @@ subtype=Aura [/card] [card] name=Furtive Homunculus -auto=cantbeblockedby(creature[power>2]) +abilities=skulk text=Skulk (This creature can't be blocked by creatures with greater power.) mana={1}{U} type=Creature @@ -41460,6 +41472,15 @@ power=3 toughness=5 [/card] [card] +name=Geistblast +target=creature,player +auto=damage:2 +autograveyard={2}{U}{e}:name(copy spell) target(instant,sorcery|mystack) castcard(copied noevent) +text=Geistblast deals 2 damage to target creature or player. -- {2}{U}, Exile Geistblast from your graveyard: Copy target instant or sorcery spell you control. You may choose new targets for the copy. +mana={2}{R} +type=Instant +[/card] +[card] name=Geistcatcher's Rig auto=may damage:4 target(creature[flying]) oneshot text=When Geistcatcher's Rig enters the battlefield, you may have it deal 4 damage to target creature with flying. @@ -41745,7 +41766,7 @@ type=Land [card] name=Geralf's Masterpiece abilities=flying -auto=foreach(*|myhand):-1/-1 +auto=foreach(*|myhand) -1/-1 autograveyard={3}{U}{discard(*|myhand)}{discard(*|myhand)}{discard(*|myhand)}:moveto(myhand) and!(tap(noevent))! text=Flying -- Geralf's Masterpiece gets -1/-1 for each card in your hand. -- {3}{U}, Discard three cards: Return Geralf's Masterpiece from your graveyard to the battlefield tapped. mana={3}{U}{U} @@ -41873,7 +41894,7 @@ toughness=4 name=Geyserfield Stalker abilities=menace auto=@movedto(land|myBattlefield):2/2 ueot -text=Menace (This creature can't be blocked except by two or more creatures.) -- Landfall ? Whenever a land enters the battlefield under your control, Geyserfield Stalker gets +2/+2 until end of turn. +text=Menace (This creature can't be blocked except by two or more creatures.) -- Landfall — Whenever a land enters the battlefield under your control, Geyserfield Stalker gets +2/+2 until end of turn. mana={4}{B} type=Creature subtype=Elemental @@ -42050,7 +42071,7 @@ toughness=3 [/card] [card] name=Ghost Council of Orzhova -auto=ability$!choice life:-1 target(opponent) && life:1 controller!$ controller +auto=choice target(opponent) life:-1 && life:1 controller auto={1}{S(creature|mybattlefield)}:(blink)ueot text=When Ghost Council of Orzhova enters the battlefield, target opponent loses 1 life and you gain 1 life. -- {1}, Sacrifice a creature: Exile Ghost Council of Orzhova. Return it to the battlefield under its owner's control at the beginning of the next end step. mana={W}{W}{B}{B} @@ -42586,7 +42607,7 @@ subtype=Giant [card] name=Gibbering Fiend auto=damage:1 opponent -auto=@each opponent upkeep restriction{delirium}:deplete:1 opponent +auto=@each opponent upkeep restriction{delirium}:damage:1 opponent text=When Gibbering Fiend enters the battlefield, it deals 1 damage to each opponent. -- Delirium At the beginning of each opponent's upkeep, if there are four or more card types among cards in your graveyard, Gibbering Fiend deals 1 damage to that player. mana={1}{R} type=Creature @@ -42660,7 +42681,7 @@ toughness=1 [card] name=Gideon's Phalanx auto=if type(*[instant;sorcery]|mygraveyard)~lessthan~1 then token(Knight,Creature Knight,2/2,white,vigilance)*4 controller else token(Knight,Creature Knight,2/2,white,vigilance)*4 && all(creature|mybattlefield) indestructible ueot -text=Put four 2/2 white Knight creature tokens with vigilance onto the battlefield. -- Spell mastery ? If there are two or more instant and/or sorcery cards in your graveyard, creatures you control gain indestructible until end of turn. +text=Put four 2/2 white Knight creature tokens with vigilance onto the battlefield. -- Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, creatures you control gain indestructible until end of turn. mana={5}{W}{W} type=Instant [/card] @@ -44898,18 +44919,6 @@ power=2 toughness=2 [/card] [card] -name=Goldnight Castigator -abilities=flying,haste -auto=@damaged(controller):damage:thatmuch controller -auto=@damaged(this):damage:thatmuch this -text=Flying, haste -- If a source would deal damage to you, it deals double that damage to you instead. -- If a source would deal damage to Goldnight Castigator, it deals double that damage to Goldnight Castigator instead. -mana={2}{R}{R} -type=Creature -subtype=Angel -power=4 -toughness=9 -[/card] -[card] name=Goldnight Commander auto=@movedTo(other creature|myBattlefield):all(creature|mybattlefield) 1/1 ueot text=Whenever another creature enters the battlefield under your control, creatures you control get +1/+1 until end of turn. @@ -45916,7 +45925,6 @@ type=Artifact Land [/card] [card] name=Great Hart -text= mana={3}{W} type=Creature subtype=Elk @@ -46344,7 +46352,7 @@ type=Sorcery name=Grim Guardian auto=life:-1 opponent auto=@movedTo(enchantment|myBattlefield):life:-1 opponent -text=Constellation ? Whenever Grim Guardian or another enchantment enters the battlefield under your control, each opponent loses 1 life. +text=Constellation — Whenever Grim Guardian or another enchantment enters the battlefield under your control, each opponent loses 1 life. mana={2}{B} type=Enchantment Creature subtype=Zombie @@ -46865,7 +46873,7 @@ type=Land name=Grove Rumbler abilities=trample auto=@movedTo(land|myBattlefield):2/2 ueot -text=Trample -- Landfall ? Whenever a land enters the battlefield under your control, Grove Rumbler gets +2/+2 until end of turn. +text=Trample -- Landfall — Whenever a land enters the battlefield under your control, Grove Rumbler gets +2/+2 until end of turn. mana={2}{R}{G} type=Creature subtype=Elemental @@ -46876,7 +46884,7 @@ toughness=3 name=Grovetender Druids auto=pay({1}) token(Plant,Creature Plant,1/1,green) auto=@movedTo(ally|myBattlefield):pay({1}) token(Plant,Creature Plant,1/1,green) -text=Rally ? Whenever Grovetender Druids or another Ally enters the battlefield under your control, you may pay {1}. If you do, put a 1/1 green Plant creature token onto the battlefield. +text=Rally — Whenever Grovetender Druids or another Ally enters the battlefield under your control, you may pay {1}. If you do, put a 1/1 green Plant creature token onto the battlefield. mana={2}{G}{W} type=Creature subtype=Elf Druid Ally @@ -47068,8 +47076,8 @@ toughness=2 [card] name=Gryff's Boon target=creature -auto=1/0 -auto=flying +auto=teach(creature) 1/0 +auto=teach(creature) flying autograveyard={3}{W}:rehook target(creature) assorcery text=Enchant creature -- Enchanted creature gets +1/+0 and has flying. -- {3}{W}: Return Gryff's Boon from your graveyard to the battlefield attached to target creature. Activate this ability only any time you could cast a sorcery. mana={W} @@ -47169,7 +47177,7 @@ name=Guardian of Tazeem abilities=flying auto=@movedTo(land[-island]|myBattlefield):tap target(creature) auto=@movedTo(land[island]|myBattlefield):target(creature) tap && frozen -text=Flying -- Landfall ? Whenever a land enters the battlefield under your control, tap target creature an opponent controls. If that land is an Island, that creature doesn't untap during its controller's next untap step. +text=Flying -- Landfall — Whenever a land enters the battlefield under your control, tap target creature an opponent controls. If that land is an Island, that creature doesn't untap during its controller's next untap step. mana={3}{U}{U} type=Creature subtype=Sphinx @@ -47553,7 +47561,7 @@ name=Guul Draz Overseer abilities=flying auto=@movedTo(land[-swamp]|myBattlefield):all(other creature|mybattlefield) 1/0 ueot auto=@movedTo(land[swamp]|myBattlefield):all(other creature|mybattlefield) 2/0 ueot -text=Flying -- Landfall ? Whenever a land enters the battlefield under your control, other creatures you control get +1/+0 until end of turn. If that land is a Swamp, those creatures get +2/+0 until end of turn instead. +text=Flying -- Landfall — Whenever a land enters the battlefield under your control, other creatures you control get +1/+0 until end of turn. If that land is a Swamp, those creatures get +2/+0 until end of turn instead. mana={4}{B}{B} type=Creature subtype=Vampire @@ -48035,7 +48043,7 @@ toughness=2 [/card] [card] name=Hand of Justice -auto={T}{T(other creature[white]|myBattlefield)}{T(other creature[white]|myBattlefield)}{T(other creature[white]|myBattlefield)}:destroy target(creture) +auto={T}{T(other creature[white]|myBattlefield)}{T(other creature[white]|myBattlefield)}{T(other creature[white]|myBattlefield)}:destroy target(creature) text={T}, Tap three untapped white creatures you control: Destroy target creature. mana={5}{W} type=Creature @@ -48423,7 +48431,7 @@ toughness=3 name=Harvestguard Alseids auto=name(prevent all damage) target(creature) transforms((,newability[preventalldamage to(this)])) ueot auto=@movedto(enchantment|mybattlefield):name(prevent all damage) target(creature) transforms((,newability[preventalldamage to(this)])) ueot -text=Constellation ? Whenever Harvestguard Alseids or another enchantment enters the battlefield under your control, prevent all damage that would be dealt to target creature this turn. +text=Constellation — Whenever Harvestguard Alseids or another enchantment enters the battlefield under your control, prevent all damage that would be dealt to target creature this turn. mana={2}{W} type=Enchantment Creature subtype=Nymph @@ -48505,9 +48513,9 @@ toughness=2 [card] name=Haunted Cloak auto={1}:equip -auto=vigilance -auto=trample -auto=haste +auto=teach(creature) vigilance +auto=teach(creature) trample +auto=teach(creature) haste text=Equipped creature has vigilance, trample, and haste. -- Equip {1} mana={3} type=Artifact @@ -49325,7 +49333,7 @@ type=Enchantment [/card] [card] name=Heir of Falkenrath -auto={discard(*|myhand)}:flip(Heir to the Night) +auto={discard(*|myhand)}:flip(Heir to the Night) limit:1 text=Discard a card: Transform Heir of Falkenrath. Activate this ability only once each turn. mana={1}{B} type=Creature @@ -49896,7 +49904,7 @@ toughness=4 name=Hero of Goma Fada auto=choice all(creature|mybattlefield) indestructible ueot auto=@movedTo(ally|myBattlefield):all(creature|mybattlefield) indestructible ueot -text=Rally ? Whenever Hero of Goma Fada or another Ally enters the battlefield under your control, creatures you control gain indestructible until end of turn. +text=Rally — Whenever Hero of Goma Fada or another Ally enters the battlefield under your control, creatures you control gain indestructible until end of turn. mana={4}{W} type=Creature subtype=Human Knight Ally @@ -51658,7 +51666,7 @@ type=Instant name=Humbler of Mortals auto=all(creature|myBattlefield) trample ueot auto=@movedTo(enchantment|myBattlefield):all(creature|myBattlefield) trample ueot -text=Constellation ? Whenever Humbler of Mortals or another enchantment enters the battlefield under your control, creatures you control gain trample until end of turn. +text=Constellation — Whenever Humbler of Mortals or another enchantment enters the battlefield under your control, creatures you control gain trample until end of turn. mana={4}{G}{G} type=Enchantment Creature subtype=Elemental @@ -52482,7 +52490,7 @@ name=Icy Blast target=creature|battlefield auto=tap auto=if type(creature[power>=4]|mybattlefield)~morethan~0 then frozen -text=Tap X target creatures. -- Ferocious ? If you control a creature with power 4 or greater, those creatures don't untap during their controllers' next untap steps. +text=Tap X target creatures. -- Ferocious — If you control a creature with power 4 or greater, those creatures don't untap during their controllers' next untap steps. mana={X}{U} type=Instant [/card] @@ -53122,8 +53130,7 @@ type=Instant [/card] [card] name=Incorrigible Youths -abilities=haste -abilities=madness +abilities=haste,madness autoexile=restriction{discarded} pay({2}{r}) name(pay 2r to cast) activate name(pay 2r to cast) castcard(normal)?name(put in graveyard) moveto(ownergraveyard) text=Haste -- Madness {2}{R} (If you discard this card, discard it into exile. When you do, cast it for its madness cost or put it into your graveyard.) mana={3}{R}{R} @@ -53344,7 +53351,7 @@ subtype=Aura [/card] [card] name=Inexorable Blob -auto=@combat(attacking) source(this) restriction{delirium}: aslongas(*|mygraveyard)~morethan~6 token(Ooze,creature Ooze,3/3,green,battleready) +auto=@combat(attacking) source(this) restriction{delirium}:token(Ooze,creature Ooze,3/3,green,battleready) text=Delirium Whenever Inexorable Blob attacks, if there are four or more card types among cards in your graveyard, put a 3/3 green Ooze creature token onto the battlefield tapped and attacking. mana={2}{G} type=Creature @@ -53392,15 +53399,6 @@ type=Enchantment subtype=Aura [/card] [card] -name=Infectious Curse -auto=@targeted(opponent):add{1} -auto=@upkeep:life:1 -auto=@upkeep:life:-1 opponent -text=Enchant player -- Spells you cast that target enchanted player cost {1} less to cast. -- At the beginning of enchanted player's upkeep, that player loses 1 life and you gain 1 life. -type=Enchantment -subtype=Aura Curse -[/card] -[card] name=Infectious Horror auto=@combat(attacking) source(this):life:-2 opponent text=Whenever Infectious Horror attacks, each opponent loses 2 life. @@ -53590,7 +53588,7 @@ name=Infuse with the Elements target=creature|battlefield auto=trample ueot auto=counter(1/1,converge) -text=Converge ? Put X +1/+1 counters on target creature, where X is the number of colors of mana spent to cast Infuse with the Elements. That creature gains trample until end of turn. +text=Converge — Put X +1/+1 counters on target creature, where X is the number of colors of mana spent to cast Infuse with the Elements. That creature gains trample until end of turn. mana={3}{G} type=Instant [/card] @@ -53911,7 +53909,7 @@ toughness=1 [card] name=Insidious Mist abilities=hexproof,unblockable,indestructible,cantblock -auto=@combat(notblocked) source(this):may flip(Elusive Tormentor) +auto=@combat(notblocked) source(this):transforms((,newability[pay[[{2}{B}]] flip(Elusive Tormentor)])) oneshot text=Hexproof, indestructible -- Insidious Mist can't block and can't be blocked. -- Whenever Insidious Mist attacks and isn't blocked, you may pay {2}{B}. If you do, transform it. type=Creature subtype=Elemental @@ -54187,6 +54185,17 @@ power=3 toughness=3 [/card] [card] +name=Invasive Surgery +target=sorcery|stack +auto=fizzle +auto=if delirium then all(*[share!name!]|targetcontrollerlibrary) moveto(exile) +auto=if delirium then all(*[share!name!]|targetcontrollerhand) moveto(exile) +auto=if delirium then all(*[share!name!]|targetcontrollergraveyard) moveto(exile) +text=Counter target sorcery spell. -- Delirium — If there are four or more card types among cards in your graveyard, search the graveyard, hand, and library of that spell's controller for any number of cards with the same name as that spell, exile those cards, then that player shuffles his or her library. +mana={U} +type=Instant +[/card] +[card] name=Invert the Skies auto=if spent({G}) then all(creature|opponentbattlefield) -flying ueot auto=if spent({U}) then all(creature|mybattlefield) flying ueot @@ -54910,10 +54919,10 @@ subtype=Jace [card] name=Jace, Unraveler of Secrets auto=counter(0/0,5,loyalty) -auto={C(0/0,1,Loyalty)}:deplete:1 && may moveto(mylibrary) target(*[fresh]|mygraveyard) && draw:1 -auto={C(0/0,-2,Loyalty)}:moveto(ownerhand) target(creature) -auto={C(0/0,-8,Loyalty)}:name(emblem) emblem transforms((,newability[@movedto(*|opponentstack) restriction{thisturn(*|opponentstack)~equalto~0}:fizzle all(*|opponentstack)])) forever dontremove -text=+1: put the top card of your library into your graveyard, you may return it to the top of your library, draw 1 -- -2: return a target creature to its owners hand -- -8: you get an emblem with whenever an opponent casts a spell if its the first spell they cast this turn, counter that spell +auto={C(0/0,1,Loyalty)}:name(+1: Scry) scry:1 scrycore delayed draw:1 scrycoreend scryend +auto={C(0/0,-2,Loyalty)}:name(-2: Bounce) moveto(ownerhand) target(creature) +auto={C(0/0,-8,Loyalty)}:name(-8: Emblem) emblem transforms((,newability[@movedto(*|opponentstack) restriction{thisturn(*|opponentstack)~equalto~0}:fizzle all(*|opponentstack)])) forever dontremove +text=+1: Scry 1, then draw a card. -- -2: Return target creature to its owner's hand. -- -8: You get an emblem with "Whenever an opponent casts his or her first spell each turn, counter that spell." mana={3}{U}{U} type=Planeswalker subtype=Jace @@ -55017,7 +55026,7 @@ toughness=8 name=Jaddi Offshoot abilities=defender auto=@movedTo(land|myBattlefield):life:1 controller -text=Defender -- Landfall ? Whenever a land enters the battlefield under your control, you gain 1 life. +text=Defender -- Landfall — Whenever a land enters the battlefield under your control, you gain 1 life. mana={G} type=Creature subtype=Plant @@ -56435,7 +56444,7 @@ toughness=4 name=Kalastria Healer auto=choice life:-1 all(opponent) && life:1 controller auto=@movedTo(ally|myBattlefield):life:-1 all(opponent) && life:1 controller -text=Rally ? Whenever Kalastria Healer or another Ally enters the battlefield under your control, each opponent loses 1 life and you gain 1 life. +text=Rally — Whenever Kalastria Healer or another Ally enters the battlefield under your control, each opponent loses 1 life and you gain 1 life. mana={1}{B} type=Creature subtype=Vampire Cleric Ally @@ -56505,7 +56514,6 @@ toughness=0 [/card] [card] name=Kalonian Tusker -text= mana={G}{G} type=Creature subtype=Beast @@ -58002,7 +58010,7 @@ toughness=5 [card] name=King Macar, the Gold-Cursed auto=@untapped(this):may moveto(exile) target(creature) && token(-378445) controller -text=Inspired ? Whenever King Macar, the Gold-Cursed becomes untapped, you may exile target creature. If you do, put a colorless artifact token named Gold onto the battlefield. It has "Sacrifice this artifact: Add one mana of any color to your mana pool." +text=Inspired — Whenever King Macar, the Gold-Cursed becomes untapped, you may exile target creature. If you do, put a colorless artifact token named Gold onto the battlefield. It has "Sacrifice this artifact: Add one mana of any color to your mana pool." mana={2}{B}{B} type=Legendary Creature subtype=Human @@ -59102,7 +59110,7 @@ toughness=1 name=Kor Bladewhirl auto=choice all(creature|mybattlefield) first strike ueot auto=@movedTo(ally|myBattlefield):all(creature|mybattlefield) first strike ueot -text=Rally ? Whenever Kor Bladewhirl or another Ally enters the battlefield under your control, creatures you control gain first strike until end of turn. +text=Rally — Whenever Kor Bladewhirl or another Ally enters the battlefield under your control, creatures you control gain first strike until end of turn. mana={1}{W} type=Creature subtype=Kor Soldier Ally @@ -59143,7 +59151,7 @@ toughness=1 name=Kor Entanglers auto=tap target(creature|opponentbattlefield) auto=@movedTo(ally|myBattlefield):tap target(creature|opponentbattlefield) -text=Rally ? Whenever Kor Entanglers or another Ally enters the battlefield under your control, tap target creature an opponent controls. +text=Rally — Whenever Kor Entanglers or another Ally enters the battlefield under your control, tap target creature an opponent controls. mana={4}{W} type=Creature subtype=Kor Soldier Ally @@ -59512,7 +59520,7 @@ toughness=0 [/card] [card] name=Krallenhorde Howler -auto=lord(creature|myhand) altercost(colorless, -1) +auto=lord(creature|myhand,mylibrary,mygraveyard,myexile) altercost(colorless, -1) auto=@each upkeep restriction{lastturn(*|stack)~morethan~1}:flip(Duskwatch Recruiter) text=Creature spells you cast cost {1} less to cast. -- At the beginning of each upkeep, if a player cast two or more spells last turn, transform Krallenhorde Howler. type=Creature @@ -60197,7 +60205,7 @@ toughness=3 name=Kytheon's Tactics auto=all(creature|mybattlefield) 2/1 ueot auto=if type(*[instant;sorcery]|mygraveyard)~morethan~1 then all(creature|mybattlefield) vigilance ueot -text=Creatures you control get +2/+1 until end of turn. -- Spell mastery ? If there are two or more instant and/or sorcery cards in your graveyard, those creatures also gain vigilance until end of turn. (Attacking doesn't cause them to tap.) +text=Creatures you control get +2/+1 until end of turn. -- Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, those creatures also gain vigilance until end of turn. (Attacking doesn't cause them to tap.) mana={1}{W}{W} type=Sorcery [/card] @@ -60413,7 +60421,7 @@ toughness=3 [/card] [card] name=Lamplighter of Selhoff -auto=if type(zombie|mybattlefield)~morethan~0 then may draw:1 && discard(*|myhand) +auto=if type(other zombie|mybattlefield)~morethan~0 then may draw:1 && discard(*|myhand) text=When Lamplighter of Selhoff enters the battlefield, if you control another Zombie, you may draw a card. If you do, discard a card. mana={4}{U} type=Creature @@ -60517,7 +60525,7 @@ toughness=1 name=Lantern Scout auto=choice all(creature|mybattlefield) lifelink ueot auto=@movedTo(ally|myBattlefield):all(creature|mybattlefield) lifelink ueot -text=Rally ? Whenever Lantern Scout or another Ally enters the battlefield under your control, creatures you control gain lifelink until end of turn. +text=Rally — Whenever Lantern Scout or another Ally enters the battlefield under your control, creatures you control gain lifelink until end of turn. mana={2}{W} type=Creature subtype=Human Scout Ally @@ -61353,7 +61361,7 @@ toughness=1 [card] name=Leonin Iconoclast auto=@targeted(this) from(*[instant;sorcery;enchantment]|myhand,mygraveyard):destroy target(Creature[enchantment]|opponentbattlefield) -text=Heroic ? Whenever you cast a spell that targets Leonin Iconoclast, destroy target enchantment creature an opponent controls. +text=Heroic — Whenever you cast a spell that targets Leonin Iconoclast, destroy target enchantment creature an opponent controls. mana={3}{W} type=Creature subtype=Cat Monk @@ -62764,11 +62772,11 @@ toughness=3 [/card] [card] name=Loam Dryad -auto={T}{t(creature|mybattlefield)}:add{G} -auto={T}{t(creature|mybattlefield)}:add{B} -auto={T}{t(creature|mybattlefield)}:add{W} -auto={T}{t(creature|mybattlefield)}:add{U} -auto={T}{t(creature|mybattlefield)}:add{R} +auto={T}{t(other creature|mybattlefield)}:add{G} +auto={T}{t(other creature|mybattlefield)}:add{B} +auto={T}{t(other creature|mybattlefield)}:add{W} +auto={T}{t(other creature|mybattlefield)}:add{U} +auto={T}{t(other creature|mybattlefield)}:add{R} text={T}, Tap an untapped creature you control: Add one mana of any color to your mana pool. mana={G} type=Creature @@ -64431,7 +64439,7 @@ toughness=0 [/card] [card] name=Magmatic Chasm -auto=all(creature[-flying]|battlefield) cantblock ueot +auto=lord(creature[-flying]|battlefield) cantblock ueot text=Creatures without flying can't block this turn. mana={1}{R} type=Sorcery @@ -64502,9 +64510,9 @@ type=Instant [/card] [card] name=Magnifying Glass -auto={T}:Add{1} +auto={T}:Add{C} auto={4}{T}:token(Clue,Artifact Clue,0/0) and!( transforms((,newability[{S}{2}:draw:1])) forever )! controller -text={T}: Add {1} to your mana pool. -- {4}, {T}: Investigate. (Put a colorless Clue artifact token onto the battlefield with "{2}, Sacrifice this artifact: Draw a card.") +text={T}: Add {C} to your mana pool. -- {4}, {T}: Investigate. (Put a colorless Clue artifact token onto the battlefield with "{2}, Sacrifice this artifact: Draw a card.") mana={3} type=Artifact [/card] @@ -64772,7 +64780,7 @@ toughness=4 name=Makindi Patrol auto=choice all(creature|mybattlefield) vigilance ueot auto=@movedTo(ally|myBattlefield):all(creature|mybattlefield) vigilance ueot -text=Rally ? Whenever Makindi Patrol or another Ally enters the battlefield under your control, creatures you control gain vigilance until end of turn. +text=Rally — Whenever Makindi Patrol or another Ally enters the battlefield under your control, creatures you control gain vigilance until end of turn. mana={2}{W} type=Creature subtype=Human Knight Ally @@ -64795,7 +64803,7 @@ toughness=3 name=Makindi Sliderunner abilities=trample auto=@movedTo(land|myBattlefield):1/1 ueot -text=Trample -- Landfall ? Whenever a land enters the battlefield under your control, Makindi Sliderunner gets +1/+1 until end of turn. +text=Trample -- Landfall — Whenever a land enters the battlefield under your control, Makindi Sliderunner gets +1/+1 until end of turn. mana={1}{R} type=Creature subtype=Beast @@ -64866,7 +64874,7 @@ toughness=1 [card] name=Malakir Soothsayer auto={T(ally|myBattlefield)}{t}:draw:1 && life:-1 -text=Cohort ? {T}, Tap an untapped Ally you control: You draw a card and you lose 1 life. +text=Cohort — {T}, Tap an untapped Ally you control: You draw a card and you lose 1 life. mana={4}{B} type=Creature subtype=Vampire Shaman Ally @@ -68539,7 +68547,7 @@ toughness=2 name=Mindwrack Demon abilities=flying, trample auto=deplete:4 controller -auto=@each my upkeep:if delirium then name(Delirium active) else life:-4 controller +auto=@each my upkeep restriction{notdelirum}:life:-4 controller text=Flying, trample -- When Mindwrack Demon enters the battlefield, put the top four cards of your library into your graveyard. -- Delirium At the beginning of your upkeep, you lose 4 life unless there are four or more card types among cards in your graveyard. mana={2}{B}{B} type=Creature @@ -68651,7 +68659,6 @@ toughness=3 [/card] [card] name=Minotaur Abomination -text= mana={4}{B}{B} type=Creature subtype=Zombie Minotaur @@ -71258,7 +71265,7 @@ subtype=Aura [card] name=Munda's Vanguard auto={T(ally|myBattlefield)}{t}:all(creature|mybattlefield) counter(1/1,1) -text=Cohort ? {T}, Tap an untapped Ally you control: Put a +1/+1 counter on each creature you control. +text=Cohort — {T}, Tap an untapped Ally you control: Put a +1/+1 counter on each creature you control. mana={4}{W} type=Creature subtype=Kor Knight Ally @@ -71279,7 +71286,7 @@ toughness=2 [card] name=Murasa Ranger auto=@movedTo(land|myBattlefield):pay({3}{G}) counter(1/1,2) -text=Landfall ? Whenever a land enters the battlefield under your control, you may pay {3}{G}. If you do, put two +1/+1 counters on Murasa Ranger. +text=Landfall — Whenever a land enters the battlefield under your control, you may pay {3}{G}. If you do, put two +1/+1 counters on Murasa Ranger. mana={3}{G} type=Creature subtype=Human Warrior @@ -71310,7 +71317,7 @@ toughness=4 name=Murderer's Axe auto={discard(*|myhand)}:equip auto=2/2 -text=Equipped creature gets +2/+2. -- EquipDiscard a card. +text=Equipped creature gets +2/+2. -- Equip—Discard a card. mana={4} type=Artifact subtype=Equipment @@ -72089,10 +72096,11 @@ type=Sorcery [card] name=Nahiri, the Harbinger auto=counter(0/0,4,loyalty) -auto={C(0/0,1,Loyalty)}:name(Reveal) reveal:1 optionone name(Choose to put in Graveyard) target(*|reveal) moveto(mygraveyard) optiononeend optiontwo name(put Back and draw) target(<1>*|reveal) moveto(mylibrary) optiontwoend afterrevealed choice draw:1 controller afterrevealedend revealend -auto={C(0/0,-2,Loyalty)}:moveto(ownerhand) target(creature) -auto={C(0/0,-8,Loyalty)}:name(-8: emblem) emblem transforms((,newability[@movedto(*|mystack) restriction{thisturn(*|opponentstack)~lessthan~2}:all(trigger[to]) fizzle])) forever dontremove -text=+1: put the top card of your library into your graveyard, you may return it to the top of your library, draw 1 -- -2: return a target creature to its owners hand -- -8: you get an emblem with whenever an opponent casts a spell if its the first spell they cast this turn, counter that spell +auto={C(0/0,1,Loyalty)}:name(+1: Reveal) reveal:1 optionone name(Choose to put in Graveyard) target(*|reveal) moveto(mygraveyard) optiononeend optiontwo name(put Back and draw) target(<1>*|reveal) moveto(mylibrary) optiontwoend afterrevealed choice draw:1 controller afterrevealedend revealend +auto={C(0/0,-2,Loyalty)}:name(-2: Exile tapped Artifact or Creature) target(creature,artifact[tapped]) moveto(exile) +auto={C(0/0,-2,Loyalty)}:name(-2: Exile target Enchantment) target(enchantment) moveto(exile) +auto={C(0/0,-8,Loyalty)}:name(-8: Fetch) moveto(mybattlefield) notatarget(artifact,creature|mylibrary) and!( transforms((,newability[haste],newability[phaseaction[endofturn sourceinplay] moveTo(ownerhand)])) forever )! +text=+2: You may discard a card. If you do, draw a card. -- -2: Exile target enchantment, tapped artifact, or tapped creature. -- -8: Search your library for an artifact or creature card, put it onto the battlefield, then shuffle your library. It gains haste. Return it to your hand at the beginning of the next end step. mana={2}{R}{W} type=Planeswalker subtype=Nahiri @@ -72734,7 +72742,7 @@ type=Enchantment name=Necromantic Summons target=creature|graveyard auto=if type(*[instant;sorcery]|mygraveyard)~morethan~1 then transforms((,newability[moveto(mybattlefield)],newability[counter(1/1.2)])) forever else moveto(mybattlefield) -text=Put target creature card from a graveyard onto the battlefield under your control. -- Spell mastery ? If there are two or more instant and/or sorcery cards in your graveyard, that creature enters the battlefield with two additional +1/+1 counters on it. +text=Put target creature card from a graveyard onto the battlefield under your control. -- Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, that creature enters the battlefield with two additional +1/+1 counters on it. mana={4}{B} type=Sorcery [/card] @@ -72968,6 +72976,16 @@ mana={1}{U} type=Instant [/card] [card] +name=Neglected Heirloom +auto=@transformed(mytgt):all(this) flip(Ashmouth Blade) +auto={1}:equip +auto=teach(creature) 1/1 +text=Equipped creature gets +1/+1. -- When equipped creature transforms, transform Neglected Heirloom. -- Equip {1} +mana={1} +type=Artifact +subtype=Equipment +[/card] +[card] name=Nekrataal abilities=first strike auto=bury target(creature[-black;-artifact]) @@ -73846,7 +73864,7 @@ text={T}, Sacrifice Nihil Spellbomb: Exile all cards from target player's gravey [/card] [card] name=Nihilistic Glee -auto={2}{B}{discard(*|myhand)}:life:-1 opponent && life:1 controller +auto={2}{B}{discard(*|myhand)}:target(opponent) life:-1 && life:1 controller auto=aslongas(*|myhand) {L:2}{1}:draw:1 <1 text={2}{B}, Discard a card: Target opponent loses 1 life and you gain 1 life. -- Hellbent - {1}, Pay 2 life: Draw a card. Activate this ability only if you have no cards in hand. mana={2}{B}{B} @@ -74159,7 +74177,7 @@ type=Sorcery [card] name=Nissa's Pilgrimage auto=if type(*[instant;sorcery]|mygraveyard)~morethan~1 then name(fetch to play) notatarget(forest[basic]|mylibrary) transforms((,newability[name(move to hand) notatarget(forest[basic]|mylibrary) moveTo(myhand)],newability[moveTo(myBattlefield) and!(tap(noevent))!])) oneshot else name(fetch to play) notatarget(forest[basic]|mylibrary) transforms((,newability[name(move to hand) notatarget(forest[basic]|mylibrary) moveTo(myhand)],newability[moveTo(myBattlefield) and!(tap(noevent))!])) oneshot -text=Search your library for up to two basic Forest cards, reveal those cards, and put one onto the battlefield tapped and the rest into your hand. Then shuffle your library. -- Spell mastery ? If there are two or more instant and/or sorcery cards in your graveyard, search your library for up to three basic Forest cards instead of two. +text=Search your library for up to two basic Forest cards, reveal those cards, and put one onto the battlefield tapped and the rest into your hand. Then shuffle your library. -- Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, search your library for up to three basic Forest cards instead of two. mana={2}{G} type=Sorcery [/card] @@ -74567,8 +74585,8 @@ toughness=2 [card] name=Not Forgotten target=*|graveyard -auto=moveto(ownerlibrary) -auto=token(Spirit,creature Spirit,1/1,white,flying) +auto=choice name(put on top) moveto(ownerlibrary) && token(Spirit,creature Spirit,1/1,white,flying) +auto=choice bottomoflibrary && token(Spirit,creature Spirit,1/1,white,flying) text=Put target card from a graveyard on the top or bottom of its owner's library. Put a 1/1 white Spirit creature token with flying onto the battlefield. mana={1}{W} type=Sorcery @@ -75062,7 +75080,7 @@ toughness=7 name=Oakheart Dryads auto=1/1 target(creature) ueot auto=@movedTo(enchantment|myBattlefield):1/1 target(creature) ueot -text=Constellation ? Whenever Oakheart Dryads or another enchantment enters the battlefield under your control, target creature gets +1/+1 until end of turn. +text=Constellation — Whenever Oakheart Dryads or another enchantment enters the battlefield under your control, target creature gets +1/+1 until end of turn. mana={2}{G} type=Enchantment Creature subtype=Nymph Dryad @@ -75724,7 +75742,7 @@ name=Ojutai Exemplars auto=@movedto(*[-creature]|mystack):choice name(Tap target creature) tap target(creature|battlefield) auto=@movedto(*[-creature]|mystack):choice name(First Strike and Lifelink) transforms((,newability[first strike ueot],newability[lifelink ueot])) ueot auto=@movedto(*[-creature]|mystack):choice name(Exile and returned tapped) moveto(exile) and!( transforms((,newability[moveto(ownerbattlefield) and!(tap(noevent))!])) forever)! -text=Whenever you cast a noncreature spell, choose one ? -- ? Tap target creature. -- ? Ojutai Exemplars gains first strike and lifelink until end of turn. -- ? Exile Ojutai Exemplars, then return it to the battlefield tapped under its owner's control. +text=Whenever you cast a noncreature spell, choose one — -- — Tap target creature. -- — Ojutai Exemplars gains first strike and lifelink until end of turn. -- — Exile Ojutai Exemplars, then return it to the battlefield tapped under its owner's control. mana={2}{W}{W} type=Creature subtype=Human Monk @@ -75818,8 +75836,8 @@ toughness=3 [card] name=Olivia, Mobilized for War abilities=flying -auto=@movedto(creature|mybattlefield):pay({d(*|myhand)}) all(trigger[to]) counter(1/1,1) && all(trigger[to]) transforms((vampire,newability[haste])) forever -text=flying -- whenever another creature enters the battlefield under your control, you may discard a card, if you do, put a +1/+1 counter on that creature and it becomes a vampire and gains haste +auto=@movedto(other creature|mybattlefield):all(trigger) transforms((,newability[may reject notatarget(*|myhand) and!( all(this) counter(1/1.1) && all(this) haste && all(this) becomes(vampire) forever )!])) forever )! +text=Flying -- Whenever another creature enters the battlefield under your control, you may discard a card. If you do, put a +1/+1 counter on that creature, it gains haste until end of turn, and it becomes a Vampire in addition to its other types. mana={1}{B}{R} type=Legendary Creature subtype=Vampire Knight @@ -75856,7 +75874,7 @@ type=Sorcery name=Omnath, Locus of Rage auto=@movedTo(land|myBattlefield):token(Elemental,Creature Elemental,5/5,red,green) controller auto=@movedto(Elemental|graveyard) from(mybattlefield):damage:3 target(creature,player) -text=Landfall ? Whenever a land enters the battlefield under your control, put a 5/5 red and green Elemental creature token onto the battlefield. -- Whenever Omnath, Locus of Rage or another Elemental you control dies, Omnath deals 3 damage to target creature or player. +text=Landfall — Whenever a land enters the battlefield under your control, put a 5/5 red and green Elemental creature token onto the battlefield. -- Whenever Omnath, Locus of Rage or another Elemental you control dies, Omnath deals 3 damage to target creature or player. mana={3}{R}{R}{G}{G} type=Legendary Creature subtype=Elemental @@ -75894,7 +75912,7 @@ subtype=Equipment name=Ondu Champion auto=choice all(creature|mybattlefield) trample ueot auto=@movedTo(ally|myBattlefield):all(creature|mybattlefield) trample ueot -text=Rally ? Whenever Ondu Champion or another Ally enters the battlefield under your control, creatures you control gain trample until end of turn. +text=Rally — Whenever Ondu Champion or another Ally enters the battlefield under your control, creatures you control gain trample until end of turn. mana={2}{R}{R} type=Creature subtype=Minotaur Warrior Ally @@ -75926,7 +75944,7 @@ toughness=4 name=Ondu Greathorn abilities=first strike auto=@movedTo(land|myBattlefield):2/2 ueot -text=First strike -- Landfall ? Whenever a land enters the battlefield under your control, Ondu Greathorn gets +2/+2 until end of turn. +text=First strike -- Landfall — Whenever a land enters the battlefield under your control, Ondu Greathorn gets +2/+2 until end of turn. mana={3}{W} type=Creature subtype=Beast @@ -75945,7 +75963,7 @@ type=Sorcery [card] name=Ondu War Cleric auto={T(ally|myBattlefield)}{t}:life:2 controller -text=Cohort ? {T}, Tap an untapped Ally you control: You gain 2 life. +text=Cohort — {T}, Tap an untapped Ally you control: You gain 2 life. mana={1}{W} type=Creature subtype=Human Cleric Ally @@ -76012,7 +76030,7 @@ toughness=3 [/card] [card] name=Ongoing Investigation -auto=@combatdamaged(player):token(Clue,Artifact Clue,0/0) and!( transforms((,newability[{S}{2}:draw:1])) forever )! controller +auto=@combatdamaged(player) from(creature|mybattlefield):token(Clue,Artifact Clue,0/0) and!( transforms((,newability[{S}{2}:draw:1])) forever )! controller auto={1}{G}{e(creature|mygraveyard)}:token(Clue,Artifact Clue,0/0) and!( transforms((,newability[{S}{2}:draw:1])) forever )! controller && life:2 text=Whenever one or more creatures you control deal combat damage to a player, investigate. (Put a colorless Clue artifact token onto the battlefield with "{2}, Sacrifice this artifact: Draw a card.") -- {1}{G}, Exile a creature card from your graveyard: Investigate. You gain 2 life. mana={1}{U} @@ -76368,7 +76386,7 @@ name=Oran-Rief Hydra abilities=trample auto=@movedTo(land[-forest]|myBattlefield):counter(1/1,1) auto=@movedTo(land[forest]|myBattlefield):counter(1/1,2) -text=Trample -- Landfall ? Whenever a land enters the battlefield under your control, put a +1/+1 counter on Oran-Rief Hydra. If that land is a Forest, put two +1/+1 counters on Oran-Rief Hydra instead. +text=Trample -- Landfall — Whenever a land enters the battlefield under your control, put a +1/+1 counter on Oran-Rief Hydra. If that land is a Forest, put two +1/+1 counters on Oran-Rief Hydra instead. mana={4}{G}{G} type=Creature subtype=Hydra @@ -77548,7 +77566,7 @@ type=Enchantment name=Painful Truths auto=draw:converge controller auto=life:-converge controller -text=Converge ? You draw X cards and you lose X life, where X is the number of colors of mana spent to cast Painful Truths. +text=Converge — You draw X cards and you lose X life, where X is the number of colors of mana spent to cast Painful Truths. mana={2}{B} type=Sorcery [/card] @@ -77588,7 +77606,7 @@ toughness=1 name=Palace Siege auto=choice name(Khans) transforms((,newability[counter(0/0.1.Khans)],newability[@each my upkeep:moveto(myhand) target(creature|mygraveyard)])) forever auto=choice name(Dragons) transforms((,newability[counter(0/0.1.Dragons)],newability[@each my upkeep:life:-2 opponent && life:2 controller])) forever -text=As Palace Siege enters the battlefield, choose Khans or Dragons. -- ? Khans ? At the beginning of your upkeep, return target creature card from your graveyard to your hand. -- ? Dragons ? At the beginning of your upkeep, each opponent loses 2 life and you gain 2 life. +text=As Palace Siege enters the battlefield, choose Khans or Dragons. -- — Khans — At the beginning of your upkeep, return target creature card from your graveyard to your hand. -- — Dragons — At the beginning of your upkeep, each opponent loses 2 life and you gain 2 life. mana={3}{B}{B} type=Enchantment [/card] @@ -80050,6 +80068,14 @@ power=2 toughness=2 [/card] [card] +name=Pick the Brain +target=opponent +auto=reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose card) target(*[-land]|reveal) moveto(exile) and!( if delirium then transforms((,newability[all(*[share!name!]|mygraveyard) moveto(exile)],newability[all(*[share!name!]|myhand) moveto(exile)],newability[all(*[share!name!]|mylibrary) moveto(exile) and!(shuffle)!]))) oneshot )! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend +text=Target opponent reveals his or her hand. You choose a nonland card from it and exile that card. -- Delirium — If there are four or more card types among cards in your graveyard, search that player's graveyard, hand, and library for any number of cards with the same name as the exiled card, exile those cards, then that player shuffles his or her library. +mana={2}{B} +type=Sorcery +[/card] +[card] name=Pieces of the Puzzle auto=reveal:5 optionone name(Get Cards) target(*[instant;sorcery]|reveal) moveto(myhand) optiononeend optiontwo name(put in graveyard) target(<1>*|reveal) moveto(ownergraveyard) and!( all(*|reveal) moveto(ownergraveyard) )! optiontwoend revealend text=Reveal the top five cards of your library. Put up to two instant and/or sorcery cards from among them into your hand and the rest into your graveyard. @@ -80272,7 +80298,7 @@ type=Sorcery name=Pious Evangel auto=life:1 auto=@movedto(creature|mybattlefield):life:1 -auto={2}{T}{S(creature|mybattlefield)}: flip(Wayward Disciple) +auto={2}{T}{S(other *|mybattlefield)}: flip(Wayward Disciple) text=Whenever Pious Evangel or another creature enters the battlefield under your control, you gain 1 life. -- {2}, {T}, Sacrifice another permanent: Transform Pious Evangel. mana={2}{W} type=Creature @@ -81121,10 +81147,9 @@ toughness=1 [/card] [card] name=Pore Over the Pages -target=land|mybattlefield -auto=untap auto=draw:3 controller -auto=reject target(*|myhand) +auto=untap target(land|mybattlefield) +auto=ability$!reject target(*|myhand)!$ controller text=Draw three cards, untap up to two lands, then discard a card. mana={3}{U}{U} type=Sorcery @@ -81566,7 +81591,7 @@ type=Sorcery [card] name=Press for Answers target=creature -auto=frozen +auto=freeze auto=token(Clue,Artifact Clue,0/0) and!( transforms((,newability[{S}{2}:draw:1])) forever )! controller text=Tap target creature. It doesn't untap during its controller's next untap step. -- Investigate. (Put a colorless Clue artifact token onto the battlefield with "{2}, Sacrifice this artifact: Draw a card.") mana={1}{U} @@ -82201,8 +82226,8 @@ type=Enchantment [/card] [card] name=Prized Amalgam -autograveyard=@movedto(other creature|mybattlefield) from(mygraveyard) once:phaseactionmulti[endofturn once] moveto(mybattlefield) && tap -autograveyard=@movedto(other creature|mystack) from(mygraveyard) once:phaseactionmulti[endofturn once] moveto(mybattlefield) && tap +autograveyard=@movedto(other creature|mybattlefield) from(mygraveyard) once:phaseactionmulti[endofturn once] moveto(mybattlefield) && tap(noevent) +autograveyard=@movedto(other creature|mystack) from(mygraveyard) once:phaseactionmulti[endofturn once] moveto(mybattlefield) && tap(noevent) text=Whenever a creature enters the battlefield, if it entered from your graveyard or you cast it from your graveyard, return Prized Amalgam from your graveyard to the battlefield tapped at the beginning of the next end step. mana={1}{U}{B} type=Creature @@ -83532,8 +83557,7 @@ toughness=4 [card] name=Quick Sliver abilities=flash -auto=lord(sliver|myhand) flash -auto=lord(sliver|opponenthand) flash +auto=lord(sliver|hand,library,graveyard,exile) spellmastery text=Flash -- Any player may play Sliver cards as though they had flash. mana={1}{G} type=Creature @@ -83841,8 +83865,8 @@ toughness=1 [/card] [card] name=Rabid Bite -target=creature -auto=transforms((,newability[dynamicability target(creature)])) +target=creature|mybattlefield +auto=transforms((,newability[dynamicability target(creature|opponentbattlefield)])) text=Target creature you control deals damage equal to its power to target creature you don't control. mana={1}{G} type=Sorcery @@ -83950,7 +83974,7 @@ toughness=3 [card] name=Radiant Flames auto=damage:converge all(creature|battlefield) -text=Converge ? Radiant Flames deals X damage to each creature, where X is the number of colors of mana spent to cast Radiant Flames. +text=Converge — Radiant Flames deals X damage to each creature, where X is the number of colors of mana spent to cast Radiant Flames. mana={2}{R} type=Sorcery [/card] @@ -84863,8 +84887,7 @@ type=Sorcery [/card] [card] name=Rancid Rats -abilities=deathtouch -auto=cantbeblockedby(creature[power>1]) +abilities=deathtouch,skulk text=Skulk (This creature can't be blocked by creatures with greater power.) -- Deathtouch (Any amount of damage this deals to a creature is enough to destroy it.) mana={1}{B} type=Creature @@ -85145,7 +85168,7 @@ toughness=3 name=Rattlechains abilities=flash, flying auto=target(spirit) hexproof ueot -auto=lord(spirit|myhand) flash +auto=lord(spirit|myhand,mylibrary,mygraveyard,myexile) spellmastery text=Flash -- Flying -- When Rattlechains enters the battlefield, target Spirit gains hexproof until end of turn. -- You may cast Spirit spells as though they had flash. mana={1}{U} type=Creature @@ -85205,7 +85228,7 @@ name=Ravaging Blaze target=creature auto=damage:X auto=if type(*[instant;sorcery]|mygraveyard)~morethan~1 then damage:x targetcontroller -text=Ravaging Blaze deals X damage to target creature. -- Spell mastery ? If there are two or more instant and/or sorcery cards in your graveyard, Ravaging Blaze also deals X damage to that creature's controller. +text=Ravaging Blaze deals X damage to target creature. -- Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, Ravaging Blaze also deals X damage to that creature's controller. mana={X}{R}{R} type=Instant [/card] @@ -85766,7 +85789,7 @@ toughness=6 [card] name=Reaper of Flight Moonsilver abilities=flying -auto=while(restriction{delirium}) {s(creature|mybattlefield)} +2/+1 ueot +auto=while(restriction{delirium}) {s(other creature|mybattlefield)}:2/1 ueot text=Flying -- Delirium Sacrifice another creature: Reaper of Flight Moonsilver gets +2/+1 until end of turn. Activate this ability only if there are four or more card types among cards in your graveyard. mana={3}{W}{W} type=Creature @@ -86401,7 +86424,6 @@ toughness=3 [/card] [card] name=Regathan Firecat -text= mana={2}{R} type=Creature subtype=Elemental Cat @@ -86562,18 +86584,6 @@ mana={2}{R}{R} type=Sorcery [/card] [card] -name=Relentless Dead -auto=@movedTo(this|graveyard) from(battlefield):transforms((,newability[{B}:moveto(myhand)])) ueot -auto=@movedTo(this|graveyard) from(battlefield):transforms((,newability[{X}:moveto(myhand) target(zombie[manacost=X]|mygraveyard)])) ueot -text=Menace (This creature can't be blocked except by two or more creatures.) -- When Relentless Dead dies, you may pay {B}. If you do, return it to its owner's hand. -- When Relentless Dead dies, you may pay {X}. If you do, return another target Zombie creature card with converted mana cost X from your graveyard to the battlefield. -mana={B}{B} -abilities=menace -type=Creature -subtype=Zombie -power=2 -toughness=2 -[/card] -[card] name=Relentless Hunter abilities=trample auto={1}{r}{g}:+1/+1 ueot && trample ueot @@ -87107,7 +87117,7 @@ toughness=4 name=Resolute Blademaster auto=choice all(creature|mybattlefield) double strike ueot auto=@movedTo(ally|myBattlefield):all(creature|mybattlefield) double strike ueot -text=Rally ? Whenever Resolute Blademaster or another Ally enters the battlefield under your control, creatures you control gain double strike until end of turn. +text=Rally — Whenever Resolute Blademaster or another Ally enters the battlefield under your control, creatures you control gain double strike until end of turn. mana={3}{R}{W} type=Creature subtype=Human Soldier Ally @@ -87344,14 +87354,14 @@ type=Enchantment [card] name=Retreat to Emeria auto=@movedTo(land|myBattlefield):name(choose one) transforms((,newability[choice name(Kor Token) token(-402007) controller],newability[choice name(1/1 ueot) all(creature|mybattlefield) 1/1 ueot])) -text=Landfall ? Whenever a land enters the battlefield under your control, choose one ? -- ? Put a 1/1 white Kor Ally creature token onto the battlefield. -- ? Creatures you control get +1/+1 until end of turn. +text=Landfall — Whenever a land enters the battlefield under your control, choose one — -- — Put a 1/1 white Kor Ally creature token onto the battlefield. -- — Creatures you control get +1/+1 until end of turn. mana={3}{W} type=Enchantment [/card] [card] name=Retreat to Kazandu auto=@movedTo(land|myBattlefield):transforms((,newability[if type(creature|battlefield)~morethan~0 then choice target(creature) counter(1/1)],newability[choice name(gain 2 life) life:2 controller])) -text=Landfall ? Whenever a land enters the battlefield under your control, choose one ? -- ? Put a +1/+1 counter on target creature. -- ? You gain 2 life. +text=Landfall — Whenever a land enters the battlefield under your control, choose one — -- — Put a +1/+1 counter on target creature. -- — You gain 2 life. mana={2}{G} type=Enchantment [/card] @@ -89085,7 +89095,7 @@ type=Sorcery name=Roilmage's Trick auto=all(creature|opponentbattlefield) -converge/0 ueot auto=draw:1 controller -text=Converge ? Creatures your opponents control get -X/-0 until end of turn, where X is the number of colors of mana spent to cast Roilmage's Trick. +text=Converge — Creatures your opponents control get -X/-0 until end of turn, where X is the number of colors of mana spent to cast Roilmage's Trick. mana={3}{U} type=Sorcery [/card] @@ -89591,7 +89601,6 @@ toughness=5 [/card] [card] name=Rotting Mastodon -text= mana={4}{B} type=Creature subtype=Zombie Elephant @@ -89909,7 +89918,6 @@ type=Enchantment [/card] [card] name=Rumbling Baloth -text= mana={2}{G}{G} type=Creature subtype=Beast @@ -89968,8 +89976,7 @@ type=Instant [card] name=Runaway Carriage abilities=trample -auto=@combat(attacking) source(this):treason ueot -auto=@combat(blocking) source(this):treason ueot +auto=@combat(attacking,blocking) source(this):phaseaction[combatends,sourceinplay] sacrifice text=Trample -- When Runaway Carriage attacks or blocks, sacrifice it at end of combat. mana={4} type=Artifact Creature @@ -93376,7 +93383,7 @@ toughness=1 [card] name=Scythe Leopard auto=@movedTo(land|myBattlefield):1/1 ueot -text=Landfall ? Whenever a land enters the battlefield under your control, Scythe Leopard gets +1/+1 until end of turn. +text=Landfall — Whenever a land enters the battlefield under your control, Scythe Leopard gets +1/+1 until end of turn. mana={G} type=Creature subtype=Cat @@ -94531,7 +94538,7 @@ name=Send to Sleep target=creature|battlefield auto=tap auto=if type(*[instant;sorcery]|mygraveyard)~morethan~1 then frozen -text=Tap up to two target creatures. -- Spell mastery ? If there are two or more instant and/or sorcery cards in your graveyard, those creatures don't untap during their controllers' next untap steps. +text=Tap up to two target creatures. -- Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, those creatures don't untap during their controllers' next untap steps. mana={1}{U} type=Instant [/card] @@ -95572,7 +95579,7 @@ name=Shaman of the Great Hunt abilities=haste auto=lord(creature|mybattlefield) transforms((,newability[@combatdamaged(player) from(this):counter(1/1.1) all(this)])) auto={2}{GU}{GU}:foreach(creature[power>=4]|mybattlefield) draw:1 -text=Haste -- Whenever a creature you control deals combat damage to a player, put a +1/+1 counter on it. -- Ferocious ? {2}{G/U}{G/U}: Draw a card for each creature you control with power 4 or greater. +text=Haste -- Whenever a creature you control deals combat damage to a player, put a +1/+1 counter on it. -- Ferocious — {2}{G/U}{G/U}: Draw a card for each creature you control with power 4 or greater. mana={3}{R} type=Creature subtype=Orc Shaman @@ -95593,7 +95600,7 @@ toughness=2 name=Shamanic Revelation auto=draw:type:creature:mybattlefield auto=foreach(creature[power>=4]|mybattlefield) life:4 -text=Draw a card for each creature you control. -- Ferocious ? You gain 4 life for each creature you control with power 4 or greater. +text=Draw a card for each creature you control. -- Ferocious — You gain 4 life for each creature you control with power 4 or greater. mana={3}{G}{G} type=Sorcery [/card] @@ -96251,7 +96258,7 @@ toughness=2 [card] name=Shimmer Myr abilities=flash -auto=lord(artifact|myhand) flash +auto=lord(artifact|myhand,mylibrary,mygraveyard,myexile) spellmastery text=Flash -- You may cast artifact cards as though they had flash. mana={3} type=Artifact Creature @@ -97301,8 +97308,8 @@ type=Sorcery name=Sigarda, Heron's Grace abilities=flying, playershroud auto=lord(human|mybattlefield) hexproof -auto={2},{e(*|mygraveyard)}: token(Human Soldier,creature Human Soldier,1/1,white) -text=flying -- you and humans you control have hexproof -- {2}, exile a card from your graveyard: put a 1/1 white human soldier onto the battlefield +auto={2}{E(*|mygraveyard)}:token(Human Soldier,Creature Human Soldier,1/1,white) +text=Flying -- You and Humans you control have hexproof. -- {2}, Exile a card from your graveyard: Put a 1/1 white Human Soldier creature token onto the battlefield. mana={3}{G}{W} type=Legendary Creature subtype=Angel @@ -97503,7 +97510,6 @@ type=Instant [/card] [card] name=Silent Artisan -text= mana={3}{W}{W} type=Creature subtype=Giant @@ -98601,13 +98607,20 @@ type=Instant name=Skin Invasion target=creature auto=mustattack -auto=@movedto(mytgt|ownergraveyard) from(ownerbattlefield):token(Skin Shedder,creature Insect Horror,3/4,red) controller +auto=@movedto(mytgt|graveyard) from(battlefield):all(this) transforms((,newability[moveto(mybattlefield)],newability[flip(Skin Shedder)])) forever text=Enchant creature -- Enchanted creature attacks each combat if able. -- When enchanted creature dies, return Skin Invasion to the battlefield transformed under your control. mana={R} type=Enchantment subtype=Aura [/card] [card] +name=Skin Shedder +type=Creature +subtype=Insect Horror +power=3 +toughness=4 +[/card] +[card] name=Skinbrand Goblin autohand={R}{discard}:name(bloodrush) target(creature[attacking]) 2/1 ueot text=Bloodrush — {R}, Discard Skinbrand Goblin: Target attacking creature gets +2/+1 until end of turn. @@ -99127,7 +99140,7 @@ toughness=1 name=Skybind auto=(blink) target(*[-enchantment]) ueot auto=@movedTo(enchantment|myBattlefield):(blink) target(*[-enchantment]) ueot -text=Constellation ? Whenever Skybind or another enchantment enters the battlefield under your control, exile target nonenchantment permanent. Return that card to the battlefield under its owner's control at the beginning of the next end step. +text=Constellation — Whenever Skybind or another enchantment enters the battlefield under your control, exile target nonenchantment permanent. Return that card to the battlefield under its owner's control at the beginning of the next end step. mana={3}{W}{W} type=Enchantment [/card] @@ -99329,7 +99342,7 @@ type=Sorcery name=Skyrider Elf abilities=flying auto=counter(1/1,converge) -text=Flying -- Converge ? Skyrider Elf enters the battlefield with a +1/+1 counter on it for each color of mana spent to cast it. +text=Flying -- Converge — Skyrider Elf enters the battlefield with a +1/+1 counter on it for each color of mana spent to cast it. mana={X}{G}{U} type=Creature subtype=Elf Warrior Ally @@ -100133,7 +100146,6 @@ toughness=1 [/card] [card] name=Sliver Construct -text= mana={3} type=Artifact Creature subtype=Sliver Construct @@ -100568,7 +100580,7 @@ toughness=2 [card] name=Snapping Gnarlid auto=@movedTo(land|myBattlefield):1/1 ueot -text=Landfall ? Whenever a land enters the battlefield under your control, Snapping Gnarlid gets +1/+1 until end of turn. +text=Landfall — Whenever a land enters the battlefield under your control, Snapping Gnarlid gets +1/+1 until end of turn. mana={1}{G} type=Creature subtype=Beast @@ -101444,8 +101456,8 @@ auto={C(0/0,-8,Loyalty)}:damage:8 target(creature,planeswalker) && life:8 contro auto={C(0/0,-9,Loyalty)}:damage:9 target(creature,planeswalker) && life:9 controller auto={C(0/0,-10,Loyalty)}:damage:10 target(creature,planeswalker) && life:10 controller auto={C(0/0,-15,Loyalty)}:damage:15 target(creature,planeswalker) && life:15 controller -auto={C(0/0,-9,Loyalty)}:token(Vampire Knight,creture Vampire Knight,1/1,black,lifelink)*highestlifetotal -text=+1: draw a card, your opponent loses life equal to its converted mana cost -- -X: Sorin, Grim Nemesis deals x damage to target creature or planeswalker and you gain x life -- -9: put a number of 1/1 black vampire knigt creature tokens with lifelink onto the battlefield equal to the highest life total among all players +auto={C(0/0,-9,Loyalty)}:token(Vampire Knight,Creature Vampire Knight,1/1,black,lifelink)*highestlifetotal +text=+1: Reveal the top card of your library and put that card into your hand. Each opponent loses life equal to its converted mana cost. -- -X: Sorin, Grim Nemesis deals X damage to target creature or planeswalker and you gain X life. -- -9: Put a number of 1/1 black Vampire Knight creature tokens with lifelink onto the battlefield equal to the highest life total among all players. mana={4}{W}{B} type=Planeswalker subtype=Sorin @@ -102221,7 +102233,7 @@ toughness=5 [card] name=Spawnbinder Mage auto={T(ally|myBattlefield)}{t}:target(creature) tap -text=Cohort ? {T}, Tap an untapped Ally you control: Tap target creature. +text=Cohort — {T}, Tap an untapped Ally you control: Tap target creature. mana={3}{W} type=Creature subtype=Human Wizard Ally @@ -102978,7 +102990,6 @@ toughness=2 [card] name=Spiked Jester abilities=haste -text= mana={B}{R} type=Creature subtype=Goblin Warrior @@ -105005,7 +105016,6 @@ type=Enchantment [card] name=Steeple Roc abilities=flying,first strike -text= mana={4}{W} type=Creature subtype=Bird @@ -105039,8 +105049,8 @@ type=Land [/card] [card] name=Stensia Masquerade -auto=lord(creature|mybattlefield) first strike -auto=@combatdamaged(player) from(vampire|mybattlefield): counter(1/1,1) all(trigger[to]) +auto=lord(creature[attacking]|mybattlefield) first strike +auto=@combatdamaged(player) from(vampire|mybattlefield): counter(1/1,1) all(trigger[from]) abilities=madness autoexile=restriction{discarded} pay({2}{r}) name(pay 2r to cast) activate name(pay 2r to cast) castcard(normal)?name(put in graveyard) moveto(ownergraveyard) text=Attacking creatures you control have first strike. -- Whenever a Vampire you control deals combat damage to a player, put a +1/+1 counter on it. -- Madness {2}{R} (If you discard this card, discard it into exile. When you do, cast it for its madness cost or put it into your graveyard.) @@ -105289,7 +105299,7 @@ toughness=4 [/card] [card] name=Stitched Mangler -auto=target(creature) tap && frozen +auto=target(creature) freeze auto=tap(noevent) text=Stitched Mangler enters the battlefield tapped. -- When Stitched Mangler enters the battlefield, tap target creature an opponent controls. That creature doesn't untap during its controller's next untap step. mana={2}{U} @@ -105529,7 +105539,7 @@ toughness=2 [card] name=Stoneforge Acolyte auto={t}{T(ally|myBattlefield)}:reveal:5 optionone name(Get Equipment) target(equipment|reveal) moveto(myhand) optiononeend optiontwo name(put on bottom) target(<5>*|reveal) bottomoflibrary optiontwoend revealend -text=Cohort ? {T}, Tap an untapped Ally you control: Look at the top four cards of your library. You may reveal an Equipment card from among them and put it into your hand. Put the rest on the bottom of your library in any order. +text=Cohort — {T}, Tap an untapped Ally you control: Look at the top four cards of your library. You may reveal an Equipment card from among them and put it into your hand. Put the rest on the bottom of your library in any order. mana={W} type=Creature subtype=Kor Artificer Ally @@ -106255,7 +106265,7 @@ toughness=4 name=Strength from the Fallen auto=target(creature) type:creature:mygraveyard/type:creature:mygraveyard ueot auto=@movedTo(enchantment|myBattlefield):target(creature) type:creature:mygraveyard/type:creature:mygraveyard ueot -text=Constellation ? Whenever Strength from the Fallen or another enchantment enters the battlefield under your control, target creature gets +X/+X until end of turn, where X is the number of creature cards in your graveyard. +text=Constellation — Whenever Strength from the Fallen or another enchantment enters the battlefield under your control, target creature gets +X/+X until end of turn, where X is the number of creature cards in your graveyard. mana={1}{G} type=Enchantment [/card] @@ -106555,7 +106565,7 @@ type=Sorcery name=Stubborn Denial target=*[-creature]|stack auto=if type(creature[power>=4]|mybattlefield) then fizzle else transforms((,newability[pay[[{1}]] name(pay 1 mana) donothing?fizzle])) forever -text=Counter target noncreature spell unless its controller pays {1}. -- Ferocious ? If you control a creature with power 4 or greater, counter that spell instead. +text=Counter target noncreature spell unless its controller pays {1}. -- Ferocious — If you control a creature with power 4 or greater, counter that spell instead. mana={U} type=Instant [/card] @@ -106993,7 +107003,6 @@ toughness=2 [/card] [card] name=Summit Prowler -text= mana={2}{R}{R} type=Creature subtype=Yeti @@ -108069,7 +108078,7 @@ other={1}{W} name(Spell Mastery) otherrestriction=type(*[instant;sorcery]|mygraveyard)~morethan~1 target=creature[tapped]|battlefield auto=destroy -text=Spell mastery ? If there are two or more instant and/or sorcery cards in your graveyard, you may cast Swift Reckoning as though it had flash. (You may cast it any time you could cast an instant.) Destroy target tapped creature. +text=Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, you may cast Swift Reckoning as though it had flash. (You may cast it any time you could cast an instant.) Destroy target tapped creature. mana={1}{W} type=Sorcery [/card] @@ -108305,7 +108314,6 @@ type=Instant [/card] [card] name=Swordwise Centaur -text= mana={G}{G} type=Creature subtype=Centaur Warrior @@ -108833,7 +108841,7 @@ toughness=2 name=Tajuru Beastmaster auto=choice all(creature|mybattlefield) 1/1 ueot auto=@movedTo(ally|myBattlefield):all(creature|mybattlefield) 1/1 ueot -text=Rally ? Whenever Tajuru Beastmaster or another Ally enters the battlefield under your control, creatures you control get +1/+1 until end of turn. +text=Rally — Whenever Tajuru Beastmaster or another Ally enters the battlefield under your control, creatures you control get +1/+1 until end of turn. mana={5}{G} type=Creature subtype=Elf Warrior Ally @@ -108853,7 +108861,7 @@ toughness=4 [card] name=Tajuru Stalwart auto=counter(1/1,converge) -text=Converge ? Tajuru Stalwart enters the battlefield with a +1/+1 counter on it for each color of mana spent to cast it. +text=Converge — Tajuru Stalwart enters the battlefield with a +1/+1 counter on it for each color of mana spent to cast it. mana={2}{G} type=Creature subtype=Elf Scout Ally @@ -108864,7 +108872,7 @@ toughness=1 name=Tajuru Warcaller auto=choice all(creature|mybattlefield) 2/2 ueot auto=@movedTo(ally|myBattlefield):all(creature|mybattlefield) 2/2 ueot -text=Rally ? Whenever Tajuru Warcaller or another Ally enters the battlefield under your control, creatures you control get +2/+2 until end of turn. +text=Rally — Whenever Tajuru Warcaller or another Ally enters the battlefield under your control, creatures you control get +2/+2 until end of turn. mana={3}{G}{G} type=Creature subtype=Elf Warrior Ally @@ -109185,7 +109193,7 @@ subtype=Tamiyo name=Tamiyo's Journal auto=@upkeep:token(Clue,Artifact Clue,0/0) and!( transforms((,newability[{S}{2}:draw:1])) forever )! auto={T}{S(clue|mybattlefield)}{S(clue|mybattlefield)}{S(clue|mybattlefield)}: moveto(myhand) target(*|mylibrary) -text=at the beginning of your upkeep, investigate -- {T}, sacrifice three clues: search your library for a card and put that card into your hand, then shuffle your library +text=At the beginning of your upkeep, investigate. (Put a colorless Clue artifact token onto the battlefield with "{2}, Sacrifice this artifact: Draw a card.") -- {T}, Sacrifice three Clues: Search your library for a card and put that card into your hand. Then shuffle your library. mana={5} type=Legendary Artifact [/card] @@ -110624,7 +110632,7 @@ toughness=2 [card] name=Tethmos High Priest auto=@targeted(this) from(*[instant;sorcery;enchantment]|myhand,mygraveyard):moveTo(mybattlefield) target(creature[manacost<=2]|mygraveyard) -text=Heroic ? Whenever you cast a spell that targets Tethmos High Priest, return target creature card with converted mana cost 2 or less from your graveyard to the battlefield. +text=Heroic — Whenever you cast a spell that targets Tethmos High Priest, return target creature card with converted mana cost 2 or less from your graveyard to the battlefield. mana={2}{W} type=Creature subtype=Cat Cleric @@ -110919,7 +110927,7 @@ type=Sorcery name=Thassa's Devourer auto=deplete:2 target(player) auto=@movedTo(enchantment|myBattlefield):deplete:2 target(player) -text=Constellation ? Whenever Thassa's Devourer or another enchantment enters the battlefield under your control, target player puts the top two cards of his or her library into his or her graveyard. +text=Constellation — Whenever Thassa's Devourer or another enchantment enters the battlefield under your control, target player puts the top two cards of his or her library into his or her graveyard. mana={4}{U} type=Enchantment Creature subtype=Elemental @@ -111024,7 +111032,7 @@ abilities=deathtouch auto=upcost[{S(land|mybattlefield)}] sacrifice auto=maxPlay(land)+1 auto=@movedto(land|mygraveyard): draw:1 -text=deathtouch -- at the beggining of your upkeep, sacrifice The Gitrog Monster unless you sacrifice a land -- you may play an additional land on each of your turns -- whenever a land is put into a graveyard, draw a card +text=Deathtouch -- At the beginning of your upkeep, sacrifice The Gitrog Monster unless you sacrifice a land. -- You may play an additional land on each of your turns. -- Whenever one or more land cards are put into your graveyard from anywhere, draw a card. mana={3}{B}{G} type=Legendary Creature subtype=Frog Horror @@ -111746,7 +111754,7 @@ toughness=1 name=Thoughtrender Lamia auto=ability$!name(discard) target(*|myhand) reject!$ opponent auto=@movedTo(enchantment|myBattlefield):ability$!name(discard) target(*|myhand) reject!$ opponent -text=Constellation ? Whenever Thoughtrender Lamia or another enchantment enters the battlefield under your control, each opponent discards a card. +text=Constellation — Whenever Thoughtrender Lamia or another enchantment enters the battlefield under your control, each opponent discards a card. mana={4}{B}{B} type=Enchantment Creature subtype=Lamia @@ -113209,6 +113217,16 @@ mana={1}{W} type=Instant [/card] [card] +name=To the Slaughter +target=player +auto=ifnot delirium then ability$!name(sacrifice) notatarget(creature,planeswalker|myBattlefield) sacrifice!$ targetedplayer +auto=if delirium then ability$!name(sacrifice) notatarget(creature|myBattlefield) sacrifice!$ targetedplayer +auto=if delirium then ability$!name(sacrifice) notatarget(planeswalker|myBattlefield) sacrifice!$ targetedplayer +text=Target player sacrifices a creature or planeswalker. -- Delirium — If there are four or more card types among cards in your graveyard, instead that player sacrifices a creature and a planeswalker. +mana={2}{B} +type=Instant +[/card] +[card] name=Tobias Andrion mana={3}{W}{U} type=Legendary Creature @@ -114006,7 +114024,7 @@ toughness=4 [/card] [card] name=Town Gossipmonger -auto={T}{t(creature|mybattlefield)}:flip(Incited Rabble) +auto={T}{T(other creature|mybattlefield)}:flip(Incited Rabble) text={T}, Tap an untapped creature you control: Transform Town Gossipmonger. mana={W} type=Creature @@ -114554,7 +114572,6 @@ subtype=Aura [/card] [card] name=Traveling Philosopher -text= mana={1}{W} type=Creature subtype=Human Advisor @@ -115228,7 +115245,7 @@ toughness=1 [card] name=Triton Cavalry auto=@targeted(this) from(*[instant;sorcery;enchantment]|myhand,mygraveyard):may moveTo(ownerhand) target(enchantment|battlefield) -text=Heroic ? Whenever you cast a spell that targets Triton Cavalry, you may return target enchantment to its owner's hand. +text=Heroic — Whenever you cast a spell that targets Triton Cavalry, you may return target enchantment to its owner's hand. mana={3}{U} type=Creature subtype=Merfolk Soldier @@ -115257,7 +115274,6 @@ toughness=1 [/card] [card] name=Triton Shorethief -text= mana={U} type=Creature subtype=Merfolk Rogue @@ -115695,7 +115711,7 @@ type=Instant [card] name=Tunneling Geopede auto=@movedTo(land|myBattlefield):damage:1 all(opponent) -text=Landfall ? Whenever a land enters the battlefield under your control, Tunneling Geopede deals 1 damage to each opponent. +text=Landfall — Whenever a land enters the battlefield under your control, Tunneling Geopede deals 1 damage to each opponent. mana={2}{R} type=Creature subtype=Insect @@ -115808,7 +115824,6 @@ toughness=4 [/card] [card] name=Tusked Colossodon -text= mana={4}{G}{G} type=Creature subtype=Beast @@ -116629,7 +116644,7 @@ subtype=Island Swamp name=Undergrowth Champion auto=this(counter{1/1.1}>0) phantom auto=@movedTo(land|myBattlefield):counter(1/1,1) -text=If damage would be dealt to Undergrowth Champion while it has a +1/+1 counter on it, prevent that damage and remove a +1/+1 counter from Undergrowth Champion. -- Landfall ? Whenever a land enters the battlefield under your control, put a +1/+1 counter on Undergrowth Champion. +text=If damage would be dealt to Undergrowth Champion while it has a +1/+1 counter on it, prevent that damage and remove a +1/+1 counter from Undergrowth Champion. -- Landfall — Whenever a land enters the battlefield under your control, put a +1/+1 counter on Undergrowth Champion. mana={1}{G}{G} type=Creature subtype=Elemental @@ -116686,7 +116701,7 @@ name=Underworld Coinsmith auto=life:1 auto=@movedTo(enchantment|myBattlefield):life:1 auto={W}{B}{L}:life:-1 opponent -text=Constellation ? Whenever Underworld Coinsmith or another enchantment enters the battlefield under your control, you gain 1 life. -- {W}{B}, Pay 1 life: Each opponent loses 1 life. +text=Constellation — Whenever Underworld Coinsmith or another enchantment enters the battlefield under your control, you gain 1 life. -- {W}{B}, Pay 1 life: Each opponent loses 1 life. mana={W}{B} type=Enchantment Creature subtype=Human Cleric @@ -116857,7 +116872,7 @@ name=Unholy Hunger target=creature auto=destroy auto=if type(*[instant;sorcery]|mygraveyard)~morethan~1 then life:2 srccontroller -text=Destroy target creature. -- Spell mastery ? If there are two or more instant and/or sorcery cards in your graveyard, you gain 2 life. +text=Destroy target creature. -- Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, you gain 2 life. mana={3}{B}{B} type=Instant [/card] @@ -116873,7 +116888,7 @@ subtype=Aura [card] name=Unified Front auto=token(Kor Ally,Creature Kor Ally,1/1,white)*converge -text=Converge ? Put a 1/1 white Kor Ally creature token onto the battlefield for each color of mana spent to cast Unified Front. +text=Converge — Put a 1/1 white Kor Ally creature token onto the battlefield for each color of mana spent to cast Unified Front. mana={3}{W} type=Sorcery [/card] @@ -116904,7 +116919,7 @@ toughness=3 [/card] [card] name=Uninvited Geist -auto=cantbeblockedby(creature[power>2]) +abilities=skulk auto=@combatdamaged(player) from(this):flip(Unimpeded Trespasser) text=Skulk (This creature can't be blocked by creatures with greater power.) -- When Uninvited Geist deals combat damage to a player, transform it. mana={2}{U} @@ -117758,7 +117773,7 @@ toughness=3 [card] name=Valakut Predator auto=@movedTo(land|myBattlefield):2/2 ueot -text=Landfall ? Whenever a land enters the battlefield under your control, Valakut Predator gets +2/+2 until end of turn. +text=Landfall — Whenever a land enters the battlefield under your control, Valakut Predator gets +2/+2 until end of turn. mana={2}{R} type=Creature subtype=Elemental @@ -117852,7 +117867,7 @@ name=Valorous Stance target=creature auto=choice name(indestructible) indestructible ueot auto=if cantargetcard(creature[power>=4]|battlefield) then choice name(Destroy) destroy -text=Choose one ? Target creature gains indestructible until end of turn. - Destroy target creature with toughness 4 or greater. +text=Choose one — Target creature gains indestructible until end of turn. - Destroy target creature with toughness 4 or greater. mana={1}{W} type=Instant [/card] @@ -118461,7 +118476,7 @@ toughness=2 [/card] [card] name=Vedalken Orrery -auto=lord(*[-land]|myhand) flash +auto=lord(*[-land]|myhand,mylibrary,mygraveyard,myexile) spellmastery text=You may cast nonland cards as though they had flash. mana={4} type=Artifact @@ -118963,10 +118978,7 @@ type=Enchantment [/card] [card] name=Vernal Equinox -auto=lord(creature|myhand) flash -auto=lord(creature|opponenthand) flash -auto=lord(enchantment|myhand) flash -auto=lord(enchantment|opponenthand) flash +auto=lord(*[creature;enchantment]|hand,library,graveyard,exile) spellmastery text=Any player may play creature and enchantment cards as though they had flash. mana={3}{G} type=Enchantment @@ -119026,7 +119038,7 @@ type=Enchantment [/card] [card] name=Vessel of Malignity -auto={1}{B}{s}:target(opponent) ability$! moveto(exile) target(*|myhand)!$ targetedplayer assorcery +auto={1}{B}{s}:name(exile from hand) target(opponent) ability$! moveto(exile) target(*|myhand)!$ targetedplayer assorcery text={1}{B}, Sacrifice Vessel of Malignity: Target opponent exiles two cards from his or her hand. Activate this ability only any time you could cast a sorcery. mana={1}{B} type=Enchantment @@ -119769,6 +119781,17 @@ power=1 toughness=1 [/card] [card] +name=Village Messenger +abilities=haste +auto=@each upkeep restriction{lastturn(*|stack)~lessthan~1}:flip(Moonrise Intruder) +text=Haste -- At the beginning of each upkeep, if no spells were cast last turn, transform Village Messenger. +mana={R} +type=Creature +subtype=Human Werewolf +power=1 +toughness=1 +[/card] +[card] name=Village Survivors abilities=vigilance auto=this(controllerlife < 6) lord(other creature|mybattlefield) vigilance @@ -122586,9 +122609,9 @@ type=Enchantment [/card] [card] name=Warped Landscape -auto={T}:Add{1} -auto={2}{T}{s}:moveto(mybattlefield) target(basic|mylibrary) and!(tap(noevent))! -text={T}: Add {1} to your mana pool. -- {2}, {T}, Sacrifice Warped Landscape: Search your library for a basic land card and put it onto the battlefield tapped. Then shuffle your library. +auto={T}:Add{C} +auto={2}{T}{S}:moveto(mybattlefield) target(basic|mylibrary) and!(tap(noevent))! +text={T}: Add {C} to your mana pool. -- {2}, {T}, Sacrifice Warped Landscape: Search your library for a basic land card and put it onto the battlefield tapped. Then shuffle your library. type=Land [/card] [card] @@ -122985,7 +123008,7 @@ type=Sorcery [card] name=Wavecrash Triton auto=@targeted(this) from(*[instant;sorcery;enchantment]|myhand,mygraveyard):target(creature|opponentbattlefield) transforms((,newability[tap],newability[frozen])) oneshot -text=Heroic ? Whenever you cast a spell that targets Wavecrash Triton, tap target creature an opponent controls. That creature doesn't untap during its controller's next untap step. +text=Heroic — Whenever you cast a spell that targets Wavecrash Triton, tap target creature an opponent controls. That creature doesn't untap during its controller's next untap step. mana={2}{U} type=Creature subtype=Merfolk Wizard @@ -123015,7 +123038,7 @@ toughness=4 name=Wave-Wing Elemental abilities=flying auto=@movedTo(land|myBattlefield):2/2 ueot -text=Flying -- Landfall ? Whenever a land enters the battlefield under your control, Wave-Wing Elemental gets +2/+2 until end of turn. +text=Flying -- Landfall — Whenever a land enters the battlefield under your control, Wave-Wing Elemental gets +2/+2 until end of turn. mana={5}{U} type=Creature subtype=Elemental @@ -123105,8 +123128,7 @@ toughness=4 [/card] [card] name=Wayward Disciple -auto=@movedto(creature|mygraveyard):life:1 controller -auto=@movedto(creature|mygraveyard):life:-1 opponent +auto=@movedto(creature|mygraveyard):target(opponent) life:-1 && life:1 controller text=Whenever Wayward Disciple or another creature you control dies, target opponent loses 1 life and you gain 1 life. type=Creature subtype=Human Cleric @@ -123508,7 +123530,6 @@ toughness=* [/card] [card] name=Wetland Sambar -text= mana={1}{U} type=Creature subtype=Elk @@ -123933,7 +123954,7 @@ type=Instant name=Whitewater Naiads auto=unblockable target(creature) ueot auto=@movedTo(enchantment|myBattlefield):unblockable target(creature) ueot -text=Constellation ? Whenever Whitewater Naiads or another enchantment enters the battlefield under your control, target creature can't be blocked this turn. +text=Constellation — Whenever Whitewater Naiads or another enchantment enters the battlefield under your control, target creature can't be blocked this turn. mana={3}{U}{U} type=Enchantment Creature subtype=Nymph @@ -124550,7 +124571,7 @@ type=Sorcery [card] name=Winding Canyons auto={T}:Add{1} -auto={2}{T}:all(creature|myhand) transforms((,newability[flash ueot])) +auto={2}{T}:name(flash) emblem transforms((,newability[lord(creature|myhand,mylibrary,mygraveyard,myexile) spellmastery])) ueot text={T}: Add {1} to your mana pool. -- {2}, {T}: Until end of turn, you may play creature cards as though they had flash. type=Land [/card] @@ -124611,6 +124632,17 @@ power=2 toughness=2 [/card] [card] +name=Windrider Patrol +abilities=flying +auto=@combatdamaged(player) from(this):name(scry) scry:2 scrycore delayed dontshow donothing scrycoreend scryend +text=Flying -- Whenever Windrider Patrol deals combat damage to a player, scry 2. (Look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.) +mana={3}{U}{U} +type=Creature +subtype=Merfolk Wizard +power=4 +toughness=3 +[/card] +[card] name=Winds of Change auto=all(*|myhand) transforms((,newability[draw:1],newability[moveTo(mylibrary) and!(shuffle)!])) auto=all(*|opponenthand) transforms((,newability[draw:1],newability[moveTo(mylibrary) and!(shuffle)!])) @@ -125095,7 +125127,6 @@ toughness=1 [/card] [card] name=Witch's Familiar -text= mana={2}{B} type=Creature subtype=Zombie Minotaur @@ -125317,7 +125348,7 @@ type=Instant [/card] [card] name=Wolf of Devil's Breach -auto=this(attacking) {1}{R}{discard(*|myhand)}:damage:manacost +auto=this(attacking) {1}{R}{discard(*|myhand)}:damage:storedmanacost target(creature,planeswalker) text=Whenever Wolf of Devil's Breach attacks, you may pay {1}{R} and discard a card. If you do, Wolf of Devil's Breach deals damage to target creature or planeswalker equal to the discarded card's converted mana cost. mana={3}{R}{R} type=Creature @@ -125590,7 +125621,7 @@ type=Land name=Woodland Wanderer abilities=vigilance,trample auto=counter(1/1,converge) -text=Vigilance, trample -- Converge ? Woodland Wanderer enters the battlefield with a +1/+1 counter on it for each color of mana spent to cast it. +text=Vigilance, trample -- Converge — Woodland Wanderer enters the battlefield with a +1/+1 counter on it for each color of mana spent to cast it. mana={3}{G} type=Creature subtype=Elemental @@ -126631,7 +126662,7 @@ toughness=2 [/card] [card] name=Yeva, Nature's Herald -auto=lord(creature[green]|myhand) flash +auto=lord(creature[green]|myhand,mylibrary,mygraveyard,myexile) spellmastery abilities=flash text=Flash (You may cast this spell any time you could cast an instant.) -- You may cast green creature cards as though they had flash. mana={2}{G}{G} @@ -126681,7 +126712,6 @@ subtype=Aura [/card] [card] name=Yoked Ox -text= mana={W} type=Creature subtype=Ox @@ -126825,7 +126855,7 @@ toughness=5 name=Zada's Commando abilities=first strike auto={T(ally|myBattlefield)}{t}:damage:1 target(opponent) -text=First strike -- Cohort ? {T}, Tap an untapped Ally you control: Zada's Commando deals 1 damage to target opponent. +text=First strike -- Cohort — {T}, Tap an untapped Ally you control: Zada's Commando deals 1 damage to target opponent. mana={1}{R} type=Creature subtype=Goblin Archer Ally @@ -127528,7 +127558,7 @@ toughness=3 [card] name=Zulaport Chainmage auto={T(ally|myBattlefield)}{t}:target(opponent) life:-2 -text=Cohort ? {T}, Tap an untapped Ally you control: Target opponent loses 2 life. +text=Cohort — {T}, Tap an untapped Ally you control: Target opponent loses 2 life. mana={3}{B} type=Creature subtype=Human Shaman Ally diff --git a/projects/mtg/include/AllAbilities.h b/projects/mtg/include/AllAbilities.h index 83c52bd2e..37fe8f4e7 100644 --- a/projects/mtg/include/AllAbilities.h +++ b/projects/mtg/include/AllAbilities.h @@ -903,19 +903,29 @@ private: } else if (s == "gravecardtypes")//Tarmogoyf { - for (int i = 0; i < 2; i++) + intValue = 0; + int pc = 0, tc = 0, sc = 0, lc = 0, ic = 0, ec = 0, cc = 0, ac = 0; + for (int j = 0; j < 2; j++) { - MTGGameZone * checkZone = card->getObserver()->players[i]->game->graveyard; - intValue = - cardHasTypeinZone("planeswalker",checkZone) + - cardHasTypeinZone("tribal",checkZone) + - cardHasTypeinZone("sorcery",checkZone) + - cardHasTypeinZone("land",checkZone) + - cardHasTypeinZone("instant",checkZone) + - cardHasTypeinZone("enchantment",checkZone) + - cardHasTypeinZone("creature",checkZone) + - cardHasTypeinZone("artifact",checkZone); + MTGGameZone * checkZone = card->getObserver()->players[j]->game->graveyard; + if(cardHasTypeinZone("planeswalker",checkZone)) + pc = 1; + if(cardHasTypeinZone("tribal",checkZone)) + tc = 1; + if(cardHasTypeinZone("sorcery",checkZone)) + sc = 1; + if(cardHasTypeinZone("land",checkZone)) + lc = 1; + if(cardHasTypeinZone("instant",checkZone)) + ic = 1; + if(cardHasTypeinZone("enchantment",checkZone)) + ec = 1; + if(cardHasTypeinZone("creature",checkZone)) + cc = 1; + if(cardHasTypeinZone("artifact",checkZone)) + ac = 1; } + intValue = pc+tc+sc+lc+ic+ec+cc+ac; } else if (s == "powertotalinplay")//Count Total Power of Creatures you control... Formidable { @@ -1133,10 +1143,13 @@ public: TargetChooser * toTcCard, *fromTcCard; bool sourceUntapped; bool isSuspended; + bool limitOnceATurn; + int triggeredTurn; TrCardAddedToZone(GameObserver* observer, int id, MTGCardInstance * source, TargetZoneChooser * toTcZone, TargetChooser * toTcCard, - TargetZoneChooser * fromTcZone = NULL, TargetChooser * fromTcCard = NULL,bool once = false,bool sourceUntapped = false,bool isSuspended = false) : - Trigger(observer, id, source, once), toTcZone(toTcZone), fromTcZone(fromTcZone), toTcCard(toTcCard), fromTcCard(fromTcCard),sourceUntapped(sourceUntapped),isSuspended(isSuspended) + TargetZoneChooser * fromTcZone = NULL, TargetChooser * fromTcCard = NULL,bool once = false,bool sourceUntapped = false,bool isSuspended = false, bool limitOnceATurn = false) : + Trigger(observer, id, source, once), toTcZone(toTcZone), fromTcZone(fromTcZone), toTcCard(toTcCard), fromTcCard(fromTcCard),sourceUntapped(sourceUntapped),isSuspended(isSuspended),limitOnceATurn(limitOnceATurn) { + triggeredTurn = -1; }; @@ -1146,6 +1159,8 @@ public: if (!e) return 0; if(sourceUntapped && source->isTapped() == 1) return 0; + if (limitOnceATurn && triggeredTurn == game->turn) + return 0; if(isSuspended && !source->suspended) return 0; if (!toTcZone->targetsZone(e->to)) return 0; @@ -1160,7 +1175,7 @@ public: { return 0; } - + triggeredTurn = game->turn; return 1; } @@ -1230,6 +1245,28 @@ public: } }; +class TrCardTransformed: public Trigger +{ +public: + TrCardTransformed(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc, bool once = false) : + Trigger(observer, id, source, once, tc) + { + } + + int triggerOnEventImpl(WEvent * event) + { + WEventCardTransforms * e = dynamic_cast (event); + if (!e) return 0; + if (!tc->canTarget(e->card)) return 0; + return 1; + } + + TrCardTransformed * clone() const + { + return NEW TrCardTransformed(*this); + } +}; + class TrCombatTrigger: public Trigger { public: diff --git a/projects/mtg/include/MTGDefinitions.h b/projects/mtg/include/MTGDefinitions.h index cd3137f39..0a5ba9a79 100644 --- a/projects/mtg/include/MTGDefinitions.h +++ b/projects/mtg/include/MTGDefinitions.h @@ -257,7 +257,8 @@ class Constants FLYERSONLY = 135,//can attack only if it has flying TEMPFLASHBACK = 136, NOLEGENDRULE =137, - NB_BASIC_ABILITIES = 138, + CANTTRANSFORM =138, + NB_BASIC_ABILITIES = 139, RARITY_S = 'S', //Special Rarity RARITY_M = 'M', //Mythics diff --git a/projects/mtg/include/ManaCost.h b/projects/mtg/include/ManaCost.h index 04e7733bb..40addf0aa 100644 --- a/projects/mtg/include/ManaCost.h +++ b/projects/mtg/include/ManaCost.h @@ -101,6 +101,7 @@ public: ManaCost(const ManaCost& manaCost); ManaCost& operator= (const ManaCost& manaCost); void copy(ManaCost * _manaCost); + void changeCostTo(ManaCost * _manaCost); int isNull(); int getConvertedCost(); string toString(); diff --git a/projects/mtg/src/AllAbilities.cpp b/projects/mtg/src/AllAbilities.cpp index afddfa39f..2cf3abab5 100644 --- a/projects/mtg/src/AllAbilities.cpp +++ b/projects/mtg/src/AllAbilities.cpp @@ -1653,6 +1653,11 @@ AACounter::AACounter(GameObserver* observer, int id, MTGCardInstance * source, M if (target) { MTGCardInstance * _target = (MTGCardInstance *) target; + if(_target->isFlipped && _target->hasType(Subtypes::TYPE_PLANESWALKER))//is flipping pw + { + this->forceDestroy = 1; + return 0; + } AbilityFactory af(game); if(counterstring.size()) { @@ -3223,7 +3228,7 @@ int AAFlip::resolve() MTGCardInstance * _target = (MTGCardInstance *) target; if (_target) { - if((_target->isACopier||_target->isToken) && !isflipcard && !forcedcopy) + if((_target->isACopier||_target->isToken||_target->has(Constants::CANTTRANSFORM)) && !isflipcard && !forcedcopy) { game->removeObserver(this); return 0; @@ -3240,6 +3245,9 @@ int AAFlip::resolve() MTGCard * fcard = MTGCollection()->getCardByName(flipStats); if(!fcard) return 0; MTGCardInstance * myFlip = NEW MTGCardInstance(fcard, _target->controller()->game); + MTGCardInstance * myParent = NULL; + if(_target->target) + myParent = _target->target; _target->name = myFlip->name; _target->setName(myFlip->name); if(!isflipcard)//transform card @@ -3252,12 +3260,7 @@ int AAFlip::resolve() _target->types = myFlip->types; _target->text = myFlip->text; _target->formattedText = myFlip->formattedText; - //_target->basicAbilities = myFlip->basicAbilities; - for(int k = 0; k < Constants::NB_BASIC_ABILITIES; k++) - { - if(myFlip->model->data->basicAbilities[k]) - _target->basicAbilities[k] = myFlip->model->data->basicAbilities[k]; - } + _target->basicAbilities = myFlip->model->data->basicAbilities; _target->modbasicAbilities = myFlip->modbasicAbilities; cdaDamage = _target->damageCount; _target->copiedID = myFlip->getMTGId();//for copier @@ -3333,6 +3336,11 @@ int AAFlip::resolve() {//pbonus & tbonus are already computed except damage taken... _target->life -= cdaDamage; } + if(_target->hasSubtype(Subtypes::TYPE_EQUIPMENT)) + { + if(myParent) + _target->target = myParent; + } SAFE_DELETE(myFlip); _target->mPropertiesChangedSinceLastUpdate = true; if(!isflipcard) diff --git a/projects/mtg/src/CardGui.cpp b/projects/mtg/src/CardGui.cpp index 76039122b..e842988f0 100644 --- a/projects/mtg/src/CardGui.cpp +++ b/projects/mtg/src/CardGui.cpp @@ -499,7 +499,7 @@ void CardGui::Render() renderer->RenderQuad(fakemask.get(), actX, (actY-yy), actT, (26 * (actZ*zz) + 1) / 16, 38 * (actZ*zz) / 16); } } - if(tc && tc->source && tc->source->view && tc->source->view->actY >= 1.3 && card == tc->source)//paint the source green while infocus. + if(tc && tc->source && tc->source->view && tc->source->view->actZ >= 1.3 && card == tc->source)//paint the source green while infocus. { if(fakemask) { diff --git a/projects/mtg/src/GameObserver.cpp b/projects/mtg/src/GameObserver.cpp index 3dae21c23..c37427ea1 100644 --- a/projects/mtg/src/GameObserver.cpp +++ b/projects/mtg/src/GameObserver.cpp @@ -1184,56 +1184,56 @@ void GameObserver::Affinity() //kicker is an addon to normal cost, suspend is not casting. add cost as needed EXACTLY as seen below. card->getManaCost()->resetCosts(); ManaCost *newCost = NEW ManaCost(); - newCost->copy(card->computeNewCost(card, card->getManaCost(), card->model->data->getManaCost())); + newCost->changeCostTo(card->computeNewCost(card, card->getManaCost(), card->model->data->getManaCost())); - card->getManaCost()->copy(newCost); + card->getManaCost()->changeCostTo(newCost); SAFE_DELETE(newCost); if (card->getManaCost()->getAlternative()) { card->getManaCost()->getAlternative()->resetCosts(); ManaCost * newCost = NEW ManaCost(); - newCost->copy(card->computeNewCost(card, card->getManaCost()->getAlternative(), card->model->data->getManaCost()->getAlternative())); - card->getManaCost()->getAlternative()->copy(newCost); + newCost->changeCostTo(card->computeNewCost(card, card->getManaCost()->getAlternative(), card->model->data->getManaCost()->getAlternative())); + card->getManaCost()->getAlternative()->changeCostTo(newCost); SAFE_DELETE(newCost); } if (card->getManaCost()->getBestow()) { card->getManaCost()->getBestow()->resetCosts(); ManaCost * newCost = NEW ManaCost(); - newCost->copy(card->computeNewCost(card, card->getManaCost()->getBestow(), card->model->data->getManaCost()->getBestow())); - card->getManaCost()->getBestow()->copy(newCost); + newCost->changeCostTo(card->computeNewCost(card, card->getManaCost()->getBestow(), card->model->data->getManaCost()->getBestow())); + card->getManaCost()->getBestow()->changeCostTo(newCost); SAFE_DELETE(newCost); } if (card->getManaCost()->getRetrace()) { card->getManaCost()->getRetrace()->resetCosts(); ManaCost * newCost = NEW ManaCost(); - newCost->copy(card->computeNewCost(card, card->getManaCost()->getRetrace(), card->model->data->getManaCost()->getRetrace())); - card->getManaCost()->getRetrace()->copy(newCost); + newCost->changeCostTo(card->computeNewCost(card, card->getManaCost()->getRetrace(), card->model->data->getManaCost()->getRetrace())); + card->getManaCost()->getRetrace()->changeCostTo(newCost); SAFE_DELETE(newCost); } if (card->getManaCost()->getBuyback()) { card->getManaCost()->getBuyback()->resetCosts(); ManaCost * newCost = NEW ManaCost(); - newCost->copy(card->computeNewCost(card, card->getManaCost()->getBuyback(), card->model->data->getManaCost()->getBuyback())); - card->getManaCost()->getBuyback()->copy(newCost); + newCost->changeCostTo(card->computeNewCost(card, card->getManaCost()->getBuyback(), card->model->data->getManaCost()->getBuyback())); + card->getManaCost()->getBuyback()->changeCostTo(newCost); SAFE_DELETE(newCost); } if (card->getManaCost()->getFlashback()) { card->getManaCost()->getFlashback()->resetCosts(); ManaCost * newCost = NEW ManaCost(); - newCost->copy(card->computeNewCost(card, card->getManaCost()->getFlashback(), card->model->data->getManaCost()->getFlashback())); - card->getManaCost()->getFlashback()->copy(newCost); + newCost->changeCostTo(card->computeNewCost(card, card->getManaCost()->getFlashback(), card->model->data->getManaCost()->getFlashback())); + card->getManaCost()->getFlashback()->changeCostTo(newCost); SAFE_DELETE(newCost); } if (card->getManaCost()->getMorph()) { card->getManaCost()->getMorph()->resetCosts(); ManaCost * newCost = NEW ManaCost(); - newCost->copy(card->computeNewCost(card, card->getManaCost()->getMorph(), card->model->data->getManaCost()->getMorph())); - card->getManaCost()->getMorph()->copy(newCost); + newCost->changeCostTo(card->computeNewCost(card, card->getManaCost()->getMorph(), card->model->data->getManaCost()->getMorph())); + card->getManaCost()->getMorph()->changeCostTo(newCost); SAFE_DELETE(newCost); } diff --git a/projects/mtg/src/MTGAbility.cpp b/projects/mtg/src/MTGAbility.cpp index e44aa86c9..b3055061e 100644 --- a/projects/mtg/src/MTGAbility.cpp +++ b/projects/mtg/src/MTGAbility.cpp @@ -371,6 +371,24 @@ int AbilityFactory::parseCastRestrictions(MTGCardInstance * card, Player * playe return 0; } + check = restriction[i].find("notdelirum"); + if (check != string::npos) + { + Player * checkCurrent = card->controller(); + MTGGameZone * grave = checkCurrent->game->graveyard; + + int checkTypesAmount = 0; + if(grave->hasType("creature")) checkTypesAmount++; + if (grave->hasType("enchantment")) checkTypesAmount++; + if (grave->hasType("sorcery")) checkTypesAmount++; + if (grave->hasType("instant")) checkTypesAmount++; + if (grave->hasType("land")) checkTypesAmount++; + if (grave->hasType("artifact")) checkTypesAmount++; + if (grave->hasType("planeswalker")) checkTypesAmount++; + if (checkTypesAmount > 3) + return 0; + } + check = restriction[i].find("miracle"); if(check != string::npos) { @@ -824,7 +842,7 @@ TriggeredAbility * AbilityFactory::parseTrigger(string s, string, int id, Spell fromTc->targetter = NULL; //avoid protection from } TriggeredAbility * mover = NEW TrCardAddedToZone(observer, id, card, (TargetZoneChooser *) toTc, - toTcCard, (TargetZoneChooser *) fromTc, fromTcCard, once, sourceUntapped, isSuspended); + toTcCard, (TargetZoneChooser *) fromTc, fromTcCard, once, sourceUntapped, isSuspended, limitOnceATurn); if(neverRemove) { mover->forcedAlive = 1; @@ -845,6 +863,10 @@ TriggeredAbility * AbilityFactory::parseTrigger(string s, string, int id, Spell if (TargetChooser *tc = parseSimpleTC(s,"tappedformana", card)) return NEW TrCardTappedformana(observer, id, card, tc, true,once); + //Card Transforms + if (TargetChooser *tc = parseSimpleTC(s,"transformed", card)) + return NEW TrCardTransformed(observer, id, card, tc,once); + //CombatTrigger //Card card attacked and is blocked found = s.find("combat("); diff --git a/projects/mtg/src/MTGCardInstance.cpp b/projects/mtg/src/MTGCardInstance.cpp index fdb37698d..cf5d094cc 100644 --- a/projects/mtg/src/MTGCardInstance.cpp +++ b/projects/mtg/src/MTGCardInstance.cpp @@ -98,12 +98,7 @@ void MTGCardInstance::copy(MTGCardInstance * card) { MTGCard * source = card->model; CardPrimitive * data = source->data; - - for(int k = 0; k < Constants::NB_BASIC_ABILITIES; k++) - { - if(card->model->data->basicAbilities[k]) - basicAbilities[k] = card->model->data->basicAbilities[k]; - } + basicAbilities = card->model->data->basicAbilities; modbasicAbilities = card->modbasicAbilities; for (size_t i = 0; i < data->types.size(); i++) { @@ -149,6 +144,7 @@ void MTGCardInstance::copy(MTGCardInstance * card) backupTargets = this->backupTargets; storedCard = oldStored; miracle = false; + mPropertiesChangedSinceLastUpdate = true; } MTGCardInstance::~MTGCardInstance() diff --git a/projects/mtg/src/MTGDefinitions.cpp b/projects/mtg/src/MTGDefinitions.cpp index 9a3e29f1d..10c4ffac9 100644 --- a/projects/mtg/src/MTGDefinitions.cpp +++ b/projects/mtg/src/MTGDefinitions.cpp @@ -168,7 +168,8 @@ const char* Constants::MTGBasicAbilities[] = { "shackler", "flyersonly", "tempflashback", - "legendruleremove" + "legendruleremove", + "canttransform" }; map Constants::MTGBasicAbilitiesMap; diff --git a/projects/mtg/src/ManaCost.cpp b/projects/mtg/src/ManaCost.cpp index c33f1cf17..77f67eb65 100644 --- a/projects/mtg/src/ManaCost.cpp +++ b/projects/mtg/src/ManaCost.cpp @@ -666,6 +666,30 @@ void ManaCost::copy(ManaCost * _manaCost) xColor = _manaCost->xColor; } +void ManaCost::changeCostTo(ManaCost * _manaCost) +{ + if (!_manaCost) + return; + + cost.erase(cost.begin() ,cost.end()); + + for (int i = 0; i <= Constants::NB_Colors; i++) + { + cost.push_back(_manaCost->getCost(i)); + } + + hybrids = _manaCost->hybrids; + + SAFE_DELETE(extraCosts); + + if (_manaCost->extraCosts) + { + extraCosts = _manaCost->extraCosts->clone(); + } + + xColor = _manaCost->xColor; +} + int ManaCost::getCost(int color) { if (cost.size() <= (size_t)color) From 17c28ca5845738de1fae2a285fd92aed56196cfb Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Wed, 10 Aug 2016 06:39:09 +0800 Subject: [PATCH 2/4] revised Quick Sliver & Shimmer Myr --- projects/mtg/bin/Res/sets/primitives/mtg.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/projects/mtg/bin/Res/sets/primitives/mtg.txt b/projects/mtg/bin/Res/sets/primitives/mtg.txt index f57f8b4a6..fb093777b 100644 --- a/projects/mtg/bin/Res/sets/primitives/mtg.txt +++ b/projects/mtg/bin/Res/sets/primitives/mtg.txt @@ -83557,7 +83557,8 @@ toughness=4 [card] name=Quick Sliver abilities=flash -auto=lord(sliver|hand,library,graveyard,exile) spellmastery +auto=lord(artifact|hand) flash +auto=lord(artifact|library,graveyard,exile) spellmastery text=Flash -- Any player may play Sliver cards as though they had flash. mana={1}{G} type=Creature @@ -96258,7 +96259,8 @@ toughness=2 [card] name=Shimmer Myr abilities=flash -auto=lord(artifact|myhand,mylibrary,mygraveyard,myexile) spellmastery +auto=lord(artifact|myhand) flash +auto=lord(artifact|mylibrary,mygraveyard,myexile) spellmastery text=Flash -- You may cast artifact cards as though they had flash. mana={3} type=Artifact Creature From d3305cadb65d56134ae151fa44c2e56764d2d8c5 Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Wed, 10 Aug 2016 07:18:46 +0800 Subject: [PATCH 3/4] quick sliver typo --- projects/mtg/bin/Res/sets/primitives/mtg.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/projects/mtg/bin/Res/sets/primitives/mtg.txt b/projects/mtg/bin/Res/sets/primitives/mtg.txt index fb093777b..aa175272a 100644 --- a/projects/mtg/bin/Res/sets/primitives/mtg.txt +++ b/projects/mtg/bin/Res/sets/primitives/mtg.txt @@ -83557,8 +83557,9 @@ toughness=4 [card] name=Quick Sliver abilities=flash -auto=lord(artifact|hand) flash -auto=lord(artifact|library,graveyard,exile) spellmastery +auto=lord(sliver|myhand) flash +auto=lord(sliver|opponenthand) flash +auto=lord(sliver|library,graveyard,exile) spellmastery text=Flash -- Any player may play Sliver cards as though they had flash. mana={1}{G} type=Creature From 14d8d65de0983b977372dc7c1667c02a5bec695e Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Wed, 10 Aug 2016 07:31:15 +0800 Subject: [PATCH 4/4] asflash spellmastery is for alternate cost, added asflash... so cards that find cards with flash don't find asflash... --- projects/mtg/bin/Res/sets/primitives/mtg.txt | 19 ++++++++----------- projects/mtg/include/MTGDefinitions.h | 3 ++- projects/mtg/src/MTGDefinitions.cpp | 3 ++- projects/mtg/src/MTGRules.cpp | 8 ++++---- 4 files changed, 16 insertions(+), 17 deletions(-) diff --git a/projects/mtg/bin/Res/sets/primitives/mtg.txt b/projects/mtg/bin/Res/sets/primitives/mtg.txt index aa175272a..d874aff17 100644 --- a/projects/mtg/bin/Res/sets/primitives/mtg.txt +++ b/projects/mtg/bin/Res/sets/primitives/mtg.txt @@ -2600,7 +2600,7 @@ toughness=0 [card] name=Aluren auto=lord(creature[manacost<=3]|hand,exile,graveyard) zerocast -auto=lord(creature[manacost<=3]|hand,exile,graveyard) spellmastery +auto=lord(creature[manacost<=3]|hand,exile,graveyard) asflash text=Any player may play creature cards with converted mana cost 3 or less without paying their mana cost and as though they had flash. mana={2}{G}{G} type=Enchantment @@ -83557,9 +83557,7 @@ toughness=4 [card] name=Quick Sliver abilities=flash -auto=lord(sliver|myhand) flash -auto=lord(sliver|opponenthand) flash -auto=lord(sliver|library,graveyard,exile) spellmastery +auto=lord(sliver|hand,library,graveyard,exile) asflash text=Flash -- Any player may play Sliver cards as though they had flash. mana={1}{G} type=Creature @@ -85170,7 +85168,7 @@ toughness=3 name=Rattlechains abilities=flash, flying auto=target(spirit) hexproof ueot -auto=lord(spirit|myhand,mylibrary,mygraveyard,myexile) spellmastery +auto=lord(spirit|myhand,mylibrary,mygraveyard,myexile) asflash text=Flash -- Flying -- When Rattlechains enters the battlefield, target Spirit gains hexproof until end of turn. -- You may cast Spirit spells as though they had flash. mana={1}{U} type=Creature @@ -96260,8 +96258,7 @@ toughness=2 [card] name=Shimmer Myr abilities=flash -auto=lord(artifact|myhand) flash -auto=lord(artifact|mylibrary,mygraveyard,myexile) spellmastery +auto=lord(artifact|myhand,mylibrary,mygraveyard,myexile) asflash text=Flash -- You may cast artifact cards as though they had flash. mana={3} type=Artifact Creature @@ -118479,7 +118476,7 @@ toughness=2 [/card] [card] name=Vedalken Orrery -auto=lord(*[-land]|myhand,mylibrary,mygraveyard,myexile) spellmastery +auto=lord(*[-land]|myhand,mylibrary,mygraveyard,myexile) asflash text=You may cast nonland cards as though they had flash. mana={4} type=Artifact @@ -118981,7 +118978,7 @@ type=Enchantment [/card] [card] name=Vernal Equinox -auto=lord(*[creature;enchantment]|hand,library,graveyard,exile) spellmastery +auto=lord(*[creature;enchantment]|hand,library,graveyard,exile) asflash text=Any player may play creature and enchantment cards as though they had flash. mana={3}{G} type=Enchantment @@ -124574,7 +124571,7 @@ type=Sorcery [card] name=Winding Canyons auto={T}:Add{1} -auto={2}{T}:name(flash) emblem transforms((,newability[lord(creature|myhand,mylibrary,mygraveyard,myexile) spellmastery])) ueot +auto={2}{T}:name(flash) emblem transforms((,newability[lord(creature|myhand,mylibrary,mygraveyard,myexile) asflash])) ueot text={T}: Add {1} to your mana pool. -- {2}, {T}: Until end of turn, you may play creature cards as though they had flash. type=Land [/card] @@ -126665,7 +126662,7 @@ toughness=2 [/card] [card] name=Yeva, Nature's Herald -auto=lord(creature[green]|myhand,mylibrary,mygraveyard,myexile) spellmastery +auto=lord(creature[green]|myhand,mylibrary,mygraveyard,myexile) asflash abilities=flash text=Flash (You may cast this spell any time you could cast an instant.) -- You may cast green creature cards as though they had flash. mana={2}{G}{G} diff --git a/projects/mtg/include/MTGDefinitions.h b/projects/mtg/include/MTGDefinitions.h index 0a5ba9a79..f3d8c5451 100644 --- a/projects/mtg/include/MTGDefinitions.h +++ b/projects/mtg/include/MTGDefinitions.h @@ -258,7 +258,8 @@ class Constants TEMPFLASHBACK = 136, NOLEGENDRULE =137, CANTTRANSFORM =138, - NB_BASIC_ABILITIES = 139, + ASFLASH =139, + NB_BASIC_ABILITIES = 140, RARITY_S = 'S', //Special Rarity RARITY_M = 'M', //Mythics diff --git a/projects/mtg/src/MTGDefinitions.cpp b/projects/mtg/src/MTGDefinitions.cpp index 10c4ffac9..7474192c1 100644 --- a/projects/mtg/src/MTGDefinitions.cpp +++ b/projects/mtg/src/MTGDefinitions.cpp @@ -169,7 +169,8 @@ const char* Constants::MTGBasicAbilities[] = { "flyersonly", "tempflashback", "legendruleremove", - "canttransform" + "canttransform", + "asflash" }; map Constants::MTGBasicAbilitiesMap; diff --git a/projects/mtg/src/MTGRules.cpp b/projects/mtg/src/MTGRules.cpp index dba96f87f..d7c8acb38 100644 --- a/projects/mtg/src/MTGRules.cpp +++ b/projects/mtg/src/MTGRules.cpp @@ -334,7 +334,7 @@ int MTGPutInPlayRule::isReactingToClick(MTGCardInstance * card, ManaCost *) else return 0; } - else if ((card->hasType(Subtypes::TYPE_INSTANT)) || card->has(Constants::FLASH) || (card->StackIsEmptyandSorcerySpeed())) + else if ((card->hasType(Subtypes::TYPE_INSTANT)) || card->has(Constants::FLASH) || card->has(Constants::ASFLASH) || (card->StackIsEmptyandSorcerySpeed())) { if(card->controller()->epic) return 0; @@ -559,7 +559,7 @@ int MTGKickerRule::isReactingToClick(MTGCardInstance * card, ManaCost *) if(!card->getManaCost()->getKicker()) return 0; - if ((card->hasType(Subtypes::TYPE_INSTANT)) || card->has(Constants::FLASH) || (card->StackIsEmptyandSorcerySpeed())) + if ((card->hasType(Subtypes::TYPE_INSTANT)) || card->has(Constants::FLASH) || card->has(Constants::ASFLASH) || (card->StackIsEmptyandSorcerySpeed())) { if(card->controller()->epic) return 0; @@ -748,7 +748,7 @@ int MTGAlternativeCostRule::isReactingToClick(MTGCardInstance * card, ManaCost * else return 0; } - else if ((card->hasType(Subtypes::TYPE_INSTANT)) || card->has(Constants::FLASH) || card->has(Constants::SPELLMASTERY) || card->has(Constants::OFFERING) || (card->StackIsEmptyandSorcerySpeed())) + else if ((card->hasType(Subtypes::TYPE_INSTANT)) || card->has(Constants::FLASH) || card->has(Constants::ASFLASH) || card->has(Constants::SPELLMASTERY) || card->has(Constants::OFFERING) || (card->StackIsEmptyandSorcerySpeed())) { if(card->controller()->epic) return 0; @@ -1313,7 +1313,7 @@ int MTGMorphCostRule::isReactingToClick(MTGCardInstance * card, ManaCost *) if(card->controller()->epic)//zoetic cavern... morph is casted for a cost... return 0; //note lands can morph too, this is different from other cost types. - if ((card->hasType(Subtypes::TYPE_INSTANT)) || card->has(Constants::FLASH) || (card->StackIsEmptyandSorcerySpeed())) + if ((card->hasType(Subtypes::TYPE_INSTANT)) || card->has(Constants::FLASH) || card->has(Constants::ASFLASH) || (card->StackIsEmptyandSorcerySpeed())) { if (card->controller()->game->playRestrictions->canPutIntoZone(card, card->controller()->game->stack) == PlayRestriction::CANT_PLAY) return 0;