diff --git a/projects/mtg/bin/Res/missing_cards_by_sets/AER.txt b/projects/mtg/bin/Res/missing_cards_by_sets/AER.txt index c76ab2580..02bfcc4d0 100644 --- a/projects/mtg/bin/Res/missing_cards_by_sets/AER.txt +++ b/projects/mtg/bin/Res/missing_cards_by_sets/AER.txt @@ -11,15 +11,6 @@ mana={2}{U}{B}{R} type=Sorcery [/card] [card] -name=Winding Constrictor -text=If one or more counters would be placed on an artifact or creature you control, that many plus one of each of those kinds of counters are placed on that permanent instead. -- If you would get one or more counters, you get that many plus one of each of those kinds of counters instead. -mana={B}{G} -type=Creature -subtype=Snake -power=2 -toughness=3 -[/card] -[card] name=Crackdown Construct text=Whenever you activate an ability of an artifact or creature that isn't a mana ability, Crackdown Construct gets +1/+1 until end of turn. mana={4} diff --git a/projects/mtg/bin/Res/missing_cards_by_sets/KLR.txt b/projects/mtg/bin/Res/missing_cards_by_sets/KLR.txt index 2af526e98..2a9038689 100644 --- a/projects/mtg/bin/Res/missing_cards_by_sets/KLR.txt +++ b/projects/mtg/bin/Res/missing_cards_by_sets/KLR.txt @@ -32,15 +32,6 @@ power=1 toughness=3 [/card] [card] -name=Winding Constrictor -text=If one or more counters would be placed on an artifact or creature you control, that many plus one of each of those kinds of counters are placed on that permanent instead. -- If you would get one or more counters, you get that many plus one of each of those kinds of counters instead. -mana={B}{G} -type=Creature -subtype=Snake -power=2 -toughness=3 -[/card] -[card] name=Combustible Gearhulk abilities=first strike text=First strike -- When Combustible Gearhulk enters the battlefield, target opponent may have you draw three cards. If the player doesn't, put the top three cards of your library into your graveyard, then Combustible Gearhulk deals damage to that player equal to the total converted mana cost of those cards. diff --git a/projects/mtg/bin/Res/missing_cards_by_sets/MAT.txt b/projects/mtg/bin/Res/missing_cards_by_sets/MAT.txt index 26fcbfd32..a2a9050d5 100644 --- a/projects/mtg/bin/Res/missing_cards_by_sets/MAT.txt +++ b/projects/mtg/bin/Res/missing_cards_by_sets/MAT.txt @@ -4,3 +4,9 @@ text=Activated abilities of creatures you control cost up to {2} less to activat mana={U} type=Enchantment [/card] +[card] +name=Deification +text=As Deification enters the battlefield, choose a planeswalker type. -- Planeswalkers you control of the chosen type have hexproof. -- As long as you control a creature, if damage dealt to a planeswalker you control of the chosen type would result in all loyalty counters on it being removed, instead all but one of those counters are removed. +mana={1}{W} +type=Enchantment +[/card] diff --git a/projects/mtg/bin/Res/missing_cards_by_sets/MB1.txt b/projects/mtg/bin/Res/missing_cards_by_sets/MB1.txt index 5d8e397c5..eb5c39321 100644 --- a/projects/mtg/bin/Res/missing_cards_by_sets/MB1.txt +++ b/projects/mtg/bin/Res/missing_cards_by_sets/MB1.txt @@ -38,15 +38,6 @@ mana={2}{R}{R} type=Sorcery [/card] [card] -name=Winding Constrictor -text=If one or more counters would be placed on an artifact or creature you control, that many plus one of each of those kinds of counters are placed on that permanent instead. -- If you would get one or more counters, you get that many plus one of each of those kinds of counters instead. -mana={B}{G} -type=Creature -subtype=Snake -power=2 -toughness=3 -[/card] -[card] name=Goblin Charbelcher text={3}, {T}: Reveal cards from the top of your library until you reveal a land card. Goblin Charbelcher deals damage equal to the number of nonland cards revealed this way to target creature or player. If the revealed land card was a Mountain, Goblin Charbelcher deals double that damage instead. Put the revealed cards on the bottom of your library in any order. mana={4} diff --git a/projects/mtg/bin/Res/missing_cards_by_sets/missingCardList.txt b/projects/mtg/bin/Res/missing_cards_by_sets/missingCardList.txt index 2e5a34006..f3547f874 100644 --- a/projects/mtg/bin/Res/missing_cards_by_sets/missingCardList.txt +++ b/projects/mtg/bin/Res/missing_cards_by_sets/missingCardList.txt @@ -8,51 +8,30 @@ Imperial Recovery Unit Ossuary Rats Rodolf Duskbringer Skullslither Worm -Suspicious Shambler Termination Facilitator -Ardoz, Cobbler of War Auntie Blyte, Bad Influence Brazen Cannonade -Coalborn Entity -Daring Piracy Goblin Researcher Kenessos, Priest of Thassa -Launch Mishap -Merfolk Pupil Pirated Copy -Soul Read Synchronized Eviction Ashcoat of the Shadow Swarm -Conductor of Cacophony -Creeping Bloodsucker -Deadly Plot Disciple of Perdition Mizzix, Replica Rider Ogre Battlecaster -Plundering Predator Benevolent Hydra -Giant Ladybug Kibo, Uktabi Prince -Mild-Mannered Librarian -Primeval Herald Rampaging Growth Runadi, Behemoth Caller -Spectral Hunt-Caller -Towering Gibbon Zask, Skittering Swarmlord Dutiful Replicator -Infernal Idol Instruments of War Planar Atlas -Angelic Cub -Chains of Custody -Distinguished Conjurer Ingenious Leonin Lita, Mechanical Engineer Magnanimous Magistrate Preston, the Vanisher Alandra, Sky Dreamer -Biblioplex Kraken Hold for Questioning Isu the Abominable Agrus Kos, Eternal Soldier @@ -407,55 +386,7 @@ Protection Racket Misfortune Teller Devastating Dreams Darksteel Garrison -Spark Rupture -Nissa, Resurgent Animist -Undercity Upheaval -Leyline Immersion -Campus Renovation -Open the Way -Calix, Guided by Fate -Danitha, New Benalia's Light -Cosmic Rebirth -Arni Metalbrow -Urborg Scavengers -Plargg and Nassari -Kolaghan Warmonger -Tranquil Frillback -Reckless Handling -Blot Out -Ayara's Oathsworn -Markov Baron -Death-Rattle Oni Metropolis Reformer -Harnessed Snubhorn -Filter Out -Tazri, Stalwart Survivor -Tolarian Contempt -Vesuvan Drifter -Sarkhan, Soul Aflame -Tyvar the Bellicose -Karn, Legacy Reforged -Sigarda, Font of Blessings -Animist's Might -Drannith Ruins -Deification -Coppercoat Vanguard -Jolrael, Voice of Zhalfir -Rebuild the City -Pia Nalaar, Consul of Revival -Samut, Vizier of Naktamun -Rocco, Street Chef -Nahiri's Resolve -Nahiri, Forged in Fury -Nashi, Moon's Legacy -Narset, Enlightened Exile -Ob Nixilis, Captive Kingpin -Niv-Mizzet, Supreme -Gold-Forged Thopteryx -Feast of the Victorious Dead -The Kenriths' Royal Funeral -Jirina, Dauntless General -Kiora, Sovereign of the Deep Gala Greeters Jinnie Fay, Jetmir's Second Hostile Takeover @@ -718,7 +649,6 @@ Reckoner Bankbuster Norika Yamazaki, the Poet The Reality Chip Flame Discharge -Michiko's Reign of Truth Mirror Box Blade of the Oni Mechtitan Core diff --git a/projects/mtg/bin/Res/sets/primitives/borderline.txt b/projects/mtg/bin/Res/sets/primitives/borderline.txt index 8315ab347..b8ece7189 100644 --- a/projects/mtg/bin/Res/sets/primitives/borderline.txt +++ b/projects/mtg/bin/Res/sets/primitives/borderline.txt @@ -1,7 +1,7 @@ grade=borderline #Bordeline Primitives Pack for Wagic the Homebrew. #Please keep these card alphabetized, and try to have the "name=" line at the top of each card -#I sorted this programmatically - Thanks to Vitty85 23-05-2023 +#I sorted this programmatically - Thanks to Vitty85 25-05-2023 [card] name=+2 Mace auto={3}:equip @@ -2591,6 +2591,17 @@ mana={1} type=Artifact [/card] [card] +name=Animist's Might +otherrestriction=type(creature[legendary]|mybattlefield)~morethan~0 +restriction=type(creature[-legendary]|mybattlefield)~morethan~0 +other={G} name(Target legendary creature) +auto=if paid(alternative) then name(Choose legendary creature) target(creature[legendary]|mybattlefield) transforms((,newability[name(Deal damage) damage:twicepower target(*[creature;planeswalker]|opponentbattlefield)])) oneshot +auto=ifnot paid(alternative) then name(Choose non-legendary creature) target(creature[-legendary]|mybattlefield) transforms((,newability[name(Deal damage) damage:twicepower target(*[creature;planeswalker]|opponentbattlefield)])) oneshot +text=This spell costs {2} less to cast if it targets a legendary creature you control. -- Target creature you control deals damage equal to twice its power to target creature or planeswalker you don't control. +mana={2}{G} +type=Sorcery +[/card] +[card] name=Anje Falkenrath abilities=haste auto={T}{D(*|myhand)}:draw:1 controller @@ -4069,6 +4080,17 @@ power=3 toughness=3 [/card] [card] +name=Arni Metalbrow +auto=@combat(attacking) source(creature|myBattlefield):name(Put creature in play) all(trigger[to]) transforms((,newability[if type(creature[manacost<=manacostminus1minusend]|myhand)~morethan~0 then may name(Pay 1R) pay({1}{r}) target(creature[manacost<=manacostminus1minusend]|myhand) ninjutsu])) oneshot +auto=@movedto(creature[battleready;attacking]|myBattlefield):name(Put creature in play) all(trigger[to]) transforms((,newability[if type(creature[manacost<=manacostminus1minusend]|myhand)~morethan~0 then may name(Pay 1R) pay({1}{r}) target(creature[manacost<=manacostminus1minusend]|myhand) ninjutsu])) oneshot +text=Whenever a creature you control attacks or a creature enters the battlefield under your control attacking, you may pay {1}{R}. If you do, you may put a creature card with mana value less than that creature's mana value from your hand onto the battlefield tapped and attacking. +mana={2}{R} +type=Legendary Creature +subtype=Human Berserker +power=3 +toughness=3 +[/card] +[card] name=Arni Slays the Troll auto=counter(0/0,1,Lore) auto=@each my firstmain:counter(0/0,1,Lore) @@ -4364,14 +4386,6 @@ power=* toughness=* [/card] [card] -name=Ashes of the Abhorrent -auto=lord(*|graveyard) onlymanaability -auto=@movedto(*|graveyard) from(battlefield):life:1 controller -text=Players can't cast spells from graveyards or activate abilities of cards in graveyards. -- Whenever a creature dies, you gain 1 life. -mana={1}{W} -type=Enchantment -[/card] -[card] name=Ashen Reaper abilities=menace auto=@each my end restriction{deadpermanent}:name(Put 1/1 counter) name(Put 1/1 counter) counter(1/1) @@ -4383,6 +4397,14 @@ power=2 toughness=1 [/card] [card] +name=Ashes of the Abhorrent +auto=lord(*|graveyard) onlymanaability +auto=@movedto(*|graveyard) from(battlefield):life:1 controller +text=Players can't cast spells from graveyards or activate abilities of cards in graveyards. -- Whenever a creature dies, you gain 1 life. +mana={1}{W} +type=Enchantment +[/card] +[card] name=Ashiok's Erasure abilities=flash auto=name(Exile spell) target(*|stack) spellmover(exileimp) @@ -5445,6 +5467,17 @@ mana={4}{W}{W} type=Enchantment [/card] [card] +name=Ayara's Oathsworn +abilities=menace +auto=@combatdamaged(player) from(this) restriction{compare(hascnt11)~lessthan~4}:name(Put 1/1 counter) name(Put 1/1 counter) counter(1/1) && if compare(hascnt11)~equalto~4 then name(Search card) name(Search card) target(*|mylibrary) moveto(myhand) and!( shuffle )! +text=Menace -- Whenever Ayara's Oathsworn deals combat damage to a player, if it has fewer than four +1/+1 counters on it, put a +1/+1 counter on it. Then if it has exactly four +1/+1 counters on it, search your library for a card, put it into your hand, then shuffle. +mana={1}{B} +type=Creature +subtype=Human Knight +power=2 +toughness=2 +[/card] +[card] name=Ayara, First of Locthwain auto=life:1 auto=life:-1 opponent @@ -5483,17 +5516,6 @@ power=3 toughness=3 [/card] [card] -name=Ayara's Oathsworn -abilities=menace -auto=@combatdamaged(player) from(this) restriction{compare(hascnt11)~lessthan~4}:name(Put 1/1 counter) name(Put 1/1 counter) counter(1/1) && if compare(hascnt11)~equalto~4 then name(Search card) name(Search card) target(*|mylibrary) moveto(myhand) and!( shuffle )! -text=Menace -- Whenever Ayara's Oathsworn deals combat damage to a player, if it has fewer than four +1/+1 counters on it, put a +1/+1 counter on it. Then if it has exactly four +1/+1 counters on it, search your library for a card, put it into your hand, then shuffle. -mana={1}{B} -type=Creature -subtype=Human Knight -power=2 -toughness=2 -[/card] -[card] name=Ayula's Influence auto={D(land|myhand)}:token(Bear,Creature Bear,2/2,green) text=Discard a land card: Create a 2/2 green Bear creature token. @@ -8737,14 +8759,6 @@ mana={4}{R}{R} type=Sorcery [/card] [card] -name=Blood for Bones -auto=ability$!notatarget(creature|mygraveyard) moveto(mybattlefield)!$ controller -auto=ability$!notatarget(creature|mygraveyard) moveto(myhand)!$ controller -text=As an additional cost to cast this spell, sacrifice a creature. -- Return a creature card from your graveyard to the battlefield, then return another creature card from your graveyard to your hand. -mana={3}{B}{S(creature|myBattlefield)} -type=Sorcery -[/card] -[card] name=Blood Fountain auto=token(Blood) auto={3}{B}{T}{S}:name(Return 2 creatures) target(creature|mygraveyard) moveto(myhand) @@ -8782,41 +8796,6 @@ mana={5}{B}{B} type=Sorcery [/card] [card] -name=Blood on the Snow -restriction=compare(mysnowpoolcount)~equalto~0 -autohand={3}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~1,type(*[creature;planeswalker;manacost<=1]|mybattlefield)~equalto~0}:name(Cast with 1 snow mana and destroy creatures) name(Cast with 1 snow mana and destroy creatures) all(creature) destroy && activate castcard(alternative) -autohand={3}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~1,type(*[creature;planeswalker;manacost<=1]|mybattlefield)~morethan~0}:name(Cast with 1 snow mana and destroy creatures) name(Cast with 1 snow mana and destroy creatures) notatarget(*[creature;planeswalker;manacost<=1]|mybattlefield) transforms((,newability[all(other creature) destroy])) oneshot && activate castcard(alternative) -autohand={3}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~1,type(*[creature;planeswalker;manacost<=1]|mybattlefield)~equalto~0}:name(Cast with 1 snow mana and destroy planeswalkers) name(Cast with 1 snow mana and destroy planeswalkers) all(planeswalker) destroy && activate castcard(alternative) -autohand={3}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~1,type(*[creature;planeswalker;manacost<=1]|mybattlefield)~morethan~0}:name(Cast with 1 snow mana and destroy planeswalkers) name(Cast with 1 snow mana and destroy planeswalkers) notatarget(*[creature;planeswalker;manacost<=1]|mybattlefield) transforms((,newability[all(other planeswalker) destroy])) oneshot && activate castcard(alternative) -autohand={2}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~2,type(*[creature;planeswalker;manacost<=2]|mybattlefield)~equalto~0}:name(Cast with 2 snow mana and destroy creatures) name(Cast with 2 snow mana and destroy creatures) all(creature) destroy && activate castcard(alternative) -autohand={2}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~2,type(*[creature;planeswalker;manacost<=2]|mybattlefield)~morethan~0}:name(Cast with 2 snow mana and destroy creatures) name(Cast with 2 snow mana and destroy creatures) notatarget(*[creature;planeswalker;manacost<=2]|mybattlefield) transforms((,newability[all(other creature) destroy])) oneshot && activate castcard(alternative) -autohand={2}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~2,type(*[creature;planeswalker;manacost<=2]|mybattlefield)~equalto~0}:name(Cast with 2 snow mana and destroy planeswalkers) name(Cast with 2 snow mana and destroy planeswalkers) all(planeswalker) destroy && activate castcard(alternative) -autohand={2}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~2,type(*[creature;planeswalker;manacost<=2]|mybattlefield)~morethan~0}:name(Cast with 2 snow mana and destroy planeswalkers) name(Cast with 2 snow mana and destroy planeswalkers) notatarget(*[creature;planeswalker;manacost<=2]|mybattlefield) transforms((,newability[all(other planeswalker) destroy])) oneshot && activate castcard(alternative) -autohand={1}{i}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~3,type(*[creature;planeswalker;manacost<=3]|mybattlefield)~equalto~0}:name(Cast with 3 snow mana and destroy creatures) name(Cast with 3 snow mana and destroy creatures) all(creature) destroy && activate castcard(alternative) -autohand={1}{i}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~3,type(*[creature;planeswalker;manacost<=3]|mybattlefield)~morethan~0}:name(Cast with 3 snow mana and destroy creatures) name(Cast with 3 snow mana and destroy creatures) notatarget(*[creature;planeswalker;manacost<=3]|mybattlefield) transforms((,newability[all(other creature) destroy])) oneshot && activate castcard(alternative) -autohand={1}{i}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~3,type(*[creature;planeswalker;manacost<=3]|mybattlefield)~equalto~0}:name(Cast with 3 snow mana and destroy planeswalkers) name(Cast with 3 snow mana and destroy planeswalkers) all(planeswalker) destroy && activate castcard(alternative) -autohand={1}{i}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~3,type(*[creature;planeswalker;manacost<=3]|mybattlefield)~morethan~0}:name(Cast with 3 snow mana and destroy planeswalkers) name(Cast with 3 snow mana and destroy planeswalkers) notatarget(*[creature;planeswalker;manacost<=3]|mybattlefield) transforms((,newability[all(other planeswalker) destroy])) oneshot && activate castcard(alternative) -autohand={i}{i}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~morethan~3,type(*[creature;planeswalker;manacost<=4]|mybattlefield)~equalto~0}:name(Cast with 4 snow mana and destroy creatures) name(Cast with 4 snow mana and destroy creatures) all(creature) destroy && activate castcard(alternative) -autohand={i}{i}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~morethan~3,type(*[creature;planeswalker;manacost<=4]|mybattlefield)~morethan~0}:name(Cast with 4 snow mana and destroy creatures) name(Cast with 4 snow mana and destroy creatures) notatarget(*[creature;planeswalker;manacost<=4]|mybattlefield) transforms((,newability[all(other creature) destroy])) oneshot && activate castcard(alternative) -autohand={i}{i}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~morethan~3,type(*[creature;planeswalker;manacost<=4]|mybattlefield)~equalto~0}:name(Cast with 4 snow mana and destroy planeswalkers) name(Cast with 4 snow mana and destroy planeswalkers) all(planeswalker) destroy && activate castcard(alternative) -autohand={i}{i}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~morethan~3,type(*[creature;planeswalker;manacost<=4]|mybattlefield)~morethan~0}:name(Cast with 4 snow mana and destroy planeswalkers) name(Cast with 4 snow mana and destroy planeswalkers) notatarget(*[creature;planeswalker;manacost<=4]|mybattlefield) transforms((,newability[all(other planeswalker) destroy])) oneshot && activate castcard(alternative) -autohand={i}{i}{i}{i}{i}{B} restriction{compare(mysnowpoolcount)~morethan~4,compare(mysnowblackpoolcount)~morethan~0,type(*[creature;planeswalker;manacost<=5]|mybattlefield)~equalto~0}:name(Cast with 5 snow mana and destroy creatures) name(Cast with 5 snow mana and destroy creatures) all(creature) destroy && activate castcard(alternative) -autohand={i}{i}{i}{i}{i}{B} restriction{compare(mysnowpoolcount)~morethan~4,compare(mysnowblackpoolcount)~morethan~0,type(*[creature;planeswalker;manacost<=5]|mybattlefield)~morethan~0}:name(Cast with 5 snow mana and destroy creatures) name(Cast with 5 snow mana and destroy creatures) notatarget(*[creature;planeswalker;manacost<=5]|mybattlefield) transforms((,newability[all(other creature) destroy])) oneshot && activate castcard(alternative) -autohand={i}{i}{i}{i}{i}{B} restriction{compare(mysnowpoolcount)~morethan~4,compare(mysnowblackpoolcount)~morethan~0,type(*[creature;planeswalker;manacost<=5]|mybattlefield)~equalto~0}:name(Cast with 5 snow mana and destroy planeswalkers) name(Cast with 5 snow mana and destroy planeswalkers) all(planeswalker) destroy && activate castcard(alternative) -autohand={i}{i}{i}{i}{i}{B} restriction{compare(mysnowpoolcount)~morethan~4,compare(mysnowblackpoolcount)~morethan~0,type(*[creature;planeswalker;manacost<=5]|mybattlefield)~morethan~0}:name(Cast with 5 snow mana and destroy planeswalkers) name(Cast with 5 snow mana and destroy planeswalkers) notatarget(*[creature;planeswalker;manacost<=5]|mybattlefield) transforms((,newability[all(other planeswalker) destroy])) oneshot && activate castcard(alternative) -autohand={i}{i}{i}{i}{i}{i} restriction{compare(mysnowpoolcount)~morethan~5,compare(mysnowblackpoolcount)~morethan~1,type(*[creature;planeswalker;manacost<=6]|mybattlefield)~equalto~0}:name(Cast with 6 snow mana and destroy creatures) name(Cast with 6 snow mana and destroy creatures) all(creature) destroy && activate castcard(alternative) -autohand={i}{i}{i}{i}{i}{i} restriction{compare(mysnowpoolcount)~morethan~5,compare(mysnowblackpoolcount)~morethan~1,type(*[creature;planeswalker;manacost<=6]|mybattlefield)~morethan~0}:name(Cast with 6 snow mana and destroy creatures) name(Cast with 6 snow mana and destroy creatures) notatarget(*[creature;planeswalker;manacost<=6]|mybattlefield) transforms((,newability[all(other creature) destroy])) oneshot && activate castcard(alternative) -autohand={i}{i}{i}{i}{i}{i} restriction{compare(mysnowpoolcount)~morethan~5,compare(mysnowblackpoolcount)~morethan~1,type(*[creature;planeswalker;manacost<=6]|mybattlefield)~equalto~0}:name(Cast with 6 snow mana and destroy planeswalkers) name(Cast with 6 snow mana and destroy planeswalkers) all(planeswalker) destroy && activate castcard(alternative) -autohand={i}{i}{i}{i}{i}{i} restriction{compare(mysnowpoolcount)~morethan~5,compare(mysnowblackpoolcount)~morethan~1,type(*[creature;planeswalker;manacost<=6]|mybattlefield)~morethan~0}:name(Cast with 6 snow mana and destroy planeswalkers) name(Cast with 6 snow mana and destroy planeswalkers) notatarget(*[creature;planeswalker;manacost<=6]|mybattlefield) transforms((,newability[all(other planeswalker) destroy])) oneshot && activate castcard(alternative) -auto=ifnot paid(alternative) then if type(*[creature;planeswalker;manacost<=0]|mybattlefield)~morethan~0 then choice name(Destroy all creatures) name(Destroy all creatures) target(*[creature;planeswalker;manacost<=0]|mybattlefield) transforms((,newability[all(other creature) destroy])) oneshot -auto=ifnot paid(alternative) then if type(*[creature;planeswalker;manacost<=0]|mybattlefield)~morethan~0 then choice name(Destroy all planeswalkers) name(Destroy all planeswalkers) target(*[creature;planeswalker;manacost<=0]|mybattlefield) transforms((,newability[all(other planeswalker) destroy])) oneshot -auto=ifnot paid(alternative) then if type(*[creature;planeswalker;manacost<=0]|mybattlefield)~equalto~0 then choice name(Destroy all creatures) name(Destroy all creatures) name(Destroy all creatures) all(creature) destroy -auto=ifnot paid(alternative) then if type(*[creature;planeswalker;manacost<=0]|mybattlefield)~equalto~0 then choice name(Destroy all planeswalkers) name(Destroy all planeswalkers) name(Destroy all planeswalkers) all(planeswalker) destroy -text=Choose one -- Destroy all creatures. -- Destroy all planeswalkers. -- Then return a creature or planeswalker card with mana value X or less from your graveyard to the battlefield, where X is the amount of {S}i} spent to cast this spell. ({S}i} is mana from a snow source.) -mana={4}{B}{B} -type=Snow Sorcery -[/card] -[card] name=Blood Operative abilities=lifelink auto=may moveto(exile) target(*|graveyard) @@ -8899,73 +8878,47 @@ power=5 toughness=5 [/card] [card] -name=Blot Out -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~0 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=0]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~1 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=1]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~2 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=2]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~3 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=3]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~4 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=4]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~5 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=5]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~6 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=6]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~7 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=7]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~8 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=8]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~9 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=9]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~10 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=10]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~11 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=11]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~12 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=12]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~13 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=13]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~14 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=14]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~15 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=15]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~16 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=16]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~17 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=17]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~18 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=18]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~19 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=19]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~morethan~19 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost>=20]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~0 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=0]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~1 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=1]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~2 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=2]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~3 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=3]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~4 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=4]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~5 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=5]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~6 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=6]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~7 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=7]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~8 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=8]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~9 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=9]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~10 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=10]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~11 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=11]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~12 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=12]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~13 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=13]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~14 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=14]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~15 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=15]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~16 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=16]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~17 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=17]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~18 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=18]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~19 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=19]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~morethan~19 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost>=20]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~0 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=0]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=0]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~1 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=1]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=1]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~2 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=2]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=2]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~3 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=3]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=3]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~4 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=4]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=4]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~5 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=5]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=5]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~6 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=6]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=6]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~7 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=7]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=7]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~8 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=8]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=8]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~9 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=9]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=9]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~10 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=10]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=10]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~11 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=11]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=11]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~12 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=12]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=12]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~13 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=13]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=13]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~14 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=14]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=14]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~15 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=15]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=15]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~16 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=16]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=16]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~17 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=17]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=17]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~18 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=18]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=18]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~19 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=19]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=19]|mybattlefield) moveto(myexile)!$ opponent -auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~morethan~19 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=20]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=20]|mybattlefield) moveto(myexile)!$ opponent -text=Target opponent exiles a creature or planeswalker they control with the greatest mana value among creatures and planeswalkers they control. -mana={2}{B} -type=Instant +name=Blood for Bones +auto=ability$!notatarget(creature|mygraveyard) moveto(mybattlefield)!$ controller +auto=ability$!notatarget(creature|mygraveyard) moveto(myhand)!$ controller +text=As an additional cost to cast this spell, sacrifice a creature. -- Return a creature card from your graveyard to the battlefield, then return another creature card from your graveyard to your hand. +mana={3}{B}{S(creature|myBattlefield)} +type=Sorcery +[/card] +[card] +name=Blood on the Snow +restriction=compare(mysnowpoolcount)~equalto~0 +autohand={3}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~1,type(*[creature;planeswalker;manacost<=1]|mybattlefield)~equalto~0}:name(Cast with 1 snow mana and destroy creatures) name(Cast with 1 snow mana and destroy creatures) all(creature) destroy && activate castcard(alternative) +autohand={3}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~1,type(*[creature;planeswalker;manacost<=1]|mybattlefield)~morethan~0}:name(Cast with 1 snow mana and destroy creatures) name(Cast with 1 snow mana and destroy creatures) notatarget(*[creature;planeswalker;manacost<=1]|mybattlefield) transforms((,newability[all(other creature) destroy])) oneshot && activate castcard(alternative) +autohand={3}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~1,type(*[creature;planeswalker;manacost<=1]|mybattlefield)~equalto~0}:name(Cast with 1 snow mana and destroy planeswalkers) name(Cast with 1 snow mana and destroy planeswalkers) all(planeswalker) destroy && activate castcard(alternative) +autohand={3}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~1,type(*[creature;planeswalker;manacost<=1]|mybattlefield)~morethan~0}:name(Cast with 1 snow mana and destroy planeswalkers) name(Cast with 1 snow mana and destroy planeswalkers) notatarget(*[creature;planeswalker;manacost<=1]|mybattlefield) transforms((,newability[all(other planeswalker) destroy])) oneshot && activate castcard(alternative) +autohand={2}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~2,type(*[creature;planeswalker;manacost<=2]|mybattlefield)~equalto~0}:name(Cast with 2 snow mana and destroy creatures) name(Cast with 2 snow mana and destroy creatures) all(creature) destroy && activate castcard(alternative) +autohand={2}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~2,type(*[creature;planeswalker;manacost<=2]|mybattlefield)~morethan~0}:name(Cast with 2 snow mana and destroy creatures) name(Cast with 2 snow mana and destroy creatures) notatarget(*[creature;planeswalker;manacost<=2]|mybattlefield) transforms((,newability[all(other creature) destroy])) oneshot && activate castcard(alternative) +autohand={2}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~2,type(*[creature;planeswalker;manacost<=2]|mybattlefield)~equalto~0}:name(Cast with 2 snow mana and destroy planeswalkers) name(Cast with 2 snow mana and destroy planeswalkers) all(planeswalker) destroy && activate castcard(alternative) +autohand={2}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~2,type(*[creature;planeswalker;manacost<=2]|mybattlefield)~morethan~0}:name(Cast with 2 snow mana and destroy planeswalkers) name(Cast with 2 snow mana and destroy planeswalkers) notatarget(*[creature;planeswalker;manacost<=2]|mybattlefield) transforms((,newability[all(other planeswalker) destroy])) oneshot && activate castcard(alternative) +autohand={1}{i}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~3,type(*[creature;planeswalker;manacost<=3]|mybattlefield)~equalto~0}:name(Cast with 3 snow mana and destroy creatures) name(Cast with 3 snow mana and destroy creatures) all(creature) destroy && activate castcard(alternative) +autohand={1}{i}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~3,type(*[creature;planeswalker;manacost<=3]|mybattlefield)~morethan~0}:name(Cast with 3 snow mana and destroy creatures) name(Cast with 3 snow mana and destroy creatures) notatarget(*[creature;planeswalker;manacost<=3]|mybattlefield) transforms((,newability[all(other creature) destroy])) oneshot && activate castcard(alternative) +autohand={1}{i}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~3,type(*[creature;planeswalker;manacost<=3]|mybattlefield)~equalto~0}:name(Cast with 3 snow mana and destroy planeswalkers) name(Cast with 3 snow mana and destroy planeswalkers) all(planeswalker) destroy && activate castcard(alternative) +autohand={1}{i}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~3,type(*[creature;planeswalker;manacost<=3]|mybattlefield)~morethan~0}:name(Cast with 3 snow mana and destroy planeswalkers) name(Cast with 3 snow mana and destroy planeswalkers) notatarget(*[creature;planeswalker;manacost<=3]|mybattlefield) transforms((,newability[all(other planeswalker) destroy])) oneshot && activate castcard(alternative) +autohand={i}{i}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~morethan~3,type(*[creature;planeswalker;manacost<=4]|mybattlefield)~equalto~0}:name(Cast with 4 snow mana and destroy creatures) name(Cast with 4 snow mana and destroy creatures) all(creature) destroy && activate castcard(alternative) +autohand={i}{i}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~morethan~3,type(*[creature;planeswalker;manacost<=4]|mybattlefield)~morethan~0}:name(Cast with 4 snow mana and destroy creatures) name(Cast with 4 snow mana and destroy creatures) notatarget(*[creature;planeswalker;manacost<=4]|mybattlefield) transforms((,newability[all(other creature) destroy])) oneshot && activate castcard(alternative) +autohand={i}{i}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~morethan~3,type(*[creature;planeswalker;manacost<=4]|mybattlefield)~equalto~0}:name(Cast with 4 snow mana and destroy planeswalkers) name(Cast with 4 snow mana and destroy planeswalkers) all(planeswalker) destroy && activate castcard(alternative) +autohand={i}{i}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~morethan~3,type(*[creature;planeswalker;manacost<=4]|mybattlefield)~morethan~0}:name(Cast with 4 snow mana and destroy planeswalkers) name(Cast with 4 snow mana and destroy planeswalkers) notatarget(*[creature;planeswalker;manacost<=4]|mybattlefield) transforms((,newability[all(other planeswalker) destroy])) oneshot && activate castcard(alternative) +autohand={i}{i}{i}{i}{i}{B} restriction{compare(mysnowpoolcount)~morethan~4,compare(mysnowblackpoolcount)~morethan~0,type(*[creature;planeswalker;manacost<=5]|mybattlefield)~equalto~0}:name(Cast with 5 snow mana and destroy creatures) name(Cast with 5 snow mana and destroy creatures) all(creature) destroy && activate castcard(alternative) +autohand={i}{i}{i}{i}{i}{B} restriction{compare(mysnowpoolcount)~morethan~4,compare(mysnowblackpoolcount)~morethan~0,type(*[creature;planeswalker;manacost<=5]|mybattlefield)~morethan~0}:name(Cast with 5 snow mana and destroy creatures) name(Cast with 5 snow mana and destroy creatures) notatarget(*[creature;planeswalker;manacost<=5]|mybattlefield) transforms((,newability[all(other creature) destroy])) oneshot && activate castcard(alternative) +autohand={i}{i}{i}{i}{i}{B} restriction{compare(mysnowpoolcount)~morethan~4,compare(mysnowblackpoolcount)~morethan~0,type(*[creature;planeswalker;manacost<=5]|mybattlefield)~equalto~0}:name(Cast with 5 snow mana and destroy planeswalkers) name(Cast with 5 snow mana and destroy planeswalkers) all(planeswalker) destroy && activate castcard(alternative) +autohand={i}{i}{i}{i}{i}{B} restriction{compare(mysnowpoolcount)~morethan~4,compare(mysnowblackpoolcount)~morethan~0,type(*[creature;planeswalker;manacost<=5]|mybattlefield)~morethan~0}:name(Cast with 5 snow mana and destroy planeswalkers) name(Cast with 5 snow mana and destroy planeswalkers) notatarget(*[creature;planeswalker;manacost<=5]|mybattlefield) transforms((,newability[all(other planeswalker) destroy])) oneshot && activate castcard(alternative) +autohand={i}{i}{i}{i}{i}{i} restriction{compare(mysnowpoolcount)~morethan~5,compare(mysnowblackpoolcount)~morethan~1,type(*[creature;planeswalker;manacost<=6]|mybattlefield)~equalto~0}:name(Cast with 6 snow mana and destroy creatures) name(Cast with 6 snow mana and destroy creatures) all(creature) destroy && activate castcard(alternative) +autohand={i}{i}{i}{i}{i}{i} restriction{compare(mysnowpoolcount)~morethan~5,compare(mysnowblackpoolcount)~morethan~1,type(*[creature;planeswalker;manacost<=6]|mybattlefield)~morethan~0}:name(Cast with 6 snow mana and destroy creatures) name(Cast with 6 snow mana and destroy creatures) notatarget(*[creature;planeswalker;manacost<=6]|mybattlefield) transforms((,newability[all(other creature) destroy])) oneshot && activate castcard(alternative) +autohand={i}{i}{i}{i}{i}{i} restriction{compare(mysnowpoolcount)~morethan~5,compare(mysnowblackpoolcount)~morethan~1,type(*[creature;planeswalker;manacost<=6]|mybattlefield)~equalto~0}:name(Cast with 6 snow mana and destroy planeswalkers) name(Cast with 6 snow mana and destroy planeswalkers) all(planeswalker) destroy && activate castcard(alternative) +autohand={i}{i}{i}{i}{i}{i} restriction{compare(mysnowpoolcount)~morethan~5,compare(mysnowblackpoolcount)~morethan~1,type(*[creature;planeswalker;manacost<=6]|mybattlefield)~morethan~0}:name(Cast with 6 snow mana and destroy planeswalkers) name(Cast with 6 snow mana and destroy planeswalkers) notatarget(*[creature;planeswalker;manacost<=6]|mybattlefield) transforms((,newability[all(other planeswalker) destroy])) oneshot && activate castcard(alternative) +auto=ifnot paid(alternative) then if type(*[creature;planeswalker;manacost<=0]|mybattlefield)~morethan~0 then choice name(Destroy all creatures) name(Destroy all creatures) target(*[creature;planeswalker;manacost<=0]|mybattlefield) transforms((,newability[all(other creature) destroy])) oneshot +auto=ifnot paid(alternative) then if type(*[creature;planeswalker;manacost<=0]|mybattlefield)~morethan~0 then choice name(Destroy all planeswalkers) name(Destroy all planeswalkers) target(*[creature;planeswalker;manacost<=0]|mybattlefield) transforms((,newability[all(other planeswalker) destroy])) oneshot +auto=ifnot paid(alternative) then if type(*[creature;planeswalker;manacost<=0]|mybattlefield)~equalto~0 then choice name(Destroy all creatures) name(Destroy all creatures) name(Destroy all creatures) all(creature) destroy +auto=ifnot paid(alternative) then if type(*[creature;planeswalker;manacost<=0]|mybattlefield)~equalto~0 then choice name(Destroy all planeswalkers) name(Destroy all planeswalkers) name(Destroy all planeswalkers) all(planeswalker) destroy +text=Choose one -- Destroy all creatures. -- Destroy all planeswalkers. -- Then return a creature or planeswalker card with mana value X or less from your graveyard to the battlefield, where X is the amount of {S}i} spent to cast this spell. ({S}i} is mana from a snow source.) +mana={4}{B}{B} +type=Snow Sorcery [/card] [card] name=Bloodbat Summoner @@ -9412,6 +9365,75 @@ mana={W} type=Instant [/card] [card] +name=Blot Out +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~0 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=0]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~1 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=1]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~2 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=2]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~3 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=3]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~4 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=4]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~5 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=5]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~6 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=6]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~7 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=7]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~8 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=8]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~9 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=9]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~10 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=10]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~11 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=11]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~12 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=12]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~13 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=13]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~14 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=14]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~15 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=15]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~16 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=16]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~17 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=17]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~18 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=18]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~19 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=19]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~morethan~19 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost>=20]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~0 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=0]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~1 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=1]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~2 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=2]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~3 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=3]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~4 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=4]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~5 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=5]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~6 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=6]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~7 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=7]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~8 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=8]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~9 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=9]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~10 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=10]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~11 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=11]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~12 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=12]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~13 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=13]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~14 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=14]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~15 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=15]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~16 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=16]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~17 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=17]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~18 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=18]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~19 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=19]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~morethan~19 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost>=20]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~0 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=0]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=0]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~1 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=1]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=1]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~2 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=2]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=2]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~3 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=3]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=3]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~4 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=4]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=4]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~5 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=5]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=5]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~6 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=6]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=6]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~7 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=7]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=7]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~8 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=8]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=8]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~9 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=9]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=9]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~10 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=10]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=10]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~11 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=11]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=11]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~12 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=12]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=12]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~13 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=13]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=13]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~14 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=14]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=14]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~15 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=15]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=15]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~16 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=16]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=16]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~17 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=17]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=17]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~18 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=18]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=18]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~19 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=19]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=19]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~morethan~19 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=20]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=20]|mybattlefield) moveto(myexile)!$ opponent +text=Target opponent exiles a creature or planeswalker they control with the greatest mana value among creatures and planeswalkers they control. +mana={2}{B} +type=Instant +[/card] +[card] name=Blot Out the Sky auto=token(Inkling,Creature Inkling,2/1,white,black,flying)*x and!( tap(noevent) )! auto=this(X>=6) all(*[-creature;-land]|battlefield) destroy @@ -12069,6 +12091,18 @@ power=1 toughness=3 [/card] [card] +name=Calix, Guided by Fate +auto=@movedTo(enchantment|myBattlefield):name(Put 1/1 counter) target(creature|battlefield) counter(1/1) +auto=name(Put 1/1 counter) target(creature|battlefield) counter(1/1) +auto=@combatdamaged(player) from(Calix^ Guided by Fate,creature[enchanted]|myBattlefield) turnlimited:may name(Copy enchantment) target(enchantment[-legendary]|myBattlefield) clone and!( transforms((,newability[if cantargetcard(*[aura]|*) then rehook target(creature|mybattlefield)])) forever )! +text=Constellation â?? Whenever Calix, Guided by Fate or another enchantment enters the battlefield under your control, put a +1/+1 counter on target creature. -- Whenever Calix or an enchanted creature you control deals combat damage to a player, you may create a token that's a copy of a nonlegendary enchantment you control. Do this only once each turn. +mana={1}{G}{W} +type=Legendary Enchantment Creature +subtype=Human Druid +power=2 +toughness=2 +[/card] +[card] name=Call of the Death-Dweller target=creature[manacost<=3]|myGraveyard auto=moveTo(myBattlefield) and!( transforms((,newability[counter(0/0.1.Deathtouch)],newability[this(counter{0/0.1.Deathtouch}>=1) deathtouch],newability[counter(0/0.1.Menace)],newability[this(counter{0/0.1.Menace}>=1) menace])) forever )! @@ -12189,6 +12223,14 @@ power=2 toughness=1 [/card] [card] +name=Campus Renovation +auto=may name(Return artifact or enchantment) target(*[enchantment;artifact]|mygraveyard) moveto(mybattlefield) +auto=all(*[zpos<=2]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile])) uent )! +text=Return up to one target artifact or enchantment card from your graveyard to the battlefield. Exile the top two cards of your library. Until the end of your next turn, you may play those cards. +mana={3}{R}{W} +type=Sorcery +[/card] +[card] name=Can't Stay Away target=creature[manacost<=3]|mygraveyard flashback={3}{W}{B} @@ -17519,6 +17561,16 @@ mana={3}{W} type=Instant [/card] [card] +name=Cosmic Rebirth +target=*[-instant;-sorcery]|mygraveyard +auto=life:3 controller +auto=if cantargetcard(*[manacost<=3]|*) then transforms((,newability[choice name(Put onto battlefield) moveto(mybattlefield)],newability[choice name(Put in hand) moveto(myhand)])) oneshot +auto=if cantargetcard(*[manacost>=4]|*) then moveto(myhand) +text=Choose target permanent card in your graveyard. If it has mana value 3 or less, you may put it onto the battlefield. If you don't put it onto the battlefield, put it into your hand. -- You gain 3 life. +mana={1}{G}{W} +type=Instant +[/card] +[card] name=Cosmos Charger abilities=foretell,flash,flying autohand=_FORETELL_ @@ -20432,17 +20484,6 @@ power=5 toughness=5 [/card] [card] -name=Death-Rattle Oni -abilities=flash,affinityalldeadcreatures -auto=name(Destroy damaged creatures) all(other creature[damaged]|battlefield) destroy -text=Flash -- This spell costs {2} less to cast for each creature that died this turn. -- When Death-Rattle Oni enters the battlefield, destroy all other creatures that were dealt damage this turn. -mana={6}{B} -type=Creature -subtype=Demon Spirit -power=5 -toughness=4 -[/card] -[card] name=Death Tyrant abilities=menace auto=lord(creature[attacking]|mybattlefield) transforms((,newability[_DIES_name(Create zombie) _ZOMBIETOKEN_])) @@ -20509,6 +20550,17 @@ power=2 toughness=2 [/card] [card] +name=Death-Rattle Oni +abilities=flash,affinityalldeadcreatures +auto=name(Destroy damaged creatures) all(other creature[damaged]|battlefield) destroy +text=Flash -- This spell costs {2} less to cast for each creature that died this turn. -- When Death-Rattle Oni enters the battlefield, destroy all other creatures that were dealt damage this turn. +mana={6}{B} +type=Creature +subtype=Demon Spirit +power=5 +toughness=4 +[/card] +[card] name=Deathbellow War Cry auto=name(Search 4 different minotoaurs) target(creature[minotaur]|myLibrary) moveTo(myBattlefield) text=Search your library for up to four Minotaur creature cards with different names, put them onto the battlefield, then shuffle. @@ -23798,16 +23850,6 @@ mana={WB}{WB}{WB}{WB} type=Enchantment [/card] [card] -name=Drana's Silencer -auto=target(creature|opponentBattlefield) -calculateparty/-calculateparty ueot -text=When Drana's Silencer enters the battlefield, target creature an opponent controls gets -X/-X until end of turn, where X is the number of creatures in your party. (Your party consists of up to one each of Cleric, Rogue, Warrior, and Wizard.) -mana={5}{B} -type=Creature -subtype=Vampire Rogue -power=3 -toughness=2 -[/card] -[card] name=Drana and Linvala #MISSING: has all activated abilities abilities=flying,vigilance @@ -23820,6 +23862,16 @@ power=3 toughness=4 [/card] [card] +name=Drana's Silencer +auto=target(creature|opponentBattlefield) -calculateparty/-calculateparty ueot +text=When Drana's Silencer enters the battlefield, target creature an opponent controls gets -X/-X until end of turn, where X is the number of creatures in your party. (Your party consists of up to one each of Cleric, Rogue, Warrior, and Wizard.) +mana={5}{B} +type=Creature +subtype=Vampire Rogue +power=3 +toughness=2 +[/card] +[card] name=Drana, the Last Bloodchief abilities=flying auto=_ATTACKING_ability$!name(Choose a non-legendary creature) notAtarget(creature[-legendary]|opponentGraveyard) moveTo(opponentBattlefield) and!( counter(1/1) and!(becomes(vampire) forever)! )! !$ opponent @@ -29518,6 +29570,14 @@ mana={4}{B}{B} type=Sorcery [/card] [card] +name=Feast of the Victorious Dead +auto=@each my endofturn restriction{compare(bothalldeadcreature)~morethan~0}:name(Gain life) life:bothalldeadcreature +auto=@each my endofturn restriction{compare(bothalldeadcreature)~morethan~0}:name(Put 1/1 counters) thisforeach(variable{bothalldeadcreature}>0) ability$!name(Put 1/1 counter) target(creature|myBattlefield) counter(1/1)!$ controller +text=At the beginning of your end step, if one or more creatures died this turn, you gain that much life and distribute that many +1/+1 counters among creatures you control. +mana={W}{B} +type=Enchantment +[/card] +[card] name=Feast on the Fallen auto=@each upkeep restriction{lastturn(oplifelost)~morethan~0}:counter(1/1) target(creature[myBattlefield]) text=At the beginning of each upkeep, if an opponent lost life last turn, put a +1/+1 counter on target creature you control. @@ -35063,16 +35123,6 @@ power=0 toughness=0 [/card] [card] -name=Glissa, Herald of Predation -auto=@each my combatbegins:name(Choose one) transforms((,newability[choice name(Create Incubate 2 twice) thisforeach(variable{2}) name(Incubate 2) name(Incubate 2) token(Incubator) and!( counter(1/1.2) )!],newability[choice name(Transform all incubator) all(incubator|myBattlefield) flip(backside)],newability[choice name(All phyrexians gain first strike and deathtouch) all(phyrexian|myBattlefield) transforms((,newability[first strike],newability[deathtouch])) ueot])) oneshot -text=At the beginning of combat on your turn, choose one -- Incubate 2 twice. (To incubate 2, create an Incubator token with two +1/+1 counters on it and "{2}: Transform this artifact." It transforms into a 0/0 Phyrexian artifact creature.) -- Transform all Incubator tokens you control. -- Phyrexians you control gain first strike and deathtouch until end of turn. -mana={3}{B}{G} -type=Legendary Creature -subtype=Phyrexian Zombie Elf -power=3 -toughness=5 -[/card] -[card] name=Glissa Sunseeker abilities=first strike auto={T}:name(destroy artifact) name(destroy artifact) destroy target(artifact[manacost=mypoolcount]) @@ -35084,6 +35134,16 @@ power=3 toughness=2 [/card] [card] +name=Glissa, Herald of Predation +auto=@each my combatbegins:name(Choose one) transforms((,newability[choice name(Create Incubate 2 twice) thisforeach(variable{2}) name(Incubate 2) name(Incubate 2) token(Incubator) and!( counter(1/1.2) )!],newability[choice name(Transform all incubator) all(incubator|myBattlefield) flip(backside)],newability[choice name(All phyrexians gain first strike and deathtouch) all(phyrexian|myBattlefield) transforms((,newability[first strike],newability[deathtouch])) ueot])) oneshot +text=At the beginning of combat on your turn, choose one -- Incubate 2 twice. (To incubate 2, create an Incubator token with two +1/+1 counters on it and "{2}: Transform this artifact." It transforms into a 0/0 Phyrexian artifact creature.) -- Transform all Incubator tokens you control. -- Phyrexians you control gain first strike and deathtouch until end of turn. +mana={3}{B}{G} +type=Legendary Creature +subtype=Phyrexian Zombie Elf +power=3 +toughness=5 +[/card] +[card] name=Glistener Seer auto=counter(0/0,3,oil) auto={T}{C(0/0,-1,oil)}:_SCRY1_ @@ -43743,17 +43803,6 @@ mana={B}{G} type=Instant [/card] [card] -name=Inga and Esika -auto=lord(creature|mybattlefield) transforms((,newability[vigilance],newability[this(variable{type:creature:myrestrictedcastingzone}>0) {T}:add{W}],newability[this(variable{type:creature:myrestrictedcastingzone}>0) {T}:add{U}],newability[this(variable{type:creature:myrestrictedcastingzone}>0) {T}:add{B}],newability[this(variable{type:creature:myrestrictedcastingzone}>0) {T}:add{R}],newability[this(variable{type:creature:myrestrictedcastingzone}>0) {T}:add{G}])) -auto=@movedTo(creature[manacost>=3]|mystack):may name(Draw a card) draw:1 controller -text=Creatures you control have vigilance and "{T}: Add one mana of any color. Spend this mana only to cast a creature spell." -- Whenever you cast a creature spell, if three or more mana from creatures was spent to cast it, draw a card. -mana={2}{G}{U} -type=Legendary Creature -subtype=Human God -power=4 -toughness=4 -[/card] -[card] name=Inga Rune-Eyes aicode=activate transforms((,newability[all(*[zpos<=3]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot auto=_SCRY3_ @@ -43768,6 +43817,17 @@ power=3 toughness=3 [/card] [card] +name=Inga and Esika +auto=lord(creature|mybattlefield) transforms((,newability[vigilance],newability[this(variable{type:creature:myrestrictedcastingzone}>0) {T}:add{W}],newability[this(variable{type:creature:myrestrictedcastingzone}>0) {T}:add{U}],newability[this(variable{type:creature:myrestrictedcastingzone}>0) {T}:add{B}],newability[this(variable{type:creature:myrestrictedcastingzone}>0) {T}:add{R}],newability[this(variable{type:creature:myrestrictedcastingzone}>0) {T}:add{G}])) +auto=@movedTo(creature[manacost>=3]|mystack):may name(Draw a card) draw:1 controller +text=Creatures you control have vigilance and "{T}: Add one mana of any color. Spend this mana only to cast a creature spell." -- Whenever you cast a creature spell, if three or more mana from creatures was spent to cast it, draw a card. +mana={2}{G}{U} +type=Legendary Creature +subtype=Human God +power=4 +toughness=4 +[/card] +[card] name=Ingenious Artillerist auto=@movedto(artifact|myBattlefield):damage:1 opponent text=Whenever one or more artifacts enter the battlefield under your control, Ingenious Artillerist deals that much damage to each opponent. @@ -44389,7 +44449,7 @@ toughness=6 name=Into the Fire auto=choice name(Deals 2 damage) all(*[creature;planeswalker;battle]|battlefield) damage:2 auto=choice name(Put cards on bottom) all(*[zpos=1]|mylibrary) moveto(myhand) and!( transforms((,newability[name(Put cards on bottom) target(other *|myhand) bottomoflibrary and!( draw:1 controller )!])) oneshot )! -text=Choose one — -- • Into the Fire deals 2 damage to each creature, planeswalker, and battle. -- • Put any number of cards from your hand on the bottom of your library, then draw that many cards plus one. +text=Choose one â?? -- â?¢ Into the Fire deals 2 damage to each creature, planeswalker, and battle. -- â?¢ Put any number of cards from your hand on the bottom of your library, then draw that many cards plus one. mana={2}{R} type=Sorcery [/card] @@ -44673,21 +44733,6 @@ type=Battle subtype=Siege [/card] [card] -name=Invasion of Ixalan -backside=Belligerent Regisaur -restriction=compare(isflipped)~equalto~0 -anyzone={0}:doubleside(backside) -aicode=activate transforms((,newability[if type(*[-instant;-sorcery;zpos<=5]|myLibrary)~morethan~0 then target(*[-instant;-sorcery;zpos<=5]|myLibrary) moveTo(myHand) and!( all(other *[zpos<=5]|mylibrary) moveto(myreveal) and!( bottomoflibrary )! )! else all(*[-instant;-sorcery;zpos<=5]|myLibrary) moveto(myreveal) and!( bottomoflibrary )! ])) oneshot -auto=counter(0/0.4.Defense) -auto=ability$!name(Look top 5 cards) name(Look top 5 cards) reveal:5 optionone name(Get a permanent) target(*[-instant;-sorcery]|reveal) moveto(myhand) optiononeend optiontwo name(Put on bottom) target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend!$ controller -auto=moveto(opponentbattlefield) -auto=@defeated(this):name(Exile and transforms) name(Exile and transforms) moveto(ownerexile) and!( flip(backside) forcetype(Creature Dinosaur) )! -text=(As a Siege enters, choose an opponent to protect it. You and others can attack it. When it's defeated, exile it, then cast it transformed.) -- When Invasion of Ixalan enters the battlefield, look at the top five cards of your library. You may reveal a permanent card from among them and put it into your hand. Put the rest on the bottom of your library in a random order. -mana={1}{G} -type=Battle -subtype=Siege -[/card] -[card] name=Invasion of Ikoria backside=Zilortha, Apex of Ikoria restriction=compare(isflipped)~equalto~0 @@ -44757,6 +44802,21 @@ type=Battle subtype=Siege [/card] [card] +name=Invasion of Ixalan +backside=Belligerent Regisaur +restriction=compare(isflipped)~equalto~0 +anyzone={0}:doubleside(backside) +aicode=activate transforms((,newability[if type(*[-instant;-sorcery;zpos<=5]|myLibrary)~morethan~0 then target(*[-instant;-sorcery;zpos<=5]|myLibrary) moveTo(myHand) and!( all(other *[zpos<=5]|mylibrary) moveto(myreveal) and!( bottomoflibrary )! )! else all(*[-instant;-sorcery;zpos<=5]|myLibrary) moveto(myreveal) and!( bottomoflibrary )! ])) oneshot +auto=counter(0/0.4.Defense) +auto=ability$!name(Look top 5 cards) name(Look top 5 cards) reveal:5 optionone name(Get a permanent) target(*[-instant;-sorcery]|reveal) moveto(myhand) optiononeend optiontwo name(Put on bottom) target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend!$ controller +auto=moveto(opponentbattlefield) +auto=@defeated(this):name(Exile and transforms) name(Exile and transforms) moveto(ownerexile) and!( flip(backside) forcetype(Creature Dinosaur) )! +text=(As a Siege enters, choose an opponent to protect it. You and others can attack it. When it's defeated, exile it, then cast it transformed.) -- When Invasion of Ixalan enters the battlefield, look at the top five cards of your library. You may reveal a permanent card from among them and put it into your hand. Put the rest on the bottom of your library in a random order. +mana={1}{G} +type=Battle +subtype=Siege +[/card] +[card] name=Invasion of Kaladesh backside=Aetherwing, Golden-Scale Flagship restriction=compare(isflipped)~equalto~0 @@ -44771,6 +44831,20 @@ type=Battle subtype=Siege [/card] [card] +name=Invasion of Kaldheim +backside=Pyre of the World Tree +restriction=compare(isflipped)~equalto~0 +anyzone={0}:doubleside(backside) +auto=counter(0/0.4.Defense) +auto=name(Exile cards) name(Exile cards) all(*|myhand) moveto(myexile) and!( transforms((,newability[draw:1 controller],newability[counter(0/0.1.InvasionExiled) notrg],newability[this(counter{0/0.1.InvasionExiled}>0) canplayfromexile],newability[@each untap restriction{compare(hascntinvasionexiled)~morethan~0}:transforms((,newability[canplayfromexile])) ueot],newability[@each my upkeep restriction{compare(hascntinvasionexiled)~morethan~0}:removeallcounters(0/0.1.InvasionExiled)])) forever )! +auto=moveto(opponentbattlefield) +auto=@defeated(this):name(Exile and transforms) name(Exile and transforms) moveto(ownerexile) and!( flip(backside) forcetype(Enchantment) )! +text=(As a Siege enters, choose an opponent to protect it. You and others can attack it. When it's defeated, exile it, then cast it transformed.) -- When Invasion of Kaldheim enters the battlefield, exile all cards from your hand, then draw that many cards. Until the end of your next turn, you may play cards exiled this way. +mana={3}{R} +type=Battle +subtype=Siege +[/card] +[card] name=Invasion of Kamigawa backside=Rooftop Saboteurs restriction=compare(isflipped)~equalto~0 @@ -44799,20 +44873,6 @@ type=Battle subtype=Siege [/card] [card] -name=Invasion of Kaldheim -backside=Pyre of the World Tree -restriction=compare(isflipped)~equalto~0 -anyzone={0}:doubleside(backside) -auto=counter(0/0.4.Defense) -auto=name(Exile cards) name(Exile cards) all(*|myhand) moveto(myexile) and!( transforms((,newability[draw:1 controller],newability[counter(0/0.1.InvasionExiled) notrg],newability[this(counter{0/0.1.InvasionExiled}>0) canplayfromexile],newability[@each untap restriction{compare(hascntinvasionexiled)~morethan~0}:transforms((,newability[canplayfromexile])) ueot],newability[@each my upkeep restriction{compare(hascntinvasionexiled)~morethan~0}:removeallcounters(0/0.1.InvasionExiled)])) forever )! -auto=moveto(opponentbattlefield) -auto=@defeated(this):name(Exile and transforms) name(Exile and transforms) moveto(ownerexile) and!( flip(backside) forcetype(Enchantment) )! -text=(As a Siege enters, choose an opponent to protect it. You and others can attack it. When it's defeated, exile it, then cast it transformed.) -- When Invasion of Kaldheim enters the battlefield, exile all cards from your hand, then draw that many cards. Until the end of your next turn, you may play cards exiled this way. -mana={3}{R} -type=Battle -subtype=Siege -[/card] -[card] name=Invasion of Kylem backside=Valor's Reach Tag Team restriction=compare(isflipped)~equalto~0 @@ -44995,20 +45055,6 @@ type=Battle subtype=Siege [/card] [card] -name=Invasion of the Giants -auto=counter(0/0,1,Lore) -auto=@each my firstmain:counter(0/0,1,Lore) -aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot -auto=_SCRY2_ -auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.2.Lore}=) transforms((,newability[draw:1 controller],newability[if type(giant|myhand)~morethan~0 then damage:2 target(player^planeswalker)])) oneshot -auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.3.Lore}) name(Next giant costs 2 less) target(giant|mycastingzone) transforms((,newability[changecost(colorless:-2)])) ueot -auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.3.Lore}) sacrifice(this) -text=(As this Saga enters and after your draw step, add a lore counter. Sacrifice after III.) -- I - Scry 2. -- II - Draw a card. Then you may reveal a Giant card from your hand. When you do, Invasion of the Giants deals 2 damage to target opponent or planeswalker. -- III - The next Giant spell you cast this turn costs 2 less to cast. -mana={U}{R} -type=Enchantment -subtype=Saga -[/card] -[card] name=Invasion of Theros backside=Ephara, Ever-Sheltering restriction=compare(isflipped)~equalto~0 @@ -45094,6 +45140,20 @@ type=Battle subtype=Siege [/card] [card] +name=Invasion of the Giants +auto=counter(0/0,1,Lore) +auto=@each my firstmain:counter(0/0,1,Lore) +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot +auto=_SCRY2_ +auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.2.Lore}=) transforms((,newability[draw:1 controller],newability[if type(giant|myhand)~morethan~0 then damage:2 target(player^planeswalker)])) oneshot +auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.3.Lore}) name(Next giant costs 2 less) target(giant|mycastingzone) transforms((,newability[changecost(colorless:-2)])) ueot +auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.3.Lore}) sacrifice(this) +text=(As this Saga enters and after your draw step, add a lore counter. Sacrifice after III.) -- I - Scry 2. -- II - Draw a card. Then you may reveal a Giant card from your hand. When you do, Invasion of the Giants deals 2 damage to target opponent or planeswalker. -- III - The next Giant spell you cast this turn costs 2 less to cast. +mana={U}{R} +type=Enchantment +subtype=Saga +[/card] +[card] name=Invert // Invent other={4}{U}{R} name(Invent) auto=ifnot paid(alternative) then target(creature) transforms((,setpower=toughness,settoughness=power)) ueot @@ -46224,6 +46284,17 @@ power=5 toughness=5 [/card] [card] +name=Jirina Kudro +auto=token(Human Soldier Jir)*pnumofcommandcast +auto=lord(other creature[Human]|myBattlefield) 2/0 +text=When Jirina Kudro enters the battlefield, create a 1/1 white Human Soldier creature token for each time you've cast a commander from the command zone this game. -- Other Humans you control get +2/+0. +mana={1}{R}{W}{B} +type=Legendary Creature +subtype=Human Soldier +power=3 +toughness=3 +[/card] +[card] name=Jirina, Dauntless General auto={S}:name(Humans gain hexproof and indestructible) all(human|myBattlefield) transforms((,newability[opponentshroud],newability[indestructible])) ueot auto=choice name(Exile opponent graveyard) all(creature|opponentgraveyard) moveto(ownerexile) @@ -46236,17 +46307,6 @@ power=2 toughness=2 [/card] [card] -name=Jirina Kudro -auto=token(Human Soldier Jir)*pnumofcommandcast -auto=lord(other creature[Human]|myBattlefield) 2/0 -text=When Jirina Kudro enters the battlefield, create a 1/1 white Human Soldier creature token for each time you've cast a commander from the command zone this game. -- Other Humans you control get +2/+0. -mana={1}{R}{W}{B} -type=Legendary Creature -subtype=Human Soldier -power=3 -toughness=3 -[/card] -[card] name=Jodah, Archmage Eternal abilities=flying auto=lord(*|myrestrictedcastingzone) transforms((,newability[{W}{U}{B}{R}{G}:name(Pay 5 colors and zerocast) name(Pay 5 colors and zerocast) zerocast])) @@ -46326,6 +46386,36 @@ power=1 toughness=2 [/card] [card] +name=Jolrael, Voice of Zhalfir +auto=@each my combatbegins restriction{type(*|myhand)~equalto~1}:may name(Transform a land) target(land|myBattlefield) transforms((Creature Bird,setpower=1,settoughness=1,newcolors[blue],newcolors[green],newability[flying],newability[haste])) ueot +auto=@each my combatbegins restriction{type(*|myhand)~equalto~2}:may name(Transform a land) target(land|myBattlefield) transforms((Creature Bird,setpower=2,settoughness=2,newcolors[blue],newcolors[green],newability[flying],newability[haste])) ueot +auto=@each my combatbegins restriction{type(*|myhand)~equalto~3}:may name(Transform a land) target(land|myBattlefield) transforms((Creature Bird,setpower=3,settoughness=3,newcolors[blue],newcolors[green],newability[flying],newability[haste])) ueot +auto=@each my combatbegins restriction{type(*|myhand)~equalto~4}:may name(Transform a land) target(land|myBattlefield) transforms((Creature Bird,setpower=4,settoughness=4,newcolors[blue],newcolors[green],newability[flying],newability[haste])) ueot +auto=@each my combatbegins restriction{type(*|myhand)~equalto~5}:may name(Transform a land) target(land|myBattlefield) transforms((Creature Bird,setpower=5,settoughness=5,newcolors[blue],newcolors[green],newability[flying],newability[haste])) ueot +auto=@each my combatbegins restriction{type(*|myhand)~equalto~6}:may name(Transform a land) target(land|myBattlefield) transforms((Creature Bird,setpower=6,settoughness=6,newcolors[blue],newcolors[green],newability[flying],newability[haste])) ueot +auto=@each my combatbegins restriction{type(*|myhand)~equalto~7}:may name(Transform a land) target(land|myBattlefield) transforms((Creature Bird,setpower=7,settoughness=7,newcolors[blue],newcolors[green],newability[flying],newability[haste])) ueot +auto=@each my combatbegins restriction{type(*|myhand)~equalto~8}:may name(Transform a land) target(land|myBattlefield) transforms((Creature Bird,setpower=8,settoughness=8,newcolors[blue],newcolors[green],newability[flying],newability[haste])) ueot +auto=@each my combatbegins restriction{type(*|myhand)~equalto~9}:may name(Transform a land) target(land|myBattlefield) transforms((Creature Bird,setpower=9,settoughness=9,newcolors[blue],newcolors[green],newability[flying],newability[haste])) ueot +auto=@each my combatbegins restriction{type(*|myhand)~equalto~10}:may name(Transform a land) target(land|myBattlefield) transforms((Creature Bird,setpower=10,settoughness=10,newcolors[blue],newcolors[green],newability[flying],newability[haste])) ueot +auto=@each my combatbegins restriction{type(*|myhand)~equalto~11}:may name(Transform a land) target(land|myBattlefield) transforms((Creature Bird,setpower=11,settoughness=11,newcolors[blue],newcolors[green],newability[flying],newability[haste])) ueot +auto=@each my combatbegins restriction{type(*|myhand)~equalto~12}:may name(Transform a land) target(land|myBattlefield) transforms((Creature Bird,setpower=12,settoughness=12,newcolors[blue],newcolors[green],newability[flying],newability[haste])) ueot +auto=@each my combatbegins restriction{type(*|myhand)~equalto~13}:may name(Transform a land) target(land|myBattlefield) transforms((Creature Bird,setpower=13,settoughness=13,newcolors[blue],newcolors[green],newability[flying],newability[haste])) ueot +auto=@each my combatbegins restriction{type(*|myhand)~equalto~14}:may name(Transform a land) target(land|myBattlefield) transforms((Creature Bird,setpower=14,settoughness=14,newcolors[blue],newcolors[green],newability[flying],newability[haste])) ueot +auto=@each my combatbegins restriction{type(*|myhand)~equalto~15}:may name(Transform a land) target(land|myBattlefield) transforms((Creature Bird,setpower=15,settoughness=15,newcolors[blue],newcolors[green],newability[flying],newability[haste])) ueot +auto=@each my combatbegins restriction{type(*|myhand)~equalto~16}:may name(Transform a land) target(land|myBattlefield) transforms((Creature Bird,setpower=16,settoughness=16,newcolors[blue],newcolors[green],newability[flying],newability[haste])) ueot +auto=@each my combatbegins restriction{type(*|myhand)~equalto~17}:may name(Transform a land) target(land|myBattlefield) transforms((Creature Bird,setpower=17,settoughness=17,newcolors[blue],newcolors[green],newability[flying],newability[haste])) ueot +auto=@each my combatbegins restriction{type(*|myhand)~equalto~18}:may name(Transform a land) target(land|myBattlefield) transforms((Creature Bird,setpower=18,settoughness=18,newcolors[blue],newcolors[green],newability[flying],newability[haste])) ueot +auto=@each my combatbegins restriction{type(*|myhand)~equalto~19}:may name(Transform a land) target(land|myBattlefield) transforms((Creature Bird,setpower=19,settoughness=19,newcolors[blue],newcolors[green],newability[flying],newability[haste])) ueot +auto=@each my combatbegins restriction{type(*|myhand)~morethan~19}:may name(Transform a land) target(land|myBattlefield) transforms((Creature Bird,setpower=20,settoughness=20,newcolors[blue],newcolors[green],newability[flying],newability[haste])) ueot +auto=@combatdamaged(player) from(creature[land]|myBattlefield):name(Draw a card) draw:1 controller +text=At the beginning of combat on your turn, up to one target land you control becomes an X/X green and blue Bird creature with flying and haste until end of turn, where X is the number of cards in your hand. It's still a land. -- Whenever a land creature you control deals combat damage to a player, draw a card. +mana={2}{G}{U} +type=Legendary Creature +subtype=Human Druid +power=3 +toughness=3 +[/card] +[card] name=Jor Kadeen, First Goldwarden abilities=trample auto=_ATTACKING_this(power>=4) draw:1 @@ -47273,6 +47363,17 @@ mana={4}{U}{U} type=Legendary Sorcery [/card] [card] +name=Karn, Legacy Reforged +anyzone=convertedcost:highest:artifact:myBattlefield/convertedcost:highest:artifact:myBattlefield cdaactive +auto=@each my upkeep restriction{type(artifact|myrestrictedcastingzone)~morethan~0}:name(Add mana) foreach(artifact|myBattlefield) add{C} doesntempty +text=Karn, Legacy Reforged's power and toughness are each equal to the greatest mana value among artifacts you control. -- At the beginning of your upkeep, add {C} for each artifact you control. This mana can't be spent to cast nonartifact spells. Until end of turn, you don't lose this mana as steps and phases end. +mana={5} +type=Legendary Artifact Creature +subtype=Golem +power=* +toughness=* +[/card] +[card] name=Karok Wrangler auto=@movedto(*[instant;sorcery]|mystack):name(Put 1/1 counter) target(creature|mybattlefield) counter(1/1) text=Magecraft - Whenever you cast or copy an instant or sorcery spell, put a +1/+1 counter on target creature you control. @@ -48367,6 +48468,19 @@ mana={U} type=Instant [/card] [card] +name=Kiora, Sovereign of the Deep +abilities=vigilance +auto=_WARD_(3) +aicode=activate transforms((,newability[if type(*[zpos<=manacost&manacost<=manacostminus1minusend]|mylibrary)~equalto~0 then all(*[zpos<=manacost]|mylibrary) moveto(myreveal) and!( bottomoflibrary )!],newability[if type(*[zpos<=manacost&manacost<=manacostminus1minusend]|mylibrary)~morethan~0 then target(*[zpos<=manacost&manacost<=manacostminus1minusend]|mylibrary) transforms((,newability[activate castcard(normal)],newability[all(other *[zpos<=manacost]|mylibrary) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot +auto=@movedTo(*[kraken;leviathan;octopus;serpent|mystack) from(myhand):name(Look top cards) all(trigger[to]) transforms((,newability[name(Look X cards) reveal:manacost optionone name(Get a Card) target(*[manacost<=manacostminus1minusend]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend afterrevealed all(tobecast|mylibrary) activate castcard(normal) afterrevealedend revealend])) oneshot +text=Vigilance, ward {3} -- Whenever you cast a Kraken, Leviathan, Octopus, or Serpent spell from your hand, look at the top X cards of your library, where X is that spell's mana value. You may cast a spell with mana value less than X from among them without paying its mana cost. Put the rest on the bottom of your library in a random order. +mana={3}{G}{U} +type=Legendary Creature +subtype=Merfolk Noble +power=4 +toughness=5 +[/card] +[card] name=Kira, Great Glass-Spinner abilities=flying auto=lord(other creature|mybattlefield) transforms((,newability[@targeted(this) turnlimited:name(Counter spell) all(trigger[from]) fizzle])) @@ -48838,6 +48952,18 @@ power=7 toughness=6 [/card] [card] +name=Kolaghan Warmonger +abilities=haste +aicode=activate transforms((,newability[if type(dragon[zpos<=6]|mylibrary)~morethan~0 then target(dragon[zpos<=6]|mylibrary) moveto(myhand) and!( all(*[zpos<=6]|mylibrary) moveto(myreveal) and!( bottomoflibrary )! )!],newability[if type(dragon[zpos<=6]|mylibrary)~equalto~0 then all(*[zpos<=6]|mylibrary) moveto(myreveal) and!( bottomoflibrary )!])) oneshot +auto=_ATTACKING_name(Look top 6 card) reveal:6 optionone name(Put dragon in hand) target(dragon|reveal) moveto(myhand) optiononeend optiontwo target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend +text=Haste -- Whenever Kolaghan Warmonger attacks, look at the top six cards of your library. You may reveal a Dragon card from among them and put it into your hand. Put the rest on the bottom of your library in a random order. +mana={2}{R} +type=Creature +subtype=Ogre Warrior +power=3 +toughness=2 +[/card] +[card] name=Kolaghan's Command auto=if type(creature|mygraveyard)~morethan~0 then choice name(Return creature and opponent discards) name(Return creature and opponent discards) target(creature|mygraveyard) moveto(myhand) && ability$!name(Discard a card) name(Discard a card) notatarget(*|myhand) reject!$ opponent auto=if type(creature|mygraveyard)~morethan~0 then choice name(Return creature and you discard) name(Return creature and you discard) target(creature|mygraveyard) moveto(myhand) && ability$!name(Discard a card) name(Discard a card) notatarget(*|myhand) reject!$ controller @@ -48853,18 +48979,6 @@ mana={1}{B}{R} type=Instant [/card] [card] -name=Kolaghan Warmonger -abilities=haste -aicode=activate transforms((,newability[if type(dragon[zpos<=6]|mylibrary)~morethan~0 then target(dragon[zpos<=6]|mylibrary) moveto(myhand) and!( all(*[zpos<=6]|mylibrary) moveto(myreveal) and!( bottomoflibrary )! )!],newability[if type(dragon[zpos<=6]|mylibrary)~equalto~0 then all(*[zpos<=6]|mylibrary) moveto(myreveal) and!( bottomoflibrary )!])) oneshot -auto=_ATTACKING_name(Look top 6 card) reveal:6 optionone name(Put dragon in hand) target(dragon|reveal) moveto(myhand) optiononeend optiontwo target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend -text=Haste -- Whenever Kolaghan Warmonger attacks, look at the top six cards of your library. You may reveal a Dragon card from among them and put it into your hand. Put the rest on the bottom of your library in a random order. -mana={2}{R} -type=Creature -subtype=Ogre Warrior -power=3 -toughness=2 -[/card] -[card] name=Koll, the Forgemaster auto=lord(other creature[-token;geared]|mybattlefield) transforms((,newability[handdeath])) auto=lord(other creature[-token;enchanted]|mybattlefield) transforms((,newability[handdeath])) @@ -57916,6 +58030,15 @@ mana={X}{R}{R} type=Sorcery [/card] [card] +name=Nahiri's Resolve +auto=lord(creature|myBattlefield) transforms((,newability[1/0],newability[haste])) +auto=@each my endofturn:may name(Exile creatures) target(creature[-token]|mybattlefield) moveto(exile) and!( transforms((,newability[phaseaction[my upkeep once checkex] moveto(ownerbattlefield)])) forever )! +auto=@each my endofturn:may name(Exile artifacts) target(artifact[-token]|mybattlefield) moveto(exile) and!( transforms((,newability[phaseaction[my upkeep once checkex] moveto(ownerbattlefield)])) forever )! +text=Creatures you control get +1/+0 and have haste. -- At the beginning of your end step, exile any number of nontoken artifacts and/or creatures you control. Return those cards to the battlefield under their owner's control at the beginning of your next upkeep. +mana={3}{R}{W} +type=Enchantment +[/card] +[card] name=Nahiri's Stoneblades target=creature auto=2/0 ueot @@ -57937,6 +58060,27 @@ mana={1}{R}{R} type=Sorcery [/card] [card] +name=Nahiri, Forged in Fury +anyzone=aslongas(equipment|mybattlefield) altercost(colorless,-1) >0 +anyzone=aslongas(equipment|mybattlefield) altercost(colorless,-1) >1 +anyzone=aslongas(equipment|mybattlefield) altercost(colorless,-1) >2 +anyzone=aslongas(equipment|mybattlefield) altercost(colorless,-1) >3 +anyzone=aslongas(equipment|mybattlefield) altercost(colorless,-1) >4 +anyzone=aslongas(equipment|mybattlefield) altercost(colorless,-1) >5 +anyzone=aslongas(equipment|mybattlefield) altercost(colorless,-1) >6 +anyzone=aslongas(equipment|mybattlefield) altercost(colorless,-1) >7 +anyzone=aslongas(equipment|mybattlefield) altercost(colorless,-1) >8 +anyzone=aslongas(equipment|mybattlefield) altercost(colorless,-1) >9 +anyzone=aslongas(equipment|mybattlefield) altercost(colorless,-1) >10 +auto=@combat(attacking) source(creature[geared]|myBattlefield):name(Exile top card) all(*[zpos=1]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[this(cantargetcard(*[equipment]|*) zerocast])) ueot )! +text=Affinity for Equipment (This spell costs {1} less to cast for each Equipment you control.) -- Whenever an equipped creature you control attacks, exile the top card of your library. You may play that card this turn. You may cast Equipment spells this way without paying their mana costs. +mana={4}{R}{W} +type=Legendary Creature +subtype=Kor Artificer +power=5 +toughness=4 +[/card] +[card] name=Naiad of Hidden Coves auto=aslongas opponentturnonly: (*|mycastingzone) changecost(colorless:-1) text=As long as it's not your turn, spells you cast cost {1} less to cast. @@ -58015,6 +58159,36 @@ mana={U}{U} type=Instant [/card] [card] +name=Narset, Enlightened Exile +auto=lord(creature|myBattlefield) transforms((,newability[prowess],newability[@movedTo(*[-creature]|mystack):1/1 ueot])) +auto=@combat(attacking) source(this) restriction{compare(p)~equalto~1}:may name(Exile and copy a card) target(*[-creature&-land&manacost=0]|graveyard) moveto(exile) && if cantargetcard(*[-instant;-sorcery]|*) then clone && if cantargetcard(*[instant;sorcery]|*) then activate castcard(copied) +auto=@combat(attacking) source(this) restriction{compare(p)~equalto~2}:may name(Exile and copy a card) target(*[-creature&-land&manacost<=1]|graveyard) moveto(exile) && if cantargetcard(*[-instant;-sorcery]|*) then clone && if cantargetcard(*[instant;sorcery]|*) then activate castcard(copied) +auto=@combat(attacking) source(this) restriction{compare(p)~equalto~3}:may name(Exile and copy a card) target(*[-creature&-land&manacost<=2]|graveyard) moveto(exile) && if cantargetcard(*[-instant;-sorcery]|*) then clone && if cantargetcard(*[instant;sorcery]|*) then activate castcard(copied) +auto=@combat(attacking) source(this) restriction{compare(p)~equalto~4}:may name(Exile and copy a card) target(*[-creature&-land&manacost<=3]|graveyard) moveto(exile) && if cantargetcard(*[-instant;-sorcery]|*) then clone && if cantargetcard(*[instant;sorcery]|*) then activate castcard(copied) +auto=@combat(attacking) source(this) restriction{compare(p)~equalto~5}:may name(Exile and copy a card) target(*[-creature&-land&manacost<=4]|graveyard) moveto(exile) && if cantargetcard(*[-instant;-sorcery]|*) then clone && if cantargetcard(*[instant;sorcery]|*) then activate castcard(copied) +auto=@combat(attacking) source(this) restriction{compare(p)~equalto~6}:may name(Exile and copy a card) target(*[-creature&-land&manacost<=5]|graveyard) moveto(exile) && if cantargetcard(*[-instant;-sorcery]|*) then clone && if cantargetcard(*[instant;sorcery]|*) then activate castcard(copied) +auto=@combat(attacking) source(this) restriction{compare(p)~equalto~7}:may name(Exile and copy a card) target(*[-creature&-land&manacost<=6]|graveyard) moveto(exile) && if cantargetcard(*[-instant;-sorcery]|*) then clone && if cantargetcard(*[instant;sorcery]|*) then activate castcard(copied) +auto=@combat(attacking) source(this) restriction{compare(p)~equalto~8}:may name(Exile and copy a card) target(*[-creature&-land&manacost<=7]|graveyard) moveto(exile) && if cantargetcard(*[-instant;-sorcery]|*) then clone && if cantargetcard(*[instant;sorcery]|*) then activate castcard(copied) +auto=@combat(attacking) source(this) restriction{compare(p)~equalto~9}:may name(Exile and copy a card) target(*[-creature&-land&manacost<=8]|graveyard) moveto(exile) && if cantargetcard(*[-instant;-sorcery]|*) then clone && if cantargetcard(*[instant;sorcery]|*) then activate castcard(copied) +auto=@combat(attacking) source(this) restriction{compare(p)~equalto~10}:may name(Exile and copy a card) target(*[-creature&-land&manacost<=9]|graveyard) moveto(exile) && if cantargetcard(*[-instant;-sorcery]|*) then clone && if cantargetcard(*[instant;sorcery]|*) then activate castcard(copied) +auto=@combat(attacking) source(this) restriction{compare(p)~equalto~11}:may name(Exile and copy a card) target(*[-creature&-land&manacost<=10]|graveyard) moveto(exile) && if cantargetcard(*[-instant;-sorcery]|*) then clone && if cantargetcard(*[instant;sorcery]|*) then activate castcard(copied) +auto=@combat(attacking) source(this) restriction{compare(p)~equalto~12}:may name(Exile and copy a card) target(*[-creature&-land&manacost<=11]|graveyard) moveto(exile) && if cantargetcard(*[-instant;-sorcery]|*) then clone && if cantargetcard(*[instant;sorcery]|*) then activate castcard(copied) +auto=@combat(attacking) source(this) restriction{compare(p)~equalto~13}:may name(Exile and copy a card) target(*[-creature&-land&manacost<=12]|graveyard) moveto(exile) && if cantargetcard(*[-instant;-sorcery]|*) then clone && if cantargetcard(*[instant;sorcery]|*) then activate castcard(copied) +auto=@combat(attacking) source(this) restriction{compare(p)~equalto~14}:may name(Exile and copy a card) target(*[-creature&-land&manacost<=13]|graveyard) moveto(exile) && if cantargetcard(*[-instant;-sorcery]|*) then clone && if cantargetcard(*[instant;sorcery]|*) then activate castcard(copied) +auto=@combat(attacking) source(this) restriction{compare(p)~equalto~15}:may name(Exile and copy a card) target(*[-creature&-land&manacost<=14]|graveyard) moveto(exile) && if cantargetcard(*[-instant;-sorcery]|*) then clone && if cantargetcard(*[instant;sorcery]|*) then activate castcard(copied) +auto=@combat(attacking) source(this) restriction{compare(p)~equalto~16}:may name(Exile and copy a card) target(*[-creature&-land&manacost<=15]|graveyard) moveto(exile) && if cantargetcard(*[-instant;-sorcery]|*) then clone && if cantargetcard(*[instant;sorcery]|*) then activate castcard(copied) +auto=@combat(attacking) source(this) restriction{compare(p)~equalto~17}:may name(Exile and copy a card) target(*[-creature&-land&manacost<=16]|graveyard) moveto(exile) && if cantargetcard(*[-instant;-sorcery]|*) then clone && if cantargetcard(*[instant;sorcery]|*) then activate castcard(copied) +auto=@combat(attacking) source(this) restriction{compare(p)~equalto~18}:may name(Exile and copy a card) target(*[-creature&-land&manacost=<17]|graveyard) moveto(exile) && if cantargetcard(*[-instant;-sorcery]|*) then clone && if cantargetcard(*[instant;sorcery]|*) then activate castcard(copied) +auto=@combat(attacking) source(this) restriction{compare(p)~equalto~19}:may name(Exile and copy a card) target(*[-creature&-land&manacost=<18]|graveyard) moveto(exile) && if cantargetcard(*[-instant;-sorcery]|*) then clone && if cantargetcard(*[instant;sorcery]|*) then activate castcard(copied) +auto=@combat(attacking) source(this) restriction{compare(p)~morethan~19}:may name(Exile and copy a card) target(*[-creature&-land&manacost=<19]|graveyard) moveto(exile) && if cantargetcard(*[-instant;-sorcery]|*) then clone && if cantargetcard(*[instant;sorcery]|*) then activate castcard(copied) +text=Creatures you control have prowess. -- Whenever Narset, Enlightened Exile attacks, exile target noncreature, nonland card with mana value less than Narset's power from a graveyard and copy it. You may cast the copy without paying its mana cost. +mana={1}{U}{R}{W} +type=Legendary Creature +subtype=Human Monk +power=3 +toughness=4 +[/card] +[card] name=Naru Meha, Master Wizard abilities=flash auto=castcard(copied noevent) target(*[instant;sorcery]|stack) @@ -59558,7 +59732,7 @@ name=Nissa, Resurgent Animist aicode=activate transforms((,newability[if type(*[elf;elemental]|mylibrary)~equalto~0 then shuffle],newability[if type(elf|mylibrary)~equalto~0 then if type(elemental|mylibrary)~morethan~0 then all(*[zpos=findfirsttypeelemental]|mylibrary) moveto(myhand) and!( all(*[zpos<=findfirsttypeelemental]|mylibrary) moveto(myreveal) and!( bottomoflibrary )! )!],newability[if type(elf|mylibrary)~morethan~0 then all(*[zpos=findfirsttypeelf]|mylibrary) moveto(myhand) and!( all(*[zpos<=findfirsttypeelf]|mylibrary) moveto(myreveal) and!( bottomoflibrary )! )!])) oneshot auto=@movedTo(land|myBattlefield):name(Add 1 mana) ability$!name(Choose one) choice add{W} _ choice add{U} _ choice add{R} _ choice add{G} _ choice add{B}!$ controller auto=@movedTo(land|myBattlefield) restriction{thisturn(land[fresh]|myBattlefield)~equalto~1}:name(Reveal cards) name(Reveal cards) Reveal:1 revealzone(mylibrary) revealuntil(*[elf;elemental]|mylibrary) optionone name(Put in hand) target(*[elf;elemental]|reveal) moveto(myhand) optiononeend optiontwo name(Put on bottom) target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend -text=Landfall — Whenever a land enters the battlefield under your control, add one mana of any color. Then if this is the second time this ability has resolved this turn, reveal cards from the top of your library until you reveal an Elf or Elemental card. Put that card into your hand and the rest on the bottom of your library in a random order. +text=Landfall â?? Whenever a land enters the battlefield under your control, add one mana of any color. Then if this is the second time this ability has resolved this turn, reveal cards from the top of your library until you reveal an Elf or Elemental card. Put that card into your hand and the rest on the bottom of your library in a random order. mana={2}{G} type=Legendary Creature subtype=Elf Scout @@ -59580,6 +59754,17 @@ power=2 toughness=2 [/card] [card] +name=Niv-Mizzet Reborn +abilities=flying +auto=reveal:10 optionone name(Reveal) target(*[multicolor]|reveal) moveto(myhand) optiononeend optiontwo choice all(*|reveal) moveto(mylibrary) optiontwoend revealend +text=Flying -- When Niv-Mizzet Reborn enters the battlefield, reveal the top ten cards of your library. For each color pair, choose a card that's exactly those colors from among them. Put the chosen cards into your hand and the rest on the bottom of your library in a random order. +mana={W}{U}{B}{R}{G} +type=Legendary Creature +subtype=Dragon Avatar +power=6 +toughness=6 +[/card] +[card] name=Niv-Mizzet, Parun abilities=nofizzle, flying auto=@drawof(player):damage:1 target(player,creature,planeswalker) @@ -59592,17 +59777,6 @@ power=5 toughness=5 [/card] [card] -name=Niv-Mizzet Reborn -abilities=flying -auto=reveal:10 optionone name(Reveal) target(*[multicolor]|reveal) moveto(myhand) optiononeend optiontwo choice all(*|reveal) moveto(mylibrary) optiontwoend revealend -text=Flying -- When Niv-Mizzet Reborn enters the battlefield, reveal the top ten cards of your library. For each color pair, choose a card that's exactly those colors from among them. Put the chosen cards into your hand and the rest on the bottom of your library in a random order. -mana={W}{U}{B}{R}{G} -type=Legendary Creature -subtype=Dragon Avatar -power=6 -toughness=6 -[/card] -[card] name=Niv-Mizzet, Supreme abilities=flying auto=protection from(*[numofcols=1]) @@ -60202,6 +60376,15 @@ power=2 toughness=2 [/card] [card] +name=Ob Nixilis's Cruelty +target=creature +auto=exiledeath +auto=-5/-5 +text=Target creature gets -5/-5 until end of turn. If that creature would die this turn, exile it instead. +mana={2}{B} +type=Instant +[/card] +[card] name=Ob Nixilis, Captive Kingpin abilities=flying,trample auto=@lifelostfoeof(player) restriction{compare(thatmuch)~equalto~1}:name(Exile top card) all(*[zpos=1]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile])) uent )! @@ -60214,15 +60397,6 @@ power=4 toughness=3 [/card] [card] -name=Ob Nixilis's Cruelty -target=creature -auto=exiledeath -auto=-5/-5 -text=Target creature gets -5/-5 until end of turn. If that creature would die this turn, exile it instead. -mana={2}{B} -type=Instant -[/card] -[card] name=Obeka, Brute Chronologist auto={T}:name(End turn) transforms((,newability[may name(End turn) counter(0/0.1.ObekaEffect)])) oneshot myturnonly auto={T}:name(End turn) ability$!may name(End turn) name(End turn) target(Obeka^ Brute Chronologist|opponentBattlefield) counter(0/0.1.ObekaEffect)!$ opponent opponentTurnOnly @@ -61412,6 +61586,15 @@ mana={2}{R} type=Instant [/card] [card] +name=Open the Way +aicode=activate transforms((,newability[all(*[zpos=findfirsttypeland]|mylibrary) moveto(mybattlefield) and!( transforms((,newability[tap(noevent)],newability[all(*[zpos<=findfirsttypeland]|mylibrary) moveto(myreveal) and!( bottomoflibrary )!])) oneshot )!])) oneshot +auto=if compare(fullpaid)~equalto~1 then name(Reveal from top) name(Reveal from top) ability$!name(Reveal) reveal:1 revealuntil(land|mylibrary) optionone name(Put land in play) target(land|myreveal) moveto(mybattlefield) and!( tap(noevent) )! optiononeend optiontwo name(Put on bottom) all(*|myreveal) bottomoflibrary optiontwoend revealend!$ controller +auto=if compare(fullpaid)~morethan~1 then name(Reveal from top) name(Reveal from top) thisforeach(variable{2}) ability$!name(Reveal) reveal:1 revealuntil(land|mylibrary) optionone name(Put land in play) target(land|myreveal) moveto(mybattlefield) and!( tap(noevent) )! optiononeend optiontwo name(Put on bottom) all(*|myreveal) bottomoflibrary optiontwoend revealend!$ controller +text=X can't be greater than the number of players in the game. -- Reveal cards from the top of your library until you reveal X land cards. Put those land cards onto the battlefield tapped and the rest on the bottom of your library in a random order. +mana={X}{G}{G} +type=Sorcery +[/card] +[card] name=Opportunistic Dragon abilities=flying auto=choice name(Choose human or artifact) target(*[human;artifact]|opponentBattlefield) moveto(mybattlefield) and!( transforms((,newability[counter(0/0.1.OpportunisticEffect)],newability[loseabilities],newability[cantattack],newability[cantpwattack],newability[cantblock])) forever )! @@ -64739,6 +64922,16 @@ mana={5}{G}{G} type=Sorcery [/card] [card] +name=Plargg and Nassari +auto=@each my upkeep:name(Exile from top) transforms((,newability[all(*[zpos<=findfirsttypenonland]|mylibrary) moveto(myexile) && ability$!may name(Cast exiled spell) target(*[-land&fresh]|exile) activate castcard(normal)!$ controller],newability[all(*[zpos<=oppofindfirsttypenonland]|opponentlibrary) moveto(opponentexile) && ability$!may name(Cast exiled spell) target(*[-land&fresh]|exile) activate castcard(normal)!$ opponent])) oneshot +text=At the beginning of your upkeep, each player exiles cards from the top of their library until they exile a nonland card. An opponent chooses a nonland card exiled this way. You may cast up to two spells from among the other cards exiled this way without paying their mana costs. +mana={3}{R}{R} +type=Legendary Creature +subtype=Orc Efreet +power=5 +toughness=4 +[/card] +[card] name=Plargg, Dean of Chaos other={2}{W} name(Augusta, Dean of Order) otherrestriction=can play creature,compare(isflipped)~equalto~1 @@ -69106,14 +69299,6 @@ power=7 toughness=7 [/card] [card] -name=Realmbreaker, the Invasion Tree -auto={2}{T}:name(Opponent mills 3 cards) deplete:3 opponent && ability$!name(Put land in play) target(land|opponentgraveyard) moveto(mybattlefield) and!( transforms((,newability[tap(noevent)],newability[exiledeath])) forever )!!$ controller -auto={10}{T}{S}:name(Search praetors) target(praetor|mylibrary) moveto(mybattlefield) and!( shuffle )! -text={2}, {T}: Target opponent mills three cards. Put a land card from their graveyard onto the battlefield tapped under your control. It gains "If this land would leave the battlefield, exile it instead of putting it anywhere else." -- {10}, {T}, Sacrifice Realmbreaker, the Invasion Tree: Search your library for any number of Praetor cards, put them onto the battlefield, then shuffle. -mana={3} -type=Legendary Artifact -[/card] -[card] name=Realmbreaker's Grasp target=artifact,creature auto=teach(creature) cantattack @@ -69126,6 +69311,14 @@ type=Enchantment subtype=Aura [/card] [card] +name=Realmbreaker, the Invasion Tree +auto={2}{T}:name(Opponent mills 3 cards) deplete:3 opponent && ability$!name(Put land in play) target(land|opponentgraveyard) moveto(mybattlefield) and!( transforms((,newability[tap(noevent)],newability[exiledeath])) forever )!!$ controller +auto={10}{T}{S}:name(Search praetors) target(praetor|mylibrary) moveto(mybattlefield) and!( shuffle )! +text={2}, {T}: Target opponent mills three cards. Put a land card from their graveyard onto the battlefield tapped under your control. It gains "If this land would leave the battlefield, exile it instead of putting it anywhere else." -- {10}, {T}, Sacrifice Realmbreaker, the Invasion Tree: Search your library for any number of Praetor cards, put them onto the battlefield, then shuffle. +mana={3} +type=Legendary Artifact +[/card] +[card] name=Realmwalker abilities=changeling,showfromtoplibrary auto=chooseatype transforms((,newability[this(variable{type:creature[chosentype;zpos=1]:mylibrary}>0) canplayfromlibrarytop])) forever chooseend @@ -69320,6 +69513,22 @@ mana={5}{R}{R} type=Sorcery [/card] [card] +name=Reckless Handling +auto=if compare(type:*:myhand)~equalto~0 then name(Search artifact) name(Search artifact) target(artifact|mylibrary) moveto(myhand) and!( transforms((,newability[shuffle],newability[all(*[zpos=1]|myhand) reject and!( if cantargetcard(*[artifact]|*) then damage:2 opponent )!])) oneshot )! +auto=if compare(type:*:myhand)~equalto~1 then name(Search artifact) name(Search artifact) target(artifact|mylibrary) moveto(myhand) and!( transforms((,newability[shuffle],newability[all(*[zpos=genrand2plus1plusend]|myhand) reject and!( if cantargetcard(*[artifact]|*) then damage:2 opponent )!])) oneshot )! +auto=if compare(type:*:myhand)~equalto~2 then name(Search artifact) name(Search artifact) target(artifact|mylibrary) moveto(myhand) and!( transforms((,newability[shuffle],newability[all(*[zpos=genrand3plus1plusend]|myhand) reject and!( if cantargetcard(*[artifact]|*) then damage:2 opponent )!])) oneshot )! +auto=if compare(type:*:myhand)~equalto~3 then name(Search artifact) name(Search artifact) target(artifact|mylibrary) moveto(myhand) and!( transforms((,newability[shuffle],newability[all(*[zpos=genrand4plus1plusend]|myhand) reject and!( if cantargetcard(*[artifact]|*) then damage:2 opponent )!])) oneshot )! +auto=if compare(type:*:myhand)~equalto~4 then name(Search artifact) name(Search artifact) target(artifact|mylibrary) moveto(myhand) and!( transforms((,newability[shuffle],newability[all(*[zpos=genrand5plus1plusend]|myhand) reject and!( if cantargetcard(*[artifact]|*) then damage:2 opponent )!])) oneshot )! +auto=if compare(type:*:myhand)~equalto~5 then name(Search artifact) name(Search artifact) target(artifact|mylibrary) moveto(myhand) and!( transforms((,newability[shuffle],newability[all(*[zpos=genrand6plus1plusend]|myhand) reject and!( if cantargetcard(*[artifact]|*) then damage:2 opponent )!])) oneshot )! +auto=if compare(type:*:myhand)~equalto~6 then name(Search artifact) name(Search artifact) target(artifact|mylibrary) moveto(myhand) and!( transforms((,newability[shuffle],newability[all(*[zpos=genrand7plus1plusend]|myhand) reject and!( if cantargetcard(*[artifact]|*) then damage:2 opponent )!])) oneshot )! +auto=if compare(type:*:myhand)~equalto~7 then name(Search artifact) name(Search artifact) target(artifact|mylibrary) moveto(myhand) and!( transforms((,newability[shuffle],newability[all(*[zpos=genrand8plus1plusend]|myhand) reject and!( if cantargetcard(*[artifact]|*) then damage:2 opponent )!])) oneshot )! +auto=if compare(type:*:myhand)~equalto~8 then name(Search artifact) name(Search artifact) target(artifact|mylibrary) moveto(myhand) and!( transforms((,newability[shuffle],newability[all(*[zpos=genrand9plus1plusend]|myhand) reject and!( if cantargetcard(*[artifact]|*) then damage:2 opponent )!])) oneshot )! +auto=if compare(type:*:myhand)~morethan~9 then name(Search artifact) name(Search artifact) target(artifact|mylibrary) moveto(myhand) and!( transforms((,newability[shuffle],newability[all(*[zpos=genrand10plus1plusend]|myhand) reject and!( if cantargetcard(*[artifact]|*) then damage:2 opponent )!])) oneshot )! +text=Search your library for an artifact card, reveal it, put it into your hand, shuffle, then discard a card at random. If an artifact card was discarded this way, Reckless Handling deals 2 damage to each opponent. +mana={1}{R} +type=Sorcery +[/card] +[card] name=Reckless Impulse auto=name(Exile top 2 cards) all(*[zpos<=2]|mylibrary) moveto(exile) and!( transforms((,newability[counter(0/0.1.PlayExile)],newability[@each opponent beginofturn restriction{compare(hascntplayexile)~morethan~0}:if cantargetcard(*[-canplayfromexile]|*) then removeallcounters(0/0.1.PlayExile)])) forever )! auto=emblem transforms((,newability[lord(*[counter{0/0.1.PlayExile}]|myexile) canplayfromexile])) uent @@ -72003,6 +72212,21 @@ power=3 toughness=1 [/card] [card] +name=Rocco, Street Chef +auto=@each my endofturn:name(Exile top card) all(*[zpos=1]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile])) uent )! +auto=@each my endofturn:name(Exile top card) all(*[zpos=1]|opponentlibrary) moveto(opponentexile) and!( transforms((,newability[canplayfromexile])) uent )! +auto=@movedto(land|battlefield) from(exile):name(Put 1/1 counter) target(creature|battlefield) counter(1/1) +auto=@movedto(land|battlefield) from(exile):name(Create food) token(Food) +auto=@movedto(*|stack) from(exile):name(Put 1/1 counter) target(creature|battlefield) counter(1/1) +auto=@movedto(*|stack) from(exile):name(Create food) token(Food) +text=At the beginning of your end step, each player exiles the top card of their library. Until your next end step, each player may play the card they exiled this way. -- Whenever a player plays a land from exile or casts a spell from exile, you put a +1/+1 counter on target creature and create a Food token. (It's an artifact with "{2}, {T}, Sacrifice this artifact: You gain 3 life.") +mana={R}{G}{W} +type=Legendary Creature +subtype=Elf Druid +power=2 +toughness=4 +[/card] +[card] name=Rock Equipment auto={1}:equip auto=teach(creature) {1}{T}{S(Rock Equipment|myBattlefield)}:name(Damage any target) name(Damage any target) damage:2 target(player,creature,planeswalker) @@ -74379,6 +74603,17 @@ power=2 toughness=2 [/card] [card] +name=Sarkhan, Soul Aflame +auto=lord(dragon|mycastingzone) altercost(colorless,-1) +auto=@movedTo(dragon|myBattlefield):may name(Copy dragon) all(trigger[to])) copy options(keepname) and!( all(this) transforms((Legendary,newability[phaseaction[endofturn once] flip(myorigname) undocpy])) ueot )! +text=Dragon spells you cast cost {1} less to cast. -- Whenever a Dragon enters the battlefield under your control, you may have Sarkhan, Soul Aflame become a copy of it until end of turn, except its name is Sarkhan, Soul Aflame and it's legendary in addition to its other types. +mana={1}{U}{R} +type=Legendary Creature +subtype=Human Shaman +power=2 +toughness=4 +[/card] +[card] name=Sarulf's Packmate abilities=foretell autohand=_FORETELL_ @@ -87606,6 +87841,17 @@ power=4 toughness=6 [/card] [card] +name=Tazri, Stalwart Survivor +auto=lord(creature|myBattlefield) transforms((,newability[this(variable{type:creature:mybattlefield}>0) {T}:add{W}],newability[this(variable{type:creature:mybattlefield}>0) {T}:add{G}],newability[this(variable{type:creature:mybattlefield}>0) {T}:add{B}],newability[this(variable{type:creature:mybattlefield}>0) {T}:add{R}],newability[this(variable{type:creature:mybattlefield}>0) {T}:add{U}])) +auto={W}{U}{B}{R}{G}{T}:name(Mill 5 cards) all(*[zposz<=5]|mylibrary) moveto(mygraveyard) and!( transforms((,newability[if cantargetcard(*[creature]|*) then may name(Return creature to hand) moveto(myhand)])) oneshot )! +text=Each creature you control has "{T}: Add one mana of any of this creature's colors. Spend this mana only to activate an ability of a creature. Activate only if this creature has another activated ability." -- {W}{U}{B}{R}{G}, {T}: Mill five cards. Put all creature cards with activated abilities that aren't mana abilities from among the milled cards into your hand. +mana={2}{W} +type=Legendary Creature +subtype=Human Warrior +power=3 +toughness=3 +[/card] +[card] name=Teach by Example auto=emblem transforms((,newability[@movedto(*[instant;sorcery]|myStack) turnlimited:all(trigger[to]) activate castcard(copied noevent)])) ueot text=When you cast your next instant or sorcery spell this turn, copy that spell. You may choose new targets for the copy. @@ -88906,7 +89152,7 @@ auto=@counteradded(0/0,1,EvolutionDepleted) from(*|mygraveyard) restriction{comp auto=@counteradded(0/0,1,Lore) from(this) restriction{compare(hascntlore)~equalto~2}:name(Distribute 1/1 counters) transforms((,newability[thisforeach(variable{7}) ability$!name(Put 1/1 counter) target(creature|mybattlefield) counter(1/1)!$ controller])) oneshot auto=@counteradded(0/0,1,Lore) from(this) restriction{compare(hascntlore)~equalto~3}:name(Creatures can fight) name(Creatures can fight) all(creature|myBattlefield) transforms((,newability[{1}:name(Fights opponent creature) target(creature|opponentbattlefield) dynamicability])) auto=@counteradded(0/0,1,Lore) from(this) restriction{compare(hascntlore)~equalto~3}:name(Exile and return) moveto(myexile) and!( moveto(mybattlefield) and!( transforms((,newability[becomes(Legendary) forever],newability[@movedto(creature|mybattlefield):name(Creatures can fight) name(Creatures can fight) all(trigger[to]) transforms((,newability[{1}:name(Fights opponent creature) target(creature|opponentbattlefield) dynamicability])) ueot])) ueot )! )! -text=(As this Saga enters and after your draw step, add a lore counter.) -- I — Mill ten cards. Put up to two creature cards from among the milled cards onto the battlefield. -- II — Distribute seven +1/+1 counters among any number of target creatures you control. -- III — Until end of turn, creatures you control gain "{1}: This creature fights target creature you don't control." Exile The Grand Evolution, then return it to the battlefield (front face up). +text=(As this Saga enters and after your draw step, add a lore counter.) -- I â?? Mill ten cards. Put up to two creature cards from among the milled cards onto the battlefield. -- II â?? Distribute seven +1/+1 counters among any number of target creatures you control. -- III â?? Until end of turn, creatures you control gain "{1}: This creature fights target creature you don't control." Exile The Grand Evolution, then return it to the battlefield (front face up). color=green type=Enchantment subtype=Saga @@ -88943,7 +89189,7 @@ auto=name(Damage opponent and creatures) damage:3 opponent && damage:3 all(creat auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.2.Lore}=) name(Create 3 treasures) token(Treasure Sur)*3 auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.3.Lore}) name(Cast spells from graveyard) name(Cast spells from graveyard) all(*[instant;sorcery]|mygraveyard) transforms((,newability[canplayfromgraveyard],newability[gainedexiledeath])) ueot auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.3.Lore}) name(Exile and return) moveto(myexile) and!( moveto(mybattlefield) and!( transforms((,newability[becomes(Legendary) forever],newability[@movedto(*[instant;sorcery]|mygraveyard):name(Cast spells from graveyard) name(Cast spells from graveyard) all(trigger[to]) transforms((,newability[canplayfromgraveyard],newability[gainedexiledeath])) ueot])) ueot )! )! -text=(As this Saga enters and after your draw step, add a lore counter.) -- I — The Great Work deals 3 damage to target opponent and each creature they control. -- II — Create three Treasure tokens. -- III — Until end of turn, you may cast instant and sorcery spells from any graveyard. If a spell cast this way would be put into a graveyard, exile it instead. Exile The Great Work, then return it to the battlefield (front face up). +text=(As this Saga enters and after your draw step, add a lore counter.) -- I â?? The Great Work deals 3 damage to target opponent and each creature they control. -- II â?? Create three Treasure tokens. -- III â?? Until end of turn, you may cast instant and sorcery spells from any graveyard. If a spell cast this way would be put into a graveyard, exile it instead. Exile The Great Work, then return it to the battlefield (front face up). color=red type=Enchantment subtype=Saga @@ -88995,6 +89241,15 @@ text=Whenever one or more creatures a player controls deal combat damage to you, type=Emblem [/card] [card] +name=The Kenriths' Royal Funeral +auto=if type(creature[legendary]|mygraveyard)~morethan~0 then choice name(Don't exile any legendary creature) name(Don't exile any legendary creature) donothing +auto=if type(creature[legendary]|mygraveyard)~morethan~0 then choice name(Exile 1 legendary creature) name(Exile 1 legendary creature) all(this) transforms((,newability[lord(*[legendary]|mycastingzone) changecost(colorless:-1)],newability[name(Exile legendary creature) target(creature[legendary]|mygraveyard) moveto(exile) and!( transforms((,newability[draw:manacost controller],newability[life:-manacost controller])) forever )!])) forever +auto=if type(creature[legendary]|mygraveyard)~morethan~1 then choice name(Exile 2 legendary creatures) name(Exile 2 legendary creatures) ability$!name(Exile first cheaper creature) name(Exile first cheaper creature) target(creature[legendary]|mygraveyard) moveto(exile) and!( name(Exile more expansive creature) target(creature[legendary]|mygraveyard) moveto(exile) and!( transforms((,newability[draw:manacost controller],newability[life:-manacost controller])) oneshot )! )! !$ controller && ability$!all(mysource) transforms((,newability[lord(*[legendary]|mycastingzone) changecost(colorless:-2)])) forever!$ controller +text=When The Kenriths' Royal Funeral enters the battlefield, exile up to two target legendary creature cards from your graveyard. You draw X cards and you lose X life, where X is the greatest mana value among cards exiled this way. -- Legendary spells you cast cost {1} less to cast for each card exiled with The Kenriths' Royal Funeral. +mana={2}{W}{B} +type=Legendary Enchantment +[/card] +[card] name=The Legend of Arena abilities=canbecommander auto=counter(0/0,1,Lore) @@ -91774,6 +92029,19 @@ text=Tramway Station enters the battlefield tapped. -- {T}: Add {B} or {R}. -- { type=Land [/card] [card] +name=Tranquil Frillback +auto=choice name(Don't pay anythig) donothing +auto=choice name(Pay 1 green) ability$!may name(Pay 1 green) pay({G}) name(Pay 1 green) all(mysource) name(Pay 1 green) transforms((,newability[choice name(Gain 4 life) life:4 controller],newability[if type(*[enchantment;artifact]|battlefield)~morethan~0 then choice name(Destroy artifact or enchantment) name(Destroy artifact or enchantment) target(*[artifact;enchantment]|battlefield) destroy],newability[choice name(Exile opponent graveyard) all(*|opponentgraveyard) moveto(exile)],newability[choice name(Exile your graveyard) all(*|mygraveyard) moveto(exile)])) oneshot!$ controller +auto=choice name(Pay 2 green) ability$!may name(Pay 2 green)) pay({G}{G}) name(Pay 2 green) all(mysource) name(Pay 2 green) transforms((,newability[if type(*[enchantment;artifact]|battlefield)~morethan~0 then choice name(Gain life and destroy) name(Gain life and destroy) life:4 controller && target(*[artifact;enchantment]|battlefield) destroy],newability[choice name(Gain life and opponent exile) life:4 controller && all(*|opponentgraveyard) moveto(exile)],newability[choice name(Gain life and you exile) life:4 controller && all(*|mytgraveyard) moveto(exile)],newability[if type(*[enchantment;artifact]|battlefield)~morethan~0 then choice name(Destroy and opponent exile) name(Destroy and opponent exile) all(*|opponentgraveyard) moveto(exile) && target(*[artifact;enchantment]|battlefield) destroy],newability[if type(*[enchantment;artifact]|battlefield)~morethan~0 then choice name(Destroy and you exile) name(Destroy and you exile) all(*|mytgraveyard) moveto(exile) && target(*[artifact;enchantment]|battlefield) destroy])) oneshot!$ controller +auto=choice name(Pay 3 green) ability$!may name(Pay 3 green) pay({G}{G}{G}) name(Pay 3 green) all(mysource) name(Pay 3 green) transforms((,newability[name(Gain 4 life) life:4 controller],newability[choice name(Exile opponent graveyard) all(*|opponentgraveyard) moveto(exile) && target(*[artifact;enchantment]|battlefield) destroy],newability[choice name(Exile your graveyard) all(*|mygraveyard) moveto(exile) && target(*[artifact;enchantment]|battlefield) destroy])) oneshot!$ controller +text=When Tranquil Frillback enters the battlefield, you may pay {G} up to three times. When you pay this cost one or more times, choose up to that many -- Destroy target artifact or enchantment. -- Exile target player's graveyard. -- You gain 4 life. +mana={2}{G} +type=Creature +subtype=Dinosaur +power=3 +toughness=3 +[/card] +[card] name=Transcendent Envoy abilities=flying auto=lord(enchantment[aura]|mycastingzone) altercost(colorless,-1) @@ -93073,6 +93341,17 @@ power=8 toughness=8 [/card] [card] +name=Tyvar the Bellicose +auto=@combat(attacking) source(elf|myBattlefield):name(Gains deathtouch) all(trigger[to]) transforms((,newability[deathtouch])) ueot +auto=lord(creature|myBattlefield) transforms((,newability[@producedmana(this|myBattlefield) turnlimited:name(Put 1/1 counter) counter(1/1.prodmanatot)])) +text=Whenever one or more Elves you control attack, they gain deathtouch until end of turn. -- Each creature you control has "Whenever a mana ability of this creature resolves, put a number of +1/+1 counters on it equal to the amount of mana this creature produced. This ability triggers only once each turn." +mana={2}{B}{G} +type=Legendary Creature +subtype=Elf Warrior +power=5 +toughness=4 +[/card] +[card] name=Tyvar's Stand target=creature|myBattlefield auto=+X/+X @@ -93481,6 +93760,14 @@ power=1 toughness=4 [/card] [card] +name=Undercity Upheaval +auto=all(creature|myBattlefield) transforms((,newability[vigilance])) ueot +auto=thisforeach(variable{type:creature:mygraveyard}>0) ability$!name(Put 1/1 counter) target(creature|myBattlefield) counter(1/1)!$ controller +text=Undergrowth â?? Distribute X +1/+1 counters among any number of target creatures you control, where X is the number of creature cards in your graveyard as you cast this spell. Creatures you control gain vigilance until end of turn. +mana={1}{G}{G} +type=Sorcery +[/card] +[card] name=Undercity Uprising auto=all(other creature|myBattlefield) deathtouch target=creature @@ -94614,14 +94901,6 @@ type=Artifact subtype=Equipment [/card] [card] -name=Valor's Reach Tag Team -abilities=doublefacedeath -auto=name(Create warriors) token(Warrior,Creature Warrior,3/2,red,white)*2 and!( transforms((,newability[@combat(attacking) source(this) restriction{type(creature[attacking]|battlefield)~morethan~1}:name(Put 1/1 counter) counter(1/1)])) forever )! -text=Create two 3/2 red and white Warrior creature tokens with "Whenever this creature and at least one other creature token attack, put a +1/+1 counter on this creature." -color=red,white -type=Sorcery -[/card] -[card] name=Valor Singer auto=@each my combatbegins:name(Creature gets 1/0) target(creature|myBattlefield) 1/0 ueot text=Combat Inspiration - At the beginning of combat on your turn, target creature you control gets +1/+0 until end of turn. @@ -94642,6 +94921,14 @@ type=Enchantment subtype=Aura [/card] [card] +name=Valor's Reach Tag Team +abilities=doublefacedeath +auto=name(Create warriors) token(Warrior,Creature Warrior,3/2,red,white)*2 and!( transforms((,newability[@combat(attacking) source(this) restriction{type(creature[attacking]|battlefield)~morethan~1}:name(Put 1/1 counter) counter(1/1)])) forever )! +text=Create two 3/2 red and white Warrior creature tokens with "Whenever this creature and at least one other creature token attack, put a +1/+1 counter on this creature." +color=red,white +type=Sorcery +[/card] +[card] name=Valorous Steed abilities=vigilance auto=token(Knight Val) diff --git a/projects/mtg/include/AllAbilities.h b/projects/mtg/include/AllAbilities.h index 00ff5063b..b65dcbbb8 100644 --- a/projects/mtg/include/AllAbilities.h +++ b/projects/mtg/include/AllAbilities.h @@ -278,6 +278,34 @@ public: } }; +class TrCardManaproduced: public Trigger +{ +public: + bool limitOnceATurn; + int triggeredTurn; + TrCardManaproduced(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc, bool once = false, bool limitOnceATurn = false) : + Trigger(observer, id, source, once, tc), limitOnceATurn(limitOnceATurn) + { + triggeredTurn = -1; + } + + int triggerOnEventImpl(WEvent * event) + { + WEventCardManaProduced * e = dynamic_cast (event); + if (!e) return 0; + if (limitOnceATurn && triggeredTurn == game->turn) + return 0; + if (!tc->canTarget(e->card)) return 0; + triggeredTurn = game->turn; + return 1; + } + + TrCardManaproduced * clone() const + { + return NEW TrCardManaproduced(*this); + } +}; + class TrCardPhasesIn: public Trigger { public: diff --git a/projects/mtg/include/MTGCardInstance.h b/projects/mtg/include/MTGCardInstance.h index 2b2af584e..8281d7629 100644 --- a/projects/mtg/include/MTGCardInstance.h +++ b/projects/mtg/include/MTGCardInstance.h @@ -150,8 +150,10 @@ public: int summoningSickness; ManaCost reducedCost; ManaCost increasedCost; + ManaCost producedMana; ManaCost * getReducedManaCost(); ManaCost * getIncreasedManaCost(); + ManaCost * getProducedMana(); bool matchesCastFilter(int castMethod); bool hasTotemArmor(); diff --git a/projects/mtg/include/WEvent.h b/projects/mtg/include/WEvent.h index c12fcb2b6..f10e3a2b9 100644 --- a/projects/mtg/include/WEvent.h +++ b/projects/mtg/include/WEvent.h @@ -161,6 +161,10 @@ struct WEventCardTappedForMana : public WEventCardUpdate { virtual Targetable * getTarget(int target); }; +struct WEventCardManaProduced : public WEventCardUpdate { + WEventCardManaProduced(MTGCardInstance * card); + virtual Targetable * getTarget(int target); +}; //Event when a card's "attacker" status changes //before:Player/Planeswalker that card was attacking previously diff --git a/projects/mtg/src/MTGAbility.cpp b/projects/mtg/src/MTGAbility.cpp index 961e16ecc..ccda81b2c 100644 --- a/projects/mtg/src/MTGAbility.cpp +++ b/projects/mtg/src/MTGAbility.cpp @@ -1318,7 +1318,11 @@ TriggeredAbility * AbilityFactory::parseTrigger(string s, string, int id, Spell //Card Tapped for mana if (TargetChooser *tc = parseSimpleTC(s,"tappedformana", card)) return NEW TrCardTappedformana(observer, id, card, tc, true, once); - + + //Card Produced some mana + if (TargetChooser *tc = parseSimpleTC(s,"producedmana", card)) + return NEW TrCardManaproduced(observer, id, card, tc, once, limitOnceATurn); + //Card Transforms if (TargetChooser *tc = parseSimpleTC(s,"transformed", card)) return NEW TrCardTransformed(observer, id, card, tc, once); @@ -8051,6 +8055,10 @@ int AManaProducer::resolve() player->getManaPool()->add(output, source); if(DoesntEmpty) player->doesntEmpty->add(output); + source->getProducedMana()->copy(output); + WEventCardManaProduced * ev = NEW WEventCardManaProduced(source); + if(ev) + source->getObserver()->receiveEvent(ev); if(andAbility) { MTGAbility * andAbilityClone = andAbility->clone(); diff --git a/projects/mtg/src/MTGCardInstance.cpp b/projects/mtg/src/MTGCardInstance.cpp index c99c0e31f..648e6bbfb 100644 --- a/projects/mtg/src/MTGCardInstance.cpp +++ b/projects/mtg/src/MTGCardInstance.cpp @@ -586,6 +586,10 @@ ManaCost* MTGCardInstance::getIncreasedManaCost() { return &increasedCost; } +ManaCost* MTGCardInstance::getProducedMana() +{ + return &producedMana; +} //sets card as attacked and sends events void MTGCardInstance::eventattacked() diff --git a/projects/mtg/src/WEvent.cpp b/projects/mtg/src/WEvent.cpp index 2fd691e81..e70d007f0 100644 --- a/projects/mtg/src/WEvent.cpp +++ b/projects/mtg/src/WEvent.cpp @@ -75,6 +75,11 @@ WEventCardTappedForMana::WEventCardTappedForMana(MTGCardInstance * card, bool be { } +WEventCardManaProduced::WEventCardManaProduced(MTGCardInstance * card) : + WEventCardUpdate(card) +{ +} + WEventCardAttacked::WEventCardAttacked(MTGCardInstance * card) : WEventCardUpdate(card) { @@ -539,6 +544,12 @@ Targetable * WEventCardTappedForMana::getTarget(int target) return NULL; } +Targetable * WEventCardManaProduced::getTarget(int target) +{ + if (target) return card; + return NULL; +} + Targetable * WEventcardDraw::getTarget(Player * player) { if (player) return player; diff --git a/projects/mtg/src/WParsedInt.cpp b/projects/mtg/src/WParsedInt.cpp index f5d92e3bb..0848a21e6 100644 --- a/projects/mtg/src/WParsedInt.cpp +++ b/projects/mtg/src/WParsedInt.cpp @@ -1581,6 +1581,26 @@ void WParsedInt::extendedParse(string s, Spell * spell, MTGCardInstance * card) intValue = card->getManaCost()->getManaSymbolsHybridMerged(Constants::MTG_COLOR_WHITE); else intValue = 0; } + else if(s.find("prodmana") != string::npos){ + intValue = 0; + string manatocheck = s.substr(8); + if(card->getProducedMana()){ + if(manatocheck == "c") + intValue = card->getProducedMana()->getManaSymbolsHybridMerged(Constants::MTG_COLOR_ARTIFACT); + else if(manatocheck == "g") + intValue = card->getProducedMana()->getManaSymbolsHybridMerged(Constants::MTG_COLOR_GREEN); + else if(manatocheck == "u") + intValue = card->getProducedMana()->getManaSymbolsHybridMerged(Constants::MTG_COLOR_BLUE); + else if(manatocheck == "r") + intValue = card->getProducedMana()->getManaSymbolsHybridMerged(Constants::MTG_COLOR_RED); + else if(manatocheck == "b") + intValue = card->getProducedMana()->getManaSymbolsHybridMerged(Constants::MTG_COLOR_BLACK); + else if(manatocheck == "w") + intValue = card->getProducedMana()->getManaSymbolsHybridMerged(Constants::MTG_COLOR_WHITE); + else if(manatocheck == "tot") + intValue = card->getProducedMana()->getConvertedCost(); + } + } else if(!intValue)//found nothing, try parsing a atoi { intValue = atoi(s.c_str());