Added/fixed primitives, fixed crash with Taj-Nar Swordsmith, Fixed monarch switch after player takes combat damage, fixed allsubtypes in transforms keyword, fixed controllerdamager and opponentdamager keywords and all primitives using them, fixed Emerge alternative cost restriction, fixed Kinship condition on same creature subtype, added alterexperience keyword and fixed all primitives that use experience counters, fixed all primitives using ability counters from Ikoria, fixed mypoolsave keyword in order to don't finish effect at the end of turn, fixed all primitives using mypoolsave (e.g. Omnath, Locus of Mana), fixed Gravepurge and Daretti, Scrap Savant, in order to allow the player to discard zero cards while using their effects.
This commit is contained in:
@@ -86,6 +86,7 @@ auto=@movedto(other *|battlefield) restriction{type(*[isflipped]|nonbattlezone)~
|
|||||||
|
|
||||||
#Monarch rule
|
#Monarch rule
|
||||||
auto=@each my endofturn restriction{compare(pmonarch)~morethan~0}:draw:1
|
auto=@each my endofturn restriction{compare(pmonarch)~morethan~0}:draw:1
|
||||||
|
auto=@combatdamageof(player) restriction{compare(pmonarch)~morethan~0}:becomesmonarch opponent
|
||||||
|
|
||||||
#reset Creature damage at the cleanup phase
|
#reset Creature damage at the cleanup phase
|
||||||
auto=@each cleanup:all(*|myBattlefield) resetDamage
|
auto=@each cleanup:all(*|myBattlefield) resetDamage
|
||||||
|
|||||||
@@ -85,6 +85,7 @@ auto=@movedto(other *|battlefield) restriction{type(*[isflipped]|nonbattlezone)~
|
|||||||
|
|
||||||
#Monarch rule
|
#Monarch rule
|
||||||
auto=@each my endofturn restriction{compare(pmonarch)~morethan~0}:draw:1
|
auto=@each my endofturn restriction{compare(pmonarch)~morethan~0}:draw:1
|
||||||
|
auto=@combatdamageof(player) restriction{compare(pmonarch)~morethan~0}:becomesmonarch opponent
|
||||||
|
|
||||||
#reset Creature damage at the cleanup phase
|
#reset Creature damage at the cleanup phase
|
||||||
auto=@each cleanup:all(*|myBattlefield) resetDamage
|
auto=@each cleanup:all(*|myBattlefield) resetDamage
|
||||||
@@ -3938,8 +3938,8 @@ toughness=3
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
name=Avenging Huntbonder
|
name=Avenging Huntbonder
|
||||||
abilities=Double Strike
|
abilities=double strike
|
||||||
auto=@combat(attacking) source(this):transforms((,newability[counter(0/0,1,Double Strike)],newability[this(counter{0/0.1.Double Strike}>=1) double strike])) target(other creature[attacking])
|
auto=@combat(attacking) source(this):name(Put double strike counter) target(other creature[attacking]) transforms((,newability[counter(0/0.1.DoubleStrike)],newability[this(counter{0/0.1.DoubleStrike}>=1) double strike])) forever
|
||||||
text=Double strike -- Whenever Avenging Huntbonder attacks, put a double strike counter on another target attacking creature.
|
text=Double strike -- Whenever Avenging Huntbonder attacks, put a double strike counter on another target attacking creature.
|
||||||
mana={3}{W}{W}
|
mana={3}{W}{W}
|
||||||
type=Creature
|
type=Creature
|
||||||
@@ -3951,7 +3951,7 @@ toughness=3
|
|||||||
name=Avian Oddity
|
name=Avian Oddity
|
||||||
abilities=flying,cycling
|
abilities=flying,cycling
|
||||||
autohand=__CYCLING__({2}{U})
|
autohand=__CYCLING__({2}{U})
|
||||||
autohand=@cycled(this|myHand):transforms((,newability[counter(0/0,1,Flying],newability[this(counter{0/0.1.Flying}>=1) flying target(creature|myBattlefield)]))
|
autohand=@cycled(this|myHand):name(Put flying counter) target(creature|myBattlefield) transforms((,newability[counter(0/0.1.Flying],newability[this(counter{0/0.1.Flying}>=1) flying])) forever
|
||||||
text=Flying -- Cycling {2}{U} ({2}{U}, Discard this card: Draw a card.) -- When you cycle Avian Oddity, put a flying counter on target creature you control.
|
text=Flying -- Cycling {2}{U} ({2}{U}, Discard this card: Draw a card.) -- When you cycle Avian Oddity, put a flying counter on target creature you control.
|
||||||
mana={3}{U}
|
mana={3}{U}
|
||||||
type=Creature
|
type=Creature
|
||||||
@@ -5120,9 +5120,9 @@ name=Beast Viv
|
|||||||
auto=this(counter{0/0.1.Vigilance}>=1) vigilance
|
auto=this(counter{0/0.1.Vigilance}>=1) vigilance
|
||||||
auto=this(counter{0/0.1.Reach}>=1) reach
|
auto=this(counter{0/0.1.Reach}>=1) reach
|
||||||
auto=this(counter{0/0.1.Trample}>=1) trample
|
auto=this(counter{0/0.1.Trample}>=1) trample
|
||||||
auto=choice name(Vigilance) counter(0/0,1,Vigilance)
|
auto=choice name(Vigilance counter) counter(0/0,1,Vigilance)
|
||||||
auto=choice name(Reach) counter(0/0,1,Reach)
|
auto=choice name(Reach counter) counter(0/0,1,Reach)
|
||||||
auto=choice name(Trample) counter(0/0,1,Trample)
|
auto=choice name(Trample counter) counter(0/0,1,Trample)
|
||||||
type=Creature
|
type=Creature
|
||||||
subttype=Beast
|
subttype=Beast
|
||||||
power=3
|
power=3
|
||||||
@@ -6318,8 +6318,7 @@ toughness=2
|
|||||||
name=Blood Curdle
|
name=Blood Curdle
|
||||||
target=creature
|
target=creature
|
||||||
auto=destroy
|
auto=destroy
|
||||||
auto=counter(0/0,1,Menace)
|
auto=name(Put menace counter) target(creature|myBattlefield) transforms((,newability[counter(0/0.1.Menace)],newability[this(counter{0/0.1.Menace}>=1) menace])) forever
|
||||||
auto=transforms((,newability[this(counter{0/0.1.Menace}>=1) menace]))
|
|
||||||
text=Destroy target creature. Put a menace counter on a creature you control. (It can't be blocked except by two or more creatures.)
|
text=Destroy target creature. Put a menace counter on a creature you control. (It can't be blocked except by two or more creatures.)
|
||||||
mana={3}{B}
|
mana={3}{B}
|
||||||
type=Instant
|
type=Instant
|
||||||
@@ -7218,8 +7217,8 @@ type=Sorcery
|
|||||||
name=Boot Nipper
|
name=Boot Nipper
|
||||||
auto=this(counter{0/0.1.Deathtouch}>=1) deathtouch
|
auto=this(counter{0/0.1.Deathtouch}>=1) deathtouch
|
||||||
auto=this(counter{0/0.1.Lifelink}>=1) lifelink
|
auto=this(counter{0/0.1.Lifelink}>=1) lifelink
|
||||||
auto=choice name(Deathtouch) counter(0/0,1,Deathtouch)
|
auto=choice name(Deathtouch counter) counter(0/0,1,Deathtouch)
|
||||||
auto=choice name(Lifelink) counter(0/0,1,Lifelink)
|
auto=choice name(Lifelink counter) counter(0/0,1,Lifelink)
|
||||||
text=Boot Nipper enters the battlefield with your choice of a deathtouch counter or a lifelink counter on it.
|
text=Boot Nipper enters the battlefield with your choice of a deathtouch counter or a lifelink counter on it.
|
||||||
mana={1}{B}
|
mana={1}{B}
|
||||||
type=Creature
|
type=Creature
|
||||||
@@ -8439,9 +8438,7 @@ toughness=3
|
|||||||
[card]
|
[card]
|
||||||
name=Call of the Death-Dweller
|
name=Call of the Death-Dweller
|
||||||
target=<upto:2>creature[manacost<=3]|myGraveyard
|
target=<upto:2>creature[manacost<=3]|myGraveyard
|
||||||
auto=moveTo(myBattlefield)
|
auto=moveTo(myBattlefield) and!( transforms((,newability[counter(0/0.1.Deathtouch)],newability[this(counter{0/0.1.Deathtouch}>=1) deathtouch],newability[counter(0/0.1.Menace)],newability[this(counter{0/0.1.Menace}>=1) menace])) forever )!
|
||||||
auto=counter(0/0,1,Menace) <upto:2>target(creature[manacost<=3]
|
|
||||||
auto=transforms((,newability[this(counter{0/0.1.Menace}>=1) menace <upto:2>target(creature[manacost<=3])]))
|
|
||||||
text=Return up to two target creature cards with total converted mana cost 3 or less from your graveyard to the battlefield. Put a deathtouch counter on either of them. Then put a menace counter on either of them.
|
text=Return up to two target creature cards with total converted mana cost 3 or less from your graveyard to the battlefield. Put a deathtouch counter on either of them. Then put a menace counter on either of them.
|
||||||
mana={2}{B}
|
mana={2}{B}
|
||||||
type=Sorcery
|
type=Sorcery
|
||||||
@@ -14033,10 +14030,20 @@ power=3
|
|||||||
toughness=2
|
toughness=2
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
|
name=Daxos Spirit Token
|
||||||
|
anyzone=pexperience/pexperience cdaactive
|
||||||
|
text=This creature’s power and toughness are each equal to the number of experience counters you have.
|
||||||
|
type=Enchantment Creature
|
||||||
|
subtype=Spirit
|
||||||
|
color=black,white
|
||||||
|
power=*
|
||||||
|
toughness=*
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
name=Daxos the Returned
|
name=Daxos the Returned
|
||||||
auto=@movedTo(enchantment|mystack):alterexperience:1 controller
|
auto=@movedTo(enchantment|mystack):alterexperience:1 controller
|
||||||
auto={1}{W}{B}: token(Spirit,Creature Enchantment Spirit,[anyzone:type:alterexperience:mybattlefield/type:alterexperience:mybattlefield cdaactive],withe,black)
|
auto={1}{W}{B}:name(Create Spirit) token(Daxos Spirit Token)
|
||||||
text=Whenever you cast an enchantment spell, you get an experience counter. -- {1}{W}{B}: Create a white and black Spirit enchantment creature token. It has “This creature’s power and toughness are each equal to the number of experience counters you have.”
|
text=Whenever you cast an enchantment spell, you get an experience counter. -- {1}{W}{B}: Create a white and black Spirit enchantment creature token. It has "This creature’s power and toughness are each equal to the number of experience counters you have."
|
||||||
mana={1}{W}{B}
|
mana={1}{W}{B}
|
||||||
type=Legendary Creature
|
type=Legendary Creature
|
||||||
subtype=Zombie Soldier
|
subtype=Zombie Soldier
|
||||||
@@ -16239,8 +16246,7 @@ type=Enchantment
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
name=Domesticated Hydra
|
name=Domesticated Hydra
|
||||||
auto=this(cantargetcard(*[-monstrous]) {X}{G}{G}{G}:becomes(monstrous) forever && counter(1/1,X)
|
auto=this(cantargetcard(*[-monstrous]) {X}{G}{G}{G}:becomes(monstrous) forever && counter(1/1,X) && transforms((,newability[trample])) forever
|
||||||
auto=aslongas(this[monstrous]|myBattlefield) trample
|
|
||||||
text={X}{G}{G}{G}: Monstrosity X. (If this creature isn’t monstrous, put X +1/+1 counters on it and it becomes monstrous.) -- As long as Domesticated Hydra is monstrous, it has trample.
|
text={X}{G}{G}{G}: Monstrosity X. (If this creature isn’t monstrous, put X +1/+1 counters on it and it becomes monstrous.) -- As long as Domesticated Hydra is monstrous, it has trample.
|
||||||
mana={2}{G}{G}
|
mana={2}{G}{G}
|
||||||
type=Creature
|
type=Creature
|
||||||
@@ -17663,8 +17669,8 @@ toughness=1
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
name=Duskfang Mentor
|
name=Duskfang Mentor
|
||||||
auto=target(creature[-human]|myBattlefield) transforms((,newability[counter(0/0,1,Lifelink)],newability[this(counter{0/0.1.Lifelink}>=1) lifelink]))
|
auto=target(creature[-human]|myBattlefield) transforms((,newability[counter(0/0.1.Lifelink)],newability[this(counter{0/0.1.Lifelink}>=1) lifelink])) forever
|
||||||
auto={1}{W}{T}:counter(1/1,1) all(creature[lifelink]|myBattlefield)
|
auto={1}{B}{T}:counter(1/1,1) all(creature[lifelink]|myBattlefield)
|
||||||
text=When Duskfang Mentor enters the battlefield, put a lifelink counter on target non-Human creature you control. -- {1}{B}, {T}: Put a +1/+1 counter on each creature you control with lifelink.
|
text=When Duskfang Mentor enters the battlefield, put a lifelink counter on target non-Human creature you control. -- {1}{B}, {T}: Put a +1/+1 counter on each creature you control with lifelink.
|
||||||
mana={2}{B}
|
mana={2}{B}
|
||||||
type=Creature
|
type=Creature
|
||||||
@@ -20358,7 +20364,7 @@ type=Sorcery
|
|||||||
[card]
|
[card]
|
||||||
name=Ezuri, Claw of Progress
|
name=Ezuri, Claw of Progress
|
||||||
auto=@movedTo(creature[power<=2]|myBattlefield):alterexperience:1 controller
|
auto=@movedTo(creature[power<=2]|myBattlefield):alterexperience:1 controller
|
||||||
auto=@each my combatbegins:foreach(anyzone:alterexperience) counter(1/1,1) target(other creature|myBattlefield)
|
auto=@each my combatbegins:name(Put 1/1 counters) counter(1/1,pexperience) target(other creature|myBattlefield)
|
||||||
text=Whenever a creature with power 2 or less enters the battlefield under your control, you get an experience counter. -- At the beginning of combat on your turn, put X +1/+1 counters on another target creature you control, where X is the number of experience counters you have.
|
text=Whenever a creature with power 2 or less enters the battlefield under your control, you get an experience counter. -- At the beginning of combat on your turn, put X +1/+1 counters on another target creature you control, where X is the number of experience counters you have.
|
||||||
mana={2}{G}{U}
|
mana={2}{G}{U}
|
||||||
type=Legendary Creature
|
type=Legendary Creature
|
||||||
@@ -22646,8 +22652,8 @@ subtype=Aura
|
|||||||
name=Flycatcher Giraffid
|
name=Flycatcher Giraffid
|
||||||
auto=this(counter{0/0.1.Vigilance}>=1) vigilance
|
auto=this(counter{0/0.1.Vigilance}>=1) vigilance
|
||||||
auto=this(counter{0/0.1.Reach}>=1) reach
|
auto=this(counter{0/0.1.Reach}>=1) reach
|
||||||
auto=choice name(Flying) counter(0/0,1,Vigilance)
|
auto=choice name(Vigilance counter) counter(0/0,1,Vigilance)
|
||||||
auto=choice name(First Strike) counter(0/0,1,Reach)
|
auto=choice name(Reach counter) counter(0/0,1,Reach)
|
||||||
text=Flycatcher Giraffid enters the battlefield with your choice of a vigilance counter or a reach counter on it.
|
text=Flycatcher Giraffid enters the battlefield with your choice of a vigilance counter or a reach counter on it.
|
||||||
mana={4}{G}
|
mana={4}{G}
|
||||||
type=Creature
|
type=Creature
|
||||||
@@ -23275,8 +23281,8 @@ toughness=6
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
name=Frillscare Mentor
|
name=Frillscare Mentor
|
||||||
auto=target(creature[-human]|myBattlefield) transforms((,newability[counter(0/0,1,Menace)],newability[this(counter{0/0.1.Menace}>=1) menace]))
|
auto=target(creature[-human]|myBattlefield) transforms((,newability[counter(0/0.1.Menace)],newability[this(counter{0/0.1.Menace}>=1) menace])) forever
|
||||||
auto={1}{W}{T}:counter(1/1,1) all(creature[Menace]|myBattlefield)
|
auto={2}{R}{T}:counter(1/1,1) all(creature[Menace]|myBattlefield)
|
||||||
text=When Frillscare Mentor enters the battlefield, put a menace counter on target non-Human creature you control. (It can't be blocked except by two or more creatures.) -- {2}{R}, {T}: Put a +1/+1 counter on each creature you control with menace.
|
text=When Frillscare Mentor enters the battlefield, put a menace counter on target non-Human creature you control. (It can't be blocked except by two or more creatures.) -- {2}{R}, {T}: Put a +1/+1 counter on each creature you control with menace.
|
||||||
mana={2}{R}
|
mana={2}{R}
|
||||||
type=Creature
|
type=Creature
|
||||||
@@ -23491,8 +23497,7 @@ type=Sorcery
|
|||||||
name=Fully Grown
|
name=Fully Grown
|
||||||
target=creature
|
target=creature
|
||||||
auto=3/3 ueot
|
auto=3/3 ueot
|
||||||
auto=counter(0/0,1,Trample)
|
auto=transforms((,newability[counter(0/0.1.Trample)],newability[this(counter{0/0.1.Trample}>=1) trample])) forever
|
||||||
auto=transforms((,newability[this(counter{0/0.1.Trample}>=1) trample]))
|
|
||||||
text=Target creature gets +3/+3 until end of turn. Put a trample counter on it.
|
text=Target creature gets +3/+3 until end of turn. Put a trample counter on it.
|
||||||
mana={2}{G}
|
mana={2}{G}
|
||||||
type=Instant
|
type=Instant
|
||||||
@@ -27075,9 +27080,9 @@ name=Grimdancer
|
|||||||
auto=this(counter{0/0.1.Deathtouch}>=1) deathtouch
|
auto=this(counter{0/0.1.Deathtouch}>=1) deathtouch
|
||||||
auto=this(counter{0/0.1.Lifelink}>=1) lifelink
|
auto=this(counter{0/0.1.Lifelink}>=1) lifelink
|
||||||
auto=this(counter{0/0.1.Menace}>=1) menace
|
auto=this(counter{0/0.1.Menace}>=1) menace
|
||||||
auto=choice name(Menace & Deathtouch) counter(0/0,1,Menace) && counter(0/0,1,Deathtouch)
|
auto=choice name(Menace and Deathtouch counters) counter(0/0,1,Menace) && counter(0/0,1,Deathtouch)
|
||||||
auto=choice name(Menace & Lifelink) counter(0/0,1,Deathtouch) && counter(0/0,1,Lifelink)
|
auto=choice name(Menace and Lifelink counters) counter(0/0,1,Deathtouch) && counter(0/0,1,Lifelink)
|
||||||
auto=choice name(Lifelink & Deathtouch) counter(0/0,1,Lifelink) && counter(0/0,1,Deathtouch)
|
auto=choice name(Lifelink and Deathtouch counters) counter(0/0,1,Lifelink) && counter(0/0,1,Deathtouch)
|
||||||
text=Grimdancer enters the battlefield with your choice of two different counters on it from among menace, deathtouch, and lifelink.
|
text=Grimdancer enters the battlefield with your choice of two different counters on it from among menace, deathtouch, and lifelink.
|
||||||
mana={1}{B}{B}
|
mana={1}{B}{B}
|
||||||
type=Creature
|
type=Creature
|
||||||
@@ -28692,8 +28697,7 @@ toughness=2
|
|||||||
name=Heightened Reflexes
|
name=Heightened Reflexes
|
||||||
target=creature
|
target=creature
|
||||||
auto=1/0 ueot
|
auto=1/0 ueot
|
||||||
auto=counter(0/0,1,First Strike)
|
auto=transforms((,newability[counter(0/0.1.FirstStrike)],newability[this(counter{0/0.1.FirstStrike}>=1) first strike])) forever
|
||||||
auto=transforms((,newability[this(counter{0/0.1.First Strike}>=1) first strike]))
|
|
||||||
text=Target creature gets +1/+0 until end of turn. Put a first strike counter on it.
|
text=Target creature gets +1/+0 until end of turn. Put a first strike counter on it.
|
||||||
mana={R}
|
mana={R}
|
||||||
type=Instant
|
type=Instant
|
||||||
@@ -29619,6 +29623,7 @@ auto=mypoolsave(green)
|
|||||||
auto=mypoolsave(blue)
|
auto=mypoolsave(blue)
|
||||||
auto=mypoolsave(artifact)
|
auto=mypoolsave(artifact)
|
||||||
auto=mypoolsave(land)
|
auto=mypoolsave(land)
|
||||||
|
auto=@movedto(this|nonbattlezone) from(battlefield):name(Terminate effect) name(Terminate effect) transforms((,newability[mypoolsave(red) terminate],newability[mypoolsave(green) terminate],newability[mypoolsave(blue) terminate],newability[mypoolsave(black) terminate],newability[mypoolsave(white) terminate],newability[mypoolsave(artifact) terminate],newability[mypoolsave(land) terminate])) oneshot
|
||||||
auto=@each untap restriction{compare(mybluepoolcount)~morethan~0}:thisforeach(variable{mybluepoolcount}) add{C} && removemana({U})
|
auto=@each untap restriction{compare(mybluepoolcount)~morethan~0}:thisforeach(variable{mybluepoolcount}) add{C} && removemana({U})
|
||||||
auto=@each untap restriction{compare(mygreenpoolcount)~morethan~0}:thisforeach(variable{mygreenpoolcount}) add{C} && removemana({G})
|
auto=@each untap restriction{compare(mygreenpoolcount)~morethan~0}:thisforeach(variable{mygreenpoolcount}) add{C} && removemana({G})
|
||||||
auto=@each untap restriction{compare(myredpoolcount)~morethan~0}:thisforeach(variable{myredpoolcount})add{C} && removemana({R})
|
auto=@each untap restriction{compare(myredpoolcount)~morethan~0}:thisforeach(variable{myredpoolcount})add{C} && removemana({R})
|
||||||
@@ -29678,8 +29683,8 @@ type=Artifact
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
name=Hornbash Mentor
|
name=Hornbash Mentor
|
||||||
auto=target(creature[-human]|myBattlefield) transforms((,newability[counter(0/0,1,Trample)],newability[this(counter{0/0.1.Trample}>=1) trample]))
|
auto=name(Put trample counter) target(creature[-human]|myBattlefield) transforms((,newability[counter(0/0.1.Trample)],newability[this(counter{0/0.1.Trample}>=1) trample])) forever
|
||||||
auto={1}{W}{T}:counter(1/1,1) all(creature[trample]|myBattlefield)
|
auto={2}{G}{T}:counter(1/1) all(creature[trample]|myBattlefield)
|
||||||
text=When Hornbash Mentor enters the battlefield, put a trample counter on target non-Human creature you control. -- {2}{G}, {T}: Put a +1/+1 counter on each creature you control with trample.
|
text=When Hornbash Mentor enters the battlefield, put a trample counter on target non-Human creature you control. -- {2}{G}, {T}: Put a +1/+1 counter on each creature you control with trample.
|
||||||
mana={2}{G}
|
mana={2}{G}
|
||||||
type=Creature
|
type=Creature
|
||||||
@@ -30114,7 +30119,7 @@ type=Sorcery
|
|||||||
[card]
|
[card]
|
||||||
name=Hunted Nightmare
|
name=Hunted Nightmare
|
||||||
abilities=menace
|
abilities=menace
|
||||||
auto=notatarget(creature[-human]) transforms((,newability[counter(0/0,1,Deathtouch)],newability[this(counter{0/0.1.Deathtouch}>=1) deathtouch])) opponent
|
auto=ability$!name(Put Deathtouch counter) name(Put Deathtouch counter) target(creature|myBattlefield) transforms((,newability[counter(0/0.1.Deathtouch)],newability[this(counter{0/0.1.Deathtouch}>=1) deathtouch])) forever!$ opponent
|
||||||
text=Menace -- When Hunted Nightmare enters the battlefield, target opponent puts a deathtouch counter on a creature they control.
|
text=Menace -- When Hunted Nightmare enters the battlefield, target opponent puts a deathtouch counter on a creature they control.
|
||||||
mana={1}{B}{B}
|
mana={1}{B}{B}
|
||||||
type=Creature
|
type=Creature
|
||||||
@@ -33401,7 +33406,7 @@ type=Sorcery
|
|||||||
name=Kalemne, Disciple of Iroas
|
name=Kalemne, Disciple of Iroas
|
||||||
abilities=double strike,vigilance
|
abilities=double strike,vigilance
|
||||||
auto=@movedto(creature[manacost>=5]|mystack):alterexperience:1 controller
|
auto=@movedto(creature[manacost>=5]|mystack):alterexperience:1 controller
|
||||||
auto=foreach(anyzone:alterexperience) 1/1
|
auto=lord(this) pexperience/pexperience nonstatic
|
||||||
text=Double strike, vigilance -- Whenever you cast a creature spell with converted mana cost 5 or greater, you get an experience counter. -- Kalemne, Disciple of Iroas gets +1/+1 for each experience counter you have.
|
text=Double strike, vigilance -- Whenever you cast a creature spell with converted mana cost 5 or greater, you get an experience counter. -- Kalemne, Disciple of Iroas gets +1/+1 for each experience counter you have.
|
||||||
mana={2}{R}{W}
|
mana={2}{R}{W}
|
||||||
type=Legendary Creature
|
type=Legendary Creature
|
||||||
@@ -33979,9 +33984,9 @@ toughness=3
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
name=Kelsien, the Plague
|
name=Kelsien, the Plague
|
||||||
abilities=Vigilance,haste
|
abilities=vigilance,haste
|
||||||
anyzone=type:alterexperience:nonbattlezone/type:alterexperience:nonbattlezone cdaactive
|
auto=lord(this) pexperience/pexperience nonstatic
|
||||||
auto={T}:damage:1 target(creature|opponentBattlefield) transforms((,newability[_DIES_alterexperience:1 controller
|
auto={T}:name(Damage creature) target(creature|opponentbattlefield) transforms((,newability[_DIES_alterexperience:1 opponent],newability[damage:1])) ueot
|
||||||
text=Vigilance, haste -- Kelsien, the Plague gets +1/+1 for each experience counter you have. -- {T}: Kelsien deals 1 damage to target creature you don’t control. When that creature dies this turn, you get an experience counter.
|
text=Vigilance, haste -- Kelsien, the Plague gets +1/+1 for each experience counter you have. -- {T}: Kelsien deals 1 damage to target creature you don’t control. When that creature dies this turn, you get an experience counter.
|
||||||
mana={R}{W}{B}
|
mana={R}{W}{B}
|
||||||
type=Legendary Creature
|
type=Legendary Creature
|
||||||
@@ -34326,7 +34331,7 @@ type=Sorcery
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
name=Kindred Summons
|
name=Kindred Summons
|
||||||
auto=activatechooseatype all(creature[chosentype]|mybattlefield) transforms((,newability[target(creature[share!types!]|mylibrary) moveto(mybattlefield) and! shuffle )!])) oneshot activatechooseend
|
auto=activatechooseatype transforms((,newability[reveal:plibrarycount optionone name(Get creatures) target(<type:creature[chosentype]:myBattlefield>creature[chosentype]|reveal) moveto(ownerlibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(put back) all(*|reveal) moveto(mylibrary) and!( shuffle )! optiontwoend afterrevealed all(tobecast|mylibrary) moveto(ownerlibrary) and!( moveTo(myBattlefield) )! afterrevealedend revealend])) oneshot activatechooseend
|
||||||
text=Choose a creature type. Reveal cards from the top of your library until you reveal X creature cards of the chosen type, where X is the number of creatures you control of that type. Put those cards onto the battlefield, then shuffle the rest of the revealed cards into your library.
|
text=Choose a creature type. Reveal cards from the top of your library until you reveal X creature cards of the chosen type, where X is the number of creatures you control of that type. Put those cards onto the battlefield, then shuffle the rest of the revealed cards into your library.
|
||||||
mana={5}{G}{G}
|
mana={5}{G}{G}
|
||||||
type=Instant
|
type=Instant
|
||||||
@@ -35212,6 +35217,7 @@ auto=mypoolsave(green)
|
|||||||
auto=mypoolsave(blue)
|
auto=mypoolsave(blue)
|
||||||
auto=mypoolsave(artifact)
|
auto=mypoolsave(artifact)
|
||||||
auto=mypoolsave(land)
|
auto=mypoolsave(land)
|
||||||
|
auto=@movedto(this|nonbattlezone) from(battlefield):name(Terminate effect) name(Terminate effect) transforms((,newability[mypoolsave(red) terminate],newability[mypoolsave(green) terminate],newability[mypoolsave(blue) terminate],newability[mypoolsave(black) terminate],newability[mypoolsave(white) terminate],newability[mypoolsave(artifact) terminate],newability[mypoolsave(land) terminate])) oneshot
|
||||||
auto=@each untap restriction{compare(mybluepoolcount)~morethan~0}:thisforeach(variable{mybluepoolcount}) add{C} && removemana({U})
|
auto=@each untap restriction{compare(mybluepoolcount)~morethan~0}:thisforeach(variable{mybluepoolcount}) add{C} && removemana({U})
|
||||||
auto=@each untap restriction{compare(mygreenpoolcount)~morethan~0}:thisforeach(variable{mygreenpoolcount}) add{C} && removemana({G})
|
auto=@each untap restriction{compare(mygreenpoolcount)~morethan~0}:thisforeach(variable{mygreenpoolcount}) add{C} && removemana({G})
|
||||||
auto=@each untap restriction{compare(myredpoolcount)~morethan~0}:thisforeach(variable{myredpoolcount})add{C} && removemana({R})
|
auto=@each untap restriction{compare(myredpoolcount)~morethan~0}:thisforeach(variable{myredpoolcount})add{C} && removemana({R})
|
||||||
@@ -36274,6 +36280,7 @@ toughness=3
|
|||||||
name=Leyline Tyrant
|
name=Leyline Tyrant
|
||||||
abilities=flying
|
abilities=flying
|
||||||
auto=mypoolsave(red)
|
auto=mypoolsave(red)
|
||||||
|
auto=@movedto(this|nonbattlezone) from(battlefield):name(Terminate effect) name(Terminate effect) transforms((,newability[mypoolsave(red) terminate])) oneshot
|
||||||
auto=_DIES_:choice name(Pay X red mana) name(Pay X red mana) ability$!name(Damage X) pay[[{X:red}]] name(Damage any target) target(player,creature,planeswalker) damage:X!$ controller
|
auto=_DIES_:choice name(Pay X red mana) name(Pay X red mana) ability$!name(Damage X) pay[[{X:red}]] name(Damage any target) target(player,creature,planeswalker) damage:X!$ controller
|
||||||
text=Flying -- You don't lose unspent red mana as steps and phases end. -- When Leyline Tyrant dies, you may pay any amount of {R}. When you do, it deals that much damage to any target.
|
text=Flying -- You don't lose unspent red mana as steps and phases end. -- When Leyline Tyrant dies, you may pay any amount of {R}. When you do, it deals that much damage to any target.
|
||||||
mana={2}{R}{R}
|
mana={2}{R}{R}
|
||||||
@@ -37679,7 +37686,7 @@ subtype=Aura
|
|||||||
[card]
|
[card]
|
||||||
name=Luminous Broodmoth
|
name=Luminous Broodmoth
|
||||||
abilities=flying
|
abilities=flying
|
||||||
auto=@movedto(creature[-flying]|myGraveyard) from(myBattlefield):all(trigger[to]) moveTo(myBattlefield) and!( transforms((,newability[counter(0/0.1.Flying],newability[this(counter{0/0.1.Flying}>=1) flying])) forever )!
|
auto=@movedto(creature[-flying;-counter{0/0.1.Flying}]|myGraveyard) from(myBattlefield):all(trigger[to]) moveTo(myBattlefield) and!( transforms((,newability[counter(0/0.1.Flying)],newability[this(counter{0/0.1.Flying}>=1) flying])) forever )!
|
||||||
text=Flying -- Whenever a creature you control without flying dies, return it to the battlefield under its owner's control with a flying counter on it.
|
text=Flying -- Whenever a creature you control without flying dies, return it to the battlefield under its owner's control with a flying counter on it.
|
||||||
mana={2}{W}{W}
|
mana={2}{W}{W}
|
||||||
type=Creature
|
type=Creature
|
||||||
@@ -39340,6 +39347,17 @@ type=Sorcery
|
|||||||
subtype=Lesson
|
subtype=Lesson
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
|
name=Meren of Clan Nel Toth
|
||||||
|
auto=@movedTo(other creature|graveyard) from(myBattlefield):alterexperience:1 controller
|
||||||
|
auto=@each my endofturn restriction{type(creature|mygraveyard)~morethan~0}:name(Choose a creature) target(creature|mygraveyard) transforms((,newability[if compare(manacost)~morethan~compare(pexperience) then moveto(myhand) else moveto(mybattlefield)])) oneshot
|
||||||
|
text=Whenever another creature you control dies, you get an experience counter. -- At the beginning of your end step, choose target creature card in your graveyard. If that card's converted mana cost is less than or equal to the number of experience counters you have, return it to the battlefield. Otherwise, put it into your hand.
|
||||||
|
mana={2}{B}{G}
|
||||||
|
type=Legendary Creature
|
||||||
|
subtype=Human Shaman
|
||||||
|
power=3
|
||||||
|
toughness=4
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
name=Merfolk Branchwalker
|
name=Merfolk Branchwalker
|
||||||
aicode=activate transforms((,newability[explores],newability[if type(land[zpos=1]|mylibrary)~lessthan~1 then all(this) counter(1/1) else all(land[zpos=1]|mylibrary) moveto(myhand)])) oneshot
|
aicode=activate transforms((,newability[explores],newability[if type(land[zpos=1]|mylibrary)~lessthan~1 then all(this) counter(1/1) else all(land[zpos=1]|mylibrary) moveto(myhand)])) oneshot
|
||||||
auto=name(Explores) reveal:1 optionone if type(land|reveal)~lessthan~1 then transforms((,newability[counter(1/1)])) forever optiononeend optiontwo if type(land|reveal)~morethan~0 then name(move to Hand) target(<1>*|reveal) moveto(myHand) else transforms((,newability[Choice name(back to library) target(<1>*|reveal) moveto(mylibrary)],newability[Choice name(put into Graveyard) target(<1>*|reveal) moveto(myGraveyard)])) oneshot optiontwoend afterrevealed explores afterrevealedend revealend
|
auto=name(Explores) reveal:1 optionone if type(land|reveal)~lessthan~1 then transforms((,newability[counter(1/1)])) forever optiononeend optiontwo if type(land|reveal)~morethan~0 then name(move to Hand) target(<1>*|reveal) moveto(myHand) else transforms((,newability[Choice name(back to library) target(<1>*|reveal) moveto(mylibrary)],newability[Choice name(put into Graveyard) target(<1>*|reveal) moveto(myGraveyard)])) oneshot optiontwoend afterrevealed explores afterrevealedend revealend
|
||||||
@@ -39967,8 +39985,8 @@ subtype=Aura
|
|||||||
[card]
|
[card]
|
||||||
name=Mirri, Weatherlight Duelist
|
name=Mirri, Weatherlight Duelist
|
||||||
abilities=first strike
|
abilities=first strike
|
||||||
auto=aslongas(this[tapped]) lord(creature[-attacking]|opponentbattlefield) cantattack
|
auto=this(tapped) lord(creature[-attacking]|opponentbattlefield) cantattack
|
||||||
auto=aslongas(this[tapped]) lord(creature[-attacking]|opponentbattlefield) cantpwattack
|
auto=this(tapped) lord(creature[-attacking]|opponentbattlefield) cantpwattack
|
||||||
auto=@combat(attacking) source(this):aslongas(creature[blocking]|opponentBattlefield) lord(creature[-blocking]|opponentbattlefield) cantblock
|
auto=@combat(attacking) source(this):aslongas(creature[blocking]|opponentBattlefield) lord(creature[-blocking]|opponentbattlefield) cantblock
|
||||||
text=First strike -- Whenever Mirri, Weatherlight Duelist attacks, each opponent can't block with more than one creature this combat. -- As long as Mirri, Weatherlight Duelist is tapped, no more than one creature can attack you each combat.
|
text=First strike -- Whenever Mirri, Weatherlight Duelist attacks, each opponent can't block with more than one creature this combat. -- As long as Mirri, Weatherlight Duelist is tapped, no more than one creature can attack you each combat.
|
||||||
mana={1}{G}{W}
|
mana={1}{G}{W}
|
||||||
@@ -40396,8 +40414,8 @@ type=Instant
|
|||||||
[card]
|
[card]
|
||||||
name=Momentum Rumbler
|
name=Momentum Rumbler
|
||||||
auto=this(counter{0/0.1.FirstStrike}>=1) first strike
|
auto=this(counter{0/0.1.FirstStrike}>=1) first strike
|
||||||
auto=@combat(attacking) source(this):this(counter{0/0.1.First Strike}<1) counter(0/0,1,First Strike)
|
auto=@combat(attacking) source(this) restriction{compare(hascntfirststrike)~equalto~0)}:name(Put first strike counter) counter(0/0,1,FirstStrike)
|
||||||
auto=@combat(attacking) source(this):this(counter{0/0.1.First Strike}>0) double strike ueot
|
auto=@combat(attacking) source(this):this(cantargetcard(*[first strike]|*) transforms((,newability[double strike])) ueot
|
||||||
text=Whenever Momentum Rumbler attacks, if it doesn't have first strike, put a first strike counter on it. -- Whenever Momentum Rumbler attacks, if it has first strike, it gains double strike until end of turn.
|
text=Whenever Momentum Rumbler attacks, if it doesn't have first strike, put a first strike counter on it. -- Whenever Momentum Rumbler attacks, if it has first strike, it gains double strike until end of turn.
|
||||||
mana={3}{R}
|
mana={3}{R}
|
||||||
type=Creature
|
type=Creature
|
||||||
@@ -43507,6 +43525,7 @@ toughness=4
|
|||||||
[card]
|
[card]
|
||||||
name=Omnath, Locus of Mana
|
name=Omnath, Locus of Mana
|
||||||
auto=mypoolsave(green)
|
auto=mypoolsave(green)
|
||||||
|
auto=@movedto(this|nonbattlezone) from(battlefield):name(Terminate effect) name(Terminate effect) transforms((,newability[mypoolsave(green) terminate])) oneshot
|
||||||
anyzone=mygreenpoolcountplus1plusend/mygreenpoolcountplus1plusend cdaactive
|
anyzone=mygreenpoolcountplus1plusend/mygreenpoolcountplus1plusend cdaactive
|
||||||
text=Green mana doesn't empty from your mana pool as steps and phases end. -- Omnath, Locus of Mana gets +1/+1 for each green mana in your mana pool.
|
text=Green mana doesn't empty from your mana pool as steps and phases end. -- Omnath, Locus of Mana gets +1/+1 for each green mana in your mana pool.
|
||||||
mana={2}{G}
|
mana={2}{G}
|
||||||
@@ -50047,8 +50066,9 @@ type=Sorcery
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
name=Return from Extinction
|
name=Return from Extinction
|
||||||
auto=choice moveto(myhand) target(creature|mygraveyard)
|
restriction=type(creature|mygraveyard)~morethan~0
|
||||||
auto=choice moveto(myhand) target(<2>creature[share!types!]|mygraveyard)
|
auto=choice name(Return 1 creature) target(creature|mygraveyard) moveTo(myhand)
|
||||||
|
auto=if type(creature|mygraveyard)~morethan~1 then choice name(Return 2 creatures) name(Return 2 creatures) target(creature|mygraveyard) moveTo(myhand) and!( transforms((,newability[name(Choose another creature) target(other *[creature;share!types!]|mygraveyard) moveTo(myhand)])) oneshot )!
|
||||||
text=Choose one — -- • Return target creature card from your graveyard to your hand. -- • Return two target creature cards that share a creature type from your graveyard to your hand.
|
text=Choose one — -- • Return target creature card from your graveyard to your hand. -- • Return two target creature cards that share a creature type from your graveyard to your hand.
|
||||||
mana={1}{B}
|
mana={1}{B}
|
||||||
type=Sorcery
|
type=Sorcery
|
||||||
@@ -52549,7 +52569,7 @@ toughness=1
|
|||||||
name=Sanctuary Smasher
|
name=Sanctuary Smasher
|
||||||
abilities=first strike,cycling
|
abilities=first strike,cycling
|
||||||
autohand=__CYCLING__({2}{R})
|
autohand=__CYCLING__({2}{R})
|
||||||
autohand=@cycled(this|myHand):transforms((,newability[counter(0/0,1,First Strike],newability[this(counter{0/0.1.First Strike}>=1) first strike target(creature|myBattlefield)]))
|
autohand=@cycled(this|myHand):name(Put a first strike counter) target(creature|myBattlefield) transforms((,newability[counter(0/0.1.FirstStrike],newability[this(counter{0/0.1.FirstStrike}>=1) first strike])) forever
|
||||||
text=First strike -- Cycling {2}{R} ({2}{R}, Discard this card: Draw a card.) -- When you cycle Sanctuary Smasher, put a first strike counter on target creature you control.
|
text=First strike -- Cycling {2}{R} ({2}{R}, Discard this card: Draw a card.) -- When you cycle Sanctuary Smasher, put a first strike counter on target creature you control.
|
||||||
mana={4}{R}{R}
|
mana={4}{R}{R}
|
||||||
type=Creature
|
type=Creature
|
||||||
@@ -59398,7 +59418,7 @@ type=Instant
|
|||||||
name=Splendor Mare
|
name=Splendor Mare
|
||||||
abilities=lifelink,cycling
|
abilities=lifelink,cycling
|
||||||
autohand=__CYCLING__({1}{W})
|
autohand=__CYCLING__({1}{W})
|
||||||
autohand=@cycled(this|myHand):transforms((,newability[counter(0/0,1,Lifelink],newability[this(counter{0/0.1.Lifelink}>=1) lifelink target(creature|myBattlefield)]))
|
autohand=@cycled(this|myHand):name(Put lifelink counter) target(creature|myBattlefield) transforms((,newability[counter(0/0.1.Lifelink],newability[this(counter{0/0.1.Lifelink}>=1) lifelink])) forever
|
||||||
text=Lifelink -- Cycling {1}{W} ({1}{W}, Discard this card: Draw a card.) -- When you cycle Splendor Mare, put a lifelink counter on target creature you control.
|
text=Lifelink -- Cycling {1}{W} ({1}{W}, Discard this card: Draw a card.) -- When you cycle Splendor Mare, put a lifelink counter on target creature you control.
|
||||||
mana={2}{W}
|
mana={2}{W}
|
||||||
type=Creature
|
type=Creature
|
||||||
@@ -59475,8 +59495,7 @@ type=Instant
|
|||||||
name=Spontaneous Flight
|
name=Spontaneous Flight
|
||||||
target=creature
|
target=creature
|
||||||
auto=2/2 ueot
|
auto=2/2 ueot
|
||||||
auto=counter(0/0,1,Flying)
|
auto=transforms((,newability[counter(0/0.1.Flying)],newability[this(counter{0/0.1.Flying}>=1) flying])) forever
|
||||||
auto=transforms((,newability[this(counter{0/0.1.Flying}>=1) flying]))
|
|
||||||
text=Target creature gets +2/+2 until end of turn. Put a flying counter on it.
|
text=Target creature gets +2/+2 until end of turn. Put a flying counter on it.
|
||||||
mana={2}{W}
|
mana={2}{W}
|
||||||
type=Instant
|
type=Instant
|
||||||
@@ -61156,8 +61175,8 @@ type=Instant
|
|||||||
name=Sudden Spinnerets
|
name=Sudden Spinnerets
|
||||||
target=creature
|
target=creature
|
||||||
auto=1/3 ueot
|
auto=1/3 ueot
|
||||||
auto=counter(0/0,1,Reach)
|
auto=untap
|
||||||
auto=transforms((,newability[this(counter{0/0.1.Reach}>=1) reach],newability[untap(this)]))
|
auto=transforms((,newability[counter(0/0.1.Reach)],newability[this(counter{0/0.1.Reach}>=1) reach])) forever
|
||||||
text=Target creature gets +1/+3 until end of turn. Put a reach counter on it. Untap it.
|
text=Target creature gets +1/+3 until end of turn. Put a reach counter on it. Untap it.
|
||||||
mana={G}
|
mana={G}
|
||||||
type=Instant
|
type=Instant
|
||||||
@@ -62313,28 +62332,28 @@ toughness=4
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
name=Taj-Nar Swordsmith
|
name=Taj-Nar Swordsmith
|
||||||
aicode=activate moveTo(mybattlefield) target(equipment|mylibrary)
|
auto=choice name(Don't pay) donothing
|
||||||
auto=name(May pay X for equipment) may pay[[{0}]]:name(search equipment) Reveal:type:[Equipment<=0]:mylibrary revealzone(mylibrary) optionone name(choose an equipment) target(<1>[equipment<=0]|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(mybattlefield)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>[equipment<=0]|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend
|
auto=choice name(X = 0) transforms((,newability[name(Search equipment) target(equipment[manacost=0]|mylibrary) moveTo(mybattlefield) and!( shuffle )!])) oneshot
|
||||||
auto=name(May pay X for equipment) may pay[[{1}]]:name(search equipment) Reveal:type:[Equipment<=1]:mylibrary revealzone(mylibrary) optionone name(choose an equipment) target(<1>[equipment<=1]|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(mybattlefield)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>[equipment<=1]|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend
|
auto=choice name(X = 1) transforms((,newability[pay[[{1}]] name(Pay and search equipment) target(equipment[manacost<=1]|mylibrary) moveTo(mybattlefield) and!( shuffle )!])) oneshot
|
||||||
auto=name(May pay X for equipment) may pay[[{2}]]:name(search equipment) Reveal:type:[Equipment<=2]:mylibrary revealzone(mylibrary) optionone name(choose an equipment) target(<1>[equipment<=2]|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(mybattlefield)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>[equipment<=2]|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend
|
auto=choice name(X = 2) transforms((,newability[pay[[{2}]] name(Pay and search equipment) target(equipment[manacost<=2]|mylibrary) moveTo(mybattlefield) and!( shuffle )!])) oneshot
|
||||||
auto=name(May pay X for equipment) may pay[[{3}]]:name(search equipment) Reveal:type:[Equipment<=3]:mylibrary revealzone(mylibrary) optionone name(choose an equipment) target(<1>[equipment<=3]|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(mybattlefield)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>[equipment<=3]|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend
|
auto=choice name(X = 3) transforms((,newability[pay[[{3}]] name(Pay and search equipment) target(equipment[manacost<=3]|mylibrary) moveTo(mybattlefield) and!( shuffle )!])) oneshot
|
||||||
auto=name(May pay X for equipment) may pay[[{4}]]:name(search equipment) Reveal:type:[Equipment<=4]:mylibrary revealzone(mylibrary) optionone name(choose an equipment) target(<1>[equipment<=4]|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(mybattlefield)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>[equipment<=4]|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend
|
auto=choice name(X = 4) transforms((,newability[pay[[{4}]] name(Pay and search equipment) target(equipment[manacost<=4]|mylibrary) moveTo(mybattlefield) and!( shuffle )!])) oneshot
|
||||||
auto=name(May pay X for equipment) may pay[[{5}]]:name(search equipment) Reveal:type:[Equipment<=5]:mylibrary revealzone(mylibrary) optionone name(choose an equipment) target(<1>[equipment<=5]|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(mybattlefield)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>[equipment<=5]|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend
|
auto=choice name(X = 5) transforms((,newability[pay[[{5}]] name(Pay and search equipment) target(equipment[manacost<=5]|mylibrary) moveTo(mybattlefield) and!( shuffle )!])) oneshot
|
||||||
auto=name(May pay X for equipment) may pay[[{6}]]:name(search equipment) Reveal:type:[Equipment<=6]:mylibrary revealzone(mylibrary) optionone name(choose an equipment) target(<1>[equipment<=6]|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(mybattlefield)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>[equipment<=6]|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend
|
auto=choice name(X = 6) transforms((,newability[pay[[{6}]] name(Pay and search equipment) target(equipment[manacost<=6]|mylibrary) moveTo(mybattlefield) and!( shuffle )!])) oneshot
|
||||||
auto=name(May pay X for equipment) may pay[[{7}]]:name(search equipment) Reveal:type:[Equipment<=7]:mylibrary revealzone(mylibrary) optionone name(choose an equipment) target(<1>[equipment<=7]|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(mybattlefield)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>[equipment<=7]|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend
|
auto=choice name(X = 7) transforms((,newability[pay[[{7}]] name(Pay and search equipment) target(equipment[manacost<=7]|mylibrary) moveTo(mybattlefield) and!( shuffle )!])) oneshot
|
||||||
auto=name(May pay X for equipment) may pay[[{8}]]:name(search equipment) Reveal:type:[Equipment<=8]:mylibrary revealzone(mylibrary) optionone name(choose an equipment) target(<1>[equipment<=8]|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(mybattlefield)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>[equipment<=8]|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend
|
auto=choice name(X = 8) transforms((,newability[pay[[{8}]] name(Pay and search equipment) target(equipment[manacost<=8]|mylibrary) moveTo(mybattlefield) and!( shuffle )!])) oneshot
|
||||||
auto=name(May pay X for equipment) may pay[[{9}]]:name(search equipment) Reveal:type:[Equipment<=9]:mylibrary revealzone(mylibrary) optionone name(choose an equipment) target(<1>[equipment<=9]|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(mybattlefield)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>[equipment<=9]|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend
|
auto=choice name(X = 9) transforms((,newability[pay[[{9}]] name(Pay and search equipment) target(equipment[manacost<=9]|mylibrary) moveTo(mybattlefield) and!( shuffle )!])) oneshot
|
||||||
auto=name(May pay X for equipment) may pay[[{10}]]:name(search equipment) Reveal:type:[Equipment<=10]:mylibrary revealzone(mylibrary) optionone name(choose an equipment) target(<1>[equipment<=10]|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(mybattlefield)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>[equipment<=10]|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend
|
auto=choice name(X = 10) transforms((,newability[pay[[{10}]] name(Pay and search equipment) target(equipment[manacost<=10]|mylibrary) moveTo(mybattlefield) and!( shuffle )!])) oneshot
|
||||||
auto=name(May pay X for equipment) may pay[[{11}]]:name(search equipment) Reveal:type:[Equipment<=11]:mylibrary revealzone(mylibrary) optionone name(choose an equipment) target(<1>[equipment<=11]|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(mybattlefield)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>[equipment<=11]|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend
|
auto=choice name(X = 11) transforms((,newability[pay[[{11}]] name(Pay and search equipment) target(equipment[manacost<=11]|mylibrary) moveTo(mybattlefield) and!( shuffle )!])) oneshot
|
||||||
auto=name(May pay X for equipment) may pay[[{12}]]:name(search equipment) Reveal:type:[Equipment<=12]:mylibrary revealzone(mylibrary) optionone name(choose an equipment) target(<1>[equipment<=12]|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(mybattlefield)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>[equipment<=12]|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend
|
auto=choice name(X = 12) transforms((,newability[pay[[{12}]] name(Pay and search equipment) target(equipment[manacost<=12]|mylibrary) moveTo(mybattlefield) and!( shuffle )!])) oneshot
|
||||||
auto=name(May pay X for equipment) may pay[[{13}]]:name(search equipment) Reveal:type:[Equipment<=13]:mylibrary revealzone(mylibrary) optionone name(choose an equipment) target(<1>[equipment<=13]|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(mybattlefield)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>[equipment<=13]|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend
|
auto=choice name(X = 13) transforms((,newability[pay[[{13}]] name(Pay and search equipment) target(equipment[manacost<=13]|mylibrary) moveTo(mybattlefield) and!( shuffle )!])) oneshot
|
||||||
auto=name(May pay X for equipment) may pay[[{14}]]:name(search equipment) Reveal:type:[Equipment<=14]:mylibrary revealzone(mylibrary) optionone name(choose an equipment) target(<1>[equipment<=14]|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(mybattlefield)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>[equipment<=14]|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend
|
auto=choice name(X = 14) transforms((,newability[pay[[{14}]] name(Pay and search equipment) target(equipment[manacost<=14]|mylibrary) moveTo(mybattlefield) and!( shuffle )!])) oneshot
|
||||||
auto=name(May pay X for equipment) may pay[[{15}]]:name(search equipment) Reveal:type:[Equipment<=15]:mylibrary revealzone(mylibrary) optionone name(choose an equipment) target(<1>[equipment<=15]|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(mybattlefield)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>[equipment<=15]|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend
|
auto=choice name(X = 15) transforms((,newability[pay[[{15}]] name(Pay and search equipment) target(equipment[manacost<=15]|mylibrary) moveTo(mybattlefield) and!( shuffle )!])) oneshot
|
||||||
auto=name(May pay X for equipment) may pay[[{16}]]:name(search equipment) Reveal:type:[Equipment<=16]:mylibrary revealzone(mylibrary) optionone name(choose an equipment) target(<1>[equipment<=16]|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(mybattlefield)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>[equipment<=16]|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend
|
auto=choice name(X = 16) transforms((,newability[pay[[{16}]] name(Pay and search equipment) target(equipment[manacost<=16]|mylibrary) moveTo(mybattlefield) and!( shuffle )!])) oneshot
|
||||||
auto=name(May pay X for equipment) may pay[[{17}]]:name(search equipment) Reveal:type:[Equipment<=17]:mylibrary revealzone(mylibrary) optionone name(choose an equipment) target(<1>[equipment<=17]|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(mybattlefield)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>[equipment<=17]|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend
|
auto=choice name(X = 17) transforms((,newability[pay[[{17}]] name(Pay and search equipment) target(equipment[manacost<=17]|mylibrary) moveTo(mybattlefield) and!( shuffle )!])) oneshot
|
||||||
auto=name(May pay X for equipment) may pay[[{18}]]:name(search equipment) Reveal:type:[Equipment<=18]:mylibrary revealzone(mylibrary) optionone name(choose an equipment) target(<1>[equipment<=18]|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(mybattlefield)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>[equipment<=18]|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend
|
auto=choice name(X = 18) transforms((,newability[pay[[{18}]] name(Pay and search equipment) target(equipment[manacost<=18]|mylibrary) moveTo(mybattlefield) and!( shuffle )!])) oneshot
|
||||||
auto=name(May pay X for equipment) may pay[[{19}]]:name(search equipment) Reveal:type:[Equipment<=19]:mylibrary revealzone(mylibrary) optionone name(choose an equipment) target(<1>[equipment<=19]|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(mybattlefield)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>[equipment<=19]|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend
|
auto=choice name(X = 19) transforms((,newability[pay[[{19}]] name(Pay and search equipment) target(equipment[manacost<=19]|mylibrary) moveTo(mybattlefield) and!( shuffle )!])) oneshot
|
||||||
auto=name(May pay X for equipment) may pay[[{20}]]:name(search equipment) Reveal:type:[Equipment<=20]:mylibrary revealzone(mylibrary) optionone name(choose an equipment) target(<1>[equipment<=20]|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(mybattlefield)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>[equipment<=20]|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend
|
auto=choice name(X = 20) transforms((,newability[pay[[{20}]] name(Pay and search equipment) target(equipment[manacost<=20]|mylibrary) moveTo(mybattlefield) and!( shuffle )!])) oneshot
|
||||||
text=When Taj-Nar Swordsmith enters the battlefield, you may pay {X}. If you do, search your library for an Equipment card with converted mana cost X or less and put that card onto the battlefield. Then shuffle your library.
|
text=When Taj-Nar Swordsmith enters the battlefield, you may pay {X}. If you do, search your library for an Equipment card with converted mana cost X or less and put that card onto the battlefield. Then shuffle your library.
|
||||||
mana={3}{W}
|
mana={3}{W}
|
||||||
type=Creature
|
type=Creature
|
||||||
@@ -65151,7 +65170,7 @@ toughness=6
|
|||||||
name=Titanoth Rex
|
name=Titanoth Rex
|
||||||
abilities=trample,cycling
|
abilities=trample,cycling
|
||||||
autohand=__CYCLING__({1}{G})
|
autohand=__CYCLING__({1}{G})
|
||||||
autohand=@cycled(this|myHand):transforms((,newability[counter(0/0,1,Trample],newability[this(counter{0/0.1.Trample}>=1) trample target(creature|myBattlefield)])))
|
autohand=@cycled(this|myHand):name(Put trample counter) target(creature|myBattlefield) transforms((,newability[counter(0/0.1.Trample],newability[this(counter{0/0.1.Trample}>=1) trample]))) forever
|
||||||
text=Trample -- Cycling {1}{G} ({1}{G}, Discard this card: Draw a card.) -- When you cycle Titanoth Rex, put a trample counter on target creature you control.
|
text=Trample -- Cycling {1}{G} ({1}{G}, Discard this card: Draw a card.) -- When you cycle Titanoth Rex, put a trample counter on target creature you control.
|
||||||
mana={7}{G}{G}
|
mana={7}{G}{G}
|
||||||
type=Creature
|
type=Creature
|
||||||
@@ -66971,9 +66990,7 @@ type=Instant
|
|||||||
[card]
|
[card]
|
||||||
name=Unbreakable Bond
|
name=Unbreakable Bond
|
||||||
target=creature|myGraveyard
|
target=creature|myGraveyard
|
||||||
auto=moveTo(myBattlefield)
|
auto=moveTo(myBattlefield) and!( transforms((,newability[counter(0/0.1.Lifelink)],newability[this(counter{0/0.1.Lifelink}>=1) lifelink])) forever )!
|
||||||
auto=counter(0/0,1,Lifelink)
|
|
||||||
auto=transforms((,newability[this(counter{0/0.1.Lifelink}>=1) lifelink]))
|
|
||||||
text=Return target creature card from your graveyard to the battlefield with a lifelink counter on it.
|
text=Return target creature card from your graveyard to the battlefield with a lifelink counter on it.
|
||||||
mana={4}{B}
|
mana={4}{B}
|
||||||
type=Sorcery
|
type=Sorcery
|
||||||
@@ -67221,9 +67238,7 @@ toughness=4
|
|||||||
[card]
|
[card]
|
||||||
name=Unexpected Fangs
|
name=Unexpected Fangs
|
||||||
target=creature
|
target=creature
|
||||||
auto=counter(1/1,1)
|
auto=transforms((,newability[counter(1/1)],newability[counter(0/0.1.Lifelink)],newability[this(counter{0/0.1.Lifelink}>=1) lifelink])) forever
|
||||||
auto=counter(0/0,1,Lifelink)
|
|
||||||
auto=transforms((,newability[this(counter{0/0.1.Lifelink}>=1) lifelink]))
|
|
||||||
text=Put a +1/+1 counter and a lifelink counter on target creature.
|
text=Put a +1/+1 counter and a lifelink counter on target creature.
|
||||||
mana={1}{B}
|
mana={1}{B}
|
||||||
type=Instant
|
type=Instant
|
||||||
@@ -69378,7 +69393,7 @@ toughness=3
|
|||||||
name=Void Beckoner
|
name=Void Beckoner
|
||||||
abilities=deathtouch,cycling
|
abilities=deathtouch,cycling
|
||||||
autohand=__CYCLING__({2}{B})
|
autohand=__CYCLING__({2}{B})
|
||||||
autohand=@cycled(this|myHand):transforms((,newability[counter(0/0,1,Deathtouch)],newability[this(counter{0/0.1.Deathtouch}>=1) deathtouch])) target(creature|myBattlefield)]
|
autohand=@cycled(this|myHand):name(Put Deathtouch counter) target(creature|myBattlefield) transforms((,newability[counter(0/0.1.Deathtouch)],newability[this(counter{0/0.1.Deathtouch}>=1) deathtouch])) forever
|
||||||
text=Deathtouch -- Cycling {2}{B} ({2}{B}, Discard this card: Draw a card.) -- When you cycle Void Beckoner, put a deathtouch counter on target creature you control.
|
text=Deathtouch -- Cycling {2}{B} ({2}{B}, Discard this card: Draw a card.) -- When you cycle Void Beckoner, put a deathtouch counter on target creature you control.
|
||||||
mana={6}{B}{B}
|
mana={6}{B}{B}
|
||||||
type=Creature
|
type=Creature
|
||||||
|
|||||||
@@ -299,7 +299,7 @@ autostack=if casted(this) then choice target(opponent) life:-3 && life:3 control
|
|||||||
text=Emerge {6}{B} (You may cast this spell by sacrificing a creature and paying the emerge cost reduced by that creature's converted mana cost.) -- When you cast Abundant Maw, target opponent loses 3 life and you gain 3 life.
|
text=Emerge {6}{B} (You may cast this spell by sacrificing a creature and paying the emerge cost reduced by that creature's converted mana cost.) -- When you cast Abundant Maw, target opponent loses 3 life and you gain 3 life.
|
||||||
mana={8}
|
mana={8}
|
||||||
other={emerge}{6}{B} name(Emerge)
|
other={emerge}{6}{B} name(Emerge)
|
||||||
otherrestriction=compare(ishumannt)~morethan~0,type(creature|myBattlefield)~morethan~0
|
otherrestriction=compare(ishuman)~morethan~0,type(creature|myBattlefield)~morethan~0
|
||||||
type=Creature
|
type=Creature
|
||||||
subtype=Eldrazi Leech
|
subtype=Eldrazi Leech
|
||||||
power=6
|
power=6
|
||||||
@@ -23958,7 +23958,7 @@ type=Instant
|
|||||||
name=Crown of Ascension
|
name=Crown of Ascension
|
||||||
target=creature
|
target=creature
|
||||||
auto=flying
|
auto=flying
|
||||||
auto={S}:transforms((,newability[all(creature[share!types!]) flying ueot])) ueot
|
auto={S}:transforms((,newability[all(*[creature;share!types!]) flying ueot])) ueot
|
||||||
text=Enchant creature -- Enchanted creature has flying. -- Sacrifice Crown of Ascension: Enchanted creature and other creatures that share a creature type with it gain flying until end of turn.
|
text=Enchant creature -- Enchanted creature has flying. -- Sacrifice Crown of Ascension: Enchanted creature and other creatures that share a creature type with it gain flying until end of turn.
|
||||||
mana={1}{U}
|
mana={1}{U}
|
||||||
type=Enchantment
|
type=Enchantment
|
||||||
@@ -23969,7 +23969,7 @@ name=Crown of Awe
|
|||||||
target=creature
|
target=creature
|
||||||
auto=protection from black
|
auto=protection from black
|
||||||
auto=protection from red
|
auto=protection from red
|
||||||
auto={S}:transforms((,newability[all(creature[share!types!]) protection from black ueot],newability[all(creature[share!types!]) protection from red ueot])) ueot
|
auto={S}:transforms((,newability[all(*[creature;share!types!]) protection from black ueot],newability[all(*[creature;share!types!]) protection from red ueot])) ueot
|
||||||
text=Enchant creature -- Enchanted creature has protection from black and from red. -- Sacrifice Crown of Awe: Enchanted creature and other creatures that share a creature type with it gain protection from black and from red until end of turn.
|
text=Enchant creature -- Enchanted creature has protection from black and from red. -- Sacrifice Crown of Awe: Enchanted creature and other creatures that share a creature type with it gain protection from black and from red until end of turn.
|
||||||
mana={1}{W}
|
mana={1}{W}
|
||||||
type=Enchantment
|
type=Enchantment
|
||||||
@@ -24006,7 +24006,7 @@ name=Crown of Fury
|
|||||||
target=creature
|
target=creature
|
||||||
auto=1/0
|
auto=1/0
|
||||||
auto=first strike
|
auto=first strike
|
||||||
auto={S}:transforms((,newability[all(creature[share!types!]) first strike ueot],newability[all(creature[share!types!]) 1/0 ueot])) ueot
|
auto={S}:transforms((,newability[all(*[creature;share!types!]) first strike ueot],newability[all(*[creature;share!types!]) 1/0 ueot])) ueot
|
||||||
text=Enchant creature -- Enchanted creature gets +1/+0 and has first strike. -- Sacrifice Crown of Fury: Enchanted creature and other creatures that share a creature type with it get +1/+0 and gain first strike until end of turn.
|
text=Enchant creature -- Enchanted creature gets +1/+0 and has first strike. -- Sacrifice Crown of Fury: Enchanted creature and other creatures that share a creature type with it get +1/+0 and gain first strike until end of turn.
|
||||||
mana={1}{R}
|
mana={1}{R}
|
||||||
type=Enchantment
|
type=Enchantment
|
||||||
@@ -24016,7 +24016,7 @@ subtype=Aura
|
|||||||
name=Crown of Suspicion
|
name=Crown of Suspicion
|
||||||
target=creature
|
target=creature
|
||||||
auto=2/-1
|
auto=2/-1
|
||||||
auto={S}:transforms((,newability[all(creature[share!types!]) 2/-1 ueot])) ueot
|
auto={S}:transforms((,newability[all(*[creature;share!types!]) 2/-1 ueot])) ueot
|
||||||
text=Enchant creature -- Enchanted creature gets +2/-1. -- Sacrifice Crown of Suspicion: Enchanted creature and other creatures that share a creature type with it get +2/-1 until end of turn.
|
text=Enchant creature -- Enchanted creature gets +2/-1. -- Sacrifice Crown of Suspicion: Enchanted creature and other creatures that share a creature type with it get +2/-1 until end of turn.
|
||||||
mana={1}{B}
|
mana={1}{B}
|
||||||
type=Enchantment
|
type=Enchantment
|
||||||
@@ -24026,7 +24026,7 @@ subtype=Aura
|
|||||||
name=Crown of Vigor
|
name=Crown of Vigor
|
||||||
target=creature
|
target=creature
|
||||||
auto=1/1
|
auto=1/1
|
||||||
auto={S}:transforms((,newability[all(creature[share!types!]) 1/1 ueot])) ueot
|
auto={S}:transforms((,newability[all(*[creature;share!types!]) 1/1 ueot])) ueot
|
||||||
text=Enchant creature -- Enchanted creature gets +1/+1. -- Sacrifice Crown of Vigor: Enchanted creature and other creatures that share a creature type with it get +1/+1 until end of turn.
|
text=Enchant creature -- Enchanted creature gets +1/+1. -- Sacrifice Crown of Vigor: Enchanted creature and other creatures that share a creature type with it get +1/+1 until end of turn.
|
||||||
mana={1}{G}
|
mana={1}{G}
|
||||||
type=Enchantment
|
type=Enchantment
|
||||||
@@ -27459,7 +27459,7 @@ autostack=if casted(this) then all(creature|mybattlefield) transforms((,newabili
|
|||||||
text=Emerge {6}{G}{G}{G} (You may cast this spell by sacrificing a creature and paying the emerge cost reduced by that creature's converted mana cost.) -- When you cast Decimator of the Provinces, creatures you control get +2/+2 and gain trample until end of turn. -- Trample, haste
|
text=Emerge {6}{G}{G}{G} (You may cast this spell by sacrificing a creature and paying the emerge cost reduced by that creature's converted mana cost.) -- When you cast Decimator of the Provinces, creatures you control get +2/+2 and gain trample until end of turn. -- Trample, haste
|
||||||
mana={10}
|
mana={10}
|
||||||
other={emerge}{6}{G}{G}{G} name(Emerge)
|
other={emerge}{6}{G}{G}{G} name(Emerge)
|
||||||
otherrestriction=compare(ishumannt)~morethan~0,type(creature|myBattlefield)~morethan~0
|
otherrestriction=compare(ishuman)~morethan~0,type(creature|myBattlefield)~morethan~0
|
||||||
type=Creature
|
type=Creature
|
||||||
subtype=Eldrazi Boar
|
subtype=Eldrazi Boar
|
||||||
power=7
|
power=7
|
||||||
@@ -30188,7 +30188,7 @@ autostack=if casted(this) then ability$!name(Reveal) reveal:type:*:opponenthand
|
|||||||
text=Emerge {5}{B}{B} (You may cast this spell by sacrificing a creature and paying the emerge cost reduced by that creature's converted mana cost.) -- When you cast Distended Mindbender, target opponent reveals his or her hand. You choose from it a nonland card with converted mana cost 3 or less and a card with converted mana cost 4 or greater. That player discards those cards.
|
text=Emerge {5}{B}{B} (You may cast this spell by sacrificing a creature and paying the emerge cost reduced by that creature's converted mana cost.) -- When you cast Distended Mindbender, target opponent reveals his or her hand. You choose from it a nonland card with converted mana cost 3 or less and a card with converted mana cost 4 or greater. That player discards those cards.
|
||||||
mana={8}
|
mana={8}
|
||||||
other={emerge}{5}{B}{B} name(Emerge)
|
other={emerge}{5}{B}{B} name(Emerge)
|
||||||
otherrestriction=compare(ishumannt)~morethan~0,type(creature|myBattlefield)~morethan~0
|
otherrestriction=compare(ishuman)~morethan~0,type(creature|myBattlefield)~morethan~0
|
||||||
type=Creature
|
type=Creature
|
||||||
subtype=Eldrazi Insect
|
subtype=Eldrazi Insect
|
||||||
power=5
|
power=5
|
||||||
@@ -32499,7 +32499,7 @@ auto=opponentshroud ueot
|
|||||||
text=Flash (You may cast this spell any time you could cast an instant.) -- Emerge {7}{U} (You may cast this spell by sacrificing a creature and paying the emerge cost reduced by that creature's converted mana cost.) -- Drownyard Behemoth has hexproof as long as it entered the battlefield this turn.
|
text=Flash (You may cast this spell any time you could cast an instant.) -- Emerge {7}{U} (You may cast this spell by sacrificing a creature and paying the emerge cost reduced by that creature's converted mana cost.) -- Drownyard Behemoth has hexproof as long as it entered the battlefield this turn.
|
||||||
mana={9}
|
mana={9}
|
||||||
other={emerge}{7}{U} name(Emerge)
|
other={emerge}{7}{U} name(Emerge)
|
||||||
otherrestriction=compare(ishumannt)~morethan~0,type(creature|myBattlefield)~morethan~0
|
otherrestriction=compare(ishuman)~morethan~0,type(creature|myBattlefield)~morethan~0
|
||||||
type=Creature
|
type=Creature
|
||||||
subtype=Eldrazi Crab
|
subtype=Eldrazi Crab
|
||||||
power=5
|
power=5
|
||||||
@@ -34185,7 +34185,7 @@ autostack=if casted(this) then target(<upto:4>*|battlefield) tap
|
|||||||
text=Flash -- Emerge {5}{U}{U} (You may cast this spell by sacrificing a creature and paying the emerge cost reduced by that creature's converted mana cost.) -- When you cast Elder Deep-Fiend, tap up to four target permanents.
|
text=Flash -- Emerge {5}{U}{U} (You may cast this spell by sacrificing a creature and paying the emerge cost reduced by that creature's converted mana cost.) -- When you cast Elder Deep-Fiend, tap up to four target permanents.
|
||||||
mana={8}
|
mana={8}
|
||||||
other={emerge}{5}{U}{U} name(Emerge)
|
other={emerge}{5}{U}{U} name(Emerge)
|
||||||
otherrestriction=compare(ishumannt)~morethan~0,type(creature|myBattlefield)~morethan~0
|
otherrestriction=compare(ishuman)~morethan~0,type(creature|myBattlefield)~morethan~0
|
||||||
type=Creature
|
type=Creature
|
||||||
subtype=Eldrazi Octopus
|
subtype=Eldrazi Octopus
|
||||||
power=5
|
power=5
|
||||||
@@ -46469,7 +46469,8 @@ toughness=2
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
name=Giltspire Avenger
|
name=Giltspire Avenger
|
||||||
auto={t}:target(creature[controllerdamager]) destroy
|
auto={T}:name(Destroy opponent creature) target(creature[opponentdamager]|opponentbattlefield) destroy
|
||||||
|
auto={T}:name(Destroy your creature) target(creature[controllerdamager]|mybattlefield) destroy
|
||||||
abilities=exalted
|
abilities=exalted
|
||||||
text=Exalted (Whenever a creature you control attacks alone, that creature gets +1/+1 until end of turn.) -- {T}: Destroy target creature that dealt damage to you this turn.
|
text=Exalted (Whenever a creature you control attacks alone, that creature gets +1/+1 until end of turn.) -- {T}: Destroy target creature that dealt damage to you this turn.
|
||||||
mana={G}{W}{U}
|
mana={G}{W}{U}
|
||||||
@@ -49643,8 +49644,7 @@ type=Land
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
name=Gravepurge
|
name=Gravepurge
|
||||||
target=<anyamount>creature|mygraveyard
|
auto=may name(Return creature to library) target(<anyamount>creature|mygraveyard) moveTo(mylibrary)
|
||||||
auto=moveTo(mylibrary)
|
|
||||||
auto=draw:1 controller
|
auto=draw:1 controller
|
||||||
text=Put any number of target creature cards from your graveyard on top of your library. -- Draw a card.
|
text=Put any number of target creature cards from your graveyard on top of your library. -- Draw a card.
|
||||||
mana={2}{B}
|
mana={2}{B}
|
||||||
@@ -58253,8 +58253,8 @@ toughness=1
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
name=Ink Dissolver
|
name=Ink Dissolver
|
||||||
aicode=activate target(*[zpos=1]|mylibrary) moveto(mylibrary) and!(moveto(mylibrary) and!(if cantargetcard(creature[share!types!]|*) then deplete:3 opponent )!)!
|
aicode=activate target(*[zpos=1]|mylibrary) moveto(mylibrary) and!(moveto(mylibrary) and!(if cantargetcard(*[creature;share!types!]|*) then deplete:3 opponent )!)!
|
||||||
auto=@each my upkeep:name(Kinship) reveal:1 optionone if type(creature[share!types!]|reveal)~morethan~0 then deplete:3 opponent optiononeend optiontwo name(Put Back On Top) target(<1>*|reveal) moveto(mylibrary) optiontwoend revealend
|
auto=@each my upkeep:name(Kinship) reveal:1 optionone if type(*[creature;share!types!]|reveal)~morethan~0 then deplete:3 opponent optiononeend optiontwo name(Put Back On Top) target(<1>*|reveal) moveto(mylibrary) optiontwoend revealend
|
||||||
text=Kinship - At the beginning of your upkeep, you may look at the top card of your library. If it shares a creature type with Ink Dissolver, you may reveal it. If you do, each opponent puts the top three cards of his or her library into his or her graveyard.
|
text=Kinship - At the beginning of your upkeep, you may look at the top card of your library. If it shares a creature type with Ink Dissolver, you may reveal it. If you do, each opponent puts the top three cards of his or her library into his or her graveyard.
|
||||||
mana={1}{U}
|
mana={1}{U}
|
||||||
type=Creature
|
type=Creature
|
||||||
@@ -59396,7 +59396,7 @@ autostack=if casted(this) then token(Insect,creature insect, 1/1,green)*2
|
|||||||
text=Emerge {6}{G} (You may cast this spell by sacrificing a creature and paying the emerge cost reduced by that creature's converted mana cost.) -- When you cast It of the Horrid Swarm, put two 1/1 green Insect creature tokens onto the battlefield.
|
text=Emerge {6}{G} (You may cast this spell by sacrificing a creature and paying the emerge cost reduced by that creature's converted mana cost.) -- When you cast It of the Horrid Swarm, put two 1/1 green Insect creature tokens onto the battlefield.
|
||||||
mana={8}
|
mana={8}
|
||||||
other={emerge}{6}{G} name(Emerge)
|
other={emerge}{6}{G} name(Emerge)
|
||||||
otherrestriction=compare(ishumannt)~morethan~0,type(creature|myBattlefield)~morethan~0
|
otherrestriction=compare(ishuman)~morethan~0,type(creature|myBattlefield)~morethan~0
|
||||||
type=Creature
|
type=Creature
|
||||||
subtype=Eldrazi Insect
|
subtype=Eldrazi Insect
|
||||||
power=4
|
power=4
|
||||||
@@ -63239,7 +63239,7 @@ toughness=3
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
name=Kithkin Zephyrnaut
|
name=Kithkin Zephyrnaut
|
||||||
auto=@each my upkeep:name(Kinship) reveal:1 optionone if type(creature[share!types!]|reveal)~morethan~0 then +2/+2 ueot && flying ueot && vigilance ueot optiononeend optiontwo name(Put Back On Top) target(<1>*|reveal) moveto(mylibrary) optiontwoend revealend
|
auto=@each my upkeep:name(Kinship) reveal:1 optionone if type(*[creature;share!types!]|reveal)~morethan~0 then +2/+2 ueot && flying ueot && vigilance ueot optiononeend optiontwo name(Put Back On Top) target(<1>*|reveal) moveto(mylibrary) optiontwoend revealend
|
||||||
text=Kinship - At the beginning of your upkeep, you may look at the top card of your library. If it shares a creature type with Kithkin Zephyrnaut, you may reveal it. If you do, Kithkin Zephyrnaut gets +2/+2 and gains flying and vigilance until end of turn.
|
text=Kinship - At the beginning of your upkeep, you may look at the top card of your library. If it shares a creature type with Kithkin Zephyrnaut, you may reveal it. If you do, Kithkin Zephyrnaut gets +2/+2 and gains flying and vigilance until end of turn.
|
||||||
mana={2}{W}
|
mana={2}{W}
|
||||||
type=Creature
|
type=Creature
|
||||||
@@ -63891,7 +63891,7 @@ toughness=3
|
|||||||
[card]
|
[card]
|
||||||
name=Konda's Banner
|
name=Konda's Banner
|
||||||
auto={2}:equip target(creature[legendary]|mybattlefield)
|
auto={2}:equip target(creature[legendary]|mybattlefield)
|
||||||
auto=teach(creature) transforms((,newability[lord(creature[share!color!]) 1/1],newability[lord(creature[share!types!]) 1/1]))
|
auto=teach(creature) transforms((,newability[lord(creature[share!color!]) 1/1],newability[lord(*[creature;share!types!]) 1/1]))
|
||||||
text=Konda's Banner can be attached only to a legendary creature. -- Creatures that share a color with equipped creature get +1/+1. -- Creatures that share a creature type with equipped creature get +1/+1. -- Equip {2}
|
text=Konda's Banner can be attached only to a legendary creature. -- Creatures that share a color with equipped creature get +1/+1. -- Creatures that share a creature type with equipped creature get +1/+1. -- Equip {2}
|
||||||
mana={2}
|
mana={2}
|
||||||
type=Legendary Artifact
|
type=Legendary Artifact
|
||||||
@@ -65579,7 +65579,7 @@ autostack=if casted(this) then target(*[-land]|battlefield) moveto(ownerlibrary)
|
|||||||
text=Emerge {5}{G}{U} (You may cast this spell by sacrificing a creature and paying the emerge cost reduced by that creature's converted mana cost.) -- When you cast Lashweed Lurker, you may put target nonland permanent on top of its owner's library.
|
text=Emerge {5}{G}{U} (You may cast this spell by sacrificing a creature and paying the emerge cost reduced by that creature's converted mana cost.) -- When you cast Lashweed Lurker, you may put target nonland permanent on top of its owner's library.
|
||||||
mana={8}
|
mana={8}
|
||||||
other={emerge}{5}{G}{U} name(Emerge)
|
other={emerge}{5}{G}{U} name(Emerge)
|
||||||
otherrestriction=compare(ishumannt)~morethan~0,type(creature|myBattlefield)~morethan~0
|
otherrestriction=compare(ishuman)~morethan~0,type(creature|myBattlefield)~morethan~0
|
||||||
type=Creature
|
type=Creature
|
||||||
subtype=Eldrazi Horror
|
subtype=Eldrazi Horror
|
||||||
power=5
|
power=5
|
||||||
@@ -66094,7 +66094,7 @@ toughness=2
|
|||||||
[card]
|
[card]
|
||||||
name=Leaf-Crowned Elder
|
name=Leaf-Crowned Elder
|
||||||
aicode=activate target(creature[share!types!zpos=1]|mylibrary) castcard(normal)
|
aicode=activate target(creature[share!types!zpos=1]|mylibrary) castcard(normal)
|
||||||
auto=@each my upkeep:name(Kinship) reveal:1 optionone if type(creature[share!types!]|reveal)~morethan~0 then may castcard(restricted) target(*|reveal) optiononeend optiontwo name(Put Back On Top) target(<1>*|reveal) moveto(mylibrary) optiontwoend revealend
|
auto=@each my upkeep:name(Kinship) reveal:1 optionone if type(*[creature;share!types!]|reveal)~morethan~0 then may castcard(restricted) target(*|reveal) optiononeend optiontwo name(Put Back On Top) target(<1>*|reveal) moveto(mylibrary) optiontwoend revealend
|
||||||
text=Kinship - At the beginning of your upkeep, you may look at the top card of your library. If it shares a creature type with Leaf-Crowned Elder, you may reveal it. If you do, you may play that card without paying its mana cost.
|
text=Kinship - At the beginning of your upkeep, you may look at the top card of your library. If it shares a creature type with Leaf-Crowned Elder, you may reveal it. If you do, you may play that card without paying its mana cost.
|
||||||
mana={2}{G}{G}
|
mana={2}{G}{G}
|
||||||
type=Creature
|
type=Creature
|
||||||
@@ -75047,7 +75047,7 @@ toughness=4
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
name=Mistform Warchief
|
name=Mistform Warchief
|
||||||
auto=lord(creature[share!types!]|mycastingzone) altercost(colorless,-1) chooseend
|
auto=lord(*[creature;share!types!]|mycastingzone) altercost(colorless,-1) chooseend
|
||||||
auto={T}:activatechooseatype all(this) becomes(removecreaturesubtypes) && becomes(chosentype) ueot activatechooseend
|
auto={T}:activatechooseatype all(this) becomes(removecreaturesubtypes) && becomes(chosentype) ueot activatechooseend
|
||||||
text=Creature spells you cast that share a creature type with Mistform Warchief cost {1} less to cast. -- {T}: Mistform Warchief becomes the creature type of your choice until end of turn.
|
text=Creature spells you cast that share a creature type with Mistform Warchief cost {1} less to cast. -- {T}: Mistform Warchief becomes the creature type of your choice until end of turn.
|
||||||
mana={2}{U}
|
mana={2}{U}
|
||||||
@@ -75290,7 +75290,7 @@ autostack=if casted(this) then may destroy target(artifact,enchantment)
|
|||||||
text=Emerge {7}{G} (You may cast this spell by sacrificing a creature and paying the emerge cost reduced by that creature's converted mana cost.) -- When you cast Mockery of Nature, you may destroy target artifact or enchantment.
|
text=Emerge {7}{G} (You may cast this spell by sacrificing a creature and paying the emerge cost reduced by that creature's converted mana cost.) -- When you cast Mockery of Nature, you may destroy target artifact or enchantment.
|
||||||
mana={9}
|
mana={9}
|
||||||
other={emerge}{7}{G} name(Emerge)
|
other={emerge}{7}{G} name(Emerge)
|
||||||
otherrestriction=compare(ishumannt)~morethan~0,type(creature|myBattlefield)~morethan~0
|
otherrestriction=compare(ishuman)~morethan~0,type(creature|myBattlefield)~morethan~0
|
||||||
type=Creature
|
type=Creature
|
||||||
subtype=Eldrazi Beast
|
subtype=Eldrazi Beast
|
||||||
power=6
|
power=6
|
||||||
@@ -76922,8 +76922,8 @@ toughness=3
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
name=Mudbutton Clanger
|
name=Mudbutton Clanger
|
||||||
aicode=activate target(*[zpos=1]|mylibrary) moveto(mylibrary) and!(moveto(mylibrary) and!(if cantargetcard(creature[share!types!]|*) then all(this) 1/1 ueot )!)!
|
aicode=activate target(*[zpos=1]|mylibrary) moveto(mylibrary) and!(moveto(mylibrary) and!(if cantargetcard(*[creature;share!types!]|*) then all(this) 1/1 ueot )!)!
|
||||||
auto=@each my upkeep:name(Kinship) reveal:1 optionone if type(creature[share!types!]|reveal)~morethan~0 then all(this) +1/+1 ueot optiononeend optiontwo name(Put Back On Top) target(<1>*|reveal) moveto(mylibrary) optiontwoend revealend
|
auto=@each my upkeep:name(Kinship) reveal:1 optionone if type(*[creature;share!types!]|reveal)~morethan~0 then all(this) +1/+1 ueot optiononeend optiontwo name(Put Back On Top) target(<1>*|reveal) moveto(mylibrary) optiontwoend revealend
|
||||||
text=Kinship - At the beginning of your upkeep, you may look at the top card of your library. If it shares a creature type with Mudbutton Clanger, you may reveal it. If you do, Mudbutton Clanger gets +1/+1 until end of turn.
|
text=Kinship - At the beginning of your upkeep, you may look at the top card of your library. If it shares a creature type with Mudbutton Clanger, you may reveal it. If you do, Mudbutton Clanger gets +1/+1 until end of turn.
|
||||||
mana={R}
|
mana={R}
|
||||||
type=Creature
|
type=Creature
|
||||||
@@ -79808,8 +79808,8 @@ toughness=1
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
name=Nightshade Schemers
|
name=Nightshade Schemers
|
||||||
aicode=activate target(*[zpos=1]|mylibrary) moveto(mylibrary) and!(moveto(mylibrary) and!(if cantargetcard(creature[share!types!]|*) then life:-2 opponent )!)!
|
aicode=activate target(*[zpos=1]|mylibrary) moveto(mylibrary) and!(moveto(mylibrary) and!(if cantargetcard(*[creature;share!types!]|*) then life:-2 opponent )!)!
|
||||||
auto=@each my upkeep:name(Kinship) reveal:1 optionone if type(creature[share!types!]|reveal)~morethan~0 then life:-2 opponent optiononeend optiontwo name(Put Back On Top) target(<1>*|reveal) moveto(mylibrary) optiontwoend revealend
|
auto=@each my upkeep:name(Kinship) reveal:1 optionone if type(*[creature;share!types!]|reveal)~morethan~0 then life:-2 opponent optiononeend optiontwo name(Put Back On Top) target(<1>*|reveal) moveto(mylibrary) optiontwoend revealend
|
||||||
text=Flying -- Kinship - At the beginning of your upkeep, you may look at the top card of your library. If it shares a creature type with Nightshade Schemers, you may reveal it. If you do, each opponent loses 2 life.
|
text=Flying -- Kinship - At the beginning of your upkeep, you may look at the top card of your library. If it shares a creature type with Nightshade Schemers, you may reveal it. If you do, each opponent loses 2 life.
|
||||||
mana={4}{B}
|
mana={4}{B}
|
||||||
type=Creature
|
type=Creature
|
||||||
@@ -84648,7 +84648,7 @@ toughness=1
|
|||||||
[card]
|
[card]
|
||||||
name=Patron of the Akki
|
name=Patron of the Akki
|
||||||
other={kgoblin} name(Goblin Offering)
|
other={kgoblin} name(Goblin Offering)
|
||||||
otherrestriction=compare(ishumannt)~morethan~0,type(goblin|myBattlefield)~morethan~0
|
otherrestriction=compare(ishuman)~morethan~0,type(goblin|myBattlefield)~morethan~0
|
||||||
abilities=offering
|
abilities=offering
|
||||||
auto=@combat(attacking) source(this):all(creature[attacking]) 2/0 ueot
|
auto=@combat(attacking) source(this):all(creature[attacking]) 2/0 ueot
|
||||||
text=Goblin offering (You may cast this card any time you could cast an instant by sacrificing a Goblin and paying the difference in mana costs between this and the sacrificed Goblin. Mana cost includes color.) -- Whenever Patron of the Akki attacks, creatures you control get +2/+0 until end of turn.
|
text=Goblin offering (You may cast this card any time you could cast an instant by sacrificing a Goblin and paying the difference in mana costs between this and the sacrificed Goblin. Mana cost includes color.) -- Whenever Patron of the Akki attacks, creatures you control get +2/+0 until end of turn.
|
||||||
@@ -84661,7 +84661,7 @@ toughness=5
|
|||||||
[card]
|
[card]
|
||||||
name=Patron of the Kitsune
|
name=Patron of the Kitsune
|
||||||
other={kfox} name(Fox Offering)
|
other={kfox} name(Fox Offering)
|
||||||
otherrestriction=compare(ishumannt)~morethan~0,type(fox|myBattlefield)~morethan~0
|
otherrestriction=compare(ishuman)~morethan~0,type(fox|myBattlefield)~morethan~0
|
||||||
abilities=offering
|
abilities=offering
|
||||||
auto=@each blockers:may life:type:creature[attacking]:battlefield controller
|
auto=@each blockers:may life:type:creature[attacking]:battlefield controller
|
||||||
text=Fox offering (You may cast this card any time you could cast an instant by sacrificing a Fox and paying the difference in mana costs between this and the sacrificed Fox. Mana cost includes color.) -- Whenever a creature attacks, you may gain 1 life.
|
text=Fox offering (You may cast this card any time you could cast an instant by sacrificing a Fox and paying the difference in mana costs between this and the sacrificed Fox. Mana cost includes color.) -- Whenever a creature attacks, you may gain 1 life.
|
||||||
@@ -84674,7 +84674,7 @@ toughness=6
|
|||||||
[card]
|
[card]
|
||||||
name=Patron of the Moon
|
name=Patron of the Moon
|
||||||
other={kmoonfolk} name(Moonfolk Offering)
|
other={kmoonfolk} name(Moonfolk Offering)
|
||||||
otherrestriction=compare(ishumannt)~morethan~0,type(moonfolk|myBattlefield)~morethan~0
|
otherrestriction=compare(ishuman)~morethan~0,type(moonfolk|myBattlefield)~morethan~0
|
||||||
abilities=flying,offering
|
abilities=flying,offering
|
||||||
auto={1}:name(put 2 lands in play) moveto(mybattlefield) and!(tap(noevent))! notatarget(<upto:2>land|myhand)
|
auto={1}:name(put 2 lands in play) moveto(mybattlefield) and!(tap(noevent))! notatarget(<upto:2>land|myhand)
|
||||||
text=Moonfolk offering (You may cast this card any time you could cast an instant by sacrificing a Moonfolk and paying the difference in mana costs between this and the sacrificed Moonfolk. Mana cost includes color.) -- Flying -- {1}: Put up to two land cards from your hand onto the battlefield tapped.
|
text=Moonfolk offering (You may cast this card any time you could cast an instant by sacrificing a Moonfolk and paying the difference in mana costs between this and the sacrificed Moonfolk. Mana cost includes color.) -- Flying -- {1}: Put up to two land cards from your hand onto the battlefield tapped.
|
||||||
@@ -84687,7 +84687,7 @@ toughness=4
|
|||||||
[card]
|
[card]
|
||||||
name=Patron of the Nezumi
|
name=Patron of the Nezumi
|
||||||
other={krat} name(Rat Offering)
|
other={krat} name(Rat Offering)
|
||||||
otherrestriction=compare(ishumannt)~morethan~0,type(rat|myBattlefield)~morethan~0
|
otherrestriction=compare(ishuman)~morethan~0,type(rat|myBattlefield)~morethan~0
|
||||||
abilities=offering
|
abilities=offering
|
||||||
auto=@movedto(*|opponentgraveyard) from(battlefield):life:-1 opponent
|
auto=@movedto(*|opponentgraveyard) from(battlefield):life:-1 opponent
|
||||||
text=Rat offering (You may cast this card any time you could cast an instant by sacrificing a Rat and paying the difference in mana costs between this and the sacrificed Rat. Mana cost includes color.) -- Whenever a permanent is put into an opponent's graveyard, that player loses 1 life.
|
text=Rat offering (You may cast this card any time you could cast an instant by sacrificing a Rat and paying the difference in mana costs between this and the sacrificed Rat. Mana cost includes color.) -- Whenever a permanent is put into an opponent's graveyard, that player loses 1 life.
|
||||||
@@ -84700,7 +84700,7 @@ toughness=6
|
|||||||
[card]
|
[card]
|
||||||
name=Patron of the Orochi
|
name=Patron of the Orochi
|
||||||
other={ksnake} name(Snake Offering)
|
other={ksnake} name(Snake Offering)
|
||||||
otherrestriction=compare(ishumannt)~morethan~0,type(snake|myBattlefield)~morethan~0
|
otherrestriction=compare(ishuman)~morethan~0,type(snake|myBattlefield)~morethan~0
|
||||||
abilities=offering
|
abilities=offering
|
||||||
auto={T}:name(untap all green creatures and forests) untap all(forest) && untap all(creature[green]) limit:1
|
auto={T}:name(untap all green creatures and forests) untap all(forest) && untap all(creature[green]) limit:1
|
||||||
text=Snake offering (You may cast this card any time you could cast an instant by sacrificing a Snake and paying the difference in mana costs between this and the sacrificed Snake. Mana cost includes color.) -- {T}: Untap all Forests and all green creatures. Activate this ability only once each turn.
|
text=Snake offering (You may cast this card any time you could cast an instant by sacrificing a Snake and paying the difference in mana costs between this and the sacrificed Snake. Mana cost includes color.) -- {T}: Untap all Forests and all green creatures. Activate this ability only once each turn.
|
||||||
@@ -90092,8 +90092,8 @@ type=Sorcery
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
name=Pyroclast Consul
|
name=Pyroclast Consul
|
||||||
aicode=activate target(*[zpos=1]|mylibrary) moveto(mylibrary) and!(moveto(mylibrary) and!(if cantargetcard(creature[share!types!]|*) then damage:2 all(creature|battlefield) )!)!
|
aicode=activate target(*[zpos=1]|mylibrary) moveto(mylibrary) and!(moveto(mylibrary) and!(if cantargetcard(*[creature;share!types!]|*) then damage:2 all(creature|battlefield) )!)!
|
||||||
auto=@each my upkeep:name(Kinship) reveal:1 optionone if type(creature[share!types!]|reveal)~morethan~0 then all(creature|battlefield) damage:2 optiononeend optiontwo name(Put Back On Top) target(<1>*|reveal) moveto(mylibrary) optiontwoend revealend
|
auto=@each my upkeep:name(Kinship) reveal:1 optionone if type(*[creature;share!types!]|reveal)~morethan~0 then all(creature|battlefield) damage:2 optiononeend optiontwo name(Put Back On Top) target(<1>*|reveal) moveto(mylibrary) optiontwoend revealend
|
||||||
text=Kinship - At the beginning of your upkeep, you may look at the top card of your library. If it shares a creature type with Pyroclast Consul, you may reveal it. If you do, Pyroclast Consul deals 2 damage to each creature.
|
text=Kinship - At the beginning of your upkeep, you may look at the top card of your library. If it shares a creature type with Pyroclast Consul, you may reveal it. If you do, Pyroclast Consul deals 2 damage to each creature.
|
||||||
mana={3}{R}{R}
|
mana={3}{R}{R}
|
||||||
type=Creature
|
type=Creature
|
||||||
@@ -92863,8 +92863,9 @@ type=Enchantment
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
name=Reciprocate
|
name=Reciprocate
|
||||||
target=creature[controllerdamager]
|
restriction=type(creature[damager]|battlefield)~morethan~0
|
||||||
auto=moveto(exile)
|
auto=if type(creature[opponentdamager]|opponentbattlefield)~morethan~0 then choice name(Exile opponent creature) name(Exile opponent creature) target(creature[opponentdamager]|opponentbattlefield) moveto(exile)
|
||||||
|
auto=if type(creature[controllerdamager]|mybattlefield)~morethan~0 then choice name(Exile your creature) name(Exile your creature) target(creature[controllerdamager]|mybattlefield) moveto(exile)
|
||||||
text=Exile target creature that dealt damage to you this turn.
|
text=Exile target creature that dealt damage to you this turn.
|
||||||
mana={W}
|
mana={W}
|
||||||
type=Instant
|
type=Instant
|
||||||
@@ -94444,7 +94445,8 @@ type=Instant
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
name=Retaliate
|
name=Retaliate
|
||||||
auto=all(creature[controllerdamager]) destroy
|
auto=all(creature[opponentdamager]|opponentbattlefield) destroy
|
||||||
|
auto=all(creature[controllerdamager]|mybattlefield) destroy
|
||||||
text=Destroy all creatures that dealt damage to you this turn.
|
text=Destroy all creatures that dealt damage to you this turn.
|
||||||
mana={2}{W}{W}
|
mana={2}{W}{W}
|
||||||
type=Instant
|
type=Instant
|
||||||
@@ -102176,8 +102178,8 @@ toughness=4
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
name=Sensation Gorger
|
name=Sensation Gorger
|
||||||
aicode=activate target(*[zpos=1]|mylibrary) moveto(mylibrary) and!(moveto(mylibrary) and!(if cantargetcard(creature[share!types!]|*) then reject all(*|hand) && draw:4 all(player) )!)!
|
aicode=activate target(*[zpos=1]|mylibrary) moveto(mylibrary) and!(moveto(mylibrary) and!(if cantargetcard(*[creature;share!types!]|*) then reject all(*|hand) && draw:4 all(player) )!)!
|
||||||
auto=@each my upkeep:name(Kinship) reveal:1 optionone if type(creature[share!types!]|reveal)~morethan~0 then all(player) discard:20 && draw:4 optiononeend optiontwo name(Put Back On Top) target(<1>*|reveal) moveto(mylibrary) optiontwoend revealend
|
auto=@each my upkeep:name(Kinship) reveal:1 optionone if type(*[creature;share!types!]|reveal)~morethan~0 then all(player) discard:20 && draw:4 optiononeend optiontwo name(Put Back On Top) target(<1>*|reveal) moveto(mylibrary) optiontwoend revealend
|
||||||
text=Kinship - At the beginning of your upkeep, you may look at the top card of your library. If it shares a creature type with Sensation Gorger, you may reveal it. If you do, each player discards his or her hand and draws four cards.
|
text=Kinship - At the beginning of your upkeep, you may look at the top card of your library. If it shares a creature type with Sensation Gorger, you may reveal it. If you do, each player discards his or her hand and draws four cards.
|
||||||
mana={1}{R}{R}
|
mana={1}{R}{R}
|
||||||
type=Creature
|
type=Creature
|
||||||
@@ -110255,7 +110257,8 @@ toughness=2
|
|||||||
[card]
|
[card]
|
||||||
name=Spear of Heliod
|
name=Spear of Heliod
|
||||||
auto=lord(creature|mybattlefield) 1/1
|
auto=lord(creature|mybattlefield) 1/1
|
||||||
auto={1}{W}{W}{T}:target(creature[controllerdamager]|battlefield) destroy
|
auto={1}{W}{W}{T}:name(Destroy opponent creature) target(creature[opponentdamager]|opponentbattlefield) destroy
|
||||||
|
auto={1}{W}{W}{T}:name(Destroy your creature) target(creature[controllerdamager]|mybattlefield) destroy
|
||||||
text=Creatures you control get +1/+1. -- {1}{W}{W}, {T}: Destroy target creature that dealt damage to you this turn.
|
text=Creatures you control get +1/+1. -- {1}{W}{W}, {T}: Destroy target creature that dealt damage to you this turn.
|
||||||
mana={1}{W}{W}
|
mana={1}{W}{W}
|
||||||
type=Legendary Enchantment Artifact
|
type=Legendary Enchantment Artifact
|
||||||
@@ -112186,8 +112189,8 @@ type=Sorcery
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
name=Squeaking Pie Grubfellows
|
name=Squeaking Pie Grubfellows
|
||||||
aicode=activate target(*[zpos=1]|mylibrary) moveto(mylibrary) and!(moveto(mylibrary) and!(if cantargetcard(creature[share!types!]|*) then ability$!name(discard) reject notatarget(*|myhand)!$ opponent )!)!
|
aicode=activate target(*[zpos=1]|mylibrary) moveto(mylibrary) and!(moveto(mylibrary) and!(if cantargetcard(*[creature;share!types!]|*) then ability$!name(discard) reject notatarget(*|myhand)!$ opponent )!)!
|
||||||
auto=@each my upkeep:name(Kinship) reveal:1 optionone if type(creature[share!types!]|reveal)~morethan~0 then discard:1 opponent optiononeend optiontwo name(Put Back On Top) target(<1>*|reveal) moveto(mylibrary) optiontwoend revealend
|
auto=@each my upkeep:name(Kinship) reveal:1 optionone if type(*[creature;share!types!]|reveal)~morethan~0 then discard:1 opponent optiononeend optiontwo name(Put Back On Top) target(<1>*|reveal) moveto(mylibrary) optiontwoend revealend
|
||||||
text=Kinship - At the beginning of your upkeep, you may look at the top card of your library. If it shares a creature type with Squeaking Pie Grubfellows, you may reveal it. If you do, each opponent discards a card.
|
text=Kinship - At the beginning of your upkeep, you may look at the top card of your library. If it shares a creature type with Squeaking Pie Grubfellows, you may reveal it. If you do, each opponent discards a card.
|
||||||
mana={3}{B}
|
mana={3}{B}
|
||||||
type=Creature
|
type=Creature
|
||||||
@@ -113731,7 +113734,7 @@ toughness=2
|
|||||||
[card]
|
[card]
|
||||||
name=Stoneforge Masterwork
|
name=Stoneforge Masterwork
|
||||||
auto={2}:equip
|
auto={2}:equip
|
||||||
auto=teach(creature) transforms((,newability[foreach(other creature[share!types!]|mybattlefield) 1/1]))
|
auto=teach(creature) transforms((,newability[foreach(other *[creature;share!types!]|mybattlefield) 1/1]))
|
||||||
text=Equipped creature gets +1/+1 for each other creature you control that shares a creature type with it. -- Equip {2}
|
text=Equipped creature gets +1/+1 for each other creature you control that shares a creature type with it. -- Equip {2}
|
||||||
mana={1}
|
mana={1}
|
||||||
type=Artifact
|
type=Artifact
|
||||||
@@ -126414,13 +126417,16 @@ auto=mypoolsave(blue)
|
|||||||
auto=mypoolsave(black)
|
auto=mypoolsave(black)
|
||||||
auto=mypoolsave(white)
|
auto=mypoolsave(white)
|
||||||
auto=mypoolsave(green)
|
auto=mypoolsave(green)
|
||||||
auto=mypoolsave(colorless)
|
auto=mypoolsave(artifact)
|
||||||
|
auto=mypoolsave(land)
|
||||||
auto=opponentpoolsave(red)
|
auto=opponentpoolsave(red)
|
||||||
auto=opponentpoolsave(green)
|
auto=opponentpoolsave(green)
|
||||||
auto=opponentpoolsave(blue)
|
auto=opponentpoolsave(blue)
|
||||||
auto=opponentpoolsave(black)
|
auto=opponentpoolsave(black)
|
||||||
auto=opponentpoolsave(white)
|
auto=opponentpoolsave(white)
|
||||||
auto=opponentpoolsave(colorless)
|
auto=opponentpoolsave(artifact)
|
||||||
|
auto=opponentpoolsave(land)
|
||||||
|
auto=@movedto(this|nonbattlezone) from(battlefield):name(Terminate effect) name(Terminate effect) transforms((,newability[mypoolsave(red) terminate],newability[mypoolsave(green) terminate],newability[mypoolsave(blue) terminate],newability[mypoolsave(black) terminate],newability[mypoolsave(white) terminate],newability[mypoolsave(artifact) terminate],newability[mypoolsave(land) terminate],newability[opponentpoolsave(red) terminate],newability[opponentpoolsave(green) terminate],newability[opponentpoolsave(blue) terminate],newability[opponentpoolsave(black) terminate],newability[opponentpoolsave(white) terminate],newability[opponentpoolsave(artifact) terminate],newability[opponentpoolsave(land) terminate])) oneshot
|
||||||
text=Mana pools don't empty as steps and phases end.
|
text=Mana pools don't empty as steps and phases end.
|
||||||
mana={3}{G}
|
mana={3}{G}
|
||||||
type=Enchantment
|
type=Enchantment
|
||||||
@@ -128431,7 +128437,7 @@ autostack=if casted(this) then may moveTo(myhand) target(instant,sorcery|mygrave
|
|||||||
text=Emerge {6}{U} (You may cast this spell by sacrificing a creature and paying the emerge cost reduced by that creature's converted mana cost.) -- When you cast Vexing Scuttler, you may return target instant or sorcery card from your graveyard to your hand.
|
text=Emerge {6}{U} (You may cast this spell by sacrificing a creature and paying the emerge cost reduced by that creature's converted mana cost.) -- When you cast Vexing Scuttler, you may return target instant or sorcery card from your graveyard to your hand.
|
||||||
mana={8}
|
mana={8}
|
||||||
other={emerge}{6}{U} name(Emerge)
|
other={emerge}{6}{U} name(Emerge)
|
||||||
otherrestriction=compare(ishumannt)~morethan~0,type(creature|myBattlefield)~morethan~0
|
otherrestriction=compare(ishuman)~morethan~0,type(creature|myBattlefield)~morethan~0
|
||||||
type=Creature
|
type=Creature
|
||||||
subtype=Eldrazi Crab
|
subtype=Eldrazi Crab
|
||||||
power=4
|
power=4
|
||||||
@@ -131561,8 +131567,8 @@ toughness=3
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
name=Wandering Graybeard
|
name=Wandering Graybeard
|
||||||
aicode=activate target(*[zpos=1]|mylibrary) moveto(mylibrary) and!(moveto(mylibrary) and!(if cantargetcard(creature[share!types!]|*) then life:4 controller)!)!
|
aicode=activate target(*[zpos=1]|mylibrary) moveto(mylibrary) and!(moveto(mylibrary) and!(if cantargetcard(*[creature;share!types!]|*) then life:4 controller)!)!
|
||||||
auto=@each my upkeep:name(Kinship) reveal:1 optionone if type(creature[share!types!]|reveal)~morethan~0 then life:4 controller optiononeend optiontwo name(Put Back On Top) target(<1>*|reveal) moveto(mylibrary) optiontwoend revealend
|
auto=@each my upkeep:name(Kinship) reveal:1 optionone if type(*[creature;share!types!]|reveal)~morethan~0 then life:4 controller optiononeend optiontwo name(Put Back On Top) target(<1>*|reveal) moveto(mylibrary) optiontwoend revealend
|
||||||
text=Kinship - At the beginning of your upkeep, you may look at the top card of your library. If it shares a creature type with Wandering Graybeard, you may reveal it. If you do, you gain 4 life.
|
text=Kinship - At the beginning of your upkeep, you may look at the top card of your library. If it shares a creature type with Wandering Graybeard, you may reveal it. If you do, you gain 4 life.
|
||||||
mana={3}{W}{W}
|
mana={3}{W}{W}
|
||||||
type=Creature
|
type=Creature
|
||||||
@@ -132397,8 +132403,8 @@ toughness=4
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
name=Waterspout Weavers
|
name=Waterspout Weavers
|
||||||
aicode=activate target(*[zpos=1]|mylibrary) moveto(mylibrary) and!(moveto(mylibrary) and!(if cantargetcard(creature[share!types!]|*) then all(creature|mybattlefield) flying ueot)!)!
|
aicode=activate target(*[zpos=1]|mylibrary) moveto(mylibrary) and!(moveto(mylibrary) and!(if cantargetcard(*[creature;share!types!]|*) then all(creature|mybattlefield) flying ueot)!)!
|
||||||
auto=@each my upkeep:name(Kinship) reveal:1 optionone if type(creature[share!types!]|reveal)~morethan~0 then all(creature|mybattlefield) flying ueot optiononeend optiontwo name(Put Back On Top) target(<1>*|reveal) moveto(mylibrary) optiontwoend revealend
|
auto=@each my upkeep:name(Kinship) reveal:1 optionone if type(*[creature;share!types!]|reveal)~morethan~0 then all(creature|mybattlefield) flying ueot optiononeend optiontwo name(Put Back On Top) target(<1>*|reveal) moveto(mylibrary) optiontwoend revealend
|
||||||
text=Kinship - At the beginning of your upkeep, you may look at the top card of your library. If it shares a creature type with Waterspout Weavers, you may reveal it. If you do, each creature you control gains flying until end of turn.
|
text=Kinship - At the beginning of your upkeep, you may look at the top card of your library. If it shares a creature type with Waterspout Weavers, you may reveal it. If you do, each creature you control gains flying until end of turn.
|
||||||
mana={3}{U}{U}
|
mana={3}{U}{U}
|
||||||
type=Creature
|
type=Creature
|
||||||
@@ -134591,8 +134597,8 @@ toughness=2
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
name=Winnower Patrol
|
name=Winnower Patrol
|
||||||
aicode=activate target(*[zpos=1]|mylibrary) moveto(mylibrary) and!(moveto(mylibrary) and!(if cantargetcard(creature[share!types!]|*) then all(this) counter(1/1) )!)!
|
aicode=activate target(*[zpos=1]|mylibrary) moveto(mylibrary) and!(moveto(mylibrary) and!(if cantargetcard(*[creature;share!types!]|*) then all(this) counter(1/1) )!)!
|
||||||
auto=@each my upkeep:name(Kinship) reveal:1 optionone if type(creature[share!types!]|reveal)~morethan~0 then all(this) counter(1/1,1) optiononeend optiontwo name(Put Back On Top) target(<1>*|reveal) moveto(mylibrary) optiontwoend revealend
|
auto=@each my upkeep:name(Kinship) reveal:1 optionone if type(*[creature;share!types!]|reveal)~morethan~0 then all(this) counter(1/1,1) optiononeend optiontwo name(Put Back On Top) target(<1>*|reveal) moveto(mylibrary) optiontwoend revealend
|
||||||
text=Kinship - At the beginning of your upkeep, you may look at the top card of your library. If it shares a creature type with Winnower Patrol, you may reveal it. If you do, put a +1/+1 counter on Winnower Patrol.
|
text=Kinship - At the beginning of your upkeep, you may look at the top card of your library. If it shares a creature type with Winnower Patrol, you may reveal it. If you do, put a +1/+1 counter on Winnower Patrol.
|
||||||
mana={2}{G}
|
mana={2}{G}
|
||||||
type=Creature
|
type=Creature
|
||||||
@@ -135954,7 +135960,7 @@ autostack=if casted(this) then draw:1
|
|||||||
text=Emerge {5}{U} (You may cast this spell by sacrificing a creature and paying the emerge cost reduced by that creature's converted mana cost.) -- When you cast Wretched Gryff, draw a card. -- Flying
|
text=Emerge {5}{U} (You may cast this spell by sacrificing a creature and paying the emerge cost reduced by that creature's converted mana cost.) -- When you cast Wretched Gryff, draw a card. -- Flying
|
||||||
mana={7}
|
mana={7}
|
||||||
other={emerge}{5}{U} name(Emerge)
|
other={emerge}{5}{U} name(Emerge)
|
||||||
otherrestriction=compare(ishumannt)~morethan~0,type(creature|myBattlefield)~morethan~0
|
otherrestriction=compare(ishuman)~morethan~0,type(creature|myBattlefield)~morethan~0
|
||||||
type=Creature
|
type=Creature
|
||||||
subtype=Eldrazi Hippogriff
|
subtype=Eldrazi Hippogriff
|
||||||
power=3
|
power=3
|
||||||
|
|||||||
@@ -627,6 +627,7 @@ subtype=Daretti
|
|||||||
name=Daretti, Scrap Savant
|
name=Daretti, Scrap Savant
|
||||||
abilities=canbecommander
|
abilities=canbecommander
|
||||||
auto=counter(0/0,3,loyalty)
|
auto=counter(0/0,3,loyalty)
|
||||||
|
auto={C(0/0,2,Loyalty)}:name(+2: Don't discard) donothing
|
||||||
auto={C(0/0,2,Loyalty)}:name(+2: Discard and Draw) reject notatarget(<upto:2>*|myhand) and!( draw:1 controller )!
|
auto={C(0/0,2,Loyalty)}:name(+2: Discard and Draw) reject notatarget(<upto:2>*|myhand) and!( draw:1 controller )!
|
||||||
auto={C(0/0,-2,Loyalty)}:name(-2: Sacrifice an Artifact) sacrifice notatarget(artifact|mybattlefield) and!( moveto(mybattlefield) target(artifact|mygraveyard) )!
|
auto={C(0/0,-2,Loyalty)}:name(-2: Sacrifice an Artifact) sacrifice notatarget(artifact|mybattlefield) and!( moveto(mybattlefield) target(artifact|mygraveyard) )!
|
||||||
auto={C(0/0,-10,Loyalty)}:name(-10: Emblem: "Reanimate artifacts") emblem transforms((,newability[@movedTo(artifact|mygraveyard) from(battlefield):all(trigger[to]) phaseaction[endofturn once] moveTo(mybattlefield)])) forever dontremove
|
auto={C(0/0,-10,Loyalty)}:name(-10: Emblem: "Reanimate artifacts") emblem transforms((,newability[@movedTo(artifact|mygraveyard) from(battlefield):all(trigger[to]) phaseaction[endofturn once] moveTo(mybattlefield)])) forever dontremove
|
||||||
|
|||||||
@@ -2962,7 +2962,6 @@ name=Double Stroke
|
|||||||
text=Hidden agenda (Start the game with this conspiracy face down in the command zone and secretly name a card. You may turn this conspiracy face up any time and reveal the chosen name.) -- Whenever you cast an instant or sorcery spell with the chosen name, you may copy it. You may choose new targets for the copy.
|
text=Hidden agenda (Start the game with this conspiracy face down in the command zone and secretly name a card. You may turn this conspiracy face up any time and reveal the chosen name.) -- Whenever you cast an instant or sorcery spell with the chosen name, you may copy it. You may choose new targets for the copy.
|
||||||
type=Conspiracy
|
type=Conspiracy
|
||||||
[/card]
|
[/card]
|
||||||
|
|
||||||
[card]
|
[card]
|
||||||
name=Doubling Chant
|
name=Doubling Chant
|
||||||
text=For each creature you control, you may search your library for a creature card with the same name as that creature. Put those cards onto the battlefield, then shuffle your library.
|
text=For each creature you control, you may search your library for a creature card with the same name as that creature. Put those cards onto the battlefield, then shuffle your library.
|
||||||
@@ -6939,15 +6938,6 @@ power=3
|
|||||||
toughness=3
|
toughness=3
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
name=Meren of Clan Nel Toth
|
|
||||||
text=Whenever another creature you control dies, you get an experience counter. -- At the beginning of your end step, choose target creature card in your graveyard. If that card's converted mana cost is less than or equal to the number of experience counters you have, return it to the battlefield. Otherwise, put it into your hand.
|
|
||||||
mana={2}{B}{G}
|
|
||||||
type=Legendary Creature
|
|
||||||
subtype=Human Shaman
|
|
||||||
power=3
|
|
||||||
toughness=4
|
|
||||||
[/card]
|
|
||||||
[card]
|
|
||||||
name=Merieke Ri Berit
|
name=Merieke Ri Berit
|
||||||
text=Merieke Ri Berit doesn't untap during your untap step. -- {T}: Gain control of target creature for as long as you control Merieke Ri Berit. When Merieke Ri Berit leaves the battlefield or becomes untapped, destroy that creature. It can't be regenerated.
|
text=Merieke Ri Berit doesn't untap during your untap step. -- {T}: Gain control of target creature for as long as you control Merieke Ri Berit. When Merieke Ri Berit leaves the battlefield or becomes untapped, destroy that creature. It can't be regenerated.
|
||||||
mana={W}{U}{B}
|
mana={W}{U}{B}
|
||||||
|
|||||||
@@ -499,7 +499,34 @@ public:
|
|||||||
return NEW TrplayerEnergized(*this);
|
return NEW TrplayerEnergized(*this);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
class TrplayerExperienced: public Trigger
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
bool thiscontroller, thisopponent;
|
||||||
|
TrplayerExperienced(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc,bool once = false, bool thiscontroller = false, bool thisopponent = false) :
|
||||||
|
Trigger(observer, id, source,once, tc),thiscontroller(thiscontroller),thisopponent(thisopponent)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
int triggerOnEventImpl(WEvent * event)
|
||||||
|
{
|
||||||
|
WEventplayerExperienced * e = dynamic_cast<WEventplayerExperienced *> (event);
|
||||||
|
if (!e) return 0;
|
||||||
|
if (!tc->canTarget(e->player)) return 0;
|
||||||
|
if(thiscontroller)
|
||||||
|
if(e->player != source->controller())
|
||||||
|
return 0;
|
||||||
|
if(thisopponent)
|
||||||
|
if(e->player == source->controller())
|
||||||
|
return 0;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
TrplayerExperienced * clone() const
|
||||||
|
{
|
||||||
|
return NEW TrplayerExperienced(*this);
|
||||||
|
}
|
||||||
|
};
|
||||||
class TrplayerMonarch: public Trigger
|
class TrplayerMonarch: public Trigger
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -4023,6 +4050,19 @@ public:
|
|||||||
AAAlterEnergy * clone() const;
|
AAAlterEnergy * clone() const;
|
||||||
~AAAlterEnergy();
|
~AAAlterEnergy();
|
||||||
};
|
};
|
||||||
|
//Experience Counter
|
||||||
|
class AAAlterExperience: public ActivatedAbilityTP
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
int experience;
|
||||||
|
|
||||||
|
AAAlterExperience(GameObserver* observer, int _id, MTGCardInstance * _source, Targetable * _target, int energy, ManaCost * _cost = NULL,
|
||||||
|
int who = TargetChooser::UNSET);
|
||||||
|
int resolve();
|
||||||
|
const string getMenuText();
|
||||||
|
AAAlterExperience * clone() const;
|
||||||
|
~AAAlterExperience();
|
||||||
|
};
|
||||||
//Boast Event
|
//Boast Event
|
||||||
class AABoastEvent: public ActivatedAbilityTP
|
class AABoastEvent: public ActivatedAbilityTP
|
||||||
{
|
{
|
||||||
@@ -5164,7 +5204,8 @@ class AManaPoolSaver: public MTGAbility
|
|||||||
public:
|
public:
|
||||||
string Color;
|
string Color;
|
||||||
bool OtherPlayer;
|
bool OtherPlayer;
|
||||||
AManaPoolSaver(GameObserver* observer, int id, MTGCardInstance * source,string Color = "",bool otherPlayer = false);
|
bool RemovePool;
|
||||||
|
AManaPoolSaver(GameObserver* observer, int id, MTGCardInstance * source, string Color = "", bool otherPlayer = false, bool removePool = false);
|
||||||
int addToGame();
|
int addToGame();
|
||||||
int destroy();
|
int destroy();
|
||||||
AManaPoolSaver * clone() const;
|
AManaPoolSaver * clone() const;
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ public:
|
|||||||
int extraTurn;
|
int extraTurn;
|
||||||
int drawCounter;
|
int drawCounter;
|
||||||
int energyCount;
|
int energyCount;
|
||||||
|
int experienceCount;
|
||||||
int yidaroCount;
|
int yidaroCount;
|
||||||
int dungeonCompleted;
|
int dungeonCompleted;
|
||||||
int numOfCommandCast;
|
int numOfCommandCast;
|
||||||
|
|||||||
@@ -352,6 +352,15 @@ struct WEventplayerEnergized : public WEvent {
|
|||||||
virtual Targetable * getTarget(Player * player);
|
virtual Targetable * getTarget(Player * player);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//alterexperience event
|
||||||
|
struct WEventplayerExperienced : public WEvent {
|
||||||
|
WEventplayerExperienced(Player * player, int nb_count);
|
||||||
|
Player * player;
|
||||||
|
int nb_count;
|
||||||
|
using WEvent::getTarget;
|
||||||
|
virtual Targetable * getTarget(Player * player);
|
||||||
|
};
|
||||||
|
|
||||||
//monarch event
|
//monarch event
|
||||||
struct WEventplayerMonarch : public WEvent {
|
struct WEventplayerMonarch : public WEvent {
|
||||||
WEventplayerMonarch(Player * player);
|
WEventplayerMonarch(Player * player);
|
||||||
|
|||||||
@@ -1376,6 +1376,8 @@ int AAAlterEnergy::resolve()
|
|||||||
if(pTarget)
|
if(pTarget)
|
||||||
{
|
{
|
||||||
pTarget->energyCount += energy;
|
pTarget->energyCount += energy;
|
||||||
|
if(pTarget->energyCount < 0)
|
||||||
|
pTarget->energyCount = 0;
|
||||||
if(energy > 0)
|
if(energy > 0)
|
||||||
{
|
{
|
||||||
WEvent * e = NEW WEventplayerEnergized(pTarget, energy);
|
WEvent * e = NEW WEventplayerEnergized(pTarget, energy);
|
||||||
@@ -1401,6 +1403,49 @@ AAAlterEnergy::~AAAlterEnergy()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//AA Experience Counters
|
||||||
|
AAAlterExperience::AAAlterExperience(GameObserver* observer, int _id, MTGCardInstance * _source, Targetable * _target, int experience, ManaCost * _cost,
|
||||||
|
int who) :
|
||||||
|
ActivatedAbilityTP(observer, _id, _source, _target, _cost, who), experience(experience)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
int AAAlterExperience::resolve()
|
||||||
|
{
|
||||||
|
Damageable * _target = (Damageable *) getTarget();
|
||||||
|
if (_target)
|
||||||
|
{
|
||||||
|
Player * pTarget = (Player*)_target;
|
||||||
|
if(pTarget)
|
||||||
|
{
|
||||||
|
pTarget->experienceCount += experience;
|
||||||
|
if(pTarget->experienceCount < 0)
|
||||||
|
pTarget->experienceCount = 0;
|
||||||
|
if(experience > 0)
|
||||||
|
{
|
||||||
|
WEvent * e = NEW WEventplayerExperienced(pTarget, experience);
|
||||||
|
game->receiveEvent(e);
|
||||||
|
}//todo loses experience event
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
const string AAAlterExperience::getMenuText()
|
||||||
|
{
|
||||||
|
WParsedInt parsedNum(experience);
|
||||||
|
return _(parsedNum.getStringValue() + " Experience ").c_str();
|
||||||
|
}
|
||||||
|
|
||||||
|
AAAlterExperience * AAAlterExperience::clone() const
|
||||||
|
{
|
||||||
|
return NEW AAAlterExperience(*this);
|
||||||
|
}
|
||||||
|
|
||||||
|
AAAlterExperience::~AAAlterExperience()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
//Damage Prevent
|
//Damage Prevent
|
||||||
AADamagePrevent::AADamagePrevent(GameObserver* observer, int _id, MTGCardInstance * _source, Targetable * _target, int preventing, ManaCost * _cost,
|
AADamagePrevent::AADamagePrevent(GameObserver* observer, int _id, MTGCardInstance * _source, Targetable * _target, int preventing, ManaCost * _cost,
|
||||||
int who) :
|
int who) :
|
||||||
@@ -2615,6 +2660,12 @@ int AARemoveSingleCounter::resolve()
|
|||||||
a->oneShot = true;
|
a->oneShot = true;
|
||||||
pcounters.push_back(a);
|
pcounters.push_back(a);
|
||||||
}
|
}
|
||||||
|
else if(pTarget && pTarget->experienceCount)
|
||||||
|
{
|
||||||
|
MTGAbility * a = NEW AAAlterExperience(game, game->mLayers->actionLayer()->getMaxId(), source, target, -nb, NULL);
|
||||||
|
a->oneShot = true;
|
||||||
|
pcounters.push_back(a);
|
||||||
|
}
|
||||||
else if (cTarget && cTarget->counters)
|
else if (cTarget && cTarget->counters)
|
||||||
{
|
{
|
||||||
Counters * counters = cTarget->counters;
|
Counters * counters = cTarget->counters;
|
||||||
@@ -2688,6 +2739,16 @@ int AADuplicateCounters::resolve()
|
|||||||
a->oneShot = true;
|
a->oneShot = true;
|
||||||
pcounters.push_back(a);
|
pcounters.push_back(a);
|
||||||
}
|
}
|
||||||
|
else if(pTarget && pTarget->experienceCount)
|
||||||
|
{
|
||||||
|
MTGAbility * a = NULL;
|
||||||
|
if(single)
|
||||||
|
a = NEW AAAlterExperience(game, game->mLayers->actionLayer()->getMaxId(), source, target, 1, NULL);
|
||||||
|
else
|
||||||
|
a = NEW AAAlterExperience(game, game->mLayers->actionLayer()->getMaxId(), source, target, pTarget->experienceCount, NULL);
|
||||||
|
a->oneShot = true;
|
||||||
|
pcounters.push_back(a);
|
||||||
|
}
|
||||||
else if (cTarget && cTarget->counters)
|
else if (cTarget && cTarget->counters)
|
||||||
{
|
{
|
||||||
Counters * counters = cTarget->counters;
|
Counters * counters = cTarget->counters;
|
||||||
@@ -2768,6 +2829,12 @@ int AAProliferate::resolve()
|
|||||||
a->oneShot = true;
|
a->oneShot = true;
|
||||||
pcounters.push_back(a);
|
pcounters.push_back(a);
|
||||||
}
|
}
|
||||||
|
else if(pTarget && pTarget->experienceCount && pTarget == source->controller())
|
||||||
|
{
|
||||||
|
MTGAbility * a = NEW AAAlterExperience(game, game->mLayers->actionLayer()->getMaxId(), source, target, 1, NULL);
|
||||||
|
a->oneShot = true;
|
||||||
|
pcounters.push_back(a);
|
||||||
|
}
|
||||||
else if (cTarget && cTarget->counters)
|
else if (cTarget && cTarget->counters)
|
||||||
{
|
{
|
||||||
Counters * counters = cTarget->counters;
|
Counters * counters = cTarget->counters;
|
||||||
@@ -3517,22 +3584,36 @@ GenericPaidAbility::~GenericPaidAbility()
|
|||||||
SAFE_DELETE(baseAbility);
|
SAFE_DELETE(baseAbility);
|
||||||
}
|
}
|
||||||
|
|
||||||
//saves a listed mana type until end of turn.
|
//saves a listed mana type.
|
||||||
AManaPoolSaver::AManaPoolSaver(GameObserver* observer, int id, MTGCardInstance * source,string color, bool otherPlayer) :
|
AManaPoolSaver::AManaPoolSaver(GameObserver* observer, int id, MTGCardInstance * source,string color, bool otherPlayer, bool removePool) :
|
||||||
MTGAbility(observer, id, source),Color(color),OtherPlayer(otherPlayer)
|
MTGAbility(observer, id, source),Color(color),OtherPlayer(otherPlayer),RemovePool(removePool)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
int AManaPoolSaver::addToGame()
|
int AManaPoolSaver::addToGame()
|
||||||
{
|
{
|
||||||
int colorInt = Constants::GetColorStringIndex(Color.c_str());
|
int colorInt = Constants::GetColorStringIndex(Color.c_str());
|
||||||
|
if(OtherPlayer){
|
||||||
|
if(RemovePool)
|
||||||
|
source->controller()->opponent()->poolDoesntEmpty->remove(colorInt,1);
|
||||||
|
else
|
||||||
|
source->controller()->opponent()->poolDoesntEmpty->add(colorInt,1);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if(RemovePool)
|
||||||
|
source->controller()->poolDoesntEmpty->remove(colorInt,1);
|
||||||
|
else
|
||||||
source->controller()->poolDoesntEmpty->add(colorInt,1);
|
source->controller()->poolDoesntEmpty->add(colorInt,1);
|
||||||
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int AManaPoolSaver::destroy()
|
int AManaPoolSaver::destroy()
|
||||||
{
|
{
|
||||||
int colorInt = Constants::GetColorStringIndex(Color.c_str());
|
int colorInt = Constants::GetColorStringIndex(Color.c_str());
|
||||||
|
if(OtherPlayer)
|
||||||
|
source->controller()->opponent()->poolDoesntEmpty->remove(colorInt,1);
|
||||||
|
else
|
||||||
source->controller()->poolDoesntEmpty->remove(colorInt,1);
|
source->controller()->poolDoesntEmpty->remove(colorInt,1);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@@ -6100,6 +6181,22 @@ int AARemoveMana::resolve()
|
|||||||
}
|
}
|
||||||
manaPool->Empty();
|
manaPool->Empty();
|
||||||
}
|
}
|
||||||
|
else if(game->getCurrentGamePhase() == MTG_PHASE_ENDOFTURN && !forceclean)
|
||||||
|
{
|
||||||
|
if(player->poolDoesntEmpty->getConvertedCost())
|
||||||
|
{
|
||||||
|
ManaCost * toSave = NEW ManaCost();
|
||||||
|
for(int k = Constants::MTG_COLOR_ARTIFACT; k < Constants::NB_Colors;k++)
|
||||||
|
{
|
||||||
|
if(player->poolDoesntEmpty->getCost(k))
|
||||||
|
toSave->add(k,manaPool->getCost(k));
|
||||||
|
}
|
||||||
|
player->getManaPool()->pay(manaPool->Diff(toSave));
|
||||||
|
delete(toSave);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
manaPool->Empty();
|
||||||
|
}
|
||||||
else
|
else
|
||||||
manaPool->Empty();
|
manaPool->Empty();
|
||||||
}
|
}
|
||||||
@@ -7144,14 +7241,9 @@ ATransformer::ATransformer(GameObserver* observer, int id, MTGCardInstance * sou
|
|||||||
|
|
||||||
if (stypes.find("allsubtypes") != string::npos || stypes.find("removecreaturesubtypes") != string::npos)
|
if (stypes.find("allsubtypes") != string::npos || stypes.find("removecreaturesubtypes") != string::npos)
|
||||||
{
|
{
|
||||||
const vector<string> values = MTGAllCards::getValuesById();
|
const vector<string> values = MTGAllCards::getCreatureValuesById();
|
||||||
for (size_t i = 0; i < values.size(); ++i)
|
for (size_t i = 0; i < values.size(); ++i)
|
||||||
{
|
types.push_back(MTGAllCards::findType(values.at(i)));
|
||||||
if (!MTGAllCards::isSubtypeOfType(i,Subtypes::TYPE_CREATURE))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
types.push_back(i);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -411,9 +411,9 @@ MTGCardInstance * CardDescriptor::match(MTGCardInstance * card)
|
|||||||
match = NULL;
|
match = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(CDopponentDamaged == -1 || CDopponentDamaged == 1)
|
if(CDopponentDamaged == -1 || CDopponentDamaged == 1 || CDcontrollerDamaged == -1 || CDcontrollerDamaged == 1)
|
||||||
{
|
{
|
||||||
Player * p = card->controller()->opponent();//controller()->opponent();
|
Player * p = card->controller();
|
||||||
if ((CDopponentDamaged == -1 && card->damageToOpponent && card->controller() == p)
|
if ((CDopponentDamaged == -1 && card->damageToOpponent && card->controller() == p)
|
||||||
|| (CDopponentDamaged == 1 && !card->damageToOpponent && card->controller() == p)
|
|| (CDopponentDamaged == 1 && !card->damageToOpponent && card->controller() == p)
|
||||||
|| (CDopponentDamaged == -1 && card->damageToController && card->controller() == p->opponent())
|
|| (CDopponentDamaged == -1 && card->damageToController && card->controller() == p->opponent())
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ void GuiAvatar::Render()
|
|||||||
int life = player->life;
|
int life = player->life;
|
||||||
int poisonCount = player->poisonCount;
|
int poisonCount = player->poisonCount;
|
||||||
int energyCount = player->energyCount;
|
int energyCount = player->energyCount;
|
||||||
|
int experienceCount = player->experienceCount;
|
||||||
WFont * mFont = WResourceManager::Instance()->GetWFont(Fonts::MAIN_FONT);
|
WFont * mFont = WResourceManager::Instance()->GetWFont(Fonts::MAIN_FONT);
|
||||||
mFont->SetScale(DEFAULT_MAIN_FONT_SCALE);
|
mFont->SetScale(DEFAULT_MAIN_FONT_SCALE);
|
||||||
TargetChooser * tc = NULL;
|
TargetChooser * tc = NULL;
|
||||||
@@ -166,6 +167,23 @@ void GuiAvatar::Render()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//experience
|
||||||
|
char experience[15];
|
||||||
|
if (experienceCount > 0)
|
||||||
|
{
|
||||||
|
sprintf(experience, "%i", experienceCount);
|
||||||
|
switch (corner)
|
||||||
|
{
|
||||||
|
case TOP_LEFT:
|
||||||
|
mFont->SetColor(ARGB((int)actA / 1, 255, 0, 255));
|
||||||
|
mFont->DrawString(experience, actX + 2, actY + 24);
|
||||||
|
break;
|
||||||
|
case BOTTOM_RIGHT:
|
||||||
|
mFont->SetColor(ARGB((int)actA / 1 ,255, 0, 255));
|
||||||
|
mFont->DrawString(experience, actX - 10, actY - 27, JGETEXT_RIGHT);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
PlayGuiObject::Render();
|
PlayGuiObject::Render();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1192,7 +1192,6 @@ TriggeredAbility * AbilityFactory::parseTrigger(string s, string, int id, Spell
|
|||||||
attackingTrigger,attackedAloneTrigger,notBlockedTrigger,attackBlockedTrigger,blockingTrigger);
|
attackingTrigger,attackedAloneTrigger,notBlockedTrigger,attackBlockedTrigger,blockingTrigger);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//energized player - controller of card
|
//energized player - controller of card
|
||||||
if (TargetChooser * tc = parseSimpleTC(s, "energizedof", card))
|
if (TargetChooser * tc = parseSimpleTC(s, "energizedof", card))
|
||||||
return NEW TrplayerEnergized(observer, id, card, tc,once,true,false);
|
return NEW TrplayerEnergized(observer, id, card, tc,once,true,false);
|
||||||
@@ -1201,6 +1200,14 @@ TriggeredAbility * AbilityFactory::parseTrigger(string s, string, int id, Spell
|
|||||||
if (TargetChooser * tc = parseSimpleTC(s, "energizedfoeof", card))
|
if (TargetChooser * tc = parseSimpleTC(s, "energizedfoeof", card))
|
||||||
return NEW TrplayerEnergized(observer, id, card, tc,once,false,true);
|
return NEW TrplayerEnergized(observer, id, card, tc,once,false,true);
|
||||||
|
|
||||||
|
//experienced player - controller of card
|
||||||
|
if (TargetChooser * tc = parseSimpleTC(s, "experiencedof", card))
|
||||||
|
return NEW TrplayerExperienced(observer, id, card, tc,once,true,false);
|
||||||
|
|
||||||
|
//experienced player - opponent of card controller
|
||||||
|
if (TargetChooser * tc = parseSimpleTC(s, "experiencedfoeof", card))
|
||||||
|
return NEW TrplayerExperienced(observer, id, card, tc,once,false,true);
|
||||||
|
|
||||||
//becomes monarch - controller of card
|
//becomes monarch - controller of card
|
||||||
if (TargetChooser * tc = parseSimpleTC(s, "becomesmonarchof", card))
|
if (TargetChooser * tc = parseSimpleTC(s, "becomesmonarchof", card))
|
||||||
return NEW TrplayerMonarch(observer, id, card, tc,once,true,false);
|
return NEW TrplayerMonarch(observer, id, card, tc,once,true,false);
|
||||||
@@ -2619,11 +2626,12 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG
|
|||||||
return NEW APaired(observer,id, card,card->myPair,a);
|
return NEW APaired(observer,id, card,card->myPair,a);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
//mana of the listed type doesnt get emptied from the pools.
|
//mana of the listed type doesnt get emptied from the pools.
|
||||||
vector<string>colorType = parseBetween(s,"poolsave(",")",false);
|
vector<string>colorType = parseBetween(s,"poolsave(",")",false);
|
||||||
if (colorType.size())
|
if (colorType.size())
|
||||||
{
|
{
|
||||||
return NEW AManaPoolSaver(observer,id, card,colorType[1],s.find("opponentpool")!=string::npos);
|
return NEW AManaPoolSaver(observer, id, card, colorType[1], s.find("opponentpool")!=string::npos, s.find("terminate") != string::npos);// Added a way to terminate effect when source card leave battlefield.
|
||||||
}
|
}
|
||||||
|
|
||||||
//opponent replace draw with
|
//opponent replace draw with
|
||||||
@@ -3690,6 +3698,17 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG
|
|||||||
return a;
|
return a;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//alter experience
|
||||||
|
vector<string> splitExperience = parseBetween(s, "alterexperience:", " ", false);
|
||||||
|
if (splitExperience.size())
|
||||||
|
{
|
||||||
|
int exp = atoi(splitExperience[1].c_str());
|
||||||
|
Targetable * t = spell ? spell->getNextTarget() : NULL;
|
||||||
|
MTGAbility * a = NEW AAAlterExperience(observer, id, card, t, exp, NULL, who);
|
||||||
|
a->oneShot = 1;
|
||||||
|
return a;
|
||||||
|
}
|
||||||
|
|
||||||
//alter dungeon completed
|
//alter dungeon completed
|
||||||
vector<string> splitDungeonCompleted = parseBetween(s, "completedungeon:", " ", false);
|
vector<string> splitDungeonCompleted = parseBetween(s, "completedungeon:", " ", false);
|
||||||
if (splitDungeonCompleted.size())
|
if (splitDungeonCompleted.size())
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ Player::Player(GameObserver *observer, string file, string fileSmall, MTGDeck *
|
|||||||
extraTurn = 0;
|
extraTurn = 0;
|
||||||
drawCounter = 0;
|
drawCounter = 0;
|
||||||
energyCount = 0;
|
energyCount = 0;
|
||||||
|
experienceCount = 0;
|
||||||
yidaroCount = 0;
|
yidaroCount = 0;
|
||||||
dungeonCompleted = 0;
|
dungeonCompleted = 0;
|
||||||
numOfCommandCast = 0;
|
numOfCommandCast = 0;
|
||||||
|
|||||||
@@ -602,6 +602,7 @@ void Rules::initGame(GameObserver *g, bool currentPlayerSet)
|
|||||||
p->damageCount = initState.playerData[i].player->damageCount;
|
p->damageCount = initState.playerData[i].player->damageCount;
|
||||||
p->preventable = initState.playerData[i].player->preventable;
|
p->preventable = initState.playerData[i].player->preventable;
|
||||||
p->energyCount = initState.playerData[i].player->energyCount;
|
p->energyCount = initState.playerData[i].player->energyCount;
|
||||||
|
p->experienceCount = initState.playerData[i].player->experienceCount;
|
||||||
p->yidaroCount = initState.playerData[i].player->yidaroCount;
|
p->yidaroCount = initState.playerData[i].player->yidaroCount;
|
||||||
p->dungeonCompleted = initState.playerData[i].player->dungeonCompleted;
|
p->dungeonCompleted = initState.playerData[i].player->dungeonCompleted;
|
||||||
p->numOfCommandCast = initState.playerData[i].player->numOfCommandCast;
|
p->numOfCommandCast = initState.playerData[i].player->numOfCommandCast;
|
||||||
|
|||||||
@@ -287,6 +287,11 @@ WEventplayerEnergized::WEventplayerEnergized(Player * player, int nb_count) :
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
WEventplayerExperienced::WEventplayerExperienced(Player * player, int nb_count) :
|
||||||
|
player(player), nb_count(nb_count)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
WEventplayerMonarch::WEventplayerMonarch(Player * player) :
|
WEventplayerMonarch::WEventplayerMonarch(Player * player) :
|
||||||
player(player)
|
player(player)
|
||||||
{
|
{
|
||||||
@@ -605,6 +610,12 @@ Targetable * WEventplayerEnergized::getTarget(Player * player)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Targetable * WEventplayerExperienced::getTarget(Player * player)
|
||||||
|
{
|
||||||
|
if (player) return player;
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
Targetable * WEventplayerMonarch::getTarget(Player * player)
|
Targetable * WEventplayerMonarch::getTarget(Player * player)
|
||||||
{
|
{
|
||||||
if (player) return player;
|
if (player) return player;
|
||||||
|
|||||||
@@ -1289,6 +1289,10 @@ void WParsedInt::extendedParse(string s, Spell * spell, MTGCardInstance * card)
|
|||||||
{
|
{
|
||||||
intValue = (card->controller()->isAI())?0:1;
|
intValue = (card->controller()->isAI())?0:1;
|
||||||
}
|
}
|
||||||
|
else if (s == "pexperience" || s == "oexperience")
|
||||||
|
{
|
||||||
|
intValue = (s == "pexperience")?card->controller()->experienceCount:card->controller()->opponent()->experienceCount;
|
||||||
|
}
|
||||||
else if(!intValue)//found nothing, try parsing a atoi
|
else if(!intValue)//found nothing, try parsing a atoi
|
||||||
{
|
{
|
||||||
intValue = atoi(s.c_str());
|
intValue = atoi(s.c_str());
|
||||||
|
|||||||
Reference in New Issue
Block a user