From 46283897da117f7500dbc446d577b9f95cc9a264 Mon Sep 17 00:00:00 2001 From: Eduardo MG Date: Tue, 18 Oct 2022 17:19:29 -0500 Subject: [PATCH] Macros for learn, bug fixes and oracle updates #AUTO_DEFINE _LEARN_ Cruel Cut Etali, Primal Storm plant elemental type=summon heroes' podium other={emerge} name(Emerge) otherrestriction Epic Downfall Feed the Swarm Heartless Act gateway plaza Subversive Acolyte update Frontline Medic devious cover-up Kaervek, the Spiteful Kitesail Corsair this(attacking) Grasping Scoundrel this(attacking) Thorned Moloch this(attacking) Vivid Flying Fish this(attacking) --- .../mtg/bin/Res/sets/primitives/_macros.txt | 3 + .../bin/Res/sets/primitives/borderline.txt | 112 +++++++++--------- projects/mtg/bin/Res/sets/primitives/mtg.txt | 22 ++-- 3 files changed, 72 insertions(+), 65 deletions(-) diff --git a/projects/mtg/bin/Res/sets/primitives/_macros.txt b/projects/mtg/bin/Res/sets/primitives/_macros.txt index bd03ba1e2..b66961fb5 100644 --- a/projects/mtg/bin/Res/sets/primitives/_macros.txt +++ b/projects/mtg/bin/Res/sets/primitives/_macros.txt @@ -154,6 +154,9 @@ $AUTO_DEFINE _CLASH_ Put here a code if compare the casting cost based on Errati # Riot #AUTO_DEFINE _RIOT_ movedTo(this|myBattlefield):transforms((,newability[ability$! name(Choose counter or ability) choice name(Put a +1/+1 counter) counter(1/1,1) target(creature) _ choice name(Gains Haste) haste target(creature) forever !$ controller])) +# Learn +#AUTO_DEFINE _LEARN_ name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot + # Spectacle #AUTO_DEFINE _SPECTACLE_($cost) compare(oplifelost)~morethan~0 {$cost}: diff --git a/projects/mtg/bin/Res/sets/primitives/borderline.txt b/projects/mtg/bin/Res/sets/primitives/borderline.txt index ae9d045da..f74e5f2f1 100644 --- a/projects/mtg/bin/Res/sets/primitives/borderline.txt +++ b/projects/mtg/bin/Res/sets/primitives/borderline.txt @@ -170,7 +170,7 @@ name=Academic Dispute target=creature auto=choice name(Must block and gains reach) transforms((,newability[mustblock],newability[reach])) ueot auto=choice name(Must block and doesn't gain reach) transforms((,newability[mustblock])) ueot -auto=name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot +auto=_LEARN_ text=Target creature blocks this turn if able. You may have it gain reach until end of turn. -- Learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) mana={R} type=Instant @@ -2700,7 +2700,7 @@ type=Artifact name=Arcane Subtraction target=creature auto=-4/0 ueot -auto=name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot +auto=_LEARN_ text=Target creature gets -4/-0 until end of turn. -- Learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) mana={1}{U} type=Instant @@ -12069,7 +12069,7 @@ auto=@each my upkeep:rolld6 6 winability donothing winabilityend rolld6end auto=@dierolled(this) result(6) from(controller):all(this) sacrifice && token(Giant Chicken,Creature Giant Chicken,4/4,red) myupkeeponly text=During your upkeep, roll a six-sided die. On a 6, sacrifice Chicken Egg and put a Giant Chicken token into play. Treat this token as a 4/4 red creature that counts as a Chicken. mana={1}{R} -type=Summon +type=Creature subtype=Egg [/card] [card] @@ -12588,7 +12588,7 @@ name=Clam-I-Am auto=@dierolled(*|battlefield) result(3) from(controller):all(this) rolld6 6 winability donothing winabilityend loseability donothing loseabilityend rolld6end text=Whenever you roll a 3 on a six-sided die, you may reroll that die. mana={2}{U} -type=Summon +type=Creature subtype=Clamfolk [/card] [card] @@ -12596,7 +12596,7 @@ name=Clambassadors auto=@damaged(player) from(this):target(*[creature;artifact;land]|mybattlefield) moveTo(opponentbattlefield) text=If Clambassadors damages any player, choose an artifact, creature, or land you control. That player gains control of that artifact, creature, or land. mana={3}{U} -type=Summon +type=Creature subtype=Clamfolk [/card] [card] @@ -14808,7 +14808,7 @@ toughness=6 [card] name=Cram Session auto=life:4 controller -auto=name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot +auto=_LEARN_ text=You gain 4 life. -- Learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) mana={1}{BG} type=Sorcery @@ -15221,7 +15221,7 @@ toughness=2 [/card] [card] name=Cruel Cut -target=creature[power<2]|battlefield +target=creature[power<=2]|battlefield auto=destroy text=Destroy target creature with power 2 or less. mana={1}{B} @@ -15987,7 +15987,7 @@ type=Artifact [card] name=Custodi Lich auto=_MONARCH_CONTROLLER_ -auto=@becomesmonarchof(player):target(player) ability$!name(sacrifice) target(creature|mybattlefield) sacrifice!$ targetedplayer +auto=@becomesmonarchof(player):target(player) ability$!name(sacrifice creature) notatarget(creature|mybattlefield) sacrifice!$ targetedplayer text=When Custodi Lich enters the battlefield, you become the monarch. -- Whenever you become the monarch, target player sacrifices a creature. mana={3}{B}{B} type=Creature @@ -18249,7 +18249,8 @@ toughness=1 [card] name=Devious Cover-Up target=*|stack -auto=moveto(exile) +auto=fizzleto(exile) +auto=may name(Return cards form graveyard) target(other *|mygraveyard) moveto(mylibrary) and!( shuffle )! text=Counter target spell. If that spell is countered this way, exile it instead of putting it into its owner's graveyard. You may shuffle up to four target cards from your graveyard into your library. mana={2}{U}{U} type=Instant @@ -19116,9 +19117,9 @@ type=Sorcery [card] name=Divide by Zero restriction=compare(type:*:battlefieldplustype:*:stackplusend)~morethan~0 -auto=if type(*[manacost>=1]|battlefield)~morethan~0 then choice name(Return permanent) name(Return permanent) target(*[manacost>=1]|battlefield) moveto(ownerhand) and!( ability$!name(Learn) name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot!$ controller )! -auto=if type(*|opponentstack)~morethan~0 then choice name(Return opponent spell) name(Return opponent spell) target(*|opponentstack) transforms((,newability[spellmover(hand)],newability[ability$!name(Learn) name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot!$ opponent])) oneshot -auto=if type(*|mystack)~morethan~1 then choice name(Return your spell) name(Return your spell) target(*|mystack) transforms((,newability[spellmover(hand)],newability[ability$!name(Learn) name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot!$ controller])) oneshot +auto=if type(*[manacost>=1]|battlefield)~morethan~0 then choice name(Return permanent) name(Return permanent) target(*[manacost>=1]|battlefield) moveto(ownerhand) and!( ability$!name(Learn) _LEARN_!$ controller )! +auto=if type(*|opponentstack)~morethan~0 then choice name(Return opponent spell) name(Return opponent spell) target(*|opponentstack) transforms((,newability[spellmover(hand)],newability[ability$!name(Learn) _LEARN_!$ opponent])) oneshot +auto=if type(*|mystack)~morethan~1 then choice name(Return your spell) name(Return your spell) target(*|mystack) transforms((,newability[spellmover(hand)],newability[ability$!name(Learn) _LEARN_!$ controller])) oneshot text=Return target spell or permanent with mana value 1 or greater to its owner's hand. -- Learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) mana={2}{U} type=Instant @@ -20340,7 +20341,7 @@ type=Instant name=Dream Strix abilities=flying auto=@targeted(this):sacrifice -auto=_DIES_name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot +auto=_DIES__LEARN_ text=Flying -- When Dream Strix becomes the target of a spell, sacrifice it. -- When Dream Strix dies, learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) mana={2}{U} type=Creature @@ -22014,7 +22015,7 @@ auto=all(this) rolld6 6 winability lastrollresultminus1minusend/0 winabilityend auto=all(this) rolld6 6 winability 0/lastrollresultminus1minusend winabilityend loseability 0/lastrollresultminus1minusend loseabilityend rolld6end text=When you play Elvish Impersonators, roll two six-sided dice one after the other. Elvish Impersonators comes into play with power equal to the first die roll and toughness equal to the second. mana={3}{G} -type=Summon +type=Creature subtype=Elves [/card] [card] @@ -22681,7 +22682,7 @@ subtype=Aura name=Enthusiastic Study target=creature auto=transforms((,newability[3/1],newability[trample])) ueot -auto=name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot +auto=_LEARN_ text=Target creature gets +3/+1 and gains trample until end of turn. -- Learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) mana={2}{R} type=Instant @@ -22768,7 +22769,8 @@ type=Instant [/card] [card] name=Epic Downfall -auto=moveTo(exile) target(creature[manacost>=3]|battlefield) +target=creature[manacost>=3]|battlefield +auto=moveTo(exile) text=Exile target creature with converted mana cost 3 or greater. mana={1}{B} type=Sorcery @@ -23087,8 +23089,8 @@ toughness=2 [/card] [card] name=Etali, Primal Storm -auto=_ATTACKING_Reveal:1 revealzone(mylibrary) revealuntil(*|mylibrary) optionone choice name(Cast Card) target(*|reveal) moveto(mylibrary) and!(may castcard(normal))! optiononeend optiontwo target(<1>*|reveal) bottomoflibrary and!(all(*|reveal) bottomoflibrary)! optiontwoend revealend -auto=_ATTACKING_Reveal:1 revealzone(opponentlibrary) revealuntil(*|opponentlibrary) optionone choice name(Cast Card) target(*|reveal) moveto(opponentlibrary) and!(may castcard(normal))! optiononeend optiontwo target(<1>*|reveal) bottomoflibrary and!(all(*|reveal) bottomoflibrary)! optiontwoend revealend +auto=_ATTACKING_Reveal:1 revealzone(mylibrary) revealuntil(*|mylibrary) optionone choice name(Cast Card) target(*|reveal) moveto(mylibrary) and!(activate castcard(putinplay))! optiononeend optiontwo target(<1>*|reveal) bottomoflibrary and!(all(*|reveal) bottomoflibrary)! optiontwoend revealend +auto=_ATTACKING_Reveal:1 revealzone(opponentlibrary) revealuntil(*|opponentlibrary) optionone choice name(Cast Card) target(*|reveal) moveto(opponentlibrary) and!(activate castcard(putinplay))! optiononeend optiontwo target(<1>*|reveal) bottomoflibrary and!(all(*|reveal) bottomoflibrary)! optiontwoend revealend text=Whenever Etali, Primal Storm attacks, exile the top card of each player's library, then you may cast any number of spells from among those cards without paying their mana costs. mana={4}{R}{R} type=Legendary Creature @@ -23890,7 +23892,7 @@ type=Instant [card] name=Eyetwitch abilities=flying -auto=_DIES_name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot +auto=_DIES__LEARN_ text=Flying -- When Eyetwitch dies, learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) mana={B} type=Creature @@ -24823,6 +24825,7 @@ type=Instant [card] name=Feed the Swarm auto=name(destroy) target(*[creature;enchantment]|opponentBattlefield) transforms((,newability[destroy],newability[life:-manacost opponent])) oneshot +restriction=type(*[creature;enchantment]|opponentbattlefield)~morethan~0 text=Destroy target creature or enchantment an opponent controls. You lose life equal to that permanent's converted mana cost. mana={1}{B} type=Sorcery @@ -25229,7 +25232,7 @@ type=Sorcery [card] name=Field Trip auto=ability$!name(Search basic plains) name(Search basic plains) target(plains[basic]|mylibrary) moveto(mybattlefield) and!( tap(noevent) )! !$ controller -auto=name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot +auto=_LEARN_ text=Search your library for a basic Forest card, put that card onto the battlefield tapped, then shuffle. -- Learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) mana={2}{G} type=Sorcery @@ -27419,7 +27422,7 @@ toughness=3 [/card] [card] name=Frontline Medic -auto=_ATTACKING_restriction{type(other creature[attacking]|myBattlefield)~morethan~1}:all(creature|mybattlefield) transforms((indestructible)) ueot +auto=_BATTALION_all(creature|mybattlefield) indestructible ueot auto={S}:name(counter spell) target(other *|stack) transforms((,newability[pay[[{3}]] name(pay 3 mana) donothing?fizzle])) oneshot text=Battalion - Whenever Frontline Medic and at least two other creatures attack, creatures you control gain indestructible until end of turn. -- Sacrifice Frontline Medic: Counter target spell with {X} in its mana cost unless its controller pays {3}. mana={2}{W} @@ -28191,7 +28194,7 @@ type=Land [card] name=Gateway Plaza auto=tap(noevent) -auto=pay[[{1}]] name(pay 1 mana) donothing'sacrifice +auto=pay[[{1}]] name(pay 1 mana) donothing?sacrifice auto={T}:Add{W} auto={T}:Add{U} auto={T}:Add{B} @@ -29810,7 +29813,7 @@ toughness=6 [card] name=Gnarled Professor abilities=trample -auto=name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot +auto=_LEARN_ text=Trample -- When Gnarled Professor enters the battlefield, learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) mana={2}{G}{G} type=Creature @@ -30011,8 +30014,8 @@ auto=@damageof(player) from(this):all(this) rolld6 6 winability damage:lastrollr auto=@damagefoeof(player) from(this):all(this) rolld6 6 winability damage:lastrollresult opponent winabilityend loseability damage:lastrollresult opponent loseabilityend rolld6end text=Whenever Goblin Bowling Team damages any creature or player, roll a six-sided die. Goblin Bowling Team deals to that creature or player additional damage equal to the die roll. mana={3}{R} -type=Summon -subtype=Goblins +type=Creature +subtype=Goblin [/card] [card] name=Goblin Bruiser @@ -31028,7 +31031,7 @@ toughness=7 [/card] [card] name=Grasping Scoundrel -auto=_ATTACKING_1/0 +auto=this(attacking) 1/0 text=Grasping Scoundrel gets +1/+0 as long as it's attacking. mana={B} type=Creature @@ -32019,7 +32022,7 @@ toughness=2 name=Guiding Voice target=creature auto=counter(1/1) -auto=name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot +auto=_LEARN_ text=Put a +1/+1 counter on target creature. -- Learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) mana={W} type=Sorcery @@ -33394,6 +33397,7 @@ toughness=2 name=Heartless Act auto=choice name(Destroy):destroy target(creature[counter{notany}]) auto=choice name(Remove three counters):target(creature) removesinglecountertype(1) && removesinglecountertype(1) && removesinglecountertype(1) +restriction=type(creature|battlefield)~morethan~0 text=Choose one -- Destroy target creature with no counters on it. -- Remove up to three counters from target creature. mana={1}{B} type=Instant @@ -33942,7 +33946,7 @@ toughness=4 [/card] [card] name=Heroes' Podium -auto=lord(creature[legendary]|mybattlefield) transforms((,newability[foreach(other *[creature;legendary]|mybattlefield) 1/1])) +auto=lord(creature[legendary]|mybattlefield) transforms((,newability[foreach(other creature[legendary]|mybattlefield) 1/1])) auto={X}{T}:reveal:x optionone target(creature[legendary]|reveal) moveto(myhand) optiononeend optiontwo name(Put in library) all(*|reveal) bottomoflibrary optiontwoend revealend text=Each legendary creature you control gets +1/+1 for each other legendary creature you control. -- {X}, {T}: Look at the top X cards of your library. You may reveal a legendary creature card from among them and put it into your hand. Put the rest on the bottom of your library in a random order. mana={5} @@ -35277,7 +35281,7 @@ name=Hungry Hungry Heifer auto=@each my upkeep:if type(*[counter{any}]|mybattlefield)~equalto~0 then sacrifice all(this) else ability$! name(Choose one) choice name(Remove a counter) removesinglecountertype(1) target(*[counter{any}]|mybattlefield) _ choice name(Sacrifice) sacrifice all(mysource) !$ controller text=During your upkeep, remove a counter from any card you control or sacrifice Hungry Hungry Heifer. mana={2}{G} -type=Summon +type=Creature subtype=Cow [/card] [card] @@ -35323,7 +35327,7 @@ type=Sorcery [card] name=Hunt for Specimens auto=token(Pest,Creature Pest,1/1,black,green) and!( transforms((,newability[_DIES_life:1 controller])) forever )! -auto=name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot +auto=_LEARN_ text=Create a 1/1 black and green Pest creature token with "When this creature dies, you gain 1 life." -- Learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) mana={1}{B} type=Sorcery @@ -35746,7 +35750,7 @@ toughness=3 name=Igneous Inspiration target=player,creature,planeswalker auto=damage:3 -auto=name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot +auto=_LEARN_ text=Igneous Inspiration deals 3 damage to any target. -- Learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) mana={2}{R} type=Sorcery @@ -38646,7 +38650,7 @@ auto=@each my upkeep:all(this) rolld6 6 winability counter(1/1,lastrollresult) w auto=@each my endofturn:all(this) rolld6 6 winability counter(1/1,-lastrollresult) winabilityend loseability counter(1/1,-lastrollresult) loseabilityend rolld6end text=Flying -- When you play Jumbo Imp, roll a six-sided die. Jumbo Imp comes into play with a number of +1/+1 counters on it equal to the die roll. -- During your upkeep, roll a six-sided die and put on Jumbo Imp a number of +1/+1 counters equal to the die roll. -- At the end of your turn, roll a six-sided die and remove from Jumbo Imp a number of +1/+1 counters equal to the die roll. mana={2}{B} -type=Summon +type=Creature subtype=Imp [/card] [card] @@ -38831,7 +38835,7 @@ type=Sorcery [/card] [card] name=Kaervek, the Spiteful -auto=all(other creature|battlefield) -1/-1 +auto=lord(other creature|battlefield) -1/-1 text=Other creatures get -1/-1. mana={2}{B}{B} type=Legendary Creature @@ -39320,7 +39324,7 @@ auto={T}:name(Next spell cost less) target(*[instant;sorcery]|myhand) transforms text=Flying, haste -- {T}: The next instant or sorcery spell you cast this turn costs {X} less to cast, where X is the number of Wizards you control as this ability resolves. mana={U}{R} type=Legendary Creature -subtype=Human wizard +subtype=Human Wizard power=1 toughness=2 [/card] @@ -40199,7 +40203,7 @@ toughness=1 [/card] [card] name=Kitesail Corsair -auto=_ATTACKING_flying +auto=this(attacking) flying text=Kitesail Corsair has flying as long as it's attacking. mana={1}{U} type=Creature @@ -40827,7 +40831,7 @@ auto=@each my upkeep:all(this) rolld6 6 winability donothing winabilityend rolld auto=@dierolled(this) result(1) from(controller):name(Sacrifice and damage) name(Sacrifice and damage) sacrifice all(this) && damage:3 opponent && damage:3 controller && damage:3 all(creature|battlefield) text=During your upkeep, roll a six-sided die. On a 1, sacrifice Krazy Kow and it deals 3 damage to each creature and player. mana={3}{R} -type=Summon +type=Creature subtype=Cow [/card] [card] @@ -41848,7 +41852,7 @@ type=Instant [/card] [card] name=Ledev Champion -auto=_ATTACKING_(creature[-tapped]|mybattlefield) 1/1 +auto=_ATTACKING_(creature[-tapped]|mybattlefield) 1/1 auto={3}{G}{W}:create(soldier:creature soldier:1/1:white:lifelink) text=Whenever Ledev Champion attacks, you may tap any number of untapped creatures you control. Ledev Champion gets +1/+1 until end of turn for each creature tapped this way. -- {3}{G}{W}: Create a 1/1 white Soldier creature token with lifelink. mana={1}{G}{W} @@ -42776,7 +42780,7 @@ auto={S}:name(All your creatures gain Indestructible) all(creature|myBattlefield text=Flying -- At the beginning of combat on your turn, if you have a full party, choose target nonland permanent an opponent controls. Until your next turn, it can't attack or block, and its activated abilities can't be activated. -- Sacrifice Linvala: Choose hexproof or indestructible. Creatures you control gain that ability until end of turn. mana={1}{W}{U} type=Legendary Creature -subtype=Angel wizard +subtype=Angel Wizard power=3 toughness=3 [/card] @@ -51656,7 +51660,7 @@ type=Sorcery name=Overgrown Arch abilities=defender auto={T}:life:1 controller -auto={2}{S}:name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot +auto={2}{S}:_LEARN_ text=Defender -- {T}: You gain 1 life. -- {2}, Sacrifice Overgrown Arch: Learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) mana={1}{G} type=Creature @@ -53730,7 +53734,7 @@ type=Instant [card] name=Poet's Quill auto={1}{B}:equip -auto=name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot +auto=_LEARN_ auto=teach(creature) 3/1 auto=teach(creature) lifelink text=When Poet's Quill enters the battlefield, learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) -- Equipped creature gets +1/+1 and has lifelink. -- Equip {1}{B} @@ -53932,7 +53936,7 @@ type=Artifact [card] name=Pop Quiz auto=draw:1 controller -auto=name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot +auto=_LEARN_ text=Draw a card. -- Learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) mana={2}{U} type=Instant @@ -54049,8 +54053,8 @@ auto=this(counter{1/1.1}>0) transforms((Creature Summon Chicken,setpower=0,setto auto=@movedto(creature|graveyard) from(battlefield):may name(Roll a die) name(Roll a die) all(this) rolld6 1 winability sacrifice winabilityend loseability counter(1/1) loseabilityend rolld6end text=Flying -- Whenever a creature is put into any graveyard from play, you may roll a six-sided die. On a 1, sacrifice Poultrygeist. Otherwise, put a +1/+1 counter on Poultrygeist. mana={2}{B} -type=Summon -subtype=Chicken +type=Creature +subtype=Bird Spirit [/card] [card] name=Pounce @@ -54828,7 +54832,7 @@ toughness=3 [/card] [card] name=Professor of Symbology -auto=name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot +auto=_LEARN_ text=When Professor of Symbology enters the battlefield, learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) mana={1}{W} type=Creature @@ -58335,7 +58339,7 @@ type=Sorcery [card] name=Retriever Phoenix abilities=flying,haste -auto=if casted(this) then name(Learn) name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot +auto=if casted(this) then name(Learn) _LEARN_ text=Flying, haste -- When Retriever Phoenix enters the battlefield, if you cast it, learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) -- As long as Retriever Phoenix is in your graveyard, if you would learn, you may instead return Retriever Phoenix to the battlefield. mana={3}{R} type=Creature @@ -59160,7 +59164,7 @@ name=Rise of Extus target=creature auto=moveto(exile) auto=ability$!may name(Exile instant or sorcery) name(Exile instant or sorcery) target(*[instant;sorcery]|graveyard) moveto(exile)!$ controller -auto=name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot +auto=_LEARN_ text=Exile target creature. Exile up to one target instant or sorcery card from a graveyard. -- Learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) mana={4}{WB}{WB} type=Sorcery @@ -68002,7 +68006,7 @@ toughness=3 [/card] [card] name=Sparring Regimen -auto=name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot +auto=_LEARN_ auto=@each my blockers:name(Put 1/1 counter) target(creature[attacking]|myBattlefield) transforms((,newability[counter(1/1),newability[untap])) oneshot text=When Sparring Regimen enters the battlefield, learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) -- Whenever you attack, put a +1/+1 counter on target attacking creature and untap it. mana={2}{W} @@ -70805,7 +70809,7 @@ type=Sorcery name=Study Break target=creature auto=tap -auto=name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot +auto=_LEARN_ text=Tap up to two target creatures. -- Learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) mana={1}{W} type=Instant @@ -70904,10 +70908,10 @@ toughness=3 [/card] [card] name=Subversive Acolyte -auto=this(cantargetcard(*[-effect]) {2}:becomes(cleric effect) forever && transforms((,newability[life:-2 controller],newability[1/2 forever],newability[lifelink])) forever -auto=this(cantargetcard(*[-effect]) {2}:becomes(phyrexian effect) forever && transforms((,newability[life:-2 controller],newability[3/3 forever],newability[trample],newability[@damaged(this):ability$!name(Sacrifice permanents) name(Sacrifice permanents) notatarget(*|mybattlefield) sacrifice!$ controller])) forever -text={2}, Pay 2 life: Choose one. Activate only once. -- Subversive Acolyte becomes a Human Cleric. It gets +1/+2 and gains lifelink. -- Subversive Acolyte becomes a Phyrexian. It gets +3/+3 and gains trample and "Whenever this creature is dealt damage, sacrifice that many permanents." -mana={B}{B} +auto=this(cantargetcard(*[-effect]) {2}:becomes(cleric effect) forever && transforms((,newability[life:-2 controller],newability[1/1 forever],newability[lifelink])) forever +auto=this(cantargetcard(*[-effect]) {2}:becomes(phyrexian effect) forever && transforms((,newability[life:-2 controller],newability[3/2 forever],newability[trample],newability[@damaged(this):ability$!name(Sacrifice permanents) name(Sacrifice permanents) notatarget(*|mybattlefield) sacrifice!$ controller])) forever +text={2}, Pay 2 life: Choose one. Activate only once. -- Subversive Acolyte becomes a Human Cleric. It gets +1/+1 and gains lifelink. -- Subversive Acolyte becomes a Phyrexian. It gets +3/+2 and gains trample and "Whenever this creature is dealt damage, sacrifice that many permanents." +mana={1}{B} type=Creature subtype=Human power=2 @@ -74397,7 +74401,7 @@ type=Instant name=Thorned Moloch abilities=prowess auto=@movedTo(*[-creature]|mystack):1/1 ueot -auto=_ATTACKING_first strike ueot +auto=this(attacking) first strike text=Prowess (Whenever you cast a noncreature spell, this creature gets +1/+1 until end of turn.) -- Thorned Moloch has first strike as long as it's attacking. mana={2}{R} type=Creature @@ -80115,7 +80119,7 @@ toughness=3 [/card] [card] name=Vivid Flying Fish -auto=lord(Vivid Flying Fish[attacking]|myBattlefield) flying +auto=this(attacking) flying text=Vivid Flying Fish has flying as long as it's attacking. (It can't be blocked except by creatures with flying or reach.) mana={1}{U} type=Creature diff --git a/projects/mtg/bin/Res/sets/primitives/mtg.txt b/projects/mtg/bin/Res/sets/primitives/mtg.txt index 393242d8f..043dec852 100644 --- a/projects/mtg/bin/Res/sets/primitives/mtg.txt +++ b/projects/mtg/bin/Res/sets/primitives/mtg.txt @@ -301,7 +301,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. mana={8} other={emerge}{6}{B} name(Emerge) -otherrestriction=compare(ishuman)~morethan~0,type(creature|myBattlefield)~morethan~0 +otherrestriction=type(creature|myBattlefield)~morethan~0 type=Creature subtype=Eldrazi Leech power=6 @@ -27509,7 +27509,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 mana={10} other={emerge}{6}{G}{G}{G} name(Emerge) -otherrestriction=compare(ishuman)~morethan~0,type(creature|myBattlefield)~morethan~0 +otherrestriction=type(creature|myBattlefield)~morethan~0 type=Creature subtype=Eldrazi Boar power=7 @@ -30242,7 +30242,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. mana={8} other={emerge}{5}{B}{B} name(Emerge) -otherrestriction=compare(ishuman)~morethan~0,type(creature|myBattlefield)~morethan~0 +otherrestriction=type(creature|myBattlefield)~morethan~0 type=Creature subtype=Eldrazi Insect power=5 @@ -32555,7 +32555,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. mana={9} other={emerge}{7}{U} name(Emerge) -otherrestriction=compare(ishuman)~morethan~0,type(creature|myBattlefield)~morethan~0 +otherrestriction=type(creature|myBattlefield)~morethan~0 type=Creature subtype=Eldrazi Crab power=5 @@ -34242,7 +34242,7 @@ autostack=if casted(this) then target(*|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. mana={8} other={emerge}{5}{U}{U} name(Emerge) -otherrestriction=compare(ishuman)~morethan~0,type(creature|myBattlefield)~morethan~0 +otherrestriction=type(creature|myBattlefield)~morethan~0 type=Creature subtype=Eldrazi Octopus power=5 @@ -59482,7 +59482,7 @@ autostack=if casted(this) then _INSECTTOKEN_*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. mana={8} other={emerge}{6}{G} name(Emerge) -otherrestriction=compare(ishuman)~morethan~0,type(creature|myBattlefield)~morethan~0 +otherrestriction=type(creature|myBattlefield)~morethan~0 type=Creature subtype=Eldrazi Insect power=4 @@ -65681,7 +65681,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. mana={8} other={emerge}{5}{G}{U} name(Emerge) -otherrestriction=compare(ishuman)~morethan~0,type(creature|myBattlefield)~morethan~0 +otherrestriction=type(creature|myBattlefield)~morethan~0 type=Creature subtype=Eldrazi Horror power=5 @@ -75403,7 +75403,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. mana={9} other={emerge}{7}{G} name(Emerge) -otherrestriction=compare(ishuman)~morethan~0,type(creature|myBattlefield)~morethan~0 +otherrestriction=type(creature|myBattlefield)~morethan~0 type=Creature subtype=Eldrazi Beast power=6 @@ -87372,7 +87372,7 @@ type=Enchantment [card] name=Plant Elemental auto=aslongas(forest|myBattlefield) moveTo(graveyard) notatarget(forest|myBattlefield) oneshot -auto=moveTo(graveyard) notatarget(this|myBattlefield) +auto=name(sacrifice Plant Elemental) moveTo(graveyard) notatarget(this|myBattlefield) text=When Plant Elemental enters the battlefield, sacrifice it unless you sacrifice a Forest. mana={1}{G} type=Creature @@ -128580,7 +128580,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. mana={8} other={emerge}{6}{U} name(Emerge) -otherrestriction=compare(ishuman)~morethan~0,type(creature|myBattlefield)~morethan~0 +otherrestriction=type(creature|myBattlefield)~morethan~0 type=Creature subtype=Eldrazi Crab power=4 @@ -136115,7 +136115,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 mana={7} other={emerge}{5}{U} name(Emerge) -otherrestriction=compare(ishuman)~morethan~0,type(creature|myBattlefield)~morethan~0 +otherrestriction=type(creature|myBattlefield)~morethan~0 type=Creature subtype=Eldrazi Hippogriff power=3