From 299883cc2ce0338dad0252d87d8934f862460347 Mon Sep 17 00:00:00 2001 From: Eduardo MG Date: Thu, 15 Jan 2026 07:34:59 -0600 Subject: [PATCH] Bug Fixes in primitives, is wrong, correct use is Sunbillow Verge Murasa Behemoth Dreams of the dead Kenrith, the Returned King Chart a Course Explosion of Riches Djeru and Hazoret Vodalian Merchant is wrong, correct is Rampaging Baloths Kraul Whipcracker Gulf Squid --- .../bin/Res/sets/primitives/borderline.txt | 128 ++++++++---------- projects/mtg/bin/Res/sets/primitives/mtg.txt | 17 ++- 2 files changed, 66 insertions(+), 79 deletions(-) diff --git a/projects/mtg/bin/Res/sets/primitives/borderline.txt b/projects/mtg/bin/Res/sets/primitives/borderline.txt index 8bed29903..aa7af16d0 100644 --- a/projects/mtg/bin/Res/sets/primitives/borderline.txt +++ b/projects/mtg/bin/Res/sets/primitives/borderline.txt @@ -1294,7 +1294,7 @@ toughness=3 [/card] [card] name=Agent of the Iron Throne -auto=lord(creature[iscommander]|mybattlefield) transforms((,newability[@movedto(graveyard) from(*[creature;artifact]|mybattlefield):name(Opponent looses life) life:-1 opponent])) +auto=lord(creature[iscommander]|mybattlefield) transforms((,newability[@movedto(graveyard) from(*[creature;artifact]|mybattlefield):name(Opponent loses life) life:-1 opponent])) text=Commander creatures you own have "Whenever an artifact or creature you control is put into a graveyard from the battlefield, each opponent loses 1 life." mana={2}{B} type=Legendary Enchantment @@ -3462,7 +3462,7 @@ toughness=3 name=Anje, Maid of Dishonor auto=name(Create Blood) _BLOOD_ auto=@movedto(vampire|mybattlefield) turnlimited:if cantargetcard(*[-fresh]|*) then name(Create Blood) name(Create Blood) _BLOOD_ -auto={2}{S(other *[creature;blood]|mybattlefield)}:name(Opponent looses life) life:-2 opponent && life:2 controller +auto={2}{S(other *[creature;blood]|mybattlefield)}:name(Opponent loses life) life:-2 opponent && life:2 controller text=Whenever Anje, Maid of Dishonor and/or one or more other Vampires enter the battlefield under your control, create a Blood token. This ability triggers only once per turn. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") -- {2}, Sacrifice another creature or a Blood token: Each opponent loses 2 life and you gain 2 life. mana={2}{B}{R} type=Legendary Creature @@ -11741,7 +11741,7 @@ type=Artifact name=Bloodsoaked Reveler backside=Restless Bloodseeker auto=@each my end restriction{compare(lifegain)~morethan~0}:name(Create Blood) _BLOOD_ -auto={4}{B}:name(Opponent looses 2 life) life:-2 opponent && life:2 controller +auto={4}{B}:name(Opponent loses 2 life) life:-2 opponent && life:2 controller text=At the beginning of your end step, if you gained life this turn, create a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") -- {4}{B}: Each opponent loses 2 life and you gain 2 life. // Restless Bloodseeker color=black type=Creature @@ -13445,8 +13445,8 @@ type=Sorcery [card] name=Brainstealer Dragon abilities=flying -auto=@movedto(*[-land]|mybattlefield) from(opponentzones):name(Opponent looses life) all(trigger[to]) transforms((,newability[life:-manacost opponent])) oneshot -auto=@movedto(*[-land;counter{0/0.1.BrainExiled}]|mybattlefield):name(Opponent looses life) all(trigger[to]) transforms((,newability[life:-manacost opponent])) oneshot +auto=@movedto(*[-land]|mybattlefield) from(opponentzones):name(Opponent loses life) all(trigger[to]) transforms((,newability[life:-manacost opponent])) oneshot +auto=@movedto(*[-land;counter{0/0.1.BrainExiled}]|mybattlefield):name(Opponent loses life) all(trigger[to]) transforms((,newability[life:-manacost opponent])) oneshot auto=@each my end:name(Exile top card) all(*[zpos=1]|opponentlibrary) moveto(opponentexile) and!( counter(0/0.1.BrainExiled) )! auto={0}:name(Cast exiled card) target(*[counter{0/0.1.BrainExiled}]|opponentexile) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[anytypeofmana],newability[counter(0/0.1.BrainExiled)],newability[phaseaction[end once checkex] moveTo(ownerexile)],newability[phaseaction[untap once checkex] counter(0/0.1.BrainExiled)])) ueot )! text=Flying -- At the beginning of your end step, exile the top card of each opponent's library. You may play those cards for as long as they remain exiled. If you cast a spell this way, you may spend mana as though it were mana of any color to cast it. -- Whenever a nonland permanent an opponent owns enters under your control, they lose life equal to its mana value. @@ -18564,7 +18564,7 @@ toughness=1 [card] name=Chart a Course auto=draw:2 controller -auto=ifnot raid then discard(*|myhand) +auto=ifnot raid then reject notatarget(*|myhand) text=Draw two cards. Then discard a card unless you attacked with a creature this turn. mana={1}{U} type=Sorcery @@ -20595,8 +20595,8 @@ other={1}{B}{D(*|myhand)} name(Escalate) aicode=activate target(*[instant;sorcery]|opponenthand) reject auto=alternative if type(*|myhand)~morethan~0 then if type(creature|battlefield)~morethan~0 then choice name(Discard 1 more and choose all) name(Discard 1 more and choose all) name(Discard 1 more and choose all) name(Discard 1 more and choose all) target(*|myhand) reject and!( transforms((,newability[life:-2 opponent],newability[life:2 controller],newability[reveal:type:*:opponenthand revealzone(opponenthand) optionone name(choose discards) target(*[instant;sorcery]|reveal) reject optiononeend optiontwo name(put back) target(*|reveal) moveto(hand) and!( all(*|reveal) moveto(hand) )! optiontwoend afterrevealed choice name(Creature gets -2/-2) target(creature) -2/-2 ueot afterrevealedend revealend])) oneshot )! auto=alternative if type(creature|battlefield)~morethan~0 then choice name(Opponent reveals and creature gets -2/-2) name(Opponent reveals and creature gets -2/-2) name(Opponent reveals and creature gets -2/-2) reveal:type:*:opponenthand revealzone(opponenthand) optionone name(choose discards) target(*[instant;sorcery]|reveal) reject optiononeend optiontwo name(put back) target(*|reveal) moveto(hand) and!( all(*|reveal) moveto(hand) )! optiontwoend afterrevealed choice name(Creature gets -2/-2) target(creature) -2/-2 ueot afterrevealedend revealend -auto=alternative choice name(Opponent reveals and looses 2 life) name(Opponent reveals and looses 2 life) life:-2 opponent && life:2 controller && reveal:type:*:opponenthand revealzone(opponenthand) optionone name(choose discards) target(*[instant;sorcery]|reveal) reject optiononeend optiontwo name(put back) target(*|reveal) moveto(hand) and!( all(*|reveal) moveto(hand) )! optiontwoend revealend -auto=alternative if type(creature|battlefield)~morethan~0 then choice name(Opponent looses life and creature gets -2/-2) name(Opponent looses life and creature gets -2/-2) name(Opponent looses life and creature gets -2/-2) target(creature) -2/-2 ueot && life:-2 opponent && life:2 controller +auto=alternative choice name(Opponent reveals and loses 2 life) name(Opponent reveals and loses 2 life) life:-2 opponent && life:2 controller && reveal:type:*:opponenthand revealzone(opponenthand) optionone name(choose discards) target(*[instant;sorcery]|reveal) reject optiononeend optiontwo name(put back) target(*|reveal) moveto(hand) and!( all(*|reveal) moveto(hand) )! optiontwoend revealend +auto=alternative if type(creature|battlefield)~morethan~0 then choice name(Opponent loses life and creature gets -2/-2) name(Opponent loses life and creature gets -2/-2) name(Opponent loses life and creature gets -2/-2) target(creature) -2/-2 ueot && life:-2 opponent && life:2 controller auto=ifnot paid(alternative) then choice name(Opponent reveals and discard) name(Opponent reveals and discard) reveal:type:*:opponenthand revealzone(opponenthand) optionone name(choose discards) target(*[instant;sorcery]|reveal) reject optiononeend optiontwo name(put back) target(*|reveal) moveto(hand) and!( all(*|reveal) moveto(hand) )! optiontwoend revealend auto=ifnot paid(alternative) then if type(creature|battlefield)~morethan~0 then choice name(Creature gets -2/-2) name(Creature gets -2/-2) name(Creature gets -2/-2) target(creature) -2/-2 ueot auto=ifnot paid(alternative) then choice name(Opponent loses 2 and you gain) name(Opponent loses 2 and you gain) life:-2 opponent && life:2 controller @@ -29085,7 +29085,7 @@ type=Instant [card] name=Djeru and Hazoret aicode=activate transforms((,newability[if type(creature[legendary&zpos<=6]|myLibrary)~morethan~0 then target(creature[legendary&zpos<=6]|myLibrary) moveTo(myexile) and!( transforms((,newability[canplayfromexile],newability[zerocast],newability[all(other *[zpos<=6]|mylibrary) moveto(myreveal) and!( bottomoflibrary )!])) ueot )!],newability[if type(creature[legendary&zpos<=6]|myLibrary)~equalto~0 then all(*[zpos<=6]|mylibrary) moveto(myreveal) and!( bottomoflibrary )! ])) oneshot -auto=_ATTACKING_name(Look top 6 cards) reveal:6 optionone name(Exile legendary creature) target(creature[legendary]|reveal) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[zerocast])) ueot )! optiononeend optiontwo name(put on bottom) target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend +auto=_ATTACKING_name(Look top 6 cards) reveal:6 optionone name(Exile legendary creature) target(creature[legendary]|reveal) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[zerocast])) ueot )! optiononeend optiontwo name(put on bottom) all(*|reveal) bottomoflibrary optiontwoend revealend auto=aslongas(*|myhand) vigilance <2 auto=aslongas(*|myhand) haste <2 text=As long as you have one or fewer cards in hand, Djeru and Hazoret has vigilance and haste. -- Whenever Djeru and Hazoret attacks, look at the top six cards of your library. You may exile a legendary creature card from among them. Put the rest on the bottom of your library in a random order. Until end of turn, you may cast the exiled card without paying its mana cost. @@ -32912,7 +32912,7 @@ type=Artifact name=Eladamri, Korvecdal abilities=showfromtoplibrary,canplaycreaturelibrarytop auto={G}{T}{T(creature[-tapped]|myBattlefield)}{T(creature[-tapped]|myBattlefield)}:name(Reveal a card from hand) moveTo(myBattlefield) target(creature|myhand) myturnonly restriction{type(creature|myHand)~morethan~0} -auto={G}{T}{T(creature[-tapped]|myBattlefield)}{T(creature[-tapped]|myBattlefield)}:name(Reveal top card of library) reveal:1 optionone target(creature|reveal) moveto(mybattlefield) optiononeend optiontwo name(Put in library) target(*|reveal) moveto(mylibrary) optiontwoend revealend myturnonly +auto={G}{T}{T(creature[-tapped]|myBattlefield)}{T(creature[-tapped]|myBattlefield)}:name(Reveal top card of library) reveal:1 optionone target(creature|reveal) moveto(mybattlefield) optiononeend optiontwo name(Put in library) all(*|reveal) moveto(mylibrary) optiontwoend revealend myturnonly text=You may look at the top card of your library any time. -- You may cast creature spells from the top of your library. -- {G}, {T}, Tap two untapped creatures you control: Reveal a card from your hand or the top card of your library. If you reveal a creature card this way, put it onto the battlefield. Activate only during your turn. mana={1}{G}{G} type=Legendary Creature @@ -36924,7 +36924,7 @@ subtype=Equipment [card] name=Explosion of Riches auto=draw:1 controller -auto=ability$!name(Choose one) choice name(Draw and loose life) life:-5 && draw:1 _ choice name(Don'd draw) donothing!$ opponent +auto=ability$!name(Choose one) choice name(Draw and lose life) life:-5 && draw:1 _ choice name(Don't draw) donothing!$ opponent text=Draw a card, then each other player may draw a card. Whenever a card is drawn this way, Explosion of Riches deals 5 damage to target opponent chosen at random from among your opponents. mana={5}{R} type=Sorcery @@ -37650,7 +37650,7 @@ abilities=hasdisturb,defender,flying,vigilance restriction=compare(isflipped)~equalto~0 anyzone={0}:doubleside(backside) retrace={5}{W}{W} name(Cast with disturb) -autostack=if paid(retrace) then flip(backside) forcetype(Enchantment Aura Curse) and!( transforms((,newability[@each my upkeep:name(Put Judgment counter) counter(0/0.1.Judgment)],newability[@counteradded(0/0.1.Judgment) from(this) restriction{compare(hascntjudgment)~equalto~3}:name(Opponent looses game) winGame controller])) forever )! +autostack=if paid(retrace) then flip(backside) forcetype(Enchantment Aura Curse) and!( transforms((,newability[@each my upkeep:name(Put Judgment counter) counter(0/0.1.Judgment)],newability[@counteradded(0/0.1.Judgment) from(this) restriction{compare(hascntjudgment)~equalto~3}:name(Opponent loses game) winGame controller])) forever )! auto=@each my upkeep restriction{compare(hascntjudgment)~lessthan~3}:name(Put Judgment counter) counter(0/0.1.Judgment) auto=this(counter{0/0.1.Judgment}>=3) canattack text=Defender, flying, vigilance -- At the beginning of your upkeep, if Faithbound Judge has two or fewer judgment counters on it, put a judgment counter on it. -- As long as Faithbound Judge has three or more judgment counters on it, it can attack as though it didn't have defender. -- Disturb {5}{W}{W} // Sinner's Judgment @@ -38961,26 +38961,26 @@ toughness=2 [/card] [card] name=Fell the Mighty -auto=if type(creature[power=0]|battlefield)~morethan~0 then choice name(Power more than 0) name(Power more than 0) destroy all(creature[power>=1]|battlefield) -auto=if type(creature[power=1]|battlefield)~morethan~0 then choice name(Power more than 1) name(Power more than 1) destroy all(creature[power>=2]|battlefield) -auto=if type(creature[power=2]|battlefield)~morethan~0 then choice name(Power more than 2) name(Power more than 2) destroy all(creature[power>=3]|battlefield) -auto=if type(creature[power=3]|battlefield)~morethan~0 then choice name(Power more than 3) name(Power more than 3) destroy all(creature[power>=4]|battlefield) -auto=if type(creature[power=4]|battlefield)~morethan~0 then choice name(Power more than 4) name(Power more than 4) destroy all(creature[power>=5]|battlefield) -auto=if type(creature[power=5]|battlefield)~morethan~0 then choice name(Power more than 5) name(Power more than 5) destroy all(creature[power>=6]|battlefield) -auto=if type(creature[power=6]|battlefield)~morethan~0 then choice name(Power more than 6) name(Power more than 6) destroy all(creature[power>=7]|battlefield) -auto=if type(creature[power=7]|battlefield)~morethan~0 then choice name(Power more than 7) name(Power more than 7) destroy all(creature[power>=8]|battlefield) -auto=if type(creature[power=8]|battlefield)~morethan~0 then choice name(Power more than 8) name(Power more than 8) destroy all(creature[power>=9]|battlefield) -auto=if type(creature[power=9]|battlefield)~morethan~0 then choice name(Power more than 9) name(Power more than 9) destroy all(creature[power>=10]|battlefield) -auto=if type(creature[power=10]|battlefield)~morethan~0 then choice name(Power more than 10) name(Power more than 10) destroy all(creature[power>=11]|battlefield) -auto=if type(creature[power=11]|battlefield)~morethan~0 then choice name(Power more than 11) name(Power more than 11) destroy all(creature[power>=12]|battlefield) -auto=if type(creature[power=12]|battlefield)~morethan~0 then choice name(Power more than 12) name(Power more than 12) destroy all(creature[power>=13]|battlefield) -auto=if type(creature[power=13]|battlefield)~morethan~0 then choice name(Power more than 13) name(Power more than 13) destroy all(creature[power>=14]|battlefield) -auto=if type(creature[power=14]|battlefield)~morethan~0 then choice name(Power more than 14) name(Power more than 14) destroy all(creature[power>=15]|battlefield) -auto=if type(creature[power=15]|battlefield)~morethan~0 then choice name(Power more than 15) name(Power more than 15) destroy all(creature[power>=16]|battlefield) -auto=if type(creature[power=16]|battlefield)~morethan~0 then choice name(Power more than 16) name(Power more than 16) destroy all(creature[power>=17]|battlefield) -auto=if type(creature[power=17]|battlefield)~morethan~0 then choice name(Power more than 17) name(Power more than 17) destroy all(creature[power>=18]|battlefield) -auto=if type(creature[power=18]|battlefield)~morethan~0 then choice name(Power more than 18) name(Power more than 18) destroy all(creature[power>=19]|battlefield) -auto=if type(creature[power>=19]|battlefield)~morethan~0 then choice name(Power more than 19) name(Power more than 19) destroy all(creature[power>=20]|battlefield) +auto=if type(creature[power=0])~morethan~0 then choice name(Power more than 0) name(Power more than 0) destroy all(creature[power>=1]) +auto=if type(creature[power=1])~morethan~0 then choice name(Power more than 1) name(Power more than 1) destroy all(creature[power>=2]) +auto=if type(creature[power=2])~morethan~0 then choice name(Power more than 2) name(Power more than 2) destroy all(creature[power>=3]) +auto=if type(creature[power=3])~morethan~0 then choice name(Power more than 3) name(Power more than 3) destroy all(creature[power>=4]) +auto=if type(creature[power=4])~morethan~0 then choice name(Power more than 4) name(Power more than 4) destroy all(creature[power>=5]) +auto=if type(creature[power=5])~morethan~0 then choice name(Power more than 5) name(Power more than 5) destroy all(creature[power>=6]) +auto=if type(creature[power=6])~morethan~0 then choice name(Power more than 6) name(Power more than 6) destroy all(creature[power>=7]) +auto=if type(creature[power=7])~morethan~0 then choice name(Power more than 7) name(Power more than 7) destroy all(creature[power>=8]) +auto=if type(creature[power=8])~morethan~0 then choice name(Power more than 8) name(Power more than 8) destroy all(creature[power>=9]) +auto=if type(creature[power=9])~morethan~0 then choice name(Power more than 9) name(Power more than 9) destroy all(creature[power>=10]) +auto=if type(creature[power=10])~morethan~0 then choice name(Power more than 10) name(Power more than 10) destroy all(creature[power>=11]) +auto=if type(creature[power=11])~morethan~0 then choice name(Power more than 11) name(Power more than 11) destroy all(creature[power>=12]) +auto=if type(creature[power=12])~morethan~0 then choice name(Power more than 12) name(Power more than 12) destroy all(creature[power>=13]) +auto=if type(creature[power=13])~morethan~0 then choice name(Power more than 13) name(Power more than 13) destroy all(creature[power>=14]) +auto=if type(creature[power=14])~morethan~0 then choice name(Power more than 14) name(Power more than 14) destroy all(creature[power>=15]) +auto=if type(creature[power=15])~morethan~0 then choice name(Power more than 15) name(Power more than 15) destroy all(creature[power>=16]) +auto=if type(creature[power=16])~morethan~0 then choice name(Power more than 16) name(Power more than 16) destroy all(creature[power>=17]) +auto=if type(creature[power=17])~morethan~0 then choice name(Power more than 17) name(Power more than 17) destroy all(creature[power>=18]) +auto=if type(creature[power=18])~morethan~0 then choice name(Power more than 18) name(Power more than 18) destroy all(creature[power>=19]) +auto=if type(creature[power>=19])~morethan~0 then choice name(Power more than 19) name(Power more than 19) destroy all(creature[power>=20]) text=Destroy all creatures with power greater than target creature's power. mana={4}{W} type=Sorcery @@ -41714,7 +41714,7 @@ subtype=Saga [/card] [card] name=Forgotten Monument -auto=lord(other Cave|MyBattlefield) transforms((,newability[{T}{L:1}:add{W}],newability[{T}{L:1}:add{U}],newability[{T}{L:1}:add{B}],newability[{T}{L:1}:add{R}],newability[{T}{L:1}:add{G}])) +auto=lord(other Cave|myBattlefield) transforms((,newability[{T}{L:1}:add{W}],newability[{T}{L:1}:add{U}],newability[{T}{L:1}:add{B}],newability[{T}{L:1}:add{R}],newability[{T}{L:1}:add{G}])) text={T}: Add {C}. -- Other Caves you control have "{T}, Pay 1 life: Add one mana of any color." type=Land subtype=Cave @@ -41977,7 +41977,7 @@ name=Foulmire Knight // Profane Insight abilities=deathtouch,adventure,asflash restriction=can play creature other={2}{B} name(Adventure) -auto=alternative name(Draw 1 and opponent looses 1 life) name(Draw 1 and opponent looses 1 life) draw:1 controller && life:-1 controller +auto=alternative name(Draw 1 and opponent loses 1 life) name(Draw 1 and opponent loses 1 life) draw:1 controller && life:-1 controller auto=alternative _ADVENTURE_ text=Deathtouch // You draw a card and you lose 1 life. (Then exile this card. You may cast the creature later from exile.) mana={B} @@ -45835,7 +45835,7 @@ type=Artifact name=Glass-Cast Heart auto=@combat(attacking) source(vampire|mybattlefield):name(Create blood) _BLOOD_ auto={B}{T}{L:1}:name(Create vampire) token(Vampire,Creature Vampire,1/1,black,lifelink) -auto={B}{B}{T}{S}{S(blood|mybattlefield)}{S(blood|mybattlefield)}{S(blood|mybattlefield)}{S(blood|mybattlefield)}{S(blood|mybattlefield)}{S(blood|mybattlefield)}{S(blood|mybattlefield)}{S(blood|mybattlefield)}{S(blood|mybattlefield)}{S(blood|mybattlefield)}{S(blood|mybattlefield)}{S(blood|mybattlefield)}{S(blood|mybattlefield)}:name(Opponent looses life) lifeleech:-13 opponent +auto={B}{B}{T}{S}{S(blood|mybattlefield)}{S(blood|mybattlefield)}{S(blood|mybattlefield)}{S(blood|mybattlefield)}{S(blood|mybattlefield)}{S(blood|mybattlefield)}{S(blood|mybattlefield)}{S(blood|mybattlefield)}{S(blood|mybattlefield)}{S(blood|mybattlefield)}{S(blood|mybattlefield)}{S(blood|mybattlefield)}{S(blood|mybattlefield)}:name(Opponent loses life) lifeleech:-13 opponent text=Whenever one or more Vampires you control attack, create a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") -- {B}, {T}, Pay 1 life: Create a 1/1 white and black Vampire creature token with lifelink. -- {B}{B, {T}, Sacrifice Glass-Cast Heart and thirteen Blood tokens: Each opponent loses 13 life and you gain 13 life. mana={2}{B} type=Artifact @@ -62122,7 +62122,7 @@ subtype=Aura [/card] [card] name=Kenrith, the Returned King -auto={R}:lord(creature) trample ueot && haste ueot +auto={R}:all(creature) transforms((,trample,haste)) ueot auto={1}{G}:counter(1/1) target(creature|battlefield) auto={2}{W}:life:5 target(player) auto={3}{U}:draw:1 target(player) @@ -62243,7 +62243,7 @@ toughness=4 [card] name=Kethek, Crucible Goliath aicode=activate transforms((,newability[target(creature[-legendary;manacost<=manacostminus1minusend]|mylibrary) moveto(myBattlefield) and!( shuffle )! ])) oneshot -auto=@each my end:may name(Sacrifice another creature) target(creature|myBattlefield) sacrifice and!( transforms((,newability[name(Reveal top cards) reveal:1 revealzone(mylibrary) revealuntil(creature[-legendary;manacost<=manacostminus1minusend]|mylibrary) optionone target(creature[-legendary;manacost<=manacostminus1minusend]|reveal) moveto(MyBattlefield) optiononeend optiontwo choice name(Put on Bottom) all(*|reveal) bottomoflibrary optiontwoend afterrevealed afterrevealedend])) ueot )! +auto=@each my end:may name(Sacrifice another creature) target(creature|myBattlefield) sacrifice and!( transforms((,newability[name(Reveal top cards) reveal:1 revealzone(mylibrary) revealuntil(creature[-legendary;manacost<=manacostminus1minusend]|mylibrary) optionone target(creature[-legendary;manacost<=manacostminus1minusend]|reveal) moveto(myBattlefield) optiononeend optiontwo choice name(Put on Bottom) all(*|reveal) bottomoflibrary optiontwoend afterrevealed afterrevealedend])) ueot )! text=At the beginning of your end step, you may sacrifice another creature. If you do, reveal cards from the top of your library until you reveal a nonlegendary creature card with lesser mana value, put it onto the battlefield, then put the rest on the bottom of your library in a random order. mana={2}{B}{R} type=Legendary Creature @@ -63780,7 +63780,7 @@ toughness=1 [card] name=Kraul Whipcracker abilities=reach -auto=destroy target(token|opponentBattlefield) +auto=destroy target(*[token]|opponentBattlefield) text=Reach -- When Kraul Whipcracker enters, destroy target token an opponent controls. mana={B}{G} type=Creature @@ -65567,7 +65567,7 @@ toughness=2 [/card] [card] name=Leonin Vanguard -auto=@each my combatbegins:aslongas(creature|myBattlefield) 1/1 ueot && life:1 >2 +auto=@each my combatbegins restriction{type(creature|myBattlefield)~morethan~2}:1/1 ueot && life:1 text=At the beginning of combat on your turn, if you control three or more creatures, Leonin Vanguard gets +1/+1 until end of turn and you gain 1 life. mana={W} type=Creature @@ -70024,7 +70024,7 @@ name=Marchesa, Resolute Monarch abilities=deathtouch,menace auto=_ATTACKING_may name(Remove all counters) target(*|battlefield) removeallcounters(all) auto=@combatdamageof(player) from(*|opponentbattlefield) turnlimited:name(Combat damage received) name(Combat damage received) counter(0/0.1.MarchesaEffect) notrg -auto=@each my upkeep restriction{compare(hascntmarchesaeffect)~equalto~0}:name(Draw and loose life) name(Draw and loose life) transforms((,newability[draw:1 controller],newability[life:-1 controller])) oneshot +auto=@each my upkeep restriction{compare(hascntmarchesaeffect)~equalto~0}:name(Draw and lose life) name(Draw and lose life) transforms((,newability[draw:1 controller],newability[life:-1 controller])) oneshot auto=@each my upkeep restriction{compare(hascntmarchesaeffect)~morethan~0}:name(Effect ends) name(Effect ends) removeallcounters(0/0.1.MarchesaEffect) text=Menace, deathtouch -- Whenever Marchesa, Resolute Monarch attacks, remove all counters from up to one target permanent. -- At the beginning of your upkeep, if you haven't been dealt combat damage since your last turn, you draw a card and you lose 1 life. color=black @@ -74903,7 +74903,7 @@ toughness=1 [card] name=Murasa Behemoth abilities=trample -auto=if type(land|mygraveyard)~morethan~0 then 3/3 +auto=aslongas(land|mygraveyard) 3/3 text=Trample -- Murasa Behemoth gets +3/+3 as long as there is a land card in your graveyard. mana={4}{G}{G} type=Creature @@ -74955,7 +74955,7 @@ abilities=lifelink,adventure,asflash restriction=can play creature other={1}{B}{B} name(Adventure) auto=alternative name(Destroy creature or planeswalker) name(Destroy creature or planeswalker) target(creature,planeswalker) destroy -auto=alternative name(You loose 2 life) name(You loose 2 life) life:-2 controller +auto=alternative name(You lose 2 life) name(You lose 2 life) life:-2 controller auto=alternative _ADVENTURE_ auto=_DIES_name(Put on the bottom of library) all(trigger[to]) bottomoflibrary text=Lifelink -- When Murderous Rider dies, put it on the bottom of its owner's library. // Destroy target creature or planeswalker. You lose 2 life. (Then exile this card. You may cast the creature later from exile.) @@ -77635,7 +77635,7 @@ auto=counter(0/0.1.NineEffect) notrg auto=all(other *[Nine Lives]|myBattlefield) removeallcounters(0/0.1.NineEffect) auto=@damaged(controller) restriction{compare(hascntNineEffect)~morethan~0}:name(Can't be damaged) life:thatmuch controller auto=@counteradded(0/0.1.Incarnation) from(this) restriction{compare(hascntincarnation)~morethan~8}:name(Exile card) moveTo(Exile) -auto=@movedTo(this|nonbattlezone) from(battlefield):name(You loose game) wingame opponent +auto=@movedTo(this|nonbattlezone) from(battlefield):name(You lose game) wingame opponent text=Hexproof -- If a source would deal damage to you, prevent that damage and put an incarnation counter on Nine Lives. -- When there are nine or more incarnation counters on Nine Lives, exile it. -- When Nine Lives leaves the battlefield, you lose the game. mana={1}{W}{W} type=Enchantment @@ -80885,17 +80885,6 @@ power=3 toughness=3 [/card] [card] -name=Orzhov Advokist -auto=@each my upkeep:may lord(creature|opponentBattlefield) cantattack ueot && target(creature|opponentBattlefield) counter(1/1,2) -auto=@each my upkeep:may target(creature|myBattlefield) counter(1/1,2) -text=At the beginning of your upkeep, each player may put two +1/+1 counters on a creature they control. If a player does, creatures that player controls can't attack you or a planeswalker you control until your next turn. -mana={2}{W} -type=Creature -subtype=Human Advisor -power=1 -toughness=4 -[/card] -[card] name=Orzhov Charm auto=choice name(Return creature to hand) target(creature|mybattlefield) moveto(hand) auto=choice name(Destroy creature) target(creature) dynamicability && destroy @@ -88379,10 +88368,9 @@ toughness=1 [card] name=Ragavan, Nimble Pilferer other={1}{R} name(Dash) -auto=alternative transforms((,haste,newability[@next end:all(this) moveTo(hand)])) forever auto=@combatdamaged(player) from(this):_TREASURE_ +auto=alternative transforms((,haste,newability[@next end:all(this) moveTo(hand)])) forever auto=@combatdamagefoeof(player) from(this):name(Exile top card) name(Exile top card) all(*[zpos=1]|opponentlibrary) moveto(myexile) and!( if cantargetcard(*[-land]|*) then transforms((,newability[canplayfromexile],newability[phaseaction[end once checkex] moveTo(ownerexile)])) ueot )! -auto=@combatdamageof(player) from(this):name(Exile top card) name(Exile top card) all(*[zpos=1]|mylibrary) moveto(myexile) and!( if cantargetcard(*[-land]|*) then transforms((,newability[this(cantargetcard(*[-land]|*)) canplayfromexile])) ueot )! text=Whenever Ragavan, Nimble Pilferer deals combat damage to a player, create a Treasure token and exile the top card of that player's library. Until end of turn, you may cast that card. -- Dash {1}{R} (You may cast this spell for its dash cost. If you do, it gains haste, and it's returned from the battlefield to its owner's hand at the beginning of the next end step.) mana={R} type=Legendary Creature @@ -89601,7 +89589,7 @@ type=Sorcery [card] name=Ravenloft Adventurer auto=_INITIATIVE_CONTROLLER_ -auto=@combat(attacking) source(this) restriction{compare(pdungeoncompleted)~morethan~0}:name(Opponent loose life) name(Opponent loose life) all(*[counter{0/0.1.Hit}]|opponentexile) transforms((,newability[life:-1 controller])) oneshot +auto=@combat(attacking) source(this) restriction{compare(pdungeoncompleted)~morethan~0}:name(Opponent loses life) name(Opponent loses life) all(*[counter{0/0.1.Hit}]|opponentexile) transforms((,newability[life:-1 controller])) oneshot auto=@movedto(creature|opponentgraveyard) from(opponentbattlefield):name(Exile on death) all(*[zpos=type:*opponentgraveyard]|opponentgraveyard) moveto(exile) and!( counter(0/0.1.Hit) )! text=When Ravenloft Adventurer enters, you take the initiative. -- If a creature an opponent controls would die, instead exile it and put a hit counter on it. -- Whenever Ravenloft Adventurer attacks, if you've completed a dungeon, defending player loses 1 life for each card they own in exile with a hit counter on it. mana={3}{B} @@ -100823,7 +100811,7 @@ toughness=3 [/card] [card] name=Shapers' Sanctuary -auto=@targeted(this) from(*|opponentbattlefield,opponenthand,opponentstack,opponentgraveyard,opponentexile,opponentlibrary):draw:1 controller +auto=@targeted(creature|myBattlefield) from(*|opponentbattlefield,opponenthand,opponentstack,opponentgraveyard,opponentexile,opponentlibrary):may draw:1 text=Whenever a creature you control becomes the target of a spell or ability an opponent controls, you may draw a card. mana={G} type=Enchantment @@ -105196,7 +105184,7 @@ name=Smitten Swordmaster // Curry Favor abilities=lifelink,adventure other={B} name(Adventure) auto=alternative name(You gain life) name(You gain life) life:type:knight:mybattlefield controller -auto=alternative name(Opponent looses life) name(Opponent looses life) life:-type:knight:mybattlefield opponent +auto=alternative name(Opponent loses life) name(Opponent loses life) life:-type:knight:mybattlefield opponent auto=alternative _ADVENTURE_ text=Lifelink // You gain X life and each opponent loses X life, where X is the number of Knights you control. mana={1}{B} @@ -105599,7 +105587,7 @@ toughness=4 [/card] [card] name=Sokenzan Smelter -auto=@each my combatbegins restriction{type(artifact|MyBattlefield)~morethan~0}:name(Pay 1 and create construct) pay({1}) name(Pay 1 and create construct) all(this) transforms((,newability[sacrifice notaTarget(artifact|mybattlefield)],newability[create(Construct Artifact:Creature Artifact Construct:3/1:red:haste)])) +auto=@each my combatbegins restriction{type(artifact|myBattlefield)~morethan~0}:name(Pay 1 and create construct) pay({1}) name(Pay 1 and create construct) all(this) transforms((,newability[sacrifice notaTarget(artifact|mybattlefield)],newability[create(Construct Artifact:Creature Artifact Construct:3/1:red:haste)])) text=At the beginning of combat on your turn, you may pay {1} and sacrifice an artifact. If you do, create a 3/1 red Construct artifact creature token with haste. mana={1}{R} type=Creature @@ -108119,7 +108107,7 @@ type=Sorcery [/card] [card] name=Splitskin Doll -auto=if type(other creature[power<=2]|MyBattlefield)~lessthan~1 then _LOOT_ else draw:1 +auto=if type(other creature[power<=2]|myBattlefield)~lessthan~1 then _LOOT_ else draw:1 text=When Splitskin Doll enters, draw a card. Then discard a card unless you control another creature with power 2 or less. mana={1}{W} type=Artifact Creature @@ -110846,8 +110834,8 @@ toughness=2 [/card] [card] name=Strongarm Tactics -auto=ability$!name(Choose one) choice name(Discard Creature) notaTarget(*[creature]|myhand) reject _ choice name(Discard non creature and loose 4 life) notaTarget(*[-creature]|myhand) reject && life:-4!$ controller -auto=ability$!name(Choose one) choice name(Discard Creature) notaTarget(*[creature]|myhand) reject _ choice name(Discard non creature and loose 4 life) notaTarget(*[-creature]|myhand) reject && life:-4!$ opponent +auto=ability$!name(Choose one) choice name(Discard Creature) notaTarget(*[creature]|myhand) reject _ choice name(Discard non creature and lose 4 life) notaTarget(*[-creature]|myhand) reject && life:-4!$ controller +auto=ability$!name(Choose one) choice name(Discard Creature) notaTarget(*[creature]|myhand) reject _ choice name(Discard non creature and lose 4 life) notaTarget(*[-creature]|myhand) reject && life:-4!$ opponent text=Each player discards a card. Then each player who didn't discard a creature card this way loses 4 life. mana={1}{B} type=Sorcery @@ -111500,7 +111488,7 @@ toughness=2 [card] name=Sunbillow Verge auto={T}:Add{W} -auto=aslongas(*[Mountain;Plains]|myBattlefield) {T}:Add{B} +auto=aslongas(*[Mountain;Plains]|myBattlefield) {T}:Add{R} text={T}: Add {W}. -- {T}: Add {R}. Activate only if you control a Mountain or a Plains. type=Land [/card] @@ -113009,8 +112997,8 @@ toughness=4 [card] name=Syr Carah, the Bold auto={T}:damage:1 target(anytarget) -auto=@damageof(player) from(this):moveto(exile) and!( transforms((,canplayfromexile)) ueot )! all(*[zpos=1]|mylibrary) controller -auto=@damagefoeof(player) from(this):moveto(exile) and!( transforms((,canplayfromexile)) ueot )! all(*[zpos=1]|mylibrary) controller +auto=@damageof(player) from(this):_IMPULSE_DRAW_ +auto=@damagefoeof(player) from(this):_IMPULSE_DRAW_ text=Whenever Syr Carah, the Bold or an instant or sorcery spell you control deals damage to a player, exile the top card of your library. You may play that card this turn. -- {T}: Syr Carah deals 1 damage to any target. mana={3}{R}{R} type=Legendary Creature @@ -119699,7 +119687,7 @@ toughness=1 [card] name=Town-razer Tyrant abilities=flying -auto=name(Land looses abilities) target(land[-basic]|battlefield) transforms((,newability[onlymanaability],newability[@each my upkeep:ability$!name(Sacrifice or damage) choice name(Sacrifice) all(mysource) sacrifice _ choice name(Damage) damage:2 controller!$ controller])) forever +auto=name(Land loses abilities) target(land[-basic]|battlefield) transforms((,newability[onlymanaability],newability[@each my upkeep:ability$!name(Sacrifice or damage) choice name(Sacrifice) all(mysource) sacrifice _ choice name(Damage) damage:2 controller!$ controller])) forever text=Flying -- When Town-Razer Tyrant enters, target nonbasic land you don't control loses all abilities except mana abilities and gains "At the beginning of your end step, this permanent deals 2 damage to you unless you sacrifice it." mana={2}{R}{R} type=Creature @@ -125431,7 +125419,7 @@ toughness=2 [/card] [card] name=Vindictive Lich -auto=_DIES_name(Choose one) name(Choose one) emblem transforms((,newability[choice name(Opponent sacrifices a creature) ability$!name(Sacrifice creature) notaTarget(creature|mybattlefield) sacrifice!$ opponent],newability[choice name(Opponent discards 2 cards) ability$!name(Discards 2 cards) notaTarget(<2>*|myhand) reject!$ opponent],newability[choice name(Opponent looses 5 life) life:-5 opponent])) ueot +auto=_DIES_name(Choose one) name(Choose one) emblem transforms((,newability[choice name(Opponent sacrifices a creature) ability$!name(Sacrifice creature) notaTarget(creature|mybattlefield) sacrifice!$ opponent],newability[choice name(Opponent discards 2 cards) ability$!name(Discards 2 cards) notaTarget(<2>*|myhand) reject!$ opponent],newability[choice name(Opponent loses 5 life) life:-5 opponent])) ueot text=When Vindictive Lich dies, choose one or more. Each mode must target a different player. -- Target opponent sacrifices a creature. -- Target opponent discards two cards. -- Target opponent loses 5 life. mana={3}{B} type=Creature @@ -127559,11 +127547,11 @@ type=Enchantment name=Warlock Class auto=counter(0/0,1,Level) aicode=activate transforms((,newability[target(*[zpos<=3]|mylibrary) moveto(hand) and!( all(*[zpos<=3]|mylibrary) moveTo(mygraveyard) )!])) oneshot -auto=@each my end restriction{morbid}:name(Opponent looses life) life:-1 opponent +auto=@each my end restriction{morbid}:name(Opponent loses life) life:-1 opponent auto=this(variable{hascntlevel}=1) {1}{B}:name(Level 2) counter(0/0,1,Level) asSorcery auto=@counteradded(0/0.1.Level) from(this) restriction{compare(hascntlevel)~equalto~2}:name(Look top 3) reveal:3 optionone name(Get a Card) target(*|reveal) moveto(hand) optiononeend optiontwo name(put in grave) all(*|reveal) moveto(mygraveyard) optiontwoend revealend auto=this(variable{hascntlevel}=2) {6}{B}:name(Level 3) counter(0/0,1,Level) asSorcery -auto=@each my end restriction{compare(hascntlevel)~morethan~2}:name(Opponent looses life) damage:oplifelost opponent +auto=@each my end restriction{compare(hascntlevel)~morethan~2}:name(Opponent loses life) damage:oplifelost opponent text=(Gain the next level as a sorcery to add its ability.) -- At the beginning of your end step, if a creature died this turn, each opponent loses 1 life. -- {1}{B}: Level 2 -- When this Class becomes level 2, look at the top three cards of your library. Put one of them into your hand and the rest into your graveyard. -- {6}{B}: Level 3 -- At the beginning of your end step, each opponent loses life equal to the life they lost this turn. (Damage causes loss of life.) mana={B} type=Enchantment diff --git a/projects/mtg/bin/Res/sets/primitives/mtg.txt b/projects/mtg/bin/Res/sets/primitives/mtg.txt index bc2d9e9fc..645ebd326 100644 --- a/projects/mtg/bin/Res/sets/primitives/mtg.txt +++ b/projects/mtg/bin/Res/sets/primitives/mtg.txt @@ -12487,7 +12487,7 @@ toughness=1 [card] name=Bloodgift Demon abilities=flying -auto=@each my upkeep:target(player) ability$!name(draw 1 & loose 1) draw:1 _ life:-1!$ targetedplayer +auto=@each my upkeep:target(player) ability$!name(draw 1 & lose 1) draw:1 _ life:-1!$ targetedplayer text=Flying -- At the beginning of your upkeep, target player draws a card and loses 1 life. mana={3}{B}{B} type=Creature @@ -31956,7 +31956,7 @@ toughness=2 [/card] [card] name=Dreams of the Dead -auto={1}{U}:moveto(mybattlefield) and!( transforms((,newability[@movedto(this|nonbattlezone) from(battlefield):moveto(exile)],newability[cumulativeupcost[{2}] sacrifice])) forever )! target(creature[white;black]|mygraveyard) +auto={1}{U}:moveto(mybattlefield) and!( transforms((,newability[exiledeath],newability[cumulativeupcost[{2}] sacrifice])) forever )! target(creature[white;black]|mygraveyard) text={1}{U}: Return target white or black creature card from your graveyard to the battlefield. That creature gains "Cumulative upkeep {2}." If the creature would leave the battlefield, exile it instead of putting it anywhere else. (At the beginning of its controller's upkeep, that player puts an age counter on it, then sacrifices it unless they pay its upkeep cost for each age counter on it.) mana={3}{U} type=Enchantment @@ -51466,8 +51466,8 @@ subtype=Aura [/card] [card] name=Gulf Squid -auto=choice name(tap all lands opponent controls) tap all(land|mybattlefield) -auto=choice name(tap all lands you control) tap all(land|opponentbattlefield) +auto=choice name(tap all lands opponent controls) tap all(land|opponentbattlefield) +auto=choice name(tap all lands you control) tap all(land|mybattlefield) text=When Gulf Squid enters, tap all lands target player controls. mana={3}{U} type=Creature @@ -91767,8 +91767,8 @@ toughness=3 [card] name=Rampaging Baloths abilities=trample -auto=_LANDFALL_may token(Beast,Creature Beast,4/4,green) -text=Trample -- Landfall - Whenever a land enters under your control, you may put a 4/4 green Beast creature token onto the battlefield. +auto=_LANDFALL_ token(Beast,Creature Beast,4/4,green) +text=Trample -- Landfall - Whenever a land you control enters, create a 4/4 green Beast creature token. mana={4}{G}{G} type=Creature subtype=Beast @@ -129840,9 +129840,8 @@ toughness=1 [/card] [card] name=Vodalian Merchant -auto=draw:1 -auto=reject notaTarget(*|myhand) -text=When Vodalian Merchant enters, draw a card, then discard a card. +auto=_LOOT_ +text=When this creature enters, draw a card, then discard a card. mana={1}{U} type=Creature subtype=Merfolk