diff --git a/projects/mtg/bin/Res/sets/primitives/_macros.txt b/projects/mtg/bin/Res/sets/primitives/_macros.txt index 4a70ab31f..9ad15b397 100644 --- a/projects/mtg/bin/Res/sets/primitives/_macros.txt +++ b/projects/mtg/bin/Res/sets/primitives/_macros.txt @@ -55,7 +55,7 @@ #AUTO_DEFINE _CONSTELLATION_ @movedTo(enchantment|myBattlefield): # Amass, Set WAR -#AUTO_DEFINE _AMASS_($c) if type(army|mybattlefield)~morethan~0 then counter(1/1,$c) notATarget(army|myBattlefield) else create(Zombie Army:creature Zombie Army:0/0:black) and!(counter(1/1,$c) notATarget(army|myBattlefield))! +#AUTO_DEFINE _AMASS_($c) if type(army|mybattlefield)~morethan~0 then counter(1/1.$c) notATarget(army|myBattlefield) else create(Zombie Army:creature Zombie Army:0/0:black) and!(counter(1/1.$c) notATarget(army|myBattlefield))! # Scry, Evergreen #AUTO_DEFINE _SCRY_($c) scry:$c scrycore delayed dontshow donothing scrycoreend scryend @@ -108,7 +108,7 @@ #AUTO_DEFINE _PROLIFERATE_ name(Proliferate) notatarget(proliferation) proliferate # Scavenge -#AUTO_DEFINE _SCAVENGE_($power) name(scavenge) counter(1/1,$power) target(creature) asSorcery +#AUTO_DEFINE _SCAVENGE_($power) name(scavenge) counter(1/1.$power) target(creature) asSorcery # Monstrosity, not implemented #AUTO_DEFINE _MONSTROSITY_($cost,$c) name(Monstrosity) this(cantargetcard(*[-monstrous]) {$cost}:becomes(monstrous) forever && counter(1/1.$c) @@ -143,7 +143,7 @@ #AUTO_DEFINE _CASTHISTORIC_ @movedTo(*[artifact;legendary;saga]|mystack): # Mentor, still not working with enhancements, pump effects -#AUTO_DEFINE _MENTOR_ @combat(attacking) source(this):counter(1/1,1) target(other creature[attacking;power<=pminus1minusend]|myBattlefield) +#AUTO_DEFINE _MENTOR_ @combat(attacking) source(this):counter(1/1) target(other creature[attacking;power<=pminus1minusend]|myBattlefield) # Surveil, like scry, using parameters causes bugs so each value has to be indicated #AUTO_DEFINE _SURVEIL1_ name(Surveil 1) reveal:psurveiloffsetplus1plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend afterrevealed surveil afterrevealedend revealend diff --git a/projects/mtg/bin/Res/sets/primitives/borderline.txt b/projects/mtg/bin/Res/sets/primitives/borderline.txt index 690b05673..92f08bb7a 100644 --- a/projects/mtg/bin/Res/sets/primitives/borderline.txt +++ b/projects/mtg/bin/Res/sets/primitives/borderline.txt @@ -1,7 +1,7 @@ grade=borderline #Bordeline Primitives Pack for Wagic the Homebrew. #Please keep these card alphabetized, and try to have the "name=" line at the top of each card -#I sorted this programmatically - Thanks to Vitty85 22-05-2023 +#I sorted this programmatically - Thanks to Vitty85 23-05-2023 [card] name=+2 Mace auto={3}:equip @@ -2133,8 +2133,7 @@ toughness=8 [/card] [card] name=Ancient Stone Idol -abilities=flash, trample -anyzone=foreach(creature[attacking]|battlefield) changecost(colorless:-1) forcedalive +abilities=flash,trample,affinityattackingcreatures auto=_DIES_create(construct artifact:creature construct artifact:6/12:colorless:trample) text=Flash -- This spell costs {1} less to cast for each attacking creature. -- Trample -- When Ancient Stone Idol dies, create a 6/12 colorless Construct artifact creature token with trample. mana={10} @@ -2424,7 +2423,17 @@ type=Instant [card] name=Angelic Observer abilities=flying -anyzone=foreach(Citizen|myBattlefield) changecost(colorless:-1) forcedalive +anyzone=aslongas(citizen|mybattlefield) altercost(colorless,-1) >0 +anyzone=aslongas(citizen|mybattlefield) altercost(colorless,-1) >1 +anyzone=aslongas(citizen|mybattlefield) altercost(colorless,-1) >2 +anyzone=aslongas(citizen|mybattlefield) altercost(colorless,-1) >3 +anyzone=aslongas(citizen|mybattlefield) altercost(colorless,-1) >4 +anyzone=aslongas(citizen|mybattlefield) altercost(colorless,-1) >5 +anyzone=aslongas(citizen|mybattlefield) altercost(colorless,-1) >6 +anyzone=aslongas(citizen|mybattlefield) altercost(colorless,-1) >7 +anyzone=aslongas(citizen|mybattlefield) altercost(colorless,-1) >8 +anyzone=aslongas(citizen|mybattlefield) altercost(colorless,-1) >9 +anyzone=aslongas(citizen|mybattlefield) altercost(colorless,-1) >10 text=This spell costs {1} less to cast for each Citizen you control. -- Flying mana={5}{W} type=Creature @@ -3833,8 +3842,7 @@ toughness=5 [/card] [card] name=Argivian Phalanx -abilities=vigilance -anyzone=foreach(creature|mybattlefield) changecost(colorless:-1) forcedalive +abilities=vigilance,affinitycontrollercreatures text=This spell costs {1} less to cast for each creature you control. -- Vigilance mana={5}{W} type=Creature @@ -4534,7 +4542,7 @@ type=Conspiracy name=Assimilate Essence target=*[creature;battle]|stack auto=transforms((,newability[pay[[{4}]] name(pay 4 mana) counter(0/0.1.PaidMana)?fizzle])) forever -auto=emblem transforms((,newability[@counteradded(0/0.1.PaidMana) from(*[creature;battle]|stack) turnlimited:name(Incubate 2) name(Incubate 2) activate castcard(noevent costx!:2:! named!:Incubator:!)])) ueot +auto=emblem transforms((,newability[@counteradded(0/0.1.PaidMana) from(*[creature;battle]|stack) turnlimited:name(Incubate 2) name(Incubate 2) token(Incubator) and!( counter(1/1.2) )!])) ueot text=Counter target creature or battle spell unless its controller pays {4}. If they do, you incubate 2. (Create an Incubator token with two +1/+1 counters on it and "{2}: Transform this artifact." It transforms into a 0/0 Phyrexian artifact creature.) mana={1}{U} type=Instant @@ -8393,7 +8401,7 @@ toughness=1 [card] name=Blighted Burgeoning target=land -auto=name(Incubate 2) name(Incubate 2) activate castcard(noevent costx!:2:! named!:Incubator:!) +auto=name(Incubate 2) name(Incubate 2) token(Incubator) and!( counter(1/1.2) )! auto=teach(land) transforms((,newability[@tappedformana(this):chooseacolor add{chosencolor} chooseend])) text=Enchant land -- When Blighted Burgeoning enters the battlefield, incubate 2. (Create an Incubator token with two +1/+1 counters on it and "{2}: Transform this artifact." It transforms into a 0/0 Phyrexian artifact creature.) -- Whenever enchanted land is tapped for mana, its controller adds an additional one mana of any color. mana={2}{G} @@ -8619,27 +8627,27 @@ toughness=4 [card] name=Bloated Processor auto={S(other *[phyrexian]|mybattlefield)}:name(Put 1/1 counter) counter(1/1) -auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~0}:name(Incubate 0) name(Incubate 0) activate castcard(noevent costx!:0:! named!:Incubator:!) -auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~1}:name(Incubate 1) name(Incubate 1) activate castcard(noevent costx!:1:! named!:Incubator:!) -auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~2}:name(Incubate 2) name(Incubate 2) activate castcard(noevent costx!:2:! named!:Incubator:!) -auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~3}:name(Incubate 3) name(Incubate 3) activate castcard(noevent costx!:3:! named!:Incubator:!) -auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~4}:name(Incubate 4) name(Incubate 4) activate castcard(noevent costx!:4:! named!:Incubator:!) -auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~5}:name(Incubate 5) name(Incubate 5) activate castcard(noevent costx!:5:! named!:Incubator:!) -auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~6}:name(Incubate 6) name(Incubate 6) activate castcard(noevent costx!:6:! named!:Incubator:!) -auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~7}:name(Incubate 7) name(Incubate 7) activate castcard(noevent costx!:7:! named!:Incubator:!) -auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~8}:name(Incubate 8) name(Incubate 8) activate castcard(noevent costx!:8:! named!:Incubator:!) -auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~9}:name(Incubate 9) name(Incubate 9) activate castcard(noevent costx!:9:! named!:Incubator:!) -auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~10}:name(Incubate 10) name(Incubate 10) activate castcard(noevent costx!:10:! named!:Incubator:!) -auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~11}:name(Incubate 11) name(Incubate 11) activate castcard(noevent costx!:11:! named!:Incubator:!) -auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~12}:name(Incubate 12) name(Incubate 12) activate castcard(noevent costx!:12:! named!:Incubator:!) -auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~13}:name(Incubate 13) name(Incubate 13) activate castcard(noevent costx!:13:! named!:Incubator:!) -auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~14}:name(Incubate 14) name(Incubate 14) activate castcard(noevent costx!:14:! named!:Incubator:!) -auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~15}:name(Incubate 15) name(Incubate 15) activate castcard(noevent costx!:15:! named!:Incubator:!) -auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~16}:name(Incubate 16) name(Incubate 16) activate castcard(noevent costx!:16:! named!:Incubator:!) -auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~17}:name(Incubate 17) name(Incubate 17) activate castcard(noevent costx!:17:! named!:Incubator:!) -auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~18}:name(Incubate 18) name(Incubate 18) activate castcard(noevent costx!:18:! named!:Incubator:!) -auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~19}:name(Incubate 19) name(Incubate 19) activate castcard(noevent costx!:19:! named!:Incubator:!) -auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~morethan~19}:name(Incubate 20) name(Incubate 20) activate castcard(noevent costx!:20:! named!:Incubator:!) +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~0}:name(Incubate 0) name(Incubate 0) token(Incubator) +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~1}:name(Incubate 1) name(Incubate 1) token(Incubator) and!( counter(1/1) )! +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~2}:name(Incubate 2) name(Incubate 2) token(Incubator) and!( counter(1/1.2) )! +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~3}:name(Incubate 3) name(Incubate 3) token(Incubator) and!( counter(1/1.3) )! +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~4}:name(Incubate 4) name(Incubate 4) token(Incubator) and!( counter(1/1.4) )! +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~5}:name(Incubate 5) name(Incubate 5) token(Incubator) and!( counter(1/1.5) )! +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~6}:name(Incubate 6) name(Incubate 6) token(Incubator) and!( counter(1/1.6) )! +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~7}:name(Incubate 7) name(Incubate 7) token(Incubator) and!( counter(1/1.7) )! +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~8}:name(Incubate 8) name(Incubate 8) token(Incubator) and!( counter(1/1.8) )! +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~9}:name(Incubate 9) name(Incubate 9) token(Incubator) and!( counter(1/1.9) )! +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~10}:name(Incubate 10) name(Incubate 10) token(Incubator) and!( counter(1/1.10) )! +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~11}:name(Incubate 11) name(Incubate 11) token(Incubator) and!( counter(1/1.11) )! +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~12}:name(Incubate 12) name(Incubate 12) token(Incubator) and!( counter(1/1.12) )! +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~13}:name(Incubate 13) name(Incubate 13) token(Incubator) and!( counter(1/1.13) )! +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~14}:name(Incubate 14) name(Incubate 14) token(Incubator) and!( counter(1/1.14) )! +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~15}:name(Incubate 15) name(Incubate 15) token(Incubator) and!( counter(1/1.15) )! +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~16}:name(Incubate 16) name(Incubate 16) token(Incubator) and!( counter(1/1.16) )! +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~17}:name(Incubate 17) name(Incubate 17) token(Incubator) and!( counter(1/1.17) )! +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~18}:name(Incubate 18) name(Incubate 18) token(Incubator) and!( counter(1/1.18) )! +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~19}:name(Incubate 19) name(Incubate 19) token(Incubator) and!( counter(1/1.19) )! +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~morethan~19}:name(Incubate 20) name(Incubate 20) token(Incubator) and!( counter(1/1.20) )! text=Sacrifice another Phyrexian: Put a +1/+1 counter on Bloated Processor. -- When Bloated Processor dies, incubate X, where X is its power. (Create an Incubator token with X +1/+1 counters on it and "{2}: Transform this artifact." It transforms into a 0/0 Phyrexian artifact creature.) mana={2}{B} type=Creature @@ -8718,6 +8726,14 @@ mana={4}{R}{R} type=Sorcery [/card] [card] +name=Blood for Bones +auto=ability$!notatarget(creature|mygraveyard) moveto(mybattlefield)!$ controller +auto=ability$!notatarget(creature|mygraveyard) moveto(myhand)!$ controller +text=As an additional cost to cast this spell, sacrifice a creature. -- Return a creature card from your graveyard to the battlefield, then return another creature card from your graveyard to your hand. +mana={3}{B}{S(creature|myBattlefield)} +type=Sorcery +[/card] +[card] name=Blood Fountain auto=token(Blood) auto={3}{B}{T}{S}:name(Return 2 creatures) target(creature|mygraveyard) moveto(myhand) @@ -8755,6 +8771,41 @@ mana={5}{B}{B} type=Sorcery [/card] [card] +name=Blood on the Snow +restriction=compare(mysnowpoolcount)~equalto~0 +autohand={3}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~1,type(*[creature;planeswalker;manacost<=1]|mybattlefield)~equalto~0}:name(Cast with 1 snow mana and destroy creatures) name(Cast with 1 snow mana and destroy creatures) all(creature) destroy && activate castcard(alternative) +autohand={3}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~1,type(*[creature;planeswalker;manacost<=1]|mybattlefield)~morethan~0}:name(Cast with 1 snow mana and destroy creatures) name(Cast with 1 snow mana and destroy creatures) notatarget(*[creature;planeswalker;manacost<=1]|mybattlefield) transforms((,newability[all(other creature) destroy])) oneshot && activate castcard(alternative) +autohand={3}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~1,type(*[creature;planeswalker;manacost<=1]|mybattlefield)~equalto~0}:name(Cast with 1 snow mana and destroy planeswalkers) name(Cast with 1 snow mana and destroy planeswalkers) all(planeswalker) destroy && activate castcard(alternative) +autohand={3}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~1,type(*[creature;planeswalker;manacost<=1]|mybattlefield)~morethan~0}:name(Cast with 1 snow mana and destroy planeswalkers) name(Cast with 1 snow mana and destroy planeswalkers) notatarget(*[creature;planeswalker;manacost<=1]|mybattlefield) transforms((,newability[all(other planeswalker) destroy])) oneshot && activate castcard(alternative) +autohand={2}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~2,type(*[creature;planeswalker;manacost<=2]|mybattlefield)~equalto~0}:name(Cast with 2 snow mana and destroy creatures) name(Cast with 2 snow mana and destroy creatures) all(creature) destroy && activate castcard(alternative) +autohand={2}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~2,type(*[creature;planeswalker;manacost<=2]|mybattlefield)~morethan~0}:name(Cast with 2 snow mana and destroy creatures) name(Cast with 2 snow mana and destroy creatures) notatarget(*[creature;planeswalker;manacost<=2]|mybattlefield) transforms((,newability[all(other creature) destroy])) oneshot && activate castcard(alternative) +autohand={2}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~2,type(*[creature;planeswalker;manacost<=2]|mybattlefield)~equalto~0}:name(Cast with 2 snow mana and destroy planeswalkers) name(Cast with 2 snow mana and destroy planeswalkers) all(planeswalker) destroy && activate castcard(alternative) +autohand={2}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~2,type(*[creature;planeswalker;manacost<=2]|mybattlefield)~morethan~0}:name(Cast with 2 snow mana and destroy planeswalkers) name(Cast with 2 snow mana and destroy planeswalkers) notatarget(*[creature;planeswalker;manacost<=2]|mybattlefield) transforms((,newability[all(other planeswalker) destroy])) oneshot && activate castcard(alternative) +autohand={1}{i}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~3,type(*[creature;planeswalker;manacost<=3]|mybattlefield)~equalto~0}:name(Cast with 3 snow mana and destroy creatures) name(Cast with 3 snow mana and destroy creatures) all(creature) destroy && activate castcard(alternative) +autohand={1}{i}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~3,type(*[creature;planeswalker;manacost<=3]|mybattlefield)~morethan~0}:name(Cast with 3 snow mana and destroy creatures) name(Cast with 3 snow mana and destroy creatures) notatarget(*[creature;planeswalker;manacost<=3]|mybattlefield) transforms((,newability[all(other creature) destroy])) oneshot && activate castcard(alternative) +autohand={1}{i}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~3,type(*[creature;planeswalker;manacost<=3]|mybattlefield)~equalto~0}:name(Cast with 3 snow mana and destroy planeswalkers) name(Cast with 3 snow mana and destroy planeswalkers) all(planeswalker) destroy && activate castcard(alternative) +autohand={1}{i}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~3,type(*[creature;planeswalker;manacost<=3]|mybattlefield)~morethan~0}:name(Cast with 3 snow mana and destroy planeswalkers) name(Cast with 3 snow mana and destroy planeswalkers) notatarget(*[creature;planeswalker;manacost<=3]|mybattlefield) transforms((,newability[all(other planeswalker) destroy])) oneshot && activate castcard(alternative) +autohand={i}{i}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~morethan~3,type(*[creature;planeswalker;manacost<=4]|mybattlefield)~equalto~0}:name(Cast with 4 snow mana and destroy creatures) name(Cast with 4 snow mana and destroy creatures) all(creature) destroy && activate castcard(alternative) +autohand={i}{i}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~morethan~3,type(*[creature;planeswalker;manacost<=4]|mybattlefield)~morethan~0}:name(Cast with 4 snow mana and destroy creatures) name(Cast with 4 snow mana and destroy creatures) notatarget(*[creature;planeswalker;manacost<=4]|mybattlefield) transforms((,newability[all(other creature) destroy])) oneshot && activate castcard(alternative) +autohand={i}{i}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~morethan~3,type(*[creature;planeswalker;manacost<=4]|mybattlefield)~equalto~0}:name(Cast with 4 snow mana and destroy planeswalkers) name(Cast with 4 snow mana and destroy planeswalkers) all(planeswalker) destroy && activate castcard(alternative) +autohand={i}{i}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~morethan~3,type(*[creature;planeswalker;manacost<=4]|mybattlefield)~morethan~0}:name(Cast with 4 snow mana and destroy planeswalkers) name(Cast with 4 snow mana and destroy planeswalkers) notatarget(*[creature;planeswalker;manacost<=4]|mybattlefield) transforms((,newability[all(other planeswalker) destroy])) oneshot && activate castcard(alternative) +autohand={i}{i}{i}{i}{i}{B} restriction{compare(mysnowpoolcount)~morethan~4,compare(mysnowblackpoolcount)~morethan~0,type(*[creature;planeswalker;manacost<=5]|mybattlefield)~equalto~0}:name(Cast with 5 snow mana and destroy creatures) name(Cast with 5 snow mana and destroy creatures) all(creature) destroy && activate castcard(alternative) +autohand={i}{i}{i}{i}{i}{B} restriction{compare(mysnowpoolcount)~morethan~4,compare(mysnowblackpoolcount)~morethan~0,type(*[creature;planeswalker;manacost<=5]|mybattlefield)~morethan~0}:name(Cast with 5 snow mana and destroy creatures) name(Cast with 5 snow mana and destroy creatures) notatarget(*[creature;planeswalker;manacost<=5]|mybattlefield) transforms((,newability[all(other creature) destroy])) oneshot && activate castcard(alternative) +autohand={i}{i}{i}{i}{i}{B} restriction{compare(mysnowpoolcount)~morethan~4,compare(mysnowblackpoolcount)~morethan~0,type(*[creature;planeswalker;manacost<=5]|mybattlefield)~equalto~0}:name(Cast with 5 snow mana and destroy planeswalkers) name(Cast with 5 snow mana and destroy planeswalkers) all(planeswalker) destroy && activate castcard(alternative) +autohand={i}{i}{i}{i}{i}{B} restriction{compare(mysnowpoolcount)~morethan~4,compare(mysnowblackpoolcount)~morethan~0,type(*[creature;planeswalker;manacost<=5]|mybattlefield)~morethan~0}:name(Cast with 5 snow mana and destroy planeswalkers) name(Cast with 5 snow mana and destroy planeswalkers) notatarget(*[creature;planeswalker;manacost<=5]|mybattlefield) transforms((,newability[all(other planeswalker) destroy])) oneshot && activate castcard(alternative) +autohand={i}{i}{i}{i}{i}{i} restriction{compare(mysnowpoolcount)~morethan~5,compare(mysnowblackpoolcount)~morethan~1,type(*[creature;planeswalker;manacost<=6]|mybattlefield)~equalto~0}:name(Cast with 6 snow mana and destroy creatures) name(Cast with 6 snow mana and destroy creatures) all(creature) destroy && activate castcard(alternative) +autohand={i}{i}{i}{i}{i}{i} restriction{compare(mysnowpoolcount)~morethan~5,compare(mysnowblackpoolcount)~morethan~1,type(*[creature;planeswalker;manacost<=6]|mybattlefield)~morethan~0}:name(Cast with 6 snow mana and destroy creatures) name(Cast with 6 snow mana and destroy creatures) notatarget(*[creature;planeswalker;manacost<=6]|mybattlefield) transforms((,newability[all(other creature) destroy])) oneshot && activate castcard(alternative) +autohand={i}{i}{i}{i}{i}{i} restriction{compare(mysnowpoolcount)~morethan~5,compare(mysnowblackpoolcount)~morethan~1,type(*[creature;planeswalker;manacost<=6]|mybattlefield)~equalto~0}:name(Cast with 6 snow mana and destroy planeswalkers) name(Cast with 6 snow mana and destroy planeswalkers) all(planeswalker) destroy && activate castcard(alternative) +autohand={i}{i}{i}{i}{i}{i} restriction{compare(mysnowpoolcount)~morethan~5,compare(mysnowblackpoolcount)~morethan~1,type(*[creature;planeswalker;manacost<=6]|mybattlefield)~morethan~0}:name(Cast with 6 snow mana and destroy planeswalkers) name(Cast with 6 snow mana and destroy planeswalkers) notatarget(*[creature;planeswalker;manacost<=6]|mybattlefield) transforms((,newability[all(other planeswalker) destroy])) oneshot && activate castcard(alternative) +auto=ifnot paid(alternative) then if type(*[creature;planeswalker;manacost<=0]|mybattlefield)~morethan~0 then choice name(Destroy all creatures) name(Destroy all creatures) target(*[creature;planeswalker;manacost<=0]|mybattlefield) transforms((,newability[all(other creature) destroy])) oneshot +auto=ifnot paid(alternative) then if type(*[creature;planeswalker;manacost<=0]|mybattlefield)~morethan~0 then choice name(Destroy all planeswalkers) name(Destroy all planeswalkers) target(*[creature;planeswalker;manacost<=0]|mybattlefield) transforms((,newability[all(other planeswalker) destroy])) oneshot +auto=ifnot paid(alternative) then if type(*[creature;planeswalker;manacost<=0]|mybattlefield)~equalto~0 then choice name(Destroy all creatures) name(Destroy all creatures) name(Destroy all creatures) all(creature) destroy +auto=ifnot paid(alternative) then if type(*[creature;planeswalker;manacost<=0]|mybattlefield)~equalto~0 then choice name(Destroy all planeswalkers) name(Destroy all planeswalkers) name(Destroy all planeswalkers) all(planeswalker) destroy +text=Choose one -- Destroy all creatures. -- Destroy all planeswalkers. -- Then return a creature or planeswalker card with mana value X or less from your graveyard to the battlefield, where X is the amount of {S}i} spent to cast this spell. ({S}i} is mana from a snow source.) +mana={4}{B}{B} +type=Snow Sorcery +[/card] +[card] name=Blood Operative abilities=lifelink auto=may moveto(exile) target(*|graveyard) @@ -8837,47 +8888,73 @@ power=5 toughness=5 [/card] [card] -name=Blood for Bones -auto=ability$!notatarget(creature|mygraveyard) moveto(mybattlefield)!$ controller -auto=ability$!notatarget(creature|mygraveyard) moveto(myhand)!$ controller -text=As an additional cost to cast this spell, sacrifice a creature. -- Return a creature card from your graveyard to the battlefield, then return another creature card from your graveyard to your hand. -mana={3}{B}{S(creature|myBattlefield)} -type=Sorcery -[/card] -[card] -name=Blood on the Snow -restriction=compare(mysnowpoolcount)~equalto~0 -autohand={3}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~1,type(*[creature;planeswalker;manacost<=1]|mybattlefield)~equalto~0}:name(Cast with 1 snow mana and destroy creatures) name(Cast with 1 snow mana and destroy creatures) all(creature) destroy && activate castcard(alternative) -autohand={3}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~1,type(*[creature;planeswalker;manacost<=1]|mybattlefield)~morethan~0}:name(Cast with 1 snow mana and destroy creatures) name(Cast with 1 snow mana and destroy creatures) notatarget(*[creature;planeswalker;manacost<=1]|mybattlefield) transforms((,newability[all(other creature) destroy])) oneshot && activate castcard(alternative) -autohand={3}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~1,type(*[creature;planeswalker;manacost<=1]|mybattlefield)~equalto~0}:name(Cast with 1 snow mana and destroy planeswalkers) name(Cast with 1 snow mana and destroy planeswalkers) all(planeswalker) destroy && activate castcard(alternative) -autohand={3}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~1,type(*[creature;planeswalker;manacost<=1]|mybattlefield)~morethan~0}:name(Cast with 1 snow mana and destroy planeswalkers) name(Cast with 1 snow mana and destroy planeswalkers) notatarget(*[creature;planeswalker;manacost<=1]|mybattlefield) transforms((,newability[all(other planeswalker) destroy])) oneshot && activate castcard(alternative) -autohand={2}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~2,type(*[creature;planeswalker;manacost<=2]|mybattlefield)~equalto~0}:name(Cast with 2 snow mana and destroy creatures) name(Cast with 2 snow mana and destroy creatures) all(creature) destroy && activate castcard(alternative) -autohand={2}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~2,type(*[creature;planeswalker;manacost<=2]|mybattlefield)~morethan~0}:name(Cast with 2 snow mana and destroy creatures) name(Cast with 2 snow mana and destroy creatures) notatarget(*[creature;planeswalker;manacost<=2]|mybattlefield) transforms((,newability[all(other creature) destroy])) oneshot && activate castcard(alternative) -autohand={2}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~2,type(*[creature;planeswalker;manacost<=2]|mybattlefield)~equalto~0}:name(Cast with 2 snow mana and destroy planeswalkers) name(Cast with 2 snow mana and destroy planeswalkers) all(planeswalker) destroy && activate castcard(alternative) -autohand={2}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~2,type(*[creature;planeswalker;manacost<=2]|mybattlefield)~morethan~0}:name(Cast with 2 snow mana and destroy planeswalkers) name(Cast with 2 snow mana and destroy planeswalkers) notatarget(*[creature;planeswalker;manacost<=2]|mybattlefield) transforms((,newability[all(other planeswalker) destroy])) oneshot && activate castcard(alternative) -autohand={1}{i}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~3,type(*[creature;planeswalker;manacost<=3]|mybattlefield)~equalto~0}:name(Cast with 3 snow mana and destroy creatures) name(Cast with 3 snow mana and destroy creatures) all(creature) destroy && activate castcard(alternative) -autohand={1}{i}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~3,type(*[creature;planeswalker;manacost<=3]|mybattlefield)~morethan~0}:name(Cast with 3 snow mana and destroy creatures) name(Cast with 3 snow mana and destroy creatures) notatarget(*[creature;planeswalker;manacost<=3]|mybattlefield) transforms((,newability[all(other creature) destroy])) oneshot && activate castcard(alternative) -autohand={1}{i}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~3,type(*[creature;planeswalker;manacost<=3]|mybattlefield)~equalto~0}:name(Cast with 3 snow mana and destroy planeswalkers) name(Cast with 3 snow mana and destroy planeswalkers) all(planeswalker) destroy && activate castcard(alternative) -autohand={1}{i}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~equalto~3,type(*[creature;planeswalker;manacost<=3]|mybattlefield)~morethan~0}:name(Cast with 3 snow mana and destroy planeswalkers) name(Cast with 3 snow mana and destroy planeswalkers) notatarget(*[creature;planeswalker;manacost<=3]|mybattlefield) transforms((,newability[all(other planeswalker) destroy])) oneshot && activate castcard(alternative) -autohand={i}{i}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~morethan~3,type(*[creature;planeswalker;manacost<=4]|mybattlefield)~equalto~0}:name(Cast with 4 snow mana and destroy creatures) name(Cast with 4 snow mana and destroy creatures) all(creature) destroy && activate castcard(alternative) -autohand={i}{i}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~morethan~3,type(*[creature;planeswalker;manacost<=4]|mybattlefield)~morethan~0}:name(Cast with 4 snow mana and destroy creatures) name(Cast with 4 snow mana and destroy creatures) notatarget(*[creature;planeswalker;manacost<=4]|mybattlefield) transforms((,newability[all(other creature) destroy])) oneshot && activate castcard(alternative) -autohand={i}{i}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~morethan~3,type(*[creature;planeswalker;manacost<=4]|mybattlefield)~equalto~0}:name(Cast with 4 snow mana and destroy planeswalkers) name(Cast with 4 snow mana and destroy planeswalkers) all(planeswalker) destroy && activate castcard(alternative) -autohand={i}{i}{i}{i}{B}{B} restriction{compare(mysnowpoolcount)~morethan~3,type(*[creature;planeswalker;manacost<=4]|mybattlefield)~morethan~0}:name(Cast with 4 snow mana and destroy planeswalkers) name(Cast with 4 snow mana and destroy planeswalkers) notatarget(*[creature;planeswalker;manacost<=4]|mybattlefield) transforms((,newability[all(other planeswalker) destroy])) oneshot && activate castcard(alternative) -autohand={i}{i}{i}{i}{i}{B} restriction{compare(mysnowpoolcount)~morethan~4,compare(mysnowblackpoolcount)~morethan~0,type(*[creature;planeswalker;manacost<=5]|mybattlefield)~equalto~0}:name(Cast with 5 snow mana and destroy creatures) name(Cast with 5 snow mana and destroy creatures) all(creature) destroy && activate castcard(alternative) -autohand={i}{i}{i}{i}{i}{B} restriction{compare(mysnowpoolcount)~morethan~4,compare(mysnowblackpoolcount)~morethan~0,type(*[creature;planeswalker;manacost<=5]|mybattlefield)~morethan~0}:name(Cast with 5 snow mana and destroy creatures) name(Cast with 5 snow mana and destroy creatures) notatarget(*[creature;planeswalker;manacost<=5]|mybattlefield) transforms((,newability[all(other creature) destroy])) oneshot && activate castcard(alternative) -autohand={i}{i}{i}{i}{i}{B} restriction{compare(mysnowpoolcount)~morethan~4,compare(mysnowblackpoolcount)~morethan~0,type(*[creature;planeswalker;manacost<=5]|mybattlefield)~equalto~0}:name(Cast with 5 snow mana and destroy planeswalkers) name(Cast with 5 snow mana and destroy planeswalkers) all(planeswalker) destroy && activate castcard(alternative) -autohand={i}{i}{i}{i}{i}{B} restriction{compare(mysnowpoolcount)~morethan~4,compare(mysnowblackpoolcount)~morethan~0,type(*[creature;planeswalker;manacost<=5]|mybattlefield)~morethan~0}:name(Cast with 5 snow mana and destroy planeswalkers) name(Cast with 5 snow mana and destroy planeswalkers) notatarget(*[creature;planeswalker;manacost<=5]|mybattlefield) transforms((,newability[all(other planeswalker) destroy])) oneshot && activate castcard(alternative) -autohand={i}{i}{i}{i}{i}{i} restriction{compare(mysnowpoolcount)~morethan~5,compare(mysnowblackpoolcount)~morethan~1,type(*[creature;planeswalker;manacost<=6]|mybattlefield)~equalto~0}:name(Cast with 6 snow mana and destroy creatures) name(Cast with 6 snow mana and destroy creatures) all(creature) destroy && activate castcard(alternative) -autohand={i}{i}{i}{i}{i}{i} restriction{compare(mysnowpoolcount)~morethan~5,compare(mysnowblackpoolcount)~morethan~1,type(*[creature;planeswalker;manacost<=6]|mybattlefield)~morethan~0}:name(Cast with 6 snow mana and destroy creatures) name(Cast with 6 snow mana and destroy creatures) notatarget(*[creature;planeswalker;manacost<=6]|mybattlefield) transforms((,newability[all(other creature) destroy])) oneshot && activate castcard(alternative) -autohand={i}{i}{i}{i}{i}{i} restriction{compare(mysnowpoolcount)~morethan~5,compare(mysnowblackpoolcount)~morethan~1,type(*[creature;planeswalker;manacost<=6]|mybattlefield)~equalto~0}:name(Cast with 6 snow mana and destroy planeswalkers) name(Cast with 6 snow mana and destroy planeswalkers) all(planeswalker) destroy && activate castcard(alternative) -autohand={i}{i}{i}{i}{i}{i} restriction{compare(mysnowpoolcount)~morethan~5,compare(mysnowblackpoolcount)~morethan~1,type(*[creature;planeswalker;manacost<=6]|mybattlefield)~morethan~0}:name(Cast with 6 snow mana and destroy planeswalkers) name(Cast with 6 snow mana and destroy planeswalkers) notatarget(*[creature;planeswalker;manacost<=6]|mybattlefield) transforms((,newability[all(other planeswalker) destroy])) oneshot && activate castcard(alternative) -auto=ifnot paid(alternative) then if type(*[creature;planeswalker;manacost<=0]|mybattlefield)~morethan~0 then choice name(Destroy all creatures) name(Destroy all creatures) target(*[creature;planeswalker;manacost<=0]|mybattlefield) transforms((,newability[all(other creature) destroy])) oneshot -auto=ifnot paid(alternative) then if type(*[creature;planeswalker;manacost<=0]|mybattlefield)~morethan~0 then choice name(Destroy all planeswalkers) name(Destroy all planeswalkers) target(*[creature;planeswalker;manacost<=0]|mybattlefield) transforms((,newability[all(other planeswalker) destroy])) oneshot -auto=ifnot paid(alternative) then if type(*[creature;planeswalker;manacost<=0]|mybattlefield)~equalto~0 then choice name(Destroy all creatures) name(Destroy all creatures) name(Destroy all creatures) all(creature) destroy -auto=ifnot paid(alternative) then if type(*[creature;planeswalker;manacost<=0]|mybattlefield)~equalto~0 then choice name(Destroy all planeswalkers) name(Destroy all planeswalkers) name(Destroy all planeswalkers) all(planeswalker) destroy -text=Choose one -- Destroy all creatures. -- Destroy all planeswalkers. -- Then return a creature or planeswalker card with mana value X or less from your graveyard to the battlefield, where X is the amount of {S}i} spent to cast this spell. ({S}i} is mana from a snow source.) -mana={4}{B}{B} -type=Snow Sorcery +name=Blot Out +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~0 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=0]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~1 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=1]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~2 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=2]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~3 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=3]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~4 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=4]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~5 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=5]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~6 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=6]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~7 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=7]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~8 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=8]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~9 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=9]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~10 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=10]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~11 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=11]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~12 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=12]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~13 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=13]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~14 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=14]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~15 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=15]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~16 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=16]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~17 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=17]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~18 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=18]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~19 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost=19]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~equalto~0 then if compare(convertedcost:highest:creature:opponentbattlefield)~morethan~19 then name(Exile a creature) ability$!name(Exile a creature) name(Exile a creature) target(creature[manacost>=20]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~0 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=0]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~1 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=1]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~2 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=2]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~3 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=3]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~4 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=4]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~5 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=5]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~6 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=6]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~7 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=7]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~8 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=8]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~9 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=9]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~10 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=10]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~11 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=11]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~12 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=12]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~13 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=13]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~14 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=14]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~15 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=15]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~16 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=16]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~17 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=17]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~18 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=18]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~equalto~19 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost=19]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~equalto~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:planeswalker:opponentbattlefield)~morethan~19 then name(Exile a planeswalker) ability$!name(Exile a planeswalker) name(Exile a planeswalker) target(planeswalker[manacost>=20]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~0 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=0]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=0]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~1 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=1]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=1]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~2 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=2]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=2]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~3 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=3]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=3]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~4 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=4]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=4]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~5 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=5]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=5]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~6 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=6]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=6]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~7 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=7]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=7]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~8 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=8]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=8]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~9 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=9]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=9]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~10 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=10]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=10]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~11 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=11]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=11]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~12 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=12]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=12]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~13 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=13]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=13]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~14 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=14]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=14]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~15 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=15]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=15]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~16 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=16]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=16]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~17 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=17]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=17]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~18 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=18]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=18]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~equalto~19 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=19]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=19]|mybattlefield) moveto(myexile)!$ opponent +auto=if type(creature|opponentbattlefield)~morethan~0 then if type(planeswalker|opponentbattlefield)~morethan~0 then if compare(convertedcost:highest:*[creature;planeswalker]:opponentbattlefield)~morethan~19 then name(Exile creature or planeswalker) name(Exile creature or planeswalker) ability$!name(Exile creature or planeswalker) choice name(Exile creature) target(creature[manacost=20]|mybattlefield) moveto(myexile) _ choice name(Exile planeswalker) target(planeswalker[manacost=20]|mybattlefield) moveto(myexile)!$ opponent +text=Target opponent exiles a creature or planeswalker they control with the greatest mana value among creatures and planeswalkers they control. +mana={2}{B} +type=Instant [/card] [card] name=Bloodbat Summoner @@ -8936,7 +9013,7 @@ type=Sorcery [card] name=Bloodcrazed Paladin abilities=flash -auto=foreach(creature[fresh]|graveyard) counter(1/1) +auto=counter(1/1,bothalldeadcreature) text=Flash -- Bloodcrazed Paladin enters the battlefield with a +1/+1 counter on it for each creature that died this turn. mana={1}{B} type=Creature @@ -10918,8 +10995,8 @@ type=Sorcery [/card] [card] name=Brimaz, Blight of Oreskos -auto=@movedTo(creature[artifact]|mystack):name(Incubate X) name(Incubate X) all(trigger[to]) transforms((,newability[name(Incubate X) name(Incubate X) activate castcard(noevent costx!:manacost:! named!:Incubator:!)])) oneshot -auto=@movedTo(creature[-artifact&phyrexian]|mystack):name(Incubate X) name(Incubate X) all(trigger[to]) transforms((,newability[name(Incubate X) name(Incubate X) activate castcard(noevent costx!:manacost:! named!:Incubator:!)])) oneshot +auto=@movedTo(creature[artifact]|mystack):name(Incubate X) name(Incubate X) all(trigger[to]) transforms((,newability[name(Incubate X) name(Incubate X) token(Incubator) and!( counter(1/1.manacost) )!)])) oneshot +auto=@movedTo(creature[-artifact&phyrexian]|mystack):name(Incubate X) name(Incubate X) all(trigger[to]) transforms((,newability[name(Incubate X) name(Incubate X) token(Incubator) and!( counter(1/1.manacost) )!)])) oneshot auto=@movedTo(phyrexian|graveyard) from(mybattlefield):name(Phyrexian died) transforms((,newability[@each endofturn:name(Proliferate) _PROLIFERATE_])) ueot text=Whenever you cast a Phyrexian creature or artifact creature spell, incubate X, where X is that spell's mana value. (Create an Incubator token with X +1/+1 counters on it and "{2}: Transform this artifact." It transforms into a 0/0 Phyrexian artifact creature.) -- At the beginning of each end step, if a Phyrexian died under your control this turn, proliferate. mana={2}{W}{B} @@ -10983,7 +11060,7 @@ toughness=1 [/card] [card] name=Brine Giant -anyzone=foreach(enchantment|myBattlefield) changecost(colorless:-1) forcedalive +abilities=affinityenchantments text=This spell costs {1} less to cast for each enchantment you control. mana={6}{U} type=Creature @@ -12228,7 +12305,7 @@ toughness=3 [card] name=Canopy Stalker auto=_ATTACKING_all(creature|opponentbattlefield) mustblock ueot -auto=_DIES_life:type:creature[fresh]:graveyard controller +auto=_DIES_life:bothalldeadcreature controller text=Canopy Stalker must be blocked if able. -- When Canopy Stalker dies, you gain 1 life for each creature that died this turn. mana={3}{G} type=Creature @@ -14762,7 +14839,7 @@ toughness=5 [card] name=Chrome Host Seedshark abilities=flying -auto=@movedTo(*[-creature]|mystack):name(Incubate X) name(Incubate X) all(trigger[to]) transforms((,newability[name(Incubate X) name(Incubate X) activate castcard(noevent costx!:manacost:! named!:Incubator:!)])) oneshot +auto=@movedTo(*[-creature]|mystack):name(Incubate X) name(Incubate X) all(trigger[to]) transforms((,newability[name(Incubate X) name(Incubate X) token(Incubator) and!( counter(1/1.manacost) )!])) oneshot text=Flying -- Whenever you cast a noncreature spell, incubate X, where X is that spell's mana value. (Create an Incubator token with X +1/+1 counters on it and "{2}: Transform this artifact." It transforms into a 0/0 Phyrexian artifact creature.) mana={2}{U} type=Creature @@ -16492,7 +16569,7 @@ toughness=3 [/card] [card] name=Compleated Huntmaster -auto={1}{T}{S(other *[creature;artifact]|mybattlefield)}:name(Incubate 3) name(Incubate 3) activate castcard(noevent costx!:3:! named!:Incubator:!) +auto={1}{T}{S(other *[creature;artifact]|mybattlefield)}:name(Incubate 3) name(Incubate 3) token(Incubator) and!( counter(1/1.3) )! text={1}, {T}, Sacrifice another creature or artifact: Incubate 3. (Create an Incubator token with three +1/+1 counters on it and "{2}: Transform this artifact." It transforms into a 0/0 Phyrexian artifact creature.) mana={2}{B} type=Creature @@ -17137,7 +17214,7 @@ type=Artifact [/card] [card] name=Converter Beast -auto=name(Incubate 5) name(Incubate 5) activate castcard(noevent costx!:5:! named!:Incubator:!) +auto=name(Incubate 5) name(Incubate 5) token(Incubator) and!( counter(1/1.5) )! text=When Converter Beast enters the battlefield, incubate 5. (Create an Incubator token with five +1/+1 counters on it and "{2}: Transform this artifact." It transforms into a 0/0 Phyrexian artifact creature.) mana={3}{G} type=Creature @@ -17367,7 +17444,7 @@ type=Land [/card] [card] name=Corruption of Towashi -auto=name(Incubate 4) name(Incubate 4) activate castcard(noevent costx!:4:! named!:Incubator:!) +auto=name(Incubate 4) name(Incubate 4) token(Incubator) and!( counter(1/1.4) )! auto=@transformed(*[-instant;-sorcery]|myzones) turnlimited:may name(Draw a card) draw:1 controller text=When Corruption of Towashi enters the battlefield, incubate 4. (Create an Incubator token with four +1/+1 counters on it and "{2}: Transform this artifact." It transforms into a 0/0 Phyrexian artifact creature.) -- Whenever a permanent you control transforms or a permanent enters the battlefield under your control transformed, you may draw a card. Do this only once each turn. mana={4}{U} @@ -17628,11 +17705,8 @@ toughness=4 [/card] [card] name=Coveted Prize -abilities=hiddenface +abilities=hiddenface,affinityparty aicode=activate moveTo(myHand) target(*|myLibrary) -autoexile=thisforeach(variable{calculateparty}>0) changecost(colorless:-1) forcedalive -autograveyard=thisforeach(variable{calculateparty}>0) changecost(colorless:-1) forcedalive -autohand=thisforeach(variable{calculateparty}>0) changecost(colorless:-1) forcedalive auto=name(Reveal) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>*|reveal) moveto(myhand) and!(shuffle)! optiononeend optiontwo name(Put back) all(*|reveal) moveto(ownerlibrary) and!(shuffle)! optiontwoend afterrevealed if compare(calculateparty)~equalto~4 then may name(cast card with mana cost less than 4) activate name(cast card with mana cost less than 4) castcard(normal) target(*[-land;manacost<=4]|myHand) afterrevealedend revealend text=This spell costs {1} less to cast for each creature in your party. (Your party consists of up to one each of Cleric, Rogue, Warrior, and Wizard.) -- Search your library for a card, put it into your hand, then shuffle your library. If you have a full party, you may cast a spell with mana value 4 or less from your hand without paying its mana cost. mana={4}{B} @@ -18465,7 +18539,7 @@ type=Instant [/card] [card] name=Cryptic Serpent -anyzone=foreach(instant,sorcery|mygraveyard) altercost(colorless,-1) +abilities=affinitygraveinstsorc text=Cryptic Serpent costs {1} less to cast for each instant and sorcery card in your graveyard. mana={5}{U}{U} type=Creature @@ -20193,9 +20267,7 @@ toughness=1 [card] name=Deadly Alliance target=creature,planeswalker -autoexile=thisforeach(variable{calculateparty}>0) changecost(colorless:-1) forcedalive -autograveyard=thisforeach(variable{calculateparty}>0) changecost(colorless:-1) forcedalive -autohand=thisforeach(variable{calculateparty}>0) changecost(colorless:-1) forcedalive +abilities=affinityparty auto=destroy text=This spell costs {1} less to cast for each creature in your party. (Your party consists of up to one each of Cleric, Rogue, Warrior, and Wizard.) -- Destroy target creature or planeswalker. mana={4}{B} @@ -20338,6 +20410,17 @@ power=5 toughness=5 [/card] [card] +name=Death-Rattle Oni +abilities=flash,affinityalldeadcreatures +auto=name(Destroy damaged creatures) all(other creature[damaged]|battlefield) destroy +text=Flash -- This spell costs {2} less to cast for each creature that died this turn. -- When Death-Rattle Oni enters the battlefield, destroy all other creatures that were dealt damage this turn. +mana={6}{B} +type=Creature +subtype=Demon Spirit +power=5 +toughness=4 +[/card] +[card] name=Death Tyrant abilities=menace auto=lord(creature[attacking]|mybattlefield) transforms((,newability[_DIES_name(Create zombie) _ZOMBIETOKEN_])) @@ -21010,17 +21093,17 @@ toughness=5 [/card] [card] name=Demilich -other={U}{U}{U} name(Cast Demilich) -otherrestriction=thisturn(*[instant;sorcery]|mystack)~equalto~1 -restriction=thisturn(*[instant;sorcery]|mystack)~equalto~0 -autohand={U}{U} restriction{thisturn(*[instant;sorcery]|mystack)~equalto~2}:name(Cast Demilich) name(Cast Demilich) activate castcard(normal) -autohand={U} restriction{thisturn(*[instant;sorcery]|mystack)~equalto~3}:name(Cast Demilich) name(Cast Demilich) activate castcard(normal) -autohand={0} restriction{thisturn(*[instant;sorcery]|mystack)~morethan~3}:name(Cast Demilich) name(Cast Demilich) activate castcard(normal) -autograveyard={U}{U}{U}{U} restriction{type(*[instant;sorcery]|mygraveyard)~morethan~3,thisturn(*[instant;sorcery]|mystack)~equalto~0}:name(Cast Demilich) name(Cast Demilich) transforms((,newability[activate castcard(normal)],newability[name(Exile 4 cards) target(<4>*[instant;sorcery]|mygraveyard) moveto(myexile)])) oneshot -autograveyard={U}{U}{U} restriction{type(*[instant;sorcery]|mygraveyard)~morethan~3,thisturn(*[instant;sorcery]|mystack)~equalto~1}:name(Cast Demilich) name(Cast Demilich) transforms((,newability[activate castcard(normal)],newability[name(Exile 4 cards) target(<4>*[instant;sorcery]|mygraveyard) moveto(myexile)])) oneshot -autograveyard={U}{U} restriction{type(*[instant;sorcery]|mygraveyard)~morethan~3,thisturn(*[instant;sorcery]|mystack)~equalto~2}:name(Cast Demilich) name(Cast Demilich) transforms((,newability[activate castcard(normal)],newability[name(Exile 4 cards) target(<4>*[instant;sorcery]|mygraveyard) moveto(myexile)])) oneshot -autograveyard={U} restriction{type(*[instant;sorcery]|mygraveyard)~morethan~3,thisturn(*[instant;sorcery]|mystack)~equalto~3}:name(Cast Demilich) name(Cast Demilich) transforms((,newability[activate castcard(normal)],newability[name(Exile 4 cards) target(<4>*[instant;sorcery]|mygraveyard) moveto(myexile)])) oneshot -autograveyard={0} restriction{type(*[instant;sorcery]|mygraveyard)~morethan~3,thisturn(*[instant;sorcery]|mystack)~morethan~3}:name(Cast Demilich) name(Cast Demilich) transforms((,newability[activate castcard(normal)],newability[name(Exile 4 cards) target(<4>*[instant;sorcery]|mygraveyard) moveto(myexile)])) oneshot +anyzone=this(variable{pinstsorcount}>0) altercost(blue, -1) +anyzone=this(variable{pinstsorcount}>1) altercost(blue, -1) +anyzone=this(variable{pinstsorcount}>2) altercost(blue, -1) +anyzone=this(variable{pinstsorcount}>3) altercost(blue, -1) +anyzone=this(variable{pinstsorcount}>4) altercost(blue, -1) +anyzone=this(variable{pinstsorcount}>5) altercost(blue, -1) +anyzone=this(variable{pinstsorcount}>6) altercost(blue, -1) +anyzone=this(variable{pinstsorcount}>7) altercost(blue, -1) +anyzone=this(variable{pinstsorcount}>8) altercost(blue, -1) +anyzone=this(variable{pinstsorcount}>9) altercost(blue, -1) +anyzone=this(variable{pinstsorcount}>10) altercost(blue, -1) auto=_ATTACKING_may name(Exile instant or sorcery) target(*[instant;sorcery]|mygraveyard) moveTo(exile) and!( transforms((,newability[may name(Copy and cast) activate castcard(copied)])) oneshot )! text=This spell costs {U} less to cast for each instant and sorcery you've cast this turn. -- Whenever Demilich attacks, exile up to one target instant or sorcery card from your graveyard. Copy it. You may cast the copy. -- You may cast Demilich from your graveyard by exiling four instants and/or sorcery cards from your graveyard in addition to paying its other costs. mana={U}{U}{U}{U} @@ -22311,18 +22394,10 @@ toughness=4 [card] name=Diregraf Rebirth target=creature|mygraveyard -auto=name(Return to battlefield) moveto(mybattlefield) +abilities=affinityalldeadcreatures flashback={5}{B}{G} -otherrestriction=type(creature[fresh]|mygraveyard)~equalto~0 -autohand={B}{G} restriction{type(creature[fresh]|mygraveyard)~morethan~2,can play sorcery}:name(Cast with 3 less) name(Cast with 3 less) activate castcard(normal) -autohand={1}{B}{G} restriction{type(creature[fresh]|mygraveyard)~equalto~2,can play sorcery}:name(Cast with 2 less) name(Cast with 2 less) activate castcard(normal) -autohand={2}{B}{G} restriction{type(creature[fresh]|mygraveyard)~equalto~1,can play sorcery}:name(Cast with 1 less) name(Cast with 1 less) activate castcard(normal) +auto=name(Return to battlefield) moveto(mybattlefield) auto=if paid(alternative) then all(this|mystack) moveto(myexile) -autograveyard={B}{G} restriction{type(creature[fresh]|mygraveyard)~morethan~4,can play sorcery}:name(Cast with flashback) name(Cast with flashback) activate castcard(alternative) -autograveyard={1}{B}{G} restriction{type(creature[fresh]|mygraveyard)~equalto~4,can play sorcery}:name(Cast with flashback) name(Cast with flashback) activate castcard(alternative) -autograveyard={2}{B}{G} restriction{type(creature[fresh]|mygraveyard)~equalto~3,can play sorcery}:name(Cast with flashback) name(Cast with flashback) activate castcard(alternative) -autograveyard={3}{B}{G} restriction{type(creature[fresh]|mygraveyard)~equalto~2,can play sorcery}:name(Cast with flashback) name(Cast with flashback) activate castcard(alternative) -autograveyard={4}{B}{G} restriction{type(creature[fresh]|mygraveyard)~equalto~1,can play sorcery}:name(Cast with flashback) name(Cast with flashback) activate castcard(alternative) text=This spell costs {1} less to cast for each creature that died this turn. -- Return target creature card from your graveyard to the battlefield. -- Flashback {5}{B}{G} (You may cast this card from your graveyard for its flashback cost. Then exile it.) mana={3}{B}{G} type=Sorcery @@ -23258,10 +23333,7 @@ subtype=Equipment [/card] [card] name=Draco -abilities=flying -autoexile=thisforeach(variable{pbasiclandtypes}>0) changecost(colorless:-2) forcedalive -autograveyard=thisforeach(variable{pbasiclandtypes}>0) changecost(colorless:-2) forcedalive -autohand=thisforeach(variable{pbasiclandtypes}>0) changecost(colorless:-2) forcedalive +abilities=flying,affinitytwobasiclandtypes auto=this(pbasiclandtypes=0) upcost[{10}] sacrifice auto=this(pbasiclandtypes=1) upcost[{8}] sacrifice auto=this(pbasiclandtypes=2) upcost[{6}] sacrifice @@ -26153,7 +26225,7 @@ toughness=1 [/card] [card] name=Elvish Vatkeeper -auto=name(Incubate 2) name(Incubate 2) activate castcard(noevent costx!:2:! named!:Incubator:!) +auto=name(Incubate 2) name(Incubate 2) token(Incubator) and!( counter(1/1.2) )! auto={5}:name(Transform incubator) target(incubator|myBattlefield) transforms((,newability[flip(backside)],newability[counter(1/1.hascnt11)])) oneshot text=When Elvish Vatkeeper enters the battlefield, incubate 2. (Create an Incubator token with two +1/+1 counters on it and "{2}: Transform this artifact." It transforms into a 0/0 Phyrexian artifact creature.) -- {5}: Transform target Incubator token you control. Double the number of +1/+1 counters on it. mana={1}{B}{G} @@ -26182,13 +26254,7 @@ type=Artifact [/card] [card] name=Embercleave -abilities=flash -other={3}{R}{R} name(Cast Embercleave for 1 less) -otherrestriction=type(creature[attacking]|myBattlefield)~morethan~0 -restriction=type(creature[attacking]|myBattlefield)~equalto~0 -autohand={2}{R}{R} restriction{type(creature[attacking]|myBattlefield)~equalto~2}:name(Cast Embercleave for 2 less) name(Cast Embercleave for 2 less) activate castcard(alternative) -autohand={1}{R}{R} restriction{type(creature[attacking]|myBattlefield)~equalto~3}:name(Cast Embercleave for 3 less) name(Cast Embercleave for 3 less) activate castcard(alternative) -autohand={R}{R} restriction{type(creature[attacking]|myBattlefield)~morethan~3}:name(Cast Embercleave for 4 less) name(Cast Embercleave for 4 less) activate castcard(alternative) +abilities=flash,affinityattackingcreatures auto=name(Attach to creature) rehook target(creature|myBattlefield) auto=teach(creature) double strike auto=teach(creature) trample @@ -26540,7 +26606,7 @@ type=Sorcery [/card] [card] name=Emry, Lurker of the Loch -anyzone=foreach(*[artifact]|myBattlefield) changecost(colorless:-1) forcedalive +ability=affinityartifacts auto=deplete:4 controller auto={T}:target(artifact|mygraveyard) canplayfromgraveyard ueot text=This spell costs {1} less to cast for each artifact you control. -- When Emry, Lurker of the Loch enters the battlefield, put the top four cards of your library into your graveyard. -- {T}: Choose target artifact card in your graveyard. You may cast that card this turn. (You still pay its costs. Timing rules still apply.) @@ -27311,8 +27377,8 @@ toughness=2 [card] name=Essence of Orthodoxy abilities=flying -auto=name(Incubate 2) name(Incubate 2) activate castcard(noevent costx!:2:! named!:Incubator:!) -auto=@movedto(other phyrexian|myBattlefield):name(Incubate 2) name(Incubate 2) activate castcard(noevent costx!:2:! named!:Incubator:!) +auto=name(Incubate 2) name(Incubate 2) token(Incubator) and!( counter(1/1.2) )! +auto=@movedto(other phyrexian|myBattlefield):name(Incubate 2) name(Incubate 2) token(Incubator) and!( counter(1/1.2) )! text=Flying -- Whenever Essence of Orthodoxy or another Phyrexian enters the battlefield under your control, incubate 2. (Create an Incubator token with two +1/+1 counters on it and "{2}: Transform this artifact." It transforms into a 0/0 Phyrexian artifact creature.) mana={3}{W}{W} type=Creature @@ -27846,49 +27912,8 @@ type=Instant [/card] [card] name=Excise the Imperfect -restriction=type(*[-land]|battlefield)~morethan~0 -auto=if type(*[-land&manacost=0]|mybattlefield)~morethan~0 then choice name(Exile your permanent with cost 0) name(Exile your permanent with cost 0) target(*[-land&manacost=0]|mybattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! -auto=if type(*[-land&manacost=1]|mybattlefield)~morethan~0 then choice name(Exile your permanent with cost 1) name(Exile your permanent with cost 1) target(*[-land&manacost=1]|mybattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[counter(1/1.1)],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! -auto=if type(*[-land&manacost=2]|mybattlefield)~morethan~0 then choice name(Exile your permanent with cost 2) name(Exile your permanent with cost 2) target(*[-land&manacost=2]|mybattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[counter(1/1.2)],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! -auto=if type(*[-land&manacost=3]|mybattlefield)~morethan~0 then choice name(Exile your permanent with cost 3) name(Exile your permanent with cost 3) target(*[-land&manacost=3]|mybattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[counter(1/1.3)],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! -auto=if type(*[-land&manacost=4]|mybattlefield)~morethan~0 then choice name(Exile your permanent with cost 4) name(Exile your permanent with cost 4) target(*[-land&manacost=4]|mybattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[counter(1/1.4)],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! -auto=if type(*[-land&manacost=5]|mybattlefield)~morethan~0 then choice name(Exile your permanent with cost 5) name(Exile your permanent with cost 5) target(*[-land&manacost=5]|mybattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[counter(1/1.5)],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! -auto=if type(*[-land&manacost=6]|mybattlefield)~morethan~0 then choice name(Exile your permanent with cost 6) name(Exile your permanent with cost 6) target(*[-land&manacost=6]|mybattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[counter(1/1.6)],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! -auto=if type(*[-land&manacost=7]|mybattlefield)~morethan~0 then choice name(Exile your permanent with cost 7) name(Exile your permanent with cost 7) target(*[-land&manacost=7]|mybattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[counter(1/1.7)],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! -auto=if type(*[-land&manacost=8]|mybattlefield)~morethan~0 then choice name(Exile your permanent with cost 8) name(Exile your permanent with cost 8) target(*[-land&manacost=8]|mybattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[counter(1/1.8)],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! -auto=if type(*[-land&manacost=9]|mybattlefield)~morethan~0 then choice name(Exile your permanent with cost 9) name(Exile your permanent with cost 9) target(*[-land&manacost=9]|mybattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[counter(1/1.9)],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! -auto=if type(*[-land&manacost=10]|mybattlefield)~morethan~0 then choice name(Exile your permanent with cost 10) name(Exile your permanent with cost 10) target(*[-land&manacost=10]|mybattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[counter(1/1.10)],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! -auto=if type(*[-land&manacost=11]|mybattlefield)~morethan~0 then choice name(Exile your permanent with cost 11) name(Exile your permanent with cost 11) target(*[-land&manacost=11]|mybattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[counter(1/1.11)],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! -auto=if type(*[-land&manacost=12]|mybattlefield)~morethan~0 then choice name(Exile your permanent with cost 12) name(Exile your permanent with cost 12) target(*[-land&manacost=12]|mybattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[counter(1/1.12)],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! -auto=if type(*[-land&manacost=13]|mybattlefield)~morethan~0 then choice name(Exile your permanent with cost 13) name(Exile your permanent with cost 13) target(*[-land&manacost=13]|mybattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[counter(1/1.13)],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! -auto=if type(*[-land&manacost=14]|mybattlefield)~morethan~0 then choice name(Exile your permanent with cost 14) name(Exile your permanent with cost 14) target(*[-land&manacost=14]|mybattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[counter(1/1.14)],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! -auto=if type(*[-land&manacost=15]|mybattlefield)~morethan~0 then choice name(Exile your permanent with cost 15) name(Exile your permanent with cost 15) target(*[-land&manacost=15]|mybattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[counter(1/1.15)],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! -auto=if type(*[-land&manacost=16]|mybattlefield)~morethan~0 then choice name(Exile your permanent with cost 16) name(Exile your permanent with cost 16) target(*[-land&manacost=16]|mybattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[counter(1/1.16)],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! -auto=if type(*[-land&manacost=17]|mybattlefield)~morethan~0 then choice name(Exile your permanent with cost 17) name(Exile your permanent with cost 17) target(*[-land&manacost=17]|mybattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[counter(1/1.17)],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! -auto=if type(*[-land&manacost=18]|mybattlefield)~morethan~0 then choice name(Exile your permanent with cost 18) name(Exile your permanent with cost 18) target(*[-land&manacost=18]|mybattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[counter(1/1.18)],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! -auto=if type(*[-land&manacost=19]|mybattlefield)~morethan~0 then choice name(Exile your permanent with cost 19) name(Exile your permanent with cost 19) target(*[-land&manacost=19]|mybattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[counter(1/1.19)],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! -auto=if type(*[-land&manacost>=19]|mybattlefield)~morethan~0 then choice name(Exile your permanent with cost 20) name(Exile your permanent with cost 20) target(*[-land&manacost>=19]|mybattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[counter(1/1.20)],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! -auto=if type(*[-land&manacost=0]|opponentbattlefield)~morethan~0 then choice name(Exile opponent permanent with cost 0) name(Exile opponent permanent with cost 0) target(*[-land&manacost=0]|opponentbattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) opponent and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! -auto=if type(*[-land&manacost=1]|opponentbattlefield)~morethan~0 then choice name(Exile opponent permanent with cost 1) name(Exile opponent permanent with cost 1) target(*[-land&manacost=1]|opponentbattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) opponent and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[counter(1/1.1)],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! -auto=if type(*[-land&manacost=2]|opponentbattlefield)~morethan~0 then choice name(Exile opponent permanent with cost 2) name(Exile opponent permanent with cost 2) target(*[-land&manacost=2]|opponentbattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) opponent and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[counter(1/1.2)],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! -auto=if type(*[-land&manacost=3]|opponentbattlefield)~morethan~0 then choice name(Exile opponent permanent with cost 3) name(Exile opponent permanent with cost 3) target(*[-land&manacost=3]|opponentbattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) opponent and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[counter(1/1.3)],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! -auto=if type(*[-land&manacost=4]|opponentbattlefield)~morethan~0 then choice name(Exile opponent permanent with cost 4) name(Exile opponent permanent with cost 4) target(*[-land&manacost=4]|opponentbattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) opponent and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[counter(1/1.4)],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! -auto=if type(*[-land&manacost=5]|opponentbattlefield)~morethan~0 then choice name(Exile opponent permanent with cost 5) name(Exile opponent permanent with cost 5) target(*[-land&manacost=5]|opponentbattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) opponent and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[counter(1/1.5)],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! -auto=if type(*[-land&manacost=6]|opponentbattlefield)~morethan~0 then choice name(Exile opponent permanent with cost 6) name(Exile opponent permanent with cost 6) target(*[-land&manacost=6]|opponentbattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) opponent and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[counter(1/1.6)],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! -auto=if type(*[-land&manacost=7]|opponentbattlefield)~morethan~0 then choice name(Exile opponent permanent with cost 7) name(Exile opponent permanent with cost 7) target(*[-land&manacost=7]|opponentbattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) opponent and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[counter(1/1.7)],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! -auto=if type(*[-land&manacost=8]|opponentbattlefield)~morethan~0 then choice name(Exile opponent permanent with cost 8) name(Exile opponent permanent with cost 8) target(*[-land&manacost=8]|opponentbattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) opponent and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[counter(1/1.8)],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! -auto=if type(*[-land&manacost=9]|opponentbattlefield)~morethan~0 then choice name(Exile opponent permanent with cost 9) name(Exile opponent permanent with cost 9) target(*[-land&manacost=9]|opponentbattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) opponent and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[counter(1/1.9)],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! -auto=if type(*[-land&manacost=10]|opponentbattlefield)~morethan~0 then choice name(Exile opponent permanent with cost 10) name(Exile opponent permanent with cost 10) target(*[-land&manacost=10]|opponentbattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) opponent and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[counter(1/1.10)],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! -auto=if type(*[-land&manacost=11]|opponentbattlefield)~morethan~0 then choice name(Exile opponent permanent with cost 11) name(Exile opponent permanent with cost 11) target(*[-land&manacost=11]|opponentbattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) opponent and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[counter(1/1.11)],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! -auto=if type(*[-land&manacost=12]|opponentbattlefield)~morethan~0 then choice name(Exile opponent permanent with cost 12) name(Exile opponent permanent with cost 12) target(*[-land&manacost=12]|opponentbattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) opponent and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[counter(1/1.12)],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! -auto=if type(*[-land&manacost=13]|opponentbattlefield)~morethan~0 then choice name(Exile opponent permanent with cost 13) name(Exile opponent permanent with cost 13) target(*[-land&manacost=13]|opponentbattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) opponent and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[counter(1/1.13)],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! -auto=if type(*[-land&manacost=14]|opponentbattlefield)~morethan~0 then choice name(Exile opponent permanent with cost 14) name(Exile opponent permanent with cost 14) target(*[-land&manacost=14]|opponentbattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) opponent and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[counter(1/1.14)],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! -auto=if type(*[-land&manacost=15]|opponentbattlefield)~morethan~0 then choice name(Exile opponent permanent with cost 15) name(Exile opponent permanent with cost 15) target(*[-land&manacost=15]|opponentbattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) opponent and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[counter(1/1.15)],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! -auto=if type(*[-land&manacost=16]|opponentbattlefield)~morethan~0 then choice name(Exile opponent permanent with cost 16) name(Exile opponent permanent with cost 16) target(*[-land&manacost=16]|opponentbattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) opponent and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[counter(1/1.16)],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! -auto=if type(*[-land&manacost=17]|opponentbattlefield)~morethan~0 then choice name(Exile opponent permanent with cost 17) name(Exile opponent permanent with cost 17) target(*[-land&manacost=17]|opponentbattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) opponent and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[counter(1/1.17)],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! -auto=if type(*[-land&manacost=18]|opponentbattlefield)~morethan~0 then choice name(Exile opponent permanent with cost 18) name(Exile opponent permanent with cost 18) target(*[-land&manacost=18]|opponentbattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) opponent and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[counter(1/1.18)],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! -auto=if type(*[-land&manacost=19]|opponentbattlefield)~morethan~0 then choice name(Exile opponent permanent with cost 19) name(Exile opponent permanent with cost 19) target(*[-land&manacost=19]|opponentbattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) opponent and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[counter(1/1.19)],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! -auto=if type(*[-land&manacost>=19]|opponentbattlefield)~morethan~0 then choice name(Exile opponent permanent with cost 20) name(Exile opponent permanent with cost 20) target(*[-land&manacost>=19]|opponentbattlefield) moveto(exile) and!( token(Incubator^Artifact^0/0) opponent and!( transforms((,newability[_DIES_:all(Brimaz^ Blight of Oreskos|mybattlefield) name(Phyrexian died) counter(0/0.1.BrimazEffect) notrg],newability[counter(1/1.20)],newability[{2}:name(Becomes creature) becomes(Creature Phyrexian) forever])) forever )! )! +target=*[-land]|battlefield +auto=name(Exile nonland permanent) transforms((,newability[name(Incubate X) name(Incubate X) token(Incubator) and!( counter(1/1.manacost) )!],newability[moveto(exile)])) oneshot text=Exile target nonland permanent. Its controller incubates X, where X is its mana value. (They create an Incubator token with X +1/+1 counters on it and "{2}: Transform this artifact." It transforms into a 0/0 Phyrexian artifact creature.) mana={1}{W}{W} type=Instant @@ -28395,7 +28420,7 @@ type=Enchantment [/card] [card] name=Eyes of Gitaxias -auto=name(Incubate 3) name(Incubate 3) activate castcard(noevent costx!:3:! named!:Incubator:!) +auto=name(Incubate 3) name(Incubate 3) token(Incubator) and!( counter(1/1.3) )! auto=name(Draw a card) draw:1 controller text=Incubate 3. (Create an Incubator token with three +1/+1 counters on it and "{2}: Transform this artifact." It transforms into a 0/0 Phyrexian artifact creature.) -- Draw a card. mana={2}{U} @@ -32645,28 +32670,28 @@ type=Enchantment [/card] [card] name=Furnace Gremlin -auto={1}{R}:name(Gets 1/0) transforms((,newability[1/0],newability[counter(0/0.1.FurnaceEffect) notrg])) ueot -auto=@each my end restriction{compare(hascntfurnaceeffect)~morethan~0}:name(Effect ends) removeallcounters(0/0.1.FurnaceEffect) -auto=_DIES_this(counter{0/0.1.FurnaceEffect}=0) transforms((,newability[name(Incubate 1) name(Incubate 1) activate castcard(noevent costx!:1:! named!:Incubator:!)])) oneshot -auto=_DIES_this(counter{0/0.1.FurnaceEffect}=1) transforms((,newability[name(Incubate 2) name(Incubate 2) activate castcard(noevent costx!:2:! named!:Incubator:!)])) oneshot -auto=_DIES_this(counter{0/0.1.FurnaceEffect}=2) transforms((,newability[name(Incubate 3) name(Incubate 3) activate castcard(noevent costx!:3:! named!:Incubator:!)])) oneshot -auto=_DIES_this(counter{0/0.1.FurnaceEffect}=3) transforms((,newability[name(Incubate 4) name(Incubate 4) activate castcard(noevent costx!:4:! named!:Incubator:!)])) oneshot -auto=_DIES_this(counter{0/0.1.FurnaceEffect}=4) transforms((,newability[name(Incubate 5) name(Incubate 5) activate castcard(noevent costx!:5:! named!:Incubator:!)])) oneshot -auto=_DIES_this(counter{0/0.1.FurnaceEffect}=5) transforms((,newability[name(Incubate 6) name(Incubate 6) activate castcard(noevent costx!:6:! named!:Incubator:!)])) oneshot -auto=_DIES_this(counter{0/0.1.FurnaceEffect}=6) transforms((,newability[name(Incubate 7) name(Incubate 7) activate castcard(noevent costx!:7:! named!:Incubator:!)])) oneshot -auto=_DIES_this(counter{0/0.1.FurnaceEffect}=7) transforms((,newability[name(Incubate 8) name(Incubate 8) activate castcard(noevent costx!:8:! named!:Incubator:!)])) oneshot -auto=_DIES_this(counter{0/0.1.FurnaceEffect}=8) transforms((,newability[name(Incubate 9) name(Incubate 9) activate castcard(noevent costx!:9:! named!:Incubator:!)])) oneshot -auto=_DIES_this(counter{0/0.1.FurnaceEffect}=9) transforms((,newability[name(Incubate 10) name(Incubate 10) activate castcard(noevent costx!:10:! named!:Incubator:!)])) oneshot -auto=_DIES_this(counter{0/0.1.FurnaceEffect}=10) transforms((,newability[name(Incubate 11) name(Incubate 11) activate castcard(noevent costx!:11:! named!:Incubator:!)])) oneshot -auto=_DIES_this(counter{0/0.1.FurnaceEffect}=11) transforms((,newability[name(Incubate 12) name(Incubate 12) activate castcard(noevent costx!:12:! named!:Incubator:!)])) oneshot -auto=_DIES_this(counter{0/0.1.FurnaceEffect}=12) transforms((,newability[name(Incubate 13) name(Incubate 13) activate castcard(noevent costx!:13:! named!:Incubator:!)])) oneshot -auto=_DIES_this(counter{0/0.1.FurnaceEffect}=13) transforms((,newability[name(Incubate 14) name(Incubate 14) activate castcard(noevent costx!:14:! named!:Incubator:!)])) oneshot -auto=_DIES_this(counter{0/0.1.FurnaceEffect}=14) transforms((,newability[name(Incubate 15) name(Incubate 15) activate castcard(noevent costx!:15:! named!:Incubator:!)])) oneshot -auto=_DIES_this(counter{0/0.1.FurnaceEffect}=15) transforms((,newability[name(Incubate 16) name(Incubate 16) activate castcard(noevent costx!:16:! named!:Incubator:!)])) oneshot -auto=_DIES_this(counter{0/0.1.FurnaceEffect}=16) transforms((,newability[name(Incubate 17) name(Incubate 17) activate castcard(noevent costx!:17:! named!:Incubator:!)])) oneshot -auto=_DIES_this(counter{0/0.1.FurnaceEffect}=17) transforms((,newability[name(Incubate 18) name(Incubate 18) activate castcard(noevent costx!:18:! named!:Incubator:!)])) oneshot -auto=_DIES_this(counter{0/0.1.FurnaceEffect}=18) transforms((,newability[name(Incubate 19) name(Incubate 19) activate castcard(noevent costx!:19:! named!:Incubator:!)])) oneshot -auto=_DIES_this(counter{0/0.1.FurnaceEffect}>=19) transforms((,newability[name(Incubate 20) name(Incubate 20) activate castcard(noevent costx!:20:! named!:Incubator:!)])) oneshot +auto={1}{R}:name(Gets 1/0) 1/0 ueot +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~0}:name(Incubate 0) name(Incubate 0) token(Incubator) +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~1}:name(Incubate 1) name(Incubate 1) token(Incubator) and!( counter(1/1) )! +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~2}:name(Incubate 2) name(Incubate 2) token(Incubator) and!( counter(1/1.2) )! +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~3}:name(Incubate 3) name(Incubate 3) token(Incubator) and!( counter(1/1.3) )! +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~4}:name(Incubate 4) name(Incubate 4) token(Incubator) and!( counter(1/1.4) )! +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~5}:name(Incubate 5) name(Incubate 5) token(Incubator) and!( counter(1/1.5) )! +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~6}:name(Incubate 6) name(Incubate 6) token(Incubator) and!( counter(1/1.6) )! +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~7}:name(Incubate 7) name(Incubate 7) token(Incubator) and!( counter(1/1.7) )! +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~8}:name(Incubate 8) name(Incubate 8) token(Incubator) and!( counter(1/1.8) )! +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~9}:name(Incubate 9) name(Incubate 9) token(Incubator) and!( counter(1/1.9) )! +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~10}:name(Incubate 10) name(Incubate 10) token(Incubator) and!( counter(1/1.10) )! +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~11}:name(Incubate 11) name(Incubate 11) token(Incubator) and!( counter(1/1.11) )! +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~12}:name(Incubate 12) name(Incubate 12) token(Incubator) and!( counter(1/1.12) )! +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~13}:name(Incubate 13) name(Incubate 13) token(Incubator) and!( counter(1/1.13) )! +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~14}:name(Incubate 14) name(Incubate 14) token(Incubator) and!( counter(1/1.14) )! +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~15}:name(Incubate 15) name(Incubate 15) token(Incubator) and!( counter(1/1.15) )! +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~16}:name(Incubate 16) name(Incubate 16) token(Incubator) and!( counter(1/1.16) )! +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~17}:name(Incubate 17) name(Incubate 17) token(Incubator) and!( counter(1/1.17) )! +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~18}:name(Incubate 18) name(Incubate 18) token(Incubator) and!( counter(1/1.18) )! +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~equalto~19}:name(Incubate 19) name(Incubate 19) token(Incubator) and!( counter(1/1.19) )! +auto=@movedto(this|graveyard) from(battlefield) restriction{compare(power)~morethan~19}:name(Incubate 20) name(Incubate 20) token(Incubator) and!( counter(1/1.20) )! text={1}{R}: Furnace Gremlin gets +1/+0 until end of turn. -- When Furnace Gremlin dies, incubate X, where X is its power. (Create an Incubator token with X +1/+1 counters on it and "{2}: Transform this artifact." It transforms into a 0/0 Phyrexian artifact creature.) mana={1}{R} type=Creature @@ -33302,7 +33327,17 @@ toughness=5 [/card] [card] name=Gate Colossus -anyzone=foreach(land[Gate]|myBattlefield) changecost(colorless:-1) forcedalive +anyzone=aslongas(land[Gate]|mybattlefield) altercost(colorless,-1) >0 +anyzone=aslongas(land[Gate]|mybattlefield) altercost(colorless,-1) >1 +anyzone=aslongas(land[Gate]|mybattlefield) altercost(colorless,-1) >2 +anyzone=aslongas(land[Gate]|mybattlefield) altercost(colorless,-1) >3 +anyzone=aslongas(land[Gate]|mybattlefield) altercost(colorless,-1) >4 +anyzone=aslongas(land[Gate]|mybattlefield) altercost(colorless,-1) >5 +anyzone=aslongas(land[Gate]|mybattlefield) altercost(colorless,-1) >6 +anyzone=aslongas(land[Gate]|mybattlefield) altercost(colorless,-1) >7 +anyzone=aslongas(land[Gate]|mybattlefield) altercost(colorless,-1) >8 +anyzone=aslongas(land[Gate]|mybattlefield) altercost(colorless,-1) >9 +anyzone=aslongas(land[Gate]|mybattlefield) altercost(colorless,-1) >10 auto=cantbeblockedby(creature[power<=2]) autograveyard=@movedTo(land[Gate]|myBattlefield):may moveTo(myLibray) text=This spell costs {1} less to cast for each Gate you control. -- Gate Colossus can't be blocked by creatures with power 2 or less. -- Whenever a Gate enters the battlefield under your control, you may put Gate Colossus from your graveyard on top of your library. @@ -34320,7 +34355,7 @@ type=Instant [/card] [card] name=Gift of Compleation -auto=name(Incubate 3) name(Incubate 3) activate castcard(noevent costx!:3:! named!:Incubator:!) +auto=name(Incubate 3) name(Incubate 3) token(Incubator) and!( counter(1/1.3) )!_ aicode=activate transforms((,newability[surveil],newability[all(*[zpos<=psurveiloffsetplus1plusend]|mylibrary) transforms((,newability[if compare(genrand2)~equalto~1 then moveto(mygraveyard)])) oneshot])) oneshot auto=@movedTo(phyrexian|graveyard) from(mybattlefield):_SURVEIL1_ text=When Gift of Compleation enters the battlefield, incubate 3. (Create an Incubator token with three +1/+1 counters on it and "{2}: Transform this artifact." It transforms into a 0/0 Phyrexian artifact creature.) -- Whenever a Phyrexian you control dies, surveil 1. (Look at the top card of your library. You may put that card into your graveyard.) @@ -35000,7 +35035,7 @@ toughness=0 [/card] [card] name=Glissa, Herald of Predation -auto=@each my combatbegins:name(Choose one) transforms((,newability[choice name(Create Incubate 2 twice) thisforeach(variable{2}) activate castcard(noevent costx!:2:! named!:Incubator:!)],newability[choice name(Transform all incubator) all(incubator|myBattlefield) flip(backside)],newability[choice name(All phyrexians gain first strike and deathtouch) all(phyrexian|myBattlefield) transforms((,newability[first strike],newability[deathtouch])) ueot])) oneshot +auto=@each my combatbegins:name(Choose one) transforms((,newability[choice name(Create Incubate 2 twice) thisforeach(variable{2}) name(Incubate 2) name(Incubate 2) token(Incubator) and!( counter(1/1.2) )!],newability[choice name(Transform all incubator) all(incubator|myBattlefield) flip(backside)],newability[choice name(All phyrexians gain first strike and deathtouch) all(phyrexian|myBattlefield) transforms((,newability[first strike],newability[deathtouch])) ueot])) oneshot text=At the beginning of combat on your turn, choose one -- Incubate 2 twice. (To incubate 2, create an Incubator token with two +1/+1 counters on it and "{2}: Transform this artifact." It transforms into a 0/0 Phyrexian artifact creature.) -- Transform all Incubator tokens you control. -- Phyrexians you control gain first strike and deathtouch until end of turn. mana={3}{B}{G} type=Legendary Creature @@ -35032,8 +35067,8 @@ toughness=3 [/card] [card] name=Glistening Dawn -auto=name(Incubate X) name(Incubate X) activate castcard(noevent costx!:type:land:mybattlefield:! named!:Incubator:!) -auto=name(Incubate X) name(Incubate X) activate castcard(noevent costx!:type:land:mybattlefield:! named!:Incubator:!) +auto=name(Incubate X) name(Incubate X) token(Incubator) and!( counter(1/1.type:land:mybattlefield) )! +auto=name(Incubate X) name(Incubate X) token(Incubator) and!( counter(1/1.type:land:mybattlefield) )! text=Incubate X twice, where X is the number of lands you control. (To incubate X, create an Incubator token with X +1/+1 counters on it and "{2}: Transform this artifact." It transforms into a 0/0 Phyrexian artifact creature.) mana={2}{G}{G} type=Sorcery @@ -37562,7 +37597,7 @@ toughness=5 [card] name=Grizzly Ghoul abilities=trample -auto=foreach(creature[fresh]|graveyard) counter(1/1) +auto=counter(1/1,bothalldeadcreature) text=Trample -- Grizzly Ghoul enters the battlefield with a +1/+1 counter on it for each creature that died this turn. type=Creature subtype=Zombie Bear @@ -38766,7 +38801,17 @@ type=Instant [/card] [card] name=Hamza, Guardian of Arashin -anyzone=foreach(creature[counter{1/1}]|mybattlefield) changecost(colorless:-1) forcedalive +anyzone=aslongas(creature[counter{1/1}]|mybattlefield) altercost(colorless,-1) >0 +anyzone=aslongas(creature[counter{1/1}]|mybattlefield) altercost(colorless,-1) >1 +anyzone=aslongas(creature[counter{1/1}]|mybattlefield) altercost(colorless,-1) >2 +anyzone=aslongas(creature[counter{1/1}]|mybattlefield) altercost(colorless,-1) >3 +anyzone=aslongas(creature[counter{1/1}]|mybattlefield) altercost(colorless,-1) >4 +anyzone=aslongas(creature[counter{1/1}]|mybattlefield) altercost(colorless,-1) >5 +anyzone=aslongas(creature[counter{1/1}]|mybattlefield) altercost(colorless,-1) >6 +anyzone=aslongas(creature[counter{1/1}]|mybattlefield) altercost(colorless,-1) >7 +anyzone=aslongas(creature[counter{1/1}]|mybattlefield) altercost(colorless,-1) >8 +anyzone=aslongas(creature[counter{1/1}]|mybattlefield) altercost(colorless,-1) >9 +anyzone=aslongas(creature[counter{1/1}]|mybattlefield) altercost(colorless,-1) >10 auto=lord(creature|mycastingzone) foreach(creature[counter{1/1}]|mybattlefield) changecost(colorless:-1) forcedalive text=This spell costs {1} less to cast for each creature you control with a +1/+1 counter on it. -- Creature spells you cast cost {1} less to cast for each creature you control with a +1/+1 counter on it. mana={4}{G}{W} @@ -39076,6 +39121,17 @@ mana={2}{R} type=Enchantment [/card] [card] +name=Harnessed Snubhorn +abilities=vigilance +auto=@combatdamaged(player) from(this):name(Return artifact or enchantment) target(*[artifact;enchantment]|mygraveyard) moveTo(mybattlefield) +text=Vigilance -- Whenever Harnessed Snubhorn deals combat damage to a player, return target artifact or enchantment card from your graveyard to the battlefield. +mana={3}{W} +type=Creature +subtype=Dinosaur +power=2 +toughness=5 +[/card] +[card] name=Harnfel, Horn of Bounty auto={D(*|myhand)}:name(Exile top 2 cards) all(*[zpos<=2]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile])) ueot )! text=Discard a card: Exile the top two cards of your library. You may play those cards this turn. // {2}{R} Birgi, God of Storytelling @@ -42099,9 +42155,17 @@ type=Snow Artifact [/card] [card] name=Icebreaker Kraken -autograveyard=foreach(land[snow]|mybattlefield) changecost(colorless:-1) forcedalive -autoexile=foreach(land[snow]|mybattlefield) changecost(colorless:-1) forcedalive -autohand=foreach(land[snow]|mybattlefield) changecost(colorless:-1) forcedalive +anyzone=aslongas(land[snow]|mybattlefield) altercost(colorless,-1) >0 +anyzone=aslongas(land[snow]|mybattlefield) altercost(colorless,-1) >1 +anyzone=aslongas(land[snow]|mybattlefield) altercost(colorless,-1) >2 +anyzone=aslongas(land[snow]|mybattlefield) altercost(colorless,-1) >3 +anyzone=aslongas(land[snow]|mybattlefield) altercost(colorless,-1) >4 +anyzone=aslongas(land[snow]|mybattlefield) altercost(colorless,-1) >5 +anyzone=aslongas(land[snow]|mybattlefield) altercost(colorless,-1) >6 +anyzone=aslongas(land[snow]|mybattlefield) altercost(colorless,-1) >7 +anyzone=aslongas(land[snow]|mybattlefield) altercost(colorless,-1) >8 +anyzone=aslongas(land[snow]|mybattlefield) altercost(colorless,-1) >9 +anyzone=aslongas(land[snow]|mybattlefield) altercost(colorless,-1) >10 auto=all(*[artifact;creature]|opponentbattlefield) frozen auto={H(land[snow]|mybattlefield)}{H(land[snow]|mybattlefield)}{H(land[snow]|mybattlefield)}:moveTo(ownerhand) text=This spell costs {1} less to cast for each snow land you control. -- When Icebreaker Kraken enters the battlefield, artifacts and creatures target opponent controls don't untap during that player's next untap step. -- Return three snow lands you control to their owner's hand: Return Icebreaker Kraken to its owner's hand. @@ -42158,7 +42222,7 @@ toughness=1 [card] name=Ichor Drinker abilities=lifelink -autograveyard={B}{E}:name(Incubate 2) name(Incubate 2) activate castcard(noevent costx!:2:! named!:Incubator:!) asSorcery +autograveyard={B}{E}:name(Incubate 2) name(Incubate 2) token(Incubator) and!( counter(1/1.2) )! asSorcery text=Lifelink -- {B}, Exile Ichor Drinker from your graveyard: Incubate 2. Activate only as a sorcery. (Create an Incubator token with two +1/+1 counters on it and "{2}: Transform this artifact." It transforms into a 0/0 Phyrexian artifact creature.) mana={B} type=Creature @@ -43212,7 +43276,6 @@ type=Artifact [card] name=Incubator backside=Phyrexian -auto=counter(1/1,X) auto={2}:name(Becomes Phyrexian) flip(backside) text={2}: Transform this artifact. type=Artifact @@ -43357,7 +43420,7 @@ subtype=Aura [/card] [card] name=Infected Defector -auto=_DIES_name(Incubate 3) name(Incubate 3) activate castcard(noevent costx!:3:! named!:Incubator:!) +auto=_DIES_name(Incubate 3) name(Incubate 3) token(Incubator) and!( counter(1/1.3) )! text=When Infected Defector dies, incubate 3. (Create an Incubator token with three +1/+1 counters on it and "{2}: Transform this artifact." It transforms into a 0/0 Phyrexian artifact creature.) mana={4}{W} type=Creature @@ -43777,7 +43840,7 @@ toughness=1 [card] name=Injector Crocodile autohand={2}{cycle}:name(search swamp) target(swamp|myLibrary) moveTo(myHand) and!( shuffle )! -auto=_DIES_name(Incubate 3) name(Incubate 3) activate castcard(noevent costx!:3:! named!:Incubator:!) +auto=_DIES_name(Incubate 3) name(Incubate 3) token(Incubator) and!( counter(1/1.3) )! text=When Injector Crocodile dies, incubate 3. (Create an Incubator token with three +1/+1 counters on it and "{2}: Transform this artifact." It transforms into a 0/0 Phyrexian artifact creature.) -- Swampcycling {2} ({2}, Discard this card: Search your library for a Swamp card, reveal it, put it into your hand, then shuffle.) mana={4}{B}{B} type=Creature @@ -46297,9 +46360,7 @@ subtype=Aura [/card] [card] name=Journey to Oblivion -autoexile=thisforeach(variable{calculateparty}>0) changecost(colorless:-1) forcedalive -autograveyard=thisforeach(variable{calculateparty}>0) changecost(colorless:-1) forcedalive -autohand=thisforeach(variable{calculateparty}>0) changecost(colorless:-1) forcedalive +abilities=affinityparty auto=target(*[-land]|opponentBattlefield) (blink)forsrc text=This spell cost {1} less to cast for each creature in your party. (Your party consists of up to one each of Cleric, Rogue, Warrior, and Wizard.) When Journey to Oblivion enters the battlefield, exile target nonland permanent an opponent controls until Journey to Oblivion leaves the battlefield. mana={4}{W} @@ -46563,9 +46624,17 @@ toughness=5 [/card] [card] name=Junk Winder -autoexile=thisforeach(variable{type:*[token]:mybattlefield}>0) changecost(colorless:-1) forcedalive -autograveyard=thisforeach(variable{type:*[token]:mybattlefield}>0) changecost(colorless:-1) forcedalive -autohand=thisforeach(variable{type:*[token]:mybattlefield}>0) changecost(colorless:-1) forcedalive +anyzone=aslongas(*[token]|mybattlefield) altercost(colorless,-1) >0 +anyzone=aslongas(*[token]|mybattlefield) altercost(colorless,-1) >1 +anyzone=aslongas(*[token]|mybattlefield) altercost(colorless,-1) >2 +anyzone=aslongas(*[token]|mybattlefield) altercost(colorless,-1) >3 +anyzone=aslongas(*[token]|mybattlefield) altercost(colorless,-1) >4 +anyzone=aslongas(*[token]|mybattlefield) altercost(colorless,-1) >5 +anyzone=aslongas(*[token]|mybattlefield) altercost(colorless,-1) >6 +anyzone=aslongas(*[token]|mybattlefield) altercost(colorless,-1) >7 +anyzone=aslongas(*[token]|mybattlefield) altercost(colorless,-1) >8 +anyzone=aslongas(*[token]|mybattlefield) altercost(colorless,-1) >9 +anyzone=aslongas(*[token]|mybattlefield) altercost(colorless,-1) >10 auto=@movedto(*[token]|myBattlefield):name(Freeze non-land permanent) target(*[-land]|opponentBattlefield) freeze text=Affinity for tokens (This spell costs 1 less to cast for each token you control.) -- Whenever a token enters the battlefield under your control, tap target nonland permanent an opponent controls. It doesn't untap during its controller's next untap step. mana={5}{U}{U} @@ -47023,7 +47092,7 @@ toughness=4 [/card] [card] name=Karador, Ghost Chieftain -anyzone=thisforeach(variable{type:creature:mygraveyard}>0) changecost(colorless:-1) forcedalive +abilities=affinitygravecreatures auto={0}:name(Cast from your graveyard) target(creature|mygraveyard) transforms((,newability[canPlayFromGraveyard])) ueot limit:1 myTurnOnly text=This spell costs {1} less to cast for each creature card in your graveyard. -- During each of your turns, you may cast one creature card from your graveyard. mana={5}{B}{G}{W} @@ -50509,10 +50578,7 @@ toughness=2 [/card] [card] name=Leyline Binding -abilities=flash -autoexile=thisforeach(variable{pbasiclandtypes}>0) changecost(colorless:-1) forcedalive -autograveyard=thisforeach(variable{pbasiclandtypes}>0) changecost(colorless:-1) forcedalive -autohand=thisforeach(variable{pbasiclandtypes}>0) changecost(colorless:-1) forcedalive +abilities=flash,affinitybasiclandtypes auto=(blink)forsrc target(*[-land]|opponentbattlefield) text=Flash -- Domain - This spell costs {1} less to cast for each basic land type among lands you control. -- When Leyline Binding enters the battlefield, exile target nonland permanent an opponent controls until Leyline Binding leaves the battlefield. mana={5}{W} @@ -50657,15 +50723,15 @@ type=Legendary Enchantment [card] name=Licia, Sanguine Tribune abilities=first strike,lifelink -anyzone=this(variable{lifegain}=1) changecost(colorless:-1) forcedalive -anyzone=this(variable{lifegain}=2) changecost(colorless:-2) forcedalive -anyzone=this(variable{lifegain}=3) changecost(colorless:-3) forcedalive -anyzone=this(variable{lifegain}=4) changecost(colorless:-4) forcedalive -anyzone=this(variable{lifegain}=5) changecost(colorless:-5) forcedalive -anyzone=this(variable{lifegain}=6) changecost(colorless:-6) forcedalive -anyzone=this(variable{lifegain}=7) changecost(colorless:-7) forcedalive -anyzone=this(variable{lifegain}=8) changecost(colorless:-8) forcedalive -anyzone=this(variable{lifegain}=9) changecost(colorless:-9) forcedalive +anyzone=this(variable{lifegain}>0) changecost(colorless:-1) +anyzone=this(variable{lifegain}>1) changecost(colorless:-1) +anyzone=this(variable{lifegain}>2) changecost(colorless:-1) +anyzone=this(variable{lifegain}>3) changecost(colorless:-1) +anyzone=this(variable{lifegain}>4) changecost(colorless:-1) +anyzone=this(variable{lifegain}>5) changecost(colorless:-1) +anyzone=this(variable{lifegain}>6) changecost(colorless:-1) +anyzone=this(variable{lifegain}>7) changecost(colorless:-1) +anyzone=this(variable{lifegain}>8) changecost(colorless:-1) auto={L:5}:counter(1/1,3) myTurnOnly limit:1 text=This spell costs {1} less to cast for each 1 life you gained this turn. -- First strike, lifelink -- Pay 5 life: Put three +1/+1 counters on Licia, Sanguine Tribune. Activate this ability only during your turn and only once each turn. mana={5}{R}{W}{B} @@ -52973,7 +53039,7 @@ toughness=1 [/card] [card] name=Mahadi, Emporium Master -auto=@each my endofturn:foreach(creature[fresh]|graveyard) token(Treasure sur) +auto=@each my endofturn:name(Create treasures) token(Treasure sur)*bothalldeadcreature text=At the beginning of your end step, create a Treasure token for each creature that died this turn. (It's an artifact with "{T}, Sacrifice this artifact: Add one mana of any color.") mana={1}{B}{R} type=Legendary Creature @@ -53563,7 +53629,7 @@ toughness=3 [card] name=Marauding Dreadship abilities=haste -auto=name(Incubate 2) name(Incubate 2) activate castcard(noevent costx!:2:! named!:Incubator:!) +auto=name(Incubate 2) name(Incubate 2) token(Incubator) and!( counter(1/1.2) )! auto={crew(other creature[power>=2]|myBattlefield)}:name(crew 2 [1 creature]) becomes(Artifact Creature) ueot restriction{type(other creature[-tapped;power>=2]|mybattlefield)~morethan~0,compare(crewtotalpower)~morethan~1} auto={crew(other creature[power>=1]|myBattlefield)}{crew(other creature[power>=1]|myBattlefield)}:name(crew 2 [2 creature]) becomes(Artifact Creature) ueot restriction{type(other creature[-tapped;power>=1]|mybattlefield)~morethan~1,compare(crewtotalpower)~morethan~1} text=Haste -- When Marauding Dreadship enters the battlefield, incubate 2. (Create an Incubator token with two +1/+1 counters on it and "{2}: Transform this artifact." It transforms into a 0/0 Phyrexian artifact creature.) -- Crew 2 (Tap any number of creatures you control with total power 2 or more: This Vehicle becomes an artifact creature until end of turn.) @@ -54639,7 +54705,7 @@ toughness=2 name=Merciless Repurposing target=creature auto=moveto(exile) -auto=name(Incubate 3) name(Incubate 3) activate castcard(noevent costx!:3:! named!:Incubator:!) +auto=name(Incubate 3) name(Incubate 3) token(Incubator) and!( counter(1/1.3) )! text=Exile target creature. Incubate 3. (Create an Incubator token with three +1/+1 counters on it and "{2}: Transform this artifact." It transforms into a 0/0 Phyrexian artifact creature.) mana={4}{B}{B} type=Instant @@ -55236,7 +55302,17 @@ toughness=3 [card] name=Millicent, Restless Revenant abilities=flying -anyzone=foreach(spirit|myBattlefield) changecost(colorless:-1) forcedalive +anyzone=aslongas(spirit|mybattlefield) altercost(colorless,-1) >0 +anyzone=aslongas(spirit|mybattlefield) altercost(colorless,-1) >1 +anyzone=aslongas(spirit|mybattlefield) altercost(colorless,-1) >2 +anyzone=aslongas(spirit|mybattlefield) altercost(colorless,-1) >3 +anyzone=aslongas(spirit|mybattlefield) altercost(colorless,-1) >4 +anyzone=aslongas(spirit|mybattlefield) altercost(colorless,-1) >5 +anyzone=aslongas(spirit|mybattlefield) altercost(colorless,-1) >6 +anyzone=aslongas(spirit|mybattlefield) altercost(colorless,-1) >7 +anyzone=aslongas(spirit|mybattlefield) altercost(colorless,-1) >8 +anyzone=aslongas(spirit|mybattlefield) altercost(colorless,-1) >9 +anyzone=aslongas(spirit|mybattlefield) altercost(colorless,-1) >10 auto=@damaged(player) from(spirit[-token]|myBattlefield):name(Create Spirit) _SPIRITTOKEN_ auto=@movedto(spirit[-token]|graveyard) from(myBattlefield):name(Create Spirit) _SPIRITTOKEN_ text=This spell costs {1} less to cast for each Spirit you control. -- Flying -- Whenever Millicent, Restless Revenant or another nontoken Spirit you control dies or deals damage to a player, create a 1/1 white Spirit creature token with flying. @@ -56207,7 +56283,7 @@ toughness=1 [/card] [card] name=Molderhulk -anyzone=foreach(creature|mygraveyard) changecost(colorless:-1) forcedalive +abilities=affinitygravecreatures auto=target(land|mygraveyard) moveTo(mybattlefield) text=Undergrowth - This spell costs {1} less to cast for each creature card in your graveyard. -- When Molderhulk enters the battlefield, return target land card from your graveyard to the battlefield. mana={7}{B}{G} @@ -57236,10 +57312,10 @@ type=Sorcery [/card] [card] name=Muxus, Goblin Grandee -aicode=activate all(creature[goblin;manacost<=5;zpos<=6]|mylibrary) moveto(mybattlefield) and!( all(*[zpos<=6]|mylibrary) bottomoflibrary )! -auto=name(Look top 6) reveal:6 optionone name(Get goblins) target(<6>*[goblin&creature;manacost<=5]|reveal) moveto(ownerlibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(put back) target(<1>*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend afterrevealed all(tobecast|mylibrary) moveto(ownerlibrary) and!(moveto(ownerbattlefield))! afterrevealedend revealend -text=When Muxus, Goblin Grandee enters the battlefield, reveal the top six cards of your library. Put all Goblin creature cards with mana value 5 or less from among them onto the battlefield and the rest on the bottom of your library in a random order. -- Whenever Muxus attacks, it gets +1/+1 until end of turn for each other Goblin you control. +aicode=activate all(creature[goblin&manacost<=5&zpos<=6]|mylibrary) moveto(mybattlefield) and!( all([zpos<=6]|mylibrary) bottomoflibrary )! +auto=name(Look top 6) reveal:6 optionone name(Get goblins) target(<6>creature[goblin&manacost<=5]|reveal) moveto(ownerlibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(put back) target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend afterrevealed all(tobecast|mylibrary) moveto(ownerlibrary) and!( moveto(ownerbattlefield) )! afterrevealedend revealend auto=_ATTACKING_name(Get 1/1 for each other goblin) type:goblin:mybattlefieldminus1minusend/type:goblin:mybattlefieldminus1minusend ueot +text=When Muxus, Goblin Grandee enters the battlefield, reveal the top six cards of your library. Put all Goblin creature cards with mana value 5 or less from among them onto the battlefield and the rest on the bottom of your library in a random order. -- Whenever Muxus attacks, it gets +1/+1 until end of turn for each other Goblin you control. mana={4}{R}{R} type=Legendary Creature subtype=Goblin Noble @@ -58392,7 +58468,7 @@ toughness=2 [/card] [card] name=Nemesis of Mortals -anyzone=foreach(creature|mygraveyard) changecost(colorless:-1) forcedalive +abilities=affinitygravecreatures auto=this(cantargetcard(*[-monstrous]) {7}{G}{G}:becomes(monstrous) forever && counter(1/1,5) restriction{type(creature|mygraveyard)~equalto~0} auto=this(cantargetcard(*[-monstrous]) {6}{G}{G}:becomes(monstrous) forever && counter(1/1,5) restriction{type(creature|mygraveyard)~equalto~1} auto=this(cantargetcard(*[-monstrous]) {5}{G}{G}:becomes(monstrous) forever && counter(1/1,5) restriction{type(creature|mygraveyard)~equalto~2} @@ -58688,7 +58764,7 @@ toughness=0 [card] name=Nevinyrral, Urborg Tyrant auto=cantbetargetof(*[artifact;creature;enchantment]) -auto=foreach(creature[fresh]|graveyard) _ZOMBIETOKEN_ and!( tap(noevent) )! +auto=thisforeach(variable{bothalldeadcreature}>0) _ZOMBIETOKEN_ and!( tap(noevent) )! auto=_DIES_pay({1}) name(destroy all artifacts, creatures, and enchantments) destroy all(artifact,creature,enchantment) text=Hexproof from artifacts, creatures, and enchantments -- When Nevinyrral, Urborg Tyrant enters the battlefield, create a tapped 2/2 black Zombie creature token for each creature that died this turn. -- When Nevinyrral dies, you may pay {1} . When you do, destroy all artifacts, creatures, and enchantments. mana={3}{W}{U}{B} @@ -59514,7 +59590,7 @@ toughness=4 [/card] [card] name=Norn's Inquisitor -auto=name(Incubate 2) activate castcard(noevent costx!:2:! named!:Incubator:!) +auto=name(Incubate 2) name(Incubate 2) token(Incubator) and!( counter(1/1.2) )! auto=@transformed(*[phyrexian]|mybattlefield):name(Put 1/1 counter) name(Put 1/1 counter) all(trigger) counter(1/1) text=When Norn's Inquisitor enters the battlefield, incubate 2. (Create an Incubator token with two +1/+1 counters on it and "{2}: Transform this artifact." It transforms into a 0/0 Phyrexian artifact creature.) -- Whenever a permanent you control transforms into a Phyrexian, put a +1/+1 counter on it. mana={1}{W} @@ -61546,7 +61622,17 @@ toughness=1 [card] name=Ore-Scale Guardian abilities=flying,haste -autohand=affinity(land|mygraveyard) reduce({1}) +anyzone=aslongas(land|mygraveyard) altercost(colorless,-1) >0 +anyzone=aslongas(land|mygraveyard) altercost(colorless,-1) >1 +anyzone=aslongas(land|mygraveyard) altercost(colorless,-1) >2 +anyzone=aslongas(land|mygraveyard) altercost(colorless,-1) >3 +anyzone=aslongas(land|mygraveyard) altercost(colorless,-1) >4 +anyzone=aslongas(land|mygraveyard) altercost(colorless,-1) >5 +anyzone=aslongas(land|mygraveyard) altercost(colorless,-1) >6 +anyzone=aslongas(land|mygraveyard) altercost(colorless,-1) >7 +anyzone=aslongas(land|mygraveyard) altercost(colorless,-1) >8 +anyzone=aslongas(land|mygraveyard) altercost(colorless,-1) >9 +anyzone=aslongas(land|mygraveyard) altercost(colorless,-1) >10 text=This spell costs {1} less to cast for each land card in your graveyard. -- Flying, haste mana={5}{R}{R} type=Creature @@ -62211,7 +62297,17 @@ toughness=2 [/card] [card] name=Oxidda Finisher -anyzone=foreach(Equipment|myBattlefield) changecost(colorless:-1) forcedalive +anyzone=aslongas(equipment|mybattlefield) altercost(colorless,-1) >0 +anyzone=aslongas(equipment|mybattlefield) altercost(colorless,-1) >1 +anyzone=aslongas(equipment|mybattlefield) altercost(colorless,-1) >2 +anyzone=aslongas(equipment|mybattlefield) altercost(colorless,-1) >3 +anyzone=aslongas(equipment|mybattlefield) altercost(colorless,-1) >4 +anyzone=aslongas(equipment|mybattlefield) altercost(colorless,-1) >5 +anyzone=aslongas(equipment|mybattlefield) altercost(colorless,-1) >6 +anyzone=aslongas(equipment|mybattlefield) altercost(colorless,-1) >7 +anyzone=aslongas(equipment|mybattlefield) altercost(colorless,-1) >8 +anyzone=aslongas(equipment|mybattlefield) altercost(colorless,-1) >9 +anyzone=aslongas(equipment|mybattlefield) altercost(colorless,-1) >10 abilities=trample text=Affinity for Equipment (This spell costs {1} less to cast for each Equipment you control.) -- Trample mana={5}{R}{R} @@ -63683,7 +63779,7 @@ type=Artifact [/card] [card] name=Phyrexian Awakening -auto=name(Incubate 4) name(Incubate 4) activate castcard(noevent costx!:4:! named!:Incubator:!) +auto=name(Incubate 4) name(Incubate 4) token(Incubator) and!( counter(1/1.4) )! auto=lord(phyrexian|myBattlefield) transforms((,newability[vigilance])) text=When Phyrexian Awakening enters the battlefield, incubate 4. (Create an Incubator token with four +1/+1 counters on it and "{2}: Transform this artifact." It transforms into a 0/0 Phyrexian artifact creature.) -- Phyrexians you control have vigilance. mana={2}{W} @@ -66037,7 +66133,7 @@ type=Instant [/card] [card] name=Progenitor Exarch -auto=thisforeach(variable{halfpaid}>0) name(Incubate 3) name(Incubate 3) activate castcard(noevent costx!:3:! named!:Incubator:!) +auto=thisforeach(variable{halfpaid}>0) name(Incubate 3) name(Incubate 3) token(Incubator) and!( counter(1/1.3) )! auto={T}:name(Transform incubator) target(incubator|myBattlefield) flip(backside) text=When Progenitor Exarch enters the battlefield, incubate 3 X times. (To incubate 3, create an Incubator token with three +1/+1 counters on it and "{2}: Transform this artifact." It transforms into a 0/0 Phyrexian artifact creature.) -- {T}: Transform target Incubator token you control. mana={X}{X}{W} @@ -73453,7 +73549,17 @@ toughness=4 [/card] [card] name=Sailors' Bane -anyzone=foreach(*[instant;sorcery;adventure]|mygraveyard,myexile) changecost(colorless:-1) forcedalive +anyzone=aslongas(*[instant;sorcery;adventure]|mygraveyard) altercost(colorless,-1) >0 +anyzone=aslongas(*[instant;sorcery;adventure]|mygraveyard) altercost(colorless,-1) >1 +anyzone=aslongas(*[instant;sorcery;adventure]|mygraveyard) altercost(colorless,-1) >2 +anyzone=aslongas(*[instant;sorcery;adventure]|mygraveyard) altercost(colorless,-1) >3 +anyzone=aslongas(*[instant;sorcery;adventure]|mygraveyard) altercost(colorless,-1) >4 +anyzone=aslongas(*[instant;sorcery;adventure]|mygraveyard) altercost(colorless,-1) >5 +anyzone=aslongas(*[instant;sorcery;adventure]|mygraveyard) altercost(colorless,-1) >6 +anyzone=aslongas(*[instant;sorcery;adventure]|mygraveyard) altercost(colorless,-1) >7 +anyzone=aslongas(*[instant;sorcery;adventure]|mygraveyard) altercost(colorless,-1) >8 +anyzone=aslongas(*[instant;sorcery;adventure]|mygraveyard) altercost(colorless,-1) >9 +anyzone=aslongas(*[instant;sorcery;adventure]|mygraveyard) altercost(colorless,-1) >10 auto=_WARD_(4) text=This spell costs {1} less to cast for each card you own in exile and in your graveyard that's an instant card, a sorcery card, or a card that has an Adventure. -- Ward {4} (Whenever this creature becomes the target of a spell or ability an opponent controls, counter it unless that player pays {4}.) mana={7}{U}{U} @@ -74808,10 +74914,7 @@ toughness=3 [/card] [card] name=Scion of Draco -abilities=flying -autoexile=thisforeach(variable{pbasiclandtypes}>0) changecost(colorless:-2) forcedalive -autograveyard=thisforeach(variable{pbasiclandtypes}>0) changecost(colorless:-2) forcedalive -autohand=thisforeach(variable{pbasiclandtypes}>0) changecost(colorless:-2) forcedalive +abilities=flying,affinitytwobasiclandtypes auto=lord(creature[white]|myBattlefield) vigilance auto=lord(creature[blue]|myBattlefield) opponentshroud auto=lord(creature[black]|myBattlefield) lifelink @@ -75188,7 +75291,7 @@ toughness=4 [/card] [card] name=Sculpted Perfection -auto=name(Incubate 2) name(Incubate 2) activate castcard(noevent costx!:2:! named!:Incubator:!) +auto=name(Incubate 2) name(Incubate 2) token(Incubator) and!( counter(1/1.2) )! auto=lord(phyrexian|myBattlefield) +1/+1 text=When Sculpted Perfection enters the battlefield, incubate 2. (Create an Incubator token with two +1/+1 counters on it and "{2}: Transform this artifact." It transforms into a 0/0 Phyrexian artifact creature.) -- Phyrexians you control get +1/+1. mana={2}{W}{B} @@ -75487,7 +75590,7 @@ type=Enchantment [/card] [card] name=Search Party Captain -anyzone=@combat(attacking) source(creature|mybattlefield):name(Reduce cost) transforms((,newability[changecost(colorless:-1)])) ueot +abilities=affinityattackingcreatures auto=draw:1 controller text=This spell costs {1} less to cast for each creature you attacked with this turn. -- When Search Party Captain enters the battlefield, draw a card. type=Creature @@ -75548,7 +75651,7 @@ name=Searing Barb target=player,creature,planeswalker auto=damage:2 auto=if cantargetcard(*[creature]|*) then transforms((,newability[cantblock])) ueot -auto=name(Incubate 1) name(Incubate 1) activate castcard(noevent costx!:1:! named!:Incubator:!) +auto=name(Incubate 1) name(Incubate 1) token(Incubator) and!( counter(1/1) )! text=Searing Barb deals 2 damage to any target. If it's a creature, it can't block this turn. Incubate 1. (Create an Incubator token with a +1/+1 counter on it and "{2}: Transform this artifact." It transforms into a 0/0 Phyrexian artifact creature.) mana={2}{R} type=Sorcery @@ -77173,10 +77276,7 @@ toughness=3 [/card] [card] name=Shatterskull Minotaur -abilities=haste -autoexile=thisforeach(variable{calculateparty}>0) changecost(colorless:-1) forcedalive -autograveyard=thisforeach(variable{calculateparty}>0) changecost(colorless:-1) forcedalive -autohand=thisforeach(variable{calculateparty}>0) changecost(colorless:-1) forcedalive +abilities=haste,affinityparty text=This spell costs {1} less to cast for each creature in your party. (Your party consists of up to one each of Cleric, Rogue, Warrior, and Wizard.) -- Haste mana={4}{R}{R} type=Creature @@ -79546,8 +79646,7 @@ toughness=2 [/card] [card] name=Sky-Blessed Samurai -abilities=flying -anyzone=foreach(enchantment|myBattlefield) changecost(colorless:-1) forcedalive +abilities=flying,affinityenchantments text=This spell costs {1} less to cast for each enchantment you control. -- Flying mana={6}{W} type=Enchantment Creature @@ -82656,9 +82755,7 @@ toughness=3 [/card] [card] name=Spoils of Adventure -autoexile=thisforeach(variable{calculateparty}>0) changecost(colorless:-1) forcedalive -autograveyard=thisforeach(variable{calculateparty}>0) changecost(colorless:-1) forcedalive -autohand=thisforeach(variable{calculateparty}>0) changecost(colorless:-1) forcedalive +abilities=affinityparty auto=life:3 controller auto=draw:3 controller text=This spell costs {1} less to cast for each creature in your party. (Your party consists of up to one each of Cleric, Rogue, Warrior, and Wizard.) -- You gain 3 life and draw three cards. @@ -84493,10 +84590,7 @@ type=Instant [/card] [card] name=Stratadon -abilities=trample -autoexile=thisforeach(variable{pbasiclandtypes}>0) changecost(colorless:-1) forcedalive -autograveyard=thisforeach(variable{pbasiclandtypes}>0) changecost(colorless:-1) forcedalive -autohand=thisforeach(variable{pbasiclandtypes}>0) changecost(colorless:-1) forcedalive +abilities=trample,affinitybasiclandtypes text=Domain - Stratadon costs {1} less to cast for each basic land type among lands you control. -- Trample mana={10} type=Artifact Creature @@ -85142,9 +85236,10 @@ toughness=5 [/card] [card] name=Sunder the Gateway -auto=if type(artifact[-token]|opponentbattlefield)~morethan~0 then choice name(Destroy artifact and incubate 2) name(Destroy artifact and incubate 2) target(artifact[-token]|opponentbattlefield) destroy and!( activate castcard(noevent costx!:2:! named!:Incubator:!) )! -auto=if type(enchantment|opponentbattlefield)~morethan~0 then choice name(Destroy enchantment and incubate 2) name(Destroy enchantment and incubate 2) target(enchantment|opponentbattlefield) destroy and!( activate castcard(noevent costx!:2:! named!:Incubator:!) )! -auto=choice name(Incubate 2 and transform) name(Incubate 2 and transform) emblem transforms((,newability[name(Incubate 2) name(Incubate 2) activate castcard(noevent costx!:2:! named!:Incubator:!)],newability[@movedto(incubator|mybattlefield) turnlimited:name(Choose incubator) name(Choose incubator) target(incubator|mybattlefield) flip(backside)])) ueot +auto=if type(artifact[-token]|opponentbattlefield)~morethan~0 then choice name(Destroy artifact and incubate 2) name(Destroy artifact and incubate 2) target(artifact[-token]|opponentbattlefield) destroy and!( token(Incubator) and!( counter(1/1.2) )! )! +auto=if type(enchantment|opponentbattlefield)~morethan~0 then choice name(Destroy enchantment and incubate 2) name(Destroy enchantment and incubate 2) target(enchantment|opponentbattlefield) destroy and!( token(Incubator) and!( counter(1/1.2) )! )! +#auto=choice name(Incubate 2 and transform) name(Incubate 2 and transform) emblem transforms((,newability[name(Incubate 2) name(Incubate 2) token(Incubator) and!( counter(1/1.2) )!],newability[@movedto(incubator|mybattlefield) turnlimited:name(Choose incubator) name(Choose incubator) target(incubator|mybattlefield) flip(backside)])) ueot +auto=choice name(Incubate 2 and transform) name(Incubate 2 and transform) token(Incubator) and!( transforms((,newability[counter(1/1.2)],newability[name(Choose incubator) target(incubator|mybattlefield) flip(backside)])) forever )! text=Choose one -- Destroy target nontoken artifact or enchantment an opponent controls. Incubate 2. (Create an Incubator token with two +1/+1 counters on it and "{2}: Transform this artifact." It transforms into a 0/0 Phyrexian artifact creature.) -- Incubate 2, then transform an Incubator token you control. mana={1}{W} type=Sorcery @@ -85188,7 +85283,7 @@ type=Land [/card] [card] name=Sunfall -auto=name(Incubate X) name(Incubate X) activate castcard(noevent costx!:type:creature:battlefield:! named!:Incubator:!) and!( all(creature|battlefield) moveto(exile) )! +auto=name(Incubate X) name(Incubate X) token(Incubator) and!( transforms((,newability[counter(1/1.type:creature:battlefield)],newability[all(creature|battlefield) moveto(exile)])) forever )! text=Exile all creatures. Incubate X, where X is the number of creatures exiled this way. (Create an Incubator token with X +1/+1 counters on it and "{2}: Transform this artifact." It transforms into a 0/0 Phyrexian artifact creature.) mana={3}{W}{W} type=Sorcery @@ -86970,7 +87065,7 @@ subtype=Forest Island [card] name=Tangled Skyline auto=life:5 controller -auto=name(Incubate 5) name(Incubate 5) activate castcard(noevent costx!:5:! named!:Incubator:!) +auto=name(Incubate 5) name(Incubate 5) token(Incubator) and!( counter(1/1.5) )! auto=lord(phyrexian|myBattlefield) reach text=When Tangled Skyline enters the battlefield, you gain 5 life and incubate 5. (Create an Incubator token with five +1/+1 counters on it and "{2}: Transform this artifact." It transforms into a 0/0 Phyrexian artifact creature.) -- Phyrexians you control have reach. mana={4}{G} @@ -87328,11 +87423,8 @@ toughness=1 [/card] [card] name=Tazri, Beacon of Unity +abilities=affinityparty aicode=activate moveTo(myHand) target(creature[ally;cleric;rogue;warrior;wizard;zpos<=6]|myLibrary) -autocommandzone=thisforeach(variable{calculateparty}>0) changecost(colorless:-1) forcedalive -autoexile=thisforeach(variable{calculateparty}>0) changecost(colorless:-1) forcedalive -autograveyard=thisforeach(variable{calculateparty}>0) changecost(colorless:-1) forcedalive -autohand=thisforeach(variable{calculateparty}>0) changecost(colorless:-1) forcedalive auto={2U}{2B}{2R}{2G}:name(Reveal six cards from top) reveal:6 optionone name(Get cards) target(creature[ally;cleric;rogue;warrior;wizard]|reveal) moveTo(myHand) optiononeend optiontwo name(put on bottom) target(<6>*|reveal) bottomoflibrary optiontwoend revealend text=This spell costs {1} less to cast for each creature in your party. -- {2/U}{2/B}{2/R}{2/G}: Look at the top six cards of your library. You may reveal up to two Cleric, Rogue, Warrior, Wizard, and/or Ally cards from among them and put them into your hand. Put the rest on the bottom of your library in a random order. mana={4}{W} @@ -88277,7 +88369,7 @@ subtype=Saga name=The Argent Etchings auto=counter(0/0,1,Lore) auto=@each my firstmain:counter(0/0,1,Lore) -auto=thisforeach(variable{5}) name(Incubate 2 five times) name(Incubate 2 five times) activate castcard(noevent costx!:2:! named!:Incubator:!) +auto=thisforeach(variable{5}) name(Incubate 2) name(Incubate 2) token(Incubator) and!( counter(1/1.2) )! auto=name(Transform all incubators) all(incubator|mybattlefield) flip(backside) auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.2.Lore}=) name(Creatures gain 1/1) all(creature|mybattlefield) transforms((,newability[1/1],newability[double strike])) ueot auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.3.Lore}) name(Destroy all prermanents) all(other *[-land;-phyrexian;-artifact]) destroy @@ -88412,7 +88504,7 @@ type=Enchantment [/card] [card] name=The Cauldron of Eternity -anyzone=foreach(creature|mygraveyard) changecost(colorless:-2) forcedalive +abilities=affinitygravecreatures auto=@movedTo(graveyard) from(creature|myBattlefield):all(trigger[from]) bottomoflibrary auto={2}{B}{T}{L:2}:moveTo(myBattlefield) target(creature|mygraveyard) asSorcery text=This spell costs {2} less to cast for each creature card in your graveyard. -- Whenever a creature you control dies, put it on the bottom of its owner's library. -- {2}{B}, {T}, Pay 2 life: Return target creature card from your graveyard to the battlefield. Activate this ability only any time you could cast a sorcery. @@ -88462,7 +88554,17 @@ toughness=4 [/card] [card] name=The Circle of Loyalty -anyzone=foreach(creature[knight]|myBattlefield) changecost(colorless:-1) forcedalive +anyzone=aslongas[knight|myBattlefield) altercost(colorless,-1) >0 +anyzone=aslongas(knight|myBattlefield) altercost(colorless,-1) >1 +anyzone=aslongas(knight|myBattlefield) altercost(colorless,-1) >2 +anyzone=aslongas(knight|myBattlefield) altercost(colorless,-1) >3 +anyzone=aslongas(knight|myBattlefield) altercost(colorless,-1) >4 +anyzone=aslongas(knight|myBattlefield) altercost(colorless,-1) >5 +anyzone=aslongas(knight|myBattlefield) altercost(colorless,-1) >6 +anyzone=aslongas(knight|myBattlefield) altercost(colorless,-1) >7 +anyzone=aslongas(knight|myBattlefield) altercost(colorless,-1) >8 +anyzone=aslongas(knight|myBattlefield) altercost(colorless,-1) >9 +anyzone=aslongas(knight|myBattlefield) altercost(colorless,-1) >10 auto=lord(creature|mybattlefield) 1/1 auto=@movedto(*[legendary]|mystack):create(knight:creature knight:2/2:white:vigilance) auto={3}{W}{T}:create(knight:creature knight:2/2:white:vigilance) @@ -88750,8 +88852,7 @@ toughness=4 [/card] [card] name=The Magic Mirror -anyzone=foreach(instant,sorcery|mygraveyard) changecost(colorless:-1) forcedalive -abilities=nomaxhand +abilities=nomaxhand,affinitygraveinstsorc auto=@each my upkeep:thisforeach(counter{0/0.1.knowledge}) draw:1 controller auto=@each my upkeep:counter(0/0,1,knowledge) text=This spell costs {1} less to cast for each instant and sorcery card in your graveyard. -- You have no maximum hand size. -- At the beginning of your upkeep, put a knowledge counter on The Magic Mirror, then draw a card for each knowledge counter on The Magic Mirror. @@ -89906,9 +90007,7 @@ type=Instant [/card] [card] name=Thwart the Grave -autoexile=thisforeach(variable{calculateparty}>0) changecost(colorless:-1) forcedalive -autograveyard=thisforeach(variable{calculateparty}>0) changecost(colorless:-1) forcedalive -autohand=thisforeach(variable{calculateparty}>0) changecost(colorless:-1) forcedalive +abilities=affinityparty auto=moveto(myBattlefield) target(creature|myGraveyard) && ability$!name(Choose a Cleric,Rogue,Warrior or Wizard) moveTo(myBattlefield) name(Choose a Cleric,Rogue,Warrior or Wizard) moveTo(myBattlefield) target(creature[cleric;rogue;warrior;wizard]|myGraveyard)!$ controller text=This spell costs {1} less to cast for each creature in your party. (Your party consists of up to one each of Cleric, Rogue, Warrior, and Wizard.) -- Return target creature card and up to one target Cleric, Rogue, Warrior, or Wizard creature card from your graveyard to the battlefield. mana={4}{B}{B} @@ -90040,7 +90139,7 @@ toughness=4 [/card] [card] name=Tiller of Flesh -auto=@targeted(*|battlefield) from(*[instant;sorcery;enchantment]|mycastingzone):name(Incubate 2) name(Incubate 2) activate castcard(noevent costx!:2:! named!:Incubator:!) +auto=@targeted(*|battlefield) from(*[instant;sorcery;enchantment]|mycastingzone):name(Incubate 2) name(Incubate 2) token(Incubator) and!( counter(1/1.2) )! text=Whenever you cast a spell that targets one or more permanents, incubate 2. (Create an Incubator token with two +1/+1 counters on it and "{2}: Transform this artifact." It transforms into a 0/0 Phyrexian artifact creature.) mana={3}{W} type=Creature @@ -90636,6 +90735,14 @@ type=Instant subtype=Arcane [/card] [card] +name=Tolarian Contempt +auto=name(Put rejection counter) all(creature|opponentbattlefield) counter(0/0,1,Rejection) +auto=@each my endofturn:may name(Choose opponent creature) target(creature[counter{0/0.1.Rejection}]|opponentbattlefield) transforms((,newability[choice name(Put on top) moveto(mylibrary)],newability[choice name(Put on bottom) bottomoflibrary])) oneshot +text=When Tolarian Contempt enters the battlefield, put a rejection counter on each creature your opponents control. -- At the beginning of your end step, for each opponent, choose up to one target creature they control with a rejection counter on it. That creature's owner puts it on the top or bottom of their library. +mana={3}{U}{U} +type=Enchantment +[/card] +[card] name=Tolarian Geyser kicker={W} target=creature @@ -90666,7 +90773,7 @@ toughness=3 [/card] [card] name=Tolarian Terror -anyzone=foreach(*[instant;sorcery]|mygraveyard) changecost(colorless:-1) forcedalive +abilities=affinitygraveinstsorc auto=_WARD_(2) text=This spell costs {1} less to cast for each instant and sorcery card in your graveyard. -- Ward {2} (Whenever this creature becomes the target of a spell or ability an opponent controls, counter it unless that player pays {2}.) mana={6}{U} @@ -91595,9 +91702,9 @@ subtype=Aura [/card] [card] name=Traumatic Revelation -auto=if type(*|opponenthand)~morethan~0 then if type(*[creature;battle]|opponenthand)~morethan~0 then name(Reveal opponent hand) name(Reveal opponent hand) name(Reveal opponent hand) target(*[creature;battle]|opponenthand) moveto(myreveal) and!( transforms((,newability[choice name(Opponent discards) moveto(opponenthand) and!( moveto(opponentgraveyard) )!],newability[choice name(Opponent doesn't discards) moveto(opponenthand) and!( activate castcard(noevent costx!:3:! named!:Incubator:!) )!])) oneshot )! -auto=if type(*|opponenthand)~morethan~0 then if type(*[creature;battle]|opponenthand)~equalto~0 then name(Reveal opponent hand) name(Reveal opponent hand) name(Reveal opponent hand) target(*|opponenthand) moveto(myreveal) and!( moveto(opponenthand) and!( activate castcard(noevent costx!:3:! named!:Incubator:!) )! )! -auto=if type(*|opponenthand)~equalto~0 then name(Incubate 3) name(Incubate 3) activate castcard(noevent costx!:3:! named!:Incubator:!) +auto=if type(*[creature;battle]|opponenthand)~morethan~0 then name(Reveal opponent hand) name(Reveal opponent hand) target(*[creature;battle]|opponenthand) moveto(myreveal) and!( transforms((,newability[choice name(Opponent discards) moveto(opponenthand) and!( reject )!],newability[choice name(Opponent doesn't discards) moveto(opponenthand) and!( token(Incubator) and!( counter(1/1.3) )!])) oneshot )! +auto=if type(*[creature;battle]|opponenthand)~equalto~0 then if type(*|opponenthand)~morethan~0 then name(Reveal opponent hand) name(Reveal opponent hand) name(Reveal opponent hand) target(*|opponenthand) moveto(myreveal) and!( moveto(opponenthand) and!( token(Incubator) and!( counter(1/1.3) )! )! )! +auto=if type(*|opponenthand)~equalto~0 then name(Incubate 3) name(Incubate 3) token(Incubator) and!( counter(1/1.3) )! text=Target opponent reveals their hand. You may choose a creature or battle card from it. If you do, that player discards that card. If you don't, incubate 3. (Create an Incubator token with three +1/+1 counters on it and "{2}: Transform this artifact." It transforms into a 0/0 Phyrexian artifact creature.) mana={1}{B} type=Sorcery @@ -94008,7 +94115,17 @@ type=Artifact [/card] [card] name=Urza, Chief Artificer -anyzone=foreach(artifact[creature]|myBattlefield) changecost(colorless:-1) forcedalive +anyzone=aslongas(creature[artifact]|myBattlefield) altercost(colorless,-1) >0 +anyzone=aslongas(creature[artifact]|myBattlefield) altercost(colorless,-1) >1 +anyzone=aslongas(creature[artifact]|myBattlefield) altercost(colorless,-1) >2 +anyzone=aslongas(creature[artifact]|myBattlefield) altercost(colorless,-1) >3 +anyzone=aslongas(creature[artifact]|myBattlefield) altercost(colorless,-1) >4 +anyzone=aslongas(creature[artifact]|myBattlefield) altercost(colorless,-1) >5 +anyzone=aslongas(creature[artifact]|myBattlefield) altercost(colorless,-1) >6 +anyzone=aslongas(creature[artifact]|myBattlefield) altercost(colorless,-1) >7 +anyzone=aslongas(creature[artifact]|myBattlefield) altercost(colorless,-1) >8 +anyzone=aslongas(creature[artifact]|myBattlefield) altercost(colorless,-1) >9 +anyzone=aslongas(creature[artifact]|myBattlefield) altercost(colorless,-1) >10 auto=lord(other artifact[creature]|myBattlefield) menace auto=@each my endofturn:create(construct) text=Affinity for artifact creatures (This spell costs {1} less to cast for each artifact creature you control.) -- Artifact creatures you control have menace. -- At the beginning of your end step, create a 0/0 colorless Construct artifact creature token with "This creature gets +1/+1 for each artifact you control." @@ -94528,14 +94645,7 @@ type=Instant [/card] [card] name=Vanquish the Horde -other={5}{W}{W} name(Cast for 1 less) -otherrestriction=type(creature|battlefield)~morethan~0 -restriction=type(creature|battlefield)~equalto~0 -autohand={4}{W}{W} restriction{type(creature|battlefield)~equalto~2}:name(Cast for 2 less) activate castcard(alternative) -autohand={3}{W}{W} restriction{type(creature|battlefield)~equalto~3}:name(Cast for 3 less) activate castcard(alternative) -autohand={2}{W}{W} restriction{type(creature|battlefield)~equalto~4}:name(Cast for 4 less) activate castcard(alternative) -autohand={1}{W}{W} restriction{type(creature|battlefield)~equalto~5}:name(Cast for 5 less) activate castcard(alternative) -autohand={W}{W} restriction{type(creature|battlefield)~morethan~5}:name(Cast for 6 less) activate castcard(alternative) +abilities=affinityallcreatures auto=destroy all(creature) text=This spell costs {1} less to cast for each creature on the battlefield. -- Destroy all creatures. mana={6}{W}{W} @@ -95322,11 +95432,8 @@ toughness=1 [/card] [card] name=Veteran Adventurer -abilities=vigilance -autoexile=thisforeach(variable{calculateparty}>0) changecost(colorless:-1) forcedalive -autograveyard=thisforeach(variable{calculateparty}>0) changecost(colorless:-1) forcedalive -autohand=thisforeach(variable{calculateparty}>0) changecost(colorless:-1) forcedalive -auto=becomes(Cleric Rogue Warrior Wizard) +abilities=vigilance,affinityparty +auto=becomes(Cleric Rogue Warrior Wizard) forever text=Veteran Adventurer is also a Cleric, Rogue, Warrior, and Wizard. -- This spell costs {1} less to cast for each creature in your party. -- Vigilance mana={5}{G} type=Creature @@ -99752,8 +99859,7 @@ toughness=1 [/card] [card] name=Writhing Necromass -abilities=deathtouch -anyzone=foreach(creature|mygraveyard) changecost(colorless:-1) forcedalive +abilities=deathtouch,affinitygravecreatures text=This spell costs {1} less to cast for each creature card in your graveyard. -- Deathtouch mana={6}{B} type=Creature @@ -100016,9 +100122,7 @@ toughness=2 [/card] [card] name=Yavimaya Sojourner -autoexile=thisforeach(variable{pbasiclandtypes}>0) changecost(colorless:-1) forcedalive -autograveyard=thisforeach(variable{pbasiclandtypes}>0) changecost(colorless:-1) forcedalive -autohand=thisforeach(variable{pbasiclandtypes}>0) changecost(colorless:-1) forcedalive +abilities=affinitybasiclandtypes text=Domain - This spell costs {1} less to cast for each basic land type among lands you control. mana={7}{G} type=Creature @@ -100479,11 +100583,7 @@ subtype=Swamp Forest Island [/card] [card] name=Zagras, Thief of Heartbeats -abilities=flying,deathtouch,haste -autocommandzone=thisforeach(variable{calculateparty}>0) changecost(colorless:-1) forcedalive -autoexile=thisforeach(variable{calculateparty}>0) changecost(colorless:-1) forcedalive -autograveyard=thisforeach(variable{calculateparty}>0) changecost(colorless:-1) forcedalive -autohand=thisforeach(variable{calculateparty}>0) changecost(colorless:-1) forcedalive +abilities=flying,deathtouch,haste,affinityparty auto=lord(other creature|myBattlefield) deathtouch auto=@combatdamaged(planeswalker) from(creature|myBattlefield):all(trigger[to]) destroy text=This spell costs {1} less to cast for each creature in your party. -- Flying, deathtouch, haste -- Other creatures you control have deathtouch. -- Whenever a creature you control deals combat damage to a planeswalker, destroy that planeswalker. diff --git a/projects/mtg/bin/Res/sets/primitives/mtg.txt b/projects/mtg/bin/Res/sets/primitives/mtg.txt index a97e72c9f..590db8083 100644 --- a/projects/mtg/bin/Res/sets/primitives/mtg.txt +++ b/projects/mtg/bin/Res/sets/primitives/mtg.txt @@ -1,6 +1,6 @@ #Primitives Pack for Wagic the Homebrew. #Please keep these card alphabetized, and try to have the "name=" line at the top of each card -#I sorted this programatically so the other comments are removed except for AUTO_DEFINE - Vitty85 21-05-2023 +#I sorted this programatically so the other comments are removed except for AUTO_DEFINE - Vitty85 23-05-2023 [card] name=Abandon Reason target=creature @@ -10179,8 +10179,7 @@ type=Instant [/card] [card] name=Bedlam Reveler -abilities=prowess -anyzone=foreach(instant,sorcery|mygraveyard) changecost(colorless:-1) forcedalive +abilities=prowess,affinitygraveinstsorc auto=@movedTo(*[-creature]|mystack):1/1 ueot auto=reject all(*|myhand) && draw:3 text=Bedlam Reveler costs {1} less to cast for each instant and sorcery card in your graveyard. -- Prowess (Whenever you cast a noncreature spell, this creature gets +1/+1 until end of turn.) -- When Bedlam Reveler enters the battlefield, discard your hand, then draw three cards. @@ -11269,8 +11268,8 @@ type=Enchantment [/card] [card] name=Blasphemous Act +abilities=affinityallcreatures auto=damage:13 all(creature) -anyzone=foreach(creature|battlefield) changecost(colorless:-1) forcedalive text=Blasphemous Act costs 1 less to cast for each creature on the battlefield. -- Blasphemous Act deals 13 damage to each creature. mana={8}{R} type=Sorcery @@ -46041,7 +46040,7 @@ toughness=4 [/card] [card] name=Ghoultree -anyzone=foreach(creature|mygraveyard) changecost(colorless:-1) forcedalive +abilities=affinitygravecreatures text=Ghoultree cost {1} less to cast for each creature card in your graveyard. mana={7}{G} type=Creature @@ -88668,7 +88667,7 @@ type=Sorcery [/card] [card] name=Primeval Protector -anyzone=foreach(creature|opponentbattlefield) changecost(colorless:-1) forcedalive +abilities=affinityopponentcreatures auto=counter(1/1) all(other creature|mybattlefield) text=Primeval Protector costs {1} less to cast for each creature your opponents control. -- When Primeval Protector enters the battlefield, put a +1/+1 counter on each other creature you control. mana={10}{G} @@ -113742,7 +113741,7 @@ toughness=2 [/card] [card] name=Stone Idol Trap -anyzone=foreach(creature[attacking]|battlefield) changecost(colorless:-1) forcedalive +abilities=affinityattackingcreatures auto=token(Construct,Artifact Creature Construct,6/12,trample) and!( transforms((,newability[@next endofturn:moveTo(exile)])) forever )! text=Stone Idol Trap costs {1} less to cast for each attacking creature. -- Put a 6/12 colorless Construct artifact creature token with trample onto the battlefield. Exile it at the beginning of your next end step. mana={5}{R} @@ -126604,7 +126603,7 @@ toughness=1 [card] name=Urborg Justice target=opponent -auto=ability$!name(sacrifice) target(creature|mybattlefield) sacrifice !$ targetedplayer +auto=ability$!name(sacrifice) target(creature|mybattlefield) sacrifice !$ targetedplayer text=Target opponent sacrifices a creature for each creature that died this turn. mana={B}{B} type=Instant diff --git a/projects/mtg/bin/Res/sets/primitives/planeswalkers.txt b/projects/mtg/bin/Res/sets/primitives/planeswalkers.txt index aabc466c6..9f274e9a9 100644 --- a/projects/mtg/bin/Res/sets/primitives/planeswalkers.txt +++ b/projects/mtg/bin/Res/sets/primitives/planeswalkers.txt @@ -1,6 +1,6 @@ #Planeswalkers Primitives Pack for Wagic the Homebrew. #Please keep these card alphabetized, and try to have the "name=" line at the top of each card -#We sorted this in alphabetical order - Luruz & Vitty85 20-05-2023 +#We sorted this in alphabetical order - Luruz & Vitty85 23-05-2023 [card] name=Abian, Luvion Usurper auto=counter(0/0,5,loyalty) @@ -2499,7 +2499,7 @@ name=Saheeli, the Gifted abilities=canbecommander auto=counter(0/0,4,loyalty) auto={C(0/0,1,Loyalty)}:name(+1: Create a 1/1 colorless Servo) _SERVOTOKEN_ -auto={C(0/0,-1,Loyalty)}:name(-1: The next spell has affinity for artifacts) lord(*|mycastingzone):affinityartifacts oneshot +auto={C(0/0,1,Loyalty)}:name(-1: The next spell has affinity for artifacts) target(*|mycastingzone) transforms((,newability[affinityartifacts])) ueot auto={C(0/0,-7,Loyalty)}:name(-7: Create a token for each artifact) clone all(artifact|mybattlefield) with (unreath) text=+1: Create a 1/1 colorless Servo artifact creature token. -- +1: The next spell you cast this turn costs {1} less to cast for each artifact you control as you cast it. -- -7: For each artifact you control, create a token that's a copy of it. Those tokens gain haste. Exile those tokens at the beginning of the next end step. -- Saheeli, the Gifted can be your commander. mana={2}{U}{R} diff --git a/projects/mtg/include/MTGDefinitions.h b/projects/mtg/include/MTGDefinitions.h index e5ab76d80..e43ebf9f9 100644 --- a/projects/mtg/include/MTGDefinitions.h +++ b/projects/mtg/include/MTGDefinitions.h @@ -343,7 +343,18 @@ class Constants BOTTOMLIBRARYDEATH = 215, NOLOYALTYDAMAGE = 216, NODEFENSEDAMAGE = 217, - NB_BASIC_ABILITIES = 218, + AFFINITYALLCREATURES = 218, + AFFINITYCONTROLLERCREATURES = 219, + AFFINITYOPPONENTCREATURES = 220, + AFFINITYALLDEADCREATURES = 221, + AFFINITYPARTY = 222, + AFFINITYENCHANTMENTS = 223, + AFFINITYBASICLANDTYPES = 224, + AFFINITYTWOBASICLANDTYPES = 225, + AFFINITYGRAVECREATURES = 226, + AFFINITYATTACKINGCREATURES = 227, + AFFINITYGRAVEINSTSORC = 228, + NB_BASIC_ABILITIES = 229, RARITY_S = 'S', //Special Rarity RARITY_M = 'M', //Mythics diff --git a/projects/mtg/src/AllAbilities.cpp b/projects/mtg/src/AllAbilities.cpp index 770047103..a5c14b5ae 100644 --- a/projects/mtg/src/AllAbilities.cpp +++ b/projects/mtg/src/AllAbilities.cpp @@ -4890,7 +4890,7 @@ int AAFlip::resolve() if (_target) { if(_target->mutation && _target->parentCards.size() > 0) return 0; // Mutated down cards cannot be flipped, they will follow the fate of top-card - if(((_target->isACopier||_target->isToken) && !isflipcard && !backfromcopy) || _target->has(Constants::CANTTRANSFORM)) + if(((_target->isACopier||(_target->isToken && _target->backSide == "")) && !isflipcard && !backfromcopy) || _target->has(Constants::CANTTRANSFORM)) { game->removeObserver(this); return 0; diff --git a/projects/mtg/src/GameObserver.cpp b/projects/mtg/src/GameObserver.cpp index 49851d97a..94982f42f 100644 --- a/projects/mtg/src/GameObserver.cpp +++ b/projects/mtg/src/GameObserver.cpp @@ -739,15 +739,15 @@ void GameObserver::gameStateBasedEffects() if(card->hasType(Subtypes::TYPE_PLANESWALKER) && (!card->counters||!card->counters->hasCounter("loyalty",0,0))) players[i]->game->putInGraveyard(card); if(card->hasType(Subtypes::TYPE_BATTLE) && (!card->counters||!card->counters->hasCounter("defense",0,0))){ - if(!card->isDefeated){ - card->isDefeated = true; - WEvent * e = NEW WEventCardDefeated(card); - receiveEvent(e); + if(!card->isDefeated){ + card->isDefeated = true; + WEvent * e = NEW WEventCardDefeated(card); + receiveEvent(e); } } - if(!card->isCreature() && card->hasType(Subtypes::TYPE_PLANESWALKER) && card->counters->hasCounter("loyalty", 0, 0)) + if(!card->isCreature() && card->hasType(Subtypes::TYPE_PLANESWALKER) && card->counters->hasCounter("loyalty", 0, 0)) card->life = card->counters->hasCounter("loyalty", 0, 0)->nb; - if(!card->isCreature() && card->hasType(Subtypes::TYPE_BATTLE) && card->counters->hasCounter("defense", 0, 0)) + if(!card->isCreature() && card->hasType(Subtypes::TYPE_BATTLE) && card->counters->hasCounter("defense", 0, 0)) card->life = card->counters->hasCounter("defense", 0, 0)->nb; if(card->myPair && !isInPlay(card->myPair)) { @@ -1285,6 +1285,7 @@ void GameObserver::Affinity() bool DoReduceIncrease = false; if ( (card->has(Constants::AFFINITYARTIFACTS) || + card->has(Constants::AFFINITYENCHANTMENTS) || card->has(Constants::AFFINITYFOREST) || card->has(Constants::AFFINITYGREENCREATURES) || card->has(Constants::AFFINITYISLAND) || @@ -1292,6 +1293,16 @@ void GameObserver::Affinity() card->has(Constants::AFFINITYPLAINS) || card->has(Constants::AFFINITYSWAMP) || card->has(Constants::CONDUITED) || + card->has(Constants::AFFINITYALLCREATURES) || + card->has(Constants::AFFINITYCONTROLLERCREATURES) || + card->has(Constants::AFFINITYOPPONENTCREATURES) || + card->has(Constants::AFFINITYALLDEADCREATURES) || + card->has(Constants::AFFINITYPARTY) || + card->has(Constants::AFFINITYBASICLANDTYPES) || + card->has(Constants::AFFINITYTWOBASICLANDTYPES) || + card->has(Constants::AFFINITYGRAVECREATURES) || + card->has(Constants::AFFINITYATTACKINGCREATURES) || + card->has(Constants::AFFINITYGRAVEINSTSORC) || card->getIncreasedManaCost()->getConvertedCost() || card->getReducedManaCost()->getConvertedCost() || NewAffinityFound || checkAuraP) diff --git a/projects/mtg/src/MTGCardInstance.cpp b/projects/mtg/src/MTGCardInstance.cpp index 5ccdbfe8a..c99c0e31f 100644 --- a/projects/mtg/src/MTGCardInstance.cpp +++ b/projects/mtg/src/MTGCardInstance.cpp @@ -1272,18 +1272,33 @@ ManaCost * MTGCardInstance::computeNewCost(MTGCardInstance * card,ManaCost * Cos } }//end2 if (card->has(Constants::AFFINITYARTIFACTS) || + card->has(Constants::AFFINITYENCHANTMENTS) || card->has(Constants::AFFINITYFOREST) || card->has(Constants::AFFINITYGREENCREATURES) || card->has(Constants::AFFINITYISLAND) || card->has(Constants::AFFINITYMOUNTAIN) || card->has(Constants::AFFINITYPLAINS) || card->has(Constants::AFFINITYSWAMP) || + card->has(Constants::AFFINITYALLCREATURES) || + card->has(Constants::AFFINITYCONTROLLERCREATURES) || + card->has(Constants::AFFINITYOPPONENTCREATURES) || + card->has(Constants::AFFINITYALLDEADCREATURES) || + card->has(Constants::AFFINITYPARTY) || + card->has(Constants::AFFINITYBASICLANDTYPES) || + card->has(Constants::AFFINITYTWOBASICLANDTYPES) || + card->has(Constants::AFFINITYGRAVECREATURES) || + card->has(Constants::AFFINITYATTACKINGCREATURES) || + card->has(Constants::AFFINITYGRAVEINSTSORC) || card->has(Constants::CONDUITED)) {//start3 if (card->has(Constants::AFFINITYARTIFACTS)) { type = "artifact"; } + if (card->has(Constants::AFFINITYENCHANTMENTS)) + { + type = "enchantment"; + } else if (card->has(Constants::AFFINITYSWAMP)) { type = "swamp"; @@ -1309,6 +1324,22 @@ ManaCost * MTGCardInstance::computeNewCost(MTGCardInstance * card,ManaCost * Cos color = 1; type = "creature"; } + else if (card->has(Constants::AFFINITYALLCREATURES) || card->has(Constants::AFFINITYCONTROLLERCREATURES) || card->has(Constants::AFFINITYOPPONENTCREATURES) || card->has(Constants::AFFINITYALLDEADCREATURES)) + { + type = "creature"; + } + else if (card->has(Constants::AFFINITYPARTY) || card->has(Constants::AFFINITYGRAVECREATURES) || card->has(Constants::AFFINITYATTACKINGCREATURES)) + { + type = "creature"; + } + else if (card->has(Constants::AFFINITYBASICLANDTYPES) || card->has(Constants::AFFINITYTWOBASICLANDTYPES)) + { + type = "land"; + } + else if (card->has(Constants::AFFINITYGRAVEINSTSORC)) + { + type = "instant,sorcery"; + } Cost->copy(original); if (Cost->extraCosts) @@ -1326,7 +1357,77 @@ ManaCost * MTGCardInstance::computeNewCost(MTGCardInstance * card,ManaCost * Cos } } int reduce = 0; - if (card->has(Constants::AFFINITYGREENCREATURES)) + if (card->has(Constants::AFFINITYALLCREATURES)) + { + TargetChooserFactory tf(getObserver()); + TargetChooser * tc = tf.createTargetChooser("creature", NULL); + reduce = card->controller()->game->battlefield->countByCanTarget(tc) + card->controller()->opponent()->game->battlefield->countByCanTarget(tc); + SAFE_DELETE(tc); + } + else if (card->has(Constants::AFFINITYCONTROLLERCREATURES)) + { + TargetChooserFactory tf(getObserver()); + TargetChooser * tc = tf.createTargetChooser("creature", NULL); + reduce = card->controller()->game->battlefield->countByCanTarget(tc); + SAFE_DELETE(tc); + } + else if (card->has(Constants::AFFINITYATTACKINGCREATURES)) + { + TargetChooserFactory tf(getObserver()); + TargetChooser * tc = tf.createTargetChooser("creature[attacking]", NULL); + reduce = card->controller()->game->battlefield->countByCanTarget(tc); + SAFE_DELETE(tc); + } + else if (card->has(Constants::AFFINITYOPPONENTCREATURES)) + { + TargetChooserFactory tf(getObserver()); + TargetChooser * tc = tf.createTargetChooser("creature", NULL); + reduce = card->controller()->opponent()->game->battlefield->countByCanTarget(tc); + SAFE_DELETE(tc); + } + else if (card->has(Constants::AFFINITYGRAVECREATURES)) + { + WParsedInt* value = NEW WParsedInt("type:creature:mygraveyard",NULL, card); + if(value) + reduce = value->getValue(); + SAFE_DELETE(value); + } + else if (card->has(Constants::AFFINITYALLDEADCREATURES)) + { + WParsedInt* value = NEW WParsedInt("bothalldeadcreature",NULL, card); + if(value) + reduce = value->getValue(); + SAFE_DELETE(value); + } + else if (card->has(Constants::AFFINITYPARTY)) + { + WParsedInt* value = NEW WParsedInt("calculateparty",NULL, card); + if(value) + reduce = value->getValue(); + SAFE_DELETE(value); + } + else if (card->has(Constants::AFFINITYBASICLANDTYPES)) + { + WParsedInt* value = NEW WParsedInt("pbasiclandtypes",NULL, card); + if(value) + reduce = value->getValue(); + SAFE_DELETE(value); + } + else if (card->has(Constants::AFFINITYTWOBASICLANDTYPES)) + { + WParsedInt* value = NEW WParsedInt("pbasiclandtypes",NULL, card); + if(value) + reduce = value->getValue() * 2; + SAFE_DELETE(value); + } + else if (card->has(Constants::AFFINITYGRAVEINSTSORC)) + { + WParsedInt* value = NEW WParsedInt("pginstantsorcery",NULL, card); + if(value) + reduce = value->getValue(); + SAFE_DELETE(value); + } + else if (card->has(Constants::AFFINITYGREENCREATURES)) { TargetChooserFactory tf(getObserver()); TargetChooser * tc = tf.createTargetChooser("creature[green]", NULL); diff --git a/projects/mtg/src/MTGDefinitions.cpp b/projects/mtg/src/MTGDefinitions.cpp index 2809e3792..9c02b4e67 100644 --- a/projects/mtg/src/MTGDefinitions.cpp +++ b/projects/mtg/src/MTGDefinitions.cpp @@ -248,7 +248,18 @@ const char* Constants::MTGBasicAbilities[] = { "backgroundpartner", //Can choose a backgorund partner as commander (e.g. "Faceless One"). "bottomlibrarydeath", //It goes to bottom of library after death (e.g. "Quintorius, Loremaster"). "noloyaltydamage", //Damage does not cause loyalty counter to be removed from a Planeswalker (e.g. "Spark Rupture"). - "nodefensedamage" //Damage does not cause defense counter to be removed from a Battle. + "nodefensedamage", //Damage does not cause defense counter to be removed from a Battle. + "affinityallcreatures", //Cost 1 less for each creature in all battlefields. + "affinitycontrollercreatures", //Cost 1 less for each creature in controller battlefield. + "affinityopponentcreatures", //Cost 1 less for each creature in opponent battlefield. + "affinityalldeadcreatures", //Cost 1 less for each died creature in this turn. + "affinityparty", //Cost 1 less for each creature in your party. + "affinityenchantments", //Cost 1 less for each enchantment in your battlefield. + "affinitybasiclandtypes", //Cost 1 less for each basic land type in your battlefield. + "affinitytwobasiclandtypes", //Cost 2 less for each basic land type in your battlefield. + "affinitygravecreatures", //Cost 1 less for each creature in your graveyard. + "affinityattackingcreatures", //Cost 1 less for each attacking creature in your battlefield. + "affinitygraveinstsorc" //Cost 1 less for each instant or sorcery in your graveyard. }; map Constants::MTGBasicAbilitiesMap; diff --git a/projects/mtg/src/MTGGameZones.cpp b/projects/mtg/src/MTGGameZones.cpp index 90531ba01..57ffcf7ca 100644 --- a/projects/mtg/src/MTGGameZones.cpp +++ b/projects/mtg/src/MTGGameZones.cpp @@ -579,15 +579,17 @@ MTGCardInstance * MTGPlayerCards::putInZone(MTGCardInstance * card, MTGGameZone // This fix issue types problem when card change zone with different card types than its original version (e.g. double face cards or cards that gained new types before to change zone). std::vector realTypes; - string originame = copy->name; + string realName = copy->name; if(doCopy && !asCopy && !inplaytoinplay && !equal(copy->types.begin(), copy->types.end(), card->types.begin()) ){ realTypes = copy->types; copy->types = card->types; - if(copy->name == "") - copy->name = originame; copy->mPropertiesChangedSinceLastUpdate = false; } + // This fix issue when card changes zone with different name than its original version (e.g. double face cards). + if(doCopy && !asCopy && !inplaytoinplay && copy->name != card->name) + copy->name = card->name; + // Copy all the counters of the original card... (solving the bug on comparison cards with counter before zone changing events) if(card->counters && doCopy && !asCopy && !inplaytoinplay){ for (unsigned int i = 0; i < card->counters->counters.size(); i++){ @@ -799,15 +801,17 @@ MTGCardInstance * MTGPlayerCards::putInZone(MTGCardInstance * card, MTGGameZone if(doCopy && !inplaytoinplay && copy->has(Constants::ISPREY)) copy->basicAbilities[Constants::ISPREY] = 0; - // Reset original types when card change zone with different card types than its original version (e.g. double face cards). + // Reset original types when card changes zone with different card types than its original version (e.g. double face cards). if(doCopy && !inplaytoinplay && realTypes.size()){ copy->types = realTypes; realTypes.clear(); - if(copy->name == "") - copy->name = originame; copy->mPropertiesChangedSinceLastUpdate = false; } + // Reset the original name when card changes zone with different name than its original version (e.g. double face cards). + if(doCopy && !inplaytoinplay && copy->name != realName) + copy->name = realName; + // Erasing counters from copy after the event has been triggered (no counter can survive to a zone changing except the perpetual ones) if(doCopy && !inplaytoinplay && copy->counters && copy->counters->mCount > 0){ for (unsigned int i = 0; i < copy->counters->counters.size(); i++){ diff --git a/projects/mtg/src/WParsedInt.cpp b/projects/mtg/src/WParsedInt.cpp index 9745a2765..b12eb2b53 100644 --- a/projects/mtg/src/WParsedInt.cpp +++ b/projects/mtg/src/WParsedInt.cpp @@ -1520,6 +1520,51 @@ void WParsedInt::extendedParse(string s, Spell * spell, MTGCardInstance * card) if(card->controller()->getObserver()->currentlyActing() != card->controller()) intValue = 1 - intValue; } + else if (s == "pinstsorcount" || s == "oinstsorcount") // Return the number of instant or sorceries that were casted this turn by controller or opponent. + { + intValue = (s == "pinstsorcount")?card->controller()->game->stack->seenThisTurn("*[instant;sorcery]", Constants::CAST_ALL):card->controller()->opponent()->game->stack->seenThisTurn("*[instant;sorcery]", Constants::CAST_ALL); + } + else if ((s.find("palldead") != string::npos) || (s.find("oalldead") != string::npos)) // Return the number of cards of a specific type that died this turn for controller or opponent. + { + int hasdeadtype = 0; + MTGGameZone * grave = (s.find("oalldead") != string::npos)?card->controller()->opponent()->game->graveyard:card->controller()->game->graveyard; + Player * checkCurrent = (s.find("oalldead") != string::npos)?card->controller()->opponent():card->controller(); + string checktype = s.substr(8); + for(unsigned int gy = 0; gy < grave->cardsSeenThisTurn.size(); gy++) + { + MTGCardInstance * checkCard = grave->cardsSeenThisTurn[gy]; + if(checkCard->hasType(checktype) && + ((checkCard->previousZone == checkCurrent->game->battlefield)|| + (checkCard->previousZone == checkCurrent->opponent()->game->battlefield))//died from battlefield + ) + { + hasdeadtype++; + } + } + intValue = hasdeadtype; + } + else if (s.find("bothalldead") != string::npos) // Return the number of cards of a specific type that died this turn. + { + int hasdeadtype = 0; + string checktype = s.substr(11); + for(int cp = 0; cp < 2; cp++) + { + Player * checkCurrent = card->getObserver()->players[cp]; + MTGGameZone * grave = checkCurrent->game->graveyard; + for(unsigned int gy = 0; gy < grave->cardsSeenThisTurn.size(); gy++) + { + MTGCardInstance * checkCard = grave->cardsSeenThisTurn[gy]; + if(checkCard->hasType(checktype) && + ((checkCard->previousZone == checkCurrent->game->battlefield)|| + (checkCard->previousZone == checkCurrent->opponent()->game->battlefield))//died from battlefield + ) + { + hasdeadtype++; + } + } + } + intValue = hasdeadtype; + } else if(!intValue)//found nothing, try parsing a atoi { intValue = atoi(s.c_str());