From e67078355a489d729c32501aa104f290625fab48 Mon Sep 17 00:00:00 2001 From: valfieri Date: Fri, 18 Dec 2020 19:04:51 +0100 Subject: [PATCH] Improved target chooser to allow a multiple selection for player, creature and planeswalkers, now it's possible to use target(player,creature,planeswalkers) as well as target(player,creature,planeswalkers) and so on. Added abilities for giving exiledeath and handdeath to instant and sorceries (the previous were not working fine), Added ability to identify the cards with Cycling ability as a target, Updated all primitives with cycling ability, fixed all primitives with choose any target ability, Added/fixed primitives from RIX set. --- .../bin/Res/sets/primitives/borderline.txt | 822 +++++++++++------- projects/mtg/bin/Res/sets/primitives/mtg.txt | 121 ++- .../bin/Res/sets/primitives/planeswalkers.txt | 121 +-- projects/mtg/include/MTGDefinitions.h | 5 +- projects/mtg/include/TargetChooser.h | 8 +- projects/mtg/src/ActionStack.cpp | 6 +- projects/mtg/src/MTGAbility.cpp | 8 +- projects/mtg/src/MTGCardInstance.cpp | 6 +- projects/mtg/src/MTGDefinitions.cpp | 5 +- projects/mtg/src/MTGGameZones.cpp | 14 +- projects/mtg/src/TargetChooser.cpp | 35 +- 11 files changed, 722 insertions(+), 429 deletions(-) diff --git a/projects/mtg/bin/Res/sets/primitives/borderline.txt b/projects/mtg/bin/Res/sets/primitives/borderline.txt index ee1a14b65..115006673 100644 --- a/projects/mtg/bin/Res/sets/primitives/borderline.txt +++ b/projects/mtg/bin/Res/sets/primitives/borderline.txt @@ -250,7 +250,9 @@ toughness=1 [card] name=Admiral Beckett Brass auto=lord(other pirate|mybattlefield) 1/1 -auto=@each my endofturn restriction{type(opponent[damaged]) from(<~morethan~3>creature)~morethan~0}:moveto(mybattlefield) target(*|opponentbattlefield) +auto=@combatdamagefoeof(player) from(*[pirate]|myBattlefield):counter(0/0,1,PirateDamage) all(this) +auto=@each my endofturn:this(counter{0/0.1.PirateDamage}>=3) removeallcounters(0/0,1,PirateDamage) && ability$!name(Gain control of permanent) name(Gain control of permanent) moveto(mybattlefield) target(*[-land]|opponentbattlefield)!$ controller +auto=@each my endofturn:this(counter{0/0.1.PirateDamage}<3) removeallcounters(0/0,1,PirateDamage) text=Other Pirates you control get +1/+1. -- At the beginning of your end step, gain control of target nonland permanent controlled by a player who was dealt combat damage by three or more Pirates this turn. mana={1}{U}{B}{R} type=Legendary Creature @@ -575,7 +577,7 @@ type=Sorcery [/card] [card] name=Agonizing Syphon -auto=damage:3 target(creature,player) && life:3 +auto=damage:3 target(player,creature,planeswalker) && life:3 text=Agonizing Syphon deals 3 damage to any target and you gain 3 life. mana={3}{B} type=Sorcery @@ -1070,7 +1072,7 @@ name=Amphin Mutineer auto=if type(creature[-salamander]|opponentbattlefield)~morethan~0 then choice name(Exile opponent's creature) name(Exile opponent's creature) moveto(exile) target(creature[-salamander]|opponentbattlefield) && token(Salamander Warrior,Creature Salamander Warrior,4/3,blue) opponent auto=if type(creature[-salamander]|myBattlefield)~morethan~0 then choice name(Exile your creature) name(Exile your creature) moveto(exile) target(creature[-salamander]|mybattlefield) && token(Salamander Warrior,Creature Salamander Warrior,4/3,blue) auto=choice name(Don't exile any creature) name(Don't exile any creature) donothing -autograveyard={4}{U}{U}:moveto(exile) and!(clone with(unearth,haste,mustattack))! asSorcery +autograveyard={4}{U}{U}:name(Activate Encore) name(Activate Encore) moveto(exile) and!(clone with(unearth,haste,mustattack))! asSorcery text=When Amphin Mutineer enters the battlefield, exile up to one target non-Salamander creature. That creature's controller creates a 4/3 blue Salamander Warrior creature token. -- Encore {4}{U}{U} ({4}{U}{U}, Exile this card from your graveyard: For each opponent, create a token copy that attacks that opponent this turn if able. They gain haste. Sacrifice them at the beginning of the next end step. Activate only as a sorcery.) mana={3}{U} type=Creature @@ -1313,7 +1315,7 @@ toughness=3 [/card] [card] name=Angel of the God-Pharaoh -abilities=flying +abilities=flying,cycling autohand=__CYCLING__({2}) text=Flying -- Cycling {2} ({2}, Discard this card: Draw a card.) mana={4}{W}{W} @@ -1931,7 +1933,7 @@ toughness=6 [/card] [card] name=Archfiend of Ifnir -abilities=flying +abilities=flying,cycling auto=@movedto(*|mygraveyard) from(myhand):all(creature|opponentbattlefield) counter(-1/-1,1) autohand=__CYCLING__({2}) text=Flying -- Whenever you cycle or discard another card, put a -1/-1 counter on each creature your opponents control. -- Cycling {2} ({2}, Discard this card: Draw a card.) @@ -2530,6 +2532,7 @@ type=Artifact [/card] [card] name=Astral Drift +abilities=cycling auto=@cycled(*|myHand):may (blink)ueot target(creature) autohand=@cycled(this|myHand):may (blink)ueot target(creature) autohand=__CYCLING__({2}{W}) @@ -2667,7 +2670,7 @@ auto=@combat(attacking) source(this) restriction{compare(p)~equalto~18}:counter( auto=@combat(attacking) source(this) restriction{compare(p)~equalto~19}:counter(1/1,1) target(other creature[attacking;power<=18]|myBattlefield) auto=@combat(attacking) source(this) restriction{compare(p)~equalto~20}:counter(1/1,1) target(other creature[attacking;power<=19]|myBattlefield) auto=@combat(attacking) source(this) restriction{compare(p)~morethan~20}:counter(1/1,1) target(other creature[attacking;power<=20]|myBattlefield) -auto=@each my combatbegins:ability$!name(Choose a creature) choice name(Choose non-red, non-white creature) target(creature[-red;-white]|myBattlefield) 2/0 ueot _ choice name(Choose red creature) target(creature[red]|myBattlefield) transforms((,newability[2/0 ueot],newability[trample ueot])) ueot _ name(Choose white creature) target(creature[white]|myBattlefield) transforms((,newability[2/0 ueot],newability[vigilance ueot])) ueot!$ conroller +auto=@each my combatbegins:ability$!name(Choose a creature) choice name(Choose non-red, non-white creature) target(creature[-red;-white]|myBattlefield) 2/0 ueot _ choice name(Choose red creature) target(creature[red]|myBattlefield) transforms((,newability[2/0 ueot],newability[trample ueot])) ueot _ name(Choose white creature) target(creature[white]|myBattlefield) transforms((,newability[2/0 ueot],newability[vigilance ueot])) ueot!$ controller text=Flying -- Mentor (Whenever this creature attacks, put a +1/+1 counter on target attacking creature with lesser power.) -- At the beginning of combat on your turn, choose up to one target creature you control. Until end of turn, that creature gets +2/+0, gains trample if it's red, and gains vigilance if it's white. mana={2}{R}{W} type=Legendary Creature @@ -2877,7 +2880,7 @@ toughness=3 [/card] [card] name=Avian Oddity -abilities=flying +abilities=flying,cycling autohand=__CYCLING__({2}{U}) autohand=@cycled(this|myHand):transforms((,newability[counter(0/0,1,Flying],newability[this(counter{0/0.1.Flying}>=1) flying target(creature|myBattlefield)])) text=Flying -- Cycling {2}{U} ({2}{U}, Discard this card: Draw a card.) -- When you cycle Avian Oddity, put a flying counter on target creature you control. @@ -2989,7 +2992,8 @@ toughness=2 [card] name=Azcanta, the Sunken Ruin auto={T}:Add{U} -auto={2}{U}{T}:moverandom(*[-land;-creature]) from(mylibrary) to(myhand) +aicode={2}{U}{T}:activate target(*[-land;-human;zpos<=4]|mylibrary) moveto(myhand) +auto={2}{U}{T}:name(Look top 4 cards) reveal:4 optionone name(Get a card) target(*[-land;-creature]|reveal) moveto(myhand) optiononeend optiontwo name(put on bottom) target(<4>*|reveal) bottomoflibrary optiontwoend revealend text=(Transforms from Search for Azcanta.) -- {T}: Add {U} to your mana pool. -- {2}{U}, {T}: Look at the top four cards of your library. You may reveal a noncreature, nonland card from among them and put it into your hand. Put the rest on the bottom of your library in any order. type=Legendary Land [/card] @@ -3839,6 +3843,7 @@ toughness=1 [/card] [card] name=Beneath the Sands +abilities=cycling auto=moveto(mybattlefield) target(land[basic]|mylibrary) and!(tap(noevent))! autohand=__CYCLING__({2}) text=Search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library. -- Cycling {2} ({2}, Discard this card: Draw a card.) @@ -4254,7 +4259,7 @@ type=Instant name=Blazing Sunsteel auto={4}:equip auto=teach(creature) 1/0 -auto=@damaged(mytgt):damage:thatmuch target(player,creature) +auto=@damaged(mytgt):damage:thatmuch target(player,creature,planeswalker) text=Equipped creature gets +1/+0 for each opponent you have. -- Whenever equipped creature is dealt damage, it deals that much damage to any target. -- Equip {4} mana={1}{R} type=Artifact @@ -4481,7 +4486,9 @@ toughness=2 [/card] [card] name=Blitz of the Thunder-Raptor -auto=foreach(*[instant,sorcery]|myGraveyard)) damage:1 target(creature,player,planeswalker) exiledeath +target=creature,planeswalker +auto=transforms((,newability[exiledeath])) ueot +auto=damage:pginstantsorcery text=Blitz of the Thunder-Raptor deals damage to target creature or planeswalker equal to the number of instant and sorcery cards in your graveyard. If that creature or planeswalker would die this turn, exile it instead. mana={1}{R} type=Instant @@ -4595,6 +4602,15 @@ mana={3}{B}{S(creature|myBattlefield)} type=Sorcery [/card] [card] +name=Blood Sun +auto=draw:1 controller +auto=lord(land[-basic]|battlefield) transforms((,newability[loseabilities],newability[{T}:add{C}])) +auto=lord(land[basic]|battlefield) transforms((,newability[loseabilities])) +text=When Blood Sun enters the battlefield, draw a card. -- All lands lose all abilities except mana abilities. +mana={2}{R} +type=Enchantment +[/card] +[card] name=Bloodborn Scoundrels auto=target(opponent) life:-2 auto=life:2 @@ -4885,7 +4901,7 @@ type=Legendary Artifact [/card] [card] name=Bolrac-Clan Crusher -auto={T}{C(1/1,-1),creature|mybattlefield}:damage:2 target(creature,player) +auto={T}{C(1/1,-1),creature|mybattlefield}:damage:2 target(player,creature,planeswalker) text={T}, Remove a +1/+1 counter from a creature you control: Bolrac-Clan Crusher deals 2 damage to any target. mana={3}{R}{G} type=Creature @@ -5065,9 +5081,10 @@ abilities=canplayfromexile,flash,adventure restriction=myturnonly other={1}{R} name(Adventure) #MISSING: damage can't be prevented -auto=if paid(alternative) then ability$! name(2 damages to player) choice name(2 damages to player) damage:2 target(player) _ choice name(2 damages to planeswalker) damage:2 target(planeswalker) _ choice name(2 damages to creature) damage:2 target(creature) !$ controller +auto=if paid(alternative) then damage:2 target(player,creature,planeswalker) auto=if paid(alternative) then moveto(exile) all(this) -auto=@targeted(this):damage:2 opponent +auto=@targeted(this) from(*|opponentzones):damage:2 opponent +auto=@targeted(this) from(*|myzones):damage:2 controller text=Whenever Bonecrusher Giant becomes the target of a spell, Bonecrusher Giant deals 2 damage to that spell's controller. -- Damage can't be prevented this turn. Stomp deals 2 damage to any target. mana={2}{R} type=Creature @@ -5185,6 +5202,7 @@ type=Enchantment [/card] [card] name=Boon of the Wish-Giver +abilities=cycling auto=draw:4 controller autohand=__CYCLING__({1}) text=Draw four cards. -- Cycling {1} ({1}, Discard this card: Draw a card.) @@ -5544,7 +5562,7 @@ toughness=3 [card] name=Briarblade Adept auto=@combat(attacking) source(this):target(creature|opponentbattlefield) -1/-1 ueot -autograveyard={3}{B}:moveto(exile) and!(clone with(unearth,haste,mustattack))! asSorcery +autograveyard={3}{B}:name(Activate Encore) name(Activate Encore) moveto(exile) and!(clone with(unearth,haste,mustattack))! asSorcery text=Whenever Briarblade Adept attacks, target creature an opponent controls gets -1/-1 until end of turn. -- Encore {3}{B} ({3}{B}, Exile this card from your graveyard: For each opponent, create a token copy that attacks that opponent this turn if able. They gain haste. Sacrifice them at the beginning of the next end step. Activate only as a sorcery.) mana={4}{B} type=Creature @@ -5844,6 +5862,15 @@ type=Enchantment subtype=Aura [/card] [card] +name=Buccaneer's Bravado +restriction=type(creature|battlefield)~morethan~0 +auto=choice name(Target creature gets +1/+1 and first strike) target(creature) transforms((,newability[1/1],newability[first strike])) ueot +auto=if type(creature[pirate]|battlefield)~morethan~0 then choice name(Target pirate gets +1/+1 and double strike) target(creature[pirate]) transforms((,newability[1/1],newability[double strike])) ueot +text=Choose one -- Target creature gets +1/+1 and gains first strike until end of turn. -- Target Pirate gets +1/+1 and gains double strike until end of turn. +mana={1}{R} +type=Instant +[/card] +[card] name=Bull-Rush Bruiser auto=@combat(attacking) source(this) aslongas(other warrior|myBattlefield):first strike ueot text=Whenever Bull-Rush Bruiser attacks, if your team controls another Warrior, Bull-Rush Bruiser gains first strike until end of turn. @@ -6245,6 +6272,7 @@ toughness=2 [/card] [card] name=Canyon Slough +abilities=cycling auto=tap autohand=__CYCLING__({2}) text=({T}: Add {B} or {R} to your mana pool.) -- Canyon Slough enters the battlefield tapped. -- Cycling {2} ({2}, Discard this card: Draw a card.) @@ -6534,7 +6562,7 @@ type=Instant [/card] [card] name=Cast Out -abilities=flash +abilities=flash,cycling auto=blink(*[-land]|opponentbattlefield) forsrc autohand=__CYCLING__({W}) text=Flash -- When Cast Out enters the battlefield, exile target nonland permanent an opponent controls until Cast Out leaves the battlefield. -- Cycling {W} ({W}, Discard this card: Draw a card.) @@ -6864,6 +6892,7 @@ toughness=1 [/card] [card] name=Censor +abilities=cycling target=*|stack auto=transforms((,newability[pay[[{1}]] name(pay 1 mana) donothing?fizzle])) forever autohand=__CYCLING__({U}) @@ -6932,9 +6961,10 @@ toughness=1 [/card] [card] name=Chain Lightning -target=creature,player,planeswalker -auto=damage:3 && transforms((,newability[pay[[{R}{R}]],newability[may name(copy chain lightning) activate name(copy chain lightning) castcard(copied noevent named!:chain lightning:!)])) forever -text=Chain Lightning deals 3 damage to any target. Then that player or that permanent's controller may pay {R}{R}. IF the player does, he or she may copy this spell and may choose a new target for that copy. +auto=choice name(Damage player) target(player) damage:3 && ability$!name(Pay and copy) pay[[{R}{R}]] name(copy chain lightning) activate castcard(copied noevent named!:chain lightning:!)!$ targetedplayer +auto=if type(creature|battlefield)~morethan~0 then choice name(Damage creature) name(Damage creature) target(creature) damage:3 && ability$!name(Pay and copy) pay[[{R}{R}]] name(copy chain lightning) activate castcard(copied noevent named!:chain lightning:!)!$ targetcontroller +auto=if type(planeswalker|battlefield)~morethan~0 then choice name(Damage planeswalker) name(Damage planeswalker) target(planeswalker) damage:3 && ability$!name(Pay and copy) pay[[{R}{R}]] name(copy chain lightning) activate castcard(copied noevent named!:chain lightning:!)!$ targetcontroller +text=Chain Lightning deals 3 damage to any target. Then that player or that permanent's controller may pay {R}{R}. If the player does, he or she may copy this spell and may choose a new target for that copy. mana={R} type=Instant [/card] @@ -7032,26 +7062,26 @@ toughness=5 name=Chamber Sentry abilities=sunburst auto=counter(1/1,sunburst,Charge) -auto={1}{T}{C(1/1,-1)}:damage:1 target(creature,player) -auto={2}{T}{C(1/1,-2)}:damage:2 target(creature,player) -auto={3}{T}{C(1/1,-3)}:damage:3 target(creature,player) -auto={4}{T}{C(1/1,-4)}:damage:4 target(creature,player) -auto={5}{T}{C(1/1,-5)}:damage:5 target(creature,player) -auto={6}{T}{C(1/1,-6)}:damage:6 target(creature,player) -auto={7}{T}{C(1/1,-7)}:damage:7 target(creature,player) -auto={8}{T}{C(1/1,-8)}:damage:8 target(creature,player) -auto={9}{T}{C(1/1,-9)}:damage:9 target(creature,player) -auto={10}{T}{C(1/1,-10)}:damage:10 target(creature,player) -auto={11}{T}{C(1/1,-11)}:damage:11 target(creature,player) -auto={12}{T}{C(1/1,-12)}:damage:12 target(creature,player) -auto={13}{T}{C(1/1,-13)}:damage:13 target(creature,player) -auto={14}{T}{C(1/1,-14)}:damage:14 target(creature,player) -auto={15}{T}{C(1/1,-15)}:damage:15 target(creature,player) -auto={16}{T}{C(1/1,-16)}:damage:16 target(creature,player) -auto={17}{T}{C(1/1,-17)}:damage:17 target(creature,player) -auto={18}{T}{C(1/1,-18)}:damage:18 target(creature,player) -auto={19}{T}{C(1/1,-19)}:damage:19 target(creature,player) -auto={20}{T}{C(1/1,-20)}:damage:20 target(creature,player) +auto={1}{T}{C(1/1,-1)}:damage:1 target(player,creature,planeswalker) +auto={2}{T}{C(1/1,-2)}:damage:2 target(player,creature,planeswalker) +auto={3}{T}{C(1/1,-3)}:damage:3 target(player,creature,planeswalker) +auto={4}{T}{C(1/1,-4)}:damage:4 target(player,creature,planeswalker) +auto={5}{T}{C(1/1,-5)}:damage:5 target(player,creature,planeswalker) +auto={6}{T}{C(1/1,-6)}:damage:6 target(player,creature,planeswalker) +auto={7}{T}{C(1/1,-7)}:damage:7 target(player,creature,planeswalker) +auto={8}{T}{C(1/1,-8)}:damage:8 target(player,creature,planeswalker) +auto={9}{T}{C(1/1,-9)}:damage:9 target(player,creature,planeswalker) +auto={10}{T}{C(1/1,-10)}:damage:10 target(player,creature,planeswalker) +auto={11}{T}{C(1/1,-11)}:damage:11 target(player,creature,planeswalker) +auto={12}{T}{C(1/1,-12)}:damage:12 target(player,creature,planeswalker) +auto={13}{T}{C(1/1,-13)}:damage:13 target(player,creature,planeswalker) +auto={14}{T}{C(1/1,-14)}:damage:14 target(player,creature,planeswalker) +auto={15}{T}{C(1/1,-15)}:damage:15 target(player,creature,planeswalker) +auto={16}{T}{C(1/1,-16)}:damage:16 target(player,creature,planeswalker) +auto={17}{T}{C(1/1,-17)}:damage:17 target(player,creature,planeswalker) +auto={18}{T}{C(1/1,-18)}:damage:18 target(player,creature,planeswalker) +auto={19}{T}{C(1/1,-19)}:damage:19 target(player,creature,planeswalker) +auto={20}{T}{C(1/1,-20)}:damage:20 target(player,creature,planeswalker) autograveyard={W}{U}{B}{R}{G}:moveto(myhand) text=Chamber Sentry enters the battlefield with a +1/+1 counter on it for each color of mana spent to cast it. -- {X}, {T}, Remove X +1/+1 counters from Chamber Sentry: It deals X damage to any target. -- {W}{U}{B}{R}{G}: Return Chamber Sentry from your graveyard to your hand. mana={X} @@ -7396,6 +7426,18 @@ power=5 toughness=5 [/card] [card] +name=Charging Tuskodon +abilities=trample +auto=@combatdamagefoeof(player) from(this):damage:thatmuch opponent +auto=@combatdamageof(player) from(this):damage:thatmuch controller +text=Trample -- If Charging Tuskodon would deal combat damage to a player, it deals double that damage to that player instead. +mana={3}{R}{R} +type=Creature +subtype=Dinosaur +power=4 +toughness=4 +[/card] +[card] name=Charging War Boar abilities=haste auto=aslongas(planeswalker[Domri]|mybattlefield) +1/+1 @@ -7993,8 +8035,7 @@ type=Sorcery [/card] [card] name=Cleansing Screech -target=creature,player,planeswalker -auto=damage:4 +auto=damage:4 target(player,creature,planeswalker) text=Cleansing Screech deals 4 damage to any target. mana={4}{R} type=Sorcery @@ -8206,7 +8247,7 @@ toughness=5 name=Coastline Marauders abilities=trample auto=@combat(attacking) source(this):type:land:opponentbattlefield/0 ueot -autograveyard={4}{R}{R}:moveto(exile) and!(clone with(unearth,haste,mustattack))! asSorcery +autograveyard={4}{R}{R}:name(Activate Encore) name(Activate Encore) moveto(exile) and!(clone with(unearth,haste,mustattack))! asSorcery text=Trample -- Whenever Coastline Marauders attacks, it gets +1/+0 until end of turn for each land defending player controls. -- Encore {4}{R}{R} ({4}{R}{R}, Exile this card from your graveyard: For each opponent, create a token copy that attacks that opponent this turn if able. They gain haste. Sacrifice them at the beginning of the next end step. Activate only as a sorcery.) mana={2}{R} type=Creature @@ -8508,27 +8549,27 @@ type=Sorcery [/card] [card] name=Comet Storm -kicker=multi{1} -auto=if compare(kicked)~equalto~0 then name(damage 1 target) name(damage 1 target) target(*[creature;player;planeswalker]) damage:X -auto=if compare(kicked)~equalto~1 then name(damage 2 targets) name(damage 2 targets) target(*[creature;player;planeswalker]) damage:X -auto=if compare(kicked)~equalto~2 then name(damage 3 targets) name(damage 3 targets) target(*[creature;player;planeswalker]) damage:X -auto=if compare(kicked)~equalto~3 then name(damage 4 targets) name(damage 4 targets) target(*[creature;player;planeswalker]) damage:X -auto=if compare(kicked)~equalto~4 then name(damage 5 targets) name(damage 5 targets) target(*[creature;player;planeswalker]) damage:X -auto=if compare(kicked)~equalto~5 then name(damage 6 targets) name(damage 6 targets) target(*[creature;player;planeswalker]) damage:X -auto=if compare(kicked)~equalto~6 then name(damage 7 targets) name(damage 7 targets) target(*[creature;player;planeswalker]) damage:X -auto=if compare(kicked)~equalto~7 then name(damage 8 targets) name(damage 8 targets) target(*[creature;player;planeswalker]) damage:X -auto=if compare(kicked)~equalto~8 then name(damage 9 targets) name(damage 9 targets) target(*[creature;player;planeswalker]) damage:X -auto=if compare(kicked)~equalto~9 then name(damage 10 targets) name(damage 10 targets) target(*[creature;player;planeswalker]) damage:X -auto=if compare(kicked)~equalto~10 then name(damage 11 targets) name(damage 11 targets) target(*[creature;player;planeswalker]) damage:X -auto=if compare(kicked)~equalto~11 then name(damage 12 targets) name(damage 12 targets) target(*[creature;player;planeswalker]) damage:X -auto=if compare(kicked)~equalto~12 then name(damage 13 targets) name(damage 13 targets) target(*[creature;player;planeswalker]) damage:X -auto=if compare(kicked)~equalto~13 then name(damage 14 targets) name(damage 14 targets) target(*[creature;player;planeswalker]) damage:X -auto=if compare(kicked)~equalto~14 then name(damage 15 targets) name(damage 15 targets) target(*[creature;player;planeswalker]) damage:X -auto=if compare(kicked)~equalto~15 then name(damage 16 targets) name(damage 16 targets) target(*[creature;player;planeswalker]) damage:X -auto=if compare(kicked)~equalto~16 then name(damage 17 targets) name(damage 17 targets) target(*[creature;player;planeswalker]) damage:X -auto=if compare(kicked)~equalto~17 then name(damage 18 targets) name(damage 18 targets) target(*[creature;player;planeswalker]) damage:X -auto=if compare(kicked)~equalto~18 then name(damage 19 targets) name(damage 19 targets) target(*[creature;player;planeswalker]) damage:X -auto=if compare(kicked)~equalto~19 then name(damage 20 targets) name(damage 20 targets) target(*[creature;player;planeswalker]) damage:X +abilities=hasotherkicker +auto=this(X>0) choice name(kicker = 0) name(kicker = 0) target(player,creature,planeswalker) damage:X +auto=this(X>1) choice name(kicker = 1) name(kicker = 1) target(<2>player,creature,planeswalker) damage:Xminus1minusend +auto=this(X>2) choice name(kicker = 2) name(kicker = 2) target(<3>player,creature,planeswalker) damage:Xminus2minusend +auto=this(X>3) choice name(kicker = 3) name(kicker = 3) target(<4>player,creature,planeswalker) damage:Xminus3minusend +auto=this(X>4) choice name(kicker = 4) name(kicker = 4) target(<5>player,creature,planeswalker) damage:Xminus4minusend +auto=this(X>5) choice name(kicker = 5) name(kicker = 5) target(<6>player,creature,planeswalker) damage:Xminus5minusend +auto=this(X>6) choice name(kicker = 6) name(kicker = 6) target(<7>player,creature,planeswalker) damage:Xminus6minusend +auto=this(X>7) choice name(kicker = 7) name(kicker = 7) target(<8>player,creature,planeswalker) damage:Xminus7minusend +auto=this(X>8) choice name(kicker = 8) name(kicker = 8) target(<9>player,creature,planeswalker) damage:Xminus8minusend +auto=this(X>9) choice name(kicker = 9) name(kicker = 9) target(<10>player,creature,planeswalker) damage:Xminus9minusend +auto=this(X>10) choice name(kicker = 10) name(kicker = 10) target(<11>player,creature,planeswalker) damage:Xminus10minusend +auto=this(X>11) choice name(kicker = 11) name(kicker = 11) target(<12>player,creature,planeswalker) damage:Xminus11minusend +auto=this(X>12) choice name(kicker = 12) name(kicker = 12) target(<13>player,creature,planeswalker) damage:Xminus12minusend +auto=this(X>13) choice name(kicker = 13) name(kicker = 13) target(<14>player,creature,planeswalker) damage:Xminus13minusend +auto=this(X>14) choice name(kicker = 14) name(kicker = 14) target(<15>player,creature,planeswalker) damage:Xminus14minusend +auto=this(X>15) choice name(kicker = 15) name(kicker = 15) target(<16>player,creature,planeswalker) damage:Xminus15minusend +auto=this(X>16) choice name(kicker = 16) name(kicker = 16) target(<17>player,creature,planeswalker) damage:Xminus16minusend +auto=this(X>17) choice name(kicker = 17) name(kicker = 17) target(<18>player,creature,planeswalker) damage:Xminus17minusend +auto=this(X>18) choice name(kicker = 18) name(kicker = 18) target(<19>player,creature,planeswalker) damage:Xminus18minusend +auto=this(X>19) choice name(kicker = 19) name(kicker = 19) target(<20>player,creature,planeswalker) damage:Xminus19minusend text=Multikicker {1} (You may pay an additional {1} any number of times as you cast this spell.) -- Choose any target, then choose another target for each time this spell was kicked. Comet Storm deals X damage to each of them. mana={X}{R}{R} type=Instant @@ -8664,6 +8705,7 @@ toughness=2 [/card] [card] name=Compelling Argument +abilities=cycling target=player auto=deplete:5 targetedplayer autohand=__CYCLING__({U}) @@ -8673,6 +8715,7 @@ type=Sorcery [/card] [card] name=Complicate +abilities=cycling target=*|stack auto=transforms((,newability[pay[[{3}]] name(pay 3 mana) donothing?fizzle])) oneshot autohand=__CYCLING__({2}{U}) @@ -9074,13 +9117,14 @@ type=Sorcery [/card] [card] name=Contraption Cannon -auto={2}{S}:damage:allmyname target(creature,player,planeswalker) +auto={2}{S}:damage:allmyname target(player,creature,planeswalker) text={2}, Sacrifice Contraption Cannon: It deals damage to any target equal to the number of Contraptions you control. mana={4} type=Artifact [/card] [card] name=Coordinated Charge +abilities=cycling auto=all(creatures|myBattlefield) 2/1 ueot autohand=__CYCLING__({2}) text=Creatures you control get +2/+1 until end of turn. -- Cycling {2} ({2}, Discard this card: Draw a card.) @@ -9228,6 +9272,7 @@ type=Instant [/card] [card] name=Countervailing Winds +abilities=cycling target=*|stack auto=if cantargetcard(*|opponentstack) then transforms((,newability[pay[[{value:type:*:opponentgraveyard}]] name(pay {value} mana) donothing?fizzle])) forever else transforms((,newability[pay[[{value:type:*:mygraveyard}]] name(pay {value} mana) donothing?fizzle])) forever autohand=__CYCLING__({2}) @@ -9294,8 +9339,8 @@ type=Enchantment [card] name=Court of Ire auto=becomesmonarch controller -auto=@each my upkeep restriction{compare(pmonarch)~equalto~0}:ability$!name(Choose one) choice name(Damage creature) damage:2 target(creature) _ choice name(Damage player) damage:2 target(player) _ choice name(Damage planeswalker) damage:2 target(planeswalker)!$ controller -auto=@each my upkeep restriction{compare(pmonarch)~equalto~1}:ability$!name(Choose one) choice name(Damage creature) damage:7 target(creature) _ choice name(Damage player) damage:7 target(player) _ choice name(Damage planeswalker) damage:7 target(planeswalker)!$ controller +auto=@each my upkeep restriction{compare(pmonarch)~equalto~0}:name(Deals 2 damages to any target) name(Deals 2 damages to any target) damage:2 target(player,creature,planeswalker) +auto=@each my upkeep restriction{compare(pmonarch)~equalto~1}:name(Deals 7 damages to any target) name(Deals 7 damages to any target) damage:7 target(player,creature,planeswalker) text=When Court of Ire enters the battlefield, you become the monarch. -- At the beginning of your upkeep, Court of Ire deals 2 damage to any target. If you're the monarch, it deals 7 damage instead. mana={3}{R}{R} type=Enchantment @@ -9886,7 +9931,7 @@ toughness=3 [/card] [card] name=Curator of Mysteries -abilities=flying +abilities=flying,cycling auto=@movedto(*|mygraveyard) from(myhand):scry:1 scrycore delayed dontshow donothing scrycoreend scryend autohand=__CYCLING__({U}) text=Flying -- Whenever you cycle or discard another card, scry 1. -- Cycling {U} ({U}, Discard this card: Draw a card.) @@ -10042,7 +10087,7 @@ type=Artifact [/card] [card] name=Cursed Scroll -auto={3}{T}:name(Name a card from your hand) choice target(*|myhand) donothing && name(Game chooses a random card) if compare(cursedscrollresult)~equalto~1 then ability$!name(The random card macthes with the named card) choice name(Damage creature) damage:2 target(creature) _ choice name(Damage player) damage:2 target(player) _ choice name(Damage planeswalker) damage:2 target(planeswalker)!$ controller +auto={3}{T}:name(Name a card from your hand) choice target(*|myhand) donothing && name(Game chooses a random card) if compare(cursedscrollresult)~equalto~1 then ability$!name(Deals 2 damages) name(Deals 2 damages) damage:2 target(player,creature,planeswalker)!$ controller text={3}, {T}: Choose a card name, then reveal a card at random from your hand. If that card has the chosen name, Cursed Scroll deals 2 damage to any target. mana={1} type=Artifact @@ -10220,6 +10265,17 @@ power=3 toughness=3 [/card] [card] +name=Daring Buccaneer +other={R} name(Reveal pirate) +otherrestriction=type(pirate|myhand)~morethan~0 +text=As an additional cost to cast this spell, reveal a Pirate card from your hand or pay 2 . +mana={2}{R} +type=Creature +subtype=Human Pirate +power=2 +toughness=2 +[/card] +[card] name=Daring Fiendbonder abilities=haste,mustattack autograveyard={1}{B}{E}:target(creature) transform((,newability[counter(0/0,1,Indestructible)],newability[this(counter{0/0.1.Indestructible}>=1) indestructible])) @@ -10838,6 +10894,7 @@ type=Instant [/card] [card] name=Deem Worthy +abilities=cycling target=creature auto=damage:7 autohand=__CYCLING__({3}{R}) && damage:2 target(creature) @@ -10998,7 +11055,7 @@ toughness=1 name=Deliver Unto Evil auto=moveto(exile) all(this) auto=if type(planeswalker[bolas]|mybattlefield)~morethan~0 then target(*|mygraveyard) moveto(myhand) -auto=if type(planeswalker[bolas]|mybattlefield)~equalto~0 then abilitiy$!name(Choose 2 cards) name(Choose 2 cards) target(<2>*|opponentgraveyard) moveto(opponenthand)!$ opponent +auto=if type(planeswalker[bolas]|mybattlefield)~equalto~0 then ability$!name(Choose 2 cards) name(Choose 2 cards) target(<2>*|opponentgraveyard) moveto(opponenthand)!$ opponent text=Choose up to four target cards in your graveyard. If you control a Bolas planeswalker, return those cards to your hand. Otherwise, an opponent chooses two of them. Leave the chosen cards in your graveyard and put the rest into your hand. -- Exile Deliver Unto Evil. mana={2}{B} type=Sorcery @@ -11223,6 +11280,7 @@ type=Artifact [/card] [card] name=Desert Cerodon +abilities=cycling autohand=__CYCLING__({R}) text=Cycling {R} ({R}, Discard this card: Draw a card.) mana={5}{R} @@ -11233,6 +11291,7 @@ toughness=4 [/card] [card] name=Desert of the Fervent +abilities=cycling auto=tap auto={T}:Add{R} autohand=__CYCLING__({1}{R}) @@ -11242,6 +11301,7 @@ subtype=Desert [/card] [card] name=Desert of the Glorified +abilities=cycling auto=tap auto={T}:Add{B} autohand=__CYCLING__({1}{B}) @@ -11251,6 +11311,7 @@ subtype=Desert [/card] [card] name=Desert of the Indomitable +abilities=cycling auto=tap auto={T}:Add{G} autohand=__CYCLING__({1}{G}) @@ -11260,6 +11321,7 @@ subtype=Desert [/card] [card] name=Desert of the Mindful +abilities=cycling auto=tap auto={T}:Add{U} autohand=__CYCLING__({1}{U}) @@ -11269,6 +11331,7 @@ subtype=Desert [/card] [card] name=Desert of the True +abilities=cycling auto=tap auto={T}:Add{W} autohand=__CYCLING__({1}{W}) @@ -11755,6 +11818,17 @@ power=2 toughness=2 [/card] [card] +name=Dire Fleet Daredevil +abilities=first strike +auto=name(Exile instant or sorcery) name(Exile instant or sorcery) target(*[instant;sorcery]|opponentgraveyard) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[gainedexiledeath],newability[anytypeofmana],newability[phaseaction[endofturn once] moveTo(ownerexile)])) ueot )! +text=First strike -- When Dire Fleet Daredevil enters the battlefield, exile target instant or sorcery card from an opponent's graveyard. You may cast it this turn, and you may spend mana as though it were mana of any type to cast that spell. If that spell would be put into a graveyard this turn, exile it instead. +mana={1}{R} +type=Creature +subtype=Human Pirate +power=2 +toughness=1 +[/card] +[card] name=Dire Fleet Hoarder auto=@movedTo(this|graveyard) from(battlefield):token(435451) text=When Dire Fleet Hoarder dies, create a colorless Treasure artifact token with "{T}, Sacrifice this artifact: Add one mana of any color to your mana pool." @@ -11829,9 +11903,8 @@ type=Instant [/card] [card] name=Direct Current -target=player,creature +target=player,creature,planeswalker auto=damage:2 -auto=Direct Current deals 2 damage to any target flashback={1}{R}{R}{D(*|myhand)} text=Direct Current deals 2 damage to any target. -- Jump-start (You may cast this card from your graveyard by discarding a card in addition to paying its other costs. Then exile this card.) mana={1}{R}{R} @@ -11916,6 +11989,7 @@ type=Enchantment [/card] [card] name=Dismantling Wave +abilities=cycling target=artifact,enchantment auto=destroy autohand=__CYCLING__({6}{W}{W}) @@ -11980,6 +12054,7 @@ type=Instant [/card] [card] name=Dissenter's Deliverance +abilities=cycling target=artifact auto=destroy autohand=__CYCLING__({G}) @@ -12032,6 +12107,7 @@ type=Enchantment [/card] [card] name=Djeru's Renunciation +abilities=cycling target=creature auto=tap autohand=__CYCLING__({W}) @@ -12041,6 +12117,7 @@ type=Instant [/card] [card] name=Djeru's Resolve +abilities=cycling target=creature auto=untap auto=preventalldamage to(this) @@ -12423,9 +12500,9 @@ color=blue [/card] [card] name=Drakuseth, Maw of Flames -auto=damage:4 target(creature,player) -auto=damage:3 target(creature,player) -auto=damage:3 target(creature,player) +abilities=flying +auto=@combat(attacking) source(this):may name(Deals 3 damages to each of up to two other targets) name(Deals 3 damages to each of up to two other targets) damage:3 target(<2>player,creature,planeswalker) +auto=@combat(attacking) source(this):name(Deals 4 damages to any target) name(Deals 4 damagess to any target) damage:4 target(player,creature,planeswalker) text=Flying -- Whenever Drakuseth, Maw of Flames attacks, it deals 4 damage to any target and 3 damage to each of up to two other targets. mana={4}{R}{R}{R} type=Legendary Creature @@ -12456,6 +12533,7 @@ toughness=4 [/card] [card] name=Drannith Healer +abilities=cycling auto=@cycled(*|myHand):life:1 controller autohand=__CYCLING__({1}) text=Whenever you cycle another card, you gain 1 life. -- Cycling {1} ({1}, Discard this card: Draw a card.) @@ -12477,6 +12555,7 @@ toughness=3 [/card] [card] name=Drannith Stinger +abilities=cycling auto=@cycled(*|myHand):damage:1 opponent autohand=__CYCLING__({1}) text=Whenever you cycle another card, Drannith Stinger deals 1 damage to each opponent. -- Cycling {1} ({1}, Discard this card: Draw a card.) @@ -12548,7 +12627,7 @@ subtype=Aura [card] name=Dreadhorde Arcanist abilities=trample -auto=@combat(attacking) source(this):may target(*[instant;sorcery;manacost<=power]|mygraveyard) castcard(restricted) and!(transforms((,newability[exiledeath])) forever)! +auto=@combat(attacking) source(this):may target(*[instant;sorcery;manacost<=power]|mygraveyard) activate castcard(normal) and!(transforms((,newability[gainedexiledeath])) forever)! text=Trample -- Whenever Dreadhorde Arcanist attacks, you may cast target instant or sorcery card with converted mana cost less than or equal to Dreadhorde Arcanist's power from your graveyard without paying its mana cost. If that card would be put into your graveyard this turn, exile it instead. mana={1}{R} type=Creature @@ -12559,7 +12638,8 @@ toughness=3 [card] name=Dreadhorde Butcher abilities=haste -auto=@combatdamaged(player,planeswalker) from(this):counter(1/1) +auto=@combatdamaged(player) from(this):counter(1/1) +auto=@combatdamaged(planeswalker) from(this):counter(1/1) auto=_DIES_damage:power target(creature,player) text=Haste -- Whenever Dreadhorde Butcher deals combat damage to a player or planeswalker, put a +1/+1 counter on Dreadhorde Butcher. -- When Dreadhorde Butcher dies, it deals damage equal to its power to any target. mana={B}{R} @@ -12702,7 +12782,7 @@ toughness=4 [/card] [card] name=Dreamstalker Manticore -auto=@movedto(*|mystack) restriction{opponentturnonly,thisturn(*|mystack)~equalto~0}:damage:1 target(creature,planeswalker|opponentBattlefield) +auto=@movedto(*|mystack) restriction{opponentturnonly,thisturn(*|mystack)~equalto~0}:damage:1 target(player,creature,planeswalker) text=Whenever you cast your first spell during each opponents turn, Dreamstalker Manticore deals 1 damage to any target. mana={2}{R} type=Creature @@ -13265,6 +13345,7 @@ toughness=5 [/card] [card] name=Easy Prey +abilities=cycling target=creature[manacost<=2] auto=destroy autohand=__CYCLING__({2}) @@ -13414,7 +13495,7 @@ type=Instant [/card] [card] name=Electrodominance -auto=damage:X target(player,creature) +auto=damage:X target(player,creature,planeswalker) auto=may castcard(normal) notatarget(*[-land;manacost<=X]|myhand) text=Electrodominance deals X damage to any target. You may cast a card with converted mana cost X or less from your hand without paying its mana cost. mana={X}{R}{R} @@ -13654,7 +13735,7 @@ toughness=1 name=Elvish Dreadlord abilities=deathtouch auto=@movedto(this|ownergraveyard) from(battlefield):all(creature[-elf]|battlefield) -3/-3 ueot -autograveyard={5}{B}{B}:moveto(exile) and!(clone with(unearth,haste,mustattack))! asSorcery +autograveyard={5}{B}{B}:name(Activate Encore) name(Activate Encore) moveto(exile) and!(clone with(unearth,haste,mustattack))! asSorcery text=Deathtouch -- When Elvish Dreadlord dies, non-Elf creatures get -3/-3 until end of turn. -- Encore {5}{B}{B} ({5}{B}{B}, Exile this card from your graveyard: For each opponent, create a token copy that attacks that opponent this turn if able. They gain haste. Sacrifice them at the beginning of the next end step. Activate only as a sorcery.) mana={3}{B}{B} type=Creature @@ -14621,7 +14702,7 @@ toughness=2 [card] name=Evra, Halcyon Witness abilities=lifelink -auto={4}:count(lifetotal) && transforms((,newability[lifeset:p conroller})) forever && all(this) transforms((,setpower=countedamount)) forever +auto={4}:count(lifetotal) && transforms((,newability[lifeset:p controller})) forever && all(this) transforms((,setpower=countedamount)) forever text=Lifelink -- {4}: Exchange your life total with Evra, Halcyon Witness's power. mana={4}{W}{W} type=Legendary Creature @@ -14763,9 +14844,9 @@ type=Land [card] name=Expansion // Explosion other={X}{U}{U}{R}{R} name(Explosion) -auto=if paid(alternative) then choice name(Damage any target and you draw) damage:X target(player,creature) && draw:X controller -auto=if paid(alternative) then choice name(Damage any target and opponent draws) damage:X target(player,creature) && draw:X opponent -auto=ifnot paid(alternative) then name(copy spell) target(*[instant;sorcery;manacost<=4]|stack) castcard(copied noevent) +auto=if paid(alternative) then choice name(Damage any target and you draw) damage:X target(player,creature,planeswalker) && draw:X controller +auto=if paid(alternative) then choice name(Damage any target and opponent draws) damage:X target(player,creature,planeswalker) && draw:X opponent +auto=ifnot paid(alternative) then name(copy spell) target(*[instant;sorcery;manacost<=4]|stack) activate castcard(copied noevent) text=Copy target instant or sorcery spell with converted mana cost 4 or less. You may choose new targets for the copy. -- Explosion deals X damage to any target. Target player draws X cards. mana={UR}{UR} type=Instant @@ -14880,9 +14961,8 @@ toughness=5 [/card] [card] name=Exquisite Firecraft -target=creature,player,planeswalker -auto=damage:4 -auto=if type(*[instant;sorcery]|mygraveyard)~morethan~1 then nofizzle +auto=damage:4 target(player,creature,planeswalker) +autostack=if type(*[instant;sorcery]|mygraveyard)~morethan~1 then nofizzle text=Exquisite Firecraft deals 4 damage to any target. -- Spell mastery If there are two or more instant and/or sorcery cards in your graveyard, this spell cant be countered. mana={1}{R}{R} type=Sorcery @@ -14890,7 +14970,7 @@ type=Sorcery [card] name=Exquisite Huntmaster auto=@movedTo(this|graveyard) from(battlefield):token(Elf Warrior,Creature Elf Warrior,1/1,green) -autograveyard={4}{B}:moveto(exile) and!(clone with(unearth,haste,mustattack))! asSorcery +autograveyard={4}{B}:name(Activate Encore) name(Activate Encore) moveto(exile) and!(clone with(unearth,haste,mustattack))! asSorcery text=When Exquisite Huntmaster dies, create a 1/1 green Elf Warrior creature token. -- Encore {4}{B} ({4}{B}, Exile this card from your graveyard: For each opponent, create a token copy that attacks that opponent this turn if able. They gain haste. Sacrifice them at the beginning of the next end step. Activate only as a sorcery.) mana={3}{B} type=Creature @@ -15232,7 +15312,7 @@ toughness=2 [card] name=Fanatical Firebrand abilities=haste -auto={T}{S}:damage:1 target(creature,player) +auto={T}{S}:damage:1 target(player,creature,planeswalker) text=Haste -- {T}, Sacrifice Fanatical Firebrand: It deals 1 damage to any target. mana={R} type=Creature @@ -15306,7 +15386,7 @@ toughness=3 [/card] [card] name=Fateful End -target=creature,player,plansewalker +target=player,creature,plansewalker auto=damage:3 auto=scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Fateful End deals 3 damage to any target. Scry 1. @@ -15357,7 +15437,7 @@ toughness=2 [card] name=Fathom Fleet Swordjack auto=@combat(attacking) source(this):target(planeswalker,player) damage:type:artifact:mybattlefield -autograveyard={5}{R}:moveto(exile) and!(clone with(unearth,haste,mustattack))! asSorcery +autograveyard={5}{R}:name(Activate Encore) name(Activate Encore) moveto(exile) and!(clone with(unearth,haste,mustattack))! asSorcery text=Whenever Fathom Fleet Swordjack attacks, it deals damage to the player or planeswalker it's attacking equal to the number of artifacts you control. -- Encore {5}{R} ({5}{R}, Exile this card from your graveyard: For each opponent, create a token copy that attacks that opponent this turn if able. They gain haste. Sacrifice them at the beginning of the next end step. Activate only as a sorcery.) mana={3}{R} type=Creature @@ -15715,6 +15795,7 @@ type=Instant [/card] [card] name=Fetid Pools +abilities=cycling auto=tap autohand=__CYCLING__({2}) text=({T}: Add {U} or {B} to your mana pool.) -- Fetid Pools enters the battlefield tapped. -- Cycling {2} ({2}, Discard this card: Draw a card.) @@ -15903,7 +15984,7 @@ type=Sorcery [card] name=Fin-Clade Fugitives auto=cantbeblockedby(creature[power<=2]) -autograveyard={4}{G}:moveto(exile) and!(clone with(unearth,haste,mustattack))! asSorcery +autograveyard={4}{G}:name(Activate Encore) name(Activate Encore) moveto(exile) and!(clone with(unearth,haste,mustattack))! asSorcery text=Fin-Clade Fugitives can't be blocked by creatures with power 2 or less. -- Encore {4}{G} ({4}{G}, Exile this card from your graveyard: For each opponent, create a token copy that attacks that opponent this turn if able. They gain haste. Sacrifice them at the beginning of the next end step. Activate only as a sorcery.) mana={5}{G} type=Creature @@ -15980,19 +16061,19 @@ type=Sorcery [card] name=Finale of Promise target=*[instant;sorcery;manacost<=prex]|mygraveyard -auto=this(X>=10) castcard(normal) -auto=castcard(normal) and!(transforms((,newability[exiledeath])) forever)! +auto=this(X>=10) activate castcard(copied noevent) +auto=activate castcard(normal) and!(transforms((,newability[gainedexiledeath])) forever)! text=You may cast up to one target instant card and/or sorcery card from your graveyard each with converted mana cost X or less without paying their mana costs. If a card cast this way would be put into your graveyard this turn, exile it instead. If X is 10 or more, copy each of those spells twice. You may choose new targets for the copies. mana={X}{R}{R} type=Sorcery [/card] [card] name=Finale of Revelation +abilties=exiledeath auto=this(X<10) draw:x auto=this(X>=10) moveto(myLibrary) all(*|myGraveyard) && shuffle && draw:x auto=this(X>=10) untap notatarget(land) autoexile=lord(*|myBattlefield) nomaxhand -auto=moveto(exile) text=Draw X cards. If X is 10 or more, instead shuffle your graveyard into your library, draw X cards, untap up to five lands, and you have no maximum hand size for the rest of the game. -- Exile Finale of Revelation. mana={X}{U}{U} type=Sorcery @@ -16124,7 +16205,7 @@ toughness=2 [card] name=Fireblade Charger auto=this(gear > 0) haste -auto=@movedTo(this|mygraveyard) from(battlefield):damage:power target(creature,player,planeswalker) +auto=@movedTo(this|mygraveyard) from(battlefield):name(Damage any target) name(Damage any target) target(player,creature,planeswalker) dynamicability oneshot text=As long as Fireblade Charger is equipped, it has haste. -- When Fireblade Charger dies, it deals damage equal to its power to any target. mana={R} type=Creature @@ -16203,7 +16284,7 @@ type=Artifact name=Firemind's Research auto=@movedTo(instant,sorcery|mystack):counter(0/0,charge) auto={1}{U}{C(0/0,-2,Charge)}:draw:1 -auto={1}{R}{C(0/0,-5,Charge)}:damage:5 target(creature,player) +auto={1}{R}{C(0/0,-5,Charge)}:damage:5 target(player,creature,planeswalker) text=Whenever you cast an instant or sorcery spell, put a charge counter on Firemind's Research. -- {1}{U}, Remove two charge counters from Firemind's Research: Draw a card. -- {1}{R}, Remove five charge counters from Firemind's Research: It deals 5 damage to any target. mana={U}{R} type=Enchantment @@ -16597,6 +16678,7 @@ type=Sorcery [/card] [card] name=Floodwaters +abilities=cycling target=creature auto=moveto(ownerhand) autohand=__CYCLING__({2}) @@ -16606,6 +16688,7 @@ type=Sorcery [/card] [card] name=Flourishing Fox +abilities=cycling auto=@cycled(*|myHand):all(this) counter(1/1,1) autohand=__CYCLING__({1}) text=Whenever you cycle another card, put a +1/+1 counter on Flourishing Fox. -- Cycling {1} ({1}, Discard this card: Draw a card.) @@ -16626,7 +16709,7 @@ type=Sorcery [/card] [card] name=Fluctuator -auto=lord(*[__CYCLING__]|mycastingzone) altercost(colorless,-2) +auto=lord(*[cycling]|mycastingzone) altercost(colorless,-2) text=Cycling abilities you activate cost up to {2} less to activate. mana={2} type=Artifact @@ -16723,6 +16806,7 @@ subtype=Food [/card] [card] name=Footfall Crater +abilities=cycling target=land auto=teach(land) transforms((newability[{T}:haste && trample target(creature) ueot])) autohand=__CYCLING__({1}) @@ -16733,7 +16817,7 @@ subtype=Aura [/card] [card] name=Footlight Fiend -auto=@movedTo(this|graveyard) from(battlefield):damage:1 target(creature,player) +auto=@movedTo(this|graveyard) from(battlefield):damage:1 target(player,creature,planeswalker) text=When Footlight Fiend dies, it deals 1 damage to any target. mana={BR} type=Creature @@ -16913,6 +16997,7 @@ type=Sorcery [/card] [card] name=Forsake the Worldly +abilities=cycling target=artifact,enchantment auto=moveto(exile) autohand=__CYCLING__({2}) @@ -18299,6 +18384,7 @@ toughness=2 [/card] [card] name=Gilded Light +abilities=cycling auto=playershroud ueot autohand=__CYCLING__({2}) text=You gain shroud until end of turn. (You can't be the target of spells or abilities.) -- Cycling {2} ({2}, Discard this card: Draw a card.) @@ -18788,6 +18874,7 @@ toughness=3 [/card] [card] name=Go for Blood +abilities=cycling target=creature|myBattlefield auto=transforms((,newability[target(creature|opponentBattlefield) dynamicability])) ueot autohand=__CYCLING__({1}) @@ -19529,7 +19616,7 @@ toughness=4 [/card] [card] name=Granitic Titan -abilities=menace +abilities=menace,cycling autohand=__CYCLING__({2}) text=Menace -- Cycling {2} ({2}, Discard this card: Draw a card.) mana={4}{R}{R} @@ -19728,6 +19815,7 @@ toughness=4 [/card] [card] name=Greater Sandwurm +abilities=cycling auto=cantbeblockedby(creature[power<=2]) autohand=__CYCLING__({2}) text=Greater Sandwurm can't be blocked by creatures with power 2 or less. -- Cycling {2} ({2}, Discard this card: Draw a card.) @@ -20528,6 +20616,7 @@ subtype=Equipment [/card] [card] name=Hampering Snare +abilities=cycling auto=all(creature|opponentBattlefield) -2/-0 ueot autohand=__CYCLING__({2}) text=Creatures your opponents control get -2/-0 until end of turn. -- Cycling {2} ({2}, Discard this card: Draw a card.) @@ -20875,7 +20964,7 @@ toughness=3 [/card] [card] name=Havoc Jester -auto=@sacrificed(*|myBattlefield):ability$!name(Choose one) choice name(Damage player) damage:1 target(player) _ choice name(Damage creature) damage:1 target(creature) _ choice name(Damage planeswalker) damage:1 target(planeswalker)!$ controller +auto=@sacrificed(*|myBattlefield):damage:1 target(player,creature,planeswalker) text=Whenever you sacrifice a permanent, Havoc Jester deals 1 damage to any target. mana={4}{R} type=Creature @@ -20885,6 +20974,7 @@ toughness=5 [/card] [card] name=Haze of Pollen +abilities=cycling auto=preventalldamage autohand=__CYCLING__({3}) text=Prevent all combat damage that would be dealt this turn. -- Cycling {3} ({3}, Discard this card: Draw a card.) @@ -21001,7 +21091,7 @@ toughness=3 [/card] [card] name=Heartfire -target=player,creature +target=player,creature,planeswalker auto=damage:4 text=As an additional cost to cast this spell, sacrifice a creature or planeswalker. -- Heartfire deals 4 damage to any target. mana={1}{R}{S(creature,planeswalker|myBattlefield)} @@ -21450,6 +21540,7 @@ type=Instant [/card] [card] name=Hieroglyphic Illumination +abilities=cycling auto=draw:2 controller autohand=__CYCLING__({U}) text=Draw two cards. -- Cycling {U} ({U}, Discard this card: Draw a card.) @@ -21624,6 +21715,7 @@ toughness=1 [/card] [card] name=Hollow One +abilities=cycling anyzone=@discarded(*|myhand):changecost(colorless:-2) ueot forcedalive autohand=__CYCLING__({2}) text=Hollow One costs {2} less to cast for each card you've cycled or discarded this turn. -- Cycling {2} ({2}, Discard this card: Draw a card.) @@ -21776,6 +21868,7 @@ type=Instant [/card] [card] name=Horror of the Broken Lands +abilities=cycling auto=@movedto(*|mygraveyard) from(myhand):2/1 ueot autohand=__CYCLING__({B}) text=Whenever you cycle or discard another card, Horror of the Broken Lands gets +2/+1 until end of turn. -- Cycling {B} ({B}, Discard this card: Draw a card.) @@ -22652,6 +22745,7 @@ toughness=1 [/card] [card] name=Imaginary Threats +abilities=cycling target=opponent auto=all(creature|targetedpersonsbattlefield) mustattack auto=all(creature|targetedpersonsbattlefield) frozen @@ -22868,7 +22962,7 @@ toughness=4 [/card] [card] name=Imposing Vantasaur -abilities=vigilance +abilities=vigilance,cycling autohand=__CYCLING__({1}) text=Vigilance -- Cycling {1} ({1}, Discard this card: Draw a card.) mana={5}{W} @@ -22908,7 +23002,7 @@ type=Enchantment [card] name=Impulsive Pilferer auto=@movedTo(this|graveyard) from(battlefield):token(Treasure Sur) -autograveyard={3}{R}:moveto(exile) and!(clone with(unearth,haste,mustattack))! asSorcery +autograveyard={3}{R}:name(Activate Encore) name(Activate Encore) moveto(exile) and!(clone with(unearth,haste,mustattack))! asSorcery text=When Impulsive Pilferer dies, create a Treasure token. (It's an artifact with " {T}, Sacrifice this artifact: Add one mana of any color.") -- Encore {3}{R} ({3}{R}, Exile this card from your graveyard: For each opponent, create a token copy that attacks that opponent this turn if able. They gain haste. Sacrifice them at the beginning of the next end step. Activate only as a sorcery.) mana={R} type=Creature @@ -23023,6 +23117,7 @@ toughness=2 [/card] [card] name=Indatha Crystal +abilities=cycling auto={T}:Add{W} auto={T}:Add{B} auto={T}:Add{G} @@ -23033,6 +23128,7 @@ type=Artifact [/card] [card] name=Indatha Triome +abilities=cycling auto=tap(noevent) autohand=__CYCLING__({3}) text=({T}: Add {W}, {B}, or {G}.) -- Indatha Triome enters the battlefield tapped. -- Cycling {3} ({3}, Discard this card: Draw a card.) @@ -23097,7 +23193,7 @@ toughness=4 [card] name=Inescapable Blaze abilities=nofizzle -target=player,creature +target=player,creature,planeswalker auto=damage:6 text=This spell can't be countered. -- Inescapable Blaze deals 6 damage to any target. mana={4}{R}{R} @@ -23199,6 +23295,7 @@ toughness=3 [/card] [card] name=Inferno Jet +abilities=cycling target=opponent auto=damage:6 autohand=__CYCLING__({2}) @@ -23470,7 +23567,7 @@ toughness=5 [/card] [card] name=Inspired Ultimatum -target=creature,planeswalker,player +target=player,creature,planeswalker auto=damage: 5 auto=life: 5 target(player) auto=draw: 5 controller @@ -23556,7 +23653,7 @@ name=Integrity // Intervention other={2}{R}{W} name(Intervention) auto=ifnot paid(alternative) then target(creature) 2/2 ueot auto=if paid(alternative) then life:3 controller -auto=if paid(alternative) then ability$!name(Choose one) choice name(Damage player) damage:3 target(player) _ choice name(Damage creature) damage:3 target(creature) _ choice name(Damage planeswalker) damage:3 target(planeswalker)!$ controller +auto=if paid(alternative) then damage:3 target(player,creature,planeswalker) text=Target creature gets +2/+2 until end of turn. -- Intervention deals 3 damage to any target and you gain 3 life. mana={R or W} type=Instant @@ -23719,7 +23816,7 @@ type=Sorcery [/card] [card] name=Irencrag Pyromancer -auto=@drawof(player):transforms((,newability[@drawof(player) restriction{once}:damage:3 target(player,creature,planeswalker)])) ueot +auto=@drawof(player):transforms((,newability[@drawof(player) once:damage:3 target(player,creature,planeswalker)])) ueot text=Whenever you draw your second card each turn, Irencrag Pyromancer deals 3 damage to any target. mana={2}{R} type=Creature @@ -23740,7 +23837,7 @@ toughness=4 [card] name=Iroas's Blessing target=creature|myBattlefield -auto=damage:4 target(creature,planeswalker|opponentBattlefield) +auto=damage:4 target(*[creature;planeswalker]|opponentBattlefield) auto=1/1 text=Enchant creature you control -- When Iroass Blessing enters the battlefield, it deals 4 damage to target creature or planeswalker an opponent controls. -- Enchanted creature gets +1/+1. mana={3}{R} @@ -23831,6 +23928,7 @@ toughness=2 [/card] [card] name=Irrigated Farmland +abilities=cycling auto=tap autohand=__CYCLING__({2}) text=({T}: Add {W} or {U} to your mana pool.) -- Irrigated Farmland enters the battlefield tapped. -- Cycling {2} ({2}, Discard this card: Draw a card.) @@ -24430,7 +24528,7 @@ toughness=2 [card] name=Judith, the Scourge Diva auto=lord(other creature|myBattlefield) +1/+0 -auto=@movedto(graveyard) from(creature[-token]|myBattlefield):damage:1 target(creature,player) +auto=@movedto(graveyard) from(creature[-token]|myBattlefield):damage:1 target(player,creature,planeswalker) text=Other creatures you control get +1/+0. -- Whenever a nontoken creature you control dies, Judith, the Scourge Diva deals 1 damage to any target. mana={1}{B}{R} type=Legendary Creature @@ -24495,7 +24593,7 @@ toughness=2 [card] name=Juri, Master of the Revue auto=@sacrificed(*|mybattlefield):counter(1/1) all(this) -auto=@movedTo(this|graveyard) from(Battlefield):damage:power target(player,creature) +auto=@movedTo(this|graveyard) from(Battlefield):damage:power target(player,creature,planeswalker) text=Whenever you sacrifice a permanent, put a +1/+1 counter on Juri, Master of the Revue. -- When Juri dies, it deals damage equal to its power to any target. mana={B}{R} type=Legendary Creature @@ -24608,8 +24706,8 @@ type=Instant [/card] [card] name=Kaervek's Torch -auto=@targeted(this) from(stack): altercost(colorless,+2) -auto=damage:X target(creature,player,planeswalker) +autostack=@targeted(this) from(*[instant;sorcery]|opponentcastingzone):choice name(This spell costs 2 more) name(This spell costs 2 more) target(*[instant;sorcery]|opponentzones) transforms((,newability[pay[[{2}]] name(pay 2 mana) donothing?fizzle])) oneshot +auto=name(Damage any target) name(Damage any target) damage:X target(player,creature,planeswalker) text=As long as Kaervek's Torch is on the stack, spells that target it cost {2} more to cast. -- Kaervek's Torch deals X damage to any target. mana={X}{R} type=Sorcery @@ -24704,7 +24802,7 @@ toughness=5 name=Kangee's Lieutenant abilities=flying auto=@combat(attacking) source(this):all(creature[attacking;flying]) 1/1 ueot -autograveyard={5}{W}:moveto(exile) and!(clone with(unearth,haste,mustattack))! asSorcery +autograveyard={5}{W}:name(Activate Encore) name(Activate Encore) moveto(exile) and!(clone with(unearth,haste,mustattack))! asSorcery text=Flying -- Whenever Kangee's Lieutenant attacks, attacking creatures with flying get +1/+1 until end of turn. -- Encore {5}{W} ({5}{W}, Exile this card from your graveyard: For each opponent, create a token copy that attacks that opponent this turn if able. They gain haste. Sacrifice them at the beginning of the next end step. Activate only as a sorcery.) mana={2}{W} type=Creature @@ -24798,7 +24896,7 @@ type=Legendary Sorcery [/card] [card] name=Karplusan Hound -auto=@combat(attacking) source(this) aslongas(planeswalker[chandra]|myBattlefield):damage:2 target(creature,player) +auto=@combat(attacking) source(this) aslongas(planeswalker[chandra]|myBattlefield):damage:2 target(player,creature,planeswalker) text=Whenever Karplusan Hound attacks, if you control a Chandra planeswalker, this creature deals 2 damage to any target. mana={3}{R} type=Creature @@ -24935,7 +25033,7 @@ type=Land [card] name=Kazuul's Fury autohand={0}:restriction{can play land} name(Kazuul's Cliffs) name(Kazuul's Cliffs) flip(Kazuul's Cliffs) forcetype(land) -auto=damage:storedpower target(player,creature,planeswalker) +auto=choice name(damage:storedpower target(player,creature,planeswalker) text=As an additional cost to cast this spell, sacrifice a creature. -- Kazuul's Fury deals damage equal to the sacrificed creatures power to any target. mana={2}{R}{S(creature|myBattlefield)} type=Instant @@ -25196,6 +25294,7 @@ toughness=4 [/card] [card] name=Ketria Crystal +abilities=cycling auto={T}:Add{G} auto={T}:Add{U} auto={T}:Add{R} @@ -25206,6 +25305,7 @@ type=Artifact [/card] [card] name=Ketria Triome +abilities=cycling auto=tap(noevent) autohand=__CYCLING__({3}) text=({T}: Add {G}, {U}, or {R}.) -- Ketria Triome enters the battlefield tapped. -- Cycling {3} ({3}, Discard this card: Draw a card.) @@ -25378,7 +25478,7 @@ toughness=2 [card] name=Kinsbaile Courier auto=counter(1/1) target(creature) -autograveyard={2}{W}:moveto(exile) and!(clone with(unearth,haste,mustattack))! asSorcery +autograveyard={2}{W}:name(Activate Encore) name(Activate Encore) moveto(exile) and!(clone with(unearth,haste,mustattack))! asSorcery text=When Kinsbaile Courier enters the battlefield, put a +1/+1 counter on target creature. -- Encore {2}{W} ({2}{W}, Exile this card from your graveyard: For each opponent, create a token copy that attacks that opponent this turn if able. They gain haste. Sacrifice them at the beginning of the next end step. Activate only as a sorcery.) mana={2}{W} type=Creature @@ -25471,7 +25571,7 @@ toughness=2 name=Kitesail Skirmisher abilities=flying auto=@combat(attacking) source(this):name(Other creature gains flying) target(other creature|myBattlefield) transforms((,newability[flying])) ueot -autograveyard={4}{U}:moveto(exile) and!(clone with(unearth,haste,mustattack))! asSorcery +autograveyard={4}{U}:name(Activate Encore) name(Activate Encore) moveto(exile) and!(clone with(unearth,haste,mustattack))! asSorcery text=Flying -- Whenever Kitesail Skirmisher attacks, another target creature attacking the same player or planeswalker gains flying until end of turn. -- Encore {4}{U} ({4}{U}, Exile this card from your graveyard: For each opponent, create a token copy that attacks that opponent this turn if able. They gain haste. Sacrifice them at the beginning of the next end step. Activate only as a sorcery.) mana={3}{U} type=Creature @@ -25928,25 +26028,25 @@ toughness=4 [card] name=Krav, the Unredeemed auto=may name(Put partner on your hand) name(Put partner on your hand) moveto(myhand) target(Regna, the Redeemer|mylibrary) -auto={B}{S(creature|myBattlefield)}:name(Sacrifice 1 creature and target yourself) name(Sacrifice 1 creature and target yourself) all(this) counter(1/1,1) && life:1 controller && draw:1 conroller +auto={B}{S(creature|myBattlefield)}:name(Sacrifice 1 creature and target yourself) name(Sacrifice 1 creature and target yourself) all(this) counter(1/1,1) && life:1 controller && draw:1 controller auto={B}{S(creature|myBattlefield)}:name(Sacrifice 1 creature and target opponent) name(Sacrifice 1 creature and target opponent) all(this) counter(1/1,1) && life:1 opponent && draw:1 opponent -auto={B}{S(creature|myBattlefield)}{S(creature|myBattlefield)}:name(Sacrifice 2 creatures and target yourself) name(Sacrifice 2 creatures and target yourself) all(this) counter(1/1,2) && life:2 controller && draw:2 conroller +auto={B}{S(creature|myBattlefield)}{S(creature|myBattlefield)}:name(Sacrifice 2 creatures and target yourself) name(Sacrifice 2 creatures and target yourself) all(this) counter(1/1,2) && life:2 controller && draw:2 controller auto={B}{S(creature|myBattlefield)}{S(creature|myBattlefield)}:name(Sacrifice 2 creatures and target opponent) name(Sacrifice 2 creatures and target opponent) all(this) counter(1/1,2) && life:2 opponent && draw:2 opponent -auto={B}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}:name(Sacrifice 3 creatures and target yourself) name(Sacrifice 3 creatures and target yourself) all(this) counter(1/1,3) && life:3 controller && draw:3 conroller +auto={B}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}:name(Sacrifice 3 creatures and target yourself) name(Sacrifice 3 creatures and target yourself) all(this) counter(1/1,3) && life:3 controller && draw:3 controller auto={B}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}:name(Sacrifice 3 creatures and target opponent) name(Sacrifice 3 creatures and target opponent) all(this) counter(1/1,3) && life:3 opponent && draw:3 opponent -auto={B}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}:name(Sacrifice 4 creatures and target yourself) name(Sacrifice 4 creatures and target yourself) all(this) counter(1/1,4) && life:4 controller && draw:4 conroller +auto={B}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}:name(Sacrifice 4 creatures and target yourself) name(Sacrifice 4 creatures and target yourself) all(this) counter(1/1,4) && life:4 controller && draw:4 controller auto={B}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}:name(Sacrifice 4 creatures and target opponent) name(Sacrifice 4 creatures and target opponent) all(this) counter(1/1,4) && life:4 opponent && draw:4 opponent -auto={B}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}:name(Sacrifice 5 creatures and target yourself) name(Sacrifice 5 creatures and target yourself) all(this) counter(1/1,5) && life:5 controller && draw:5 conroller +auto={B}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}:name(Sacrifice 5 creatures and target yourself) name(Sacrifice 5 creatures and target yourself) all(this) counter(1/1,5) && life:5 controller && draw:5 controller auto={B}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}:name(Sacrifice 5 creatures and target opponent) name(Sacrifice 5 creatures and target opponent) all(this) counter(1/1,5) && life:5 opponent && draw:5 opponent -auto={B}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}:name(Sacrifice 6 creatures and target yourself) name(Sacrifice 6 creatures and target yourself) all(this) counter(1/1,6) && life:6 controller && draw:6 conroller +auto={B}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}:name(Sacrifice 6 creatures and target yourself) name(Sacrifice 6 creatures and target yourself) all(this) counter(1/1,6) && life:6 controller && draw:6 controller auto={B}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}:name(Sacrifice 6 creatures and target opponent) name(Sacrifice 6 creatures and target opponent) all(this) counter(1/1,6) && life:6 opponent && draw:6 opponent -auto={B}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}:name(Sacrifice 7 creatures and target yourself) name(Sacrifice 7 creatures and target yourself) all(this) counter(1/1,7) && life:7 controller && draw:7 conroller +auto={B}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}:name(Sacrifice 7 creatures and target yourself) name(Sacrifice 7 creatures and target yourself) all(this) counter(1/1,7) && life:7 controller && draw:7 controller auto={B}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}:name(Sacrifice 7 creatures and target opponent) name(Sacrifice 7 creatures and target opponent) all(this) counter(1/1,7) && life:7 opponent && draw:7 opponent -auto={B}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}:name(Sacrifice 8 creatures and target yourself) name(Sacrifice 8 creatures and target yourself) all(this) counter(1/1,8) && life:8 controller && draw:8 conroller +auto={B}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}:name(Sacrifice 8 creatures and target yourself) name(Sacrifice 8 creatures and target yourself) all(this) counter(1/1,8) && life:8 controller && draw:8 controller auto={B}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}:name(Sacrifice 8 creatures and target opponent) name(Sacrifice 8 creatures and target opponent) all(this) counter(1/1,8) && life:8 opponent && draw:8 opponent -auto={B}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}:name(Sacrifice 9 creatures and target yourself) name(Sacrifice 9 creatures and target yourself) all(this) counter(1/1,9) && life:9 controller && draw:9 conroller +auto={B}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}:name(Sacrifice 9 creatures and target yourself) name(Sacrifice 9 creatures and target yourself) all(this) counter(1/1,9) && life:9 controller && draw:9 controller auto={B}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}:name(Sacrifice 9 creatures and target opponent) name(Sacrifice 9 creatures and target opponent) all(this) counter(1/1,9) && life:9 opponent && draw:9 opponent -auto={B}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}:name(Sacrifice 10 creatures and target yourself) name(Sacrifice 10 creatures and target yourself) all(this) counter(1/1,10) && life:10 controller && draw:10 conroller +auto={B}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}:name(Sacrifice 10 creatures and target yourself) name(Sacrifice 10 creatures and target yourself) all(this) counter(1/1,10) && life:10 controller && draw:10 controller auto={B}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}{S(creature|myBattlefield)}:name(Sacrifice 10 creatures and target opponent) name(Sacrifice 10 creatures and target opponent) all(this) counter(1/1,10) && life:10 opponent && draw:10 opponent text=Partner with Regna, the Redeemer (When this creature enters the battlefield, target player may put Regna into their hand from their library, then shuffle.) -- {B}, Sacrifice X creatures: Target player draws X cards and gains X life. Put X +1/+1 counters on Krav, the Unredeemed. mana={4}{B} @@ -26302,7 +26402,7 @@ type=Sorcery [/card] [card] name=Lava Serpent -abilities=haste +abilities=haste,cycling autohand=__CYCLING__({2}) text=Haste -- Cycling {2} ({2}, Discard this card: Draw a card.) mana={5}{R} @@ -26406,6 +26506,7 @@ type=Sorcery [/card] [card] name=Lay Claim +abilities=cycling target=artifact,creature,enchantment,land,planeswalker auto=moveto(mybattlefield) autohand=__CYCLING__({2}) @@ -26796,7 +26897,7 @@ toughness=3 name=Leyline Tyrant abilities=flying auto=mypoolsave(red) -auto=_DIES_:choice name(Pay X red mana) name(Pay X red mana) ability$!name(Damage X) pay[[{X:red}]] name(Damage) target(creature,player,planeswalker) damage:X!$ controller +auto=_DIES_:choice name(Pay X red mana) name(Pay X red mana) ability$!name(Damage X) pay[[{X:red}]] name(Damage any target) target(player,creature,planeswalker) damage:X!$ controller text=Flying -- You don't lose unspent red mana as steps and phases end. -- When Leyline Tyrant dies, you may pay any amount of {R}. When you do, it deals that much damage to any target. mana={2}{R}{R} type=Creature @@ -27074,7 +27175,7 @@ toughness=1 [/card] [card] name=Lightning-Core Excavator -auto={5}{T}{S}:ability$!name(Choose one) choice name(Damage player) damage:3 target(player) _ choice name(Damage creature) damage:3 target(creature) _ choice name(Damage planeswalker) damage:3 target(planeswalker)!$ controller +auto={5}{T}{S}:damage:3 target(player,creature,planeswalker) text={5}, {T}, Sacrifice Lightning-Core Excavator: It deals 3 damage to any target. mana={1} type=Artifact Creature @@ -27266,6 +27367,7 @@ type=Enchantment [/card] [card] name=Limits of Solidarity +abilities=cycling target=creature auto=haste auto=untap @@ -27382,7 +27484,7 @@ toughness=3 [/card] [card] name=Living Twister -auto={1}{R}{D(land|myhand)}:damage:2 target(creature,player) +auto={1}{R}{D(land|myhand)}:damage:2 target(player,creature,planeswalker) auto={G}:target(land[tapped]|myBattlefield) moveto(ownerhand) text={1}{R}, Discard a land card: Living Twister deals 2 damage to any target. -- {G}: Return a tapped land you control to its owner's hand. mana={R}{R}{G} @@ -27911,6 +28013,7 @@ toughness=4 [/card] [card] name=Lurching Rotbeast +abilities=cycling autohand=__CYCLING__({B}) text=Cycling {B} ({B}, Discard this card: Draw a card.) mana={3}{B} @@ -28783,7 +28886,7 @@ color=white name=Mask of Immolation auto=livingweapontoken(Elemental,Creature Elemental,1/1,red) auto={2}:equip -auto=teach(creature) {S}:damage:1 target(creature,player) +auto=teach(creature) {S}:damage:1 target(player,creature,planeswalker) text=When Mask of Immolation enters the battlefield, create a 1/1 red Elemental creature token, then attach Mask of Immolation to it. -- Equipped creature has "Sacrifice this creature: It deals 1 damage to any target." -- Equip {2} ({2} : Attach to target creature you control. Equip only as a sorcery.) mana={1}{R} type=Artifact @@ -28939,7 +29042,7 @@ type=Sorcery [/card] [card] name=Mayhem Devil -auto=@sacrificed(*|battlefield):damage:1 target(creature,player) +auto=@sacrificed(*|battlefield):damage:1 target(player,creature,planeswalker) text=Whenever a player sacrifices a permanent, Mayhem Devil deals 1 damage to any target. mana={1}{B}{R} type=Creature @@ -29032,6 +29135,7 @@ type=Instant [/card] [card] name=Memory Leak +abilities=cycling target=opponent aicode=activate moveTo(exile) notatarget(*[-land]|targetedpersonshand) auto=reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose Exile) notatarget(<1>*[-land]|reveal) transforms((,newability[moveto(ownerhand) all(other *|reveal)],newability[moveto(ownerhand) and!(exile)!])) ueot optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! and!( moveTo(exile) target(*[-land]|opponentgraveyard) )! optiontwoend revealend @@ -29296,8 +29400,7 @@ subtype=Aura [/card] [card] name=Meteor Blast -target=(creature,player,planeswalker) -auto=damage:4 +auto=thisforeach(X) ability$!name(Choose one) choice name(4 damages to player) damage:4 target(player) _ choice name(4 damages to planeswalker) damage:4 target(planeswalker) _ choice name(4 damages to creature) damage:4 target(creature)!$ controller mana={X}{R}{R}{R} type=Sorcery text=Meteor Blast deals 4 damage to each of X targets. @@ -29324,6 +29427,18 @@ type=Artifact subtype=Equipment [/card] [card] +name=Metzali, Tower of Triumph +auto={T}:add{G} +auto={T}:add{W} +auto={T}:add{U} +auto={T}:add{R} +auto={T}:add{B} +auto={1}{R}{T}:damage:2 opponent +auto={2}{W}{T}:ability$!name(Destroy attacking creature) name(Destroy attacking creature) notatarget(creature[attacking]|battlefield) destroy!$ opponent +text=(Transforms from Path of Mettle.) -- {T}: Add one mana of any color. -- {1}{R}, {T}: Metzali, Tower of Triumph deals 2 damage to each opponent. -- {2}{W}, {T}: Choose a creature at random that attacked this turn. Destroy that creature. +type=Legendary Land +[/card] +[card] name=Miara, Thorn of the Glade abilities=partner auto=@movedTo(*[elf]|mygraveyard) from(mybattlefield):may pay({1}{L:1}) name(draw card) draw:1 controller @@ -29378,6 +29493,7 @@ type=Instant [/card] [card] name=Migration Path +abilities=cycling aicode=activate moveTo(myBattlefield) and!(tap(noevent))! target(land[basic]|myLibrary) auto=name(search card) reveal:plibrarycount optionone name(choose card) target(land[basic]|reveal) moveto(ownerlibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerlibrary) and!( all(*|reveal) moveto(ownerlibrary) and!(shuffle)! )! optiontwoend afterrevealed all(tobecast|mylibrary) moveto(ownerlibrary) and!(moveTo(myBattlefield) and!(tap(noevent))!)! afterrevealedend revealend autohand=__CYCLING__({2}) @@ -29729,7 +29845,7 @@ type=Land [card] name=Mission Briefing aicode=surveil && name(surveil) activate name(surveil) transforms((,newability[foreach(*[zpos<=psurveiloffsetplus2plusend]|mylibrary) moverandom(*[zpos<=psurveiloffsetplus2plusend]) from(mylibrary) to(mylibrary)])) ueot -auto=surveil && name(surveil) reveal:psurveiloffsetplus2plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend afterrevealed target(*[instant;sorcery;fresh]|mygraveyard) transforms((,newability[canplayfromgraveyard],newability[exiledeath])) ueot afterrevealedend revealend +auto=surveil && name(surveil) reveal:psurveiloffsetplus2plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend afterrevealed target(*[instant;sorcery;fresh]|mygraveyard) transforms((,newability[canplayfromgraveyard],newability[gainedexiledeath])) ueot afterrevealedend revealend text=Surveil 2, then choose an instant or sorcery card in your graveyard. You may cast it this turn. If that spell would be put into your graveyard this turn, exile it instead. (To surveil 2, look at the top two cards of your library, then put any number of them into your graveyard and the rest on top of your library in any order.) mana={U}{U} type=Instant @@ -29833,7 +29949,7 @@ type=Sorcery [/card] [card] name=Moaning Wall -abilities=defender +abilities=defender,cycling autohand=__CYCLING__({2}) text=Defender -- Cycling {2} ({2}, Discard this card: Draw a card.) mana={2}{B} @@ -31197,6 +31313,7 @@ toughness=2 [/card] [card] name=Neutralize +abilities=cycling target=*|stack auto=fizzle autohand=__CYCLING__({2}) @@ -31259,7 +31376,7 @@ subtype=Aura [card] name=New Perspectives auto=draw:3 controller -auto=aslongas(*|myHand)~morethan~6 then all(_cycling_|mycastingzone) altercost(colorless,-99) +auto=aslongas(*|myHand) all(*[cycling]|mycastingzone) altercost(colorless,-99) >6 text=When New Perspectives enters the battlefield, draw three cards. -- As long as you have seven or more cards in hand, you may pay {0} rather than pay cycling costs. mana={5}{U} type=Enchantment @@ -31587,7 +31704,7 @@ toughness=3 [/card] [card] name=Nimble Obstructionist -abilities=flash, flying +abilities=flash,flying,cycling autohand=__CYCLING__({2}{U}) auto=@discarded(this):target(*|opponentstack) fizzle text=Flash -- Flying -- Cycling {2}{U} ({2}{U}, Discard this card: Draw a card.) -- When you cycle Nimble Obstructionist, counter target activated or triggered ability you don't control. @@ -31743,7 +31860,7 @@ toughness=6 [card] name=Niv-Mizzet, Parun abilities=nofizzle, flying -auto=@drawof(player):damage:1 target(creature,player) +auto=@drawof(player):damage:1 target(player,creature,planeswalker) auto=@movedTo(instant,sorcery|stack):draw:1 text=This spell can't be countered. -- Flying -- Whenever you draw a card, Niv-Mizzet, Parun deals 1 damage to any target. -- Whenever a player casts an instant or sorcery spell, you draw a card. mana={U}{U}{U}{R}{R}{R} @@ -32139,9 +32256,9 @@ toughness=4 [/card] [card] name=Oath of Kaya -auto=damage:3 target(creature,player) -auto=life:3 -auto=@damage:2 opponent && life:2 +auto=damage:3 target(player,creature,planeswalker) +auto=life:3 controller +auto=@counterremoved(0/0,1,Loyalty) from(planeswalker|myBattlefield) restriction{opponentturnonly}:damage:2 opponent && life:2 controller text=When Oath of Kaya enters the battlefield, it deals 3 damage to any target and you gain 3 life. -- Whenever an opponent attacks a planeswalker you control with one or more creatures, Oath of Kaya deals 2 damage to that player and you gain 2 life. mana={1}{W}{B} type=Legendary Enchantment @@ -32403,7 +32520,7 @@ toughness=6 [/card] [card] name=Oketra's Attendant -abilities=flying +abilities=flying,cycling autohand=__CYCLING__({2}) autograveyard={3}{W}{W}{E}:name(Embalm) clone and!( transforms((Zombie,removemc,white)) forever )! asSorcery text=Flying -- Cycling {2} ({2}, Discard this card: Draw a card.) -- Embalm {3}{W}{W} ({3}{W}{W}, Exile this card from your graveyard: Create a token that's a copy of it, except it's a white Zombie Bird Soldier with no mana cost. Embalm only as a sorcery.) @@ -32502,7 +32619,7 @@ type=Enchantment [card] name=Omen of the Forge abilities=flash -auto=damage:2 target(creature,player,planeswalker) +auto=damage:2 target(player,creature,planeswalker) auto={2}{R}{S}:scry:2 scrycore delayed dontshow donothing scrycoreend scryend text=Flash -- When Omen of the Forge enters the battlefield, it deals 2 damage to any target. -- {2}{R}, Sacrifice Omen of the Forge: Scry 2. mana={1}{R} @@ -32538,6 +32655,7 @@ type=Enchantment [/card] [card] name=Ominous Seas +abilities=cycling auto=@drawof(player):all(this) counter(0/0,1,Foreshadow) auto={C(0/0,-1,Foreshadow)}{C(0/0,-1,Foreshadow)}{C(0/0,-1,Foreshadow)}{C(0/0,-1,Foreshadow)}{C(0/0,-1,Foreshadow)}{C(0/0,-1,Foreshadow)}{C(0/0,-1,Foreshadow)}{C(0/0,-1,Foreshadow)}:token(Kraken Omi) autohand=__CYCLING__({2}) @@ -32582,8 +32700,7 @@ toughness=1 [/card] [card] name=Omnath, Locus of the Roil -target=creature,opponent -auto=damage:type:elemental:mybattlefield +auto=damage:type:elemental:mybattlefield target(player,creature,planeswalker) auto=@movedTo(land|myBattlefield):counter(1/1) target(elemental|myBattlefield) auto=@movedTo(land|myBattlefield):if type(land|mybattlefield)~morethan~7 then draw:1 controller text=When Omnath, Locus of the Roil enters the battlefield, it deals damage to any target equal to the number of Elementals you control. -- Whenever a land enters the battlefield under your control, put a +1/+1 counter on target Elemental you control. If you control eight or more lands, draw a card. @@ -32595,7 +32712,7 @@ toughness=3 [/card] [card] name=Omnispell Adept -auto={2}{U}{T}:may castcard(normal) notatarget(instant,sorcery|myhand) +auto={2}{U}{T}:may activate castcard(normal) notatarget(*[instant;sorcery]|myhand) text={2}{U}, {T}: You may cast an instant or sorcery card from your hand without paying its mana cost. mana={4}{U} type=Creature @@ -32960,7 +33077,7 @@ toughness=2 [/card] [card] name=Orcish Vandal -auto={T}{S(artifact|myBattlefield)}:damage:2 target(creature,player) +auto={T}{S(artifact|myBattlefield)}:damage:2 target(player,creature,planeswalker) text={T}, Sacrifice an artifact: Orcish Vandal deals 2 damage to any target. mana={1}{R} type=Creature @@ -33282,9 +33399,10 @@ type=Sorcery [/card] [card] name=Outpost Siege -aicode=activate target(*|mylibrary) may castcard(restricted) -auto=choice name(Khans) transforms((,newability[counter(0/0.1.Khans)],newability[@each my upkeep:reveal:1 optionone may castcard(restricted) target(*|reveal) optiononeend optiontwo name(Put Back On Top) target(<1>*|reveal) moveto(mylibrary) optiontwoend revealend])) forever -auto=choice name(Dragons) transforms((,newability[counter(0/0.1.Dragons)],newability[@movedto(this|nonbattlezone):damage:1 target(*)])) forever +auto=choice name(Khans) transforms((,newability[counter(0/0.1.Khans)])) forever +auto=choice name(Dragons) transforms((,newability[counter(0/0.1.Dragons)])) forever +auto=@each my upkeep:this(counter{0/0.1.Khans}>=1) name(Reveal top card) reveal:1 optionone may activate castcard(restricted) target(*|reveal) optiononeend optiontwo name(Put Back On Top) target(<1>*|reveal) moveto(mylibrary) optiontwoend revealend])) forever +auto=@movedto(creature|nonbattlezone) from(mybattlefield):this(counter{0/0.1.Dragons}>=1) damage:1 target(player,creature,planeswalker) text=As Outpost Siege enters the battlefield, choose Khans or Dragons. -- Khans -- At the beginning of your upkeep, exile the top card of your library. Until end of turn, you may play that card. -- Dragons -- Whenever a creature you control leaves the battlefield, Outpost Siege deals 1 damage to any target. mana={3}{R} type=Enchantment @@ -33805,7 +33923,7 @@ type=Sorcery [card] name=Pashalik Mons auto=@movedto(other creature[goblin]|graveyard) from(mybattlefield):damage:1 target(creature,player) -auto=@movedto(this|graveyard) from(mybattlefield):damage:1 target(creature,player) +auto=@movedto(this|graveyard) from(mybattlefield):damage:1 target(player,creature,planeswalker) auto={3}{R}{S(creature[goblin]|myBattlefield)}:token(Goblin,Creature Goblin,1/1,red)*2 text=Whenever Pashalik Mons or another Goblin you control dies, Pashalik Mons deals 1 damage to any target. -- {3}{R}, Sacrifice a Goblin: Create two 1/1 red Goblin creature tokens. mana={2}{R} @@ -33848,6 +33966,36 @@ text=Path of Ancestry enters the battlefield tapped. -- {T}: Add one mana of any type=Land [/card] [card] +name=Path of Discovery +auto=@movedTo(creature|myBattlefield):reveal:1 optionone if type(land|reveal)~lessthan~1 then transforms((,newability[counter(1/1)])) optiononeend optiontwo if type(land|reveal)~morethan~0 then name(move to Hand) target(<1>*|reveal) moveto(myHand) else transforms((,newability[Choice name(back to library) target(<1>*|reveal) moveto(mylibrary)],newability[Choice name(put into Graveyard) target(<1>*|reveal) moveto(myGraveyard)])) optiontwoend revealend limit:1 +text=Whenever a creature enters the battlefield under your control, it explores. (Reveal the top card of your library. Put that card into your hand if it's a land. Otherwise, put a +1/+1 counter on the creature, then put the card back or put it into your graveyard.) +mana={3}{G} +type=Enchantment +[/card] +[card] +name=Path of Mettle +auto=all(creature[-haste;-first strike;-double strike;-vigilance]|battlefield) damage:1 +auto=@each my blockers restriction{type(creature[attacking;vigilance]|myBattlefield)~morethan~1}:flip(Metzali, Tower of Triumph) +auto=@each my blockers restriction{type(creature[attacking]|myBattlefield)~morethan~1,type(creature[attacking;vigilance]|myBattlefield)~morethan~0}:if type(creature[attacking;haste]|myBattlefield)~morethan~0 then flip(Metzali, Tower of Triumph) +auto=@each my blockers restriction{type(creature[attacking]|myBattlefield)~morethan~1,type(creature[attacking;vigilance]|myBattlefield)~morethan~0}:if type(creature[attacking;first strike]|myBattlefield)~morethan~0 then flip(Metzali, Tower of Triumph) +auto=@each my blockers restriction{type(creature[attacking]|myBattlefield)~morethan~1,type(creature[attacking;vigilance]|myBattlefield)~morethan~0}:if type(creature[attacking;double strike]|myBattlefield)~morethan~0 then flip(Metzali, Tower of Triumph) +auto=@each my blockers restriction{type(type(creature[attacking;haste]|myBattlefield)~morethan~1}:flip(Metzali, Tower of Triumph) +auto=@each my blockers restriction{type(creature[attacking]|myBattlefield)~morethan~1,type(creature[attacking;haste]|myBattlefield)~morethan~0}:if type(creature[attacking;vigilance]|myBattlefield)~morethan~0 then flip(Metzali, Tower of Triumph) +auto=@each my blockers restriction{type(creature[attacking]|myBattlefield)~morethan~1,type(creature[attacking;haste]|myBattlefield)~morethan~0}:if type(creature[attacking;first strike]|myBattlefield)~morethan~0 then flip(Metzali, Tower of Triumph) +auto=@each my blockers restriction{type(creature[attacking]|myBattlefield)~morethan~1,type(creature[attacking;haste]|myBattlefield)~morethan~0}:if type(creature[attacking;double strike]|myBattlefield)~morethan~0 then flip(Metzali, Tower of Triumph) +auto=@each my blockers restriction{type(creature[attacking;first strike]|myBattlefield)~morethan~1}:flip(Metzali, Tower of Triumph) +auto=@each my blockers restriction{type(creature[attacking]|myBattlefield)~morethan~1,type(creature[attacking;first strike]|myBattlefield)~morethan~0}:if type(creature[attacking;vigilance]|myBattlefield)~morethan~0 then flip(Metzali, Tower of Triumph) +auto=@each my blockers restriction{type(creature[attacking]|myBattlefield)~morethan~1,type(creature[attacking;first strike]|myBattlefield)~morethan~0}:if type(creature[attacking;haste]|myBattlefield)~morethan~0 then flip(Metzali, Tower of Triumph) +auto=@each my blockers restriction{type(creature[attacking]|myBattlefield)~morethan~1,type(creature[attacking;first strike]|myBattlefield)~morethan~0}:if type(creature[attacking;double strike]|myBattlefield)~morethan~0 then flip(Metzali, Tower of Triumph) +auto=@each my blockers restriction{type(creature[attacking;double strike]|myBattlefield)~morethan~1}:flip(Metzali, Tower of Triumph) +auto=@each my blockers restriction{type(creature[attacking]|myBattlefield)~morethan~1,type(creature[attacking;double strike]|myBattlefield)~morethan~0}:if type(creature[attacking;vigilance]|myBattlefield)~morethan~0 then flip(Metzali, Tower of Triumph) +auto=@each my blockers restriction{type(creature[attacking]|myBattlefield)~morethan~1,type(creature[attacking;double strike]|myBattlefield)~morethan~0}:if type(creature[attacking;haste]|myBattlefield)~morethan~0 then flip(Metzali, Tower of Triumph) +auto=@each my blockers restriction{type(creature[attacking]|myBattlefield)~morethan~1,type(creature[attacking;double strike]|myBattlefield)~morethan~0}:if type(creature[attacking;first strike]|myBattlefield)~morethan~0 then flip(Metzali, Tower of Triumph) +text=When Path of Mettle enters the battlefield, it deals 1 damage to each creature that doesn't have first strike, double strike, vigilance, or haste. -- Whenever you attack with at least two creatures that have first strike, double strike, vigilance, and/or haste, transform Path of Mettle. +mana={R}{W} +type=Legendary Enchantment +[/card] +[card] name=Pathmaker Initiate auto={T}:target(creature[power<=2]) unblockable ueot text={T}: Target creature with power 2 or less can't be blocked this turn. @@ -34338,7 +34486,7 @@ type=Artifact [card] name=Phyrexian Triniform auto=@movedTo(this|graveyard) from(battlefield):token(Golem,Creature Artifact Golem,3/3)*3 -autograveyard={12}:moveto(exile) and!(clone with(unearth,haste,mustattack))! asSorcery +autograveyard={12}:name(Activate Encore) name(Activate Encore) moveto(exile) and!(clone with(unearth,haste,mustattack))! asSorcery text=When Phyrexian Triniform dies, create three 3/3 colorless Golem artifact creature tokens. -- Encore {12} ({12}, Exile this card from your graveyard: For each opponent, create a token copy that attacks that opponent this turn if able. They gain haste. Sacrifice them at the beginning of the next end step. Activate only as a sorcery.) mana={9} type=Artifact Creature @@ -34757,7 +34905,7 @@ auto=@movedTo(mytgt|library) from(battlefield):all(this) moveTo(myLibrary) auto=@movedTo(mytgt|sideboard) from(battlefield):all(this) moveTo(mySideboard) auto={9999}:equip other={2}{R} name(Mutate) -auto=transforms((,newability[name(damage target) {T}:name(damage target) thisforeach(mutations) damage:1 target(creature;player;planeswalker)])) +auto=transforms((,newability[name(damage target) {T}:name(damage target) thisforeach(mutations) damage:1 target(player,creature,planeswalker)])) auto=if paid(alternative) then name(Mutate Over) this(mutations<1) name(Mutate Over) choice name(Mutate Over) mutateover target(other creature[-human]|mybattlefield) auto=if paid(alternative) then name(Mutate Over) this(mutations<1) name(Mutate Under) choice name(Mutate Under) mutateunder target(other creature[-human]|mybattlefield) text=Mutate {2}{R} (If you cast this spell for its mutate cost, put it over or under target non-Human creature you own. They mutate into the creature on top plus all abilities from under it.) -- {T}: This creature deals X damage to any target, where X is the number of times this creature has mutated. @@ -34930,7 +35078,7 @@ toughness=4 [/card] [card] name=Precision Bolt -target=player,creature +target=player,creature,planeswalker auto=damage:3 text=Precision Bolt deals 3 damage to any target. mana={2}{R} @@ -35227,6 +35375,14 @@ mana={X}{B}{B} type=Sorcery [/card] [card] +name=Profane Procession +auto={3}{W}{B}:target(creature) moveto(ownerexile) and!( transforms((,newability[counter(0/0.1.ProfaneExiled)])) forever )! +auto=aslongas(*[counter{0/0.1.ProfaneExiled}]|exile) flip(Tomb of the Dusk Rose) >2 +text={3}{W}{B}: Exile target creature. Then if there are three or more cards exiled with Profane Procession, transform it. +mana={1}{W}{B} +type=Legendary Enchantment +[/card] +[card] name=Profane Transfusion auto=exchangelife opponent auto=if compare(lifetotal)~morethan~compare(opponentlifetotal) then token(Horror,Creature Artifact Horror,lifetotalminusopponentlifetotalminusend/lifetotalminusopponentlifetotalminusend) else token(Horror,Creature Artifact Horror,opponentlifetotalminuslifetotalminusend/opponentlifetotalminuslifetotalminusend) @@ -35595,6 +35751,7 @@ toughness=1 [/card] [card] name=Pursue Glory +abilities=cycling auto=all(creature[attacking]) 2/0 autohand=__CYCLING__({2}) text=Attacking creatures get +2/+0 until end of turn. -- Cycling {2} ({2}, Discard this card: Draw a card.) @@ -35702,26 +35859,26 @@ toughness=1 [/card] [card] name=Pyromatics -auto=choice name(Don't replicate) ability$!name(Damage 1 target) name(Damage 1 target) target(*[creature;player;planeswalker]) damage:1!$ controller -auto=choice name(Replicate 1 time) ability$!name(Damage 2 targets) pay[[{1}{R}]] name(Damage 2 targets) target(<2>*[creature;player;planeswalker]) damage:1!$ controller -auto=choice name(Replicate 2 times) ability$!name(Damage 3 targets) pay[[{2}{R}{R}]] name(Damage 3 targets) target(<3>*[creature;player;planeswalker]) damage:1!$ controller -auto=choice name(Replicate 3 times) ability$!name(Damage 4 targets) pay[[{3}{R}{R}{R}]] name(Damage 4 targets)target(<4>*[creature;player;planeswalker]) damage:1!$ controller -auto=choice name(Replicate 4 times) ability$!name(Damage 5 targets) pay[[{4}{R}{R}{R}{R}]] name(Damage 5 targets) target(<5>*[creature;player;planeswalker]) damage:1!$ controller -auto=choice name(Replicate 5 times) ability$!name(Damage 6 targets) pay[[{5}{R}{R}{R}{R}{R}]] name(Damage 6 targets) target(<6>*[creature;player;planeswalker]) damage:1!$ controller -auto=choice name(Replicate 6 times) ability$!name(Damage 7 targets) pay[[{6}{R}{R}{R}{R}{R}{R}]] name(Damage 7 targets) target(<7>*[creature;player;planeswalker]) damage:1!$ controller -auto=choice name(Replicate 7 times) ability$!name(Damage 8 targets) pay[[{7}{R}{R}{R}{R}{R}{R}{R}]] name(Damage 8 targets) target(<8>*[creature;player;planeswalker]) damage:1!$ controller -auto=choice name(Replicate 8 times) ability$!name(Damage 9 targets) pay[[{8}{R}{R}{R}{R}{R}{R}{R}{R}]] name(Damage 9 targets) target(<9>*[creature;player;planeswalker]) damage:1!$ controller -auto=choice name(Replicate 9 times) ability$!name(Damage 10 targets) pay[[{9}{R}{R}{R}{R}{R}{R}{R}{R}{R}]] name(Damage 10 targets) target(<10>*[creature;player;planeswalker]) damage:1!$ controller -auto=choice name(Replicate 10 times) ability$!name(Damage 11 targets) pay[[{10}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}]] name(Damage 11 targets) target(<11>*[creature;player;planeswalker]) damage:1!$ controller -auto=choice name(Replicate 11 times) ability$!name(Damage 12 targets) pay[[{11}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}]] name(Damage 12 targets) target(<12>*[creature;player;planeswalker]) damage:1!$ controller -auto=choice name(Replicate 12 times) ability$!name(Damage 13 targets) pay[[{12}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}]] name(Damage 13 targets) target(<13>*[creature;player;planeswalker]) damage:1!$ controller -auto=choice name(Replicate 13 times) ability$!name(Damage 14 targets) pay[[{13}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}]] name(Damage 14 targets)target(<14>*[creature;player;planeswalker]) damage:1!$ controller -auto=choice name(Replicate 14 times) ability$!name(Damage 15 targets) pay[[{14}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}]] name(Damage 15 targets) target(<15>*[creature;player;planeswalker]) damage:1!$ controller -auto=choice name(Replicate 15 times) ability$!name(Damage 16 targets) pay[[{15}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}]] name(Damage 16 targets) target(<16>*[creature;player;planeswalker]) damage:1!$ controller -auto=choice name(Replicate 16 times) ability$!name(Damage 17 targets) pay[[{16}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}]] name(Damage 17 targets) target(<17>*[creature;player;planeswalker]) damage:1!$ controller -auto=choice name(Replicate 17 times) ability$!name(Damage 18 targets) pay[[{17}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}]] name(Damage 18 targets) target(<18>*[creature;player;planeswalker]) damage:1!$ controller -auto=choice name(Replicate 18 times) ability$!name(Damage 19 targets) pay[[{18}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}]] name(Damage 19 targets) target(<19>*[creature;player;planeswalker]) damage:1!$ controller -auto=choice name(Replicate 19 times) ability$!name(Damage 20 targets) pay[[{19}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}]] name(Damage 20 targets) target(<20>*[creature;player;planeswalker]) damage:1!$ controller +auto=choice name(Don't replicate) ability$!name(Damage 1 target) name(Damage 1 target) target(player,creature,planeswalker) damage:1!$ controller +auto=choice name(Replicate 1 time) ability$!name(Damage 2 targets) pay[[{1}{R}]] name(Damage 2 targets) target(<2>player,creature,planeswalker) damage:1!$ controller +auto=choice name(Replicate 2 times) ability$!name(Damage 3 targets) pay[[{2}{R}{R}]] name(Damage 3 targets) target(<3>player,creature,planeswalker) damage:1!$ controller +auto=choice name(Replicate 3 times) ability$!name(Damage 4 targets) pay[[{3}{R}{R}{R}]] name(Damage 4 targets) target(<4>player,creature,planeswalker) damage:1!$ controller +auto=choice name(Replicate 4 times) ability$!name(Damage 5 targets) pay[[{4}{R}{R}{R}{R}]] name(Damage 5 targets) target(<5>player,creature,planeswalker) damage:1!$ controller +auto=choice name(Replicate 5 times) ability$!name(Damage 6 targets) pay[[{5}{R}{R}{R}{R}{R}]] name(Damage 6 targets) target(<6>player,creature,planeswalker) damage:1!$ controller +auto=choice name(Replicate 6 times) ability$!name(Damage 7 targets) pay[[{6}{R}{R}{R}{R}{R}{R}]] name(Damage 7 targets) target(<7>player,creature,planeswalker) damage:1!$ controller +auto=choice name(Replicate 7 times) ability$!name(Damage 8 targets) pay[[{7}{R}{R}{R}{R}{R}{R}{R}]] name(Damage 8 targets) target(<8>player,creature,planeswalker) damage:1!$ controller +auto=choice name(Replicate 8 times) ability$!name(Damage 9 targets) pay[[{8}{R}{R}{R}{R}{R}{R}{R}{R}]] name(Damage 9 targets) target(<9>player,creature,planeswalker) damage:1!$ controller +auto=choice name(Replicate 9 times) ability$!name(Damage 10 targets) pay[[{9}{R}{R}{R}{R}{R}{R}{R}{R}{R}]] name(Damage 10 targets) target(<10>player,creature,planeswalker) damage:1!$ controller +auto=choice name(Replicate 10 times) ability$!name(Damage 11 targets) pay[[{10}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}]] name(Damage 11 targets) target(<11>player,creature,planeswalker) damage:1!$ controller +auto=choice name(Replicate 11 times) ability$!name(Damage 12 targets) pay[[{11}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}]] name(Damage 12 targets) target(<12>player,creature,planeswalker) damage:1!$ controller +auto=choice name(Replicate 12 times) ability$!name(Damage 13 targets) pay[[{12}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}]] name(Damage 13 targets) target(<13>player,creature,planeswalker) damage:1!$ controller +auto=choice name(Replicate 13 times) ability$!name(Damage 14 targets) pay[[{13}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}]] name(Damage 14 targets)target(<14>player,creature,planeswalker) damage:1!$ controller +auto=choice name(Replicate 14 times) ability$!name(Damage 15 targets) pay[[{14}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}]] name(Damage 15 targets) target(<15>player,creature,planeswalker) damage:1!$ controller +auto=choice name(Replicate 15 times) ability$!name(Damage 16 targets) pay[[{15}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}]] name(Damage 16 targets) target(<16>player,creature,planeswalker) damage:1!$ controller +auto=choice name(Replicate 16 times) ability$!name(Damage 17 targets) pay[[{16}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}]] name(Damage 17 targets) target(<17>player,creature,planeswalker) damage:1!$ controller +auto=choice name(Replicate 17 times) ability$!name(Damage 18 targets) pay[[{17}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}]] name(Damage 18 targets) target(<18>player,creature,planeswalker) damage:1!$ controller +auto=choice name(Replicate 18 times) ability$!name(Damage 19 targets) pay[[{18}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}]] name(Damage 19 targets) target(<19>player,creature,planeswalker) damage:1!$ controller +auto=choice name(Replicate 19 times) ability$!name(Damage 20 targets) pay[[{19}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}{R}]] name(Damage 20 targets) target(<20>player,creature,planeswalker) damage:1!$ controller text=Replicate {1}{R} (When you cast this spell, copy it for each time you paid its replicate cost. You may choose new targets for the copies.) -- Pyromatics deals 1 damage to any target. mana={1}{R} type=Instant @@ -35736,11 +35893,7 @@ type=Sorcery [/card] [card] name=Pyrotechnics -target=creature,player -auto=damage:1 -auto=damage:1 target(creature,player) -auto=ability$!name(1 damage to target creature or player) choice target(creature,player) damage:1!$ controller -auto=ability$!name(1 damage to target creature or player) choice target(creature,player) damage:1!$ controller +auto=thisforeach(variable{4}) ability$!name(1 damage to target creature or player) name(1 damage to target creature or player) choice target(creature,player) damage:1!$ controller text=Pyrotechnics deals 4 damage divided as you choose among any number of target creatures and/or players. mana={4}{R} type=Sorcery @@ -35985,6 +36138,15 @@ power=3 toughness=3 [/card] [card] +name=Radiant Destiny +auto=_ASCEND_ +auto=@movedTo(*|myBattlefield):_ASCEND_ +auto=activatechooseacolor transforms((,newability[lord(creature[chosencolor]|mybattlefield) 1/1],newability[_CITY'S_BLESSING_ lord(creature[chosencolor]|mybattlefield) vigilance])) forever activatechooseend +text=Ascend (If you control ten or more permanents, you get the city's blessing for the rest of the game.) -- As Radiant Destiny enters the battlefield, choose a creature type. -- Creatures you control of the chosen type get +1/+1. As long as you have the city's blessing, they also have vigilance. +mana={2}{W} +type=Enchantment +[/card] +[card] name=Radiant, Serra Archangel abilities=flying,partner auto={T(other creature[flying]|mybattlefield)}:protection from white ueot @@ -36080,7 +36242,7 @@ toughness=2 [/card] [card] name=Raging Regisaur -auto=@combat(attacking) source(this):damage:1 target(creature,player) +auto=@combat(attacking) source(this):damage:1 target(player,creature,planeswalker) text=Whenever Raging Regisaur attacks, it deals 1 damage to any target. mana={2}{R}{G} type=Creature @@ -36232,6 +36394,7 @@ toughness=6 [/card] [card] name=Raking Claws +abilities=cycling target=creature auto=double strike ueot autohand=__CYCLYNG__({2}) @@ -36242,7 +36405,7 @@ type=Instant [card] name=Rakshasa Debaser auto=@combat(attacking) source(this):moveTo(myBattlefield) target(creature|opponentgraveyard) -autograveyard={6}{B}{B}:moveto(exile) and!(clone with(unearth,haste,mustattack))! asSorcery +autograveyard={6}{B}{B}:name(Activate Encore) name(Activate Encore) moveto(exile) and!(clone with(unearth,haste,mustattack))! asSorcery text=Whenever Rakshasa Debaser attacks, put target creature card from defending player's graveyard onto the battlefield under your control. -- Encore {6}{B}{B} ({6}{B}{B}, Exile this card from your graveyard: For each opponent, create a token copy that attacks that opponent this turn if able. They gain haste. Sacrifice them at the beginning of the next end step. Activate only as a sorcery.) mana={4}{B}{B} type=Creature @@ -36260,7 +36423,7 @@ type=Instant [/card] [card] name=Ral's Outburst -target=player,creature +target=player,creature,planeswalker auto=damage:3 auto=name(look) reveal:2 optionone name(Get a card) target(<1>*|reveal) moveto(myhand) optiononeend optiontwo name(put in graveyard) target(<2>*|reveal) moveto(mygraveyard) optiontwoend revealend text=Ral's Outburst deals 3 damage to any target. Look at the top two cards of your library. Put one of them into your hand and the other into your graveyard. @@ -36389,7 +36552,7 @@ toughness=3 [/card] [card] name=Rampaging Hippo -abilities=trample +abilities=trample,cycling autohand=__CYCLING__({2}) text=Trample -- Cycling {2} ({2}, Discard this card: Draw a card.) mana={4}{G}{G} @@ -36557,6 +36720,7 @@ toughness=1 [/card] [card] name=Raugrin Crystal +abilities=cycling auto={T}:Add{U} auto={T}:Add{R} auto={T}:Add{W} @@ -36567,6 +36731,7 @@ type=Artifact [/card] [card] name=Raugrin Triome +abilities=cycling auto=tap(noevent) autohand=__CYCLING__({3}) text=({T}: Add {U}, {R}, or {W}.) -- Raugrin Triome enters the battlefield tapped. -- Cycling {3} ({3}, Discard this card: Draw a card.) @@ -36704,6 +36869,7 @@ toughness=1 [/card] [card] name=Razaketh's Rite +abilities=cycling auto=moveto(myhand) target(*|mylibrary) autohand=__CYCLING__({B}) text=Search your library for a card and put that card into your hand. Then shuffle your library. -- Cycling {B} ({B}, Discard this card: Draw a card.) @@ -36914,6 +37080,7 @@ type=Instant [/card] [card] name=Reconnaissance Mission +abilities=cycling auto=@combatdamagefoeof(player) from(creature|myBattlefield):may draw:1 controller autohand=__CYCLING__({2}) text=Whenever a creature you control deals combat damage to a player, you may draw a card. -- Cycling {2} ({2}, Discard this card: Draw a card.) @@ -37500,8 +37667,8 @@ type=Sorcery [/card] [card] name=Retributive Wand -auto={3}{T}:damage 1 target(creature,player) -auto=@movedto(this|graveyard) from(mybattlefield):damage 5 target(creature,player) +auto={3}{T}:damage 1 target(player,creature,planeswalker) +auto=@movedto(this|graveyard) from(mybattlefield):damage 5 target(player,creature,planeswalker) text={3}, {T}: Retributive Wand deals 1 damage to any target. -- When Retributive Wand is put into a graveyard from the battlefield, it deals 5 damage to any target. mana={3} type=Artifact @@ -38269,6 +38436,7 @@ toughness=3 [/card] [card] name=River Serpent +abilities=cycling auto=aslongas(type(*|mygraveyard)~lessthen~5) cantattack autohand=__CYCLING__({U}) text=River Serpent can't attack unless there are five or more cards in your graveyard. -- Cycling {U} ({U}, Discard this card: Draw a card.) @@ -38407,9 +38575,7 @@ toughness=3 [card] name=Rock Equipment auto={1}:equip -auto=teach(creature) {1}{T}{S(Rock Equipment|myBattlefield)}:name(Damage player) name(Damage player) damage:2 target(player) -auto=teach(creature) {1}{T}{S(Rock Equipment|myBattlefield)}:name(Damage creature) name(Damage creature) damage:2 target(creature) restriction{type(creature|battlefield)~morethan~0} -auto=teach(creature) {1}{T}{S(Rock Equipment|myBattlefield)}:name(Damage planeswalker) name(Damage planeswalker) damage:2 target(planeswalker) restriction{type(planeswalker|battlefield)~morethan~0} +auto=teach(creature) {1}{T}{S(Rock Equipment|myBattlefield)}:name(Damage any target) name(Damage any target) damage:2 target(player,creature,planeswalker) text=Equiped creature has "{1}, {T}, Sacrifice Rock: This creature deals 2 damage to any target" -- Equip {1}. type=Artifact subtype=Equipment @@ -38433,7 +38599,7 @@ type=Instant [/card] [card] name=Rockslide Sorcerer -auto=@movedTo(*[instant;sorcery;wizard]|myStack):ability$!name(Choose target) choice name(Damage to a creature) damage:1 target(creature) _ choice name(Damage to a player) damage:1 target(player) _ choice name(Damage to a planeswalker) damage:1 target(planeswalker)!$ controller +auto=@movedTo(*[instant;sorcery;wizard]|myStack):name(Delas 1 damage) name(Deals 1 damage) damage:1 target(player,creature,planeswalker) text=Whenever you cast an instant, sorcery, or Wizard spell, Rockslide Sorcerer deals 1 damage to any target. mana={3}{R} type=Creature @@ -38471,8 +38637,8 @@ toughness=2 [card] name=Roil Eruption kicker={5} -auto=if paid(kicker) then ability$!name(Choose target) choice name(Damage to a creature) damage:5 target(creature) _ choice name(Damage to a player) damage:5 target(player) _ choice name(Damage to a planeswalker) damage:5 target(planeswalker)!$ controller -auto=ifnot paid(kicker) then ability$!name(Choose target) choice name(Damage to a creature) damage:3 target(creature) _ choice name(Damage to a player) damage:3 target(player) _ choice name(Damage to a planeswalker) damage:3 target(planeswalker)!$ controller +auto=if paid(kicker) then name(Deals 5 damages) name(Deals 5 damages) damage:5 target(player,creature,planeswalker) +auto=ifnot paid(kicker) then name(Deals 3 damages) name(Deals 3 damages) damage:3 target(player,creature,planeswalker) text=Kicker {5} (You may pay an additional {5} as you cast this spell.) -- Roil Eruption deals 3 damage to any target. If this spell was kicked, it deals 5 damage instead. mana={1}{R} type=Sorcery @@ -38576,7 +38742,8 @@ type=Instant [/card] [card] name=Rooting Moloch -auto=moveTo(exile) target(*[__CYCLING__]|myGraveyard):all(trigger[to]) newability[canplayfromexile, uynt] uynt +abilities=cycling +auto=moveTo(exile) target(*[cycling]|myGraveyard) and!( transforms((newability[canplayfromexile])) uynt )! autohand=__CYCLING__({2}) text=When Rooting Moloch enters the battlefield, exile target card with a cycling ability from your graveyard. Until the end of your next turn, you may play that card. -- Cycling {2} ({2}, Discard this card: Draw a card.) mana={4}{R} @@ -38878,7 +39045,7 @@ toughness=1 [/card] [card] name=Ruination Rioter -auto=@movedTo(this|graveyard) from(battlefield):damage:type:land:mygraveyard target(creature,player) +auto=@movedTo(this|graveyard) from(battlefield):damage:type:land:mygraveyard target(player,creature,planeswalker) text=When Ruination Rioter dies, you may have it deal damage to any target equal to the number of land cards in your graveyard. mana={R}{G} type=Creature @@ -39106,7 +39273,7 @@ toughness=1 [/card] [card] name=Sacred Excavation -auto=moveTo(myhand) target(<2>*[__cycling__]|myGraveyard) +auto=moveTo(myhand) target(*[cycling]|myGraveyard) text=Return up to two target cards with cycling from your graveyard to your hand. mana={3}{U} type=Sorcery @@ -39418,7 +39585,7 @@ type=Enchantment [/card] [card] name=Sanctuary Smasher -abilities=first strike +abilities=first strike,cycling autohand=__CYCLING__({2}{R}) autohand=@cycled(this|myHand):transforms((,newability[counter(0/0,1,First Strike],newability[this(counter{0/0.1.First Strike}>=1) first strike target(creature|myBattlefield)])) text=First strike -- Cycling {2}{R} ({2}{R}, Discard this card: Draw a card.) -- When you cycle Sanctuary Smasher, put a first strike counter on target creature you control. @@ -39647,10 +39814,11 @@ type=Sorcery [/card] [card] name=Sarkhan's Unsealing -auto=@movedTo(creature[power=4]|mystack):damage:4 target(creature,player) -auto=@movedTo(creature[power=5]|mystack):damage:4 target(creature,player) -auto=@movedTo(creature[power=6]|mystack):damage:4 target(creature,player) -auto=@movedTo(creature[power>=7]|mystack):damage:4 all(creature,planeswalker|opponentBattlefield) +auto=@movedTo(creature[power=4]|mystack):damage:4 target(player,creature,planeswalker) +auto=@movedTo(creature[power=5]|mystack):damage:4 target(player,creature,planeswalker) +auto=@movedTo(creature[power=6]|mystack):damage:4 target(player,creature,planeswalker) +auto=@movedTo(creature[power>=7]|mystack):damage:4 all(creature|opponentBattlefield) +auto=@movedTo(creature[power>=7]|mystack):damage:4 all(planeswalker|opponentBattlefield) auto=@movedTo(creature[power>=7]|mystack):damage:4 opponent text=Whenever you cast a creature spell with power 4, 5, or 6, Sarkhan's Unsealing deals 4 damage to any target. -- Whenever you cast a creature spell with power 7 or greater, Sarkhan's Unsealing deals 4 damage to each opponent and each creature and planeswalker they control. mana={3}{R} @@ -39659,8 +39827,8 @@ type=Enchantment [card] name=Sarkhan's Whelp abilities=flying -auto=@counterremoved(0/0,1,Loyalty) from(planeswalker[sarkhan]|myBattlefield) restriction{myturnonly}:ability$!name(Choose one) choice name(Damage player) damage:1 target(player) _ choice name(Damage creature) damage:1 target(creature) _ choice name(Damage planeswalker) damage:1 target(planeswalker)!$ controller -auto=@counteradded(0/0,1,Loyalty) from(planeswalker[sarkhan]|myBattlefield) restriction{myturnonly}:ability$!name(Choose one) choice name(Damage player) damage:1 target(player) _ choice name(Damage creature) damage:1 target(creature) _ choice name(Damage planeswalker) damage:1 target(planeswalker)!$ controller +auto=@counterremoved(0/0,1,Loyalty) from(planeswalker[sarkhan]|myBattlefield) restriction{myturnonly}:name(Deals 1 damage) name(Deals 1 damage) damage:1 target(player,creature,planeswalker) +auto=@counteradded(0/0,1,Loyalty) from(planeswalker[sarkhan]|myBattlefield) restriction{myturnonly}:name(Deals 1 damage) name(Deals 1 damage) damage:1 target(player,creature,planeswalker) text=Flying (This creature can't be blocked except by creatures with flying or reach.) -- Whenever you activate an ability of a Sarkhan planeswalker, Sarkhan's Whelp deals 1 damage to any target. mana={2}{R} type=Creature @@ -39821,6 +39989,7 @@ toughness=4 [/card] [card] name=Savai Crystal +abilities=cycling auto={T}:Add{R} auto={T}:Add{W} auto={T}:Add{B} @@ -39849,6 +40018,7 @@ toughness=2 [/card] [card] name=Savai Triome +abilities=cycling auto=tap(noevent) autohand=__CYCLING__({3}) text=({T}: Add {R}, {W}, or {B}.) -- Savai Triome enters the battlefield tapped. -- Cycling {3} ({3}, Discard this card: Draw a card.) @@ -39991,6 +40161,7 @@ type=Sorcery [/card] [card] name=Scarab Feast +abilities=cycling auto=choice name(My Graveyard) moveto(exile) target(*|mygraveyard) auto=choice name(Opponent Graveyard)moveto(exile) target(creature|opponentgraveyard) autohand=__CYCLING__({B}) @@ -40011,6 +40182,7 @@ toughness=4 [/card] [card] name=Scattered Groves +abilities=cycling auto=tap autohand=__CYCLING__({2}) text=({T}: Add {G} or {W} to your mana pool.) -- Scattered Groves enters the battlefield tapped. -- Cycling {2} ({2}, Discard this card: Draw a card.) @@ -40065,7 +40237,7 @@ type=Instant [/card] [card] name=Scent of Cinder -auto={T}:target([red]|myhand) transforms((,newability[foreach(*[red]|reveal) damage:1 target(creature,player,planeswalker)])) +auto={T}:name(Damage any target) name(Damage any target) damage:type:*[red]:myhand target(player,creature,planeswalker) text=Reveal any number of red cards in your hand. Scent of Cinder deals X damage to any target, where X is the number of cards revealed this way. mana={1}{R} type=Sorcery @@ -40122,7 +40294,7 @@ toughness=2 [/card] [card] name=Scholar of the Ages -auto=moveto(myhand) target( *[instant,sorcery]|mygraveyard) +auto=moveto(myhand) target(*[instant,sorcery]|mygraveyard) text=When Scholar of the Ages enters the battlefield, return up to two target instant and/or sorcery cards from your graveyard to your hand. mana={5}{U}{U} type=Creature @@ -40133,7 +40305,7 @@ toughness=3 [card] name=Scholar of the Lost Trove abilities=flying -auto=may name(cast card) castcard(normal) target(*[instant;sorcery;artifact]|mygraveyard) and!(transforms((,newability[exiledeath])) forever)! +auto=may name(cast card) activate castcard(normal) target(*[instant;sorcery;artifact]|mygraveyard) and!(transforms((,newability[gainedexiledeath])) forever)! text=Flying -- When Scholar of the Lost Trove enters the battlefield, you may cast target instant, sorcery, or artifact card from your graveyard without paying its mana cost. If an instant or sorcery spell cast this way would be put into your graveyard this turn, exile it instead. mana={5}{U}{U} type=Creature @@ -40224,7 +40396,7 @@ type=Sorcery name=Scorching Dragonfire target=creature,planeswalker auto=damage:3 -auto=exiledeath +auto=transforms((,newability[exiledeath])) ueot text=Scorching Dragonfire deals 3 damage to target creature or planeswalker. If that creature or planeswalker would die this turn, exile it instead. mana={1}{R} type=Instant @@ -40886,7 +41058,7 @@ toughness=3 [/card] [card] name=Sentinel Tower -auto=@movedTo(*[instant;sorcery]|stack) restriction{myturnonly}:name(Damage any target) name(Damage any target) ability$!name(Choose one) choice name(Damage player) damage:type:*[sorcery;instant;fresh]:graveyardplus1plusend target(player) _ choice name(Damage creature) damage:type:*[sorcery;instant;fresh]:graveyardplus1plusend target(creature) _ choice name(Damage planeswalker) damage:type:*[sorcery;instant;fresh]:graveyardplus1plusend target(planeswalker)!$ controller +auto=@movedTo(*[instant;sorcery]|stack) restriction{myturnonly}:name(Damage any target) name(Damage any target) damage:type:*[sorcery;instant;fresh]:graveyardplus1plusend target(player,creature,planeswalker) text=Whenever an instant or sorcery spell is cast during your turn, Sentinel Tower deals damage to any target equal to 1 plus the number of instant and sorcery spells cast before that spell this turn. mana={4} type=Artifact @@ -41398,6 +41570,7 @@ type=Instant [/card] [card] name=Shark Typhoon +abilities=cycling auto=@movedto(*[-creature]|mystack):all(trigger[to]) transforms((,newability[create(Shark:Creature Shark:manacost/manacost:blue:flying)])) oneshot autohand=__CYCLING__({X}{1}{U}) autohand=@cycled(this|hand):create(Shark:Creature Shark:X/X:blue:flying) @@ -41532,6 +41705,7 @@ subtype=Desert [/card] [card] name=Shefet Monitor +abilities=cycling autohand=@movedto(mygraveyard) from(myhand):may moveto(mybattlefield) target(desert|mylibrary) autohand=__CYCLING__({3}{G}) text=Cycling {3}{G} ({3}{G}, Discard this card: Draw a card.) -- When you cycle Shefet Monitor, you may search your library for a basic land card or a Desert card, put it onto the battlefield, then shuffle your library. (Do this before you draw.) @@ -41553,6 +41727,7 @@ type=Instant [/card] [card] name=Sheltered Thicket +abilities=cycling auto=tap autohand=__CYCLING__({2}) text=({T}: Add {R} or {G} to your mana pool.) -- Sheltered Thicket enters the battlefield tapped. -- Cycling {2} ({2}, Discard this card: Draw a card.) @@ -41716,7 +41891,7 @@ type=Sorcery [/card] [card] name=Shimmerscale Drake -abilities=flying +abilities=flying,cycling autohand=__CYCLING__({2}) text=Flying -- Cycling {2} ({2}, Discard this card: Draw a card.) mana={4}{U} @@ -41885,6 +42060,7 @@ subtype=Equipment [/card] [card] name=Shredded Sails +abilities=cycling auto=choice name(Destroy artifact):destroy target(artifact) auto=choice name(Damage flying creature):damage:4 target(creature[flying]) autohand=__CYCLING__({2}) @@ -42491,8 +42667,8 @@ subtype=Arcane [/card] [card] name=Sins of the Past -auto=moveto(myexile) all(this) -auto=may name(cast card) castcard(normal) target(*[instant;sorcery]|mygraveyard) and!(transforms((,newability[exiledeath])) forever)! +abilities=exiledeath +auto=may name(cast card) activate castcard(normal) target(*[instant;sorcery]|mygraveyard) and!(transforms((,newability[gainedexiledeath])) forever)! text=Until end of turn, you may cast target instant or sorcery card from your graveyard without paying its mana cost. If that card would be put into your graveyard this turn, exile it instead. Exile Sins of the Past. mana={4}{B}{B} type=Sorcery @@ -42659,7 +42835,7 @@ type=Instant [/card] [card] name=Skeleton Archer -auto=damage:1 target(creature,player) +auto=damage:1 target(player,creature,planeswalker) text=When Skeleton Archer enters the battlefield, it deals 1 damage to any target. mana={3}{B} type=Creature @@ -42699,7 +42875,7 @@ toughness=0 [/card] [card] name=Skewer the Critics -target=player,creature +target=player,creature,planeswalker auto=damage:3 text=Spectacle {R} (You may cast this spell for its spectacle cost rather than its mana cost if an opponent lost life this turn.) -- Skewer the Critics deals 3 damage to any target. other={R} name(Spectacle) @@ -43194,8 +43370,8 @@ toughness=2 name=Slaying Fire target=creature,player,planeswalker other={R}{R}{R} name(Adamant) -auto=if paid(alternative) then damage:4 -auto=ifnot paid(alternative) then damage:3 +auto=if paid(alternative) then name(Deals 4 damages) name(Deals 4 damages) damage:4 target(player,creature,planeswalker) +auto=ifnot paid(alternative) then name(Deals 3 damages) name(Deals 3 damages) damage:3 target(player,creature,planeswalker) text=Slaying Fire deals 3 damage to any target. -- Adamant If at least three red mana was spent to cast this spell, it deals 4 damage instead. mana={2}{R} type=Instant @@ -43272,6 +43448,18 @@ power=8 toughness=8 [/card] [card] +name=Slippery Scoundrel +auto=_ASCEND_ +auto=@movedTo(*|myBattlefield):_ASCEND_ +auto=_CITY'S_BLESSING_ transforms((,newability[cantattack],newability[opponentshroud])) +text=Ascend (If you control ten or more permanents, you get the city's blessing for the rest of the game.) -- As long as you have the city's blessing, Slippery Scoundrel has hexproof and can't be blocked. +mana={2}{U} +type=Creature +subtype=Human Pirate +power=2 +toughness=2 +[/card] +[card] name=Slither Blade abilities=unblockable text=Slither Blade can't be blocked. @@ -43361,7 +43549,7 @@ toughness=3 [/card] [card] name=Smiting Helix -auto=damage:3 target(player,creature) +auto=damage:3 target(player,creature,planeswalker) auto=life:3 controller flashback={R}{W} text=Smiting Helix deals 3 damage to any target and you gain 3 life. -- Flashback {R}{W} (You may cast this card from your graveyard for its flashback cost. Then exile it.) @@ -43966,7 +44154,7 @@ type=Sorcery [card] name=Soul of Eternity anyzone=lifetotal/lifetotal cdaactive -autograveyard={7}{W}{W}:moveto(exile) and!(clone with(unearth,haste,mustattack))! asSorcery +autograveyard={7}{W}{W}:name(Activate Encore) name(Activate Encore) moveto(exile) and!(clone with(unearth,haste,mustattack))! asSorcery text=Soul of Eternity's power and toughness are each equal to your life total. -- Encore {7}{W}{W} ({7}{W}{W}, Exile this card from your graveyard: For each opponent, create a token copy that attacks that opponent this turn if able. They gain haste. Sacrifice them at the beginning of the next end step. Activate only as a sorcery.) mana={5}{W}{W} type=Creature @@ -44259,7 +44447,7 @@ toughness=4 [card] name=Sparktongue Dragon abilities=flying -auto=may pay({2}{r}):damage:3 target(creature,player) +auto=may pay({2}{r}):damage:3 target(player,creature,planeswalker) text=Flying -- When Sparktongue Dragon enters the battlefield, you may pay {2}{R}. When you do, it deals 3 damage to any target. mana={3}{R}{R} type=Creature @@ -44440,8 +44628,8 @@ toughness=4 [/card] [card] name=Spellpyre Phoenix -abilities=flying -auto=moveTo(myHand) target(*[instant;sorcery{_cycling_}|myGraveyard) +abilities=flying,cycling +auto=moveTo(myHand) target(*[instant;sorcery;cycling]|myGraveyard) autograveyard=if type(@cycled(*|myHand)~morethan~2 then moveTo(myhand) target(Spellpyre Phoenix|myGraveyard)) text=Flying -- When Spellpyre Phoenix enters the battlefield, you may return target instant or sorcery card with a cycling ability from your graveyard to your hand. -- At the beginning of each end step, if you cycled two or more cards this turn, return Spellpyre Phoenix from your graveyard to your hand. mana={3}{R}{R} @@ -44887,7 +45075,7 @@ type=Instant [/card] [card] name=Splendor Mare -abilities=lifelink +abilities=lifelink,cycling autohand=__CYCLING__({1}{W}) autohand=@cycled(this|myHand):transforms((,newability[counter(0/0,1,Lifelink],newability[this(counter{0/0.1.Lifelink}>=1) lifelink target(creature|myBattlefield)])) text=Lifelink -- Cycling {1}{W} ({1}{W}, Discard this card: Draw a card.) -- When you cycle Splendor Mare, put a lifelink counter on target creature you control. @@ -45118,7 +45306,7 @@ type=Land [card] name=Springjaw Trap abilities=flash -auto={4}{T}{S}:damage:3 target(creature,planeswalker,player) +auto={4}{T}{S}:damage:3 target(player,creature,planeswalker) text=Flash -- {4}, {T}, Sacrifice Springjaw Trap: It deals 3 damage to any target. mana={1} type=Artifact @@ -45380,6 +45568,7 @@ type=Instant [/card] [card] name=Startling Development +abilities=cycling target=creature auto=ueot transforms((removetypes)) auto=ueot transforms((blue)) @@ -45627,6 +45816,7 @@ toughness=2 [/card] [card] name=Stinging Shot +abilities=cycling target=creature[flying] auto=counter(-1/-1,3) autohand=__CYCLING__({2}) @@ -45636,6 +45826,7 @@ type=Instant [/card] [card] name=Stir the Sands +abilities=cycling auto=token(Zombie,creature Zombie,2/2,black)*3 autohand=@cycled(this|hand):token(Zombie,creature Zombie,2/2,black) autohand=__CYCLING__({3}{B}) @@ -45836,7 +46027,7 @@ toughness=2 [card] name=Storm Herald abilities=haste -auto=castcard(normal) target(aura|myGraveyard) and!(transforms((,newability[treason],newability[exiledeath])) forever)! +auto=activate castcard(normal) target(aura|myGraveyard) and!(transforms((,newability[treason],newability[exiledeath])) forever)! text=Haste -- When Storm Herald enters the battlefield, return any number of Aura cards from your graveyard to the battlefield attached to creatures you control. Exile those Auras at the beginning of your next end step. If those Auras would leave the battlefield, exile them instead of putting them anywhere else. mana={2}{R} type=Creature @@ -45845,6 +46036,14 @@ power=3 toughness=2 [/card] [card] +name=Storm the Vault +auto=@each combatdamage restriction{opponentdamagedbycombat}:token(Treasure Sur) +auto=@each my upkeep restriction{type(artifact|myBattlefield)~morethan~4}:flip(Vault of Catlacan) +text=Whenever one or more creatures you control deal combat damage to a player, create a Treasure token. (It's an artifact with " {T}, Sacrifice this artifact: Add one mana of any color.") -- At the beginning of your end step, if you control five or more artifacts, transform Storm the Vault. +mana={2}{U}{R} +type=Legendary Enchantment +[/card] +[card] name=Storm Sculptor abilities=unblockable auto=moveto(myhand) target(creature|mybattlefield) @@ -46062,7 +46261,7 @@ type=Instant [/card] [card] name=Striped Riverwinder -abilities=opponentshroud +abilities=opponentshroud,cycling autohand=__CYCLING__({U}) text=Hexproof (This creature can't be the target of spells or abilities your opponents control.) -- Cycling {U} ({U}, Discard this card: Draw a card.) mana={6}{U} @@ -46217,6 +46416,7 @@ type=Instant [/card] [card] name=Suffocating Fumes +abilities=cycling auto=all(creature|opponentBattlefield) -1/-1 ueot autohand=__CYCLING__({2}) text=Creatures your opponents control get -1/-1 until end of turn. / Cycling {2} ({2}, Discard this card: Draw a card.) @@ -46738,6 +46938,7 @@ toughness=3 [/card] [card] name=Sweltering Suns +abilities=cycling auto=damage:3 all(creature) autohand=__CYCLING__({3}) text=Sweltering Suns deals 3 damage to each creature. -- Cycling {3} ({3}, Discard this card: Draw a card.) @@ -47021,7 +47222,7 @@ toughness=4 [/card] [card] name=Syr Carah, the Bold -auto={T}:damage:1 target(creature,player) +auto={T}:damage:1 target(player,creature,planeswalker) auto=@damageof(player) from(this):moveto(exile) and!( transforms((,canplayfromexile)) ueot )! all(*[zpos=1]|mylibrary) controller auto=@damagefoeof(player) from(this):moveto(exile) and!( transforms((,canplayfromexile)) ueot )! all(*[zpos=1]|mylibrary) controller text=Whenever Syr Carah, the Bold or an instant or sorcery spell you control deals damage to a player, exile the top card of your library. You may play that card this turn. -- {T}: Syr Carah deals 1 damage to any target. @@ -47586,6 +47787,7 @@ toughness=5 [/card] [card] name=Tectonic Reformation +abilities=cycling auto=lord(land|myhand) transform((newability[__CYLCLING__({R})])) autohand=__CYCLING__({2}) text=Each land card in your hand has cycling {R}. -- Cycling {2} ({2}, Discard this card: Draw a card.) @@ -47909,7 +48111,7 @@ toughness=5 name=Terror of the Peaks abilities=flying auto=@targeted(this) from(*|opponentzones):life:-3 opponent -auto=@movedTo(creature|mybattlefield):all(trigger[to]) transforms((,newability[choice name(Don't damage) donothing],newability[choice name(damage creature) target(creature) dynamicability oneshot],newability[choice name(damage player) target(player) dynamicability oneshot],newability[choice name(damage planeswalker) target(planeswalker) dynamicability])) oneshot +auto=@movedTo(creature|mybattlefield):all(trigger[to]) transforms((,newability[name(Deals damages to any target) name(Deals damages to any target) target(player,creature,planeswalker) dynamicability])) oneshot text=Flying -- Spells your opponents cast that target Terror of the Peaks cost an additional 3 life to cast. -- Whenever another creature enters the battlefield under your control, Terror of the Peaks deals damage equal to that creature's power to any target. mana={3}{R}{R} type=Creature @@ -48882,96 +49084,7 @@ type=Land [card] name=Thrull Parasite auto=@movedto(*|mystack):pay({WB}) life:-1 opponent && life:1 controller -auto={T}{L:2}:name(Remove 1/1 counter) counter(1/1,-1) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Loyalty counter) counter(0/0,-1,Loyalty) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Flying counter) counter(0/0,-1,Flying) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Trample counter) counter(0/0,-1,Trample) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove First Strike counter) counter(0/0,-1,First Strike) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Vigilance counter) counter(0/0,-1,Vigilance) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Deathtouch counter) counter(0/0,-1,Deathtouch) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Lifelink counter) counter(0/0,-1,Lifelink) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Flash counter) counter(0/0,-1,Flash) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Hexproof counter) counter(0/0,-1,Hexproof) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Double Strike counter) counter(0/0,-1,Double Strike) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Charge counter) counter(0/0,-1,Charge) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Verse counter) counter(0/0,-1,Verse) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Gold counter) counter(0/0,-1,Gold) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Storage counter) counter(0/0,-1,Storage) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Slumber counter) counter(0/0,-1,Slumber) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Time counter) counter(0/0,-1,Time) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Coin counter) counter(0/0,-1,Coin) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Reach counter) counter(0/0,-1,Reach) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Flood counter) counter(0/0,-1,Flood) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Menace counter) counter(0/0,-1,Menace) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Lore counter) counter(0/0,-1,Lore) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Fury counter) counter(0/0,-1,Fury) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Bounty counter) counter(0/0,-1,Bounty) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Egg counter) counter(0/0,-1,Egg) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Level counter) counter(0/0,-1,Level) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Doom counter) counter(0/0,-1,Doom) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Eyeball counter) counter(0/0,-1,Eyeball) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Brick counter) counter(0/0,-1,Brick) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Magnet counter) counter(0/0,-1,Magnet) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Hour counter) counter(0/0,-1,Hour) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Foreshadow counter) counter(0/0,-1,Foreshadow) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Redmana counter) counter(0/0,-1,Redmana) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Growth counter) counter(0/0,-1,Growth) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Knowledge counter) counter(0/0,-1,Knowledge) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Landmark counter) counter(0/0,-1,Landmark) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Wish counter) counter(0/0,-1,Wish) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Ki counter) counter(0/0,-1,Ki) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Filibuster counter) counter(0/0,-1,Filibuster) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Page counter) counter(0/0,-1,Page) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Muster counter) counter(0/0,-1,Muster) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Quest counter) counter(0/0,-1,Quest) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Devotion counter) counter(0/0,-1,Devotion) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Blood counter) counter(0/0,-1,Blood) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Death counter) counter(0/0,-1,Death) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Age counter) counter(0/0,-1,Age) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Fuse counter) counter(0/0,-1,Fuse) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Unity counter) counter(0/0,-1,Unity) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Strife counter) counter(0/0,-1,Strife) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Ice counter) counter(0/0,-1,Ice) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Payment counter) counter(0/0,-1,Payment) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Spore counter) counter(0/0,-1,Spore) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Infection counter) counter(0/0,-1,Infection) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Paralyzation counter) counter(0/0,-1,Paralyzation) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Essence counter) counter(0/0,-1,Essence) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Blaze counter) counter(0/0,-1,Blaze) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Wind counter) counter(0/0,-1,Wind) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Healing counter) counter(0/0,-1,Healing) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Study counter) counter(0/0,-1,Study) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Bribe counter) counter(0/0,-1,Bribe) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Tide counter) counter(0/0,-1,Tide) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Pressure counter) counter(0/0,-1,Pressure) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Depletion counter) counter(0/0,-1,Depletion) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Hoofprint counter) counter(0/0,-1,Hoofprint) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Credit counter) counter(0/0,-1,Credit) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Javelin counter) counter(0/0,-1,Javelin) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Feather counter) counter(0/0,-1,Feather) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Treasure counter) counter(0/0,-1,Treasure) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Matrix counter) counter(0/0,-1,Matrix) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Vitality counter) counter(0/0,-1,Vitality) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Petal counter) counter(0/0,-1,Petal) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Eon counter) counter(0/0,-1,Eon) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Winch counter) counter(0/0,-1,Winch) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Mine counter) counter(0/0,-1,Mine) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Divinity counter) counter(0/0,-1,Divinity) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Theft counter) counter(0/0,-1,Theft) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Fate counter) counter(0/0,-1,Fate) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Shield counter) counter(0/0,-1,Shield) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Plague counter) counter(0/0,-1,Plague) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Isolation counter) counter(0/0,-1,Isolation) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Shell counter) counter(0/0,-1,Shell) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Wage counter) counter(0/0,-1,Wage) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Corpse counter) counter(0/0,-1,Corpse) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Hourglass counter) counter(0/0,-1,Hourglass) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Velocity counter) counter(0/0,-1,Velocity) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Pain counter) counter(0/0,-1,Pain) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Currency counter) counter(0/0,-1,Currency) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Trap counter) counter(0/0,-1,Trap) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Hatchling counter) counter(0/0,-1,Hatchling) target(*[-land]|battlefield) -auto={T}{L:2}:name(Remove Pin counter) counter(0/0,-1,Pin) target(*[-land]|battlefield) +auto={T}{L:2}:name(Remove a counter) name(Remove a counter) removesinglecountertype(1) target(*[-land;counter{any}]|myBattlefield) text=Extort (Whenever you cast a spell, you may pay {WB}. If you do, each opponent loses 1 life and you gain that much life.) -- {T}, Pay 2 life: Remove a counter from target nonland permanent. mana={B} type=Creature @@ -48993,7 +49106,7 @@ toughness=5 [/card] [card] name=Thud -target=player,creature +target=player,creature,planeswalker auto=damage:storedpower text=As an additional cost to cast this spell, sacrifice a creature. -- Thud deals damage equal to the sacrificed creature's power to any target. mana={R}{S(creature|mybattlefield)} @@ -49084,7 +49197,7 @@ toughness=3 [card] name=Thundering Djinn abilities=flying -auto=thisforeach(variable{pdrewcount}>0) damage:1 target(player,creature) +auto=@combat(attacking) source(this):damage:pdrewcount target(player,creature,planeswalker) text=Flying -- Whenever Thundering Djinn attacks, it deals damage to any target equal to the number of cards you've drawn this turn. mana={3}{U}{R} type=Creature @@ -49191,7 +49304,7 @@ toughness=3 [/card] [card] name=Tibalt's Rager -auto=_DIES_damage:1 target(creature,player) +auto=_DIES_damage:1 target(player,creature,planeswalker) auto={1}{R}:2/0 ueot text=When Tibalt's Rager dies, it deals 1 damage to any target. -- {1}{R}: Tibalt's Rager gets +2/+0 until end of turn. mana={1}{R} @@ -49456,7 +49569,7 @@ toughness=6 [/card] [card] name=Titanoth Rex -abilities=trample +abilities=trample,cycling autohand=__CYCLING__({1}{G}) autohand=@cycled(this|myHand):transforms((,newability[counter(0/0,1,Trample],newability[this(counter{0/0.1.Trample}>=1) trample target(creature|myBattlefield)]))) text=Trample -- Cycling {1}{G} ({1}{G}, Discard this card: Draw a card.) -- When you cycle Titanoth Rex, put a trample counter on target creature you control. @@ -49584,6 +49697,18 @@ power=3 toughness=3 [/card] [card] +name=Tomb of the Dusk Rose +auto={T}:add{W} +auto={T}:add{G} +auto={T}:add{U} +auto={T}:add{B} +auto={T}:add{R} +auto={2}{W}{B}{T}:name(Return a creature from exile) name(Return a creature from exile) target(creature[counter{0/0.1.ProfaneExiled}]|exile) moveto(mybattlefield) +text=(Transforms from Profane Procession.) -- {T}: Add one mana of any color. -- {2}{W}{B}, {T}: Put a creature card exiled with this permanent onto the battlefield under your control. +mana={1}{W}{B} +type=Legendary Land +[/card] +[card] name=Tombfire target=player auto=ability$!name(Exile flashback cards) all(*[flashback]|mygraveyard) moveto(myexile)!$ targetedplayer @@ -50259,7 +50384,7 @@ toughness=4 [card] name=Trove Tracker auto=@movedTo(this|graveyard) from(battlefield):draw:1 controller -autograveyard={5}{U}{U}:moveto(exile) and!(clone with(unearth,haste,mustattack))! asSorcery +autograveyard={5}{U}{U}:name(Activate Encore) name(Activate Encore) moveto(exile) and!(clone with(unearth,haste,mustattack))! asSorcery text=When Trove Tracker dies, draw a card. -- Encore {5}{U}{U} ({5}{U}{U}, Exile this card from your graveyard: For each opponent, create a token copy that attacks that opponent this turn if able. They gain haste. Sacrifice them at the beginning of the next end step. Activate only as a sorcery.) mana={2}{U} type=Creature @@ -51092,8 +51217,10 @@ toughness=3 [/card] [card] name=Underworld Fires -auto=all(creature[-protection from red],planeswalker) exiledeath -auto=damage:1 all(creature,planeswalker) +auto=all(creature) exiledeath ueot +auto=all(planeswalker) exiledeath ueot +auto=all(creature) damage:1 +auto=all(planeswalker) damage:1 text=Underworld Fires deals 1 damage to each creature and each planeswalker. If a permanent dealt damage this way would die this turn, exile it instead. mana={1}{R} type=Sorcery @@ -51625,7 +51752,8 @@ toughness=4 [/card] [card] name=Valiant Rescuer -auto=@cycled(*|myHand) restriction{thisturn(*[__Cycling__]|myHand)~equalto~0}:token(Human Soldier Val) +abilities=cycling +auto=@cycled(*|myHand) restriction{thisturn(*[cycling]|myHand)~equalto~0}:token(Human Soldier Val) autohand=__CYCLING__({2}) text=Whenever you cycle another card for the first time each turn, create a 1/1 white Human Soldier creature token. -- Cycling {2} ({2}, Discard this card: Draw a card.) mana={1}{W} @@ -51847,6 +51975,17 @@ text=Vastwood Thicket enters the battlefield tapped. -- {T}: Add {G}. type=Land [/card] [card] +name=Vault of Catlacan +auto={T}:add{W} +auto={T}:add{R} +auto={T}:add{G} +auto={T}:add{B} +auto={T}:add{U} +auto={T}:name(Add blue mana for each artifact) name(Add blue mana for each artifact) foreach(artifact|mybattlefield) add{U} +text=(Transforms from Storm the Vault.) -- {T}: Add one mana of any color. -- {T}: Add {U} for each artifact you control. +type=Legendary Land +[/card] +[card] name=Vault of Champions auto=tap(noevent) auto={T}:add{W} @@ -51971,7 +52110,7 @@ toughness=4 [card] name=Vengeful Devil abilities=haste -auto={T}:damage:1 target(creature,player) restriction{morbid} +auto={T}:damage:1 target(player,creature,planeswalker) restriction{morbid} text=Haste -- Morbid {T}: Vengeful Devil deals 1 damage to any target. Activate this ability only if a creature died this turn. mana={1}{R} type=Creature @@ -52531,6 +52670,7 @@ type=Instant [/card] [card] name=Violent Impact +abilities=cycling target=artifact,land auto=destroy autohand=__CYCLING__({2}) @@ -52620,9 +52760,9 @@ toughness=1 [/card] [card] name=Vivid Revival -target=target(creature[multicolor]|mygraveyard) +abilities=exiledeath +target=*[multicolor]|mygraveyard auto=moveto(myhand) -auto=exiledeath text=Return up to three target multicolored cards from your graveyard to your hand. Exile Vivid Revival. mana={4}{G} type=Sorcery @@ -52707,6 +52847,7 @@ toughness=1 [/card] [card] name=Vizier of Tumbling Sands +abilities=cycling auto={T}:untap target(other *|mybattlefield) autohand=__CYCLING__({1}{U}) text={T}: Untap another target permanent. -- Cycling {1}{U} ({1}{U}, Discard this card: Draw a card.) -- When you cycle Vizier of Tumbling Sands, untap target permanent. @@ -52782,7 +52923,7 @@ toughness=3 [/card] [card] name=Void Beckoner -abilities=deathtouch +abilities=deathtouch,cycling autohand=__CYCLING__({2}{B}) autohand=@cycled(this|myHand):transforms((,newability[counter(0/0,1,Deathtouch)],newability[this(counter{0/0.1.Deathtouch}>=1) deathtouch])) target(creature|myBattlefield)] text=Deathtouch -- Cycling {2}{B} ({2}{B}, Discard this card: Draw a card.) -- When you cycle Void Beckoner, put a deathtouch counter on target creature you control. @@ -52919,6 +53060,15 @@ power=4 toughness=4 [/card] [card] +name=Vona's Hunger +auto=_ASCEND_ +auto=if type(*[city's_blessing]|mybattlefield)~morethan~0 then ability$!name(sacrifice half creatures) notatarget(creature|myBattlefield) sacrifice!$ opponent +auto=if type(*[city's_blessing]|mybattlefield)~equalto~0 then ability$!name(sacrifice a creature) notatarget(creature|myBattlefield) sacrifice!$ opponent +text=Ascend (If you control ten or more permanents, you get the city's blessing for the rest of the game.) -- Each opponent sacrifices a creature. If you have the city's blessing, instead each opponent sacrifices half the creatures they control, rounded up. +mana={2}{B} +type=Instant +[/card] +[card] name=Voracious Greatshark abilities=flash auto=fizzle target(*[artifact,creature]|stak) @@ -53200,6 +53350,7 @@ type=Artifact [/card] [card] name=Wander in Death +abilities=cycling target=creature|mygraveyard auto=moveto(myhand) autohand=__CYCLING__({2}) @@ -53454,7 +53605,7 @@ toughness=1 [/card] [card] name=Wasteland Scorpion -abilities=deathtouch +abilities=deathtouch,cycling autohand=__CYCLING__({2}) text=Deathtouch -- Cycling {2} ({2}, Discard this card: Draw a card.) mana={2}{B} @@ -53645,7 +53796,7 @@ type=Artifact [/card] [card] name=Weaponize the Monsters -auto={2}{S(creature|myBattlefield}:damage:2 target(creature,player,planeswalker) +auto={2}{S(creature|myBattlefield}:damage:2 target(player,creature,planeswalker) text={2}, Sacrifice a creature: Weaponize the Monsters deals 2 damage to any target. mana={R} type=Enchantment @@ -54055,6 +54206,7 @@ toughness=2 [/card] [card] name=Wilt +abilities=cycling target=artifact,enchantment auto=destroy autohand=__CYCLING__({2}) @@ -54178,7 +54330,7 @@ toughness=3 [/card] [card] name=Winged Shepherd -abilities=flying, vigilance +abilities=flying,vigilance,cycling autohand=__CYCLING__({W}) text=Flying, vigilance -- Cycling {W} ({W}, Discard this card: Draw a card.) mana={5}{W} @@ -54376,6 +54528,7 @@ type=Instant [/card] [card] name=Without Weakness +abilities=cycling target=creature|myBattlefield auto=indestructible autohand=__CYCLING__({2}) @@ -54396,7 +54549,7 @@ toughness=4 [/card] [card] name=Wizard's Lightning -target=player,creature +target=player,creature,planeswalker auto=damage:3 text=This spell costs {2} less to cast if you control a Wizard. -- Wizard's Lightning deals 3 damage to any target. other={R} (Wizard on my Battlefield) @@ -54785,7 +54938,7 @@ toughness=4 [/card] [card] name=Yidaro, Wandering Monster -abilities=trample,haste +abilities=trample,haste,cycling autohand=__CYCLING__({1}{R}) autohand=@cycled(this|hand):this(variable{pyidarocount}<3) moveto(mylibrary) && shuffle && alteryidarocount:1 controller autohand=@cycled(this|hand):this(variable{pyidarocount}>=3) moveto(myBattlefield) @@ -54868,6 +55021,7 @@ toughness=9 [/card] [card] name=Zagoth Crystal +abilities=cycling auto={T}:Add{B} auto={T}:Add{G} auto={T}:Add{U} @@ -54969,8 +55123,8 @@ toughness=4 [/card] [card] name=Zenith Flare -target=creature,planeswalker,player -auto=damage:type:*[__CYCLING__]|myGraveyard && life:type:*[__CYCLING__]|myGraveyard controller +target=player,creature,planeswalker +auto=damage:type:*[cycling]|myGraveyard && life:type:*[cycling]|myGraveyard controller text=Zenith Flare deals X damage to any target and you gain X life, where X is the number of cards with a cycling ability in your graveyard. mana={2}{R}{W} type=Instant diff --git a/projects/mtg/bin/Res/sets/primitives/mtg.txt b/projects/mtg/bin/Res/sets/primitives/mtg.txt index 73a9a43cb..30f86988e 100644 --- a/projects/mtg/bin/Res/sets/primitives/mtg.txt +++ b/projects/mtg/bin/Res/sets/primitives/mtg.txt @@ -2290,6 +2290,7 @@ toughness=6 [/card] [card] name=Akroma's Blessing +abilities=cycling auto=choice name(protection from white) lord(creature|myBattlefield) protection from white auto=choice name(protection from blue) lord(creature|myBattlefield) protection from blue auto=choice name(protection from black) lord(creature|myBattlefield) protection from black @@ -2325,6 +2326,7 @@ type=Legendary Artifact [/card] [card] name=Akroma's Vengeance +abilities=cycling auto=destroy all(artifact,creature,enchantment) autohand=__CYCLING__({3}) text=Destroy all artifacts, creatures, and enchantments. -- Cycling {3} ({3}, Discard this card: Draw a card.) @@ -2415,7 +2417,7 @@ toughness=1 [card] name=Alabaster Potion auto=choice life:X target(player) -auto=choice prevent:X target(creature,player) +auto=choice prevent:X target(creature,player,planeswalker) text=Choose one — • Target player gains X life. • Prevent the next X damage that would be dealt to any target this turn. mana={X}{W}{W} type=Instant @@ -4032,6 +4034,7 @@ type=Artifact [/card] [card] name=Angelsong +abilities=cycling auto=preventAllcombatDamage ueot autohand=__CYCLING__({2}) text=Prevent all combat damage that would be dealt this turn. -- Cycling {2} ({2}, Discard this card: Draw a card.) @@ -5321,6 +5324,7 @@ toughness=3 [/card] [card] name=Architects of Will +abilities=cycling autohand=__CYCLING__({ub}) aicode=name(look) activate name(look) transforms((,newability[foreach(*[zpos<=3]|targetedpersonslibrary) moverandom(*[zpos<=3]) from(targetedpersonslibrary) to(targetedpersonslibrary)])) ueot auto=target(player) reveal:3 optionone name(Look) target(*|reveal) doNothing optiononeend optiontwo target(<3>*|reveal) moveto(ownerlibrary) optiontwoend revealend @@ -6944,6 +6948,7 @@ type=Instant [/card] [card] name=Aura Extraction +abilities=cycling target=enchantment auto=moveTo(ownerlibrary) autohand=__CYCLING__({2}) @@ -9133,6 +9138,7 @@ toughness=3 [/card] [card] name=Barkhide Mauler +abilities=cycling autohand=__CYCLING__({2}) text=Cycling {2} ({2}, Discard this card: Draw a card.) mana={4}{G} @@ -9241,6 +9247,7 @@ type=Enchantment [/card] [card] name=Barren Moor +abilities=cycling auto=tap(noevent) auto={T}:Add{B} autohand=__CYCLING__({B}) @@ -11248,6 +11255,7 @@ type=Sorcery [/card] [card] name=Blasted Landscape +abilities=cycling auto={T}:Add{1} autohand=__CYCLING__({2}) text={T}: Add {1} to your mana pool. -- Cycling {2} ({2}, Discard this card: Draw a card.) @@ -11930,7 +11938,7 @@ type=Enchantment [/card] [card] name=Bloated Toad -abilities=protection from blue +abilities=protection from blue,cycling autohand=__CYCLING__({2}) text=Protection from blue -- Cycling {2} ({2}, Discard this card: Draw a card.) mana={2}{G} @@ -14647,6 +14655,7 @@ toughness=9 [/card] [card] name=Break Asunder +abilities=cycling target=artifact,enchantment auto=destroy autohand=__CYCLING__({2}) @@ -20186,6 +20195,7 @@ subtype=Aura [/card] [card] name=Claws of Wirewood +abilities=cycling auto=damage:3 all(creature[flying]) auto=damage:3 all(player) autohand=__CYCLING__({2}) @@ -20245,6 +20255,7 @@ type=Instant [/card] [card] name=Clear +abilities=cycling target=enchantment auto=destroy autohand=__CYCLING__({2}) @@ -20710,7 +20721,7 @@ toughness=2 [/card] [card] name=Cloud of Faeries -abilities=flying +abilities=flying,cycling autohand=__CYCLING__({2}) auto=untap target(land) text=Flying -- When Cloud of Faeries enters the battlefield, untap up to two lands. -- Cycling {2} ({2}, Discard this card: Draw a card.) @@ -21945,6 +21956,7 @@ toughness=3 [/card] [card] name=Constricting Tendrils +abilities=cycling target=creature auto=-3/-0 autohand=__CYCLING__({2}) @@ -26063,7 +26075,7 @@ toughness=2 [/card] [card] name=Darkwatch Elves -abilities=protection from black +abilities=protection from black,cycling autohand=__CYCLING__({2}) text=Protection from black -- Cycling {2} ({2}, Discard this card: Draw a card.) mana={2}{G} @@ -26784,6 +26796,7 @@ type=Enchantment [/card] [card] name=Deadshot Minotaur +abilities=cycling auto=damage:3 target(creature[flying]) autohand=__CYCLING__({RG}) text=When Deadshot Minotaur enters the battlefield, it deals 3 damage to target creature with flying. -- Cycling {(r/g)} ({(r/g)}, Discard this card: Draw a card.) @@ -27506,6 +27519,7 @@ type=Sorcery [/card] [card] name=Decree of Justice +abilities=cycling auto=token(Angel,Creature Angel,4/4,flying,white,tnum.11)*XX autohand=__CYCLING__({2}{W}) autohand={X}{2}{W}{cycle}:name(cycle + effect) token(Soldier,Creature Soldier,1/1,white,tnum.12)*X && draw:1 controller @@ -29345,7 +29359,7 @@ toughness=1 [card] name=Diluvian Primordial abilities=flying -auto=may target(*[instant;sorcery]|opponentgraveyard) castcard(restricted) and!(transforms((,newability[exiledeath])) forever)! +auto=may target(*[instant;sorcery]|opponentgraveyard) castcard(restricted) and!(transforms((,newability[gainedexiledeath])) forever)! text=Flying -- When Diluvian Primordial enters the battlefield, for each opponent, you may cast up to one target instant or sorcery card from that player's graveyard without paying its mana cost. If a card cast this way would be put into a graveyard this turn, exile it instead. mana={5}{U}{U} type=Creature @@ -29683,6 +29697,7 @@ toughness=1 [/card] [card] name=Disciple of Grace +abilities=cycling auto=protection from black autohand=__CYCLING__({2}) text=Protection from black -- Cycling {2} ({2}, Discard this card: Draw a card.) @@ -29714,6 +29729,7 @@ toughness=2 [/card] [card] name=Disciple of Law +abilities=cycling auto=protection from red autohand=__CYCLING__({2}) text=Protection from red -- Cycling {2} ({2}, Discard this card: Draw a card.) @@ -29725,6 +29741,7 @@ toughness=2 [/card] [card] name=Disciple of Malice +abilities=cycling auto=protection from white autohand=__CYCLING__({2}) text=Protection from white -- Cycling {2} ({2}, Discard this card: Draw a card.) @@ -31105,6 +31122,7 @@ toughness=2 [/card] [card] name=Dragon Wings +abilities=cycling target=creature auto=flying auto=1/0 @@ -32004,7 +32022,7 @@ toughness=1 [/card] [card] name=Drifting Djinn -abilities=flying +abilities=flying,cycling auto=upcost[{1}{U}] sacrifice autohand=__CYCLING__({2}) text=Flying -- At the beginning of your upkeep, sacrifice Drifting Djinn unless you pay {1}{U}. -- Cycling {2} ({2}, Discard this card: Draw a card.) @@ -32016,6 +32034,7 @@ toughness=5 [/card] [card] name=Drifting Meadow +abilities=cycling auto=tap(noevent) auto={T}:Add{W} autohand=__CYCLING__({2}) @@ -36959,6 +36978,7 @@ type=Instant [/card] [card] name=Essence Fracture +abilities=cycling target=<2>creature auto=moveTo(ownerhand) autohand=__CYCLING__({2}{U}) @@ -37869,6 +37889,7 @@ type=Instant [/card] [card] name=Expunge +abilities=cycling target=creature[-black;-artifact] auto=bury autohand=__CYCLING__({2}) @@ -38290,6 +38311,7 @@ toughness=1 [/card] [card] name=Fade from Memory +abilities=cycling target=*|graveyard auto=moveTo(exile) autohand=__CYCLING__({B}) @@ -39678,6 +39700,7 @@ toughness=1 [/card] [card] name=Fend Off +abilities=cycling target=creature auto=0/0 && fog from(mytgt) oneshot autohand=__CYCLING__({2}) @@ -41035,6 +41058,7 @@ type=Instant [/card] [card] name=Flame Jet +abilities=cycling target=player auto=damage:3 autohand=__CYCLING__({2}) @@ -42811,6 +42835,7 @@ toughness=3 [/card] [card] name=Forgotten Cave +abilities=cycling auto=tap(noevent) auto={T}:Add{R} autohand=__CYCLING__({R}) @@ -46654,6 +46679,7 @@ type=Artifact [/card] [card] name=Glassdust Hulk +abilities=cycling auto=@movedTo(other artifact|myBattlefield):1/1 ueot auto=@movedTo(other artifact|myBattlefield):unblockable ueot autohand=__CYCLING__({WU}) @@ -47555,7 +47581,7 @@ toughness=2 [card] name=Goblin Dark-Dwellers abilities=menace -auto=may name(cast card) castcard(normal) target(*[instant;sorcery;manacost<=3]|mygraveyard) and!(transforms((,newability[exiledeath])) forever)! +auto=may name(cast card) castcard(normal) target(*[instant;sorcery;manacost<=3]|mygraveyard) and!(transforms((,newability[gainedexiledeath])) forever)! text=Menace -- When Goblin Dark-Dwellers enters the battlefield, you may cast target instant or sorcery card with converted mana cost 3 or less from your graveyard without paying its mana cost. If that card would be put into your graveyard this turn, exile it instead. mana={3}{R}{R} type=Creature @@ -56018,6 +56044,7 @@ toughness=3 [/card] [card] name=Hundroog +abilities=cycling autohand=__CYCLING__({3}) text=Cycling {3} ({3}, Discard this card: Draw a card.) mana={6}{G} @@ -56364,6 +56391,7 @@ type=Sorcery [/card] [card] name=Hush +abilities=cycling auto=destroy all(enchantment) autohand=__CYCLING__({2}) text=Destroy all enchantments. -- Cycling {2} ({2}, Discard this card: Draw a card.) @@ -56808,7 +56836,7 @@ toughness=1 [/card] [card] name=Ichor Slick -abilities=madness +abilities=madness,cycling autoexile=restriction{discarded} pay({3}{B}) name(pay 3B to cast) activate name(pay 3B to cast) castcard(normal)?name(put in graveyard) moveto(ownergraveyard) target=creature auto=-3/-3 @@ -57418,6 +57446,7 @@ type=Enchantment [/card] [card] name=Improvised Armor +abilities=cycling target=creature auto=2/5 autohand=__CYCLING__({3}) @@ -59030,6 +59059,7 @@ toughness=3 [/card] [card] name=Iron Will +abilities=cycling target=creature auto=0/4 autohand=__CYCLING__({2}) @@ -60760,7 +60790,7 @@ toughness=1 [/card] [card] name=Jungle Weaver -abilities=reach +abilities=reach,cycling autohand=__CYCLING__({2}) text=Reach (This can block creatures with flying.) -- Cycling {2} ({2}, Discard this card: Draw a card.) mana={5}{G}{G} @@ -62047,7 +62077,7 @@ subtype=Aura [/card] [card] name=Keeneye Aven -abilities=flying +abilities=flying,cycling autohand=__CYCLING__({2}) text=Flying -- Cycling {2} ({2}, Discard this card: Draw a card.) mana={3}{U} @@ -65876,6 +65906,7 @@ type=Sorcery [/card] [card] name=Lay Waste +abilities=cycling target=land auto=destroy autohand=__CYCLING__({2}) @@ -67310,6 +67341,7 @@ subtype=Aura [/card] [card] name=Lingering Mirage +abilities=cycling target=land auto=loseabilities auto=losesubtypesof(land) @@ -67948,6 +67980,7 @@ toughness=2 [/card] [card] name=Lonely Sandbar +abilities=cycling auto=tap(noevent) auto={T}:Add{U} autohand=__CYCLING__({U}) @@ -68696,6 +68729,7 @@ toughness=3 [/card] [card] name=Lull +abilities=cycling auto=preventAllcombatDamage ueot autohand=__CYCLING__({2}) text=Prevent all combat damage that would be dealt this turn. -- Cycling {2} ({2}, Discard this card: Draw a card.) @@ -69151,7 +69185,7 @@ type=Sorcery [/card] [card] name=Macetail Hystrodon -abilities=haste,first strike +abilities=haste,first strike,cycling autohand=__CYCLING__({3}) text=First strike, haste -- Cycling {3} ({3}, Discard this card: Draw a card.) mana={6}{R} @@ -69382,6 +69416,7 @@ toughness=7 [/card] [card] name=Mage's Guile +abilities=cycling target=creature auto=shroud autohand=__CYCLING__({U}) @@ -71298,6 +71333,7 @@ toughness=2 [/card] [card] name=Marshaling Cry +abilities=cycling auto=all(creature|myBattlefield) 1/1 ueot auto=all(creature|myBattlefield) vigilance ueot autohand=__CYCLING__({2}) @@ -74541,6 +74577,7 @@ type=Artifact [/card] [card] name=Miscalculation +abilities=cycling target=*|stack auto=transforms((,newability[pay[[{2}]] name(pay 2 mana) donothing?fizzle])) forever autohand=__CYCLING__({2}) @@ -75503,6 +75540,7 @@ toughness=2 [/card] [card] name=Molten Frame +abilities=cycling target=creature[artifact] auto=destroy autohand=__CYCLING__({2}) @@ -75830,7 +75868,7 @@ type=Sorcery [/card] [card] name=Monstrous Carabid -abilities=mustattack +abilities=mustattack,cycling autohand=__CYCLING__({BR}) text=Monstrous Carabid attacks each turn if able. -- Cycling {(b/r)} ({(b/r)}, Discard this card: Draw a card.) mana={3}{B}{R} @@ -84942,6 +84980,7 @@ type=Legendary Land [/card] [card] name=Pendrell Drake +abilities=cycling auto=flying autohand=__CYCLING__({2}) text=Flying -- Cycling {2} ({2}, Discard this card: Draw a card.) @@ -87443,6 +87482,7 @@ type=Land [/card] [card] name=Polluted Mire +abilities=cycling auto=tap(noevent) auto={T}:Add{B} autohand=__CYCLING__({2}) @@ -87755,6 +87795,7 @@ subtype=Aura [/card] [card] name=Power Taint +abilities=cycling target=enchantment auto=teach(creature) upcost[{2}] life:-2 controller autohand=__CYCLING__({2}) @@ -88475,7 +88516,7 @@ toughness=6 [/card] [card] name=Primoc Escapee -abilities=flying +abilities=flying,cycling autohand=__CYCLING__({2}) text=Flying -- Cycling {2} ({2}, Discard this card: Draw a card.) mana={6}{U} @@ -90725,6 +90766,7 @@ toughness=5 [/card] [card] name=Radiant's Judgment +abilities=cycling target=creature[power>=4] auto=destroy autohand=__CYCLING__({2}) @@ -91695,6 +91737,7 @@ toughness=4 [/card] [card] name=Rapid Decay +abilities=cycling target=*|graveyard auto=moveTo(exile) autohand=__CYCLING__({2}) @@ -92694,6 +92737,7 @@ type=Sorcery [/card] [card] name=Rebuild +abilities=cycling auto=moveTo(ownerhand) all(artifact) autohand=__CYCLING__({2}) text=Return all artifacts to their owners' hands. -- Cycling {2} ({2}, Discard this card: Draw a card.) @@ -93367,6 +93411,7 @@ toughness=6 [/card] [card] name=Rejuvenate +abilities=cycling auto=life:6 autohand=__CYCLING__({2}) text=You gain 6 life. -- Cycling {2} ({2}, Discard this card: Draw a card.) @@ -93587,6 +93632,7 @@ type=Land [/card] [card] name=Remote Isle +abilities=cycling auto=tap(noevent) auto={T}:Add{U} autohand=__CYCLING__({2}) @@ -93920,6 +93966,7 @@ type=Sorcery [/card] [card] name=Repopulate +abilities=cycling target=player auto=moveto(ownerlibrary) and!(shuffle)! all(creature|targetedpersonsgraveyard) autohand=__CYCLING__({2}) @@ -93964,7 +94011,8 @@ power=5 toughness=5 [/card] [card] -name=Rescind +name= +abilities=cycling target=* auto=moveTo(ownerhand) autohand=__CYCLING__({2}) @@ -94940,6 +94988,7 @@ toughness=3 [/card] [card] name=Ridge Rannet +abilities=cycling autohand=__CYCLING__({2}) text=Cycling {2} ({2}, Discard this card: Draw a card.) mana={5}{R}{R} @@ -98546,6 +98595,7 @@ toughness=5 [/card] [card] name=Sandbar Merfolk +abilities=cycling autohand=__CYCLING__({2}) text=Cycling {2} ({2}, Discard this card: Draw a card.) mana={U} @@ -98556,6 +98606,7 @@ toughness=1 [/card] [card] name=Sandbar Serpent +abilities=cycling autohand=__CYCLING__({2}) text=Cycling {2} ({2}, Discard this card: Draw a card.) mana={4}{U} @@ -99150,6 +99201,7 @@ toughness=3 [/card] [card] name=Savage Hunger +abilities=cycling target=creature auto=1/0 auto=trample @@ -99806,7 +99858,7 @@ type=Land [/card] [card] name=Scion of Darkness -abilities=trample +abilities=trample,cycling auto=@combatdamagefoeof(player) from(this):may moveTo(myBattlefield) target(creature|opponentgraveyard) auto=@combatdamageof(player) from(this):may moveTo(myBattlefield) target(creature|mygraveyard) autohand=__CYCLING__({3}) @@ -100293,6 +100345,7 @@ toughness=5 [/card] [card] name=Scrap +abilities=cycling target=artifact auto=destroy autohand=__CYCLING__({2}) @@ -101214,6 +101267,7 @@ type=Land [/card] [card] name=Secluded Steppe +abilities=cycling auto=tap(noevent) auto={T}:Add{W} autohand=__CYCLING__({W}) @@ -103829,7 +103883,7 @@ type=Enchantment [/card] [card] name=Shimmering Barrier -auto=defender,first strike +auto=defender,first strike,cycling autohand=__CYCLING__({2}) text=Defender (This creature can't attack.) -- First strike -- Cycling {2} ({2}, Discard this card: Draw a card.) mana={1}{W} @@ -104687,6 +104741,7 @@ type=Instant [/card] [card] name=Sicken +abilities=cycling target=creature auto=-1/-1 autohand=__CYCLING__({2}) @@ -105018,6 +105073,7 @@ type=Enchantment [/card] [card] name=Sigil of the Nayan Gods +abilities=cycling target=creature auto=foreach(creature|mybattlefield) 1/1 autohand=__CYCLING__({GW}) @@ -107754,6 +107810,7 @@ toughness=1 [/card] [card] name=Slippery Karst +abilities=cycling auto=tap(noevent) auto={T}:Add{G} autohand=__CYCLING__({2}) @@ -107762,6 +107819,7 @@ type=Land [/card] [card] name=Slipstream Eel +abilities=cycling auto=aslongas(island|opponentbattlefield) cantattack <1 auto=aslongas(island|opponentbattlefield) cantpwattack <1 autohand=__CYCLING__({1}{U}) @@ -108169,6 +108227,7 @@ toughness=2 [/card] [card] name=Smoldering Crater +abilities=cycling auto=tap(noevent) auto={T}:Add{R} autohand=__CYCLING__({2}) @@ -109900,6 +109959,7 @@ toughness=1 [/card] [card] name=Spark Spray +abilities=cycling target=creature,player auto=damage:1 autohand=__CYCLING__({R}) @@ -110385,6 +110445,7 @@ type=Instant [/card] [card] name=Spell Snip +abilities=cycling target=*|stack auto=transforms((,newability[pay[[{1}]] name(pay 1 mana) donothing?fizzle])) forever autohand=__CYCLING__({2}) @@ -112619,6 +112680,7 @@ type=Land [/card] [card] name=Starstorm +abilities=cycling auto=damage:X all(creature) autohand=__CYCLING__({3}) text=Starstorm deals X damage to each creature. -- Cycling {3} ({3}, Discard this card: Draw a card.) @@ -114302,7 +114364,7 @@ toughness=6 [/card] [card] name=Street Wraith -abilities=swampwalk +abilities=swampwalk,cycling autohand=__CYCLING__({L:2}) text=Swampwalk -- Cycling - Pay 2 life. (Pay 2 life, Discard this card: Draw a card.) mana={3}{B}{B} @@ -116196,6 +116258,7 @@ type=Land [/card] [card] name=Swat +abilities=cycling target=creature[power<=2] auto=destroy autohand=__CYCLING__({2}) @@ -118635,7 +118698,7 @@ type=Sorcery [card] name=Temporal Mastery auto=turns:+1 controller -auto=exiledeath +abilities=exiledeath autohand=restriction{miracle} pay[[{1}{U}]] name(Miracle) activate name(Miracle) castcard(restricted) text=Take an extra turn after this one. Exile Temporal Mastery. -- Miracle {1}{U} (You may cast this card for its miracle cost when you draw it if it's the first card you drew this turn.) mana={5}{U}{U} @@ -121078,7 +121141,7 @@ subtype=Aura [/card] [card] name=Thunderous Wrath -auto=ability$!name(Choose one) choice name(Damage player) damage:5 target(player) _ choice name(Damage creature) damage:5 target(creature) _ choice name(Damage planeswalker) damage:5 target(planeswalker)!$ controller +auto=name(Deals 5 damages to any target) name(Deals 5 damages to any target) damage:5 target(player,creature,planeswalker) autohand=restriction{miracle} pay[[{R}]] name(Miracle) activate name(Miracle) castcard(restricted) text=Thunderous Wrath deals 5 damage to any target. -- Miracle {R} (You may cast this card for its miracle cost when you draw it if it's the first card you drew this turn.) mana={4}{R}{R} @@ -122464,7 +122527,7 @@ type=Sorcery [card] name=Torrential Gearhulk abilities=flash -auto=may name(cast card) castcard(normal) target(instant|mygraveyard) and!(transforms((,newability[exiledeath])) forever)! +auto=may name(cast card) castcard(normal) target(instant|mygraveyard) and!(transforms((,newability[gainedexiledeath])) forever)! text=Flash -- When Torrential Gearhulk enters the battlefield, you may cast target instant card from your graveyard without paying its mana cost. If that card would be put into your graveyard this turn, exile it instead. mana={4}{U}{U} type=Artifact Creature @@ -122521,7 +122584,7 @@ subtype=Aura [/card] [card] name=Toshiro Umezawa -auto=@movedto(graveyard) from(creature|opponentBattlefield):may target(*[instant]|mygraveyard) castcard(restricted) and!(transforms((,newability[exiledeath])) forever)! +auto=@movedto(graveyard) from(creature|opponentBattlefield):may target(*[instant]|mygraveyard) castcard(restricted) and!(transforms((,newability[gainedexiledeath])) forever)! auto=bushido(1/1) text=Bushido 1 (When this blocks or becomes blocked, it gets +1/+1 until end of turn.) -- Whenever a creature an opponent controls is put into a graveyard from the battlefield, you may cast target instant card from your graveyard. If that card would be put into a graveyard this turn, exile it instead. mana={1}{B}{B} @@ -123125,6 +123188,7 @@ type=Sorcery [/card] [card] name=Tranquil Thicket +abilities=cycling auto=tap(noevent) auto={T}:Add{G} autohand=__CYCLING__({G}) @@ -125320,6 +125384,7 @@ subtype=Aura [/card] [card] name=Unburden +abilities=cycling target=player auto=ability$!name(discard) target(<2>*|myhand) reject!$ targetedplayer autohand=__CYCLING__({2}) @@ -125425,6 +125490,7 @@ toughness=2 [/card] [card] name=Undead Gladiator +abilities=cycling autohand=__CYCLING__({1}{B}) autograveyard={1}{B}{D(*|myhand)}:moveTo(myhand) myUpkeepOnly text={1}{B}, Discard a card: Return Undead Gladiator from your graveyard to your hand. Activate this ability only during your upkeep. -- Cycling {1}{B} ({1}{B}, Discard this card: Draw a card.) @@ -125679,6 +125745,7 @@ subtype=Aura [/card] [card] name=Unearth +abilities=cycling target=creature[manacost<=3]|mygraveyard auto=moveTo(myBattlefield) autohand=__CYCLING__({2}) @@ -127519,6 +127586,7 @@ type=Enchantment [/card] [card] name=Veiled Serpent +abilities=cycling autohand=__CYCLING__({2}) auto=aslongas(island|opponentbattlefield) cantattack <1 auto=@movedto(*|opponentstack) once:transforms((removetypes)) forever && transforms((Serpent Creature,setpower=4,settoughness=4)) forever @@ -129231,6 +129299,7 @@ toughness=5 [/card] [card] name=Viscera Dragger +abilities=cycling autohand=__CYCLING__({2}) autograveyard={1}{B}:moveto(mybattlefield) && transforms((,unearth,haste)) asSorcery forever text=Cycling {2} ({2}, Discard this card: Draw a card.) -- Unearth {1}{B} ({1}{B}: Return this card from your graveyard to the battlefield. It gains haste. Exile it at the beginning of the next end step or if it would leave the battlefield. Unearth only as a sorcery.) @@ -130003,6 +130072,7 @@ subtype=Aura [/card] [card] name=Volcanic Submersion +abilities=cycling target=artifact,land auto=destroy autohand=__CYCLING__({2}) @@ -133561,6 +133631,7 @@ type=Enchantment [/card] [card] name=Wild Dogs +abilities=cycling auto=@each my upkeep:if compare(lifetotal)~lessthan~compare(opponentlifetotal) then moveTo(opponentbattlefield) autohand=__CYCLING__({2}) text=At the beginning of your upkeep, if a player has more life than each other player, that player gains control of Wild Dogs. -- Cycling {2} ({2}, Discard this card: Draw a card.) @@ -134470,6 +134541,7 @@ abilities=split second [/card] [card] name=Wipe Clean +abilities=cycling target=enchantment auto=moveto(exile) autohand=__CYCLING__({3}) @@ -135771,8 +135843,8 @@ toughness=4 [card] name=Wrexial, the Risen Deep abilities=islandwalk,swampwalk -auto=@combatdamagefoeof(player) from(this):may target(*[instant;sorcery]|opponentgraveyard) castcard(restricted) and!(transforms((,newability[exiledeath])) forever)! -auto=@combatdamageof(player) from(this):may target(*[instant;sorcery]|mygraveyard) castcard(restricted) and!(transforms((,newability[exiledeath])) forever)! +auto=@combatdamagefoeof(player) from(this):may target(*[instant;sorcery]|opponentgraveyard) castcard(restricted) and!(transforms((,newability[gainedexiledeath])) forever)! +auto=@combatdamageof(player) from(this):may target(*[instant;sorcery]|mygraveyard) castcard(restricted) and!(transforms((,newability[gainedexiledeath])) forever)! text=Islandwalk, swampwalk -- Whenever Wrexial, the Risen Deep deals combat damage to a player, you may cast target instant or sorcery card from that player's graveyard without paying its mana cost. If that card would be put into a graveyard this turn, exile it instead. mana={3}{U}{U}{B} type=Legendary Creature @@ -136119,7 +136191,7 @@ type=Instant [/card] [card] name=Yamabushi's Storm -auto=all(creature[-protection from red]) exiledeath +auto=all(creature) exiledeath ueot auto=damage:1 all(creature) text=Yamabushi's Storm deals 1 damage to each creature. If a creature dealt damage this way would die this turn, exile it instead. mana={1}{R} @@ -136423,6 +136495,7 @@ toughness=4 [/card] [card] name=Yoked Plowbeast +abilities=cycling autohand=__CYCLING__({2}) text=Cycling {2} ({2}, Discard this card: Draw a card.) mana={5}{W}{W} diff --git a/projects/mtg/bin/Res/sets/primitives/planeswalkers.txt b/projects/mtg/bin/Res/sets/primitives/planeswalkers.txt index a685f4370..6649a8ea3 100644 --- a/projects/mtg/bin/Res/sets/primitives/planeswalkers.txt +++ b/projects/mtg/bin/Res/sets/primitives/planeswalkers.txt @@ -17,26 +17,26 @@ auto=@lifelostof(player):removesinglecountertype(thatmuch) from(planeswalker[Abi auto=@lifeof(player):counter(0/0,thatmuch,Loyalty) all(this) auto={C(0/0,2,Loyalty)}:name(+3: Discard your hand and draw a card equal to highest power) reject all(*|myhand) && draw:power:highest:creature:mybattlefield controller auto={C(0/0,-3,Loyalty)}:name(+1: Create a 3/2 Spirit) token(Spirit,Creature Spirit,3/2,red,green) -auto={C(0/0,-1,Loyalty)}:name(-1: Deals 1 damage to any target) ability$!name(Choose one) choice name(Damage player) damage:1 target(player) _ choice name(Damage creature) damage:1 target(creature) _ choice name(Damage planeswalker) damage:1 target(planeswalker)!$ controller -auto={C(0/0,-2,Loyalty)}:name(-2: Deals 2 damage to any target) ability$!name(Choose one) choice name(Damage player) damage:2 target(player) _ choice name(Damage creature) damage:2 target(creature) _ choice name(Damage planeswalker) damage:2 target(planeswalker)!$ controller -auto={C(0/0,-3,Loyalty)}:name(-3: Deals 3 damage to any target) ability$!name(Choose one) choice name(Damage player) damage:3 target(player) _ choice name(Damage creature) damage:3 target(creature) _ choice name(Damage planeswalker) damage:3 target(planeswalker)!$ controller -auto={C(0/0,-4,Loyalty)}:name(-4: Deals 4 damage to any target) ability$!name(Choose one) choice name(Damage player) damage:4 target(player) _ choice name(Damage creature) damage:4 target(creature) _ choice name(Damage planeswalker) damage:4 target(planeswalker)!$ controller -auto={C(0/0,-5,Loyalty)}:name(-5: Deals 5 damage to any target) ability$!name(Choose one) choice name(Damage player) damage:5 target(player) _ choice name(Damage creature) damage:5 target(creature) _ choice name(Damage planeswalker) damage:5 target(planeswalker)!$ controller -auto={C(0/0,-6,Loyalty)}:name(-6: Deals 6 damage to any target) ability$!name(Choose one) choice name(Damage player) damage:6 target(player) _ choice name(Damage creature) damage:6 target(creature) _ choice name(Damage planeswalker) damage:6 target(planeswalker)!$ controller -auto={C(0/0,-7,Loyalty)}:name(-7: Deals 7 damage to any target) ability$!name(Choose one) choice name(Damage player) damage:7 target(player) _ choice name(Damage creature) damage:7 target(creature) _ choice name(Damage planeswalker) damage:7 target(planeswalker)!$ controller -auto={C(0/0,-8,Loyalty)}:name(-8: Deals 8 damage to any target) ability$!name(Choose one) choice name(Damage player) damage:8 target(player) _ choice name(Damage creature) damage:8 target(creature) _ choice name(Damage planeswalker) damage:8 target(planeswalker)!$ controller -auto={C(0/0,-9,Loyalty)}:name(-9: Deals 9 damage to any target) ability$!name(Choose one) choice name(Damage player) damage:9 target(player) _ choice name(Damage creature) damage:9 target(creature) _ choice name(Damage planeswalker) damage:9 target(planeswalker)!$ controller -auto={C(0/0,-10,Loyalty)}:name(-10: Deals 10 damage to any target) ability$!name(Choose one) choice name(Damage player) damage:10 target(player) _ choice name(Damage creature) damage:10 target(creature) _ choice name(Damage planeswalker) damage:10 target(planeswalker)!$ controller -auto={C(0/0,-11,Loyalty)}:name(-11: Deals 11 damage to any target) ability$!name(Choose one) choice name(Damage player) damage:11 target(player) _ choice name(Damage creature) damage:11 target(creature) _ choice name(Damage planeswalker) damage:11 target(planeswalker)!$ controller -auto={C(0/0,-12,Loyalty)}:name(-12: Deals 12 damage to any target) ability$!name(Choose one) choice name(Damage player) damage:12 target(player) _ choice name(Damage creature) damage:12 target(creature) _ choice name(Damage planeswalker) damage:12 target(planeswalker)!$ controller -auto={C(0/0,-13,Loyalty)}:name(-13: Deals 13 damage to any target) ability$!name(Choose one) choice name(Damage player) damage:13 target(player) _ choice name(Damage creature) damage:13 target(creature) _ choice name(Damage planeswalker) damage:13 target(planeswalker)!$ controller -auto={C(0/0,-14,Loyalty)}:name(-14: Deals 14 damage to any target) ability$!name(Choose one) choice name(Damage player) damage:14 target(player) _ choice name(Damage creature) damage:14 target(creature) _ choice name(Damage planeswalker) damage:14 target(planeswalker)!$ controller -auto={C(0/0,-15,Loyalty)}:name(-15: Deals 15 damage to any target) ability$!name(Choose one) choice name(Damage player) damage:15 target(player) _ choice name(Damage creature) damage:15 target(creature) _ choice name(Damage planeswalker) damage:15 target(planeswalker)!$ controller -auto={C(0/0,-16,Loyalty)}:name(-16: Deals 16 damage to any target) ability$!name(Choose one) choice name(Damage player) damage:16 target(player) _ choice name(Damage creature) damage:16 target(creature) _ choice name(Damage planeswalker) damage:16 target(planeswalker)!$ controller -auto={C(0/0,-17,Loyalty)}:name(-17: Deals 17 damage to any target) ability$!name(Choose one) choice name(Damage player) damage:17 target(player) _ choice name(Damage creature) damage:17 target(creature) _ choice name(Damage planeswalker) damage:17 target(planeswalker)!$ controller -auto={C(0/0,-18,Loyalty)}:name(-18: Deals 18 damage to any target) ability$!name(Choose one) choice name(Damage player) damage:18 target(player) _ choice name(Damage creature) damage:18 target(creature) _ choice name(Damage planeswalker) damage:18 target(planeswalker)!$ controller -auto={C(0/0,-19,Loyalty)}:name(-19: Deals 19 damage to any target) ability$!name(Choose one) choice name(Damage player) damage:19 target(player) _ choice name(Damage creature) damage:19 target(creature) _ choice name(Damage planeswalker) damage:19 target(planeswalker)!$ controller -auto={C(0/0,-20,Loyalty)}:name(-20: Deals 20 damage to any target) ability$!name(Choose one) choice name(Damage player) damage:20 target(player) _ choice name(Damage creature) damage:20 target(creature) _ choice name(Damage planeswalker) damage:20 target(planeswalker)!$ controller +auto={C(0/0,-1,Loyalty)}:name(-1: Deals 1 damage to any target) damage:1 target(player,creature,planeswalker) +auto={C(0/0,-2,Loyalty)}:name(-2: Deals 2 damage to any target) damage:2 target(player,creature,planeswalker) +auto={C(0/0,-3,Loyalty)}:name(-3: Deals 3 damage to any target) damage:3 target(player,creature,planeswalker) +auto={C(0/0,-4,Loyalty)}:name(-4: Deals 4 damage to any target) damage:4 target(player,creature,planeswalker) +auto={C(0/0,-5,Loyalty)}:name(-5: Deals 5 damage to any target) damage:5 target(player,creature,planeswalker) +auto={C(0/0,-6,Loyalty)}:name(-6: Deals 6 damage to any target) damage:6 target(player,creature,planeswalker) +auto={C(0/0,-7,Loyalty)}:name(-7: Deals 7 damage to any target) damage:7 target(player,creature,planeswalker) +auto={C(0/0,-8,Loyalty)}:name(-8: Deals 8 damage to any target) damage:8 target(player,creature,planeswalker) +auto={C(0/0,-9,Loyalty)}:name(-9: Deals 9 damage to any target) damage:9 target(player,creature,planeswalker) +auto={C(0/0,-10,Loyalty)}:name(-10: Deals 10 damage to any target) damage:10 target(player,creature,planeswalker) +auto={C(0/0,-11,Loyalty)}:name(-11: Deals 11 damage to any target) damage:11 target(player,creature,planeswalker) +auto={C(0/0,-12,Loyalty)}:name(-12: Deals 12 damage to any target) damage:12 target(player,creature,planeswalker) +auto={C(0/0,-13,Loyalty)}:name(-13: Deals 13 damage to any target) damage:13 target(player,creature,planeswalker) +auto={C(0/0,-14,Loyalty)}:name(-14: Deals 14 damage to any target) damage:14 target(player,creature,planeswalker) +auto={C(0/0,-15,Loyalty)}:name(-15: Deals 15 damage to any target) damage:15 target(player,creature,planeswalker) +auto={C(0/0,-16,Loyalty)}:name(-16: Deals 16 damage to any target) damage:16 target(player,creature,planeswalker) +auto={C(0/0,-17,Loyalty)}:name(-17: Deals 17 damage to any target) damage:17 target(player,creature,planeswalker) +auto={C(0/0,-18,Loyalty)}:name(-18: Deals 18 damage to any target) damage:18 target(player,creature,planeswalker) +auto={C(0/0,-19,Loyalty)}:name(-19: Deals 19 damage to any target) damage:19 target(player,creature,planeswalker) +auto={C(0/0,-20,Loyalty)}:name(-20: Deals 20 damage to any target) damage:20 target(player,creature,planeswalker) text=As Abian, Luvion Usurper enters the battlefield, you become Abian. (Your life total becomes equal to their loyalty. You can activate the loyalty abilities by spending or gaining life.) -- +3: Discard your hand, then draw cards equal to the greatest power among creatures you control. -- +1: Create a 3/2 red and green Spirit creature token. -- −X: You deal X damage to any target. mana={5}{R}{G} type=Legendary Planeswalker @@ -161,7 +161,7 @@ subtype=Ajani name=Ajani Vengeant auto=counter(0/0,3,loyalty) auto={C(0/0,1,Loyalty)}:name(+1: Permanent doesn't untap) frozen target(*) -auto={C(0/0,-2,Loyalty)}:name(-2: Deals 3 damage and gain 3 life) damage:3 target(creature,player) && life:3 controller +auto={C(0/0,-2,Loyalty)}:name(-2: Deals 3 damage and gain 3 life) damage:3 target(player,creature,planeswalker) && life:3 controller auto={C(0/0,-7,Loyalty)}:name(-7: Destroy all lands) target(player) destroy all(land|targetedpersonsbattlefield) text=+1: Target permanent doesn't untap during its controller's next untap step. -- -2: Ajani Vengeant deals 3 damage to any target and you gain 3 life. -- -7: Destroy all lands target player controls. mana={2}{R}{W} @@ -386,7 +386,7 @@ name=Chandra, Acolyte of Flame auto=counter(0/0,4,loyalty) auto={C(0/0,0,Loyalty)}:name(+0: Put a loyalty counter on each red planeswalker) counter(0/0,1,loyalty) all(planeswalker[red]|myBattlefield) auto={C(0/0,0,Loyalty)}:name(+0: Create two 1/1 Elemental) token(Elemental,Creature Elemental,1/1,red,haste,treason)*2 -auto={C(0/0,-2,Loyalty)}:name(-2: May cast an instant or sorcery with mana cost 3 or less) target(*[instant;sorcery;manacost<=3]|mygraveyard) and!(transforms((,newability[CanPlayFromGraveyard],newability[exiledeath])) ueot)! +auto={C(0/0,-2,Loyalty)}:name(-2: May cast an instant or sorcery with mana cost 3 or less) target(*[instant;sorcery;manacost<=3]|mygraveyard) transforms((,newability[CanPlayFromGraveyard],newability[gainedexiledeath])) ueot text=0: Put a loyalty counter on each red planeswalker you control. -- 0: Create two 1/1 red Elemental creature tokens. They gain haste. Sacrifice them at the beginning of the next end step. -- -2: You may cast target instant or sorcery card with converted mana cost 3 or less from your graveyard. If that card would be put into your graveyard this turn, exile it instead. mana={1}{R}{R} type=Legendary Planeswalker @@ -398,7 +398,26 @@ auto=nofizzle auto=counter(0/0,6,loyalty) auto={C(0/0,2,Loyalty)}:name(+2: Emblem: "1 damage each upkeep") emblem transforms((,newability[@each opponent upkeep:damage:1 opponent])) forever dontremove auto={C(0/0,-3,Loyalty)}:name(-3: Deals 3 damage to each non-elemental) damage:3 all(creature[-elemental]) -auto={C(0/0,-X,Loyalty)}:name(-X: Deals X damage to target and exile) damage:X target(creature,planeswalker) exiledeath ueot +auto={C(0/0,-1,Loyalty)}:name(-1: Deals 1 damage to target and exile) target(creature,planeswalker) transforms((,newability[exiledeath],newability[damage:1])) ueot +auto={C(0/0,-2,Loyalty)}:name(-2: Deals 2 damage to target and exile) target(creature,planeswalker) transforms((,newability[exiledeath],newability[damage:2])) ueot +auto={C(0/0,-3,Loyalty)}:name(-3: Deals 3 damage to target and exile) target(creature,planeswalker) transforms((,newability[exiledeath],newability[damage:3])) ueot +auto={C(0/0,-4,Loyalty)}:name(-4: Deals 4 damage to target and exile) target(creature,planeswalker) transforms((,newability[exiledeath],newability[damage:4])) ueot +auto={C(0/0,-5,Loyalty)}:name(-5: Deals 5 damage to target and exile) target(creature,planeswalker) transforms((,newability[exiledeath],newability[damage:5])) ueot +auto={C(0/0,-6,Loyalty)}:name(-6: Deals 6 damage to target and exile) target(creature,planeswalker) transforms((,newability[exiledeath],newability[damage:6])) ueot +auto={C(0/0,-7,Loyalty)}:name(-7: Deals 7 damage to target and exile) target(creature,planeswalker) transforms((,newability[exiledeath],newability[damage:7])) ueot +auto={C(0/0,-8,Loyalty)}:name(-8: Deals 8 damage to target and exile) target(creature,planeswalker) transforms((,newability[exiledeath],newability[damage:8])) ueot +auto={C(0/0,-9,Loyalty)}:name(-9: Deals 9 damage to target and exile) target(creature,planeswalker) transforms((,newability[exiledeath],newability[damage:9])) ueot +auto={C(0/0,-10,Loyalty)}:name(-10: Deals 10 damage to target and exile) target(creature,planeswalker) transforms((,newability[exiledeath],newability[damage:10])) ueot +auto={C(0/0,-11,Loyalty)}:name(-11: Deals 11 damage to target and exile) target(creature,planeswalker) transforms((,newability[exiledeath],newability[damage:11])) ueot +auto={C(0/0,-12,Loyalty)}:name(-12: Deals 12 damage to target and exile) target(creature,planeswalker) transforms((,newability[exiledeath],newability[damage:12])) ueot +auto={C(0/0,-13,Loyalty)}:name(-13: Deals 13 damage to target and exile) target(creature,planeswalker) transforms((,newability[exiledeath],newability[damage:13])) ueot +auto={C(0/0,-14,Loyalty)}:name(-14: Deals 14 damage to target and exile) target(creature,planeswalker) transforms((,newability[exiledeath],newability[damage:14])) ueot +auto={C(0/0,-15,Loyalty)}:name(-15: Deals 15 damage to target and exile) target(creature,planeswalker) transforms((,newability[exiledeath],newability[damage:15])) ueot +auto={C(0/0,-16,Loyalty)}:name(-16: Deals 16 damage to target and exile) target(creature,planeswalker) transforms((,newability[exiledeath],newability[damage:16])) ueot +auto={C(0/0,-17,Loyalty)}:name(-17: Deals 17 damage to target and exile) target(creature,planeswalker) transforms((,newability[exiledeath],newability[damage:17])) ueot +auto={C(0/0,-18,Loyalty)}:name(-18: Deals 18 damage to target and exile) target(creature,planeswalker) transforms((,newability[exiledeath],newability[damage:18])) ueot +auto={C(0/0,-19,Loyalty)}:name(-19: Deals 19 damage to target and exile) target(creature,planeswalker) transforms((,newability[exiledeath],newability[damage:19])) ueot +auto={C(0/0,-20,Loyalty)}:name(-20: Deals 20 damage to target and exile) target(creature,planeswalker) transforms((,newability[exiledeath],newability[damage:20])) ueot text=This spell can't be countered. -- +2: Each opponent gets an emblem with "At the beginning of your upkeep, this emblem deals 1 damage to you." -- -3: Chandra, Awakened Inferno deals 3 damage to each non-Elemental creature. -- -X: Chandra, Awakened Inferno deals X damage to target creature or planeswalker. If a permanent dealt damage this way would die this turn, exile it instead. mana={4}{R}{R} type=Legendary Planeswalker @@ -460,9 +479,9 @@ subtype=Chandra [card] name=Chandra, Flame's Fury auto=counter(0/0,4,loyalty) -auto={C(0/0,1,Loyalty)}:name(+1: Deals 2 damage to any target) ability$!name(Choose one) choice name(Damage player) damage:2 target(player) _ choice name(Damage creature) damage:2 target(creature) _ choice name(Damage planeswalker) damage:2 target(planeswalker)!$ controller +auto={C(0/0,1,Loyalty)}:name(+1: Deals 2 damage to any target) damage:2 target(player,creature,planeswalker) auto={C(0/0,-2,Loyalty)}:name(-2: Deals 4 to creature and 2 to its controller) damage:4 target(creature) && damage:2 targetController -auto={C(0/0,-8,Loyalty)}:name(-8: Deals 10 damage to creatures and opponent) damage:10 target(player) && damage:10 targetController && damage:10 all(creature|targetedpersonsbattlefield) +auto={C(0/0,-8,Loyalty)}:name(-8: Deals 10 damage to target player and his creatures) damage:10 target(player) && damage:10 all(creature|targetedpersonsbattlefield) text=+1: Chandra, Flame's Fury deals 2 damage to any target. -- -2: Chandra, Flame's Fury deals 4 damage to target creature and 2 damage to that creature's controller. -- -8: Chandra, Flame's Fury deals 10 damage to target player and each creature that player controls. mana={4}{R}{R} type=Legendary Planeswalker @@ -472,7 +491,7 @@ subtype=Chandra name=Chandra, Gremlin Wrangler auto=counter(0/0,3,loyalty) auto={C(0/0,1,Loyalty)}:name(+1: Create a 2/2 red Gremlin creature token) token(Gremlin,Creature Gremlin,2/2,red) -auto={C(0/0,-2,Loyalty)}:name(-2: Deals X damage to any target... ) ability$!name(Choose one) choice name(Damage player) damage:type:creature[Gremlin]|myBattlefield target(player) _ choice name(Damage creature) damage:type:creature[Gremlin]|myBattlefield target(creature) _ choice name(Damage planeswalker) damage:type:creature[Gremlin]|myBattlefield target(planeswalker)!$ controller +auto={C(0/0,-2,Loyalty)}:name(-2: Deals X damage to any target... ) damage:damage:type:creature[Gremlin]|myBattlefield target(player,creature,planeswalker) text=+1: Create a 2/2 red Gremlin creature token. -- -2: Chandra, Gremlin Wrangler deals X damage to any target, where X is the number of Gremlins you control. mana={2}{R}{R} type=Legendary Planeswalker @@ -483,7 +502,7 @@ name=Chandra, Heart of Fire aicode=activate moveto(exile) target(*[instant;sorcery;red]|myLibrary,myGraveyard) and!( canplayfromexile )! auto=counter(0/0,5,loyalty) auto={C(0/0,1,Loyalty)}:name(+1: Discard hand, exile three from top and cast from exile) ability$!name(Discard hand) reject all(*|myHand)!$ controller && moveTo(exile) all(*[zpos<=3]|mylibrary) && transforms((,newability[canplayfromexile])) ueot -auto={C(0/0,1,Loyalty)}:name(+1: Deals 2 damage to any target) ability$!name(Choose one) choice name(Damage player) damage:2 target(player) _ choice name(Damage creature) damage:2 target(creature) _ choice name(Damage planeswalker) damage:2 target(planeswalker)!$ controller +auto={C(0/0,1,Loyalty)}:name(+1: Deals 2 damage to any target) damage:2 target(player,creature,planeswalker) auto={C(0/0,-9,Loyalty)}:name(-9: Search instants or sorceries, exile them and add six red mana) target(*[instant;sorcery;red]|myLibrary,myGraveyard) moveto(exile) and!( transforms((,newability[canplayfromexile])) ueot )! && shuffle controller && add{R}{R}{R}{R}{R}{R} text=+1: Discard your hand, then exile the top three cards of your library. Until end of turn, you may play cards exiled this way. -- +1: Chandra, Heart of Fire deals 2 damage to any target. -- −9: Search your graveyard and library for any number of red instant and/or sorcery cards, exile them, then shuffle your library. You may cast them this turn. Add six {R}. mana={3}{R}{R} @@ -493,7 +512,7 @@ subtype=Chandra [card] name=Chandra Nalaar auto=counter(0/0,6,loyalty) -auto={C(0/0,1,Loyalty)}:name(+1: Deals 1 damage to player or planeswalker) ability$!name(Choose one) choice name(Damage player) damage:1 target(player) _ choice name(Damage planeswalker) damage:1 target(planeswalker)!$ controller +auto={C(0/0,1,Loyalty)}:name(+1: Deals 1 damage to player or planeswalker) damage:1 target(player,planeswalker) auto={C(0/0,-1,Loyalty)}:name(-1: Deals 1 damage to creature) damage:1 target(creature) auto={C(0/0,-2,Loyalty)}:name(-2: Deals 2 damage to creature) damage:2 target(creature) auto={C(0/0,-3,Loyalty)}:name(-3: Deals 3 damage to creature) damage:3 target(creature) @@ -503,7 +522,7 @@ auto={C(0/0,-6,Loyalty)}:name(-6: Deals 6 damage to creature) damage:6 target(cr auto={C(0/0,-7,Loyalty)}:name(-7: Deals 7 damage to creature) damage:7 target(creature) auto={C(0/0,-8,Loyalty)}:name(-8: Deals 8 damage to creature) damage:8 target(creature) auto={C(0/0,-9,Loyalty)}:name(-9: Deals 9 damage to creature) damage:9 target(creature) -auto={C(0/0,-10,Loyalty)}:name(-10: Deals 10 damage to a player and all creature) damage:10 target(creature) +auto={C(0/0,-10,Loyalty)}:name(-10: Deals 10 damage to a creature) damage:10 target(creature) auto={C(0/0,-8,Loyalty)}:name(-8: 10 Deals damage to player and all of his creatures) target(player) damage:10 && damage:10 all(creature|targetedpersonsbattlefield) text=+1: Chandra Nalaar deals 1 damage to target player. -- -X: Chandra Nalaar deals X damage to target creature. -- -8: Chandra Nalaar deals 10 damage to target player and each creature he or she controls. mana={3}{R}{R} @@ -515,7 +534,7 @@ name=Chandra, Novice Pyromancer auto=counter(0/0,5,loyalty) auto={C(0/0,1,Loyalty)}:name(+1: Elemental creatures gets +2/+0) all(creature[elemental]|mybattlefield) 2/0 ueot auto={C(0/0,-1,Loyalty)}:name(-1: Add two red mana) add {R}{R} -auto={C(0/0,-2,Loyalty)}:name(-2: Deals 2 damage to any target) ability$!name(Choose one) choice name(Damage player) damage:2 target(player) _ choice name(Damage creature) damage:2 target(creature) _ choice name(Damage planeswalker) damage:2 target(planeswalker)!$ controller +auto={C(0/0,-2,Loyalty)}:name(-2: Deals 2 damage to any target) damage:2 target(player,creature,planeswalker) text=+1: Elementals you control get +2/+0 until end of turn. -- -1: Add {R}{R}. -- -2: Chandra, Novice Pyromancer deals 2 damage to any target. mana={3}{R} type=Legendary Planeswalker @@ -547,7 +566,7 @@ subtype=Chandra [card] name=Chandra, Roaring Flame auto=counter(0/0.4.loyalty) -auto={C(0/0,1,Loyalty)}:name(+1: Deals 2 damage to player or planeswalker) ability$!name(Choose one) choice name(Damage player) damage:2 target(player) _ choice name(Damage planeswalker) damage:2 target(planeswalker)!$ controller +auto={C(0/0,1,Loyalty)}:name(+1: Deals 2 damage to player or planeswalker) damage:2 target(player,planeswalker) auto={C(0/0,-2,Loyalty)}:name(-2: Deals 2 damage to creature) damage:2 target(creature) auto={C(0/0,-7,Loyalty)}:name(-7: Deals 6 damage with Emblem) damage:6 opponent && emblem transforms((,newability[@each opponent upkeep:damage:3 opponent])) forever dontremove text=+1: Chandra, Roaring Flame deals 2 damage to target player or planeswalker. -- −2: Chandra, Roaring Flame deals 2 damage to target creature. -- −7: Chandra, Roaring Flame deals 6 damage to each opponent. Each player dealt damage this way gets an emblem with “At the beginning of your upkeep, this emblem deals 3 damage to you.” @@ -558,7 +577,7 @@ color=red [card] name=Chandra, the Firebrand auto=counter(0/0,3,loyalty) -auto={C(0/0,1,Loyalty)}:name(+1: Deals 1 damage to any target) ability$!name(Choose one) choice name(Damage player) damage:1 target(player) _ choice name(Damage creature) damage:1 target(creature) _ choice name(Damage planeswalker) damage:1 target(planeswalker)!$ controller +auto={C(0/0,1,Loyalty)}:name(+1: Deals 1 damage to any target) damage:1 target(player,creature,planeswalker) auto={C(0/0,-2,Loyalty)}:name(-2: When cast instant or sorcery, copy spell) emblem transforms((,newability[@moveTo(*[instant;sorcery]|myStack):castcard(copied noevent) target(*[instant;sorcery]|mystack)])) oneshot ueot auto={C(0/0,-6,Loyalty)}:name(-6: Deals 6 damage up to six targets) ability$!name(Choose one) choice name(Damage opponent and five creature) damage:6 opponent && damage:6 target(creature) _ choice name(Damage controller and five creature) damage:6 controller && damage:6 target(creature) _ choice name(Damage creature) damage:6 target(creature)!$ controller text=+1: Chandra, the Firebrand deals 1 damage to any target. -- -2: When you cast your next instant or sorcery spell this turn, copy that spell. You may choose new targets for the copy. -- -6: Chandra, the Firebrand deals 6 damage to each of up to six target creatures and/or players. @@ -572,7 +591,7 @@ auto=counter(0/0,4,loyalty) auto={C(0/0,1,Loyalty)}:name(+1: Exile Top Card) reveal:1 optionone target(*|reveal) moveto(exile) and!( becomes(tobecast) ueot )! optiononeend afterrevealed if type(tobecast[-land]|myexile)~morethan~0 then transforms((,newability[choice all(tobecast|myexile) castcard(restricted),newability[choice name(deal 2 damage) damage:2 opponent && all(tobecast|myexile) moveto(ownerexile)])) oneshot else choice name(deal 2 damage) damage:2 opponent && all(tobecast|myexile) moveto(ownerexile) afterrevealedend revealend auto={C(0/0,1,Loyalty)}:name(+1: Add {R}{R} Mana) Add{R}{R} auto={C(0/0,-3,Loyalty)}:name(-3: Deals 4 damage to target creature) damage:4 target(creature) -auto={C(0/0,-7,Loyalty)}:name(-7: Emblem: "whenever cast a spell, deals 5 damage any target) emblem transforms((,newability[@movedTo(*|mystack):ability$!name(Choose one) choice name(Damage player) damage:5 target(player) _ choice name(Damage creature) damage:5 target(creature) _ choice name(Damage planeswalker) damage:5 target(planeswalker)!$ controller])) forever dontremove +auto={C(0/0,-7,Loyalty)}:name(-7: Emblem: "whenever cast a spell, deals 5 damage any target) emblem transforms((,newability[@movedTo(*|mystack):damage:5 target(player,creature,planeswalker)])) forever dontremove text=+1: Exile the top card of your library. You may cast that card. If you don't, Chandra, Torch of Defiance deals 2 damage to each opponent. -- +1: Add {R}{R} to your mana pool. -- -3: Chandra, Torch of Defiance deals 4 damage to target creature. -- -7: You get an emblem with "Whenever you cast a spell, this emblem deals 5 damage to target creature or player." mana={2}{R}{R} type=Legendary Planeswalker @@ -652,7 +671,7 @@ name=Domri, City Smasher auto=counter(0/0,4,loyalty) aicode=activate moveto(myHand) target(creature[zpos=2]|myLibrary) auto={C(0/0,2,Loyalty)}:name(+2: Creatures gets +1/+1 and haste) all(creature|myBattlefield) 1/1 ueot && ability$!name(gain haste) all(creature|myBattlefield) haste ueot !$ controller -auto={C(0/0,-3,Loyalty)}:name(-3: Deals 3 damage to any target) ability$!name(Choose one) choice name(Damage player) damage:3 target(player) _ choice name(Damage creature) damage:3 target(creature) _ choice name(Damage planeswalker) damage:3 target(planeswalker)!$ controller +auto={C(0/0,-3,Loyalty)}:name(-3: Deals 3 damage to any target) damage:3 target(player,creature,planeswalker) auto={C(0/0,-8,Loyalty)}:name(-8: Put three +1/+1 counters and trample) counter(1/1,3) all(creature|myBattlefield) && ability$!name(gain trample) all(creature|myBattlefield) trample ueot !$ controller text=+2: Creatures you control get +1/+1 and gain haste until end of turn. -- −3: Domri, City Smasher deals 3 damage to any target. -- −8: Put three +1/+1 counters on each creature you control. Those creatures gain trample until end of turn. mana={4}{R}{G} @@ -1275,7 +1294,7 @@ name=Jaya Ballard auto=counter(0/0,5,Loyalty) auto={C(0/0,1,Loyalty)}:name(+1: Add {R}{R}{R}) if type(*[instant;sorcery]|myhand)~morethan~0 then add{R}{R}{R} auto={C(0/0,1,Loyalty)}:name(+1: Discard up to three and draw that many) reject notatarget(*|myhand) and!( draw:1 controller )! -auto={C(0/0,-8,Loyalty)}:name(-8: Emblem: "Yoy may cast instants or sorceries from graveyard") emblem transforms((,newability[all(*[instant;sorcery]|mygraveyard) may castcard(restricted) and!(transforms((,newability[exiledeath])) forever)!])) forever dontremove +auto={C(0/0,-8,Loyalty)}:name(-8: Emblem: "Yoy may cast instants or sorceries from graveyard") emblem transforms((,newability[lord(*[instant;sorcery]|mygraveyard) canplayfromgraveyard],newability[lord(*[instant;sorcery]|mygraveyard) gainedexiledeath])) forever dontremove text=+1: Add {R}{R}{R}. Spend this mana only to cast instant or sorcery spells. -- +1: Discard up to three cards, then draw that many cards. -- −8: You get an emblem with “You may cast instant and sorcery spells from your graveyard. If a spell cast this way would be put into your graveyard, exile it instead.” mana={2}{R}{R}{R} type=Legendary Planeswalker @@ -1286,8 +1305,8 @@ name=Jaya, Venerated Firemage auto=counter(0/0,5,Loyalty) auto=@damaged(*|opponentBattlefield) from(*[red]|myBattlefield,myStack,myGraveyard,mySideboard):all(trigger) damage:1 auto=@damaged(opponent) from(*[red]|myBattlefield,myStack,myGraveyard,mySideboard):damage:1 opponent -auto={C(0/0,-2,Loyalty)}:name(-2: Deals 2 damage to any target) ability$!name(Choose one) choice name(Damage player) damage:2 target(player) _ choice name(Damage creature) damage:2 target(creature) _ choice name(Damage planeswalker) damage:2 target(planeswalker)!$ controller -text=If another red source you control would deal damage to a permanent or player, it deals that much damage plus 1 to that permanent or player instead. / −2: Jaya, Venerated Firemage deals 2 damage to any target. +auto={C(0/0,-2,Loyalty)}:name(-2: Deals 2 damage to any target) damage:2 target(player,creature,planeswalker) +text=If another red source you control would deal damage to a permanent or player, it deals that much damage plus 1 to that permanent or player instead. -- −2: Jaya, Venerated Firemage deals 2 damage to any target. mana={2}{R}{R}{R} type=Legendary Planeswalker subtype=Jaya @@ -1709,7 +1728,7 @@ auto=counter(0/0,4,Loyalty) auto={C(0/0,1,Loyalty)}:name(+1: Gain 2 life and produce mana) life:2 controller && ability$!choice add{U} _ choice add{R} _ choice add{W}!$ controller auto={C(0/0,-2,Loyalty)}:name(-2: Draw and may discard land) draw:1 controller && ability$!name(May discard a land) may target(*[land]|myhand) reject!$ controller auto={C(0/0,-2,Loyalty)}{D(*[-land]|myhand)}:name(-2: Draw, discard nonland and damage) draw:1 controller && damage:storedmanacost target(creature;planeswalker) -auto={C(0/0,-6,Loyalty)}:name(-6: Emblem: Cast a noncreature spell and deals 2 damage) emblem transforms((,newability[@movedTo(*[-creature]|mystack):ability$!name(2 damages to player) choice name(2 damages to player) damage:2 target(player) _ choice name(2 damages to planeswalker) damage:2 target(planeswalker) _ choice name(2 damages to creature) damage:2 target(creature) !$ controller])) forever dontremove +auto={C(0/0,-6,Loyalty)}:name(-6: Emblem: Cast a noncreature spell and deals 2 damage) emblem transforms((,newability[@movedTo(*[-creature]|mystack):damage:2 target(player,creature,planeswalker)])) forever dontremove text=+1: You gain 2 life. Add {U}, {R}, or {W}. Spend this mana only to cast a noncreature spell. -- -2: Draw a card, then you may discard a card. When you discard a nonland card this way, Narset of the Ancient Way deals damage equal to that card's converted mana cost to target creature or planeswalker. -- -6: You get an emblem with "Whenever you cast a noncreature spell, this emblem deals 2 damage to any target." mana={1}{U}{R}{W} type=Legendary Planeswalker @@ -1729,9 +1748,11 @@ subtype=Narset name=Narset Transcendent auto=counter(0/0,6,loyalty) aicode=activate target(*[-creature;-land;zpos=1]|mylibrary) moveto(myhand) -auto={C(0/0,1,Loyalty)}:name(+1: Look at the top noncreature nonland) name(look) reveal:1 optionone if type(*[-creature;-land]|reveal)~morethan~0 then target(*|reveal) moveTo(myHand) optiononeend optiontwo name(Put Back On Top) target(<1>*|reveal) moveTo(myLibrary) optiontwoend revealend -auto={C(0/0,-2,Loyalty)}:name(-2: Your next instant or sorcery has rebound) emblem transforms((,newability[@movedTo(*[instant;sorcery]|myStack):all(trigger[from]) phaseaction[next upkeep once] may castcard(normal) && exiledeath])) ueot oneshot +auto={C(0/0,1,Loyalty)}:name(+1: Look at the top noncreature nonland) reveal:1 optionone target(*[-creature;-land]|reveal) moveTo(myHand) optiononeend optiontwo name(Put Back On Top) target(<1>*|reveal) moveTo(myLibrary) optiontwoend revealend +auto={C(0/0,-2,Loyalty)}:name(-2: Your next instant or sorcery has rebound) counter(0/0.1.ReboundActive) all(this) auto={C(0/0,-9,Loyalty)}:name(-9: Emblem: "Your opponents can't cast noncreature spells") emblem transforms((,newability[maxCast(*[-creature])0 opponent])) forever dontremove +auto=@movedTo(*[instant;sorcery]|myStack):this(counter{0/0.1.ReboundActive}>=1) all(trigger[to]) transforms((,newability[gainedexiledeath],newability[phaseaction[my upkeep once] counter(0/0.1.PlayExile)])) ueot && counter(0/0.-1.ReboundActive) all(this) +auto=@each my upkeep:if type(*[instant;sorcery;counter{0/0.1.PlayExile}]|myexile)~morethan~0 then ability$!name(Choose one) choice name(Cast card from exile) activate castcard(normal) target(*[instant;sorcery;counter{0/0.1.PlayExile}]|myexile) _ choice name(Don't cast card from exile) all(*[instant;sorcery;counter{0/0.1.PlayExile}]|myexile) counter(0/0.-1.PlayExile)!$ controller text=+1: Look at the top card of your library. If it’s a noncreature, nonland card, you may reveal it and put it into your hand. -- −2: When you cast your next instant or sorcery spell from your hand this turn, it gains rebound. (Exile the spell as it resolves. At the beginning of your next upkeep, you may cast that card from exile without paying its mana cost.) -- −9: You get an emblem with “Your opponents can’t cast noncreature spells.” mana={2}{W}{U} type=Legendary Planeswalker @@ -1969,7 +1990,7 @@ subtype=Oko name=Ral, Caller of Storms auto=counter(0/0,4,loyalty) auto={C(0/0,1,Loyalty)}:name(+1: Draw a card) draw:1 -auto={C(0/0,-2,Loyalty)}:name(-2: Deals 3 damage divided to any target) damage:1 target(creature,player,planeswalker) && ability$!damage:1 target(creature,player,planeswalker)!$ controller && ability$!damage:1 target(creature,player,planeswalker)!$ controller +auto={C(0/0,-2,Loyalty)}:name(-2: Deals 3 damage divided to any target) thisforeach(variable{3}) ability$!name(Deals 1 damage) name(Deals 1 damage) damage:1 target(player,creature,planeswalker)!$ controller auto={C(0/0,-7,Loyalty)}:name(-7: Draw 7 cards and deals 7 to each creature) draw:7 controller && damage:7 all(creature|opponentBattlefield) text=+1: Draw a card. -- -2: Ral, Caller of Storms deals 3 damage divided as you choose among one, two, or three targets. -- -7: Draw seven cards. Ral, Caller of Storms deals 7 damage to each creature your opponents control. mana={4}{U}{R} @@ -1982,7 +2003,7 @@ auto=counter(0/0,4,loyalty) aicode=activate transforms((,newability[choice all(*[zpos=2]|mylibrary) moveto(myhand) and!(deplete:1)!],newability[choice all(*[zpos=1]|mylibrary) moveto(myhand) and!(deplete:1)!])) ueot auto={C(0/0,1,Loyalty)}:name(+1: Look the top two, put one in hand other graveyard) name(look) reveal:2 optionone name(Get a card) target(<1>*|reveal) moveto(myhand) optiononeend optiontwo all(*|reveal) moveto(mygraveyard) optiontwoend revealend auto={C(0/0,-3,Loyalty)}:name(-3: Deals damage for each instant and sorcery) damage:type:*[instant;sorcery]:myExile target(creature) && ability$!name(Damage) damage:type:*[instant;sorcery]:myGraveyard targete(creature)!$ conroller -auto={C(0/0,-8,Loyalty)}:name(-8: Emblem: "Whenever cast spell, deals 4 damage, draw two cards") emblem transforms((,newability[@movedTo(*[instant;sorcery]|myStack):draw:2 controller && ability$!name(Choose one) choice name(Damage Player) damage:4 target(player) _ choice name(Damage Creature) damage:4 target(creature) _ choice name(Damage Planeswalker) damage:4 target(planeswalker)!$ controller])) forever dontremove +auto={C(0/0,-8,Loyalty)}:name(-8: Emblem: "Whenever cast spell, deals 4 damage, draw two cards") emblem transforms((,newability[@movedTo(*[instant;sorcery]|myStack):draw:2 controller && damage:4 target(player,creature,planeswalker)])) forever dontremove text=+1: Look at the top two cards of your library. Put one of them into your hand and the other into your graveyard. -- −3: Ral, Izzet Viceroy deals damage to target creature equal to the total number of instant and sorcery cards you own in exile and in your graveyard. -- −8: You get an emblem with “Whenever you cast an instant or sorcery spell, this emblem deals 4 damage to any target and you draw two cards.” mana={3}{U}{R} type=Legendary Planeswalker @@ -2003,7 +2024,7 @@ subtype=Ral name=Ral Zarek auto=counter(0/0,4,loyalty) auto={C(0/0,1,Loyalty)}:name(+1: Tap and untap other permanent) tap(noevent) target(*) && ability$!untap target(other *)!$ controller -auto={C(0/0,-2,Loyalty)}:name(-2: Deals 3 damage to any target) ability$!name(Choose one) choice name(Damage player) damage:3 target(player) _ choice name(Damage creature) damage:3 target(creature) _ choice name(Damage planeswalker) damage:3 target(planeswalker)!$ controller +auto={C(0/0,-2,Loyalty)}:name(-2: Deals 3 damage to any target) damage:3 target(player,creature,planeswalker) auto={C(0/0,-7,Loyalty)}:name(-7: Flip five coins and take an extra turn for each head) flipacoin winability turns:+1 controller winabilityend flipend && flipacoin winability turns:+1 controller winabilityend flipend && flipacoin winability turns:+1 controller winabilityend flipend && flipacoin winability turns:+1 controller winabilityend flipend && flipacoin winability turns:+1 controller winabilityend flipend text=+1: Tap target permanent, then untap another target permanent. -- -2: Ral Zarek deals 3 damage to target creature or player. -- -7: Flip five coins. Take an extra turn after this one for each coin that comes up heads. mana={2}{U}{R} @@ -2208,7 +2229,7 @@ subtype=Sorin name=Sorin, Imperious Bloodlord auto=counter(0/0,4,loyalty) auto={C(0/0,1,Loyalty)}:name(+1: Deathtouch and Lifelink) target(creature|myBattlefield) deathtouch ueot && lifelink ueot && restriction{type(creature[vampire]) counter(1/1) -auto={C(0/0,1,Loyalty)}{S(vampire|myBattlefield)}:name(+1: Sacrifice and deals 3 damage) ability$!name(Choose one) choice name(Damage player) damage:3 target(player) _ choice name(Damage creature) damage:3 target(creature) _ choice name(Damage planeswalker) damage:3 target(planeswalker)!$ controller +auto={C(0/0,1,Loyalty)}{S(vampire|myBattlefield)}:name(+1: Sacrifice and deals 3 damage) damage:3 target(player,creature,planeswalker) auto={C(0/0,-3,Loyalty)}:name(-3: Put a Vampire from your hand onto the battlefield) moveto(myBattlefield) target(creature[vampire]|myHand) text=+1: Target creature you control gains deathtouch and lifelink until end of turn. If it's a Vampire, put a +1/+1 counter on it. -- +1: You may sacrifice a Vampire. When you do, Sorin, Imperious Bloodlord deals 3 damage to any target and you gain 3 life. -- -3: You may put a Vampire creature card from your hand onto the battlefield. mana={2}{B} @@ -2229,7 +2250,7 @@ subtype=Sorin [card] name=Sorin Markov auto=counter(0/0,4,loyalty) -auto={C(0/0,2,Loyalty)}:name(+2: deals 2 damage to a creature and gain life...) damage:2 target(creature,player,planeswalker) && life:2 controller +auto={C(0/0,2,Loyalty)}:name(+2: deals 2 damage to a creature and gain life...) damage:2 target(player,creature,planeswalker) && life:2 controller auto={C(0/0,-3,Loyalty)}:name(-3: Target opponent's life total becomes 10) lifeset:10 opponent auto={C(0/0,-7,Loyalty)}:name(-7: you control target player -'Loses turn'-) turns:-1 opponent text=+2: Sorin Markov deals 2 damage to any target and you gain 2 life. -- -3: Target opponent’s life total becomes 10. -- -7: You control target player during that player’s next turn. @@ -2252,8 +2273,8 @@ subtype=Sorin name=Sorin, Vampire Lord auto=counter(0/0,4,loyalty) auto={C(0/0,1,Loyalty)}:name(+1: Creature gets +2/+1) target(creature) 2/0 ueot -auto={C(0/0,-2,Loyalty)}:name(-2: Deals 4 damage and gains 4 life) ability$!name(Choose one) choice name(Damage player) damage:4 target(player) && life:4 controller _ choice name(Damage creature) damage:4 target(creature) && life:4 controller _ choice name(Damage planeswalker) damage:4 target(planeswalker) && life:4 controller!$ controller -auto={C(0/0,-8,Loyalty)}:name(-8: Vampires gain: "Gain control of a creature") all(creature[vampire]|mybattlefield) transforms((,newability[{T}:moveTo(mybattlefield) target(creature)]) ueot +auto={C(0/0,-2,Loyalty)}:name(-2: Deals 4 damage and gains 4 life) life:4 controller && damage:4 target(player,creature,planeswalker) +auto={C(0/0,-8,Loyalty)}:name(-8: Vampires gain: "Gain control of a creature") all(creature[vampire]|mybattlefield) transforms((,newability[{T}:moveTo(mybattlefield) target(creature)])) ueot text=+1: Up to one target creature gets +2/+0 until end of turn. -- -2: Sorin, Vampire Lord deals 4 damage to any target. You gain 4 life. -- -8: Until end of turn, each Vampire you control gains " {T}: Gain control of target creature." mana={4}{B}{B} type=Legendary Planeswalker @@ -2543,7 +2564,7 @@ type=Legendary Planeswalker name=Tibalt, Rakish Instigator auto=counter(0/0,5,loyalty) abilities=nolifegainopponent -auto={C(0/0,-2,Loyalty)}:name(-2: Create a 1/1 Devil) create(Devil:Creature Devil:1/1:red) and!( transforms((,newability[@movedto(this|mygraveyard):ability$!name(Choose one) choice name(Damage player) damage:1 target(player) _ choice name(Damage creature) damage:1 target(creature) _ choice name(Damage planeswalker) damage:1 target(planeswalker)!$ controller])) forever )! +auto={C(0/0,-2,Loyalty)}:name(-2: Create a 1/1 Devil) token(Devil,Creature Devil,1/1,red) and!( transforms((,newability[@movedto(this|mygraveyard):damage:1 target(player,creature,planeswalker)])) forever )! text=Your opponents can't gain life. -- -2: Create a 1/1 red Devil creature token with "Whenever this creature dies, it deals 1 damage to any target." mana={2}{R} type=Legendary Planeswalker @@ -2574,7 +2595,7 @@ subtype=Ugin [card] name=Ugin, the Spirit Dragon auto=counter(0/0,7,loyalty) -auto={C(0/0,2,Loyalty)}:name(+2: Deals 3 damage to target creature or player) ability$!name(Choose one) choice name(Damage player) damage:3 target(player) && life:3 controller _ choice name(Damage creature) damage:3 target(creature) && life:3 controller!$ controller +auto={C(0/0,2,Loyalty)}:name(+2: Deals 3 damage to target creature or player) damage:3 target(player,creature) auto={C(0/0,-0,Loyalty)}:name(-0: Exile each permanent with mana cost 0) moveto(exile) all(*[white;blue;black;red;green;manacost<=0]) auto={C(0/0,-1,Loyalty)}:name(-1: Exile each permanent with mana cost 1) moveto(exile) all(*[white;blue;black;red;green;manacost<=1]) auto={C(0/0,-2,Loyalty)}:name(-2: Exile each permanent with mana cost 2) moveto(exile) all(*[white;blue;black;red;green;manacost<=2]) @@ -2762,7 +2783,7 @@ subtype=Will name=Wrenn and Six auto=counter(0/0,3,loyalty) auto={C(0/0,1,Loyalty)}:name(+1: Return target land from graveyard) moveTo(myHand) target(*[land]|myGraveyard) -auto={C(0/0,-1,Loyalty)}name(-1: Deals 1 damage to any target) ability$!name(Choose one) choice name(Damage player) damage:1 target(player) _ choice name(Damage creature) damage:1 target(creature) _ choice name(Damage planeswalker) damage:1 target(planeswalker)!$ controller +auto={C(0/0,-1,Loyalty)}name(-1: Deals 1 damage to any target) damage:1 target(player,creature,planeswalker) auto={C(0/0,-7,Loyalty)}:name(-7: Emblem: Instants and Sorceries have Retrace) emblem transforms((,newability[lord(*[instant;sorcery]|myGraveyard) retrace])) forever dontremove text=+1: Return up to one target land card from your graveyard to your hand. -- -1: Wrenn and Six deals 1 damage to any target. -- -7: You get an emblem with "Instant and sorcery cards in your graveyard have retrace." (You may cast instant and sorcery cards from your graveyard by discarding a land card in addition to paying their other costs.) mana={R}{G} diff --git a/projects/mtg/include/MTGDefinitions.h b/projects/mtg/include/MTGDefinitions.h index 7ab278cdf..d163b44a0 100644 --- a/projects/mtg/include/MTGDefinitions.h +++ b/projects/mtg/include/MTGDefinitions.h @@ -295,7 +295,10 @@ class Constants HANDDEATH = 168, INPLAYDEATH = 169, INPLAYTAPDEATH = 170, - NB_BASIC_ABILITIES = 171, + GAINEDEXILEDEATH = 171, + GAINEDHANDDEATH = 172, + CYCLING = 173, + NB_BASIC_ABILITIES = 174, RARITY_S = 'S', //Special Rarity RARITY_M = 'M', //Mythics diff --git a/projects/mtg/include/TargetChooser.h b/projects/mtg/include/TargetChooser.h index b516b17bd..4583e3d25 100644 --- a/projects/mtg/include/TargetChooser.h +++ b/projects/mtg/include/TargetChooser.h @@ -153,13 +153,13 @@ class DamageableTargetChooser: public TypeTargetChooser { public: bool withoutProtections; - DamageableTargetChooser(GameObserver *observer, int * _zones, int _nbzones, MTGCardInstance * card = NULL, int _maxtargets = 1, bool other = false, bool targetMin = false) : - TypeTargetChooser(observer, "creature",_zones, _nbzones, card, _maxtargets, other, targetMin) + DamageableTargetChooser(GameObserver *observer, int * _zones, int _nbzones, MTGCardInstance * card = NULL, int _maxtargets = 1, bool other = false, bool targetMin = false, string type = "creature") : + TypeTargetChooser(observer, type.c_str(),_zones, _nbzones, card, _maxtargets, other, targetMin) { } ; - DamageableTargetChooser(GameObserver *observer, MTGCardInstance * card = NULL, int _maxtargets = 1, bool other = false, bool targetMin = false) : - TypeTargetChooser(observer, "creature", card, _maxtargets, other, targetMin) + DamageableTargetChooser(GameObserver *observer, MTGCardInstance * card = NULL, int _maxtargets = 1, bool other = false, bool targetMin = false, string type = "creature") : + TypeTargetChooser(observer, type.c_str(), card, _maxtargets, other, targetMin) { } ; diff --git a/projects/mtg/src/ActionStack.cpp b/projects/mtg/src/ActionStack.cpp index f04873cb5..109a29731 100644 --- a/projects/mtg/src/ActionStack.cpp +++ b/projects/mtg/src/ActionStack.cpp @@ -584,13 +584,15 @@ Interruptible(observer, id) int PutInGraveyard::resolve() { MTGGameZone * zone = card->getCurrentZone(); - if (card->basicAbilities[(int)Constants::EXILEDEATH]) + if (card->basicAbilities[(int)Constants::EXILEDEATH] || card->basicAbilities[(int)Constants::GAINEDEXILEDEATH]) { + card->basicAbilities[(int)Constants::GAINEDEXILEDEATH] = 0; card->controller()->game->putInZone(card, zone, card->owner->game->exile); return 1; } - if (card->basicAbilities[(int)Constants::HANDDEATH]) + if (card->basicAbilities[(int)Constants::HANDDEATH] || card->basicAbilities[(int)Constants::GAINEDHANDDEATH]) { + card->basicAbilities[(int)Constants::GAINEDHANDDEATH] = 0; card->controller()->game->putInZone(card, zone, card->owner->game->hand); return 1; } diff --git a/projects/mtg/src/MTGAbility.cpp b/projects/mtg/src/MTGAbility.cpp index 6a14d479a..5b5fe33f4 100644 --- a/projects/mtg/src/MTGAbility.cpp +++ b/projects/mtg/src/MTGAbility.cpp @@ -4925,7 +4925,9 @@ int AbilityFactory::abilityEfficiency(MTGAbility * a, Player * p, int mode, Targ badAbilities[(int)Constants::NOMANA] = true; badAbilities[(int)Constants::ONLYMANA] = true; badAbilities[(int)Constants::EXILEDEATH] = true; + badAbilities[(int)Constants::GAINEDEXILEDEATH] = true; badAbilities[(int)Constants::HANDDEATH] = true; + badAbilities[(int)Constants::GAINEDHANDDEATH] = true; badAbilities[(int)Constants::INPLAYDEATH] = true; badAbilities[(int)Constants::INPLAYTAPDEATH] = true; badAbilities[(int)Constants::WEAK] = true; @@ -5741,12 +5743,14 @@ void AbilityFactory::addAbilities(int _id, Spell * spell) { MTGPlayerCards * zones = card->controller()->game; MTGPlayerCards * Endzones = card->owner->game;//put them in thier owners respective zones as per rules. - if (card->basicAbilities[(int)Constants::EXILEDEATH]) + if (card->basicAbilities[(int)Constants::EXILEDEATH] || card->basicAbilities[(int)Constants::GAINEDEXILEDEATH]) { + card->basicAbilities[(int)Constants::GAINEDEXILEDEATH] = 0; card->controller()->game->putInZone(card, card->getCurrentZone(), card->owner->game->exile); } - else if (card->basicAbilities[(int)Constants::HANDDEATH]) + else if (card->basicAbilities[(int)Constants::HANDDEATH] || card->basicAbilities[(int)Constants::GAINEDHANDDEATH]) { + card->basicAbilities[(int)Constants::GAINEDHANDDEATH] = 0; card->controller()->game->putInZone(card, card->getCurrentZone(), card->owner->game->hand); } else if (card->alternateCostPaid[ManaCost::MANA_PAID_WITH_BUYBACK] > 0) diff --git a/projects/mtg/src/MTGCardInstance.cpp b/projects/mtg/src/MTGCardInstance.cpp index 1d9b8df20..fac65b234 100644 --- a/projects/mtg/src/MTGCardInstance.cpp +++ b/projects/mtg/src/MTGCardInstance.cpp @@ -505,14 +505,16 @@ int MTGCardInstance::totem(bool noregen) int MTGCardInstance::toGrave( bool forced ) { Player * p = controller(); - if (basicAbilities[(int)Constants::EXILEDEATH]) + if (basicAbilities[(int)Constants::EXILEDEATH] || basicAbilities[(int)Constants::GAINEDEXILEDEATH]) { p->game->putInZone(this, p->game->inPlay, owner->game->exile); + basicAbilities[(int)Constants::GAINEDEXILEDEATH] = 0; return 1; } - if (basicAbilities[(int)Constants::HANDDEATH]) + if (basicAbilities[(int)Constants::HANDDEATH] || basicAbilities[(int)Constants::GAINEDHANDDEATH]) { p->game->putInZone(this, p->game->inPlay, owner->game->hand); + basicAbilities[(int)Constants::GAINEDHANDDEATH] = 0; return 1; } if (basicAbilities[(int)Constants::INPLAYDEATH] || basicAbilities[(int)Constants::INPLAYTAPDEATH]) diff --git a/projects/mtg/src/MTGDefinitions.cpp b/projects/mtg/src/MTGDefinitions.cpp index 5c6e020a5..795d0c9f2 100644 --- a/projects/mtg/src/MTGDefinitions.cpp +++ b/projects/mtg/src/MTGDefinitions.cpp @@ -201,7 +201,10 @@ const char* Constants::MTGBasicAbilities[] = { "threeblockers", //It can be blocked just by 3 creatures or more. "handdeath", //It goes in hand after death. "inplaydeath", //It goes back in play untapped after death. - "inplaytapdeath" //It goes back in play tapped after death. + "inplaytapdeath", //It goes back in play tapped after death. + "gainedexiledeath", //It goes to exile after death (use just to give add ability to instants and sorceries which originally have not, e.g. with transforms keyword) + "gainedhanddeath", //It goes to hand after death (use just to give add ability to instants and sorceries which originally have not, e.g. with transforms keyword) + "cycling" //It has cycling ability }; map Constants::MTGBasicAbilitiesMap; diff --git a/projects/mtg/src/MTGGameZones.cpp b/projects/mtg/src/MTGGameZones.cpp index 1ab6cc620..7757f4e83 100644 --- a/projects/mtg/src/MTGGameZones.cpp +++ b/projects/mtg/src/MTGGameZones.cpp @@ -385,13 +385,17 @@ void MTGPlayerCards::showHand() // Moves a card to its owner's graveyard MTGCardInstance * MTGPlayerCards::putInGraveyard(MTGCardInstance * card) { - if (card->getCurrentZone() != card->controller()->game->hand && card->basicAbilities[(int)Constants::EXILEDEATH]) + if (card->getCurrentZone() != card->controller()->game->hand && (card->basicAbilities[(int)Constants::EXILEDEATH] || card->basicAbilities[(int)Constants::GAINEDEXILEDEATH])) { - return putInZone(card, card->getCurrentZone(), card->owner->game->exile); + MTGCardInstance* ret = putInZone(card, card->getCurrentZone(), card->owner->game->exile); + ret->basicAbilities[(int)Constants::GAINEDEXILEDEATH] = 0; + return ret; } - else if (card->getCurrentZone() != card->controller()->game->hand && card->basicAbilities[(int)Constants::HANDDEATH]) + else if (card->getCurrentZone() != card->controller()->game->hand && (card->basicAbilities[(int)Constants::HANDDEATH] || card->basicAbilities[(int)Constants::GAINEDHANDDEATH])) { - return putInZone(card, card->getCurrentZone(), card->owner->game->hand); + MTGCardInstance* ret = putInZone(card, card->getCurrentZone(), card->owner->game->hand); + ret->basicAbilities[(int)Constants::GAINEDHANDDEATH] = 0; + return ret; } else if (card->getCurrentZone() != card->controller()->game->hand && (card->basicAbilities[(int)Constants::INPLAYDEATH] || card->basicAbilities[(int)Constants::INPLAYTAPDEATH])) { @@ -807,6 +811,8 @@ MTGCardInstance * MTGGameZone::removeCard(MTGCardInstance * card, int createCopy copy->lastController = card->controller(); copy->previousController = card->controller(); copy->basicAbilities[Constants::ISCOMMANDER] = card->basicAbilities[Constants::ISCOMMANDER]; + copy->basicAbilities[Constants::GAINEDEXILEDEATH] = card->basicAbilities[Constants::GAINEDEXILEDEATH]; + copy->basicAbilities[Constants::GAINEDHANDDEATH] = card->basicAbilities[Constants::GAINEDHANDDEATH]; copy->damageInflictedAsCommander = card->damageInflictedAsCommander; copy->numofcastfromcommandzone = card->numofcastfromcommandzone; for (int i = 0; i < ManaCost::MANA_PAID_WITH_BESTOW +1; i++) diff --git a/projects/mtg/src/TargetChooser.cpp b/projects/mtg/src/TargetChooser.cpp index 9ca3a227b..792ec4f84 100644 --- a/projects/mtg/src/TargetChooser.cpp +++ b/projects/mtg/src/TargetChooser.cpp @@ -121,10 +121,26 @@ TargetChooser * TargetChooserFactory::createTargetChooser(string s, MTGCardInsta if (found != string::npos) { int maxtargets = 1; - size_t several = s.find(""); + size_t several = s.find("<"); + if (several != string::npos){ + size_t idx = s.find(">"); + if(idx != string::npos){ + string tmp = s.substr(several+1,idx-1); + WParsedInt* parser = NEW WParsedInt(tmp, card); + maxtargets = parser->intValue; + SAFE_DELETE(parser); + } + } + several = s.find(""); if (several != string::npos) maxtargets = TargetChooser::UNLITMITED_TARGETS; + found = s.find("creature,planeswalker"); + if (found != string::npos) return NEW DamageableTargetChooser(observer, card, maxtargets, other, false, "creature,planeswalker"); //Any Damageable target (player, creature, planeswalker) + found = s.find("planeswalker,creature"); + if (found != string::npos) return NEW DamageableTargetChooser(observer, card, maxtargets, other, false, "creature,planeswalker"); //Any Damageable target (player, creature, planeswalker) found = s.find("creature"); - if (found != string::npos) return NEW DamageableTargetChooser(observer, card, maxtargets, other); //Any Damageable target (player, creature) + if (found != string::npos) return NEW DamageableTargetChooser(observer, card, maxtargets, other); //2 Damageable target (player, creature) + found = s.find("planeswalker"); + if (found != string::npos) return NEW DamageableTargetChooser(observer, card, maxtargets, other, false, "planeswalker"); //2 Damageable target (player, planeswalker) return NEW PlayerTargetChooser(observer, card, maxtargets); //Any player } @@ -1280,9 +1296,18 @@ bool CardTargetChooser::equals(TargetChooser * tc) TypeTargetChooser::TypeTargetChooser(GameObserver *observer, const char * _type, MTGCardInstance * card, int _maxtargets, bool other,bool targetMin) : TargetZoneChooser(observer, card, _maxtargets, other,targetMin) { - int id = MTGAllCards::findType(_type); - nbtypes = 0; - addType(id); + if(!strcmp(_type,"creature,planeswalker")){ + int id = MTGAllCards::findType("creature"); + nbtypes = 0; + addType(id); + id = MTGAllCards::findType("planeswalker"); + addType(id); + } + else { + int id = MTGAllCards::findType(_type); + nbtypes = 0; + addType(id); + } int default_zones[] = { MTGGameZone::MY_BATTLEFIELD, MTGGameZone::OPPONENT_BATTLEFIELD }; init(default_zones, 2); }