diff --git a/projects/mtg/bin/Res/sets/primitives/_macros.txt b/projects/mtg/bin/Res/sets/primitives/_macros.txt index 0db9c69ab..97ff6f615 100644 --- a/projects/mtg/bin/Res/sets/primitives/_macros.txt +++ b/projects/mtg/bin/Res/sets/primitives/_macros.txt @@ -151,8 +151,8 @@ # Undergrowth, not implemented #AUTO_DEFINE _UNDERGROWTH_ foreach(creature|myGraveyard) -# Afterlife, not implemented -#AUTO_DEFINE _AFTERLIFE_($c) @movedTo(this|graveyard) from(battlefield):create(Spirit:Creature Spirit:1/1:white,black:flying)*$c +# Afterlife +#AUTO_DEFINE _AFTERLIFETOKEN_ create(Spirit:Creature Spirit:1/1:white:black:flying) # Riot #AUTO_DEFINE _RIOT_ movedTo(this|myBattlefield):transforms((,newability[ability$! name(Choose counter or ability) choice name(Put a +1/+1 counter) counter(1/1) target(creature) _ choice name(Gains Haste) haste target(creature) forever !$ controller])) diff --git a/projects/mtg/bin/Res/sets/primitives/borderline.txt b/projects/mtg/bin/Res/sets/primitives/borderline.txt index ae022e9ed..ce9dfa6cf 100644 --- a/projects/mtg/bin/Res/sets/primitives/borderline.txt +++ b/projects/mtg/bin/Res/sets/primitives/borderline.txt @@ -4449,7 +4449,7 @@ auto=name(Choose a permanent) target(*[-creature]|battlefield) counter(0/0,1,Ast auto=@counteradded(0/0.1.AstralChoosen) from(*[-creature]|battlefield) once:name(Effect ends) all(*[counter{0/0.1.AstralChoosen}]|battlefield) removeallcounters(0/0,1,AstralChoosen) auto=@counteradded(0/0.1.AstralChoosen) from(*[-creature]|battlefield) once:name(Clone permanent) all(*[counter{0/0.1.AstralChoosen}]|battlefield) clone and!( transforms((Creature Dragon,setpower=3,settoughness=3,newability[flying])) forever )! auto=@counteradded(0/0.1.AstralChoosen) from(*[-creature]|battlefield) once:name(Clone permanent) all(*[counter{0/0.1.AstralChoosen}]|battlefield) clone and!( transforms((Creature Dragon,setpower=3,settoughness=3,newability[flying])) forever )! -text=Flying -- Project Image â?? When Astral Dragon enters the battlefield, create two tokens that are copies of target noncreature permanent, except they're 3/3 Dragon creatures in addition to their other types, and they have flying. +text=Flying -- Project Image - When Astral Dragon enters the battlefield, create two tokens that are copies of target noncreature permanent, except they're 3/3 Dragon creatures in addition to their other types, and they have flying. mana={6}{U}{U} type=Creature subtype=Dragon @@ -7187,7 +7187,7 @@ toughness=2 [card] name=Bhaal, Lord of Murder auto=this(controllerlife <= halfsuptartinglife) indestructible -auto=@movedTo(other creature[-token]|graveyard) from(myBattlefield):name(Put 1/1 counter and goad) target(creature|battlefield) transforms((,newability(counter(1/1)],newability[counter(0/0.1.Goaded)],newability[this(counter{0/0.1.Goaded}>0) mustattack],newability[phaseaction[endofturn next once sourceinplay] removeallcounters(0/0.-1.Goaded)])) forever +auto=@movedTo(other creature[-token]|graveyard) from(myBattlefield):name(Put 1/1 counter and goad) target(creature|battlefield) transforms((,newability[counter(1/1)],newability[counter(0/0.1.Goaded)],newability[this(counter{0/0.1.Goaded}>0) mustattack],newability[phaseaction[endofturn next once sourceinplay] removeallcounters(0/0.-1.Goaded)])) forever text=As long as your life total is less than or equal to half your starting life total, Bhaal, Lord of Murder has indestructible. -- Whenever another nontoken creature you control dies, put a +1/+1 counter on target creature and goad it. mana={2}{B}{R}{G} type=Legendary Creature @@ -8591,7 +8591,7 @@ toughness=3 name=Bloodboil Sorcerer auto=_INITIATIVE_CONTROLLER_ auto={1}{R}{S(*[artifact;creature]|myBattlefield)}:name(Goad a creature) target(creature|battlefield) _GOAD_ -text=When Bloodboil Sorcerer enters the battlefield, you take the initiative. -- Crown of Madness â?? {1}{R}, Sacrifice an artifact or creature: Goad target creature. (Until your next turn, that creature attacks each combat if able and attacks a player other than you if able.) +text=When Bloodboil Sorcerer enters the battlefield, you take the initiative. -- Crown of Madness - {1}{R}, Sacrifice an artifact or creature: Goad target creature. (Until your next turn, that creature attacks each combat if able and attacks a player other than you if able.) mana={3}{R} type=Creature subtype=Human Shaman @@ -16199,7 +16199,7 @@ type=Sorcery name=Cone of Cold auto=all(*[zpos=1]|mylibrary) transforms((,newability[@dierolled(this|mylibrary) result(20) from(controller) once:emblem transforms((,newability[@movedTo(creature|opponentbattlefield):name(Creatures enter tapped) all(trigger[to]) tap(noevent)])) uynt])) oneshot auto=name(Roll a d20) rolld20 20 winability all(creature|opponentbattlefield) freeze winabilityend loseability if compare(lastrollresult)~lessthan~10 then all(creature|opponentbattlefield) tap else all(creature|opponentbattlefield) freeze loseabilityend rolld20end -text=Roll a d20. -- 1â??9 | Tap all creatures your opponents control. -- 10â??19 | Tap all creatures your opponents control. Those creatures don't untap during their controllers' next untap steps. -- 20 | Tap all creatures your opponents control. Those creatures don't untap during their controllers' next untap steps. Until your next turn, creatures your opponents control enter the battlefield tapped. +text=Roll a d20. -- 1-9 | Tap all creatures your opponents control. -- 10-19 | Tap all creatures your opponents control. Those creatures don't untap during their controllers' next untap steps. -- 20 | Tap all creatures your opponents control. Those creatures don't untap during their controllers' next untap steps. Until your next turn, creatures your opponents control enter the battlefield tapped. mana={3}{U} type=Sorcery [/card] @@ -16635,7 +16635,7 @@ name=Contraband Livestock target=creature auto=moveto(exile) auto=name(Roll a d20) rolld20 20 winability token(Goat,Creature Goat,0/1,white) targetcontroller winabilityend loseability if compare(lastrollresult)~lessthan~10 then token(Ox,Creature Ox,4/4,green) targetcontroller else token(Boar,Creature Boar,2/2,green) targetcontroller loseabilityend rolld20end -text=Exile target creature, then roll a d20. -- 1â??9 | Its controller creates a 4/4 green Ox creature token. -- 10â??19 | Its controller creates a 2/2 green Boar creature token. -- 20 | Its controller creates a 0/1 white Goat creature token. +text=Exile target creature, then roll a d20. -- 1-9 | Its controller creates a 4/4 green Ox creature token. -- 10-19 | Its controller creates a 2/2 green Boar creature token. -- 20 | Its controller creates a 0/1 white Goat creature token. mana={1}{W} type=Instant [/card] @@ -18124,7 +18124,7 @@ toughness=4 name=Cultist of the Absolute auto=lord(*[iscommander]|mybattlefield) transforms((,newability[flying],newability[deathtouch],newability[@each my upkeep:name(Sacrifice a creature) sacrifice notatarget(creature|myBattlefield)])) auto=@targeted(*[iscommander]|mybattlefield) from(*[instant;sorcery]|opponentzones):choice name(This spell costs 3 life more) name(This spell costs 3 life more) target(*[instant;sorcery]|opponentzones) transforms((,newability[pay[[{L:3}]] name(pay 3 life) donothing?fizzle])) oneshot -text=Commander creatures you own get +3/+3 and have flying, deathtouch, "Wardâ??Pay 3 life," and "At the beginning of your upkeep, sacrifice a creature." +text=Commander creatures you own get +3/+3 and have flying, deathtouch, "Ward-Pay 3 life," and "At the beginning of your upkeep, sacrifice a creature." mana={B} type=Legendary Enchantment subtype=Background @@ -18276,7 +18276,7 @@ name=Curious Obsession target=creature auto=teach(creature) 1/1 auto=teach(creature) transforms((,newability[@combatdamaged(player) from(this):may draw:1])) forever -auto=all(creature|mybattlefield) transforms((,newability[@each my endofturn restriction{didntattack}:sacrifice target(Curious Obsession|mybattlefield)])) forever +auto=all(creature|mybattlefield) transforms((,newability[@each my endofturn restriction{didntattack}:sacrifice notAtarget(Curious Obsession|mybattlefield)])) forever text=Enchant creature -- Enchanted creature gets +1/+1 and has "Whenever this creature deals combat damage to a player, you may draw a card." -- At the beginning of your end step, if you didn't attack with a creature this turn, sacrifice Curious Obsession. mana={U} type=Enchantment @@ -19976,7 +19976,7 @@ type=Instant [/card] [card] name=Debtors' Transport -auto=_DIES_create(Spirit:creature Spirit:1/1:white,black:flying)*2 +auto=_DIES__AFTERLIFETOKEN_*2 text=Afterlife 2 (When this creature dies, create two 1/1 white and black Spirit creature tokens with flying.) mana={5}{B} type=Creature @@ -20127,7 +20127,7 @@ subtype=Aura name=Deep Gnome Terramancer abilities=flash auto=@movedto(land|opponentBattlefield) from(opponentexile,opponentlibrary,opponentgraveyard,opponentreveal,opponentsideboard,opponentcommandzone) turnlimited:may name(Search plains) target(plains|mylibrary) moveto(myBattlefield) and!( transforms((,newability[tap(noevent)],newability[shuffle])) oneshot )! -text=Flash -- Mold Earth â?? Whenever one or more lands enter the battlefield under an opponent's control without being played, you may search your library for a Plains card, put it onto the battlefield tapped, then shuffle. Do this only once each turn. +text=Flash -- Mold Earth - Whenever one or more lands enter the battlefield under an opponent's control without being played, you may search your library for a Plains card, put it onto the battlefield tapped, then shuffle. Do this only once each turn. mana={1}{W} type=Creature subtype=Gnome Wizard @@ -23814,7 +23814,7 @@ name=Druid of the Emerald Grove auto=choice name(Don't search any land) donothing auto=if type(land[basic]|mylibrary)~morethan~0 then choice name(Search 1 basic land) name(Search 1 basic land) target(land[basic]|mylibrary) moveto(myhand) and!( transforms((,newability[shuffle],newability[name(Roll a d20) rolld20 20 winability moveto(mybattlefield) and!( tap(noevent) )! winabilityend loseability if compare(lastrollresult)~lessthan~10 then donothing else moveto(mybattlefield) and!( tap(noevent) )! loseabilityend rolld20end])) oneshot )! auto=if type(land[basic]|mylibrary)~morethan~1 then choice name(Search 2 basic lands) name(Search 2 basic lands) target(<2>land[basic]|mylibrary) moveto(myhand) and!( all(*[zpos=1]|myhand) transforms((,newability[shuffle],newability[name(Roll a d20) rolld20 20 winability target(<2>land[basic;fresh]|myhand) moveto(mybattlefield) and!( tap(noevent) )! winabilityend loseability if compare(lastrollresult)~lessthan~10 then donothing else target(land[fresh]|myhand) moveto(mybattlefield) and!( tap(noevent) )! loseabilityend rolld20end])) oneshot )! -text=When Druid of the Emerald Grove enters the battlefield, search your library for up to two basic land cards and reveal them, then roll a d20. -- 1â??9 | Put those cards into your hand, then shuffle. -- 10â??19 | Put one of those cards onto the battlefield tapped and the other into your hand, then shuffle. -- 20+ | Put those cards onto the battlefield tapped, then shuffle. +text=When Druid of the Emerald Grove enters the battlefield, search your library for up to two basic land cards and reveal them, then roll a d20. -- 1-9 | Put those cards into your hand, then shuffle. -- 10-19 | Put one of those cards onto the battlefield tapped and the other into your hand, then shuffle. -- 20+ | Put those cards onto the battlefield tapped, then shuffle. mana={3}{G} type=Creature subtype=Dwarf Druid @@ -26651,7 +26651,7 @@ name=Ethereal Absolution auto=lord(creature|myBattlefield) +1/+1 auto=lord(creature|opponentBattlefield) -1/-1 auto={2}{W}{B}:name(exile non-creature card) moveTo(exile) target(*[-creature]|opponentGraveyard) -auto={2}{W}{B}:name(exile creature card) moveTo(exile) target(creature|opponentGraveyard) && create(Spirit:creature Spirit:1/1:white,black:flying) +auto={2}{W}{B}:name(exile creature card) moveTo(exile) target(creature|opponentGraveyard) && _AFTERLIFETOKEN_ text=Creatures you control get +1/+1. -- Creatures your opponents control get -1/-1. -- {2}{W}{B}: Exile target card from an opponent's graveyard. If it was a creature card, you create a 1/1 white and black Spirit creature token with flying. mana={4}{W}{B} type=Enchantment @@ -27660,8 +27660,8 @@ type=Instant [/card] [card] name=Fade Away -auto=foreach(creature|myBattlefield) transforms((,newability[pay[[{1}]] name(pay 1 mana) donothing?sacrifice target(*|mybattlefield) controller])) -auto=foreach(creature|opponentBattlefield) transforms((,newability[pay[[{1}]] name(pay 1 mana) donothing?sacrifice target(*|mybattlefield) opponent])) +auto=foreach(creature|myBattlefield) transforms((,newability[pay[[{1}]] name(pay 1 mana) donothing?sacrifice notAtarget(*|mybattlefield) controller])) +auto=foreach(creature|opponentBattlefield) transforms((,newability[pay[[{1}]] name(pay 1 mana) donothing?sacrifice notAtarget(*|mybattlefield) opponent])) text=For each creature, its controller sacrifices a permanent unless he or she pays {1}. mana={2}{U} type=Sorcery @@ -31408,7 +31408,7 @@ target=creature|graveyard auto=_INITIATIVE_CONTROLLER_ auto=moveto(myBattlefield) and!( transforms((,newability[counter(0/0.1.Corpse)],newability[exiledeath])) forever )! retrace={3}{B}{B}{E(other *|myGraveyard)}{E(other *|myGraveyard)}{E(other *|myGraveyard)}{E(other *|myGraveyard)}{E(other *|myGraveyard)} name(Escape) -text=Put target creature card from a graveyard onto the battlefield under your control with a corpse counter on it. If that creature would leave the battlefield, exile it instead of putting it anywhere else. -- You take the initiative. -- Escapeâ??{3}{B}{B}, Exile five other cards from your graveyard. (You may cast this card from your graveyard for its escape cost.) +text=Put target creature card from a graveyard onto the battlefield under your control with a corpse counter on it. If that creature would leave the battlefield, exile it instead of putting it anywhere else. -- You take the initiative. -- Escape-{3}{B}{B}, Exile five other cards from your graveyard. (You may cast this card from your graveyard for its escape cost.) mana={3}{B}{B} type=Sorcery [/card] @@ -31947,7 +31947,7 @@ name=Gale's Redirection target=*|stack auto=fizzleto(exile) auto=name(Roll a d20) rolld20 20 winability all(*[zpos=type:*:opponentexile]|opponentexile) transforms((,newability[canplayfromexile],newability[zerocast])) forever winabilityend loseability if compare(lastrollresultplusmanacostplusend)~lessthan~15 then all(*[zpos=type:*:opponentexile]|opponentexile) transforms((,newability[canplayfromexile],newability[anytypeofmana])) forever else all(*[zpos=type:*:opponentexile]|opponentexile) transforms((,newability[canplayfromexile],newability[zerocast])) forever loseabilityend rolld20end -text=Exile target spell, then roll a d20 and add that spell's mana value. -- 1â??14 | You may cast the exiled card for as long as it remains exiled, and you may spend mana as though it were mana of any color to cast that spell. -- 15+ | You may cast the exiled card without paying its mana cost for as long as it remains exiled. +text=Exile target spell, then roll a d20 and add that spell's mana value. -- 1-14 | You may cast the exiled card for as long as it remains exiled, and you may spend mana as though it were mana of any color to cast that spell. -- 15+ | You may cast the exiled card without paying its mana cost for as long as it remains exiled. mana={3}{U}{U} type=Instant [/card] @@ -34520,9 +34520,9 @@ toughness=2 [/card] [card] name=Goblin Assassin -auto=flipacoin loseability sacrifice target(creature|mybattlefield) loseabilityend flipend +auto=flipacoin loseability sacrifice notAtarget(creature|mybattlefield) loseabilityend flipend auto=ability$!name(flip a coin) flipacoin loseability sacrifice notatarget(creature|mybattlefield) loseabilityend flipend!$ opponent -auto=@movedto(other creature[goblin]|battlefield):flipacoin loseability sacrifice target(creature|mybattlefield) loseabilityend flipend +auto=@movedto(other creature[goblin]|battlefield):flipacoin loseability sacrifice notAtarget(creature|mybattlefield) loseabilityend flipend auto=@movedto(other creature[goblin]|battlefield):ability$!name(flip a coin) flipacoin loseability sacrifice notatarget(creature|mybattlefield) loseabilityend flipend!$ opponent text=Whenever Goblin Assassin or another Goblin enters the battlefield, each player flips a coin. Each player whose coin comes up tails sacrifices a creature. mana={3}{R}{R} @@ -38440,7 +38440,7 @@ subtype=Gate [card] name=Heart Wolf abilities=first strike -auto={T}:restriction{during battle} name(Choose dwarf) name(Choose dwarf) target(creature[dwarf]|mybattlefield) transforms((,newability[2/0],newability[first strike],newability[@movedto(this|nonbattlezone) from(mybattlefield):sacrifice target(Heart Wolf[tapped]|mybattlefield)])) ueot +auto={T}:restriction{during battle} name(Choose dwarf) name(Choose dwarf) target(creature[dwarf]|mybattlefield) transforms((,newability[2/0],newability[first strike],newability[@movedto(this|nonbattlezone) from(mybattlefield):sacrifice notAtarget(Heart Wolf[tapped]|mybattlefield)])) ueot text=First strike -- {T}: Target Dwarf creature gets +2/+0 and gains first strike until end of turn. When that creature leaves the battlefield this turn, sacrifice Heart Wolf. Activate this ability only during combat. mana={3}{R} type=Creature @@ -41199,7 +41199,7 @@ otherrestriction=type(creature|battlefield)~morethan~0 auto=if paid(alternative) then name(Tap X creatures) name(Tap X creatures) target(creature|Battlefield) freeze auto=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever auto=ifnot paid(alternative) then may name(Turn creatures) name(Turn creatures) target(creature[-token;tapped]|battlefield) flip(Soldier Bas) and!( transforms((Artifact Creature Horror,setpower=2,settoughness=2)) forever )! -text=Ceremorphosis â?? When Illithid Harvester enters the battlefield, turn any number of target tapped nontoken creatures face down. They're 2/2 Horror creatures. // Tap X target creatures. They don't untap during their controllers' next untap steps. (Then exile this card. You may cast the creature later from exile.) +text=Ceremorphosis - When Illithid Harvester enters the battlefield, turn any number of target tapped nontoken creatures face down. They're 2/2 Horror creatures. // Tap X target creatures. They don't untap during their controllers' next untap steps. (Then exile this card. You may cast the creature later from exile.) mana={4}{U} type=Creature subtype=Horror @@ -41679,7 +41679,7 @@ toughness=4 [card] name=Imperious Oligarch abilities=vigilance -auto=_DIES_create(Spirit:creature Spirit:1/1:white,black:flying) +auto=_DIES__AFTERLIFETOKEN_ text=Vigilance -- Afterlife 1 (When this creature dies, create a 1/1 white and black Spirit creature token with flying.) mana={W}{B} type=Creature @@ -42894,7 +42894,7 @@ name=Intellect Devourer auto=ability$!name(Exile a card) name(Exile a card) target(*|myhand) moveto(exile) and!( counter(0/0.1.IntellectExiled) )! !$ opponent auto={0}:name(Cast from opponent exile) target(*[counter{0/0.1.IntellectExiled}]|opponentexile) moveto(myexile) and!( transforms((,newability[counter(0/0.1.IntellectExiled)],newability[canplayfromexile],newability[anytypeofmana],newability[phaseaction[endofturn once checkex] moveTo(ownerexile)],newability[phaseaction[untap once checkex] counter(0/0.1.IntellectExiled)])) ueot )! auto=_DIES_name(Return exiled card) all(*[counter{0/0.1.IntellectExiled}]|opponentexile) moveto(ownerhand) -text=Devour Intellect â?? When Intellect Devourer enters the battlefield, each opponent exiles a card from their hand until Intellect Devourer leaves the battlefield. -- Body Thief â?? You may play lands and cast spells from among cards exiled with Intellect Devourer. If you cast a spell this way, you may spend mana as though it were mana of any color to cast it. +text=Devour Intellect - When Intellect Devourer enters the battlefield, each opponent exiles a card from their hand until Intellect Devourer leaves the battlefield. -- Body Thief - You may play lands and cast spells from among cards exiled with Intellect Devourer. If you cast a spell this way, you may spend mana as though it were mana of any color to cast it. mana={3}{B} type=Creature subtype=Horror @@ -43287,7 +43287,7 @@ toughness=3 [card] name=Iron Mastiff auto=_ATTACKING_name(Roll d20) rolld20 20 winability damage:power opponent winabilityend loseability if compare(lastrollresult)~lessthan~10 then damage:power controller else damage:power loseabilityend rolld20end -text=Whenever Iron Mastiff attacks, roll a d20 for each player being attacked and ignore all but the highest roll. -- 1â??9 | Iron Mastiff deals damage equal to its power to you. -- 10â??19 | Iron Mastiff deals damage equal to its power to defending player. -- 20 | Iron Mastiff deals damage equal to its power to each opponent. +text=Whenever Iron Mastiff attacks, roll a d20 for each player being attacked and ignore all but the highest roll. -- 1-9 | Iron Mastiff deals damage equal to its power to you. -- 10-19 | Iron Mastiff deals damage equal to its power to defending player. -- 20 | Iron Mastiff deals damage equal to its power to each opponent. mana={4} type=Artifact Creature subtype=Dog @@ -45263,14 +45263,14 @@ subtype=Aura name=Kaya's Guile other={4}{W}{B} name(Entwine) auto=ifnot paid(alternative) then choice name(Choose 1 and 2):ability$!name(sacrifice) notatarget(*[creature]|myBattlefield) sacrifice!$ opponent && moveto(exile) all(creature|opponentbattlefield) -auto=ifnot paid(alternative) then choice name(Choose 1 and 3):ability$!name(sacrifice) notatarget(*[creature]|myBattlefield) sacrifice!$ opponent && create(Spirit:creature Spirit:1/1:white,black:flying) +auto=ifnot paid(alternative) then choice name(Choose 1 and 3):ability$!name(sacrifice) notatarget(*[creature]|myBattlefield) sacrifice!$ opponent && _AFTERLIFETOKEN_ auto=ifnot paid(alternative) then choice name(Choose 1 and 4):ability$!name(sacrifice) notatarget(*[creature]|myBattlefield) sacrifice!$ opponent && life:4 controller -auto=ifnot paid(alternative) then choice name(Choose 2 and 3):moveto(exile) all(creature|opponentbattlefield) && create(Spirit:creature Spirit:1/1:white,black:flying) +auto=ifnot paid(alternative) then choice name(Choose 2 and 3):moveto(exile) all(creature|opponentbattlefield) && _AFTERLIFETOKEN_ auto=ifnot paid(alternative) then choice name(Choose 2 and 4):moveto(exile) all(creature|opponentbattlefield) && life:4 controller -auto=ifnot paid(alternative) then choice name(Choose 3 and 4):create(Spirit:creature Spirit:1/1:white,black:flying) && life:4 controller +auto=ifnot paid(alternative) then choice name(Choose 3 and 4):_AFTERLIFETOKEN_ && life:4 controller auto=if paid(alternative) then ability$!name(sacrifice) notatarget(*[creature]|myBattlefield) sacrifice!$ opponent auto=if paid(alternative) then moveto(exile) all(creature|opponentbattlefield) -auto=if paid(alternative) then create(Spirit:creature Spirit:1/1:white,black:flying) +auto=if paid(alternative) then _AFTERLIFETOKEN_ auto=if paid(alternative) then life:4 controller text=Choose two -- Each opponent sacrifices a creature. -- Exile all cards from each opponent's graveyard. -- Create a 1/1 white and black Spirit creature token with flying. -- You gain 4 life. -- Entwine 3 (Choose all if you pay the entwine cost.) mana={1}{W}{B} @@ -46462,7 +46462,7 @@ toughness=3 [/card] [card] name=Knight of Sorrows -auto=_DIES_token(Spirit,Creature Spirit,1/1,white,black,flying) +auto=_DIES__AFTERLIFETOKEN_ text=Knight of Sorrows can block an additional creature each combat. -- Afterlife 1 (When this creature dies, create a 1/1 white and black Spirit creature token with flying.) mana={4}{W} type=Creature @@ -46504,8 +46504,8 @@ toughness=2 [card] name=Knight of the Last Breath abilities=flying -auto={3}{S(other creature[-token]|mybattlefield)}:create(Spirit:creature Spirit:1/1:white,black:flying) -auto=_DIES_create(Spirit:creature Spirit:1/1:white,black:flying) +auto={3}{S(other creature[-token]|mybattlefield)}:_AFTERLIFETOKEN_ +auto=_DIES__AFTERLIFETOKEN_*3 text={3}, Sacrifice another nontoken creature: Create a 1/1 white and black Spirit creature token with flying. -- Afterlife 3 (When this creature dies, create three 1/1 white and black Spirit creature tokens with flying.) mana={5}{W}{B} type=Creature @@ -48501,7 +48501,7 @@ name=Lich abilities=cantlifelose auto=lifeset:0 controller auto=@lifeof(player):draw:thatmuch controller && life:-thatmuch controller -auto=@damageof(player):if type(creature[-token]|mybattlefield)~lessthan~thatmuch then winGame opponent else sacrifice target(creature[-token]|mybattlefield) +auto=@damageof(player):if type(creature[-token]|mybattlefield)~lessthan~thatmuch then winGame opponent else sacrifice notAtarget(creature[-token]|mybattlefield) auto=_DIES_winGame opponent text=As Lich enters the battlefield, you lose life equal to your life total. -- You don't lose the game for having 0 or less life. -- If you would gain life, draw that many cards instead. -- Whenever you're dealt damage, sacrifice that many nontoken permanents. If you can't, you lose the game. -- When Lich is put into a graveyard from the battlefield, you lose the game. mana={B}{B}{B}{B} @@ -51136,7 +51136,7 @@ type=Artifact [/card] [card] name=Mana Vortex -auto=name(Choose one) ability$!name(Sacrifice land) choice name(Sacrifice land) sacrifice target(land|myBattlefield) _ choice name(Sacrifice mana vortex) sacrifice!$ controller +auto=name(Choose one) ability$!name(Sacrifice land) choice name(Sacrifice land) sacrifice notAtarget(land|myBattlefield) _ choice name(Sacrifice mana vortex) sacrifice!$ controller auto=@each opponent upkeep:ability$!name(sacrifice) notatarget(*[land]|mybattlefield) sacrifice !$ opponent auto=@each my upkeep:notatarget(*[land]|mybattlefield) sacrifice auto=aslongas(land|battlefield) sacrifice <1 @@ -53205,7 +53205,7 @@ subtype=Aura [/card] [card] name=Ministrant of Obligation -auto=_DIES_create(Spirit:creature Spirit:1/1:white,black:flying)*2 +auto=_DIES__AFTERLIFETOKEN_*2 text=Afterlife 2 (When this creature dies, create two 1/1 white and black Spirit creature tokens with flying.) mana={2}{W} type=Creature @@ -55112,7 +55112,7 @@ auto=all(*[zpos=1]|mylibrary) transforms((,newability[@dierolled(this|mylibrary) auto=all(*[zpos=1]|mylibrary) transforms((,newability[@dierolled(this|mylibrary) result(19) from(controller) once:ability$!name(sacrifice a creature) name(sacrifice a creature) notatarget(creature|myBattlefield) sacrifice!$ opponent])) oneshot auto=all(*[zpos=1]|mylibrary) transforms((,newability[@dierolled(this|mylibrary) result(20) from(controller) once:ability$!name(sacrifice a creature) name(sacrifice a creature) notatarget(creature[power=power:highest:creature:myBattlefield]) sacrifice!$ opponent])) oneshot auto=name(Roll a d20) rolld20 20 winability donothing controller winabilityend rolld20end -text=Roll a d20. -- 1â??9 | Choose an opponent. That player sacrifices a creature. -- 10â??19 | Each opponent sacrifices a creature. -- 20 | Each opponent sacrifices a creature with the greatest power among creatures that player controls. +text=Roll a d20. -- 1-9 | Choose an opponent. That player sacrifices a creature. -- 10-19 | Each opponent sacrifices a creature. -- 20 | Each opponent sacrifices a creature with the greatest power among creatures that player controls. mana={1}{B} type=Sorcery [/card] @@ -56952,7 +56952,7 @@ abilities=menace aicode=activate transforms((,newability[if type(*[gate;zpos<=9]|mylibrary)~morethan~0 then target(*[gate;zpos<=9]|mylibrary) moveto(mybattlefield) and!( if type(*[gate]|mybattlefield)~morethan~8 then all(*[zpos<=9]|mylibrary) moveto(myhand) else all(*[zpos<=9]|mylibrary) moveto(myreveal) and!( bottomoflibrary )! )!],newability[if type(*[gate;zpos<=9]|mylibrary)~equalto~0 then if type(*[gate]|mybattlefield)~morethan~8 then all(*[zpos<=9]|mylibrary) moveto(myhand) else all(*[zpos<=9]|mylibrary) moveto(myreveal) and!( bottomoflibrary )!])) ueot auto=combatdamaged(player) from(this):name(Look top 9 cards) reveal:9 optionone name(Put gate in play) target(*[gate]|reveal) moveto(mybattlefield) optiononeend optiontwo if type(*[gate]|mybattlefield)~morethan~8 then name(Put in hand) all(*|myreveal) moveto(myhand) else name(Put On Bottom) target(*|reveal) bottomoflibrary and!( all(*|myreveal) bottomoflibrary )! bottomoflibrary optiontwoend revealend auto=@targeted(*[iscommander]|mybattlefield) from(*[instant;sorcery]|opponentzones):choice name(This spell costs 9 life more) name(This spell costs 9 life more) target(*[instant;sorcery]|opponentzones) transforms((,newability[pay[[{L:9}]] name(pay 9 life) donothing?fizzle])) oneshot -text=Menace -- Wardâ??Pay 9 life. -- Whenever Nine-Fingers Keene deals combat damage to a player, look at the top nine cards of your library. You may put a Gate card from among them onto the battlefield. Then if you control nine or more Gates, put the rest into your hand. Otherwise, put the rest on the bottom of your library in a random order. +text=Menace -- Ward-Pay 9 life. -- Whenever Nine-Fingers Keene deals combat damage to a player, look at the top nine cards of your library. You may put a Gate card from among them onto the battlefield. Then if you control nine or more Gates, put the rest into your hand. Otherwise, put the rest on the bottom of your library in a random order. mana={1}{B}{G}{U} type=Legendary Creature subtype=Human Rogue @@ -57218,7 +57218,7 @@ auto=all(*[zpos=8]|mylibrary) transforms((,newability[@dierolled(this|mylibrary) auto=all(*[zpos=8]|mylibrary) transforms((,newability[@dierolled(this|mylibrary) result(19) from(controller) once:name(Draw 2 cards) draw:2 controller])) oneshot auto=all(*[zpos=8]|mylibrary) transforms((,newability[@dierolled(this|mylibrary) result(20) from(controller) once:name(Draw 7 cards) draw:7 controller])) oneshot auto=_DIES_name(Roll a d20) rolld20 20 winability life:-7 controller winabilityend loseability if compare(lastrollresult)~lessthan~10 then life:-1 controller else life:-2 controller loseabilityend rolld20end -text=Weird Insight â?? When Nothic dies, roll a d20. -- 1â??9 | You draw a card and you lose 1 life. -- 10â??19 | You draw two cards and you lose 2 life. -- 20 | You draw seven cards and you lose 7 life. +text=Weird Insight - When Nothic dies, roll a d20. -- 1-9 | You draw a card and you lose 1 life. -- 10-19 | You draw two cards and you lose 2 life. -- 20 | You draw seven cards and you lose 7 life. mana={4}{B} type=Creature subtype=Horror @@ -58350,8 +58350,8 @@ toughness=5 [card] name=Omen of Fire auto=moveTo(ownerhand) all(island) -auto=foreach(*[white]|mybattlefield) name(Choose one) ability$!name(Sacrifice plains) choice name(Sacrifice plains) sacrifice target(plains|mybattlefield) _ choice name(Sacrifice white permanent) sacrifice notatarget(*[white]|mybattlefield)!$ controller -auto=foreach(*[white]|opponentBattlefield) name(Choose one) ability$!name(Sacrifice plains) choice name(Sacrifice plains) sacrifice target(plains|mybattlefield) _ choice name(Sacrifice white permanent)sacrifice notatarget(*[white]|mybattlefield)!$ opponent +auto=foreach(*[white]|mybattlefield) name(Choose one) ability$!name(Sacrifice plains) choice name(Sacrifice plains) sacrifice notAtarget(plains|mybattlefield) _ choice name(Sacrifice white permanent) sacrifice notatarget(*[white]|mybattlefield)!$ controller +auto=foreach(*[white]|opponentBattlefield) name(Choose one) ability$!name(Sacrifice plains) choice name(Sacrifice plains) sacrifice notAtarget(plains|mybattlefield) _ choice name(Sacrifice white permanent)sacrifice notatarget(*[white]|mybattlefield)!$ opponent text=Return all Islands to their owners' hands. -- Each player sacrifices a Plains or a white permanent for each white permanent he or she controls. mana={3}{R}{R} type=Instant @@ -58989,7 +58989,7 @@ toughness=3 name=Ordeal of Erebos target=creature auto=@combat(attacking) source(mytgt):counter(1/1) -auto=teach(creature) transforms((,newability[this(counter{1/1}>=3) sacrifice target(Ordeal of Erebos|mybattlefield)])) +auto=teach(creature) transforms((,newability[this(counter{1/1}>=3) sacrifice notAtarget(Ordeal of Erebos|mybattlefield)])) auto=_DIES_target(player) ability$!target(<2>*|myhand) reject!$ targetedplayer text=Enchant creature -- Whenever enchanted creature attacks, put a +1/+1 counter on it. Then if it has three or more +1/+1 counters on it, sacrifice Ordeal of Erebos. -- When you sacrifice Ordeal of Erebos, target player discards two cards. mana={1}{B} @@ -59000,7 +59000,7 @@ subtype=Aura name=Ordeal of Heliod target=creature auto=@combat(attacking) source(mytgt):counter(1/1) -auto=teach(creature) transforms((,newability[this(counter{1/1}>=3) sacrifice target(Ordeal of Heliod|mybattlefield)])) +auto=teach(creature) transforms((,newability[this(counter{1/1}>=3) sacrifice notAtarget(Ordeal of Heliod|mybattlefield)])) auto=_DIES_life:10 controller text=Enchant creature -- Whenever enchanted creature attacks, put a +1/+1 counter on it. Then if it has three or more +1/+1 counters on it, sacrifice Ordeal of Heliod. -- When you sacrifice Ordeal of Heliod, you gain 10 life. mana={1}{W} @@ -59011,7 +59011,7 @@ subtype=Aura name=Ordeal of Nylea target=creature auto=@combat(attacking) source(mytgt):counter(1/1) -auto=teach(creature) transforms((,newability[this(counter{1/1}>=3) sacrifice target(Ordeal of Nylea|mybattlefield)])) +auto=teach(creature) transforms((,newability[this(counter{1/1}>=3) sacrifice notAtarget(Ordeal of Nylea|mybattlefield)])) auto=_DIES_notatarget(land[basic]|mylibrary) transforms((,newability[name(move to battlefield) notatarget(land[basic]|mylibrary) moveTo(myBattlefield) and!(tap(noevent))!],newability[moveTo(myBattlefield) and!(tap(noevent))!])) oneshot text=Enchant creature -- Whenever enchanted creature attacks, put a +1/+1 counter on it. Then if it has three or more +1/+1 counters on it, sacrifice Ordeal of Nylea. -- When you sacrifice Ordeal of Nylea, search your library for up to two basic land cards, put them onto the battlefield tapped, then shuffle your library. mana={1}{G} @@ -59022,7 +59022,7 @@ subtype=Aura name=Ordeal of Purphoros target=creature auto=@combat(attacking) source(mytgt):counter(1/1) -auto=teach(creature) transforms((,newability[this(counter{1/1}>=3) sacrifice target(Ordeal of Purphoros|mybattlefield)])) +auto=teach(creature) transforms((,newability[this(counter{1/1}>=3) sacrifice notAtarget(Ordeal of Purphoros|mybattlefield)])) auto=_DIES_damage:3 target(creature,player) text=Enchant creature -- Whenever enchanted creature attacks, put a +1/+1 counter on it. Then if it has three or more +1/+1 counters on it, sacrifice Ordeal of Purphoros. -- When you sacrifice Ordeal of Purphoros, it deals 3 damage to target creature or player. mana={1}{R} @@ -59033,7 +59033,7 @@ subtype=Aura name=Ordeal of Thassa target=creature auto=@combat(attacking) source(mytgt):counter(1/1) -auto=teach(creature) transforms((,newability[this(counter{1/1}>=3) sacrifice target(Ordeal of Thassa|mybattlefield)])) +auto=teach(creature) transforms((,newability[this(counter{1/1}>=3) sacrifice notAtarget(Ordeal of Thassa|mybattlefield)])) auto=_DIES_draw:2 controller text=Enchant creature -- Whenever enchanted creature attacks, put a +1/+1 counter on it. Then if it has three or more +1/+1 counters on it, sacrifice Ordeal of Thassa. -- When you sacrifice Ordeal of Thassa, draw two cards. mana={1}{U} @@ -59275,7 +59275,7 @@ type=Instant [card] name=Orzhov Enforcer abilities=deathtouch -auto=_DIES_create(Spirit:creature Spirit:1/1:white,black:flying) +auto=_DIES__AFTERLIFETOKEN_ text=Deathtouch -- Afterlife 1 (When this creature dies, create a 1/1 white and black Spirit creature token with flying.) mana={1}{B} type=Creature @@ -59319,7 +59319,7 @@ toughness=1 [card] name=Orzhov Racketeers auto=@combatdamaged(player) from(this):ability$!name(discard) target(*|myhand) reject!$ opponent -auto=_DIES_create(Spirit:creature Spirit:1/1:white,black:flying)*2 +auto=_DIES__AFTERLIFETOKEN_*2 text=Whenever Orzhov Racketeers deals combat damage to a player, that player discards a card. -- Afterlife 2 (When this creature dies, create two 1/1 white and black Spirit creature tokens with flying.) mana={4}{B} type=Creature @@ -59654,7 +59654,7 @@ toughness=2 name=Overwhelming Encounter auto=all(creature|myBattlefield) transforms((,newability[vigilance],newability[trample])) ueot auto=name(Roll a d20) rolld20 20 winability all(creature|myBattlefield) counter(1/1.4) winabilityend loseability if compare(lastrollresult)~lessthan~10 then all(creature|myBattlefield) 2/2 ueot else all(creature|myBattlefield) counter(1/1.2) loseabilityend rolld20end -text=Creatures you control gain vigilance and trample until end of turn. Roll a d20. -- 1â??9 | Creatures you control get +2/+2 until end of turn. -- 10â??19 | Put two +1/+1 counters on each creature you control. -- 20 | Put four +1/+1 counters on each creature you control. +text=Creatures you control gain vigilance and trample until end of turn. Roll a d20. -- 1-9 | Creatures you control get +2/+2 until end of turn. -- 10-19 | Put two +1/+1 counters on each creature you control. -- 20 | Put four +1/+1 counters on each creature you control. mana={3}{G}{G} type=Sorcery [/card] @@ -59682,7 +59682,7 @@ toughness=4 [card] name=Owlbear Cub auto=@combat(attacking) source(this) restriction{type(land|opponentbattlefield)~morethan~7}:name(Look top 8 cards) reveal:8 optionone name(Get creature) target(creature|reveal) moveto(mybattlefield) and!( transforms((,newability[ninjutsu])) oneshot )! optiononeend optiontwo name(Put on bottom) target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend -text=Mama's Coming â?? Whenever Owlbear Cub attacks a player who controls eight or more lands, look at the top eight cards of your library. You may put a creature card from among them onto the battlefield tapped and attacking that player. Put the rest on the bottom of your library in a random order. +text=Mama's Coming - Whenever Owlbear Cub attacks a player who controls eight or more lands, look at the top eight cards of your library. You may put a creature card from among them onto the battlefield tapped and attacking that player. Put the rest on the bottom of your library in a random order. mana={2}{G} type=Creature subtype=Bird Bear @@ -60304,7 +60304,7 @@ toughness=2 [card] name=Passageway Seer auto=_INITIATIVE_CONTROLLER_ -@each my endofturn restriction{compare(pinitiative)~morethan~0}:name(Put 1/1 counter) all(this) counter(1/1) +auto=@each my endofturn restriction{compare(pinitiative)~morethan~0}:name(Put 1/1 counter) all(this) counter(1/1) abilities=lifelink text=Lifelink -- When Passageway Seer enters the battlefield, you take the initiative. -- At the beginning of your end step, if you have the initiative, put a +1/+1 counter on Passageway Seer. mana={3}{B} @@ -61099,12 +61099,12 @@ toughness=2 name=Phyrexian Dreadnought abilities=trample auto=choice name(Sacrifice this) sacrifice -auto=choice name(Sacrifice 12 creatures with power 1 or greater) sacrifice target(<12>creature[power>=1]|mybattlefield) -auto=choice name(Sacrifice 6 creatures with power 2 or greater) sacrifice target(<6>creature[power>=2]|mybattlefield) -auto=choice name(Sacrifice 4 creatures with power 3 or greater) sacrifice target(<4>creature[power>=3]|mybattlefield) -auto=choice name(Sacrifice 3 creatures with power 4 or greater) sacrifice target(<3>creature[power>=4]|mybattlefield) -auto=choice name(Sacrifice 2 creatures with power 6 or greater) sacrifice target(<2>creature[power>=6]|mybattlefield) -auto=choice name(Sacrifice 1 creature with power 12 or greater) sacrifice target(creature[power>=12]|mybattlefield) +auto=choice name(Sacrifice 12 creatures with power 1 or greater) sacrifice notAtarget(<12>creature[power>=1]|mybattlefield) +auto=choice name(Sacrifice 6 creatures with power 2 or greater) sacrifice notAtarget(<6>creature[power>=2]|mybattlefield) +auto=choice name(Sacrifice 4 creatures with power 3 or greater) sacrifice notAtarget(<4>creature[power>=3]|mybattlefield) +auto=choice name(Sacrifice 3 creatures with power 4 or greater) sacrifice notAtarget(<3>creature[power>=4]|mybattlefield) +auto=choice name(Sacrifice 2 creatures with power 6 or greater) sacrifice notAtarget(<2>creature[power>=6]|mybattlefield) +auto=choice name(Sacrifice 1 creature with power 12 or greater) sacrifice notAtarget(creature[power>=12]|mybattlefield) text=Trample -- When Phyrexian Dreadnought enters the battlefield, sacrifice it unless you sacrifice any number of creatures with total power 12 or greater. mana={1} type=Artifact Creature @@ -63658,7 +63658,7 @@ auto=if type(horror[-tapped]|mybattlefield)~morethan~16 then choice name(Tap 17 auto=if type(horror[-tapped]|mybattlefield)~morethan~17 then choice name(Tap 18 horror) name(Tap 18 horror) target(<18>horror[-tapped]|myBattlefield) transforms((,newability[tap],newability[name(Exile 19 instants or sorcerys) target(<19>*[instant;sorcery]|graveyard) activate castcard(normal) and!(transforms((,newability[gainedexiledeath])) forever)!])) forever auto=if type(horror[-tapped]|mybattlefield)~morethan~18 then choice name(Tap 19 horror) name(Tap 19 horror) target(<19>horror[-tapped]|myBattlefield) transforms((,newability[tap],newability[name(Exile 20 instants or sorcerys) target(<20>*[instant;sorcery]|graveyard) activate castcard(normal) and!(transforms((,newability[gainedexiledeath])) forever)!])) forever auto=if type(horror[-tapped]|mybattlefield)~morethan~19 then choice name(Tap 20 horror) name(Tap 20 horror) target(<20>horror[-tapped]|myBattlefield) transforms((,newability[tap],newability[name(Exile 21 instants or sorcerys) target(<21>*[instant;sorcery]|graveyard) activate castcard(normal) and!(transforms((,newability[gainedexiledeath])) forever)!])) forever -text=Replicateâ??Tap an untapped Horror you control. (When you cast this spell, copy it for each time you paid its replicate cost. You may choose new targets for the copies.) -- Exile target instant or sorcery card from a graveyard and copy it. You may cast the copy without paying its mana cost. -- Exile Psionic Ritual. +text=Replicate-Tap an untapped Horror you control. (When you cast this spell, copy it for each time you paid its replicate cost. You may choose new targets for the copies.) -- Exile target instant or sorcery card from a graveyard and copy it. You may cast the copy without paying its mana cost. -- Exile Psionic Ritual. mana={4}{U}{U} type=Sorcery [/card] @@ -66389,7 +66389,7 @@ toughness=1 [card] name=Recruitment Drive auto=name(Roll a d20) rolld20 20 winability token(Knight,Creature Knight,2/2,white)*3 winabilityend loseability if compare(lastrollresult)~lessthan~10 then token(Soldier,Creature Soldier,1/1,white)*2 else token(Knight,Creature Knight,2/2,white)*2 loseabilityend rolld20end -text=Roll a d20. -- 1â??9 | Create two 1/1 white Soldier creature tokens. -- 10â??19 | Create two 2/2 white Knight creature tokens. -- 20 | Create three 2/2 white Knight creature tokens. +text=Roll a d20. -- 1-9 | Create two 1/1 white Soldier creature tokens. -- 10-19 | Create two 2/2 white Knight creature tokens. -- 20 | Create three 2/2 white Knight creature tokens. mana={2}{W} type=Sorcery [/card] @@ -73245,7 +73245,7 @@ name=Seraph of the Scales abilities=flying auto={W}:vigilance auto={B}:deathtouch -auto=_DIES_create(Spirit:creature Spirit:1/1:white,black:flying)*2 +auto=_DIES__AFTERLIFETOKEN_*2 text=Flying -- {W}: Seraph of the Scales gains vigilance until end of turn. -- {B}: Seraph of the Scales gains deathtouch until end of turn. -- Afterlife 2 (When this creature dies, create two 1/1 white and black Spirit creature tokens with flying.) mana={2}{W}{B} type=Creature @@ -79395,7 +79395,7 @@ type=Sorcery [card] name=Split the Spoils target=*[-instant;-sorcery]|mygraveyard -auto=moveto(myreveal) and!( transforms((,newability[[if compare(genrand2)~equalto~1 then moveto(myexile) else moveto(myhand)])) oneshot )! +auto=moveto(myreveal) and!( transforms((,newability[if compare(genrand2)~equalto~1 then moveto(myexile) else moveto(myhand)])) oneshot )! text=Exile up to five target permanent cards from your graveyard and separate them into two piles. An opponent chooses one of those piles. Put that pile into your hand and the other into your graveyard. (Piles can be empty.) mana={2}{G} type=Sorcery @@ -79599,8 +79599,8 @@ toughness=5 [/card] [card] name=Springbloom Druid -aicode=may sacrifice target(land|myBattlefield) && activate moveTo(myBattlefield) and!(tap(noevent))! target(land[basic]|myLibrary) -auto=may name(Sacrifice a land) sacrifice target(land|myBattlefield) && 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 limit:1 +aicode=may sacrifice notAtarget(land|myBattlefield) && activate moveTo(myBattlefield) and!(tap(noevent))! target(land[basic]|myLibrary) +auto=may name(Sacrifice a land) sacrifice notAtarget(land|myBattlefield) && 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 limit:1 text=When Springbloom Druid enters the battlefield, you may sacrifice a land. If you do, search your library for up to two basic land cards, put them onto the battlefield tapped, then shuffle your library. mana={2}{G} type=Creature @@ -80617,7 +80617,7 @@ name=Stirring Bard abilities=defender auto=_INITIATIVE_CONTROLLER_ auto={T}:name(Creature gains menace and haste) target(creature|battlefield) transforms((,newability[haste],newability[menace])) ueot -text=Defender -- When Stirring Bard enters the battlefield, you take the initiative. -- Mantle of Inspiration â?? {T}: Target creature gains menace and haste until end of turn. +text=Defender -- When Stirring Bard enters the battlefield, you take the initiative. -- Mantle of Inspiration - {T}: Target creature gains menace and haste until end of turn. mana={3}{R} type=Creature subtype=Dragon Bard @@ -80858,7 +80858,7 @@ toughness=2 [/card] [card] name=Storm Fleet Arsonist -auto=if raid then ability$!sacrifice target(creature|mybattlefield)!$ opponent +auto=if raid then ability$!sacrifice notAtarget(creature|mybattlefield)!$ opponent text=Raid - When Storm Fleet Arsonist enters the battlefield, if you attacked with a creature this turn, target opponent sacrifices a permanent. mana={4}{R} type=Creature @@ -82952,7 +82952,7 @@ toughness=2 [card] name=Syndicate Messenger abilities=flying -auto=_DIES_create(Spirit:creature Spirit:1/1:white,black:flying) +auto=_DIES__AFTERLIFETOKEN_ text=Flying -- Afterlife 1 (When this creature dies, create a 1/1 white and black Spirit creature token with flying.) mana={3}{W} type=Creature @@ -84018,7 +84018,7 @@ toughness=4 [card] name=Tectonic Hellion abilities=haste -auto=_ATTACKING_if type(land|mybattlefield)~morethan~type(land|opponentbattlefield) then sacrifice target(<2>land|mybattlefield) else ability$!name(Sacrifice 2 lands) notatarget(<2>land|mybattlefield) sacrifice!$ opponent +auto=_ATTACKING_if type(land|mybattlefield)~morethan~type(land|opponentbattlefield) then sacrifice notAtarget(<2>land|mybattlefield) else ability$!name(Sacrifice 2 lands) notatarget(<2>land|mybattlefield) sacrifice!$ opponent text=Haste -- Whenever Tectonic Hellion attacks, each player who controls the most lands sacrifices two lands. mana={5}{R}{R} type=Creature @@ -85258,7 +85258,7 @@ auto=@takeninitiativeof(player) restriction{compare(type:*[nodngplr]:mybattlefie auto=@each my upkeep restriction{compare(type:*[nodngplr]:mybattlefieldplustype:*[nodngopp]:opponentbattlefieldplusend)~equalto~0,compare(type:*[dungeon]:mycommandzone)~equalto~0}:name(Venture into Undercity) name(Venture into Undercity) name(Venture into Undercity) activate castcard(noevent named!:undercity:!) and!( moveto(ownercommandzone) and!( counter(0/0.1.Explore) )! )! auto=@each my upkeep restriction{compare(type:*[nodngplr]:mybattlefieldplustype:*[nodngopp]:opponentbattlefieldplusend)~equalto~0,compare(type:*[dungeon]:mycommandzone)~morethan~0}:name(Venture into dungeon) name(Venture into dungeon) all(*[dungeon]|mycommandzone) counter(0/0.1.Explore) auto=@combatdamageof(player) restriction{compare(pinitiative)~morethan~0} turnlimited:name(Opponent takes the initiative) moveto(opponentBattlefield) and!( transforms((,newability[taketheinitiative controller])) forever )! -text=Whenever one or more creatures a player controls deal combat damage to you, that player takes the initiative. -- Whenever you take the initiative and at the beginning of your upkeep, venture into Undercity. (If youâ??re in a dungeon, advance to the next room. If youâ??re not, enter Undercity. You can take the initiative even if you already have it.) +text=Whenever one or more creatures a player controls deal combat damage to you, that player takes the initiative. -- Whenever you take the initiative and at the beginning of your upkeep, venture into Undercity. (If you're in a dungeon, advance to the next room. If you're not, enter Undercity. You can take the initiative even if you already have it.) type=Emblem [/card] [card] @@ -86420,7 +86420,7 @@ toughness=7 [card] name=Thunderwave auto=name(Roll a d20) rolld20 20 winability damage:6 all(creature|opponentbattlefield) winabilityend loseability if compare(lastrollresultplustype:*:myhandplusend)~lessthan~10 then damage:3 all(creature|battlefield) else target(creature|battlefield) damage:3 loseabilityend rolld20end -text=Roll a d20. -- 1â??9 | Thunderwave deals 3 damage to each creature. -- 10â??19 | You may choose a creature. Thunderwave deals 3 damage to each creature not chosen this way. -- 20 | Thunderwave deals 6 damage to each creature your opponents control. +text=Roll a d20. -- 1-9 | Thunderwave deals 3 damage to each creature. -- 10-19 | You may choose a creature. Thunderwave deals 3 damage to each creature not chosen this way. -- 20 | Thunderwave deals 6 damage to each creature your opponents control. mana={2}{R}{R} type=Sorcery [/card] @@ -89564,7 +89564,7 @@ autocommandzone=@counteradded(0/0,1,Explore) from(Undercity|mycommandzone) restr autocommandzone=@counteradded(0/0,1,Explore) from(Undercity|mycommandzone) restriction{compare(hascntexplore)~equalto~4,compare(hascntarena)~equalto~1}:thisforeach(variable{type:*[twodngtrg]:myBattlefieldplus1plusend}) ability$!name(Archives or Catacombs) name(Archives or Catacombs) transforms((,newability[choice name(Draw a card) draw:1 controller],newability[choice name(Create skeleton) name(Create skeleton) token(Skeleton^Creature Skeleton^4/1^black^menace)])) oneshot!$ controller autocommandzone=@counteradded(0/0,1,Explore) from(Undercity|mycommandzone) restriction{compare(hascntexplore)~equalto~5}:choice name(Dungeon completed) all(Undercity|mycommandzone) completedungeon:1 controller autocommandzone=@counteradded(0/0,1,Explore) from(Undercity|mycommandzone) restriction{compare(hascntexplore)~equalto~5}:thisforeach(variable{type:*[twodngtrg]:myBattlefieldplus1plusend}) ability$!name(Throne of the Dead Three) name(Throne of the Dead Three) reveal:10 optionone name(Choose a creature) target(creature|reveal) moveto(ownerlibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Put back) target(*|reveal) moveto(ownerlibrary) and!( all(*|reveal) moveto(ownerlibrary) and!( shuffle )! )! optiontwoend afterrevealed all(tobecast|mylibrary) moveto(ownerlibrary) and!( moveTo(myBattlefield) and!( transforms((,newability[counter(1/1.3)],newability[counter(0/0,1,Hexproof)],newability[this(counter{0/0.1.Hexproof}>=1) opponentshroud],newability[phaseaction[my untap once sourceinplay] removeallcounters(0/0.1.Hexproof)])) ueot )! )! afterrevealedend revealend!$ controller -text=You canâ??t enter this dungeon unless you "venture into Undercity." -- Secret Entrance â?? Search your library for a basic land card, reveal it, put it into your hand, then shuffle. (Leads to: Forge, Lost Well) -- Forge â?? Put two +1/+1 counters on target creature. (Leads to: Trap!, Arena) -- Lost Well â?? Scry 2. (Leads to: Arena, Stash) -- Trap! â?? Target player loses 5 life. (Leads to: Archives) -- Arena â?? Goad target creature. (Leads to: Archives, Catacombs) -- Stash â?? Create a Treasure token. (Leads to: Catacombs) -- Archives â?? Draw a card. (Leads to: Throne of the Dead Three) -- Catacombs â?? Create a 4/1 black Skeleton creature token with menace. (Leads to: Throne of the Dead Three) -- Throne of the Dead Three â?? Reveal the top ten cards of your library. Put a creature card from among them onto the battlefield with three +1/+1 counters on it. It gains hexproof until your next turn. Then shuffle. +text=You can't enter this dungeon unless you "venture into Undercity." -- Secret Entrance - Search your library for a basic land card, reveal it, put it into your hand, then shuffle. (Leads to: Forge, Lost Well) -- Forge - Put two +1/+1 counters on target creature. (Leads to: Trap!, Arena) -- Lost Well - Scry 2. (Leads to: Arena, Stash) -- Trap! - Target player loses 5 life. (Leads to: Archives) -- Arena - Goad target creature. (Leads to: Archives, Catacombs) -- Stash - Create a Treasure token. (Leads to: Catacombs) -- Archives - Draw a card. (Leads to: Throne of the Dead Three) -- Catacombs - Create a 4/1 black Skeleton creature token with menace. (Leads to: Throne of the Dead Three) -- Throne of the Dead Three - Reveal the top ten cards of your library. Put a creature card from among them onto the battlefield with three +1/+1 counters on it. It gains hexproof until your next turn. Then shuffle. type=Dungeon [/card] [card] @@ -91850,7 +91850,7 @@ toughness=1 name=Vicious Battlerager auto=_INITIATIVE_CONTROLLER_ auto=@combat(blocked) source(this) from(creature|opponentbattlefield):name(Deal 5 damage) damage:5 opponent -text=When Vicious Battlerager enters the battlefield, you take the initiative. -- Spiked Retribution â?? Whenever Vicious Battlerager becomes blocked by a creature, that creature's controller loses 5 life. +text=When Vicious Battlerager enters the battlefield, you take the initiative. -- Spiked Retribution - Whenever Vicious Battlerager becomes blocked by a creature, that creature's controller loses 5 life. mana={3}{B} type=Creature subtype=Dwarf Barbarian @@ -93386,7 +93386,7 @@ auto=@dierolled(*|mybattlefield) result(17) from(controller):may name(Cast 2 ins auto=@dierolled(*|mybattlefield) result(18) from(controller):may name(Cast 2 instants or sorcerys) name(Cast 2 instants or sorcerys) target(*[-land;-creature;-artifact;-enchantment;-planeswalker;counter{0/0.1.WandExiledCast}]|opponentexile) activate castcard(normal) auto=@dierolled(*|mybattlefield) result(19) from(controller):may name(Cast 2 instants or sorcerys) name(Cast 2 instants or sorcerys) target(*[-land;-creature;-artifact;-enchantment;-planeswalker;counter{0/0.1.WandExiledCast}]|opponentexile) activate castcard(normal) auto=@dierolled(*|mybattlefield) result(20) from(controller):may name(Cast 3 instants or sorcerys) name(Cast 3 instants or sorcerys) target(*[-land;-creature;-artifact;-enchantment;-planeswalker;counter{0/0.1.WandExiledCast}]|opponentexile) activate castcard(normal) -text={4}, {T}: Roll a d20. Each opponent exiles cards from the top of their library until they exile an instant or sorcery card, then shuffles the rest into their library. You may cast up to X instant and/or sorcery spells from among cards exiled this way without paying their mana costs. -- 1â??9 | X is one. -- 10â??19 | X is two. -- 20 | X is three. +text={4}, {T}: Roll a d20. Each opponent exiles cards from the top of their library until they exile an instant or sorcery card, then shuffles the rest into their library. You may cast up to X instant and/or sorcery spells from among cards exiled this way without paying their mana costs. -- 1-9 | X is one. -- 10-19 | X is two. -- 20 | X is three. mana={3}{R} type=Artifact [/card] @@ -94608,11 +94608,11 @@ type=Sorcery [card] name=Wild Magic Surge target=*|opponentbattlefield -auto=if cantargetcard(*[creature]|*) then (destroy and!( transforms((,newability[name(Put a creature in play) target(*[zpos=findfirsttypecreature]|mylibrary) moveto(mybattlefield) and!( all(other *[zpos<=findfirsttypecreature]|mylibrary) moveto(myreveal) and!( bottomoflibrary )!])) oneshot )! -auto=if cantargetcard(*[land]|*) then (destroy and!( transforms((,newability[name(Put a land in play) target(*[zpos=findfirsttypeland]|mylibrary) moveto(mybattlefield) and!( all(other *[zpos<=findfirsttypeland]|mylibrary) moveto(myreveal) and!( bottomoflibrary )!])) oneshot )! -auto=if cantargetcard(*[artifact]|*) then (destroy and!( transforms((,newability[name(Put an artifact in play) target(*[zpos=findfirsttypeartifact]|mylibrary) moveto(mybattlefield) and!( all(other *[zpos<=findfirsttypeartifact]|mylibrary) moveto(myreveal) and!( bottomoflibrary )!])) oneshot )! -auto=if cantargetcard(*[planeswalker]|*) then (destroy and!( transforms((,newability[name(Put a planeswalker in play) target(*[zpos=findfirsttypeplaneswalker]|mylibrary) moveto(mybattlefield) and!( all(other *[zpos<=findfirsttypeplaneswalker]|mylibrary) moveto(myreveal) and!( bottomoflibrary )!])) oneshot )! -auto=if cantargetcard(*[enchantment]|*) then (destroy and!( transforms((,newability[name(Put an enchantment in play) target(*[zpos=findfirsttypeenchantment]|mylibrary) moveto(mybattlefield) and!( all(other *[zpos<=findfirsttypeenchantment]|mylibrary) moveto(myreveal) and!( bottomoflibrary )!])) oneshot )! +auto=if cantargetcard(*[creature]|*) then destroy and!( transforms((,newability[name(Put a creature in play) target(*[zpos=findfirsttypecreature]|mylibrary) moveto(mybattlefield) and!( all(other *[zpos<=findfirsttypecreature]|mylibrary) moveto(myreveal) and!( bottomoflibrary )!)!])) oneshot )! +auto=if cantargetcard(*[land]|*) then destroy and!( transforms((,newability[name(Put a land in play) target(*[zpos=findfirsttypeland]|mylibrary) moveto(mybattlefield) and!( all(other *[zpos<=findfirsttypeland]|mylibrary) moveto(myreveal) and!( bottomoflibrary )!)!])) oneshot )! +auto=if cantargetcard(*[artifact]|*) then destroy and!( transforms((,newability[name(Put an artifact in play) target(*[zpos=findfirsttypeartifact]|mylibrary) moveto(mybattlefield) and!( all(other *[zpos<=findfirsttypeartifact]|mylibrary) moveto(myreveal) and!( bottomoflibrary )!)!])) oneshot )! +auto=if cantargetcard(*[planeswalker]|*) then destroy and!( transforms((,newability[name(Put a planeswalker in play) target(*[zpos=findfirsttypeplaneswalker]|mylibrary) moveto(mybattlefield) and!( all(other *[zpos<=findfirsttypeplaneswalker]|mylibrary) moveto(myreveal) and!( bottomoflibrary )!)!])) oneshot )! +auto=if cantargetcard(*[enchantment]|*) then destroy and!( transforms((,newability[name(Put an enchantment in play) target(*[zpos=findfirsttypeenchantment]|mylibrary) moveto(mybattlefield) and!( all(other *[zpos<=findfirsttypeenchantment]|mylibrary) moveto(myreveal) and!( bottomoflibrary )!)!])) oneshot )! text=Destroy target permanent an opponent controls. Its controller reveals cards from the top of their library until they reveal a permanent card that shares a card type with that permanent. They put that card onto the battlefield and the rest on the bottom of their library in a random order. mana={R}{R} type=Instant @@ -96823,7 +96823,7 @@ abilities=backgroundpartner auto=@movedto(creature|graveyard) from(library):name(Create horror) token(Horror,Creature Horror,1/1,black) auto={1}{T}:name(You mill 3 cards) deplete:3 controller auto={1}{T}:name(Opponent mills 3 cards) deplete:3 opponent -text=Hive Mind â?? Whenever a player mills one or more creature cards, you create a 1/1 black Horror creature token. -- {1}, {T}: Target player mills three cards. -- Choose a Background (You can have a Background as a second commander.) +text=Hive Mind - Whenever a player mills one or more creature cards, you create a 1/1 black Horror creature token. -- {1}, {T}: Target player mills three cards. -- Choose a Background (You can have a Background as a second commander.) mana={2}{U} type=Legendary Creature subtype=Horror diff --git a/projects/mtg/bin/Res/sets/primitives/mtg.txt b/projects/mtg/bin/Res/sets/primitives/mtg.txt index 8cb3ee07d..b16ab636a 100644 --- a/projects/mtg/bin/Res/sets/primitives/mtg.txt +++ b/projects/mtg/bin/Res/sets/primitives/mtg.txt @@ -29270,7 +29270,7 @@ toughness=2 [card] name=Diabolic Edict target=player -auto=ability$!name(sacrifice) target(creature|mybattlefield) sacrifice!$ targetedplayer +auto=ability$!name(sacrifice) notAtarget(creature|mybattlefield) sacrifice!$ targetedplayer text=Target player sacrifices a creature. mana={1}{B} type=Instant @@ -38088,7 +38088,7 @@ name=Extricator of Sin backside=Extricator of Flesh restriction=compare(isflipped)~equalto~0 anyzone={0}:doubleside(backside) -auto=may name(Sacrifice permanent) sacrifice target(*|mybattlefield) && token(Eldrazi Horror) controller +auto=may name(Sacrifice permanent) sacrifice notAtarget(*|mybattlefield) && token(Eldrazi Horror) controller auto=@each upkeep restriction{delirium}:flip(backside) text=When Extricator of Sin enters the battlefield, you may sacrifice another permanent. If you do, put a 3/2 colorless Eldrazi Horror creature token onto the battlefield. -- Delirium -- At the beginning of your upkeep, if there are four or more card types among cards in your graveyard, transform Extricator of Sin. // Extricator of Flesh mana={2}{W} @@ -57412,7 +57412,7 @@ type=Enchantment [card] name=Imperial Edict target=opponent -auto=ability$!name(sacrifice) target(creature|mybattlefield) destroy!$ targetedplayer +auto=ability$!name(sacrifice) notAtarget(creature|mybattlefield) destroy!$ targetedplayer text=Target opponent chooses a creature he or she controls. Destroy it. mana={1}{B} type=Sorcery @@ -76475,8 +76475,8 @@ toughness=4 [/card] [card] name=Morkrut Necropod -auto=_ATTACKING_sacrifice target(other creature,land|mybattlefield) -auto=@combat(blocking) source(this):sacrifice target(other creature,land|mybattlefield) +auto=_ATTACKING_sacrifice notAtarget(other creature,land|mybattlefield) +auto=@combat(blocking) source(this):sacrifice notAtarget(other creature,land|mybattlefield) text=Menace (This creature can't be blocked except by two or more creatures.) -- Whenever Morkrut Necropod attacks or blocks, sacrifice another creature or land. mana={5}{B} abilities=menace @@ -92697,7 +92697,7 @@ subtype=Arcane [card] name=Read the Bones aicode=activate transforms((,newability[draw:2 controller],newability[life:-2 controller])) oneshot -auto=scry:2 scrycore delayed draw:2 controller && life:2 controller scrycoreend scryend +auto=scry:2 scrycore delayed draw:2 controller && life:-2 controller scrycoreend scryend text=Scry 2, then draw two cards. You lose 2 life. (To scry 2, look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.) mana={2}{B} type=Sorcery diff --git a/projects/mtg/bin/Res/sets/primitives/planeswalkers.txt b/projects/mtg/bin/Res/sets/primitives/planeswalkers.txt index f8761ec07..6922c1ec9 100644 --- a/projects/mtg/bin/Res/sets/primitives/planeswalkers.txt +++ b/projects/mtg/bin/Res/sets/primitives/planeswalkers.txt @@ -351,7 +351,7 @@ name=B.O.B. (Bevy of Beebles) auto=counter(0/0,4,Loyalty) auto=token(Beeble,Creature Beeble,1/1,blue)*4 auto=@counteradded(0/0,1,Loyalty) from(this):token(Beeble,Creature Beeble,1/1,blue) -auto=@counterremoved(0/0,1,Loyalty) from(this):sacrifice target(beeble|myBattlefield) +auto=@counterremoved(0/0,1,Loyalty) from(this):sacrifice notAtarget(beeble|myBattlefield) auto={C(0/0,1,Loyalty)}:name(+1: X Beebles can't be blocked) target(creature[Beeble]|myBattlefield) transforms((,newability[unblockable])) ueot auto={C(0/0,-1,Loyalty)}:name(-1: Draw a card) draw:1 controller text=As B.O.B. enters the battlefield, create four 1/1 blue Beeble creature tokens. -- The number of loyalty counters on B.O.B. is equal to the number of Beebles you control. (Create or sacrifice Beebles whenever B.O.B. gains or loses loyalty.) -- +1: Up to X target Beebles can't be blocked this turn, where X is the number of cards in your hand. -- -1: Draw a card. @@ -1628,7 +1628,7 @@ subtype=Kaya [card] name=Kaya, Ghost Assassin auto=counter(0/0,5,loyalty) -auto={C(0/0,0,Loyalty)}:name(+0: Exile Kaya or creature) ability$!name(Choose creature or this) choice name(Kaya, Ghost Assassin) all(this) (blink)ueot && life:-2 controller _choice name(Creature) target(creature) (blink)ueot && life:-2 controller!$ controller +auto={C(0/0,0,Loyalty)}:name(+0: Exile Kaya or creature) ability$!name(Choose creature or this) choice name(Kaya, Ghost Assassin) all(this) (blink)ueot && life:-2 controller _choice name(Creature) target(creature) (blink)ueot controller!$ controller && life:-2 auto={C(0/0,-1,Loyalty)}:name(-1: Each opponent loses life and you gain) life:-2 opponent && life:2 controller auto={C(0/0,-2,Loyalty)}:name(-2: Each opponent discard and draw) ability$!name(discard a card) notatarget(*|myHand) reject!$ opponent && draw:1 controller text=0: Exile Kaya, Ghost Assassin or up to one target creature. Return that card to the battlefield under its owner's control at the beginning of your next upkeep. You lose 2 life. -- -1: Each opponent loses 2 life and you gain 2 life. -- -2: Each opponent discards a card and you draw a card. @@ -1754,7 +1754,7 @@ auto=counter(0/0,6,loyalty) auto=@movedTo(creature|Graveyard) from(mybattlefield):name(Draw a card) draw:1 controller auto={C(0/0,1,Loyalty)}:name(+1: Create a 2/2 Zombie) _ZOMBIETOKEN_ auto={C(0/0,-4,Loyalty)}:name(-4: Each player sacrifices two creatures) transforms((,newability[name(Sacrifice 2 creatures) target(<2>creature|mybattlefield) sacrifice],newability[ability$!name(Sacrifice 2 creatures) name(Sacrifice 2 creatures) target(<2>creature|mybattlefield) sacrifice!$ opponent])) forever -auto={C(0/0,-9,Loyalty)}:name(-9: Opponent sacrifices permanents) transforms((,newability[if type(land|opponentBattlefield)~morethan~1 then ability$!name(Sacrifice all lands except one) name(Sacrifice all lands except one) sacrifice target(land|mybattlefield)!$ opponent],newability[if type(creature|opponentBattlefield)~morethan~1 then ability$!name(Sacrifice all creatures except one) name(Sacrifice all creatures except one) sacrifice notatarget(creature|mybattlefield)!$ opponent],newability[if type(enchantment|opponentBattlefield)~morethan~1 then ability$!name(Sacrifice all enchantments except one) name(Sacrifice all enchantments except one) sacrifice notatarget(enchantment|mybattlefield)!$ opponent],newability[if type(artifact|opponentBattlefield)~morethan~1 then ability$!name(Sacrifice all artifacts except one) name(Sacrifice all artifacts except one) sacrifice notatarget(artifact|mybattlefield)!$ opponent],newability[if type(planeswalker|opponentBattlefield)~morethan~1 then ability$!name(Sacrifice all planeswalkers except one) name(Sacrifice all planeswalkers except one) sacrifice notatarget(planeswalker|mybattlefield)!$ opponent])) forever +auto={C(0/0,-9,Loyalty)}:name(-9: Opponent sacrifices permanents) transforms((,newability[if type(land|opponentBattlefield)~morethan~1 then ability$!name(Sacrifice all lands except one) name(Sacrifice all lands except one) sacrifice notAtarget(land|mybattlefield)!$ opponent],newability[if type(creature|opponentBattlefield)~morethan~1 then ability$!name(Sacrifice all creatures except one) name(Sacrifice all creatures except one) sacrifice notatarget(creature|mybattlefield)!$ opponent],newability[if type(enchantment|opponentBattlefield)~morethan~1 then ability$!name(Sacrifice all enchantments except one) name(Sacrifice all enchantments except one) sacrifice notatarget(enchantment|mybattlefield)!$ opponent],newability[if type(artifact|opponentBattlefield)~morethan~1 then ability$!name(Sacrifice all artifacts except one) name(Sacrifice all artifacts except one) sacrifice notatarget(artifact|mybattlefield)!$ opponent],newability[if type(planeswalker|opponentBattlefield)~morethan~1 then ability$!name(Sacrifice all planeswalkers except one) name(Sacrifice all planeswalkers except one) sacrifice notatarget(planeswalker|mybattlefield)!$ opponent])) forever text=Whenever a creature you control dies, draw a card. -- +1: Create a 2/2 black Zombie creature token. -- -4: Each player sacrifices two creatures. -- -9: Each opponent chooses a permanent they control of each permanent type and sacrifices the rest. mana={4}{B}{B} type=Legendary Planeswalker